Commit 20e62e59 authored by Christophe Demarey's avatar Christophe Demarey
Browse files

[maven-scm] copy for tag FRACTAL_BF_0_8

parents 42fe60b8 b36eeb2a
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**" kind="src" output="src/test/resources" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target-eclipse/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>fractal-bf-parent</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.maven.ide.eclipse.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature>
</natures>
</projectDescription>
#Tue Jun 03 23:46:07 CEST 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.builder.cleanOutputFolder=ignore
#Tue Jun 03 23:46:05 CEST 2008
activeProfiles=
eclipse.preferences.version=1
filterResources=false
includeModules=false
resolveWorkspaceProjects=true
resourceFilterGoals=process-resources resources\:testResources
useMavenFolders=false
version=1
============================================================================
Fractal Binding Factory.
Copyright (C) 2007-2009 INRIA, SARDES
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: Valerio.Schiavoni@gmail.com
Author: Valerio Schiavoni
============================================================================
Fractal Binding Factory 0.6
---------------------------
The Fractal Binding Factory (BF, from now on) provides support for establishing remote
bindings between Fractal components using diverse protocols. The BF can expose a Fractal
server interface as a web service or can register it into a RMI registry, or can make it
available for group-RPC, and so on, each one via the same APIs. Also, it can transparently
bind Fractal client interfaces to remotely available web services, or to services available
into an RMI registry, and so on.
Table of content
----------------
1. Introduction
2. Compiling and installing the BF artifacts
3. Running the sample applications
4. Using the BF with FractalADL
5. Using the BF with its Java APIs
6. How to develop a new plugin
7. References
1. Introduction
---------------
The BF is a general purpose framework aimed at establishing remote bindings between Fractal components.
Its design is built upon the "export-bind" pattern (see: http://sardes.inrialpes.fr/papers/files/05-Krakowiak-CFSE-eng.pdf
for further details).
Two main entities are made available by the BF:
- exporters: these entities are able to export a given interface so that it's available through
some distributed communication protocol;
- binders: these entities can establish a so-called "distributed binding" between a local interface and a previously
exported one, using some distributed communication protocol;
These two key entities are available at different levels throughout the BF: when using FractalADL (see Sec.4), the user
can declare <exporter> and <binder> elements; when using the Java APIs (see Sec.5), two operations (export/bind) are
made available to the developer.
The specific semantic of the export and bind operations is protocol specific: exporting an interface using a
SOAP-like protocol means to let it accepts remote calls through web-service clients; conversely, exporting it
using JavaRMI causes it to be registered into an RMI registry, and so on.
The result of an export operation is the generation of a skeleton; the result of a bind
operation is a stub. Stubs and skeletons are themselves Fractal components: this brings all the advantages
of the Fractal component model (ie., dynamically reconfigure distributed bindings).
Currently, most of the generation of the code for these components is done at runtime, leveraging JDK's dynamic proxies
or other bytecode generation mechanisms.
It would be technically possible to pre-generate the source-code of stub and skeleton components, but such feature
is not currently available.
2. Compiling and installing BF artifacts
------------------------------------------------------
The BF sources is organized into several Maven modules, among which:
- fractal-bf-core: it's the main module, it contains the default implementation
of the BF APIs allowing; it also contains the APIs to be implemented to provide
new plugins;
- fractal-bf-adl: an extension to the Fractal ADL to use
the BF;
- connectors: this module stores the currently available implementations of connectors, to be used
by the core module; third parties connectors can be used as well;
- examples: a set of examples (the inevitable "helloworld", and many others), showcasing how to use the
BF APIs, the ADL extension, and how to configure your projects accordingly;
To compile and install the latest SNAPSHOT versions of all BF modules in your
local Maven repository:
svn co svn+ssh://svn.forge.objectweb.org/svnroot/fractal/trunk/fractal-bf fractal-bf-parent
cd fractal-bf-parent
mvn install
2.1 Importing BF artifacts into your Maven-based project
------------------------------------------------------
If you don't want to compile the BF sources, and your project is based on the Maven build tool management, it is
very easy to import the required libraries into your project.
Add the OW2 repositories in your pom.xml file:
<!--OW2 repositories -->
<repositories>
<repository>
<id>objectweb-release</id>
<name>ObjectWeb Maven Repository</name>
<url>http://maven.objectweb.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>objectweb-snapshot</id>
<name>ObjectWeb Maven Repository</name>
<url>http://maven.objectweb.org/maven2-snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
</repositories>
Add the following dependencies in your pom.xml file:
<properties>
<bf.version>0.6</bf.version>
</properties>
<dependency>
<groupId>org.objectweb.fractal.bf</groupId>
<artifactId>fractal-bf-core</artifactId>
<version>${bf.version}</version>
</dependency>
<dependency>
<groupId> org.objectweb.fractal.bf </groupId>
<artifactId>fractal-bf-adl</artifactId>
<version>${bf.version}</version>
</dependency>
<!-- the following is only if you need WebService bindings. Change it
accordingly to your needs -->
<dependency>
<groupId>org.objectweb.fractal.bf.connectors</groupId>
<artifactId>fractal-bf-connectors-soap-cxf</artifactId>
<version>${bf.version}</version>
</dependency>
3. Running the sample applications
----------------------------------
Samples applications are available in the examples/
directory. Read the README.txt file into each of the directories for
detailed explanations.
4. Using the BF with FractalADL
--------------------------------------------------------
The fractal-bf-adl module provides an extension to the Fractal ADL toolchain. It is the preferred way to
use the BF with your Fractal application.
Consider the following ADL example:
01 <!DOCTYPE definition PUBLIC "-//objectweb.org//DTD Fractal ADL 2.0//EN" "classpath://org/objectweb/fractal/bf/adl/xml/standard-bf.dtd">
02 <definition name="org.objectweb.fractal.bf.Services">
03 <interface name="print" role="server" signature="org.objectweb.fractal.bf.Print" />
04 <component name="service">
05 <interface name="print" role="server"
06 signature="org.objectweb.fractal.bf.Print" />
07 <content class="org.objectweb.fractal.bf.PrintImpl" />
08 </component>
09 <binding client="this.print" server="service.print" />
10 <exporter type="ws" interface="service.print">
11 <parameter name="address" value="http://localhost:8080/Print" />
12 </exporter>
13 </definition>
Line 01 declares the DTD used in this ADL file (standard-bf.dtd): it is required
to use BF extensions.Tthis DTD is an extension to the
default FractalADL standard.dtd: it adds two more elements (namely, exporter and binder elements).
This dtd file becomes available only after having imported the fractal-bf-adl module.
Line 02 defines a composite component named 'org.objectweb.fractal.bf.Services'.
Line 03 defines an external 'print' server interface, whose java type is 'org.objectweb.fractal.bf.Print'.
Lines 04-08 define a 'service' component with a server interface 'print'.
Line 09 defines an internal binding between the external 'print' server interface and the 'print' server
interface of the 'service' component.
Lines 10-12 define an 'exporter' element: two required attributes must be provided:
-type: a unique string identifier, used by the BF plugin resolver to load the appropriate plugin;
-interface: a '{component}.{interfaceName}' identifier for the interface to export; in this case, the 'service.print' identifies
the 'print' interface declared by the 'service' component
Line 11 define am optional 'parameter' element: plugins might declare any number of <parameter> elements. Each parameter
element requires two attributes:
- name : the name of attribute
- value: the value for the attribute
Parameter names are plugin-specifics. Using the Java APIs it's possible to retrieve the list of required attributes
declared by a plugin (see following section for further details).
== Maven users ==
To use the fractal-bf-module, add the following dependency to your Maven-based pom.xml :
<dependency>
<groupId> org.objectweb.fractal.bf </groupId>
<artifactId>fractal-bf-adl</artifactId>
<version>0.5-SNAPSHOT</version>
</dependency>
5. Using the BF via the Java APIs
----------------------------------------------------------------
The following code shows a possible use of the Java APIs offered by the BF to export a server interface
through the web-service plugin. The example assumes that the following ADL file is available in the classpath:
01 <!DOCTYPE definition PUBLIC "-//objectweb.org//DTD Fractal ADL 2.0//EN" "classpath://org/objectweb/fractal/bf/adl/xml/standard.dtd">
02 <definition name="org.objectweb.fractal.bf.Services">
03 <interface name="print" role="server" signature="org.objectweb.fractal.bf.Print" />
04 <component name="printer">
05 <interface name="print" role="server"
06 signature="org.objectweb.fractal.bf.Print" />
07 <content class="org.objectweb.fractal.bf.PrintImpl" />
08 </component>
09 <binding client="this.print" server="printer.print" />
10 </definition>
The following java code is functionally equivalent to the ADL version shown before:
it will load the above ADL file using the FractalADL factory, retrieve the BF and
export its print interface as a web service. The main difference is that the ADL file is not using
the dtd provided by the fractal-bf-adl module,i.e. this is a classical ADL file.
public class BFDemo {
public static void main(String[] args) throws Exception{
Factory adlFactory = FactoryFactory.getFactory(FactoryFactory.FRACTAL_BACKEND);
Component services = (Component) adlFactory.newComponent("org.objectweb.fractal.bf.Services",new HashMap());
Component printer = ContentControllerHelper.getSubComponentByName(services,"printer");
Map<String, Object> exportHints = new HashMap<String, Object>();
exportHints.put(BindingFactoryImpl.PLUGIN_ID, "ws");
exportHints.put("address", "http://localhost:8080/Service");
BindingFactory bindingFactory = BindingFactoryHelper.getBindingFactory();
bindingFactory.export(printer,"print",exportHints);
}
}
It is nevertheless possible to avoid using the ADL factory, and completely rely on the
Fractal Java APIs to instantiate the BindingFactoryComp component and use it the same way as
illustrated above.
6. Developing a new connector
----------------------------------------------------------------
This section intends to provide guidelines and a simple walk-through to develop
a new connector. Because of a plugin-based architecture of the core module of
the BF, connectors are considered as plugins: thus, the terms connector and plugin
will be used interchangeably.
** Please note that the following guide is based on version 0.5 of the BF APIs. **
a) Define a unique ID.
Example: "rss"
b) Define the feed type
Example: version=atom1/atom2/etc
c) Create a class modeling the export hints and provide getter/setter methods:
Example:
public class RssExportHints implements ExportHints {
String version;
String feedType;
public String getVersion(){return this.version};
public void setVersion(String v){this.version=v};
...
}
d) Create a class modeling the import hints and provide getter/setter methods:
Example:
public class RssBindHints implements BindHints {
String version;
String feedType;
public String getVersion(){return this.version};
public void setVersion(String v){this.version=v};
...
}
e) Extend the AbstractBindingFactoryPlugin class:
Example:
public class RssConnector
extends AbstractBindingFactoryPlugin<RssExportHints,RssBindHints>{
public RssConnector{} //required by Fractal
public String getPluginIdentifier() {
return "rss";
}
public RssExportHints getExportHints(Map<String,String> hints) {
RssExportHints rssExportHints = new RssExportHints();
rssExportHints.setVersion(hints.get("version"));
return rssExportHints;
}
public RssBindHints getBindHints(Map<String,String> hints) {
RssBindHints rssBindHints = new RssBindHints();
rssBindHints.setVersion(hints.get("version"));
return rssBindHints;
}
public Component createSkel(String interfaceName, Object serverItf,
Component owner, RssExportHints rssExportHints)
throws SkeletonGenerationException {
....
}
}
7. References
-------------
- Maven : http://maven.apache.org
- Fractal : http://fractal.objectweb.org
- FractalADL : http://fractal.objectweb.org/fractaladl/index.html
For any question concerning the Fractal Binding Factory, please contact
valerio.schiavoni@gmail.com
Questions concerning Fractal in general can be asked to the official mailing-list:
http://mail.ow2.org/wws/info/fractal
Last update of this file: March 22, 2009.
Date of creation of this file: June 23, 2008.
============================================================================
Fractal Binding Factory.
Copyright (C) 2007-2009 INRIA, SARDES
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: fractal@ow2.org
Author: Valerio Schiavoni
============================================================================
Fractal Binding Factory Developer Notes
---------------------------
This document aims at describing how to perform releases for stable and unstable
versions of the Fractal-BF project.
- How to perform a stable release
A stable release should be performed when a sufficient number of new features
and bug fixes have been contributed to the codebase.
The Fractal-BF uses the maven-release-plugin to perform releases. To perform
a release, a two-steps process is involved:
1) mvn release:prepare
* this step checks for unstable dependencies currently being used by the
project modules which need to be solved, it checks for uncommitted changes, it asks
informations about the version to release, the svn tag to use on the remote repository,
it tags the SVN repository with the user-provided label,
and it upgrade the pom.xml files of any module of the
project to the next version (to be specified during the process);
2) mvn release:perform
* this steps checkout from the svn the previously tagged version (the one tagged during
the prepare phase), and it performs a deploy of the resulting artifacts in the
specified Maven repository. In the case of the Fractal-BF, the official OW2 Maven repositories
for snapshot and stable releases are used.
For more informations about the release plugin, please see:
http://maven.apache.org/plugins/maven-release-plugin/
- How to perform a unstable release
It is possible to release of unstable/snapshot artifacts. This involves a one-step process:
1) mvn deploy
* this step executes all tests, and if successful, it deploys produced artifacts in the
remote OW2 repository for snapshot artifacts.
Planned for future versions of the Fractal-BF
--------------
* support for contextual information passing at least for web-service bindings:
as per discussion with fractal/frascati: http://mail.ow2.org/wws/arc/fractal/2009-02/msg00024.html.
For web-service binding, the solution will involve using JaxWs request/response context properties,
as suggested in http://cwiki.apache.org/CXF20DOC/developing-a-consumer.html, paragraph
"Setting Connection Properties with Contexts"
* reconfiguration of rmi stub/skeletons: the reconfiguration of the RMI registry or other
attributes available on the rmi stub/skeleton attribute controllres should trigger a
notification and a consequent reconfiguration
* Support of OSGi for each plugins (through the OSGi plugin resolver).
Fractal-BF 0.8
--------------
* Improve the OSGi plugin resolver:
Create and save a service listener for each BindingFactoryPlugin.
* Improve the OSGi connector:
The OSGi service can now be registered with many object classes.
* Bug fix (commit #10532): "Unresolved compilation problem: Duplicate local variable"
in the Java file generated by the OSGi static builders.
* Bug fix: only one interface could be exported/bound by the ADL compilers.
* update dependencies: Juliac 2.2.3, Tinfi 1.1.2, Apache CXF 2.2.9
Fractal-BF 0.7
--------------
* Move the soap-cxf connector to Apache CXF 2.2.3 and refactor it
by using the set of abstract classes of connectors/common.
* Add a JSON-RPC connector based on jabsorb http://jabsorb.org
See at connectors/json-rpc/ and examples/json-rpc/.
* Add a RESTful connector based on Apache CXF 2.2.3.
See at connectors/rest-cxf and examples/restful/.
* Add a set of abstract classes to build new connectors easily.
See at connectors/common.
* remove deprecated classes:
- from core module:
# org.objectweb.fractal.bf.proxies.AbstractStubComponentFactory
# org.objectweb.fractal.bf.proxies.StubComponentFactory
# org.objectweb.fractal.bf.AbstractBindingFactoryPlugin
# org.objectweb.fractal.bf.StubContentGenerator
# org.objectweb.fractal.bf.AbstractDynamicProxyStubContentGenerator
Deployed on OW2 repositories November 9, 2009
Fractal-BF Connectors RMI 0.6.1
--------------------------------
* Bug fix : the connector's classloader was not given to the generic factory as parameter when creating the stub composite
(patch contributed by Nicolas Dolet)
Deployed on OW2 repositories July 23, 2009
Fractal-BF 0.6
--------------
* API changes:
- o.o.f.bf.BindingFactory interface methods now uses a Map<String,Object> as hints.
Explanation: this is to support complex export/bind hints, as class loaders to be used by certain
plugins. This feature is used by the Java RMI plugin to load stub/skeleton classes using
the specified classloader as parent classloader;
- add methods o.o.f.bf.BindingFactoryPlugin.setBindingFactoryClassLoader(cl), BindingFactoryPlugin.getsetBindingFactoryClassLoader():
the specified classloader will be used as parent classloader whenever a plugin needs one;
- remove method getStubComponentFactory(..) from the o.o.f.bf.BindingFactoryPlugin interface.
Explanation: this is to simplify plugin development, and avoid to developers to deal directly with
complex class hierarchy. The method has been pushed down to the o.o.f.bf.AbstractBindingFactoryPlugin class to
provide backward compatibility with already developed plugins which extends the abstract class;
* core module: a bunch of classes are marked as @Deprecated and are going to be removed in the next release. These
the classes are were designed to facilitate the development of new plugins by a complex class hierarchy:
the design of this hierarchy demonstrated not to be so simple; a new utility class is introduced to
easily create stub and skeletons via ASM, see o.o.f.bf.proxies.ASMStubGenerator in fractal-bf-core module;
* rmi plugin:
- the RmiConnector class doesn't extends superclass o.o.f.bf.AbstractBindingFactoryPlugin class, but directly implements
o.o.f.bf.BindingFactoryPlugin interface: this is to have a clearer design and overall simpler class hierarchy
- the rmi stub/skeleton components can be introspected via the RmiSkeletonAttributes and RmiStubAttributes interfaces
- fractalization of the Java RMI registry: the RMI registry can be introspected using the RmiRegistryAttributes
* soap-cxf plugin:
- stub and skeleton components can be introspected to discover their endpoints. Two new implementations
of the o.o.f.api.control.AttributeController are introduced (o.o.f.bf.connnector.ws.WsStubAttributes
and o.o.f.bf.connnector.ws.WsSkeletonAttributes) with this scope.
- stub and skeleton support for dynamic reconfiguration, by using the AC interface
- overall re-engineering: stub and skeletons are not more tightly coupled with the code to generate
their component implementation elements.
- upgrade to Apache CXF 2.2.1
- support more configuration parameters to configure the bindings:
- wsdlElement
- wsdlLocation
* New module: core-osgi (contribution by Loris Bouzonnet)
- Enhance the core for the executions on OSGi: the binding factory is exposed like an OSGi service and
this one uses an other implementation of the plugin resolver, which retrieves the plugins from the OSGi registry
(for now only the osgi plugin is registered into the registry).
* New plugin: osgi (contribution by Loris Bouzonnet)
- At export time, services are bound into the OSGi registry.
- At bind time, services are retrieved through a service tracker.
* hello-world example refactored: it shows how to develop a WSDL-first application
* two new examples:
- Amazon Web Services
- hello-world OSGi (contribution by Loris Bouzonnet)
* update Fractal dependencies: Juliac 2.2, Tinfi 1.0.1
Fixed issues:
http://forge.ow2.org/tracker/index.php?func=detail&aid=312971&group_id=329&atid=350479
Deployed on OW2 repositories June 18, 2009
Fractal-BF Connectors Soap-CXF 0.5.1
--------------
* Mantainance release to support jaxws clients (temporary solution, copied from current
0.6-SNAPSHOT)
Deployed on OW2 repositories April 09, 2009
Fractal-BF 0.5
--------------
* API changes:
- the BindingFactoryPlugin interface doesn't expose anymore accessor methods to set/get the initialHints map;
- methods getBindHints/getExportHints take 1 argument of type Map<String,String>, from which to build
the plugin-specific BindHints class instances (these get methods are factory methods);
Explanation: these changes were required to be able to re-use the same plugin to export/bind several
interfaces in the same application. In the previous version, the initialHints map was saved, once
and forever, as a class attribute, in the constructor of the super class of every plugin. This change
might be of impact for external libraries currently not used in the integration tests.
* changed name of a required parameter to load plugins: export.mode -> plugin.id
Explanation: it is used when performing an export and a bind operation: plugin.id is more
semantically correct.
* update Fractal dependencies: FractalADL 2.3.1, Juliac 2.1.5, Tinfi 0.4.4
* fractal-bf-adl:
- use fully-qualified names in generated code by StaticExporterBuilder
and StaticBinderBuilder (bug notified by Loris Bouzonnet)
- add missing exportMode parameter in the hints when using static backends
(bug report by Loris Bouzonnet)
* stub and skeleton component names (as are used by the Fractal's NameController) are now assigned
according to the following schema:
[name of the component being exported/bound]-[plugin identifier name]-[stub|skeleton]
Example: when exporting a server interface owned by component 'printer' using the web service plugin
will let the skeleton component be named 'printer-ws-skeleton';
* soap-cxf plugin: upgrade to Apache CXF version 2.1.4 (fix 'map-of-map' problem in Edifixio's demo)
Deployed on OW2 repositories February 17, 2009
Fractal-BF 0.4
--------------
* moved project into fractal trunk
* add example with BF and Fractal Explorer (module examples/fcexplorer)
* add example using user-defined data-types
* web-service plugin: upgrade to Apache CXF version 2.0.9
* updated dependencies: juliac 2.1.2, tinfi 0.4.2
Fixed issues:
http://www.scorware.org/projects/SCOrWare/bugtracker/Support_stopFc_for_RmiServerBridge
http://www.scorware.org/projects/SCOrWare/bugtracker/java_lang_VerifyError_-_Register_2_contains_wrong_type
Deployed on OW2 repositories November 13, 2008
Fractal-BF 0.3
--------------
* first working version of RMI plugin
* added one more example showing how to use the RMI plugin when dealing with interfaces to export or bind that
do not extends java.rmi.Remote
* added one more example showing how to use the BF with a different fractal provider other than Julia.
* significantly improving various README files
* cleanup logging
* stub/skeletons are added to the parent component instead of the topmost (request by Damien)
* web-service plugin: upgrade to Apache CXF version 2.0.7
* test suite upgrade to easymock 2.4
* added more integration tests, in particular with different membranes (tinfi)
Fixed issues:
http://www.scorware.org/projects/SCOrWare/bugtracker/Standalone_WS_error_null_paramters
http://www.scorware.org/projects/SCOrWare/bugtracker/AF_WS_bindings_Handling_exceptions_
http://www.scorware.org/projects/SCOrWare/bugtracker/RmiConnectorException_on_the_helloworld-rmi_example
http://www.scorware.org/projects/SCOrWare/bugtracker/Test_Case_Error_on_WebService_if_used_with_new_SCA_domain_for_each_testing_method_
Deployed on OW2 repositories July 22, 2008
Fractal-BF 0.2
--------------
* RMI plugin still broken (use at your own risk)
* module 'util' removed: its functionalities are internal to the core module
* API changes for plugin developers
* core and ws modules use context classloaders to load the classes required to generate stubs and skeletons
* itests reorganized: every integration tests is now in the itests/ module
Fixed issues:
http://www.scorware.org/projects/SCOrWare/bugtracker/WS_plugin_depends_on_SNAPSHOT_version_of_Apache_CXF
http://www.scorware.org/projects/SCOrWare/bugtracker/binding_factory_artifactId_should_start_with_fractal-bf_
http://www.scorware.org/projects/SCOrWare/bugtracker/binding_ws_can_t_see_external_web_services
http://www.scorware.org/projects/SCOrWare/bugtracker/ClassNotFoundException_if_classes_are_in_jar