ObjectWeb Consortium
 



FraSCAti - Open SCA middleware platform Wiki

Powered by JSPWiki v2.0.52

 

Your trail: CallForContributions | License | Cloud | UndefinedPages | ServiceDirectory | Documents | UnusedPages

DeveloperCorner

Instructions

  • Each commit should be related to a Jira issue : bug, improvement, new feature.
  • Commit only ONE functionnality per commit. Commit often!
    • Group all the functionnaly code in one commit (no separate commit).
    • Choose a fine-grained functionnality. Don't wait weeks to commit.
    • No commit each week at the end of the week.

Coding convention

FraSCAti source code MUST follow Java Code Conventions!
Don't use tabs for indentation! Prefer the use of spaces (4 for each indentation).
You can configure the use of Java Code Conventions in Eclipse (Window > Preferences > Java > Code Style > Formatter) : select the Java Conventions profile. Then use CTRL+SHIFT+F to format the current source file.

You should also add for each source file a header like this :

/*
 * OW2 FraSCAti Assembly Factory
 * Copyright (C) 20XX-20XX Inria, University of Lille
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * Contact: frascati@ow2.org
 *
 * Author: FirstName Name
 *
 * Contributor(s): 
 *
 */

Working with FraSCAti Nexus

FraSCAti uses a software “artifacts” manager to share FraSCAti artifacts with other developers and end-users.
To be able to retrieve FraSCAti artifacts faster, FraSCAti developpers may update their maven settings in ~/.m2/settings.xm as following:
<settings>
  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>https://frascati-repo.inria.fr/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>
In this way, all artifacts requests will be re-routed to the FraSCAti nexus repository.
WARNING: You should use these settings only if you only work on the FraSCAti projetc with Maven. This is not a good idea to use the FraSCAti nexus for another project.
FraSCAti pom files must NOT contain repository definitions (except the Nexus repository definition).
If an artefact is missing, you can define a new proxy repository on Nexus or upload the artifact (if no maven repository available) on the Nexus third party repository.

Compiling FraSCAti

The full compilation of the platform use to raise the memory for your java process. To fix this issue, you should allocate more memory to Maven by declaring the following environment variable:
%prompt% export MAVEN_OPTS="-Xmx512M -XX:MaxPermSize=512M"

To execute the compilation process, then execute the following command:
%prompt% ./build.sh

Documentation

Technical documentation is written in the docbook format.

docbkx-tools

We use the docbkx-tools maven plugin. It allows xinclude directives, images staging, css, etc.

The docbkx plugin generates either HTML or PDF files (or both).
You can easily call it with the pre-site target (predefined maven phase) :

mvn pre-site

Here is an example of configuration for your pom.xml file :

<plugin>
  <groupId>com.agilejava.docbkx</groupId>
  <artifactId>docbkx-maven-plugin</artifactId>
            
  <executions>
    <execution>
      <id>create-html-docs</id>
      <goals>
        <goal>generate-html</goal>
      </goals>
      <phase>pre-site</phase>
      <configuration>
        <!-- This copies content (images, etc) for the HTML version -->
        <preProcess>
          <copy todir="target/docbkx/html/images">
            <fileset dir="src/main/images"/>
          </copy>
          <copy todir="target/docbkx/html/css"
                file="${project.basedir}/../../ow2-style.css"/>
        </preProcess>
        <!-- Any parameters specific to HTML version go here -->
        <htmlStylesheet>css/ow2-style.css</htmlStylesheet>
        <imgSrcPath>images/</imgSrcPath>
      </configuration>
    </execution>
                  
    <execution>
      <id>create-pdf-docs</id>
      <goals>
        <goal>generate-pdf</goal>
      </goals>
      <phase>pre-site</phase>
      <configuration>
        <!--- Any parameters specific to the PDF version go here -->
        <imgSrcPath>file:///${basedir}/src/main/images/</imgSrcPath>
      </configuration>
    </execution>
  </executions>
              
  <dependencies>
    <dependency>
      <groupId>org.docbook</groupId>
      <artifactId>docbook-xml</artifactId>
      <version>4.4</version>
      <scope>runtime</scope>
    </dependency>
  </dependencies>
              
  <configuration>
    <!-- Any parameters common to both HTML and PDF go here -->
    <xincludeSupported>true</xincludeSupported>
  </configuration>
</plugin>

Docbook editors

As writing xml is not very friendly, you can use editor to edit your docbook files. I suggest the use of the following editors :


[Edit this page]  [More info...]

This page last changed on 24-Jan-2012 10:58:47 CET by Demarey.

Copyright © 1999-2009, OW2 Consortium | contact | webmaster.