Mail Archive Home | gotm-commits List | December 2004 Index
| <-- Date Index --> | <-- Thread Index --> |
Date: Thursday, December 16, 2004 @ 17:57:19
Author: rouvoy
Path: /cvsroot/gotm/fractal-xdoclet
Added: .classpath .cvsignore .project
.settings/org.eclipse.core.resources.prefs build.xml
example/.cvsignore example/build.properties example/build.xml
example/lib/asm/asm.jar example/lib/fractal-adl/dtdparser.jar
example/lib/fractal-adl/fractal-adl.jar
example/lib/fractal-adl/ow_deployment_scheduling.jar
example/lib/fractal/fractal.jar example/lib/fractal/naming.jar
example/lib/julia/julia-asm.jar
example/lib/julia/julia-mixins.jar
example/lib/julia/julia-runtime.jar
example/lib/monolog/LICENSE.log4j
example/lib/monolog/LICENSE.monolog
example/lib/monolog/log4j-1.2.8.jar
example/lib/monolog/ow_monolog.jar
example/lib/utils/ow_util_trace.jar
example/src/fractal/org/objectweb/fractal/example/HelloWorld.fractal
example/src/fractal/org/objectweb/fractal/example/SharedHelloWorld.fractal
example/src/java/org/objectweb/fractal/example/api/Main.java
example/src/java/org/objectweb/fractal/example/api/Service.java
example/src/java/org/objectweb/fractal/example/api/ServiceAttributes.java
example/src/java/org/objectweb/fractal/example/lib/ClientImpl.java
example/src/java/org/objectweb/fractal/example/lib/ServerImpl.java
example/src/julia/julia.cfg
example/src/monolog/monolog.properties
lib/xdoclet/commons-collections-2.0.jar
lib/xdoclet/commons-logging.jar lib/xdoclet/log4j.jar
lib/xdoclet/xdoclet-1.3-SNAPSHOT.jar lib/xdoclet/xdoclet-xml.xdt
lib/xdoclet/xjavadoc-1.1.jar
src/java/org/objectweb/fractal/xdoclet/FcAdlSubTask.java
src/java/org/objectweb/fractal/xdoclet/FractalTagsHandler.java
src/xdt/FractalADLDescriptor.xdt src/xml/module.xml
* Initial Import of the fractal-xdoclet module.
* This module defines xdoclet tags for generating Fractal Architecture
Description Files for the primitive components.
----------------------------------------------------------------------------+
.classpath |
16
.cvsignore |
1
.project |
17
.settings/org.eclipse.core.resources.prefs |
9
build.xml |
185 +++
example/.cvsignore |
1
example/build.properties |
21
example/build.xml |
233 +++
example/lib/asm/asm.jar |
<<Binary file>>
example/lib/fractal-adl/dtdparser.jar |
<<Binary file>>
example/lib/fractal-adl/fractal-adl.jar |
<<Binary file>>
example/lib/fractal-adl/ow_deployment_scheduling.jar |
<<Binary file>>
example/lib/fractal/fractal.jar |
<<Binary file>>
example/lib/fractal/naming.jar |
<<Binary file>>
example/lib/julia/julia-asm.jar |
<<Binary file>>
example/lib/julia/julia-mixins.jar |
<<Binary file>>
example/lib/julia/julia-runtime.jar |
<<Binary file>>
example/lib/monolog/LICENSE.log4j |
48
example/lib/monolog/LICENSE.monolog |
504 ++++++++
example/lib/monolog/log4j-1.2.8.jar |
<<Binary file>>
example/lib/monolog/ow_monolog.jar |
<<Binary file>>
example/lib/utils/ow_util_trace.jar |
<<Binary file>>
example/src/fractal/org/objectweb/fractal/example/HelloWorld.fractal |
11
example/src/fractal/org/objectweb/fractal/example/SharedHelloWorld.fractal |
11
example/src/java/org/objectweb/fractal/example/api/Main.java |
36
example/src/java/org/objectweb/fractal/example/api/Service.java |
38
example/src/java/org/objectweb/fractal/example/api/ServiceAttributes.java |
55
example/src/java/org/objectweb/fractal/example/lib/ClientImpl.java |
91 +
example/src/java/org/objectweb/fractal/example/lib/ServerImpl.java |
90 +
example/src/julia/julia.cfg |
613 ++++++++++
example/src/monolog/monolog.properties |
54
lib/xdoclet/commons-collections-2.0.jar |
<<Binary file>>
lib/xdoclet/commons-logging.jar |
<<Binary file>>
lib/xdoclet/log4j.jar |
<<Binary file>>
lib/xdoclet/xdoclet-1.3-SNAPSHOT.jar |
<<Binary file>>
lib/xdoclet/xdoclet-xml.xdt |
32
lib/xdoclet/xjavadoc-1.1.jar |
<<Binary file>>
src/java/org/objectweb/fractal/xdoclet/FcAdlSubTask.java |
125 ++
src/java/org/objectweb/fractal/xdoclet/FractalTagsHandler.java |
329 +++++
src/xdt/FractalADLDescriptor.xdt |
45
src/xml/module.xml |
7
41 files changed, 2572 insertions(+)
Index: fractal-xdoclet/.classpath
diff -u /dev/null fractal-xdoclet/.classpath:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/.classpath Thu Dec 16 17:57:18 2004
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/java"/>
+ <classpathentry kind="src" path="example/src/fractal"/>
+ <classpathentry kind="src" path="src/xml"/>
+ <classpathentry kind="src" path="example/src/java"/>
+ <classpathentry kind="src" path="src/xdt"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry sourcepath="/xdoclet-all/xdoclet/core/src" kind="lib"
path="lib/xdoclet/xdoclet-1.3-SNAPSHOT.jar"/>
+ <classpathentry sourcepath="/xdoclet-all/xjavadoc/src" kind="lib"
path="lib/xdoclet/xjavadoc-1.1.jar"/>
+ <classpathentry kind="lib" path="lib/xdoclet/commons-logging.jar"/>
+ <classpathentry kind="src" path="/fractal-template"/>
+ <classpathentry kind="lib" path="example/lib/fractal/fractal.jar"/>
+ <classpathentry kind="lib"
path="example/lib/julia/julia-runtime.jar"/>
+ <classpathentry kind="output" path="build/class"/>
+</classpath>
Index: fractal-xdoclet/.cvsignore
diff -u /dev/null fractal-xdoclet/.cvsignore:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/.cvsignore Thu Dec 16 17:57:18 2004
@@ -0,0 +1 @@
+build
Index: fractal-xdoclet/.project
diff -u /dev/null fractal-xdoclet/.project:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/.project Thu Dec 16 17:57:18 2004
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>fractal-xdoclet</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Index: fractal-xdoclet/.settings/org.eclipse.core.resources.prefs
diff -u /dev/null
fractal-xdoclet/.settings/org.eclipse.core.resources.prefs:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/.settings/org.eclipse.core.resources.prefs Thu Dec 16
17:57:19 2004
@@ -0,0 +1,9 @@
+#Thu Dec 16 16:52:31 CET 2004
+encoding//example/build/class/org/objectweb/fractal/example/lib/FcServerImpl.fractal=ISO-8859-1
+encoding//example/build/class/org/objectweb/fractal/example/api/FcMain.fractal=ISO-8859-1
+encoding//example/src/fractal/org/objectweb/fractal/example/SharedHelloWorld.fractal=ISO-8859-1
+encoding//example/src/fractal/org/objectweb/fractal/example/HelloWorld.fractal=ISO-8859-1
+eclipse.preferences.version=1
+encoding//src/xdt/FractalADLDescriptor.xdt=ISO-8859-1
+encoding//example/build/class/org/objectweb/fractal/example/api/FcService.fractal=ISO-8859-1
+encoding//example/build/class/org/objectweb/fractal/example/lib/FcClientImpl.fractal=UTF-8
Index: fractal-xdoclet/build.xml
diff -u /dev/null fractal-xdoclet/build.xml:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/build.xml Thu Dec 16 17:57:18 2004
@@ -0,0 +1,185 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb GoTM is an open Tx Monitor Project -->
+<!-- Contact: http://www.objectweb.org -->
+
+<!-- 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.1 of the License, or 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 -->
+
+<!-- Initial developer(s): Romain Rouvoy. -->
+<!-- Contributor(s): ______________________________________. -->
+
+<!-- $Id: build.xml,v 1.1 2004/12/16 16:57:18 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+
+<project name="fractal-xdoclet" default="xdoclet-all">
+ <description>GoTM Project [gotm.objectweb.org] - Fractal
Xdoclet</description>
+
+ <!-- ==================== -->
+ <!-- PROPERTY DEFINITIONS -->
+ <!-- ==================== -->
+
+ <property name="src.dir" value="src" />
+ <property name="doc.dir" value="doc" />
+ <property name="class.dir" value="class" />
+ <property name="lib.dir" value="lib" />
+ <property name="ant.dir" value="ant" />
+ <property name="meta.dir" value="META-INF" />
+
+ <property name="java.dir" value="${src.dir}/java" />
+ <property name="xml.dir" value="${src.dir}/xml" />
+ <property name="xdt.dir" value="${src.dir}/xdt" />
+
+ <property name="build.dir" value="${basedir}/build" />
+ <property name="dist.dir" value="${basedir}/dist" />
+
+ <property name="fractalxdoclet.jar" value="fractal-xdoclet.jar" />
+ <property name="fractalxdoclet.version" value="0.1" />
+ <property name="project.dist" value="FractalXdoclet" />
+
+ <!-- ================ -->
+ <!-- PATH DEFINITIONS -->
+ <!-- ================ -->
+
+ <path id="classpath">
+ <fileset dir="${build.dir}/${lib.dir}" includes="**/*.jar" />
+ <pathelement location="${build.dir}/${class.dir}" />
+ </path>
+
+ <!-- ================== -->
+ <!-- TARGET DEFINITIONS -->
+ <!-- ================== -->
+
+ <target name="xdoclet-all" description="xdoclet-clean +
xdoclet-build">
+ <antcall target="xdoclet-clean" />
+ <antcall target="xdoclet-build" />
+ </target>
+
+ <target name="-xdoclet-prepare">
+ <mkdir dir="${build.dir}/${lib.dir}" />
+ <copy todir="${build.dir}/${lib.dir}">
+ <mapper type="flatten" />
+ <fileset dir="${basedir}/${lib.dir}"
includes="**/*.jar" />
+ </copy>
+ </target>
+
+ <target name="xdoclet-compile" depends="-xdoclet-prepare"
description="Compiles Fractal library.">
+ <mkdir dir="${build.dir}/${class.dir}" />
+ <javac srcdir="${basedir}/${java.dir}"
destdir="${build.dir}/${class.dir}" debug="on">
+ <classpath refid="classpath" />
+ <include
name="org/objectweb/fractal/xdoclet/**/*.java" />
+ </javac>
+ </target>
+
+ <target name="xdoclet-deploy" depends="xdoclet-compile">
+ <taskdef name="xdoclet" classname="xdoclet.DocletTask"
classpathref="classpath" />
+ <property name="build.xdoc"
value="${build.dir}/${class.dir}/${meta.dir}" />
+ <mkdir dir="${build.xdoc}" />
+ <xdoclet destdir="${build.xdoc}" verbose="true">
+ <fileset dir="${java.dir}">
+ <include name="**/*Handler.java" />
+ <include name="**/*SubTask.java" />
+ </fileset>
+ <template
templateFile="${basedir}/${lib.dir}/xdoclet/xdoclet-xml.xdt"
destinationFile="xdoclet.xml" />
+ </xdoclet>
+ <copy todir="${build.xdoc}">
+ <fileset dir="${xml.dir}" includes="**/*.xml" />
+ </copy>
+ <property name="build.res"
value="${build.dir}/${class.dir}/org/objectweb/fractal/xdoclet/resources" />
+ <mkdir dir="${build.res}" />
+ <copy todir="${build.res}">
+ <fileset dir="${xdt.dir}" includes="**/*.xdt" />
+ </copy>
+ </target>
+
+ <target name="xdoclet-build" depends="xdoclet-deploy"
description="Builds Fractal framework.">
+ <jar destfile="${build.dir}/${lib.dir}/${fractalxdoclet.jar}">
+ <fileset dir="${build.dir}/${class.dir}"
includes="**/*" />
+ </jar>
+ </target>
+
+ <target name="xdoclet-jdoc" depends="-xdoclet-prepare"
description="Generates the javadoc.">
+ <javadoc destdir="${build.dir}/${doc.dir}" author="true"
version="true" use="true" private="true" windowtitle="Fractal Library."
overview="${doc.dir}/overview.html" classpathref="classpath">
+ <packageset dir="${basedir}/${java.dir}"
defaultexcludes="yes">
+ <include name="**/*" />
+ </packageset>
+ <doctitle>
+ <![CDATA[<h1>XDoclet Library - v.
${fractalxdoclet.version}</h1>]]>
+ <![CDATA[<h2>Library Specification</h2>]]>
+ </doctitle>
+ <tag name="todo" scope="all" description="To do: " />
+ <tag name="fractal.adl" scope="all" description="Fractal ADL
Identifier: " />
+
+ <group title="Fractal Libraries">
+ <package name="org.objectweb.fractal.lib.*" />
+ </group>
+
+ <link href="http://java.sun.com/j2se/1.4.2/docs/api/" />
+</javadoc>
+<replace file="${build.dir}/${doc.dir}/overview-summary.html" token="DO NOT
REMOVE THIS LINE (will be automatically removed)." />
+<copy todir="${build.dir}/${doc.dir}">
+ <fileset dir="${basedir}/${doc.dir}" includes="uml/*.png" />
+</copy>
+</target>
+
+
+<target name="xdoclet-dist-src" description="Builds the source
distribution.">
+<property name="dist-src"
value="${project.dist}-${fractalxdoclet.version}-src" />
+<property name="dist-src.dir" value="${dist.dir}/${dist-src}" />
+<mkdir dir="${dist-src.dir}" />
+<copy todir="${dist-src.dir}" file="${basedir}/build.xml" />
+<mkdir dir="${dist-src.dir}/${src.dir}" />
+<copy todir="${dist-src.dir}/${src.dir}">
+ <fileset dir="${basedir}/${src.dir}" includes="**/*" />
+</copy>
+<mkdir dir="${dist-src.dir}/${doc.dir}" />
+<copy todir="${dist-src.dir}/${doc.dir}">
+ <fileset dir="${basedir}/${doc.dir}" includes="**/*" />
+</copy>
+<zip zipfile="${dist.dir}/${dist-src}.zip">
+ <fileset dir="${dist.dir}" includes="${dist-src}/**/*" />
+</zip>
+<tar destfile="${dist.dir}/${dist-src}.tar" longfile="gnu">
+ <tarfileset dir="${dist.dir}" includes="${dist-src}/**/*" />
+</tar>
+<gzip src="${dist.dir}/${dist-src}.tar"
zipfile="${dist.dir}/${dist-src}.tar.gz" />
+<bzip2 src="${dist.dir}/${dist-src}.tar"
zipfile="${dist.dir}/${dist-src}.tar.bz2" />
+</target>
+
+<target name="xdoclet-dist-bin" depends="xdoclet-build,xdoclet-jdoc"
description="Builds the binary distribution.">
+<property name="dist-bin"
value="${project.dist}-${fractalxdoclet.version}-bin" />
+<property name="dist-bin.dir" value="${dist.dir}/${dist-bin}" />
+<mkdir dir="${dist-bin.dir}" />
+<copy todir="${dist-bin.dir}">
+ <fileset dir="${build.dir}" includes="${doc.dir}/**/*" />
+ <fileset dir="${build.dir}" includes="${lib.dir}/**/*" />
+</copy>
+<zip zipfile="${dist.dir}/${dist-bin}.zip">
+ <fileset dir="${dist.dir}" includes="${dist-bin}/**/*" />
+</zip>
+<tar destfile="${dist.dir}/${dist-bin}.tar" longfile="gnu">
+ <tarfileset dir="${dist.dir}" includes="${dist-bin}/**/*" />
+</tar>
+<gzip src="${dist.dir}/${dist-bin}.tar"
zipfile="${dist.dir}/${dist-bin}.tar.gz" />
+<bzip2 src="${dist.dir}/${dist-bin}.tar"
zipfile="${dist.dir}/${dist-bin}.tar.bz2" />
+</target>
+
+<target name="xdoclet-dist" depends="xdoclet-dist-src,xdoclet-dist-bin"
description="build all distributions" />
+
+<target name="xdoclet-clean" description="clean Fractal framework">
+<delete dir="${build.dir}" failonerror="no" />
+<delete dir="${dist.dir}" failonerror="no" />
+</target>
+</project>
\ No newline at end of file
Index: fractal-xdoclet/example/.cvsignore
diff -u /dev/null fractal-xdoclet/example/.cvsignore:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/example/.cvsignore Thu Dec 16 17:57:18 2004
@@ -0,0 +1 @@
+build
Index: fractal-xdoclet/example/build.properties
diff -u /dev/null fractal-xdoclet/example/build.properties:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/example/build.properties Thu Dec 16 17:57:18 2004
@@ -0,0 +1,21 @@
+# JVM arguments
+# add "-Djulia.loader.gen.log=err" to log the generated classes
+# add "-Djulia.loader.gen.dir=/tmp" to store the generated classes on disk
+
+run.jvm.parameters \
+ -Dfractal.provider=org.objectweb.fractal.julia.Julia \
+ -Djulia.loader=org.objectweb.fractal.julia.loader.DynamicLoader \
+ -Djulia.config=src/julia/julia.cfg
+
+# Java class to be launched
+
+run.classname org.objectweb.fractal.adl.Launcher
+
+# Application arguments
+# add "parser" to build the components automatically, by using a parser
+# add "templates" to build the components through templates
+# add "wrapper" to add an additional composite around each primitive
+
+run.parameters -fractal org.objectweb.fractal.example.HelloWorld r
+#run.parameters -fractal org.objectweb.fractal.example.ClientServerImpl r
+#run.parameters -fractal org.objectweb.fractal.example.SharedHelloWorld r
Index: fractal-xdoclet/example/build.xml
diff -u /dev/null fractal-xdoclet/example/build.xml:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/example/build.xml Thu Dec 16 17:57:18 2004
@@ -0,0 +1,233 @@
+<!-- ==================================================================== -->
+
+<!-- ObjectWeb GoTM is an open Tx Monitor Project -->
+<!-- Contact: http://www.objectweb.org -->
+
+<!-- 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.1 of the License, or 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 -->
+
+<!-- Initial developer(s): Romain Rouvoy. -->
+<!-- Contributor(s): ______________________________________. -->
+
+<!-- $Id: build.xml,v 1.1 2004/12/16 16:57:18 rouvoy Exp $ -->
+<!-- ==================================================================== -->
+
+<project name="example-template" default="example-all">
+ <description>GoTM Project [gotm.objectweb.org] - Fractal XDoclet
example</description>
+
+ <!-- ==================== -->
+ <!-- PROPERTY DEFINITIONS -->
+ <!-- ==================== -->
+
+ <property name="src.dir" value="src"/>
+ <property name="doc.dir" value="doc"/>
+ <property name="class.dir" value="class"/>
+ <property name="lib.dir" value="lib"/>
+ <property name="julia.dir" value="julia"/>
+ <property name="fractal.dir" value="fractal"/>
+ <property name="ant.dir" value="ant"/>
+
+ <property name="java.dir" value="${src.dir}/java"/>
+ <property name="log.dir" value="${src.dir}/monolog"/>
+
+ <property name="build.dir" value="${basedir}/build"/>
+ <property name="dist.dir" value="${basedir}/dist"/>
+
+ <property name="project.jar" value="xdoclet-example.jar"/>
+ <property name="project.version" value="0.1"/>
+ <property name="project.dist" value="XDocletExample"/>
+
+ <property file="build.properties"/>
+ <!-- ================ -->
+ <!-- PATH DEFINITIONS -->
+ <!-- ================ -->
+
+ <path id="classpath">
+ <fileset dir="${build.dir}/${lib.dir}" includes="**/*.jar"/>
+ <pathelement location="${build.dir}/${class.dir}"/>
+ </path>
+
+ <!-- ================== -->
+ <!-- TARGET DEFINITIONS -->
+ <!-- ================== -->
+
+ <target name="example-all" description="example-clean +
example-build">
+ <antcall target="example-clean"/>
+ <antcall target="example-build"/>
+ </target>
+
+ <target name="-example-prepare">
+ <copy todir="${build.dir}/${lib.dir}">
+ <mapper type="flatten"/>
+ <fileset dir="${basedir}/${lib.dir}"
includes="**/*.*"/>
+ </copy>
+ <mkdir dir="${build.dir}/${julia.dir}"/>
+ <copy todir="${build.dir}/${julia.dir}">
+ <fileset dir="${basedir}/${src.dir}/${julia.dir}"
includes="**/*"/>
+ </copy>
+ <copy todir="${build.dir}/${class.dir}">
+ <fileset dir="${basedir}/${log.dir}" includes="**/*"/>
+ </copy>
+ </target>
+
+ <target name="example-compile" depends="-example-prepare"
+ description="Compiles Fractal library.">
+ <mkdir dir="${build.dir}/${class.dir}"/>
+ <javac srcdir="${basedir}/${java.dir}"
+ destdir="${build.dir}/${class.dir}" debug="on">
+ <classpath refid="classpath"/>
+ <include
name="org/objectweb/fractal/example/**/*.java"/>
+ </javac>
+ </target>
+
+ <target name="-doclet-init">
+ <ant dir="${basedir}/.." target="xdoclet-build"/>
+ <copy todir="${build.dir}/${ant.dir}">
+ <fileset dir="${build.dir}/${lib.dir}"/>
+ </copy>
+ <delete dir="${build.dir}/${class.dir}" failonerror="false"/>
+ <delete dir="${build.dir}/${lib.dir}" failonerror="false"/>
+ <taskdef name="xdoclet" classname="xdoclet.DocletTask">
+ <classpath>
+ <fileset dir="${build.dir}/${ant.dir}" includes="*.jar"/>
+ </classpath>
+ </taskdef>
+ </target>
+
+ <target name="example-doclet" depends="-doclet-init"
+ description="Generates Fractal ADL file with xdoclet">
+ <mkdir dir="${build.dir}/${class.dir}"/>
+ <xdoclet destdir="${build.dir}/${class.dir}"
excludedtags="@version,@author,@todo">
+ <fileset dir="${basedir}/${java.dir}"
includes="org/objectweb/fractal/example/**/*.java"/>
+ <fractal-adl dtd="standard.dtd"/>
+ </xdoclet>
+ </target>
+
+ <target name="example-fractal"
depends="example-doclet,example-compile">
+ <mkdir dir="${build.dir}/${fractal.dir}"/>
+ <copy todir="${build.dir}/${class.dir}" failonerror="false">
+ <fileset dir="${basedir}/${src.dir}/${fractal.dir}">
+ <include name="**/*.fractal"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="example-build" depends="example-fractal"
+ description="Builds Fractal framework.">
+ <jar destfile="${build.dir}/${lib.dir}/${project.jar}">
+ <fileset dir="${build.dir}/${class.dir}"
includes="**/*"/>
+ </jar>
+ </target>
+
+ <target name="example-execute" depends="example-build"
+ description="Run the Fractal example">
+ <java classname="${run.classname}"
+ classpathref="classpath"
+ fork="yes"
+ failonerror="yes">
+ <jvmarg line="${run.jvm.parameters}"/>
+ <arg line="${run.parameters}"/>
+ </java>
+ </target>
+
+
+ <target name="example-jdoc" depends="-example-prepare"
+ description="Generates the javadoc.">
+ <javadoc destdir="${build.dir}/${doc.dir}" author="true"
version="true"
+ use="true" private="true" windowtitle="XDoclet Example
Library."
+ overview="${doc.dir}/overview.html" classpathref="classpath">
+ <packageset dir="${basedir}/${java.dir}"
defaultexcludes="yes">
+ <include name="**/*" />
+ </packageset>
+ <doctitle>
+ <![CDATA[<h1>XDoclet Example- v.
${project.version}</h1>]]>
+ <![CDATA[<h2>Library Specification</h2>]]>
+ </doctitle>
+ <tag name="todo" scope="all" description="To do: "/>
+ <tag name="fractal.adl" scope="all" description="Fractal ADL
Identifier: "/>
+
+ <group title="Example interfaces">
+ <package name="org.objectweb.fractal.example.api.*"/>
+ </group>
+ <group title="Example components">
+ <package name="org.objectweb.fractal.example.lib.*"/>
+ </group>
+
+ <link href="http://java.sun.com/j2se/1.4.2/docs/api/"/>
+ <link
href="http://fractal.objectweb.org/current/doc/javadoc/fractal/"/>
+ <link href="http://monolog.objectweb.org/jdoc/ow_util_log/"/>
+ </javadoc>
+ <replace file="${build.dir}/${doc.dir}/overview-summary.html"
+ token="DO NOT REMOVE THIS LINE (will be automatically
removed)."/>
+ <copy todir="${build.dir}/${doc.dir}">
+ <fileset dir="${basedir}/${doc.dir}" includes="uml/*.png"/>
+ </copy>
+ </target>
+
+
+ <target name="example-dist-src" description="Builds the source
distribution.">
+ <property name="dist-src" value="${project.dist}-${project.version}-src"
/>
+ <property name="dist-src.dir" value="${dist.dir}/${dist-src}" />
+ <mkdir dir="${dist-src.dir}" />
+ <copy todir="${dist-src.dir}" file="${basedir}/build.xml" />
+ <mkdir dir="${dist-src.dir}/${src.dir}" />
+ <copy todir="${dist-src.dir}/${src.dir}">
+ <fileset dir="${basedir}/${src.dir}" includes="**/*" />
+ </copy>
+ <mkdir dir="${dist-src.dir}/${doc.dir}" />
+ <copy todir="${dist-src.dir}/${doc.dir}">
+ <fileset dir="${basedir}/${doc.dir}" includes="**/*" />
+ </copy>
+ <zip zipfile="${dist.dir}/${dist-src}.zip">
+ <fileset dir="${dist.dir}" includes="${dist-src}/**/*" />
+ </zip>
+ <tar destfile="${dist.dir}/${dist-src}.tar" longfile="gnu">
+ <tarfileset dir="${dist.dir}" includes="${dist-src}/**/*" />
+ </tar>
+ <gzip src="${dist.dir}/${dist-src}.tar"
+ zipfile="${dist.dir}/${dist-src}.tar.gz" />
+ <bzip2 src="${dist.dir}/${dist-src}.tar"
+ zipfile="${dist.dir}/${dist-src}.tar.bz2" />
+ </target>
+
+ <target name="example-dist-bin" depends="example-build,example-jdoc"
+ description="Builds the binary distribution.">
+ <property name="dist-bin"
value="${project.dist}-${project.version}-bin"/>
+ <property name="dist-bin.dir" value="${dist.dir}/${dist-bin}"/>
+ <mkdir dir="${dist-bin.dir}"/>
+ <copy todir="${dist-bin.dir}">
+ <fileset dir="${build.dir}" includes="${doc.dir}/**/*"/>
+ <fileset dir="${build.dir}" includes="${lib.dir}/**/*"/>
+ </copy>
+ <zip zipfile="${dist.dir}/${dist-bin}.zip">
+ <fileset dir="${dist.dir}" includes="${dist-bin}/**/*"/>
+ </zip>
+ <tar destfile="${dist.dir}/${dist-bin}.tar" longfile="gnu">
+ <tarfileset dir="${dist.dir}" includes="${dist-bin}/**/*"/>
+ </tar>
+ <gzip src="${dist.dir}/${dist-bin}.tar"
+ zipfile="${dist.dir}/${dist-bin}.tar.gz"/>
+ <bzip2 src="${dist.dir}/${dist-bin}.tar"
+ zipfile="${dist.dir}/${dist-bin}.tar.bz2"/>
+ </target>
+
+ <target name="example-dist" depends="example-dist-src,example-dist-bin"
+ description="build all distributions"/>
+
+ <target name="example-clean" description="clean Fractal framework">
+ <delete dir="${build.dir}" failonerror="no"/>
+ <delete dir="${dist.dir}" failonerror="no"/>
+ </target>
+</project>
\ No newline at end of file
Index: fractal-xdoclet/example/lib/asm/asm.jar
cvs rdiff: failed to read diff file header /tmp/cvsGsFOHa for asm.jar,v: end
of file
Index: fractal-xdoclet/example/lib/fractal-adl/dtdparser.jar
cvs rdiff: failed to read diff file header /tmp/cvsV7zVyb for
dtdparser.jar,v: end of file
Index: fractal-xdoclet/example/lib/fractal-adl/fractal-adl.jar
cvs rdiff: failed to read diff file header /tmp/cvsAAjtrc for
fractal-adl.jar,v: end of file
Index: fractal-xdoclet/example/lib/fractal-adl/ow_deployment_scheduling.jar
cvs rdiff: failed to read diff file header /tmp/cvsXHGmF6 for
ow_deployment_scheduling.jar,v: end of file
Index: fractal-xdoclet/example/lib/fractal/fractal.jar
cvs rdiff: failed to read diff file header /tmp/cvs6LPlo7 for fractal.jar,v:
end of file
Index: fractal-xdoclet/example/lib/fractal/naming.jar
cvs rdiff: failed to read diff file header /tmp/cvstxroa8 for naming.jar,v:
end of file
Index: fractal-xdoclet/example/lib/julia/julia-asm.jar
cvs rdiff: failed to read diff file header /tmp/cvsqplrY8 for
julia-asm.jar,v: end of file
Index: fractal-xdoclet/example/lib/julia/julia-mixins.jar
cvs rdiff: failed to read diff file header /tmp/cvsV2UxZg for
julia-mixins.jar,v: end of file
Index: fractal-xdoclet/example/lib/julia/julia-runtime.jar
cvs rdiff: failed to read diff file header /tmp/cvsOWsGOh for
julia-runtime.jar,v: end of file
Index: fractal-xdoclet/example/lib/monolog/LICENSE.log4j
diff -u /dev/null fractal-xdoclet/example/lib/monolog/LICENSE.log4j:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/example/lib/monolog/LICENSE.log4j Thu Dec 16 17:57:18
2004
@@ -0,0 +1,48 @@
+/*
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
notice,
+ * this list of conditions and the following disclaimer in the
documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any,
must
+ * include the following acknowledgment: "This product includes
software
+ * developed by the Apache Software Foundation
(http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "log4j" and "Apache Software Foundation" must not be used
to
+ * endorse or promote products derived from this software without
prior
+ * written permission. For written permission, please contact
+ * apache@xxxxxxxxxxx
+ *
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of
the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY
DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many
individuals
+ * on behalf of the Apache Software Foundation. For more information on
the
+ * Apache Software Foundation, please see <http://www.apache.org/>.
+ *
+ */
Index: fractal-xdoclet/example/lib/monolog/LICENSE.monolog
diff -u /dev/null fractal-xdoclet/example/lib/monolog/LICENSE.monolog:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/example/lib/monolog/LICENSE.monolog Thu Dec 16 17:57:18
2004
@@ -0,0 +1,504 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.1 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
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random
Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
Index: fractal-xdoclet/example/lib/monolog/log4j-1.2.8.jar
cvs rdiff: failed to read diff file header /tmp/cvshIJ9Sd for
log4j-1.2.8.jar,v: end of file
Index: fractal-xdoclet/example/lib/monolog/ow_monolog.jar
cvs rdiff: failed to read diff file header /tmp/cvseIdLSf for
ow_monolog.jar,v: end of file
Index: fractal-xdoclet/example/lib/utils/ow_util_trace.jar
cvs rdiff: failed to read diff file header /tmp/cvs1UIgZn for
ow_util_trace.jar,v: end of file
Index:
fractal-xdoclet/example/src/fractal/org/objectweb/fractal/example/HelloWorld.fractal
diff -u /dev/null
fractal-xdoclet/example/src/fractal/org/objectweb/fractal/example/HelloWorld.fractal:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++
fractal-xdoclet/example/src/fractal/org/objectweb/fractal/example/HelloWorld.fractal
Thu Dec 16 17:57:18 2004
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE definition PUBLIC "-//objectweb.org//DTD Fractal ADL 2.0//EN"
"classpath://org/objectweb/fractal/adl/xml/basic.dtd">
+
+<definition name="org.objectweb.fractal.example.HelloWorld">
+ <interface name="r" role="server" signature="java.lang.Runnable"/>
+ <component name="client"
definition="org.objectweb.fractal.example.lib.FcClientImpl"/>
+ <component name="server"
definition="org.objectweb.fractal.example.lib.FcServerImpl(-->,2)"/>
+
+ <binding client="this.r" server="client.r"/>
+ <binding client="client.s" server="server.s"/>
+</definition>
Index:
fractal-xdoclet/example/src/fractal/org/objectweb/fractal/example/SharedHelloWorld.fractal
diff -u /dev/null
fractal-xdoclet/example/src/fractal/org/objectweb/fractal/example/SharedHelloWorld.fractal:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++
fractal-xdoclet/example/src/fractal/org/objectweb/fractal/example/SharedHelloWorld.fractal
Thu Dec 16 17:57:18 2004
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE definition PUBLIC "-//objectweb.org//DTD Fractal ADL 2.0//EN"
"classpath://org/objectweb/fractal/adl/xml/basic.dtd">
+
+<definition name="org.objectweb.fractal.example.SharedHelloWorld">
+ <interface name="r" role="server" signature="java.lang.Runnable"/>
+ <component name="a" definition="org.objectweb.fractal.example.HelloWorld"/>
+ <component name="b" definition="org.objectweb.fractal.example.HelloWorld">
+ <component name="server" definition="a/server"/>
+ </component>
+ <binding client="this.r" server="a.r"/>
+</definition>
Index:
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/Main.java
diff -u /dev/null
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/Main.java:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/Main.java
Thu Dec 16 17:57:18 2004
@@ -0,0 +1,36 @@
+package org.objectweb.fractal.example.api;
+/***
+ * Julia: France Telecom's implementation of the Fractal API
+ * Copyright (C) 2001-2002 France Telecom R&D
+ *
+ * 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: Eric.Bruneton@xxxxxxxxxxxxxxxxxxxx
+ *
+ * Author: Eric Bruneton
+ */
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @version $Revision: 1.1 $
+ * @created 14 déc. 2004
+ * @fractal server="m"
+ */
+public interface Main {
+ /**
+ * @param args
+ */
+ void main (String[] args);
+}
Index:
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/Service.java
diff -u /dev/null
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/Service.java:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/Service.java
Thu Dec 16 17:57:18 2004
@@ -0,0 +1,38 @@
+/***
+ * Julia: France Telecom's implementation of the Fractal API
+ * Copyright (C) 2001-2002 France Telecom R&D
+ *
+ * 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: Eric.Bruneton@xxxxxxxxxxxxxxxxxxxx
+ *
+ * Author: Eric Bruneton
+ */
+package org.objectweb.fractal.example.api;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @version $Revision: 1.1 $
+ * @created 14 déc. 2004
+ * @fractal server="s"
+ * @fractal server="serv"
+ */
+public interface Service
+{
+ /**
+ * @param msg
+ */
+ void print (String msg);
+}
Index:
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/ServiceAttributes.java
diff -u /dev/null
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/ServiceAttributes.java:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/api/ServiceAttributes.java
Thu Dec 16 17:57:18 2004
@@ -0,0 +1,55 @@
+/***
+ * Julia: France Telecom's implementation of the Fractal API
+ * Copyright (C) 2001-2002 France Telecom R&D
+ *
+ * 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: Eric.Bruneton@xxxxxxxxxxxxxxxxxxxx
+ *
+ * Author: Eric Bruneton
+ */
+package org.objectweb.fractal.example.api;
+
+import org.objectweb.fractal.api.control.AttributeController;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @version $Revision: 1.1 $
+ * @created 14 déc. 2004
+ * @fractal server="attribute-controller"
+ */
+public interface ServiceAttributes
+extends AttributeController
+{
+ /**
+ * @return the value of the header.
+ */
+ String getHeader();
+
+ /**
+ * @param header the value of the header.
+ */
+ void setHeader(String header);
+
+ /**
+ * @return the value of the counter.
+ */
+ int getCount();
+
+ /**
+ * @param count the counter value.
+ */
+ void setCount(int count);
+}
Index:
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/lib/ClientImpl.java
diff -u /dev/null
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/lib/ClientImpl.java:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/lib/ClientImpl.java
Thu Dec 16 17:57:18 2004
@@ -0,0 +1,91 @@
+/***
+ * Julia: France Telecom's implementation of the Fractal API
+ * Copyright (C) 2001-2002 France Telecom R&D
+ *
+ * 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: Eric.Bruneton@xxxxxxxxxxxxxxxxxxxx
+ *
+ * Author: Eric Bruneton
+ */
+package org.objectweb.fractal.example.lib;
+
+import org.objectweb.fractal.api.control.BindingController;
+import org.objectweb.fractal.example.api.Main;
+import org.objectweb.fractal.example.api.Service;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @version $Revision: 1.1 $
+ * @created 14 déc. 2004
+ * @fractal server="r" signature="java.lang.Runnable"
+ * @fractal client="s" signature="org.objectweb.fractal.example.api.Service"
+ */
+public class ClientImpl
+implements Runnable, Main, BindingController
+{
+
+ /** Comment for <code>service</code> */
+ private Service service;
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.example.api.Main#main(java.lang.String[])
+ */
+ public void main (final String[] args) {
+ this.service.print("hello world");
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.api.control.BindingController#listFc()
+ */
+ public String[] listFc () {
+ return new String[] { "s" };
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.fractal.api.control.BindingController#lookupFc(java.lang.String)
+ */
+ public Object lookupFc (final String cItf) {
+ if (cItf.equals("s")) {
+ return this.service;
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.fractal.api.control.BindingController#bindFc(java.lang.String,
java.lang.Object)
+ */
+ public void bindFc (final String cItf, final Object sItf) {
+ if (cItf.equals("s")) {
+ this.service = (Service)sItf;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.fractal.api.control.BindingController#unbindFc(java.lang.String)
+ */
+ public void unbindFc (final String cItf) {
+ if (cItf.equals("s")) {
+ this.service = null;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Runnable#run()
+ */
+ public void run() {
+ this.service.print("hello world");
+ }
+}
Index:
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/lib/ServerImpl.java
diff -u /dev/null
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/lib/ServerImpl.java:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++
fractal-xdoclet/example/src/java/org/objectweb/fractal/example/lib/ServerImpl.java
Thu Dec 16 17:57:18 2004
@@ -0,0 +1,90 @@
+/***
+ * Julia: France Telecom's implementation of the Fractal API
+ * Copyright (C) 2001-2002 France Telecom R&D
+ *
+ * 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: Eric.Bruneton@xxxxxxxxxxxxxxxxxxxx
+ *
+ * Author: Eric Bruneton
+ */
+package org.objectweb.fractal.example.lib;
+
+import org.objectweb.fractal.example.api.Service;
+import org.objectweb.fractal.example.api.ServiceAttributes;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @version $Revision: 1.1 $
+ * @created 14 déc. 2004
+ * @fractal
+ */
+public class ServerImpl
+implements Service, ServiceAttributes
+{
+ /**
+ * @fractal argument="head"
+ */
+ private String header = "";
+
+ /**
+ * @fractal argument="counter"
+ */
+ private int count = 0;
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.example.api.Service#print(java.lang.String)
+ */
+ public void print(final String msg) {
+ new Exception() {
+ public String toString () {
+ return "Server: print method called";
+ }
+ }.printStackTrace();
+ System.err.println("Server: begin printing...");
+ for (int i = 0; i < this.count; ++i) {
+ System.err.println(this.header + msg);
+ }
+ System.err.println("Server: print done.");
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.example.api.ServiceAttributes#getHeader()
+ */
+ public String getHeader() {
+ return this.header;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.objectweb.fractal.example.api.ServiceAttributes#setHeader(java.lang.String)
+ */
+ public void setHeader(final String header) {
+ this.header = header;
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.example.api.ServiceAttributes#getCount()
+ */
+ public int getCount() {
+ return this.count;
+ }
+
+ /* (non-Javadoc)
+ * @see org.objectweb.fractal.example.api.ServiceAttributes#setCount(int)
+ */
+ public void setCount(final int count) {
+ this.count = count;
+ }
+}
Index: fractal-xdoclet/example/src/julia/julia.cfg
diff -u /dev/null fractal-xdoclet/example/src/julia/julia.cfg:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/example/src/julia/julia.cfg Thu Dec 16 17:57:18 2004
@@ -0,0 +1,613 @@
+###############################################################################
+# STANDARD JULIA CONFIGURATION FILE - DO NOT EDIT
+#
+# PUT NEW OR OVERRIDEN DEFINITIONS AT THE END OF THE FILE, OR IN OTHER FILES
+###############################################################################
+
+#
-----------------------------------------------------------------------------
+# INTERFACE CLASS GENERATORS
+#
-----------------------------------------------------------------------------
+
+# default class generator, generates sub classes of BasicComponentInterface
+
+(interface-class-generator
+ (org.objectweb.fractal.julia.asm.InterfaceClassGenerator
+ org.objectweb.fractal.julia.BasicComponentInterface
+ )
+)
+
+#
-----------------------------------------------------------------------------
+# CONTROLLER INTERFACES
+#
+# each definition must be of the form (interface-name interface-signature)
+#
-----------------------------------------------------------------------------
+
+# Component interface
+
+(component-itf
+ (component org.objectweb.fractal.api.Component)
+)
+
+# TypeFactory interface
+
+(type-factory-itf
+ (type-factory org.objectweb.fractal.api.type.TypeFactory)
+)
+
+# GenericFactory interface
+
+(generic-factory-itf
+ (generic-factory org.objectweb.fractal.api.factory.GenericFactory)
+)
+
+# Factory interface
+
+(factory-itf
+ # choose one of the following definitions:
+ # the first one provides only the Fractal Factory interface
+ # the second one provides a Julia extension of the Factory interface
+ # (factory org.objectweb.fractal.api.factory.Factory)
+ (factory org.objectweb.fractal.julia.factory.Template)
+)
+
+(julia-factory-itf
+ (/template org.objectweb.fractal.julia.factory.Template)
+)
+
+# AttributeController interface
+
+(attribute-controller-itf
+ (attribute org.objectweb.fractal.api.control.AttributeController)
+)
+
+(julia-attribute-controller-itf
+ (/cloneable-attribute-controller
org.objectweb.fractal.julia.control.attribute.CloneableAttributeController)
+)
+
+# BindingController interface
+
+(binding-controller-itf
+ (binding-controller org.objectweb.fractal.api.control.BindingController)
+)
+
+# ContentController interface
+
+(content-controller-itf
+ (content-controller org.objectweb.fractal.api.control.ContentController)
+)
+
+# SuperController interface
+
+(super-controller-itf
+ # choose one of the following definitions:
+ # the first one provides only the Fractal SuperController interface
+ # the second one provides a Julia extension of the SuperController
interface
+ # (super-controller org.objectweb.fractal.api.control.SuperController)
+ (super-controller
org.objectweb.fractal.julia.control.content.SuperControllerNotifier)
+)
+
+(julia-super-controller-itf
+ (/super-controller-notifier
org.objectweb.fractal.julia.control.content.SuperControllerNotifier)
+)
+
+# LifeCycleController interface
+
+(lifecycle-controller-itf
+ # choose one of the following definitions:
+ # the first one provides only the Fractal LifeCycleController interface
+ # the second one provides a Julia extension of the LifeCycleController
interface
+ # (lifecycle-controller
org.objectweb.fractal.api.control.LifeCycleController)
+ (lifecycle-controller
org.objectweb.fractal.julia.control.lifecycle.LifeCycleCoordinator)
+)
+
+(julia-lifecycle-controller-itf
+ (/lifecycle-coordinator
org.objectweb.fractal.julia.control.lifecycle.LifeCycleCoordinator)
+)
+
+# NameController interface
+
+(name-controller-itf
+ (name-controller org.objectweb.fractal.api.control.NameController)
+)
+
+#
-----------------------------------------------------------------------------
+# CONTROLLER OBJECTS
+#
+# each definition must be an object descriptor
+#
-----------------------------------------------------------------------------
+
+# Component implementation
+
+(component-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ ComponentImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.BasicComponentMixin
+ # to check type related constraints, and for collection interfaces
support:
+ org.objectweb.fractal.julia.TypeComponentMixin
+ ))
+)
+
+# TypeFactory implementation
+
+(type-factory-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ TypeFactoryImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.type.BasicTypeFactoryMixin
+ ))
+)
+
+# GenericFactory implementation
+
+(generic-factory-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ GenericFactoryImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.BasicInitializableMixin
+ org.objectweb.fractal.julia.loader.UseLoaderMixin
+ org.objectweb.fractal.julia.type.UseTypeFactoryMixin
+ org.objectweb.fractal.julia.factory.BasicGenericFactoryMixin
+ # to check the component content descriptor with the Java Reflection API:
+ org.objectweb.fractal.julia.factory.CheckGenericFactoryMixin
+ ))
+)
+
+# Factory implementation (for template components)
+
+(factory-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ FactoryImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.UseComponentMixin
+ org.objectweb.fractal.julia.factory.BasicTemplateMixin
+ # to copy the template's attributes to the components it creates:
+
org.objectweb.fractal.julia.control.attribute.UseCloneableAttributeControllerMixin
+ org.objectweb.fractal.julia.factory.AttributeTemplateMixin
+ # to copy the template's name to the components it creates:
+ org.objectweb.fractal.julia.control.name.UseNameControllerMixin
+ org.objectweb.fractal.julia.factory.NameTemplateMixin
+ ))
+)
+
+# Factory implementation (for singleton template components)
+
+(singleton-factory-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ SingletonFactoryImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.UseComponentMixin
+ org.objectweb.fractal.julia.factory.BasicTemplateMixin
+ # to copy the template's attributes to the components it creates:
+
org.objectweb.fractal.julia.control.attribute.UseCloneableAttributeControllerMixin
+ org.objectweb.fractal.julia.factory.AttributeTemplateMixin
+ # to copy the template's name to the components it creates:
+ org.objectweb.fractal.julia.control.name.UseNameControllerMixin
+ org.objectweb.fractal.julia.factory.NameTemplateMixin
+ # to provide the singleton semantics to the template:
+ org.objectweb.fractal.julia.factory.SingletonTemplateMixin
+ ))
+)
+
+# BindingController implementation (for primitive components without content)
+
+(primitive-binding-controller-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ PrimitiveBindingControllerImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin
+ # to initialize the BasicBindingControllerMixin from the component's
type:
+ org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin
+ # to check some basic pre conditions (interface not already bound, ...)
+ org.objectweb.fractal.julia.UseComponentMixin
+ org.objectweb.fractal.julia.control.binding.CheckBindingMixin
+ # to check type related constraints for bindings:
+ org.objectweb.fractal.julia.control.binding.TypeBindingMixin
+ # to check content related constraints for bindings:
+ org.objectweb.fractal.julia.control.content.UseSuperControllerMixin
+ org.objectweb.fractal.julia.control.binding.ContentBindingMixin
+ # to check lifecycle related constraints for bindings:
+ org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin
+ org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin
+ ))
+)
+
+# BindingController implementation (for primitive components with content)
+
+(container-binding-controller-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ ContainerBindingControllerImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+
org.objectweb.fractal.julia.control.binding.ContainerBindingControllerMixin
+ # to skip Interface objects before delegating to the encapsulated
component:
+ #
org.objectweb.fractal.julia.control.binding.OptimizedContainerBindingMixin
+ # to manage output interceptors:
+ org.objectweb.fractal.julia.UseComponentMixin
+ org.objectweb.fractal.julia.control.binding.InterceptorBindingMixin
+ # to check some basic pre conditions (interface not already bound, ...)
+ org.objectweb.fractal.julia.control.binding.CheckBindingMixin
+ # to check type related constraints for bindings:
+ org.objectweb.fractal.julia.control.binding.TypeBindingMixin
+ # to check content related constraints for bindings:
+ org.objectweb.fractal.julia.control.content.UseSuperControllerMixin
+ org.objectweb.fractal.julia.control.binding.ContentBindingMixin
+ # to check lifecycle related constraints for bindings:
+ org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin
+ org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin
+ ))
+)
+
+# BindingController implementation (for composite components)
+
+(composite-binding-controller-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ CompositeBindingControllerImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin
+ # to initialize the BasicBindingControllerMixin from the component's
type:
+ org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin
+ # to check some basic pre conditions (interface not already bound, ...)
+ org.objectweb.fractal.julia.UseComponentMixin
+ org.objectweb.fractal.julia.control.binding.CheckBindingMixin
+ # to check type related constraints for bindings:
+ org.objectweb.fractal.julia.control.binding.TypeBindingMixin
+ # to check content related constraints for bindings:
+ org.objectweb.fractal.julia.control.content.UseSuperControllerMixin
+ org.objectweb.fractal.julia.control.binding.ContentBindingMixin
+ # to check lifecycle related constraints for bindings:
+ org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin
+ org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin
+ # to manage the getFcItfImpl links of the Interface objects:
+ # choose one of ComponentBindingMixin and OptimizedCompositeBindingMixin
+ # (the last one creates and updates shortcuts links when possible)
+ org.objectweb.fractal.julia.control.content.UseContentControllerMixin
+ # org.objectweb.fractal.julia.control.binding.CompositeBindingMixin
+
org.objectweb.fractal.julia.control.binding.OptimizedCompositeBindingMixin
+ ))
+)
+
+# ContentController implementation
+
+(content-controller-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ ContentControllerImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.UseComponentMixin
+ org.objectweb.fractal.julia.control.content.BasicContentControllerMixin
+ # to check some basic pre conditions, and to prevent hierarchy cycles:
+ org.objectweb.fractal.julia.control.content.CheckContentMixin
+ # to check type related constraints in getFcInternalInterface:
+ org.objectweb.fractal.julia.control.content.TypeContentMixin
+ # to check binding locality related constraints in removeFcSubComponent:
+ org.objectweb.fractal.julia.control.content.BindingContentMixin
+ # to check lifecycle related constraints:
+ org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin
+ org.objectweb.fractal.julia.control.content.LifeCycleContentMixin
+ # to notify sub components when they are added or removed from this
component:
+ org.objectweb.fractal.julia.control.content.SuperContentMixin
+ ))
+)
+
+# SuperController implementation
+
+(super-controller-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ SuperControllerImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.control.content.BasicSuperControllerMixin
+ ))
+)
+
+# LifeCycleController implementation (for primitive or composite components)
+
+(lifecycle-controller-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ LifeCycleControllerImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.UseComponentMixin
+
org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleCoordinatorMixin
+
org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleControllerMixin
+ # to check that mandatory client interfaces are bound in startFc:
+ org.objectweb.fractal.julia.control.lifecycle.TypeLifeCycleMixin
+ # to notify the encapsulated component (if present) when its state
changes:
+ org.objectweb.fractal.julia.control.lifecycle.ContainerLifeCycleMixin
+ ))
+)
+
+# LifeCycleController implementation (for composite components only)
+
+(composite-lifecycle-controller-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ CompositeLifeCycleControllerImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.UseComponentMixin
+
org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleCoordinatorMixin
+
org.objectweb.fractal.julia.control.lifecycle.OptimizedLifeCycleControllerMixin
+ # to check that mandatory client interfaces are bound in startFc:
+ org.objectweb.fractal.julia.control.lifecycle.TypeLifeCycleMixin
+ ))
+)
+
+# NameController implementation
+
+(name-controller-impl
+ ((org.objectweb.fractal.julia.asm.MixinClassGenerator
+ NameControllerImpl
+ org.objectweb.fractal.julia.BasicControllerMixin
+ org.objectweb.fractal.julia.control.name.BasicNameControllerMixin
+ ))
+)
+
+#
-----------------------------------------------------------------------------
+# CONTROLLER DESCRIPTORS
+#
-----------------------------------------------------------------------------
+
+(optimizationLevel
+ # choose one of the following optimization options:
+ none
+ # mergeControllers
+ # mergeControllersAndInterceptors
+ # mergeControllersAndContent
+ # mergeControllersInterceptorsAndContent
+)
+
+(bootstrap
+ (
+ 'interface-class-generator
+ (
+ 'component-itf
+ 'type-factory-itf
+ 'generic-factory-itf
+ (loader org.objectweb.fractal.julia.loader.Loader)
+ )
+ (
+ 'component-impl
+ 'type-factory-impl
+ 'generic-factory-impl
+ # choose one of the following classes:
+ # the first one loads all classes from the classpath
+ # the second one can generate missing classes on the fly, dynamically
+ # org.objectweb.fractal.julia.loader.BasicLoader
+ org.objectweb.fractal.julia.loader.DynamicLoader
+ )
+ (
+ # no interceptors
+ )
+ org.objectweb.fractal.julia.asm.MergeClassGenerator
+ none
+ )
+)
+
+(primitive
+ (
+ 'interface-class-generator
+ (
+ 'component-itf
+ 'binding-controller-itf
+ 'super-controller-itf
+ # only if super-controller-itf does not designate the Julia interface:
+ # 'julia-super-controller-itf
+ 'lifecycle-controller-itf
+ # only if lifecycle-controller-itf does not designate the Julia
interface:
+ # 'julia-lifecycle-controller-itf
+ 'name-controller-itf
+ )
+ (
+ 'component-impl
+ 'container-binding-controller-impl
+ 'super-controller-impl
+ 'lifecycle-controller-impl
+ 'name-controller-impl
+ )
+ (
+ (org.objectweb.fractal.julia.asm.InterceptorClassGenerator
+ org.objectweb.fractal.julia.asm.LifeCycleCodeGenerator
+ )
+ )
+ org.objectweb.fractal.julia.asm.MergeClassGenerator
+ 'optimizationLevel
+ )
+)
+
+(parametricPrimitive
+ 'primitive
+)
+
+(composite
+ (
+ 'interface-class-generator
+ (
+ 'component-itf
+ 'binding-controller-itf
+ 'content-controller-itf
+ 'super-controller-itf
+ # only if super-controller-itf does not designate the Julia interface:
+ # 'julia-super-controller-itf
+ 'lifecycle-controller-itf
+ # only if lifecycle-controller-itf does not designate the Julia
interface:
+ # 'julia-lifecycle-controller-itf
+ 'name-controller-itf
+ )
+ (
+ 'component-impl
+ 'composite-binding-controller-impl
+ 'content-controller-impl
+ 'super-controller-impl
+ 'composite-lifecycle-controller-impl
+ 'name-controller-impl
+ )
+ (
+ # no interceptors
+ )
+ org.objectweb.fractal.julia.asm.MergeClassGenerator
+ 'optimizationLevel
+ )
+)
+
+(parametricComposite
+ (
+ 'interface-class-generator
+ (
+ 'component-itf
+ 'binding-controller-itf
+ 'content-controller-itf
+ 'super-controller-itf
+ # only if super-controller-itf does not designate the Julia interface:
+ # 'julia-super-controller-itf
+ 'lifecycle-controller-itf
+ # only if lifecycle-controller-itf does not designate the Julia
interface:
+ # 'julia-lifecycle-controller-itf
+ 'name-controller-itf
+ )
+ (
+ 'component-impl
+ ((org.objectweb.fractal.julia.asm.AttributeControllerClassGenerator
+ ('attributeControllerInterface)
+ ))
+ 'composite-binding-controller-impl
+ 'content-controller-impl
+ 'super-controller-impl
+ 'composite-lifecycle-controller-impl
+ 'name-controller-impl
+ )
+ (
+ # no interceptors
+ )
+ org.objectweb.fractal.julia.asm.MergeClassGenerator
+ 'optimizationLevel
+ )
+)
+
+(primitiveTemplate
+ (
+ 'interface-class-generator
+ (
+ 'component-itf
+ 'binding-controller-itf
+ 'super-controller-itf
+ # only if super-controller-itf does not designate the Julia interface:
+ # 'julia-super-controller-itf
+ 'name-controller-itf
+ 'factory-itf
+ # only if factory-itf does not designate the Julia interface:
+ # 'julia-factory-itf
+ )
+ (
+ 'component-impl
+ 'primitive-binding-controller-impl
+ 'super-controller-impl
+ 'name-controller-impl
+ 'factory-impl
+ )
+ (
+ # no interceptors
+ )
+ org.objectweb.fractal.julia.asm.MergeClassGenerator
+ 'optimizationLevel
+ )
+)
+
+(parametricPrimitiveTemplate
+ (
+ 'interface-class-generator
+ (
+ 'component-itf
+ 'julia-attribute-controller-itf
+ 'binding-controller-itf
+ 'super-controller-itf
+ # only if super-controller-itf does not designate the Julia interface:
+ # 'julia-super-controller-itf
+ 'name-controller-itf
+ 'factory-itf
+ # only if factory-itf does not designate the Julia interface:
+ # 'julia-factory-itf
+ )
+ (
+ 'component-impl
+ ((org.objectweb.fractal.julia.asm.AttributeControllerClassGenerator
+ ('attributeControllerInterface)
+ ))
+ 'primitive-binding-controller-impl
+ 'super-controller-impl
+ 'name-controller-impl
+ 'factory-impl
+ )
+ (
+ # no interceptors
+ )
+ org.objectweb.fractal.julia.asm.MergeClassGenerator
+ 'optimizationLevel
+ )
+)
+
+(compositeTemplate
+ (
+ 'interface-class-generator
+ (
+ 'component-itf
+ 'binding-controller-itf
+ 'content-controller-itf
+ 'super-controller-itf
+ # only if super-controller-itf does not designate the Julia interface:
+ # 'julia-super-controller-itf
+ 'name-controller-itf
+ 'factory-itf
+ # only if factory-itf does not designate the Julia interface:
+ # 'julia-factory-itf
+ )
+ (
+ 'component-impl
+ 'composite-binding-controller-impl
+ 'content-controller-impl
+ 'super-controller-impl
+ 'name-controller-impl
+ 'factory-impl
+ )
+ (
+ # no interceptors
+ )
+ org.objectweb.fractal.julia.asm.MergeClassGenerator
+ 'optimizationLevel
+ )
+)
+
+(parametricCompositeTemplate
+ (
+ 'interface-class-generator
+ (
+ 'component-itf
+ 'julia-attribute-controller-itf
+ 'binding-controller-itf
+ 'content-controller-itf
+ 'super-controller-itf
+ # only if super-controller-itf does not designate the Julia interface:
+ # 'julia-super-controller-itf
+ 'name-controller-itf
+ 'factory-itf
+ # only if factory-itf does not designate the Julia interface:
+ # 'julia-factory-itf
+ )
+ (
+ 'component-impl
+ ((org.objectweb.fractal.julia.asm.AttributeControllerClassGenerator
+ ('attributeControllerInterface)
+ ))
+ 'composite-binding-controller-impl
+ 'content-controller-impl
+ 'super-controller-impl
+ 'name-controller-impl
+ 'factory-impl
+ )
+ (
+ # no interceptors
+ )
+ org.objectweb.fractal.julia.asm.MergeClassGenerator
+ 'optimizationLevel
+ )
+)
+
+###############################################################################
+# CUSTOM CONFIGURATION INFORMATION
+###############################################################################
+
+# no custom definitions
Index: fractal-xdoclet/example/src/monolog/monolog.properties
diff -u /dev/null fractal-xdoclet/example/src/monolog/monolog.properties:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/example/src/monolog/monolog.properties Thu Dec 16
17:57:19 2004
@@ -0,0 +1,54 @@
+# ====================================================================
+#
+# GoTM: GoTM is an open Transaction Monitor
+# Copyright (C) 2000-2004 INRIA - USTL - LIFL - GOAL
+# Contact: gotm@xxxxxxxxxxxxx
+#
+# 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.1 of the License, or 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
+#
+# Initial developer(s): Romain Rouvoy
+# Contributor(s):
+#
+# ====================================================================
+# $Id: monolog.properties,v 1.1 2004/12/16 16:57:19 rouvoy Exp $
+# ====================================================================
+# Log configuration file #
+
+# Define which wrapper to use (= log4j)
+log.config.classname
org.objectweb.util.monolog.wrapper.log4j.MonologLoggerFactory
+
+# tty : simple console handler
+handler.tty.type Console
+handler.tty.output System.out
+#handler.tty.pattern <%h> [%-3t{1}]: %m%n
+handler.tty.pattern [%-3t{1}]: %m%n
+
+# logf : file handler with extended headers
+#handler.logf.type File
+#handler.logf.output gotm.log
+#handler.logf.pattern <%-3t{1}> [%10r] %7p - %m%n
+
+# root definition for all loggers
+logger.root.handler.0 tty
+logger.root.level DEBUG
+
+# Launcher Traces for handlers:
+# o tty --> prints logs to the standart output
+# o logf --> prints log to a file (monolog.log)
+
+logger.org.objectweb.gotm.handler.0 tty
+logger.org.objectweb.gotm.additivity false
+logger.org.objectweb.gotm.level DEBUG
Index: fractal-xdoclet/lib/xdoclet/commons-collections-2.0.jar
cvs rdiff: failed to read diff file header /tmp/cvsRG8vlw for
commons-collections-2.0.jar,v: end of file
Index: fractal-xdoclet/lib/xdoclet/commons-logging.jar
cvs rdiff: failed to read diff file header /tmp/cvsO8q2mx for
commons-logging.jar,v: end of file
Index: fractal-xdoclet/lib/xdoclet/log4j.jar
cvs rdiff: failed to read diff file header /tmp/cvshd5fcr for log4j.jar,v:
end of file
Index: fractal-xdoclet/lib/xdoclet/xdoclet-1.3-SNAPSHOT.jar
cvs rdiff: failed to read diff file header /tmp/cvs4dkM9s for
xdoclet-1.3-SNAPSHOT.jar,v: end of file
Index: fractal-xdoclet/lib/xdoclet/xdoclet-xml.xdt
diff -u /dev/null fractal-xdoclet/lib/xdoclet/xdoclet-xml.xdt:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/lib/xdoclet/xdoclet-xml.xdt Thu Dec 16 17:57:18 2004
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+<!DOCTYPE xdoclet-module PUBLIC "-//XDoclet Team//DTD XDoclet Module
1.0//EN" "http://xdoclet.sourceforge.net/dtd/xdoclet-module_1_0.dtd">
+-->
+
+<XDtComment:comment>
+This template builds the deployment descriptor for modules
+</XDtComment:comment>
+
+<xdoclet-module>
+ <!--
+ <XDtClass:forAllClasses>
+ <XDtClass:fullClassName/>
+ </XDtClass:forAllClasses>
+ -->
+
+ <XDtClass:forAllClasses type="xdoclet.template.TemplateTagHandler"
abstract="false">
+ <taghandler
+ namespace="<XDtClass:classTagValue tagName="xdoclet.taghandler"
paramName="namespace" mandatory="true"/>"
+ class="<XDtClass:fullClassName/>"
+ />
+ </XDtClass:forAllClasses>
+
+ <XDtClass:forAllClasses type="xdoclet.SubTask" abstract="false">
+ <subtask
+ name="<XDtClass:classTagValue tagName="ant.element" paramName="name"
mandatory="true"/>"
+ implementation-class="<XDtClass:fullClassName/>"
+ parent-task-class="<XDtClass:classTagValue tagName="ant.element"
paramName="parent" mandatory="true"/>"
+ />
+ </XDtClass:forAllClasses>
+</xdoclet-module>
Index: fractal-xdoclet/lib/xdoclet/xjavadoc-1.1.jar
cvs rdiff: failed to read diff file header /tmp/cvssfHFcC for
xjavadoc-1.1.jar,v: end of file
Index:
fractal-xdoclet/src/java/org/objectweb/fractal/xdoclet/FcAdlSubTask.java
diff -u /dev/null
fractal-xdoclet/src/java/org/objectweb/fractal/xdoclet/FcAdlSubTask.java:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++ fractal-xdoclet/src/java/org/objectweb/fractal/xdoclet/FcAdlSubTask.java
Thu Dec 16 17:57:19 2004
@@ -0,0 +1,125 @@
+/*====================================================================
+
+GoTM: GoTM is an open Transaction Monitor
+Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
+Contact: gotm-team@xxxxxxxxxxxxx
+
+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.1 of the License, or 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
+
+Initial developer(s): Romain Rouvoy.
+Contributor(s): .
+
+---------------------------------------------------------------------
+$Id: FcAdlSubTask.java,v 1.1 2004/12/16 16:57:19 rouvoy Exp $
+====================================================================*/
+package org.objectweb.fractal.xdoclet;
+
+import xdoclet.TemplateSubTask;
+
+/**
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @version $Revision: 1.1 $
+ * @created 15 déc. 2004
+ * @ant.element name="fractal-adl" parent="xdoclet.DocletTask"
display-name="Standard Subtask for Fractal ADL generation"
+ */
+public class FcAdlSubTask
+extends TemplateSubTask
+{
+ private final static String FC_ADL_DTD = "basic.dtd";
+ private final static String FC_ADL_DEFAULT_TEMPLATE =
"resources/FractalADLDescriptor.xdt";
+ private final static String FC_PREFIX = "Fc";
+
+ private String dtd = FC_ADL_DTD;
+ private String prefix = FC_PREFIX ;
+ private String suffix = "" ;
+ private String templateController ;
+ private String controller ;
+
+ /**
+ * @return Returns the prefix.
+ */
+ public final String getPrefix() {
+ return this.prefix;
+ }
+ /**
+ * @param prefix The prefix to set.
+ */
+ public final void setPrefix(final String prefix) {
+ this.prefix = prefix;
+ }
+ /**
+ * @return Returns the suffix.
+ */
+ public final String getSuffix() {
+ return this.suffix;
+ }
+ /**
+ * @param suffix The suffix to set.
+ */
+ public final void setSuffix(final String suffix) {
+ this.suffix = suffix;
+ }
+ /**
+ * @return Returns the controller.
+ */
+ public final String getController() {
+ return this.controller;
+ }
+
+ /**
+ * @param controller The controller to set.
+ */
+ public final void setController(final String controller) {
+ this.controller = controller;
+ }
+
+ /**
+ * @return Returns the templateController.
+ */
+ public final String getTemplateController() {
+ return this.templateController;
+ }
+
+ /**
+ * @param templateController The templateController to set.
+ */
+ public final void setTemplateController(final String templateController)
{
+ this.templateController = templateController;
+ }
+ /**
+ * @return Returns the dtd.
+ */
+ public final String getDtd() {
+ return this.dtd;
+ }
+
+ /**
+ * @param dtd The dtd to set.
+ */
+ public final void setDtd(final String dtd) {
+ this.dtd = dtd;
+ }
+
+ /**
+ * Default Constructor.
+ */
+ public FcAdlSubTask() {
+ super();
+
super.setTemplateURL(getClass().getResource(FC_ADL_DEFAULT_TEMPLATE));
+ super.setDestinationFile(getPrefix()+"{0}"+getSuffix()+".fractal");
+ super.setHavingClassTag("fractal");
+ }
+}
Index:
fractal-xdoclet/src/java/org/objectweb/fractal/xdoclet/FractalTagsHandler.java
diff -u /dev/null
fractal-xdoclet/src/java/org/objectweb/fractal/xdoclet/FractalTagsHandler.java:1.1
--- /dev/null Thu Dec 16 17:57:19 2004
+++
fractal-xdoclet/src/java/org/objectweb/fractal/xdoclet/FractalTagsHandler.java
Thu Dec 16 17:57:19 2004
@@ -0,0 +1,329 @@
+/*====================================================================
+
+ GoTM: GoTM is an open Transaction Monitor
+ Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
+ Contact: gotm-team@xxxxxxxxxxxxx
+
+ 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.1 of the License, or 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
+
+ Initial developer(s): Romain Rouvoy.
+ Contributor(s): .
+
+ ---------------------------------------------------------------------
+ $Id: FractalTagsHandler.java,v 1.1 2004/12/16 16:57:19 rouvoy Exp $
+ ====================================================================*/
+package org.objectweb.fractal.xdoclet;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Iterator;
+import java.util.Properties;
+
+import org.apache.commons.logging.Log;
+
+import xdoclet.XDocletException;
+import xdoclet.tagshandler.ClassTagsHandler;
+import xdoclet.util.LogUtil;
+import xjavadoc.XClass;
+import xjavadoc.XField;
+
+/**
+ * Tags relating to Fractal components being processed and class-level
attributes.
+ * @author <a href="mailto:Romain.Rouvoy@xxxxxxx">Romain Rouvoy</a>
+ * @version $Revision: 1.1 $
+ * @xdoclet.taghandler namespace="Fractal"
+ */
+public class FractalTagsHandler
+extends ClassTagsHandler
+{
+ /**
+ * @param itf the interface to check.
+ * @return true if the requested interface is an AttributeController
interface.
+ */
+ protected boolean isAttributeController(XClass itf) {
+ return
itf.isImplementingInterface("org.objectweb.fractal.api.control.AttributeController");
+ }
+
+ /**
+ * @param itf the interface to check.
+ * @return true if the interface is a controller.
+ */
+ protected boolean isController(XClass itf) {
+ if(isAttributeController(itf))
+ return true;
+ if(itf.isA("org.objectweb.fractal.api.control.BindingController"))
+ return true;
+ if(itf.isA("org.objectweb.fractal.api.control.LifeCycleController"))
+ return true;
+ return false;
+ }
+
+ /**
+ * @return the list of server interfaces (without controllers).
+ */
+ protected List getFcInterfaces() {
+ Iterator initial = getCurrentClass().getInterfaces().iterator();
+ List itfs = new LinkedList();
+ while(initial.hasNext()) {
+ XClass itf = (XClass) initial.next();
+ if (!isController(itf))
+ itfs.add(itf);
+ }
+ return itfs;
+ }
+
+ /**
+ * @return An iterator on the server interfaces.
+ */
+ protected Iterator interfaceIterator() {
+ return getFcInterfaces().iterator();
+ }
+
+ /**
+ * @return true if the component has server interfaces (controllers are
not considered).
+ */
+ protected boolean ifHasInterfaces() {
+ try {
+ return !getFcInterfaces().isEmpty();
+ } catch (NullPointerException ex) { return false; }
+ }
+
+ protected boolean ifHasSuperComponent() {
+ try {
+ return (getCurrentClass().getSuperclass() != null);
+ } catch (NullPointerException ex) { return false; }
+ }
+
+
+ /**
+ * @param template the url of the generated file.
+ * @throws XDocletException
+ * @doc.tag type="block"
+ */
+ public void ifHasInterfaces(String template) throws XDocletException {
+ if (ifHasInterfaces()||ifHasSuperComponent()) generate(template);
+ }
+
+ /**
+ * @param template the url of the generated file.
+ * @throws XDocletException
+ * @doc.tag type="block"
+ */
+ public void ifHasAttributeController(String template) throws
XDocletException {
+ XClass oldClass = getCurrentClass();
+ Iterator initial = oldClass.getInterfaces().iterator();
+ while(initial.hasNext()) {
+ XClass itf = (XClass) initial.next();
+ if (isAttributeController(itf)) {
+// pushCurrentClass(itf);
+ generate(template);
+ }
+ }
+// setCurrentClass(oldClass);
+ }
+
+
+
+ /**
+ * Iterates over all implemented server interfaces.
+ * @param template the url of the generated file.
+ * @throws XDocletException
+ * @doc.tag type="block"
+ */
+ public void forAllInterfaces(String template) throws XDocletException {
+ XClass oldClass = getCurrentClass();
+ Log log = LogUtil.getLog(FractalTagsHandler.class,
"forAllInterfaces");
+
+ for (Iterator i = interfaceIterator();i.hasNext();) {
+ setCurrentClass((XClass)i.next());
+ log.debug("Interface identified "+getCurrentClass().getName());
+ generate(template);
+ }
+ setCurrentClass(oldClass);
+ }
+
+
+ /**
+ * @param template The body of the block tag
+ * @param attributes The attributes of the template tag
+ * @throws XDocletException
+ * @doc.tag type="block"
+ * @doc.param name="tagName" optional="false" description="The tag name."
+ * @doc.param name="paramName" description="The parameter name. If not
specified, then the raw
+ * content of the tag is returned."
+ */
+ public void forAllInterfacesWithTag(String template, Properties
attributes) throws XDocletException {
+ XClass oldClass = getCurrentClass();
+ Log log = LogUtil.getLog(FractalTagsHandler.class,
"forAllInterfaces");
+ for (Iterator i = interfaceIterator();i.hasNext();) {
+ setCurrentClass((XClass)i.next());
+ log.debug("Interface identified: "+getCurrentClass().getName());
+ if (hasTag(attributes, FOR_CLASS)) {
+ generate(template);
+ }
+ }
+ setCurrentClass(oldClass);
+ }
+
+ /**
+ * @param template The body of the block tag
+ * @param attributes The attributes of the template tag
+ * @throws XDocletException
+ * @doc.tag type="block"
+ * @doc.param name="tagName" optional="false" description="The tag name."
+ * @doc.param name="paramName" description="The parameter name. If not
specified, then the raw
+ * content of the tag is returned."
+ */
+ public void forAllInterfacesWithoutTag(String template, Properties
attributes) throws XDocletException {
+ XClass oldClass = getCurrentClass();
+ Log log = LogUtil.getLog(FractalTagsHandler.class,
"forAllInterfaces");
+
+ for (Iterator i = interfaceIterator();i.hasNext();) {
+ setCurrentClass((XClass)i.next());
+ log.debug("Interface identified: "+getCurrentClass().getName());
+ if (!hasTag(attributes, FOR_CLASS)) {
+ generate(template);
+ }
+ }
+ setCurrentClass(oldClass);
+ }
+
+ /**
+ * @return the short name of the component.
+ * @throws XDocletException
+ * @doc.tag type="content"
+ */
+ public String componentName() throws XDocletException {
+ return "Fc"+className();
+ }
+
+ /**
+ * @return the full component name
+ * @throws XDocletException
+ * @doc.tag type="content"
+ */
+ public String fullComponentName() throws XDocletException {
+ return fullClassName().replaceAll(className(), componentName());
+ }
+
+ /**
+ * @return return the default name of the interface.
+ * @throws XDocletException
+ * @doc.tag type="content"
+ */
+ public String interfaceName() throws XDocletException {
+ return className().toLowerCase();
+ }
+
+ /**
+ * @return the full classname of the interface implementing the
AttributeController
+ * @throws XDocletException
+ * @doc.tag type="content"
+ */
+ public String fullAttributeController() throws XDocletException {
+ Iterator initial = getCurrentClass().getInterfaces().iterator();
+ while(initial.hasNext()) {
+ XClass itf = (XClass) initial.next();
+ if (isAttributeController(itf))
+ return itf.getQualifiedName();
+ }
+ throw new XDocletException("No AttributeController is defined.");
+ }
+
+ /**
+ * @param current
+ * @param buffer the buffer to fill.
+ * @param attributes the attributes
+ * @throws XDocletException
+ */
+ protected void appendDefinition(XClass current, StringBuffer buffer,
final Properties attributes) throws XDocletException{
+ boolean first = (buffer.length()==0);
+ setCurrentClass(current);
+ if (hasTag(attributes, FOR_CLASS)) {
+ if (!first) buffer.append(",");
+ buffer.append(fullComponentName());
+ }
+ }
+
+ /**
+ * @return
+ * @param attributes
+ * @throws XDocletException
+ * @doc.tag type="content"
+ */
+ public String extendClause(Properties attributes) throws
XDocletException{
+ XClass oldClass = getCurrentClass();
+ StringBuffer buffer = new StringBuffer();
+ if (ifHasSuperComponent())
+ appendDefinition(getCurrentClass().getSuperclass(),buffer,
attributes);
+ setCurrentClass(oldClass);
+ for (Iterator i = interfaceIterator();i.hasNext();)