An abstract composition definition is a definition of a composition that is independent of the type of components. It describes the components in the composition, the relation between components, the structure of the composition, and it contains URLs to locations where different component types are stored.
Types of components can be build-level components, source files, petri nets, etc.
Example
Below is an example of an abstract composition definition for the composition described at KoalaCompiler.
component koala-bundle (BUNDLE) { path = koala-bundle } { } component asfix-tools (ASFIX-TOOLS) { path = koala-bundle/asfix-tools url = file:///home/mdejonge/pkgs } { IbinASFIX-TOOLS : asfix-tools -> koala-bundle/asfix-tools/asfix-tools-1_0 IlibATERM : aterm -> koala-bundle/aterm IlibXTC : xtc -> koala-bundle/stratego IlibSRTS : srts -> koala-bundle/stratego } module asfix-tools-1_0 { path = koala-bundle/asfix-tools/asfix-tools-1_0 url = file:///home/mdejonge/pkgs } { IlibATERM : aterm -> koala-bundle/asfix-tools IlibXTC : xtc -> koala-bundle/asfix-tools IlibSRTS : srts -> koala-bundle/asfix-tools } component aterm (ATerm) { path = koala-bundle/aterm url = file:///home/mdejonge/pkgs } { IlibATERM : aterm -> koala-bundle/aterm/aterm-1_0 } module aterm-1_0 { path = koala-bundle/aterm/aterm-1_0 url = file:///home/mdejonge/pkgs } { } component gpp (GPP) { path = koala-bundle/gpp url = file:///home/mdejonge/pkgs } { IbinGPP : gpp -> koala-bundle/gpp/gpp-1_0 IlibATERM : aterm -> koala-bundle/aterm IbinASFIX-TOOLS : asfix-tools -> koala-bundle/asfix-tools IbinSGLR : sglr -> koala-bundle/sglr IbinGRAPH-TOOLS : graph-tools -> koala-bundle/graph-tools IlibSRTS : srts -> koala-bundle/stratego IlibXTC : xtc -> koala-bundle/stratego } module gpp-1_0 { path = koala-bundle/gpp/gpp-1_0 url = file:///home/mdejonge/pkgs } { IlibATERM : aterm -> koala-bundle/gpp IbinASFIX-TOOLS : asfix-tools -> koala-bundle/gpp IbinSGLR : sglr -> koala-bundle/gpp IbinGRAPH-TOOLS : graph-tools -> koala-bundle/gpp IlibSRTS : srts -> koala-bundle/gpp IlibXTC : xtc -> koala-bundle/gpp } component graph-tools (GRAPH-TOOLS) { path = koala-bundle/graph-tools url = file:///home/mdejonge/pkgs } { IbinGRAPH-TOOLS : graph-tools -> koala-bundle/graph-tools/graph-tools-1_0 IlibATERM : aterm -> koala-bundle/aterm IlibSRTS : srts -> koala-bundle/stratego IlibXTC : xtc -> koala-bundle/stratego } module graph-tools-1_0 { path = koala-bundle/graph-tools/graph-tools-1_0 url = file:///home/mdejonge/pkgs } { IlibATERM : aterm -> koala-bundle/graph-tools IlibXTC : xtc -> koala-bundle/graph-tools IlibSRTS : srts -> koala-bundle/graph-tools } component sglr (mySGLR) { path = koala-bundle/sglr url = file:///home/mdejonge/pkgs } { IbinSGLR : sglr -> koala-bundle/sglr/sglr-1_0 IlibPT-SUPPORT : pt-support -> koala-bundle/sglr/pt-support-1_0 IlibTOOLBUS-LIB : toolbus-lib -> koala-bundle/sglr/toolbus-lib-1_0 IlibATERM : aterm -> koala-bundle/aterm } module sglr-1_0 { path = koala-bundle/sglr/sglr-1_0 url = file:///home/mdejonge/pkgs } { IlibPT-SUPPORT : pt-support -> koala-bundle/sglr IlibTOOLBUS-LIB : toolbus-lib -> koala-bundle/sglr IlibATERM : aterm -> koala-bundle/sglr } module pt-support-1_0 { path = koala-bundle/sglr/pt-support-1_0 url = file:///home/mdejonge/pkgs } { IlibTOOLBUS-LIB : toolbus-lib -> koala-bundle/sglr IlibATERM : aterm -> koala-bundle/sglr } module toolbus-lib-1_0 { path = koala-bundle/sglr/toolbus-lib-1_0 url = file:///home/mdejonge/pkgs } { IlibATERM : aterm -> koala-bundle/sglr } component stratego (Stratego) { path = koala-bundle/stratego } { IlibSRTS : srts -> koala-bundle/stratego/my_srts IlibXTC : xtc -> koala-bundle/stratego/my_xtc IlibATERM : aterm -> koala-bundle/aterm } component my_xtc (XTC) { path = koala-bundle/stratego/my_xtc url = file:///home/mdejonge/pkgs } { IlibXTC : xtc -> koala-bundle/stratego/my_xtc/xtc-1_0 IlibATERM : aterm -> koala-bundle/stratego IlibSRTS : srts -> koala-bundle/stratego } module xtc-1_0 { path = koala-bundle/stratego/my_xtc/xtc-1_0 url = file:///home/mdejonge/pkgs } { IlibATERM : aterm -> koala-bundle/stratego/my_xtc IlibSRTS : srts -> koala-bundle/stratego/my_xtc } component my_srts (SRTS) { path = koala-bundle/stratego/my_srts url = file:///home/mdejonge/pkgs } { IlibSRTS : srts -> koala-bundle/stratego/my_srts/srts-1_0 IlibATERM : aterm -> koala-bundle/stratego } module srts-1_0 { path = koala-bundle/stratego/my_srts/srts-1_0 url = file:///home/mdejonge/pkgs } { IlibATERM : aterm -> koala-bundle/stratego/my_srts } component koala (KOALA) { path = koala-bundle/koala url = file:///home/mdejonge/pkgs } { IbinKOALA : koala -> koala-bundle/koala/koala-1_0 IbinGPP : gpp -> koala-bundle/gpp IbinSGLR : sglr -> koala-bundle/sglr IlibSRTS : srts -> koala-bundle/stratego IlibXTC : xtc -> koala-bundle/stratego IlibATERM : aterm -> koala-bundle/aterm } module koala-1_0 { path = koala-bundle/koala/koala-1_0 url = file:///home/mdejonge/pkgs } { IbinGPP : gpp -> koala-bundle/koala IbinSGLR : sglr -> koala-bundle/koala IlibSRTS : srts -> koala-bundle/koala IlibXTC : xtc -> koala-bundle/koala IlibATERM : aterm -> koala-bundle/koala }
-- MerijnDeJonge - 18 Feb 2004