Mail Archive Home | fractal-commits List | November 2006 Index
| <-- Date Index --> | <-- Thread Index --> |
Date: Thursday, November 23, 2006 @ 15:35:17
Author: seintur
Path: /cvsroot/fractal/julia
Added: src/org/objectweb/fractal/juliak/membrane/BasicMixinLayers.java
src/org/objectweb/fractal/juliak/membrane/MixinLayersDef.java
Modified: src/org/objectweb/fractal/juliak/membrane/BasicMembranes.java
src/org/objectweb/fractal/juliak/membrane/JuliakMembranes.java
src/org/objectweb/fractal/juliak/membrane/MembraneDefProvider.java
src/org/objectweb/fractal/juliak/spoon/KeepGeneratedProcessor.java
src/org/objectweb/fractal/juliak/spoon/SpoonMixinClassProcessor.java
test/conform/org/objectweb/fractal/julia/conform/controllers/StatMembranes.java
Removed: src/org/objectweb/fractal/juliak/spoon/AOKellMixinLayers.java
src/org/objectweb/fractal/juliak/spoon/BasicMixinLayers.java
src/org/objectweb/fractal/juliak/spoon/MixinLayersDef.java
Let the membrane and mixin layers be defined in the same class (easier to
deal with when writing an extension.)
---------------------------------------------------------------------------------+
src/org/objectweb/fractal/juliak/membrane/BasicMembranes.java
| 2
src/org/objectweb/fractal/juliak/membrane/BasicMixinLayers.java
| 448 ++++++++++
src/org/objectweb/fractal/juliak/membrane/JuliakMembranes.java
| 63 +
src/org/objectweb/fractal/juliak/membrane/MembraneDefProvider.java
| 5
src/org/objectweb/fractal/juliak/membrane/MixinLayersDef.java
| 55 +
src/org/objectweb/fractal/juliak/spoon/AOKellMixinLayers.java
| 40
src/org/objectweb/fractal/juliak/spoon/BasicMixinLayers.java
| 448 ----------
src/org/objectweb/fractal/juliak/spoon/KeepGeneratedProcessor.java
| 5
src/org/objectweb/fractal/juliak/spoon/MixinLayersDef.java
| 55 -
src/org/objectweb/fractal/juliak/spoon/SpoonMixinClassProcessor.java
| 5
test/conform/org/objectweb/fractal/julia/conform/controllers/StatMembranes.java
| 6
11 files changed, 581 insertions(+), 551 deletions(-)
Index: julia/src/org/objectweb/fractal/juliak/membrane/BasicMembranes.java
diff -u
julia/src/org/objectweb/fractal/juliak/membrane/BasicMembranes.java:1.4
julia/src/org/objectweb/fractal/juliak/membrane/BasicMembranes.java:1.5
--- julia/src/org/objectweb/fractal/juliak/membrane/BasicMembranes.java:1.4
Fri Nov 10 21:06:37 2006
+++ julia/src/org/objectweb/fractal/juliak/membrane/BasicMembranes.java Thu
Nov 23 15:35:17 2006
@@ -30,7 +30,7 @@
* @author Lionel Seinturier <Lionel.Seinturier@xxxxxxx>
* @since 2.5
*/
-public class BasicMembranes implements MembraneDefProvider {
+public class BasicMembranes {
/**
* Return the definitions of membranes supported by Juliak.
Index: julia/src/org/objectweb/fractal/juliak/membrane/BasicMixinLayers.java
diff -u /dev/null
julia/src/org/objectweb/fractal/juliak/membrane/BasicMixinLayers.java:1.1
--- /dev/null Thu Nov 23 15:35:17 2006
+++ julia/src/org/objectweb/fractal/juliak/membrane/BasicMixinLayers.java
Thu Nov 23 15:35:17 2006
@@ -0,0 +1,448 @@
+/***
+ * Julia
+ * 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@xxxxxxx
+ *
+ * Author: Lionel Seinturier
+ */
+
+package org.objectweb.fractal.juliak.membrane;
+
+import org.objectweb.fractal.julia.BasicComponentMixin;
+import org.objectweb.fractal.julia.BasicControllerMixin;
+import org.objectweb.fractal.julia.TypeComponentMixin;
+import org.objectweb.fractal.julia.UseComponentMixin;
+import
org.objectweb.fractal.julia.control.attribute.UseCloneableAttributeControllerMixin;
+import
org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin;
+import org.objectweb.fractal.julia.control.binding.CheckBindingMixin;
+import
org.objectweb.fractal.julia.control.binding.ContainerBindingControllerMixin;
+import org.objectweb.fractal.julia.control.binding.ContentBindingMixin;
+import org.objectweb.fractal.julia.control.binding.InterceptorBindingMixin;
+import org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin;
+import
org.objectweb.fractal.julia.control.binding.OptimizedCompositeBindingMixin;
+import org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin;
+import org.objectweb.fractal.julia.control.binding.TypeBindingMixin;
+import
org.objectweb.fractal.julia.control.content.BasicContentControllerMixin;
+import org.objectweb.fractal.julia.control.content.BasicSuperControllerMixin;
+import org.objectweb.fractal.julia.control.content.BindingContentMixin;
+import org.objectweb.fractal.julia.control.content.CheckContentMixin;
+import org.objectweb.fractal.julia.control.content.LifeCycleContentMixin;
+import org.objectweb.fractal.julia.control.content.SuperContentMixin;
+import org.objectweb.fractal.julia.control.content.TypeContentMixin;
+import org.objectweb.fractal.julia.control.content.UseContentControllerMixin;
+import org.objectweb.fractal.julia.control.content.UseSuperControllerMixin;
+import
org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleControllerMixin;
+import
org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleCoordinatorMixin;
+import org.objectweb.fractal.julia.control.lifecycle.ContainerLifeCycleMixin;
+import
org.objectweb.fractal.julia.control.lifecycle.OptimizedLifeCycleControllerMixin;
+import org.objectweb.fractal.julia.control.lifecycle.TypeLifeCycleMixin;
+import
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin;
+import org.objectweb.fractal.julia.control.name.BasicNameControllerMixin;
+import org.objectweb.fractal.julia.control.name.UseNameControllerMixin;
+import org.objectweb.fractal.julia.factory.AttributeTemplateMixin;
+import org.objectweb.fractal.julia.factory.BasicTemplateMixin;
+import org.objectweb.fractal.julia.factory.NameTemplateMixin;
+import
org.objectweb.fractal.juliak.control.interceptor.CollectionItfComponentMixin;
+import
org.objectweb.fractal.juliak.control.interceptor.CollectionItfContentControllerMixin;
+import
org.objectweb.fractal.juliak.control.interceptor.InterceptorControllerMixin;
+
+/**
+ * This class defines the basic mixin layers which are used by Juliak.
+ *
+ * @author Lionel Seinturier <Lionel.Seinturier@xxxxxxx>
+ * @since 2.5
+ */
+public class BasicMixinLayers {
+
+ public MixinLayersDef[] getMixinLayers() {
+ return LAYERS;
+ }
+
+
+ // -------------------------------------------------
+ // Component controller definition
+ // -------------------------------------------------
+
+ final public static MixinLayersDef componentControllerDef =
+ new MixinLayersDef(
+ "org.objectweb.fractal.juliak.ComponentImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ BasicComponentMixin.class,
+ TypeComponentMixin.class,
+ CollectionItfComponentMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Binding controller definitions
+ // -------------------------------------------------
+
+ final public static MixinLayersDef compositeBindingControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.binding.CompositeBindingControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ BasicBindingControllerMixin.class,
+ TypeBasicBindingMixin.class,
+ UseComponentMixin.class,
+ CheckBindingMixin.class,
+ TypeBindingMixin.class,
+ UseSuperControllerMixin.class,
+ ContentBindingMixin.class,
+ UseLifeCycleControllerMixin.class,
+ LifeCycleBindingMixin.class,
+ UseContentControllerMixin.class,
+ OptimizedCompositeBindingMixin.class
+ });
+
+ final public static MixinLayersDef containerBindingControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.binding.ContainerBindingControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ ContainerBindingControllerMixin.class,
+ UseComponentMixin.class,
+ InterceptorBindingMixin.class,
+ CheckBindingMixin.class,
+ TypeBindingMixin.class,
+ UseSuperControllerMixin.class,
+ ContentBindingMixin.class,
+ UseLifeCycleControllerMixin.class,
+ LifeCycleBindingMixin.class
+ });
+
+ final public static MixinLayersDef primitiveBindingControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.binding.PrimitiveBindingControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ BasicBindingControllerMixin.class,
+ TypeBasicBindingMixin.class,
+ UseComponentMixin.class,
+ CheckBindingMixin.class,
+ TypeBindingMixin.class,
+ UseSuperControllerMixin.class,
+ ContentBindingMixin.class,
+
+ /*
+ * PrimitiveBindingControllerImpl is used for
+ * primitiveTemplate and parametricPrimitiveTemplate
+ * components. Template components do not have a
lifecycle
+ * controller. The following two layers are included in
+ * julia.cfg but shouldn't be.
+ */
+// UseLifeCycleControllerMixin.class,
+// LifeCycleBindingMixin.class
+ });
+
+ final public static MixinLayersDef flatPrimitiveBindingControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.binding.FlatPrimitiveBindingControllerImpl",
+ new Class[]{
+ org.objectweb.fractal.julia.BasicControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin.class,
+ org.objectweb.fractal.julia.UseComponentMixin.class,
+
org.objectweb.fractal.julia.control.binding.CheckBindingMixin.class,
+
org.objectweb.fractal.julia.control.binding.TypeBindingMixin.class,
+
+ /*
+ * FlatPrimitiveBindingControllerImpl is used for
+ * flatPrimitiveTemplate and
flatParametricPrimitiveTemplate
+ * components. Template components do not have a
lifecycle
+ * controller. The following two layers are included in
+ * julia.cfg but shouldn't be.
+ */
+//
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin.class,
+//
org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin.class
+ });
+
+ final public static MixinLayersDef flatContainerBindingControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.binding.FlatContainerBindingControllerImpl",
+ new Class[]{
+ org.objectweb.fractal.julia.BasicControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.ContainerBindingControllerMixin.class,
+ org.objectweb.fractal.julia.UseComponentMixin.class,
+
org.objectweb.fractal.julia.control.binding.InterceptorBindingMixin.class,
+
org.objectweb.fractal.julia.control.binding.CheckBindingMixin.class,
+
org.objectweb.fractal.julia.control.binding.TypeBindingMixin.class,
+
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Auto-binding controller definitions
+ // -------------------------------------------------
+
+ final public static MixinLayersDef containerAutoBindingControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.binding.ContainerAutoBindingControllerImpl",
+ new Class[]{
+ org.objectweb.fractal.julia.BasicControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.ContainerBindingControllerMixin.class,
+ org.objectweb.fractal.julia.UseComponentMixin.class,
+
org.objectweb.fractal.julia.control.binding.InterceptorBindingMixin.class,
+
org.objectweb.fractal.julia.control.binding.CheckBindingMixin.class,
+
org.objectweb.fractal.julia.control.binding.TypeBindingMixin.class,
+
org.objectweb.fractal.julia.control.content.UseSuperControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.ContentBindingMixin.class,
+
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin.class,
+
org.objectweb.fractal.julia.control.binding.AutoBindingMixin.class
+ });
+
+ final public static MixinLayersDef compositeAutoBindingControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.binding.CompositeAutoBindingControllerImpl",
+ new Class[]{
+ org.objectweb.fractal.julia.BasicControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin.class,
+ org.objectweb.fractal.julia.UseComponentMixin.class,
+
org.objectweb.fractal.julia.control.binding.CheckBindingMixin.class,
+
org.objectweb.fractal.julia.control.binding.TypeBindingMixin.class,
+
org.objectweb.fractal.julia.control.content.UseSuperControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.ContentBindingMixin.class,
+
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin.class,
+
org.objectweb.fractal.julia.control.content.UseContentControllerMixin.class,
+
org.objectweb.fractal.julia.control.binding.OptimizedCompositeBindingMixin.class,
+
org.objectweb.fractal.julia.control.binding.AutoBindingMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Lifecycle controller definitions
+ // -------------------------------------------------
+
+ final public static MixinLayersDef compositeLifeCycleControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.lifecycle.CompositeLifeCycleControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ UseComponentMixin.class,
+ BasicLifeCycleCoordinatorMixin.class,
+ OptimizedLifeCycleControllerMixin.class,
+ TypeLifeCycleMixin.class
+ });
+
+ final public static MixinLayersDef lifeCycleControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.lifecycle.LifeCycleControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ UseComponentMixin.class,
+ BasicLifeCycleCoordinatorMixin.class,
+ BasicLifeCycleControllerMixin.class,
+ TypeLifeCycleMixin.class,
+ ContainerLifeCycleMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Content controller definition
+ // -------------------------------------------------
+
+ final public static MixinLayersDef contentControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.content.ContentControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ UseComponentMixin.class,
+ BasicContentControllerMixin.class,
+ CheckContentMixin.class,
+ TypeContentMixin.class,
+ CollectionItfContentControllerMixin.class,
+ BindingContentMixin.class,
+ UseLifeCycleControllerMixin.class,
+ LifeCycleContentMixin.class,
+ SuperContentMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Name controller definition
+ // -------------------------------------------------
+
+ final public static MixinLayersDef nameControllerDef =
+ new MixinLayersDef(
+ "org.objectweb.fractal.juliak.control.name.NameControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ BasicNameControllerMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Super controller definition
+ // -------------------------------------------------
+
+ final public static MixinLayersDef superControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.content.SuperControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ BasicSuperControllerMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Factory controller definition
+ // -------------------------------------------------
+
+ final public static MixinLayersDef factoryControllerDef =
+ new MixinLayersDef(
+ "org.objectweb.fractal.juliak.factory.FactoryControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ UseComponentMixin.class,
+ BasicTemplateMixin.class,
+ UseCloneableAttributeControllerMixin.class,
+ AttributeTemplateMixin.class,
+ UseNameControllerMixin.class,
+ NameTemplateMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Interceptor controller definition
+ // -------------------------------------------------
+
+ final public static MixinLayersDef interceptorControllerDef =
+ new MixinLayersDef(
+
"org.objectweb.fractal.juliak.control.interceptor.InterceptorCompControllerImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+ InterceptorControllerMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Merged control membranes
+ // -------------------------------------------------
+
+ final public static MixinLayersDef primitiveMembraneDef =
+ new MixinLayersDef(
+ "org.objectweb.fractal.juliak.PrimitiveMembraneImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+
+ // Interceptor controller
+ InterceptorControllerMixin.class,
+
+ // Super controller
+ BasicSuperControllerMixin.class,
+
+ // Binding controller
+ ContainerBindingControllerMixin.class,
+ InterceptorBindingMixin.class,
+ CheckBindingMixin.class,
+ TypeBindingMixin.class,
+ UseSuperControllerMixin.class,
+ ContentBindingMixin.class,
+ UseLifeCycleControllerMixin.class,
+ LifeCycleBindingMixin.class,
+
+ // Lifecycle controller
+ UseComponentMixin.class,
+ BasicLifeCycleCoordinatorMixin.class,
+ BasicLifeCycleControllerMixin.class,
+ TypeLifeCycleMixin.class,
+ ContainerLifeCycleMixin.class,
+
+ // Name controller
+ BasicNameControllerMixin.class,
+
+ // Component controller
+ BasicComponentMixin.class,
+ TypeComponentMixin.class
+ });
+
+ final public static MixinLayersDef compositeMembraneDef =
+ new MixinLayersDef(
+ "org.objectweb.fractal.juliak.CompositeMembraneImpl",
+ new Class[]{
+ BasicControllerMixin.class,
+
+ // Content controller
+ BasicContentControllerMixin.class,
+ CheckContentMixin.class,
+ TypeContentMixin.class,
+ BindingContentMixin.class,
+ LifeCycleContentMixin.class,
+ SuperContentMixin.class,
+
+ // Super controller
+ BasicSuperControllerMixin.class,
+
+ // Binding controller
+ BasicBindingControllerMixin.class,
+ TypeBasicBindingMixin.class,
+ CheckBindingMixin.class,
+ TypeBindingMixin.class,
+ UseSuperControllerMixin.class,
+ ContentBindingMixin.class,
+ UseLifeCycleControllerMixin.class,
+ LifeCycleBindingMixin.class,
+ UseContentControllerMixin.class,
+ OptimizedCompositeBindingMixin.class,
+
+ // Lifecycle controller
+ UseComponentMixin.class,
+ BasicLifeCycleCoordinatorMixin.class,
+ OptimizedLifeCycleControllerMixin.class,
+ TypeLifeCycleMixin.class,
+
+ // Name controller
+ BasicNameControllerMixin.class,
+
+ // Component controller
+ BasicComponentMixin.class,
+ TypeComponentMixin.class
+ });
+
+
+ // -------------------------------------------------
+ // Layers definition
+ // -------------------------------------------------
+
+ final public static MixinLayersDef[] LAYERS =
+ new MixinLayersDef[] {
+ componentControllerDef,
+ compositeBindingControllerDef,
+ containerBindingControllerDef,
+ primitiveBindingControllerDef,
+ containerAutoBindingControllerDef,
+ compositeAutoBindingControllerDef,
+ flatPrimitiveBindingControllerDef,
+ flatContainerBindingControllerDef,
+ compositeLifeCycleControllerDef,
+ lifeCycleControllerDef,
+ contentControllerDef,
+ nameControllerDef,
+ superControllerDef,
+ factoryControllerDef,
+ interceptorControllerDef,
+ primitiveMembraneDef,
+ compositeMembraneDef
+ };
+
+}
Index: julia/src/org/objectweb/fractal/juliak/membrane/JuliakMembranes.java
diff -u
julia/src/org/objectweb/fractal/juliak/membrane/JuliakMembranes.java:1.4
julia/src/org/objectweb/fractal/juliak/membrane/JuliakMembranes.java:1.5
--- julia/src/org/objectweb/fractal/juliak/membrane/JuliakMembranes.java:1.4
Fri Nov 10 21:06:37 2006
+++ julia/src/org/objectweb/fractal/juliak/membrane/JuliakMembranes.java
Thu Nov 23 15:35:17 2006
@@ -50,13 +50,67 @@
/*
* Retrieve additional membrane definitions.
*/
- String add = System.getProperty(Juliak.CONFIG_PROP_NAME);
- if( add==null || add.length()==0 ) {
+ List<MembraneDefProvider> mdps = getAdditionalMembraneDefs();
+ if( mdps == null ) {
return basic;
}
List<MembraneDef> all = new ArrayList<MembraneDef>();
all.addAll(Arrays.asList(basic));
+ for (MembraneDefProvider mdp : mdps) {
+ MembraneDef[] mdef = mdp.getMembraneDefs();
+ if( mdef != null ) {
+ all.addAll(Arrays.asList(mdef));
+ }
+ }
+
+ return (MembraneDef[]) all.toArray(new MembraneDef[all.size()]);
+ }
+
+ /**
+ * Return an array of mixin layer definitions.
+ */
+ public MixinLayersDef[] getMixinLayers() {
+
+ MixinLayersDef[] basic = new BasicMixinLayers().getMixinLayers();
+
+ /*
+ * Retrieve additional membrane definitions.
+ */
+ List<MembraneDefProvider> mdps = getAdditionalMembraneDefs();
+ if( mdps == null ) {
+ return basic;
+ }
+
+ List<MixinLayersDef> all = new ArrayList<MixinLayersDef>();
+ all.addAll(Arrays.asList(basic));
+ for (MembraneDefProvider mdp : mdps) {
+ MixinLayersDef[] mldef = mdp.getMixinLayers();
+ if( mldef != null ) {
+ all.addAll(Arrays.asList(mldef));
+ }
+ }
+
+ return (MixinLayersDef[]) all.toArray(new
MixinLayersDef[all.size()]);
+ }
+
+
+ // ---------------------------------------------------------
+ // Implementation specific
+ // ---------------------------------------------------------
+
+ /**
+ * Return the list of additional membrane definition providers which can
be
+ * specified with the {@link Juliak#CONFIG_PROP_NAME} system property.
+ */
+ private static List<MembraneDefProvider> getAdditionalMembraneDefs() {
+
+ String add = System.getProperty(Juliak.CONFIG_PROP_NAME);
+ if( add==null || add.length()==0 ) {
+ return null;
+ }
+
+ List<MembraneDefProvider> mdps = new
ArrayList<MembraneDefProvider>();
StringTokenizer st = new StringTokenizer(add);
while( st.hasMoreTokens() ) {
String name = st.nextToken();
@@ -69,11 +123,10 @@
throw new RuntimeException(msg);
}
MembraneDefProvider mdp = (MembraneDefProvider) o;
- MembraneDef[] ms = mdp.getMembraneDefs();
- all.addAll(Arrays.asList(ms));
+ mdps.add(mdp);
}
- return (MembraneDef[]) all.toArray(new MembraneDef[all.size()]);
+ return mdps;
}
private static Object loadAndInstanciate( String name ) {
Index:
julia/src/org/objectweb/fractal/juliak/membrane/MembraneDefProvider.java
diff -u
julia/src/org/objectweb/fractal/juliak/membrane/MembraneDefProvider.java:1.2
julia/src/org/objectweb/fractal/juliak/membrane/MembraneDefProvider.java:1.3
---
julia/src/org/objectweb/fractal/juliak/membrane/MembraneDefProvider.java:1.2
Fri Nov 10 21:06:37 2006
+++ julia/src/org/objectweb/fractal/juliak/membrane/MembraneDefProvider.java
Thu Nov 23 15:35:17 2006
@@ -23,6 +23,7 @@
package org.objectweb.fractal.juliak.membrane;
+
/**
* Interface for defining control membranes.
*
@@ -35,4 +36,8 @@
*/
public MembraneDef[] getMembraneDefs();
+ /**
+ * Return an array of mixin layer definitions.
+ */
+ public MixinLayersDef[] getMixinLayers();
}
Index: julia/src/org/objectweb/fractal/juliak/membrane/MixinLayersDef.java
diff -u /dev/null
julia/src/org/objectweb/fractal/juliak/membrane/MixinLayersDef.java:1.1
--- /dev/null Thu Nov 23 15:35:17 2006
+++ julia/src/org/objectweb/fractal/juliak/membrane/MixinLayersDef.java Thu
Nov 23 15:35:17 2006
@@ -0,0 +1,55 @@
+/***
+ * Julia
+ * 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@xxxxxxx
+ *
+ * Author: Lionel Seinturier
+ */
+
+package org.objectweb.fractal.juliak.membrane;
+
+/**
+ * This class defines the mixin layers which are used to generate AOKell
source
+ * code. These layers are used to generate controller implementations in a
+ * modular way.
+ *
+ * @author Lionel Seinturier <Lionel.Seinturier@xxxxxxx>
+ * @since 2.5
+ */
+public class MixinLayersDef {
+
+ /** The name of target class holding the mixed code. */
+ private String className;
+
+ /** The layers to mix. */
+ private Class[] layers;
+
+ public MixinLayersDef(String className, Class[] layers) {
+ this.className = className;
+ this.layers = layers;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public Class[] getLayers() {
+ return layers;
+ }
+
+}
Index: julia/src/org/objectweb/fractal/juliak/spoon/AOKellMixinLayers.java
diff -u
julia/src/org/objectweb/fractal/juliak/spoon/AOKellMixinLayers.java:1.3
julia/src/org/objectweb/fractal/juliak/spoon/AOKellMixinLayers.java:removed
--- julia/src/org/objectweb/fractal/juliak/spoon/AOKellMixinLayers.java:1.3
Fri Nov 10 21:06:37 2006
+++ julia/src/org/objectweb/fractal/juliak/spoon/AOKellMixinLayers.java Thu
Nov 23 15:35:17 2006
@@ -1,40 +0,0 @@
-/***
- * Julia
- * 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@xxxxxxx
- *
- * Author: Lionel Seinturier
- */
-
-package org.objectweb.fractal.juliak.spoon;
-
-
-/**
- * This class allows accessing the mixin layers which are used to generate
- * AOKell source code. These layers are used to generate controller
- * implementations in a modular way.
- *
- * @author Lionel Seinturier <Lionel.Seinturier@xxxxxxx>
- * @since 2.5
- */
-public class AOKellMixinLayers {
-
- public static MixinLayersDef[] getMixinLayers() {
- return BasicMixinLayers.getMixinLayers();
- }
-}
Index: julia/src/org/objectweb/fractal/juliak/spoon/BasicMixinLayers.java
diff -u
julia/src/org/objectweb/fractal/juliak/spoon/BasicMixinLayers.java:1.4
julia/src/org/objectweb/fractal/juliak/spoon/BasicMixinLayers.java:removed
--- julia/src/org/objectweb/fractal/juliak/spoon/BasicMixinLayers.java:1.4
Fri Nov 10 21:06:37 2006
+++ julia/src/org/objectweb/fractal/juliak/spoon/BasicMixinLayers.java Thu
Nov 23 15:35:17 2006
@@ -1,448 +0,0 @@
-/***
- * Julia
- * 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@xxxxxxx
- *
- * Author: Lionel Seinturier
- */
-
-package org.objectweb.fractal.juliak.spoon;
-
-import org.objectweb.fractal.julia.BasicComponentMixin;
-import org.objectweb.fractal.julia.BasicControllerMixin;
-import org.objectweb.fractal.julia.TypeComponentMixin;
-import org.objectweb.fractal.julia.UseComponentMixin;
-import
org.objectweb.fractal.julia.control.attribute.UseCloneableAttributeControllerMixin;
-import
org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin;
-import org.objectweb.fractal.julia.control.binding.CheckBindingMixin;
-import
org.objectweb.fractal.julia.control.binding.ContainerBindingControllerMixin;
-import org.objectweb.fractal.julia.control.binding.ContentBindingMixin;
-import org.objectweb.fractal.julia.control.binding.InterceptorBindingMixin;
-import org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin;
-import
org.objectweb.fractal.julia.control.binding.OptimizedCompositeBindingMixin;
-import org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin;
-import org.objectweb.fractal.julia.control.binding.TypeBindingMixin;
-import
org.objectweb.fractal.julia.control.content.BasicContentControllerMixin;
-import org.objectweb.fractal.julia.control.content.BasicSuperControllerMixin;
-import org.objectweb.fractal.julia.control.content.BindingContentMixin;
-import org.objectweb.fractal.julia.control.content.CheckContentMixin;
-import org.objectweb.fractal.julia.control.content.LifeCycleContentMixin;
-import org.objectweb.fractal.julia.control.content.SuperContentMixin;
-import org.objectweb.fractal.julia.control.content.TypeContentMixin;
-import org.objectweb.fractal.julia.control.content.UseContentControllerMixin;
-import org.objectweb.fractal.julia.control.content.UseSuperControllerMixin;
-import
org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleControllerMixin;
-import
org.objectweb.fractal.julia.control.lifecycle.BasicLifeCycleCoordinatorMixin;
-import org.objectweb.fractal.julia.control.lifecycle.ContainerLifeCycleMixin;
-import
org.objectweb.fractal.julia.control.lifecycle.OptimizedLifeCycleControllerMixin;
-import org.objectweb.fractal.julia.control.lifecycle.TypeLifeCycleMixin;
-import
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin;
-import org.objectweb.fractal.julia.control.name.BasicNameControllerMixin;
-import org.objectweb.fractal.julia.control.name.UseNameControllerMixin;
-import org.objectweb.fractal.julia.factory.AttributeTemplateMixin;
-import org.objectweb.fractal.julia.factory.BasicTemplateMixin;
-import org.objectweb.fractal.julia.factory.NameTemplateMixin;
-import
org.objectweb.fractal.juliak.control.interceptor.CollectionItfComponentMixin;
-import
org.objectweb.fractal.juliak.control.interceptor.CollectionItfContentControllerMixin;
-import
org.objectweb.fractal.juliak.control.interceptor.InterceptorControllerMixin;
-
-/**
- * This class defines the basic mixin layers which are used by AOKell.
- *
- * @author Lionel Seinturier <Lionel.Seinturier@xxxxxxx>
- * @since 2.5
- */
-public class BasicMixinLayers {
-
- public static MixinLayersDef[] getMixinLayers() {
- return LAYERS;
- }
-
-
- // -------------------------------------------------
- // Component controller definition
- // -------------------------------------------------
-
- final public static MixinLayersDef componentControllerDef =
- new MixinLayersDef(
- "org.objectweb.fractal.juliak.ComponentImpl",
- new Class[]{
- BasicControllerMixin.class,
- BasicComponentMixin.class,
- TypeComponentMixin.class,
- CollectionItfComponentMixin.class
- });
-
-
- // -------------------------------------------------
- // Binding controller definitions
- // -------------------------------------------------
-
- final public static MixinLayersDef compositeBindingControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.binding.CompositeBindingControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- BasicBindingControllerMixin.class,
- TypeBasicBindingMixin.class,
- UseComponentMixin.class,
- CheckBindingMixin.class,
- TypeBindingMixin.class,
- UseSuperControllerMixin.class,
- ContentBindingMixin.class,
- UseLifeCycleControllerMixin.class,
- LifeCycleBindingMixin.class,
- UseContentControllerMixin.class,
- OptimizedCompositeBindingMixin.class
- });
-
- final public static MixinLayersDef containerBindingControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.binding.ContainerBindingControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- ContainerBindingControllerMixin.class,
- UseComponentMixin.class,
- InterceptorBindingMixin.class,
- CheckBindingMixin.class,
- TypeBindingMixin.class,
- UseSuperControllerMixin.class,
- ContentBindingMixin.class,
- UseLifeCycleControllerMixin.class,
- LifeCycleBindingMixin.class
- });
-
- final public static MixinLayersDef primitiveBindingControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.binding.PrimitiveBindingControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- BasicBindingControllerMixin.class,
- TypeBasicBindingMixin.class,
- UseComponentMixin.class,
- CheckBindingMixin.class,
- TypeBindingMixin.class,
- UseSuperControllerMixin.class,
- ContentBindingMixin.class,
-
- /*
- * PrimitiveBindingControllerImpl is used for
- * primitiveTemplate and parametricPrimitiveTemplate
- * components. Template components do not have a
lifecycle
- * controller. The following two layers are included in
- * julia.cfg but shouldn't be.
- */
-// UseLifeCycleControllerMixin.class,
-// LifeCycleBindingMixin.class
- });
-
- final public static MixinLayersDef flatPrimitiveBindingControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.binding.FlatPrimitiveBindingControllerImpl",
- new Class[]{
- org.objectweb.fractal.julia.BasicControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin.class,
- org.objectweb.fractal.julia.UseComponentMixin.class,
-
org.objectweb.fractal.julia.control.binding.CheckBindingMixin.class,
-
org.objectweb.fractal.julia.control.binding.TypeBindingMixin.class,
-
- /*
- * FlatPrimitiveBindingControllerImpl is used for
- * flatPrimitiveTemplate and
flatParametricPrimitiveTemplate
- * components. Template components do not have a
lifecycle
- * controller. The following two layers are included in
- * julia.cfg but shouldn't be.
- */
-//
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin.class,
-//
org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin.class
- });
-
- final public static MixinLayersDef flatContainerBindingControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.binding.FlatContainerBindingControllerImpl",
- new Class[]{
- org.objectweb.fractal.julia.BasicControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.ContainerBindingControllerMixin.class,
- org.objectweb.fractal.julia.UseComponentMixin.class,
-
org.objectweb.fractal.julia.control.binding.InterceptorBindingMixin.class,
-
org.objectweb.fractal.julia.control.binding.CheckBindingMixin.class,
-
org.objectweb.fractal.julia.control.binding.TypeBindingMixin.class,
-
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin.class
- });
-
-
- // -------------------------------------------------
- // Auto-binding controller definitions
- // -------------------------------------------------
-
- final public static MixinLayersDef containerAutoBindingControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.binding.ContainerAutoBindingControllerImpl",
- new Class[]{
- org.objectweb.fractal.julia.BasicControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.ContainerBindingControllerMixin.class,
- org.objectweb.fractal.julia.UseComponentMixin.class,
-
org.objectweb.fractal.julia.control.binding.InterceptorBindingMixin.class,
-
org.objectweb.fractal.julia.control.binding.CheckBindingMixin.class,
-
org.objectweb.fractal.julia.control.binding.TypeBindingMixin.class,
-
org.objectweb.fractal.julia.control.content.UseSuperControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.ContentBindingMixin.class,
-
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin.class,
-
org.objectweb.fractal.julia.control.binding.AutoBindingMixin.class
- });
-
- final public static MixinLayersDef compositeAutoBindingControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.binding.CompositeAutoBindingControllerImpl",
- new Class[]{
- org.objectweb.fractal.julia.BasicControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.BasicBindingControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.TypeBasicBindingMixin.class,
- org.objectweb.fractal.julia.UseComponentMixin.class,
-
org.objectweb.fractal.julia.control.binding.CheckBindingMixin.class,
-
org.objectweb.fractal.julia.control.binding.TypeBindingMixin.class,
-
org.objectweb.fractal.julia.control.content.UseSuperControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.ContentBindingMixin.class,
-
org.objectweb.fractal.julia.control.lifecycle.UseLifeCycleControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.LifeCycleBindingMixin.class,
-
org.objectweb.fractal.julia.control.content.UseContentControllerMixin.class,
-
org.objectweb.fractal.julia.control.binding.OptimizedCompositeBindingMixin.class,
-
org.objectweb.fractal.julia.control.binding.AutoBindingMixin.class
- });
-
-
- // -------------------------------------------------
- // Lifecycle controller definitions
- // -------------------------------------------------
-
- final public static MixinLayersDef compositeLifeCycleControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.lifecycle.CompositeLifeCycleControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- UseComponentMixin.class,
- BasicLifeCycleCoordinatorMixin.class,
- OptimizedLifeCycleControllerMixin.class,
- TypeLifeCycleMixin.class
- });
-
- final public static MixinLayersDef lifeCycleControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.lifecycle.LifeCycleControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- UseComponentMixin.class,
- BasicLifeCycleCoordinatorMixin.class,
- BasicLifeCycleControllerMixin.class,
- TypeLifeCycleMixin.class,
- ContainerLifeCycleMixin.class
- });
-
-
- // -------------------------------------------------
- // Content controller definition
- // -------------------------------------------------
-
- final public static MixinLayersDef contentControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.content.ContentControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- UseComponentMixin.class,
- BasicContentControllerMixin.class,
- CheckContentMixin.class,
- TypeContentMixin.class,
- CollectionItfContentControllerMixin.class,
- BindingContentMixin.class,
- UseLifeCycleControllerMixin.class,
- LifeCycleContentMixin.class,
- SuperContentMixin.class
- });
-
-
- // -------------------------------------------------
- // Name controller definition
- // -------------------------------------------------
-
- final public static MixinLayersDef nameControllerDef =
- new MixinLayersDef(
- "org.objectweb.fractal.juliak.control.name.NameControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- BasicNameControllerMixin.class
- });
-
-
- // -------------------------------------------------
- // Super controller definition
- // -------------------------------------------------
-
- final public static MixinLayersDef superControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.content.SuperControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- BasicSuperControllerMixin.class
- });
-
-
- // -------------------------------------------------
- // Factory controller definition
- // -------------------------------------------------
-
- final public static MixinLayersDef factoryControllerDef =
- new MixinLayersDef(
- "org.objectweb.fractal.juliak.factory.FactoryControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- UseComponentMixin.class,
- BasicTemplateMixin.class,
- UseCloneableAttributeControllerMixin.class,
- AttributeTemplateMixin.class,
- UseNameControllerMixin.class,
- NameTemplateMixin.class
- });
-
-
- // -------------------------------------------------
- // Interceptor controller definition
- // -------------------------------------------------
-
- final public static MixinLayersDef interceptorControllerDef =
- new MixinLayersDef(
-
"org.objectweb.fractal.juliak.control.interceptor.InterceptorCompControllerImpl",
- new Class[]{
- BasicControllerMixin.class,
- InterceptorControllerMixin.class
- });
-
-
- // -------------------------------------------------
- // Merged control membranes
- // -------------------------------------------------
-
- final public static MixinLayersDef primitiveMembraneDef =
- new MixinLayersDef(
- "org.objectweb.fractal.juliak.PrimitiveMembraneImpl",
- new Class[]{
- BasicControllerMixin.class,
-
- // Interceptor controller
- InterceptorControllerMixin.class,
-
- // Super controller
- BasicSuperControllerMixin.class,
-
- // Binding controller
- ContainerBindingControllerMixin.class,
- InterceptorBindingMixin.class,
- CheckBindingMixin.class,
- TypeBindingMixin.class,
- UseSuperControllerMixin.class,
- ContentBindingMixin.class,
- UseLifeCycleControllerMixin.class,
- LifeCycleBindingMixin.class,
-
- // Lifecycle controller
- UseComponentMixin.class,
- BasicLifeCycleCoordinatorMixin.class,
- BasicLifeCycleControllerMixin.class,
- TypeLifeCycleMixin.class,
- ContainerLifeCycleMixin.class,
-
- // Name controller
- BasicNameControllerMixin.class,
-
- // Component controller
- BasicComponentMixin.class,
- TypeComponentMixin.class
- });
-
- final public static MixinLayersDef compositeMembraneDef =
- new MixinLayersDef(
- "org.objectweb.fractal.juliak.CompositeMembraneImpl",
- new Class[]{
- BasicControllerMixin.class,
-
- // Content controller
- BasicContentControllerMixin.class,
- CheckContentMixin.class,
- TypeContentMixin.class,
- BindingContentMixin.class,
- LifeCycleContentMixin.class,
- SuperContentMixin.class,
-
- // Super controller
- BasicSuperControllerMixin.class,
-
- // Binding controller
- BasicBindingControllerMixin.class,
- TypeBasicBindingMixin.class,
- CheckBindingMixin.class,
- TypeBindingMixin.class,
- UseSuperControllerMixin.class,
- ContentBindingMixin.class,
- UseLifeCycleControllerMixin.class,
- LifeCycleBindingMixin.class,
- UseContentControllerMixin.class,
- OptimizedCompositeBindingMixin.class,
-
- // Lifecycle controller
- UseComponentMixin.class,
- BasicLifeCycleCoordinatorMixin.class,
- OptimizedLifeCycleControllerMixin.class,
- TypeLifeCycleMixin.class,
-
- // Name controller
- BasicNameControllerMixin.class,
-
- // Component controller
- BasicComponentMixin.class,
- TypeComponentMixin.class
- });
-
-
- // -------------------------------------------------
- // Layers definition
- // -------------------------------------------------
-
- final public static MixinLayersDef[] LAYERS =
- new MixinLayersDef[] {
- componentControllerDef,
- compositeBindingControllerDef,
- containerBindingControllerDef,
- primitiveBindingControllerDef,
- containerAutoBindingControllerDef,
- compositeAutoBindingControllerDef,
- flatPrimitiveBindingControllerDef,
- flatContainerBindingControllerDef,
- compositeLifeCycleControllerDef,
- lifeCycleControllerDef,
- contentControllerDef,
- nameControllerDef,
- superControllerDef,
- factoryControllerDef,
- interceptorControllerDef,
- primitiveMembraneDef,
- compositeMembraneDef
- };
-
-}
Index:
julia/src/org/objectweb/fractal/juliak/spoon/KeepGeneratedProcessor.java
diff -u
julia/src/org/objectweb/fractal/juliak/spoon/KeepGeneratedProcessor.java:1.3
julia/src/org/objectweb/fractal/juliak/spoon/KeepGeneratedProcessor.java:1.4
---
julia/src/org/objectweb/fractal/juliak/spoon/KeepGeneratedProcessor.java:1.3
Fri Nov 10 21:06:37 2006
+++ julia/src/org/objectweb/fractal/juliak/spoon/KeepGeneratedProcessor.java
Thu Nov 23 15:35:17 2006
@@ -26,6 +26,9 @@
import java.util.HashSet;
import java.util.Set;
+import org.objectweb.fractal.juliak.membrane.JuliakMembranes;
+import org.objectweb.fractal.juliak.membrane.MixinLayersDef;
+
import spoon.processing.AbstractProcessor;
import spoon.reflect.declaration.CtSimpleType;
@@ -44,7 +47,7 @@
public KeepGeneratedProcessor() {
// Retrieve the list of mixin target classes
- MixinLayersDef[] layers = AOKellMixinLayers.getMixinLayers();
+ MixinLayersDef[] layers = new JuliakMembranes().getMixinLayers();
for (int i = 0; i < layers.length; i++) {
String targetClassName = layers[i].getClassName();
targets.add(targetClassName);
Index: julia/src/org/objectweb/fractal/juliak/spoon/MixinLayersDef.java
diff -u julia/src/org/objectweb/fractal/juliak/spoon/MixinLayersDef.java:1.3
julia/src/org/objectweb/fractal/juliak/spoon/MixinLayersDef.java:removed
--- julia/src/org/objectweb/fractal/juliak/spoon/MixinLayersDef.java:1.3
Fri Nov 10 21:06:37 2006
+++ julia/src/org/objectweb/fractal/juliak/spoon/MixinLayersDef.java Thu
Nov 23 15:35:17 2006
@@ -1,55 +0,0 @@
-/***
- * Julia
- * 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@xxxxxxx
- *
- * Author: Lionel Seinturier
- */
-
-package org.objectweb.fractal.juliak.spoon;
-
-/**
- * This class defines the mixin layers which are used to generate AOKell
source
- * code. These layers are used to generate controller implementations in a
- * modular way.
- *
- * @author Lionel Seinturier <Lionel.Seinturier@xxxxxxx>
- * @since 2.5
- */
-public class MixinLayersDef {
-
- /** The name of target class holding the mixed code. */
- private String className;
-
- /** The layers to mix. */
- private Class[] layers;
-
- public MixinLayersDef(String className, Class[] layers) {
- this.className = className;
- this.layers = layers;
- }
-
- public String getClassName() {
- return className;
- }
-
- public Class[] getLayers() {
- return layers;
- }
-
-}
Index:
julia/src/org/objectweb/fractal/juliak/spoon/SpoonMixinClassProcessor.java
diff -u
julia/src/org/objectweb/fractal/juliak/spoon/SpoonMixinClassProcessor.java:1.3
julia/src/org/objectweb/fractal/juliak/spoon/SpoonMixinClassProcessor.java:1.4
---
julia/src/org/objectweb/fractal/juliak/spoon/SpoonMixinClassProcessor.java:1.3
Fri Nov 10 21:06:37 2006
+++
julia/src/org/objectweb/fractal/juliak/spoon/SpoonMixinClassProcessor.java
Thu Nov 23 15:35:17 2006
@@ -28,6 +28,9 @@
import java.util.List;
import java.util.Set;
+import org.objectweb.fractal.juliak.membrane.JuliakMembranes;
+import org.objectweb.fractal.juliak.membrane.MixinLayersDef;
+
import spoon.processing.AbstractProcessor;
import spoon.reflect.Factory;
import spoon.reflect.code.CtBlock;
@@ -181,7 +184,7 @@
* We just need to run this processor.
*/
- MixinLayersDef[] layers = AOKellMixinLayers.getMixinLayers();
+ MixinLayersDef[] layers = new JuliakMembranes().getMixinLayers();
for (int i = 0; i < layers.length; i++) {
String targetClassName = layers[i].getClassName();
Class<?>[] srcClasses = layers[i].getLayers();
Index:
julia/test/conform/org/objectweb/fractal/julia/conform/controllers/StatMembranes.java
diff -u
julia/test/conform/org/objectweb/fractal/julia/conform/controllers/StatMembranes.java:1.2
julia/test/conform/org/objectweb/fractal/julia/conform/controllers/StatMembranes.java:1.3
---
julia/test/conform/org/objectweb/fractal/julia/conform/controllers/StatMembranes.java:1.2
Fri Nov 10 21:06:38 2006
+++
julia/test/conform/org/objectweb/fractal/julia/conform/controllers/StatMembranes.java
Thu Nov 23 15:35:17 2006
@@ -25,6 +25,7 @@
import org.objectweb.fractal.juliak.membrane.MembraneDef;
import org.objectweb.fractal.juliak.membrane.MembraneDefProvider;
+import org.objectweb.fractal.juliak.membrane.MixinLayersDef;
/**
@@ -49,5 +50,10 @@
"statComposite",
"org.objectweb.fractal.julia.conform.controllers.StatComposite"),
};
+
+
+ public MixinLayersDef[] getMixinLayers() {
+ return null;
+ }
}
| <-- Date Index --> | <-- Thread Index --> |
Powered by MHonArc.
Copyright © 2006-2007, OW2 Consortium | contact | webmaster.