Commit 935f05b9 authored by Christophe Demarey's avatar Christophe Demarey
Browse files

[maven-release-plugin] copy for tag distribution-1.4

parent e0372864
This module contains code related to the SCOrWare platform (work package 1).
This will contain various sub-modules:
* the SCA metamodel (task 1.2).
* the SCA runtime (task 1.3).
* the binding factory (task 1.4).
* the semantic trading service (task 1.5).
* the transaction service (task 1.6).
* the deployment engine (task 1.7).
* graphical consoles (task 1.8).
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>scorware-assembly-factory</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.maven.ide.eclipse.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature>
</natures>
</projectDescription>
#Mon Dec 03 11:28:37 CET 2007
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.source=1.5
============================================================================
ScorWare FraSCAti Assembly Factory.
Copyright (C) 2007-2008 INRIA, USTL
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: Damien.Fournier@inria.fr
Author: Damien Fournier
Contributor : Philippe Merle
============================================================================
\ No newline at end of file
============================================================================
Assembly Factory.
Copyright (C) 2007-2008 INRIA, USTL
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: Damien.Fournier@inria.fr
Author: Damien Fournier
Contributor : Philippe Merle
============================================================================
Assembly Factory 0.3
--------------------
The Assembly Factory provides support for creating SCA components from SCA
assembly definitions which comply with the SCA architecture description
language specification 1.0. The Assembly Factory parse assembly definitions,
validate, then performs call to the Tinfi kernel and the Fractal Binding
Factory, in order to generate SCA components implementation and/or create
components instances.
Table of content
----------------
1. Requirements
2. Introduction
3. Compiling and installing Assembly Factory artifacts
4. Running the sample applications
5. Using the Assembly Factory to generate SCA assemblies
6. Using the Assembly Factory to instantiate SCA assemblies
7. References
1. Requirements
---------------
Maven 2.0.x is required to compile and run The Assembly Factory.
See http://maven.apache.org for instructions on downloading and using Maven.
2. Introduction
---------------
The Assembly Factory is decoupled in 2 main maven artifacts
- the core-factory : This is the main module containing implementation
of the assembly factory allowing to build SCA components instance.
- the generate-factory : This is a personality of the assembly factory
which allow to generate and compile SCA components. The generate factory
is compiled as a maven plugin. It permits to generate easily SCA component
code. Since the core factory does not generate SCA components, building
SCA components instances with the core factory always requires to use the
generate factory plugin in the build of your maven project.
Severals sample applications are also available in the assembly-factory/
examples directory.
Additionaly the etc/private-repository provide eclipse SCA STP model library
required to compile the assembly factory modules.
3. Compiling and installing Assembly Factory artifacts
------------------------------------------------------
To compile and install the core and generate factory modules in your Maven
local repository, from the root directory of the Assembly factory, type:
mvn clean install
4. Running the sample applications
----------------------------------
Samples applications are available in the assembly-factory/examples
directory. Those samples can be installed into your local maven
directory by typing "mvn install" form the examples directory.
Each sample can be run separately from their directory using the command
"mvn -Pfactory:run"
5. Using the Assembly Factory to generate SCA assemblies
--------------------------------------------------------
Since the generate-factory plug-in provide support for generating SCA
components source code, it can be used for your own Frascati project.
To use the generate-factory plug-in, just add the following lines into
the build description of your maven project :
01 <plugin>
02 <groupId>org.scorware.assembly</groupId>
03 <artifactId>frascati-af-generate</artifactId>
04 <version>0.2-SNAPSHOT</version>
05 <executions>
06 <execution>
07 <id>generate-factory</id>
08 <phase>generate-sources</phase>
09 <goals>
10 <goal>compile</goal>
11 </goals>
12 </execution>
13 </executions>
14 <configuration>
15 <srcs>src/main/java src/main/resources</srcs>
16 <composite>MyComposite</composite>
17 </configuration>
18 </plugin>
Additionnaly, you have to configure the plugin according to your maven
project. You have to define your own <configuration> section, three xml
tags can be specified :
- <srcs>
is a space-separated list of directories containing the source code of
the application. Usually you have to type "src/main/java src/main/resources"
if you're using the default maven project structure.
- <composite>
is the name or the path to your SCA application main composite.
- <mixins> (optionnal, refer to Tinfi)
is a space-separated list of source code artifacts which contain
the implementations of component controllers. Use this only if
you need to use different component controllers than the default ones.
6. Using the Assembly Factory to create SCA assemblies instances
----------------------------------------------------------------
The assembly factory (core-module) can be called through a java class.
The assembly factory API offers two static method which creates SCA
components instances.
AssemblyFactory.getComposite(String composite)
Return a instance of the composite specified by the "composite" parameter.
The "composite" parameter value can be a path to a composite name(if the
composite is a resource available in your current java classpath), a file
on your local directory, or an URL.
AssemblyFactory.getComposite(String composite, URL [] jars)
Like the previous method, return a instance of the composite specified by
the "composite" parameter. But also enable to give URL of jar files to be
loaded into Class Loader.
For a detailed example of assembly factory usage, you can take a look at
the HelloWorld in the assembly-factory/examples/helloworld directory.
7. References
-------------
- Maven : http://maven.apache.org
- SCA : http://www.osoa.org
For any question concerning Assembly Factory, please contact
Damien.Fournier@inria.fr / Philippe.Merle@lifl.fr
Date of creation of this file: May 27, 2008.
Last modified: May 27, 2008.
\ No newline at end of file
Assembly Factory 0.3
--------------------
* Enable SCA Model Validation
* Run with Java 1.5 and 1.6
* SCA Composites run in separate containers
* Solve naming bug when promoting services or references
* Resolve promote and target attributes with missing service/reference name
* Register binding types on first processing
* Runtime component generation support
* Introspection for Java based components
* Plug-able binding type architecture
* Plug-able implementation type architecture
* Support Java RMI binding
* Use SCA model from Eclipse STP project version 1.0
* Use Tinfi 0.3.2
* Use Binding Factory 0.3
Released on 25/07/2008
Assembly Factory 0.2.1
----------------------
* Correct simple property bug discovered by Nicolas Dolet
Released on 05/06/2008
Assembly Factory 0.2
--------------------
* Support loading from external composite and jar files
* Improve SCA specification support (wires, includes)
* Resolve several bugs with Web service binding
* Improve logging
* Use SCA model from Eclipse STP project version 0.8
* Use Tinfi 0.2.1
* Use Binding Factory 0.2
Released on 04/06/2008
Assembly Factory 0.1
--------------------
* First prototype release
* Based on built-in SCA model
* Use Tinfi 0.1
* Use Binding Factory 0.1
Note: SVN Revision 454
Assembly Factory TODO List
* Implement model completion (at parse time)
Done : - Retrieve Service and references from annotations
- Resolve promote and target attributes with missing service/reference name
What else?
* Test and correct null instance bug for complex properties.
Object instance is returned by JAXB but not initialized
(Field are null)
* Define Frascati distribution and application packaging
* Improve conformance with spec SCA 1.0
- Callback interfaces
- ComponentContext from API
- Which ?
* Policy / intent integration
- WIP Intent
* Model validation through OCL engine
* Support for monitoring ?
* Implement Benchmark examples
- Evaluate number components vs time vs memory ?
- Evaluate number composite vs time vs memory ?
- Evaluate maximum component number ?
* Allow automatic plug-in integration (auto binding for implementation or binding plug-in)
Done - Configurable architecture
- Need to support lazy loading for plugins
* Support for implementation.spring
- Use Philippe's prototype
* Support for implementation.fractal
- Added into custom sca model
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
* ====================================================================
*
* SCOrWare Assembly Factory.
* Copyright (C) 2008 INRIA, USTL
*
* 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: Philippe.Merle@inria.fr
*
* Author: Philippe Merle
-->
<assembly>
<id>bin</id>
<formats>
<format>zip</format>
<format>dir</format>
</formats>
<fileSets>
<fileSet>
<directory>src/main/scripts</directory>
<outputDirectory>/bin</outputDirectory>
<fileMode>755</fileMode>
</fileSet>
<fileSet>
<directory>target</directory>
<includes>
<include>*.jar</include>
</includes>
<outputDirectory>/lib</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<includes>
<include>*:jar</include>
</includes>
</dependencySet>
</dependencySets>
</assembly>
<?xml version="1.0"?>
<!--
* SCOrWare Assembly Factory.
*
* Copyright (c) 2007-2008 INRIA
*
* 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
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>parent</artifactId>
<groupId>org.scorware.assembly</groupId>
<version>0.3</version>
</parent>
<groupId>org.scorware.assembly</groupId>
<artifactId>frascati-af-core</artifactId>
<name>SCOrWare FraSCAti Assembly Factory: Core Factory Module</name>
<url>http://www.scorware.org</url>
<inceptionYear>2007</inceptionYear>
<developers>
<developer>
<id>fournier</id>
<name>Damien Fournier</name>
<email>Damien.Fournier@inria.fr</email>
<organization>INRIA</organization>
<organizationUrl>http://www.inria.fr</organizationUrl>
<roles>
<role>Architect</role>
<role>Developer</role>
</roles>
</developer>
</developers>
<!-- ======= -->
<!-- Build -->
<!-- ======= -->
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<!-- Process Fraclet annotations with Spoon. -->
<plugin>
<groupId>net.sf.alchim</groupId>
<artifactId>spoon-maven-plugin</artifactId>
<version>0.7</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>recompile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.objectweb.fractal.fraclet.java</groupId>
<artifactId>fractal-spoonlet</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.objectweb.fractal.fraclet.java</groupId>
<artifactId>fractaladl-spoonlet</artifactId>
<version>3.0</version>
</dependency>
</dependencies>
</plugin>
<!-- Compile the Fractal architecture of the SCOrWare assembly factory with JuliaC. -->
<plugin>
<groupId>org.objectweb.fractal.juliac</groupId>
<artifactId>maven-juliac-plugin</artifactId>
<version>${juliac.version}</version>
<executions>
<execution>
<id>juliac-compile</id>
<phase>generate-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<opt>OO</opt>
<srcs>target/generated-sources/spoon</srcs>
<mixins>org.objectweb.fractal.julia:julia-mixins:${julia-mixins.version}:sources</mixins>
<types>org.scorware.assembly.Frascati</types>
<verbose>false</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>org.objectweb.fractal.juliac</groupId>
<artifactId>juliac-all</artifactId>
<version>${juliac.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- Plugin for image generation representing the dependencies graph -->
<!-- To use this plugin, type: 'mvn depgraph:depgraph' -->
<!-- This plugin requires the 'dot' library, provided by the -->
<!-- GraphViz software (http://www.graphviz.org ) -->
<plugin>
<groupId>ch.elca.el4j.maven.plugins</groupId>
<artifactId>maven-depgraph-plugin</artifactId>
<configuration>
<outDir>target/site/images</outDir>
<outFile>${pom.artifactId}.png</outFile>
</configuration>
<version>1.1</version>
</plugin>
<!-- Build the binary assembly. -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>2.2-beta-1</version>
<configuration>
<descriptors>
<descriptor>assembly-bin.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
</reporting>
<!-- ======== -->
<!-- Profiles -->
<!-- ======== -->
<!-- ============ -->
<!-- Dependencies -->
<!-- ============ -->
<dependencies>
<dependency>
<groupId>org.objectweb.fractal.juliac</groupId>
<artifactId>juliac-runtime</artifactId>
<version>${juliac.version}</version>
</dependency>
<dependency>
<groupId>org.objectweb.fractal</groupId>
<artifactId>fractal-util</artifactId>
<version>1.1</version>
</dependency>
<!-- Source of Julia mixins used by JuliaC.
<dependency>
<groupId>org.objectweb.fractal.julia</groupId>
<artifactId>julia-mixins</artifactId>
<version>${julia-mixins.version}</version>
<classifier>sources</classifier>
<exclusions>
<exclusion>
<groupId>org.objectweb.monolog</groupId>
<artifactId>monolog</artifactId>
</exclusion>
</exclusions>
</dependency>
-->
<!-- The SCOrWare Tinfi runtime. -->
<dependency>
<groupId>org.scorware.tinfi</groupId>
<artifactId>frascati-tinfi-runtime</artifactId>
<version>${tinfi.version}</version>
<exclusions>
<!-- TODO: Why Tinfi runtime depends on Koch?
<exclusion>
<groupId>org.objectweb.fractal.julia</groupId>
<artifactId>koch-runtime</artifactId>
</exclusion>
-->
<!-- Exclude the Koch Compiler as not required. -->
<exclusion>
<groupId>org.objectweb.fractal.julia</groupId>
<artifactId>koch-mc</artifactId>
</exclusion>
<!-- Exclude ObjectWeb Monolog -->
<exclusion>
<groupId>org.objectweb.monolog</groupId>
<artifactId>monolog</artifactId>
</exclusion>