Fractal | Fractal ADL | Cecilia Examples | Minus
 

Usage

It is recommended that you kick-start a Cecilia application project using the maven-archetype-cecilia-application} or maven-archetype-cecilia-library}. It will generate a template source tree structure and a pom.xml file with a lot of things already configured, among which this Maven plugin, whose configuration looks like the following:

<!--  
    This is the pom.xml of your Cecilia application  
--> 
<project> 
     
  <groupId>your_project_groupid</groupId> 
  <artifactId>your_project_name</artifactId> 
  <!--  
    this packaging is to indicate the nature of the project and will be 
    handled by the "maven-cecilia-plugin" in the <build> section.   
  --> 
  <packaging>cecilia-application</packaging> 
   
  <dependencies> 
    <dependency> 
        <groupId>org.objectweb.fractal.cecilia</groupId> 
        <artifactId>cecilia-baselib</artifactId> 
        <!-- value of the cecilia.version property defined before --> 
        <version>${cecilia.version}</version> 
        <!-- Cecilia libraries are package as .car files --> 
        <type>car</type> 
    </dependency> 
   
    <!-- other Cecilia libraries you need in your application --> 
  </dependencies> 
   
  <build> 
    <plugins> 
         
      <!-- ================================================================= -->
      <!-- maven-cecilia-plugin -->
      <plugin>
        <groupId>org.objectweb.fractal.cecilia</groupId>
        <artifactId>maven-cecilia-plugin</artifactId>
        <version>${cecilia.version}</version> 
        <extensions>true</extensions>
      </plugin> 
 
      <!-- ================================================================= -->
      <!-- maven-ceciliaadl-plugin to invoke the Cecilia ADL Launcher -->
      <plugin> 
        <groupId>org.objectweb.fractal.cecilia.toolchain</groupId> 
        <artifactId>maven-ceciliaadl-plugin</artifactId> 
        <version>${cecilia.version}</version>
        <configuration>
          <target>unix</target>
          <adl>helloworld.Helloworld:helloworld</adl>
          <arguments>
            <properties>
              <file>flags.properties</file>
            </properties>
          </arguments>
        </configuration>
      </plugin>
      <!-- ================================================================= -->
    </plugins> 
  </build> 
</project> 

In the <configuration> section of the maven-ceciliaadl-plugin you can configure the following things (see compile goal for details):

  1. (mandatory) the <target> you want to compile for by means of the Cecilia ADL Launcher (currently, you most probably want the "unix" target)
  2. (mandatory) the <adl> you want to compile by means of the Cecilia ADL Launcher
  3. an ordered list of <arguments> to pass to it, which can be in 2 forms
    • as simple (name,value) pairs
    • as path to properties file

The Cecilia compiler will then be invoked with the following command line:

$ ceciliac adl -name_1=value_1 -name_2=value_2 ... -name_n=value_n

ADL checking mode

Since Cecilia 2.1, this plugin can separate checking of the correctness of the ADL (and the associated IDL files, if any) and code generation + compilation/linking/archiving.
This mode is especially useful for Cecilia libraries: this way, you can check the correctness of the ADL/IDL contained in the library, without having to make applications that use the library.

You can activate this mode by typing

  mvn compile ceciliaadl:check

or adding the --check-adl flag to the ceciliac invocation.

It will check all files given in the <configuration> section of the pom.xml:

<project> 
  ...
  <packaging>cecilia-library</packaging> 
  ...
  <build> 
    <plugins> 
      <plugin>
        <groupId>org.objectweb.fractal.cecilia</groupId>
        <artifactId>maven-cecilia-plugin</artifactId>
        <version>${cecilia.version}</version> 
        <extensions>true</extensions>
      </plugin> 
 
      <plugin> 
        <groupId>org.objectweb.fractal.cecilia.toolchain</groupId> 
        <artifactId>maven-ceciliaadl-plugin</artifactId> 
        <version>${cecilia.version}</version>
        <configuration>
          <adl>packagename.ComponentDefinition</adl>
        </configuration>
      </plugin>
    </plugins> 
  </build> 
</project> 

or

<project> 
  ...
  <packaging>cecilia-library</packaging> 
  ...
  <build> 
    <plugins> 
      <plugin>
        <groupId>org.objectweb.fractal.cecilia</groupId>
        <artifactId>maven-cecilia-plugin</artifactId>
        <version>${cecilia.version}</version> 
        <extensions>true</extensions>
      </plugin> 
 
      <plugin> 
        <groupId>org.objectweb.fractal.cecilia.toolchain</groupId> 
        <artifactId>maven-ceciliaadl-plugin</artifactId> 
        <version>${cecilia.version}</version>
        <configuration>
          <adls>
            <adl><definition>packagename.ComponentDefinition</definition></adl>
            <adl><definition>packagename.ComponentDefinition2</definition></adl>
          </adls>
        </configuration>
      </plugin>
    </plugins> 
  </build> 
</project> 
 
2007-2009 © ObjectWeb Consortium  | Last Published: 2009-04-21 13:50  | Version: 2.1.0