Commit 1541a0fb authored by Philippe Merle's avatar Philippe Merle

* Added support for <tuscany:binding.http>

  - see /trunk/frascati/modules/frascati-binding-http/
  - example in /trunk/examples/helloworld-servlet/

* Added support for <frascati:implementation.osgi>. See:
  - /trunk/frascati/modules/frascati-implementation-osgi/
  - /trunk/frascati/modules/frascati-implementation-osgi-felix/
  - /trunk/frascati/modules/frascati-implementation-osgi-equinox/ (TBC)

  TODO: AN EXAMPLE MUST BE PROVIDED SOON.

* Big bang reengineering of the OW2 FraSCAti Assembly Factory
  - split modules 'parser', 'core-factory', 'generate-factory', and 'runtime-factory'
    into a set of smaller and composable modules. See directory /trunk/frascati/modules/

    - frascati-all/                         - All OW2 FraSCAti modules.
    - frascati-all-jdk6/                    - All OW2 FraSCAti modules + JDK6.
    - frascati-all-jdt/                     - All OW2 FraSCAti modules + Eclipse JDT.
    - frascati-assembly-factory/            - OW2 FraSCAti Assembly Factory.
    - frascati-binding-factory/             - OW2 FraSCAti Binding Factory.
    - frascati-binding-http/                - OW2 FraSCAti Binding HTTP.
    - frascati-binding-jsonrpc/             - OW2 FraSCAti Binding JSON-RPC.
    - frascati-binding-rest/                - OW2 FraSCAti Binding REST.
    - frascati-binding-rmi/                 - OW2 FraSCAti Binding Java RMI.
    - frascati-binding-ws/                  - OW2 FraSCAti Binding Web Service.
    - frascati-implementation-fractal/      - OW2 FraSCAti Implementation Fractal ADL.
    - frascati-implementation-osgi/         - OW2 FraSCAti Implementation OSGi.
    - frascati-implementation-osgi-equinox/ - OW2 FraSCAti Implementation OSGi on Eclipse Equinox.
    - frascati-implementation-osgi-felix/   - OW2 FraSCAti Implementation OSGi on Apache Felix.
    - frascati-implementation-script/       - OW2 FraSCAti Implementation Java Script.
    - frascati-implementation-spring/       - OW2 FraSCAti Implementation Spring.
    - frascati-metamodel-frascati/          - OW2 FraSCAti Eclipse STP/SCA FraSCAti Metamodel.
    - frascati-metamodel-frascati-ext/      - Extensions to OW2 FraSCAti Metamodel (currently no extension).
    - frascati-metamodel-tuscany/           - OW2 FraSCAti Eclipse STP/SCA Tuscany Metamodel.
    - frascati-sca-parser/                  - OW2 FraSCAti SCA Parser.
    - frascati-servlet-cxf/                 - OW2 FraSCAti Servlet Apache CXF.
    - frascati-property-jaxb/               - OW2 FraSCAti SCA Property with JAXB.
    - frascati-runtime-factory/             - OW2 FraSCAti Assembly Factory + Tinfi Juliac OO Membranes & JDT.
    - frascati-tinfi/                       - OW2 FraSCAti Tinfi Component Factory.
    - frascati-tinfi-julia/                 - OW2 FraSCAti Tinfi Julia-based Membranes.
    - frascati-tinfi-juliac/                - OW2 FraSCAti Tinfi with Juliac-based Membranes Generator.
    - frascati-tinfi-juliac-jdk6/           - OW2 FraSCAti Tinfi Juliac with JDK6.
    - frascati-tinfi-juliac-jdt/            - OW2 FraSCAti Tinfi Juliac with Eclipse JDT.
    - frascati-tinfi-juliac-oo/             - OW2 FraSCAti Tinfi Juliac Object-Oriented Membranes Generator.
    - frascati-tinfi-tinfi-oo/              - OW2 FraSCAti Tinfi Object-Oriented Membranes.

  - simplify API, see Java packages:
    - org.ow2.frascati.parser.api   - API for OW2 FraSCAti SCA Parser
    - org.ow2.frascati.factory.api  - API for OW2 FraSCAti Assembly Factory
    - org.ow2.frascati.juliac.api   - API for OW2 FraSCAti Tinfi Juliac
    - org.ow2.frascati.tinfi.api    - API for OW2 FraSCAti Tinfi

  - define several plugin/extension points:
    - org.ow2.frascati.util.ClassProvider
      - API for membrane plugins of OW2 FraSCAti Tinfi and Juliac.
      - plugin examples in modules frascati-implementation-osgi, frascati-tinfi-juliac,
        frascati-tinfi-juliac-oo, and frascati-tinfi-tinfi-oo
    - org.ow2.frascati.juliac.api.CompilerProvider
      - API for pluging Java compilers to OW2 FraSCAti Tinfi Juliac.
      - plugin examples in modules frascati-tinfi-juliac-jdk6, and frascati-tinfi-juliac-jdt
    - org.ow2.frascati.parser.api.MetamodelProvider
      - API for pluging metamodels to parse SCA composites.
      - plugin examples in modules frascati-metamodel-frascati, frascati-metamodel-tuscany,
        and frascati-sca-parser
    - org.ow2.frascati.parser.api.Resolver
      - API for transformation plugins of parsed SCA composites.
      - plugin examples in module frascati-sca-parser
    - org.ow2.frascati.factory.api.Processor
      - API for processor plugins of parsed SCA composites.
      - plugin examples in modules frascati-binding-*, frascati-implementation-*,
        and frascati-property-jaxb

  - intensive use of generic interfaces/classes/methods
    - simplifying a lot the code of processor classes
    - implying improvements of support of generics into Juliac/Tinfi code generators
  - improvement of the SCA architecture of the assembly factory
    just one AssemblyFactory.composite extended by all other modules
  - support for parsing SCA composite, contribution, componentType, constrainingType descriptions
  - add first support for <component constrainingType="QName">
    see .constrainingType files and .composite files containing < ... constrainingType="QName" >
  - add first support for <sca:reference autowire="...">
    see .composite files containing <reference ... autowire="true">
  - add support for <composite requires="list of qnames">
  - add support for a lot of SCA property types. see:
    - /trunk/frascati/modules/frascati-runtime-factory/src/test/resources/AllSupportedPropertyTypes.composite
    - new property type processors can be plugged, see module frascati-property-jaxb
  - improve the report of parsing/processing errors and warnings, see all files:
    - CheckingErrors.composite
    - CheckingErrorsWarnings.composite
  - identify what SCA features are not currently supported, see:
    - NotSupportedFeatures.composite
    - CheckingErrorsWarnings.composite
  - a new class loader is created for each new loaded composite
    this allows us to run helloworld-ws/server and helloword-ws/client into a same FraSCAti Explorer instance
  - improve the logging of processing actions
  - reduction of the minimal disk footprint required (i.e., number of jars)
  - moved to:
    - Apache CXF from 2.2.3 to 2.2.6
    - Fractal Binding Factory from 0.7 to 0.8-SNAPSHOT
  - add JUnit test cases for most of /trunk/frascati/modules
  - a lot of improvements in the Java code.
parent 7854f0ca
============================================================================
OW2 FraSCAti Assembly Factory.
Copyright (C) 2007-2009 INRIA, USTL
OW2 FraSCAti Assembly Factory
Copyright (C) 2007-2010 INRIA, USTL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
......@@ -18,10 +18,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Contact: frascati@ow2.org
Author: Damien Fournier
Philippe Merle
Nicolas Dolet
Christophe Demarey
Authors: Damien Fournier
Philippe Merle
Nicolas Dolet
Christophe Demarey
============================================================================
============================================================================
OW2 FraSCAti Assembly Factory.
Copyright (C) 2007-2009 INRIA, USTL
OW2 FraSCAti Assembly Factory
Copyright (C) 2007-2010 INRIA, USTL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
......@@ -25,7 +25,7 @@ Author: Damien Fournier
============================================================================
Assembly Factory 1.1
Assembly Factory 1.3
--------------------
The Assembly Factory provides support for creating SCA components from SCA
......@@ -35,6 +35,8 @@ validates them, then performs calls to the Tinfi kernel and the Fractal Binding
Factory in order to generate SCA components implementation and/or create
component instances.
The Assembly Factory is implemented as SCA components too.
Table of Content
----------------
1. Requirements
......@@ -205,4 +207,4 @@ For any question concerning the Assembly Factory, please contact
frascati@ow2.org
Date of creation of this file: May 27, 2008.
Last modified: July 22, 2009.
Last modified: January 20, 2010.
Assembly Factory 1.3
--------------------
* Added support for <tuscany:binding.http>
- see /trunk/frascati/modules/frascati-binding-http/
- example in /trunk/examples/helloworld-servlet/
* Added support for <frascati:implementation.osgi>. See:
- /trunk/frascati/modules/frascati-implementation-osgi/
- /trunk/frascati/modules/frascati-implementation-osgi-felix/
- /trunk/frascati/modules/frascati-implementation-osgi-equinox/ (TBC)
TODO: AN EXAMPLE MUST BE PROVIDED SOON.
* Big bang reengineering of the OW2 FraSCAti Assembly Factory
- split modules 'parser', 'core-factory', 'generate-factory', and 'runtime-factory'
into a set of smaller and composable modules. See directory /trunk/frascati/modules/
- frascati-all/ - All OW2 FraSCAti modules.
- frascati-all-jdk6/ - All OW2 FraSCAti modules + JDK6.
- frascati-all-jdt/ - All OW2 FraSCAti modules + Eclipse JDT.
- frascati-assembly-factory/ - OW2 FraSCAti Assembly Factory.
- frascati-binding-factory/ - OW2 FraSCAti Binding Factory.
- frascati-binding-http/ - OW2 FraSCAti Binding HTTP.
- frascati-binding-jsonrpc/ - OW2 FraSCAti Binding JSON-RPC.
- frascati-binding-rest/ - OW2 FraSCAti Binding REST.
- frascati-binding-rmi/ - OW2 FraSCAti Binding Java RMI.
- frascati-binding-ws/ - OW2 FraSCAti Binding Web Service.
- frascati-implementation-fractal/ - OW2 FraSCAti Implementation Fractal ADL.
- frascati-implementation-osgi/ - OW2 FraSCAti Implementation OSGi.
- frascati-implementation-osgi-equinox/ - OW2 FraSCAti Implementation OSGi on Eclipse Equinox.
- frascati-implementation-osgi-felix/ - OW2 FraSCAti Implementation OSGi on Apache Felix.
- frascati-implementation-script/ - OW2 FraSCAti Implementation Java Script.
- frascati-implementation-spring/ - OW2 FraSCAti Implementation Spring.
- frascati-metamodel-frascati/ - OW2 FraSCAti Eclipse STP/SCA FraSCAti Metamodel.
- frascati-metamodel-frascati-ext/ - Extensions to OW2 FraSCAti Metamodel (currently no extension).
- frascati-metamodel-tuscany/ - OW2 FraSCAti Eclipse STP/SCA Tuscany Metamodel.
- frascati-sca-parser/ - OW2 FraSCAti SCA Parser.
- frascati-servlet-cxf/ - OW2 FraSCAti Servlet Apache CXF.
- frascati-property-jaxb/ - OW2 FraSCAti SCA Property with JAXB.
- frascati-runtime-factory/ - OW2 FraSCAti Assembly Factory + Tinfi Juliac OO Membranes & JDT.
- frascati-tinfi/ - OW2 FraSCAti Tinfi Component Factory.
- frascati-tinfi-julia/ - OW2 FraSCAti Tinfi Julia-based Membranes.
- frascati-tinfi-juliac/ - OW2 FraSCAti Tinfi with Juliac-based Membranes Generator.
- frascati-tinfi-juliac-jdk6/ - OW2 FraSCAti Tinfi Juliac with JDK6.
- frascati-tinfi-juliac-jdt/ - OW2 FraSCAti Tinfi Juliac with Eclipse JDT.
- frascati-tinfi-juliac-oo/ - OW2 FraSCAti Tinfi Juliac Object-Oriented Membranes Generator.
- frascati-tinfi-tinfi-oo/ - OW2 FraSCAti Tinfi Object-Oriented Membranes.
- simplify API, see Java packages:
- org.ow2.frascati.parser.api - API for OW2 FraSCAti SCA Parser
- org.ow2.frascati.factory.api - API for OW2 FraSCAti Assembly Factory
- org.ow2.frascati.juliac.api - API for OW2 FraSCAti Tinfi Juliac
- org.ow2.frascati.tinfi.api - API for OW2 FraSCAti Tinfi
- define several plugin/extension points:
- org.ow2.frascati.util.ClassProvider
- API for membrane plugins of OW2 FraSCAti Tinfi and Juliac.
- plugin examples in modules frascati-implementation-osgi, frascati-tinfi-juliac,
frascati-tinfi-juliac-oo, and frascati-tinfi-tinfi-oo
- org.ow2.frascati.juliac.api.CompilerProvider
- API for pluging Java compilers to OW2 FraSCAti Tinfi Juliac.
- plugin examples in modules frascati-tinfi-juliac-jdk6, and frascati-tinfi-juliac-jdt
- org.ow2.frascati.parser.api.MetamodelProvider
- API for pluging metamodels to parse SCA composites.
- plugin examples in modules frascati-metamodel-frascati, frascati-metamodel-tuscany,
and frascati-sca-parser
- org.ow2.frascati.parser.api.Resolver
- API for transformation plugins of parsed SCA composites.
- plugin examples in module frascati-sca-parser
- org.ow2.frascati.factory.api.Processor
- API for processor plugins of parsed SCA composites.
- plugin examples in modules frascati-binding-*, frascati-implementation-*,
and frascati-property-jaxb
- intensive use of generic interfaces/classes/methods
- simplifying a lot the code of processor classes
- implying improvements of support of generics into Juliac/Tinfi code generators
- improvement of the SCA architecture of the assembly factory
just one AssemblyFactory.composite extended by all other modules
- support for parsing SCA composite, contribution, componentType, constrainingType descriptions
- add first support for <component constrainingType="QName">
see .constrainingType files and .composite files containing < ... constrainingType="QName" >
- add first support for <sca:reference autowire="...">
see .composite files containing <reference ... autowire="true">
- add support for <composite requires="list of qnames">
- add support for a lot of SCA property types. see:
- /trunk/frascati/modules/frascati-runtime-factory/src/test/resources/AllSupportedPropertyTypes.composite
- new property type processors can be plugged, see module frascati-property-jaxb
- improve the report of parsing/processing errors and warnings, see all files:
- CheckingErrors.composite
- CheckingErrorsWarnings.composite
- identify what SCA features are not currently supported, see:
- NotSupportedFeatures.composite
- CheckingErrorsWarnings.composite
- a new class loader is created for each new loaded composite
this allows us to run helloworld-ws/server and helloword-ws/client into a same FraSCAti Explorer instance
- improve the logging of processing actions
- reduction of the minimal disk footprint required (i.e., number of jars)
- moved to:
- Apache CXF from 2.2.3 to 2.2.6
- Fractal Binding Factory from 0.7 to 0.8-SNAPSHOT
- add JUnit test cases for most of /trunk/frascati/modules
- a lot of improvements in the Java code.
Assembly Factory 1.2
--------------------
----------------------
* Assembly Factory is now a set of SCA components
* Integration of the FraSCAti Script plugin into the runtime
......
Assembly Factory TODO List
OW2 FraSCAti Assembly Factory TODO List
---------------------------------------
Sorry this is a working file mixing french and english items to do.
- utiliser Tinfi dans le binding-http
- crire un exemple helloworld-osgi
- checker les requires ds la phase de check()
requires="x y z"
Do x/y/z .composite exist?
Do these composites implement <service name="intent"> <interface.java interface="....tinfi..IntentHandler">?
- simplifier API de module frascati-tinfi
- API TinfiMembraneProvider : ClassProvider + getMembraneNames() array of String name of supported membranes
* Revisiter archi SCA Assembly Factory
* tester un profil frascati-runtime-factory-jdk6
- actuellement frascati-runtime-factory c'est 27 .jar soit 6.9Mo
JDT.jar = 4.1Mo
donc on peut descendre 2.8Mo si utilisation JDK6
quelques (mais peu) petits .jar peut encore tre virer comme sca-intropection-java
-------------------------------------------------------------------------
- crire trunk/frascati/pom.xml
* Check what plugins require technically in terms of Fractal API
factorize these requirements
voir la fiche que j'ai crit
- Revisiter tous les modules
frascati-binding-factory
------------------------
ATTENTION: Diagnosis of org.eclipse.stp.sca.impl.CompositeImpl@1619c695{file:/Users/merle/workspace/FraSCAti-trunk/assembly-factory/modules/frascati-binding-factory/target/classes/org/ow2/frascati/FraSCAti.composite#//@composite}
The required feature 'source2' of 'org.eclipse.stp.sca.impl.WireImpl@5737be7{file:/Users/merle/workspace/FraSCAti-trunk/assembly-factory/modules/frascati-binding-factory/target/classes/org/ow2/frascati/FraSCAti.composite#//@composite/@wire.0}' must be set
ATTENTION: Diagnosis of org.eclipse.stp.sca.impl.CompositeImpl@51aea27d{file:/Users/merle/workspace/FraSCAti-trunk/assembly-factory/modules/frascati-binding-factory/target/classes/org/ow2/frascati/factory/AssemblyFactory.composite#//@composite}
The required feature 'promote2' of 'org.eclipse.stp.sca.impl.ReferenceImpl@202de670{file:/Users/merle/workspace/FraSCAti-trunk/assembly-factory/modules/frascati-binding-factory/target/classes/org/ow2/frascati/factory/AssemblyFactory.composite#//@composite/@reference.0}' must be set
The required feature 'promote' of 'org.eclipse.stp.sca.impl.ReferenceImpl@202de670{file:/Users/merle/workspace/FraSCAti-trunk/assembly-factory/modules/frascati-binding-factory/target/classes/org/ow2/frascati/factory/AssemblyFactory.composite#//@composite/@reference.0}' must be set
----------------------------------------------
Voir rponses de Stphane Drapeau sur issues du metamodel Eclipse STP SCA
SCA Parser
----------
* autowire lors de l'inclusion des <composite>
ncessite grer ds IncludeResolver le merge des proprits autowire des composites
* Support constrainingType in <component> and <composite>
- gestion pour <composite>
- gestion merge <service>, <reference>, <property>
- gestion <property> et <requires>
copier/merger Service, Reference, Requires, Property du constraining type
avec ceux de <component> ou <composite>
* Ajouter des tests dans sca-parser
est-ce que les resolvers fonctionnent correctement ?
lister les cas produits par les resolvers
mettre test cases pour contrler la rgression
* tester que implementation.java class est instanciable non abstract class
* tester que interface.java interface est bien une interface public.
--------------------------------------------------------
Assembly Factory
----------------
* Ecrire 1 examples/helloworld-osgi utilisant <frascati:implementation.osgi>
* Charger automatiquement tous les META-INF/sca-contribution.xml disponible dans le class path
Permet de charger des applications de services comme le TransactionService
* grer <sca:binding.sca/>
les intents transactions sont binds au service de transactions
----------------------------
* discuter avec Lionel :
simplifier code gnr des intercepteurs Intent
----------------------------
* Move rest of code of DomainManager into frascati-assembly-factory
Remove DomainManager from frascati-runtime-factory
* Reduce the number of jars strictly required.
* Migrate all /trunk/examples/ and /trunk/assembly-factory/examples/ into /trunk/frascati/examples/
* Migrate /trunk/explorer to /trunk/frascati/modules/frascati-explorer/
* Migrate /trunk/fscript to /trunk/frascati/modules/frascati-fscript/
* Share the SCA parser between Tinfi EMF and Assembly Factory
* Implement /trunk/frascati/modules/frascati-servlet-cxf/
problme sur FraSCAti Explorer Servlet
* Implement /trunk/frascati/modules/frascati-servlet-manager-jetty/
* Implementation EasyViper/EasyBPEL
* Binding CORBA
Following is the old TODO list
------------------------------
* Implement model completion (at parse time)
Done : - Retrieve Service and references from annotations
- Resolve promote and target attributes with missing service/reference name
What else?
What else?
* Define Frascati distribution and application packaging
......@@ -19,11 +128,4 @@ Assembly Factory TODO List
* Model validation through OCL engine
* Support for monitoring ?
* Allow automatic plug-in integration (auto binding for implementation or binding plug-in)
Done - Configurable architecture
- Need to support lazy loading for plugins
* Put java implementation resolver into separated module
* Move to Fractel 3.2 and use LifeCycle annotation in asynchronous mode
\ No newline at end of file
\ No newline at end of file
############################################################
# Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.
# For example java -Djava.util.logging.config.file=myfile
############################################################
############################################################
# Global properties
############################################################
# "handlers" specifies a comma separated list of log Handler
# classes. These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler
# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers. For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= OFF
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = OFF
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
# For example, set the com.xyz.foo logger to only log SEVERE
# messages: com.xyz.foo.level = SEVERE
spoonlet.level = OFF
spoonlet.fractal.level = OFF
spoonlet.fractaladl.level = OFF
/*
* Generated by: org.ow2.frascati.tinfi.opt.oo.ServerInterfaceClassGenerator
* on: Fri Nov 13 23:31:01 CET 2009
*/
package org.objectweb.fractal.bf;
public class BindingFactoryPluginFcInItf<E extends org.objectweb.fractal.bf.ExportHints,B extends org.objectweb.fractal.bf.BindHints>
extends org.ow2.frascati.tinfi.TinfiComponentInterface<org.objectweb.fractal.bf.BindingFactoryPlugin<E,B>>
implements org.objectweb.fractal.bf.BindingFactoryPlugin<E,B> {
public BindingFactoryPluginFcInItf() {
}
public BindingFactoryPluginFcInItf(org.objectweb.fractal.api.Component component,String s,org.objectweb.fractal.api.Type type,boolean flag,Object obj) {
super(component,s,type,flag,obj);
}
public org.objectweb.fractal.api.Component createSkel(final java.lang.String arg0,final java.lang.Object arg1,final org.objectweb.fractal.api.Component arg2,final E arg3) throws org.objectweb.fractal.bf.SkeletonGenerationException {
if( impl == null )
throw new NullPointerException("Trying to invoke a method on a client interface, or on a server interface whose complementary interface is not bound.");
org.objectweb.fractal.api.Component ret = impl.createSkel(arg0,arg1,arg2,arg3);
return ret;
}
public org.objectweb.fractal.api.Component createStub(final org.objectweb.fractal.api.Component arg0,final java.lang.String arg1,final B arg2) throws org.objectweb.fractal.bf.StubGenerationException {
if( impl == null )
throw new NullPointerException("Trying to invoke a method on a client interface, or on a server interface whose complementary interface is not bound.");
org.objectweb.fractal.api.Component ret = impl.createStub(arg0,arg1,arg2);
return ret;
}
public void finalizeStub(final org.objectweb.fractal.api.Component arg0,final java.util.Map<java.lang.String, java.lang.Object> arg1) throws org.objectweb.fractal.bf.BindingFactoryException {
if( impl == null )
throw new NullPointerException("Trying to invoke a method on a client interface, or on a server interface whose complementary interface is not bound.");
impl.finalizeStub(arg0,arg1);
}
public void finalizeSkeleton(final org.objectweb.fractal.api.Component arg0,final java.util.Map<java.lang.String, java.lang.String> arg1) throws org.objectweb.fractal.bf.BindingFactoryException {
if( impl == null )
throw new NullPointerException("Trying to invoke a method on a client interface, or on a server interface whose complementary interface is not bound.");
impl.finalizeSkeleton(arg0,arg1);
}
public E getExportHints(final java.util.Map<java.lang.String, java.lang.Object> arg0) {
if( impl == null )
throw new NullPointerException("Trying to invoke a method on a client interface, or on a server interface whose complementary interface is not bound.");
E ret = impl.getExportHints(arg0);
return ret;
}
public B getBindHints(final java.util.Map<java.lang.String, java.lang.Object> arg0) {
if( impl == null )