Commit ca5af82e authored by Lionel Seinturier's avatar Lionel Seinturier
Browse files

Tagging version 2.2.6.1.

parent f891260d
<!--
! AOKell
! Copyright (C) 2005-2006 INRIA, France Telecom, USTL
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Lesser General Public
! License as published by the Free Software Foundation; either
! version 2 of the License, or (at your option) any later version.
!
! This library is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! Lesser General Public License for more details.
!
! You should have received a copy of the GNU Lesser General Public
! License along with this library; if not, write to the Free Software
! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
!
! Contact: Lionel.Seinturier@lifl.fr
-->
<project name="AOKell-lib" default="jar.lib">
<target name="jar.lib">
<!-- fcinterface feature -->
<condition property="jar.feature.fctinterface" value="rt">
<not> <isset property="feature.fcinterface.ct" /> </not>
</condition>
<condition property="jar.feature.fctinterface" value="ct">
<isset property="feature.fcinterface.ct" />
</condition>
<!-- glue feature -->
<condition property="jar.feature.glue" value="spoon">
<not> <isset property="feature.glue.aspectj" /> </not>
</condition>
<condition property="jar.feature.glue" value="aspectj">
<isset property="feature.glue.aspectj" />
</condition>
<!-- loggable feature -->
<condition property="jar.feature.loggable" value="off">
<not> <isset property="feature.loggable.on" /> </not>
</condition>
<condition property="jar.feature.loggable" value="on">
<isset property="feature.loggable.on" />
</condition>
<!-- membrane feature -->
<condition property="jar.feature.membrane" value="oo">
<not> <isset property="feature.membrane.comp" /> </not>
</condition>
<condition property="jar.feature.membrane" value="comp">
<isset property="feature.membrane.comp" />
</condition>
<!-- .jar file creation -->
<jar jarfile="${out.dist.lib}/aokell-lib-${product.version}.jar">
<fileset dir="${out.build}">
<include name="org/objectweb/fractal/aokell/*.class"/>
<include name="org/objectweb/fractal/aokell/lib/**/*.class"/>
<include name="org/objectweb/fractal/aokell/lib/**/*.fractal"/>
<include name="aokell/generated/**/*.class"/>
</fileset>
<manifest>
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Implementation-Title" value="AOKell Library" />
<attribute name="Implementation-Version" value="${product.version}" />
<attribute name="Implementation-Vendor" value="INRIA Futurs - France Telecom R&amp;D" />
<attribute name="AOKell-feature-fcinterface" value="${jar.feature.fctinterface}" />
<attribute name="AOKell-feature-glue" value="${jar.feature.glue}" />
<attribute name="AOKell-feature-loggable" value="${jar.feature.loggable}" />
<attribute name="AOKell-feature-membrane" value="${jar.feature.membrane}" />
</manifest>
</jar>
</target>
</project>
Manifest-Version: 1.0
Implementation-Title: "AOKell Source Files"
Implementation-Version: "2.0"
Implementation-Vendor: "INRIA - France Telecom"
<!--
! AOKell
! Copyright (C) 2005-2006 INRIA, France Telecom, USTL
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Lesser General Public
! License as published by the Free Software Foundation; either
! version 2 of the License, or (at your option) any later version.
!
! This library is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! Lesser General Public License for more details.
!
! You should have received a copy of the GNU Lesser General Public
! License along with this library; if not, write to the Free Software
! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
!
! Contact: Lionel.Seinturier@lifl.fr
-->
<project name="AOKell-src" default="jar.src">
<target name="jar.src">
<jar jarfile="${out.dist}/aokell-src-${product.version}.jar" manifest="${archive}/aokell-src.mf">
<fileset dir="${basedir}">
<patternset refid="srcset" />
</fileset>
</jar>
</target>
</project>
Manifest-Version: 1.0
Implementation-Title: "AOKell Tools"
Implementation-Version: "2.0"
Implementation-Vendor: "INRIA - France Telecom"
<!--
! AOKell
! Copyright (C) 2005-2006 INRIA, France Telecom, USTL
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Lesser General Public
! License as published by the Free Software Foundation; either
! version 2 of the License, or (at your option) any later version.
!
! This library is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! Lesser General Public License for more details.
!
! You should have received a copy of the GNU Lesser General Public
! License along with this library; if not, write to the Free Software
! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
!
! Contact: Lionel.Seinturier@lifl.fr
-->
<project name="AOKell-tools" default="jar.tools">
<target name="jar.tools">
<jar jarfile="${out.dist.lib}/aokell-tools-${product.version}.jar" manifest="${archive}/aokell-tools.mf">
<fileset dir="${out.build}">
<include name="org/objectweb/fractal/aokell/tools/**/*.class" />
<include name="org/objectweb/fractal/aokell/tools/**/*.fractal" />
</fileset>
</jar>
</target>
</project>
Manifest-Version: 1.0
Implementation-Title: "Julia API"
Implementation-Version: "2.1.3"
Implementation-Vendor: "France Telecom"
<!--
! AOKell
! Copyright (C) 2005-2006 INRIA, France Telecom, USTL
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Lesser General Public
! License as published by the Free Software Foundation; either
! version 2 of the License, or (at your option) any later version.
!
! This library is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! Lesser General Public License for more details.
!
! You should have received a copy of the GNU Lesser General Public
! License along with this library; if not, write to the Free Software
! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
!
! Contact: Lionel.Seinturier@lifl.fr
-->
<project name="Julia-API" default="jar.julia-api">
<target name="jar.julia-api">
<jar jarfile="${out.dist.lib}/julia-api.jar" manifest="${archive}/julia-api.mf">
<fileset dir="${out.build}">
<include name="org/objectweb/fractal/julia/**/*.class" />
<exclude name="org/objectweb/fractal/julia/conform/**/*.class" />
<exclude name="org/objectweb/fractal/julia/perf/**/*.class" />
</fileset>
</jar>
</target>
</project>
<!--
! AOKell
! Copyright (C) 2005-2006 INRIA, France Telecom, USTL
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Lesser General Public
! License as published by the Free Software Foundation; either
! version 2 of the License, or (at your option) any later version.
!
! This library is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! Lesser General Public License for more details.
!
! You should have received a copy of the GNU Lesser General Public
! License along with this library; if not, write to the Free Software
! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
!
! Contact: Lionel.Seinturier@lifl.fr
-->
<project name="AOKell" default="help">
<!-- ==================================== -->
<!-- ========== HELP ========== -->
<!-- ==================================== -->
<target name="help" description="Display AOKell help">
<echo message="AOKell-2.0 Binary Distribution"/>
<echo message="INRIA &amp; France Telecom implementation of the Fractal Specifications"/>
<echo message=""/>
<echo message="To run one of the examples, type:"/>
<echo message=" cd examples/xxx"/>
<echo message=" ant execute"/>
<echo message=""/>
<echo message=" where xxx is one of:"/>
<echo message=" - bench: JACBenchmark application (AO style)"/>
<echo message=" - benchsep: JACBenchmark application (JL style)"/>
<echo message=" - collection: A simple example with collection interfaces and autobound components"/>
<echo message=" - comanche: The comanche web server"/>
<echo message=" - estore: A simple example with collection interfaces"/>
<echo message=" - helloworld: Hello world application"/>
</target>
</project>
============================================================================
AOKell
Copyright (C) 2005-2006 INRIA, France Telecom, USTL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Contact: Lionel.Seinturier@lifl.fr
Author: Lionel Seinturier
============================================================================
product.name AOKell
product.version 2.0
# ---------------
# AOKell features
# ---------------
# The fcinterface feature determines the way Fractal interface instances are
# generated. Fractal interfaces may be generated at run-time with ASM (which
# is the default case), or Fractal interfaces may be pre-compiled.
# Uncomment the following property for the version of AOKell with pre-compiled
# interfaces (the pre-compiler is
# org.objectweb.fractal.aokell.lib.tools.interf.InterfaceGenerator).
# feature.fcinterface.ct true
# The glue feature determines which solution is used to glue components with
# the control level. The glue may be performed with AspectJ or with Spoon
# (which is the default case).
# Uncomment the following property to use AspectJ.
# feature.glue.aspectj true
# The membrane feature determines the way control membrane are implemented.
# Control membranes may be implemented with objects (which is the default
# case), or control membranes may be implemented with components.
# Uncomment the following property for using the version of AOKell with
# componentized membranes.
# feature.membrane.comp true
# The loggable feature determines whether primitive components are equipped
# with a monolog logger or not (which is the default case).
# Uncomment the following property for using primitive components equipped
# with a monolog logger.
# feature.loggable.on true
# The platform feature determines the targeted Java platform. The platform may
# be J2SE (which is the default case), J2ME with the CDC configuration or J2ME
# with the CLDC configuration. Information on the CDC and CLDC configurations of
# J2ME may found on http://java.sun.com/j2me/
# Uncomment one of the following lines for generating a J2ME (CDC or CLDC)
# compliant version of AOKell.
# feature.platform j2me-cdc
# feature.platform j2me-cldc
# -----------------
# Common properties
# -----------------
# Library paths
objectweb.ant.tasks.path ${basedir}/config/ow_util_ant_tasks.jar
junit.path ${basedir}/test/lib/junit.jar
# URLs of external Javadocs
fractal.url http://www.objectweb.org/fractal/current/doc/javadoc/fractal
asm.url http://www.objectweb.org/asm/current/doc/javadoc/user
jdk.url http://java.sun.com/j2se/1.3/docs/api
aspectjrt.url http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api
This diff is collapsed.
This directory contains the external libraries required for building the
product, but which are not necessary to use it.
/***
* AOKell
* Copyright (C) 2005-2006 INRIA, France Telecom, USTL
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Contact: Lionel.Seinturier@lifl.fr
*
* Author: Lionel Seinturier
*/
package org.objectweb.fractal.aokell.glue;
/**
* This aspect introduces the features provided by the logger controller.
* These features are introduced for all classes that implement the
* LoggerType marker interface.
*
* @author Lionel Seinturier <Lionel.Seinturier@lifl.fr>
*/
import aokell.dream.lib.control.logger.LoggerControllerItf;
import aokell.dream.lib.membrane.marker.LoggerType;
import aokell.lib.util.MFractalHelper;
import org.objectweb.dream.control.logger.Loggable;
public aspect ALoggerController {
// -----------------------------------------------------------
// Introduction of the LoggerController interface
// Delegate calls to an instance
// -----------------------------------------------------------
public void LoggerType.setBaseName(String name) {
LoggerControllerItf _loggerc = (LoggerControllerItf) MFractalHelper.lookupFcController(getFcMembrane(),"logger-controller");
_loggerc.setBaseName(name);
}
public String LoggerType.getBaseName() {
LoggerControllerItf _loggerc = (LoggerControllerItf) MFractalHelper.lookupFcController(getFcMembrane(),"logger-controller");
return _loggerc.getBaseName();
}
public int LoggerType.getLoggerLevel(String loggerName) {
LoggerControllerItf _loggerc = (LoggerControllerItf) MFractalHelper.lookupFcController(getFcMembrane(),"logger-controller");
return _loggerc.getLoggerLevel(loggerName);
}
public void LoggerType.setLoggerLevel(String loggerName, int level) {
LoggerControllerItf _loggerc = (LoggerControllerItf) MFractalHelper.lookupFcController(getFcMembrane(),"logger-controller");
_loggerc.setLoggerLevel(loggerName,level);
}
public String[] LoggerType.getLoggerNames() {
LoggerControllerItf _loggerc = (LoggerControllerItf) MFractalHelper.lookupFcController(getFcMembrane(),"logger-controller");
return _loggerc.getLoggerNames();
}
// -----------------------------------------------------------
// Introduction of the LoggerControllerRegister interface
// -----------------------------------------------------------
public void LoggerType.register(String loggerName, Loggable loggable) {
LoggerControllerItf _loggerc = (LoggerControllerItf) MFractalHelper.lookupFcController(getFcMembrane(),"logger-controller");
_loggerc.register(loggerName,loggable);
}
public void LoggerType.unregiser(String loggerName, Loggable loggable) {
LoggerControllerItf _loggerc = (LoggerControllerItf) MFractalHelper.lookupFcController(getFcMembrane(),"logger-controller");
_loggerc.unregiser(loggerName,loggable);
}
}
/**
* Dream
* Copyright (C) 2003-2004 INRIA Rhone-Alpes
*
* 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: dream@objectweb.org
*
* Initial developer(s): Matthieu Leclercq
* Contributor(s): Lionel Seinturier
*/
package org.objectweb.fractal.aokell.dream.lib.control.logger;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.objectweb.dream.control.logger.Loggable;
import org.objectweb.dream.control.logger.LoggerControllerRegister;
import org.objectweb.dream.control.logger.Util;
import org.objectweb.fractal.api.Component;
import org.objectweb.fractal.api.Type;
import org.objectweb.util.monolog.Monolog;
import org.objectweb.util.monolog.api.BasicLevel;
import org.objectweb.util.monolog.api.Logger;
import org.objectweb.fractal.aokell.lib.control.CloneCtrlException;
import org.objectweb.fractal.aokell.lib.control.Controller;
import org.objectweb.fractal.aokell.lib.membrane.Membrane;
/**
* Basic implementation of logger controller. A <code>"monolog-conf-file"</code>
* initialisation parameter can be set to specify the location of the monolog
* configuration file.
*/
public class BasicLoggerControllerImpl
implements LoggerControllerItf, Controller
{
String baseName;
/** Map associating logger name and list of registred loggables */
Map registrations;
/** Map associating logger name and logger instance */
Map loggers;
Logger baseLogger;
public BasicLoggerControllerImpl() {
initFcController();
}
private void initFcController() {
String monologConfFile = "etc/monolog.properties";
if (Monolog.monologFactory == Monolog.getDefaultMonologFactory())
{
Monolog.getMonologFactory(monologConfFile);
}
baseName = Util.getNextUnnamedBaseName();
registrations = new HashMap();
loggers = new HashMap();
}
// -------------------------------------------------------------------------
// Fields and methods added and overriden by the mixin class
// -------------------------------------------------------------------------
/**
* @see LoggerControllerItf#getBaseName()
*/
public String getBaseName()
{
return baseName;
}
/**
* @see LoggerControllerItf#setBaseName(String)
*/
public void setBaseName(String name)
{
this.baseName = name;
baseNameChanged();
}
/**
* @see LoggerControllerItf#getLoggerLevel(String)
*/
public int getLoggerLevel(String loggerName)
{
Logger l = (Logger) loggers.get(loggerName);
if (l == null)
{
if (loggerName == null)
{
if (baseLogger == null)
{
baseLogger = Monolog.monologFactory.getLogger(baseName);
}
l = baseLogger;
}
else
{
return INHERIT;
}
}
int i = l.getCurrentIntLevel();
if (i == BasicLevel.DEBUG)
return DEBUG;
if (i == BasicLevel.INFO)
return INFO;
if (i == BasicLevel.WARN)
return WARN;
if (i == BasicLevel.ERROR)
return ERROR;
if (i == BasicLevel.FATAL)
return FATAL;
if (i == BasicLevel.INHERIT)
return INHERIT;
throw new IllegalStateException("Unknown logger level : " + i);
}
/**
* @see LoggerControllerItf#setLoggerLevel(String, int)
*/
public void setLoggerLevel(String loggerName, int level)
{
Logger l = (Logger) loggers.get(loggerName);
if (l == null)
{
if (loggerName == null)
{
if (baseLogger == null)
{
baseLogger = Monolog.monologFactory.getLogger(baseName);
}
l = baseLogger;
}
else
{
return;
}
}
switch (level)
{
case DEBUG :
l.setLevel(BasicLevel.LEVEL_DEBUG);
break;
case INFO :
l.setLevel(BasicLevel.LEVEL_INFO);
break;
case WARN :
l.setLevel(BasicLevel.LEVEL_WARN);
break;
case ERROR :
l.setLevel(BasicLevel.LEVEL_ERROR);
break;