summaryrefslogtreecommitdiffstats
path: root/sandbox/sebastien/java/embed/samples/implementation-extension/src/main/java/sample/impl
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2010-08-30 17:18:15 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2010-08-30 17:18:15 +0000
commit5e04cf7908c2be7a07b15e8ffa0f8bd5caf2cff0 (patch)
treedf240da682464a287ed5d065f2debf3e8640d913 /sandbox/sebastien/java/embed/samples/implementation-extension/src/main/java/sample/impl
parentf85505727a6ae0926cae88e8aa8b486b01622acf (diff)
Add a test case showing how to register a ProviderFactory instance. Minor cleanup, add a createNode method that takes a list of contributions and remove reference to NodeFactory implementation class.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@990870 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/sebastien/java/embed/samples/implementation-extension/src/main/java/sample/impl')
-rw-r--r--sandbox/sebastien/java/embed/samples/implementation-extension/src/main/java/sample/impl/EmbedUtil.java75
1 files changed, 49 insertions, 26 deletions
diff --git a/sandbox/sebastien/java/embed/samples/implementation-extension/src/main/java/sample/impl/EmbedUtil.java b/sandbox/sebastien/java/embed/samples/implementation-extension/src/main/java/sample/impl/EmbedUtil.java
index 079df6b15e..1db0e9a717 100644
--- a/sandbox/sebastien/java/embed/samples/implementation-extension/src/main/java/sample/impl/EmbedUtil.java
+++ b/sandbox/sebastien/java/embed/samples/implementation-extension/src/main/java/sample/impl/EmbedUtil.java
@@ -57,17 +57,20 @@ import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLObject;
import org.apache.tuscany.sca.node.Node;
-import org.apache.tuscany.sca.node.configuration.NodeConfiguration;
-import org.apache.tuscany.sca.node.configuration.impl.NodeConfigurationImpl;
-import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
-import org.apache.tuscany.sca.node.impl.NodeImpl;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
/**
- * Simple DSL functions to help assemble and run SCDL.
+ * A few utility functions to help embed a Tuscany runtime, and a simple DSL
+ * to help assemble and run SCDL.
*/
public class EmbedUtil {
- static final NodeFactoryImpl nf;
+ /**
+ * Initialize a Node factory and get the various registries, factories and
+ * extension points we need.
+ */
+ static final NodeFactory nf;
static final ExtensionPointRegistry epr;
static final FactoryExtensionPoint fep;
static final ContributionFactory cf;
@@ -77,8 +80,9 @@ public class EmbedUtil {
static final URLArtifactProcessorExtensionPoint apep;
static final ExtensibleURLArtifactProcessor aproc;
static final ModelResolverExtensionPoint mrep;
+ static final ProviderFactoryExtensionPoint pfep;
static {
- nf = new NodeFactoryImpl();
+ nf = NodeFactory.newInstance();
epr = nf.getExtensionPointRegistry();
fep = epr.getExtensionPoint(FactoryExtensionPoint.class);
cf = fep.getFactory(ContributionFactory.class);
@@ -88,8 +92,12 @@ public class EmbedUtil {
apep = epr.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
aproc = new ExtensibleURLArtifactProcessor(apep);
mrep = epr.getExtensionPoint(ModelResolverExtensionPoint.class);
+ pfep = epr.getExtensionPoint(ProviderFactoryExtensionPoint.class);
}
+ /**
+ * A mini DSL to help build and assemble contributions and SCDL composites.
+ */
static Contribution contrib(final String uri, final String loc, final Artifact... artifacts) {
final Contribution c = cf.createContribution();
c.setURI(uri);
@@ -137,20 +145,6 @@ public class EmbedUtil {
return impl;
}
- static WSDLInterface wsdli(final String uri, final String ns, final String name, final Contribution c) throws InvalidInterfaceException, ContributionException, IOException, URISyntaxException {
- final ProcessorContext ctx = new ProcessorContext();
- final WSDLDefinition wd = aproc.read(null, new URI(uri), new URL(new URL(c.getLocation()), uri), ctx, WSDLDefinition.class);
- c.getModelResolver().addModel(wd, ctx);
- c.getModelResolver().resolveModel(WSDLDefinition.class, wd, ctx);
- final WSDLObject<PortType> pt = wd.getWSDLObject(PortType.class, new QName(ns, name));
- if(pt == null)
- throw new ContributionResolveException("Couldn't find " + name);
- final WSDLInterface nwi = wif.createWSDLInterface(pt.getElement(), wd, c.getModelResolver(), null);
- nwi.setWsdlDefinition(wd);
- nwi.resetDataBinding(DOMDataBinding.NAME);
- return nwi;
- }
-
static Reference reference(final String name, final Class<?> c) throws InvalidInterfaceException {
return ImplUtil.reference(name, c, jif, af);
}
@@ -178,6 +172,37 @@ public class EmbedUtil {
}
/**
+ * Load a WSDL into a contribution.
+ */
+ static WSDLInterface wsdli(final String uri, final String ns, final String name, final Contribution c) throws InvalidInterfaceException, ContributionException, IOException, URISyntaxException {
+ final ProcessorContext ctx = new ProcessorContext();
+ final WSDLDefinition wd = aproc.read(null, new URI(uri), new URL(new URL(c.getLocation()), uri), ctx, WSDLDefinition.class);
+ c.getModelResolver().addModel(wd, ctx);
+ c.getModelResolver().resolveModel(WSDLDefinition.class, wd, ctx);
+ final WSDLObject<PortType> pt = wd.getWSDLObject(PortType.class, new QName(ns, name));
+ if(pt == null)
+ throw new ContributionResolveException("Couldn't find " + name);
+ final WSDLInterface nwi = wif.createWSDLInterface(pt.getElement(), wd, c.getModelResolver(), null);
+ nwi.setWsdlDefinition(wd);
+ nwi.resetDataBinding(DOMDataBinding.NAME);
+ return nwi;
+ }
+
+ /**
+ * Return the extension point registry used by our nodes.
+ */
+ static ExtensionPointRegistry extensionPoints() {
+ return epr;
+ }
+
+ /**
+ * Return the provider factory extension point used by our nodes.
+ */
+ static ProviderFactoryExtensionPoint providerFactories() {
+ return pfep;
+ }
+
+ /**
* Add a deployable composite to a contribution.
*/
static Contribution deploy(final Contribution contrib, final Composite... comps) {
@@ -185,14 +210,12 @@ public class EmbedUtil {
contrib.getDeployables().add(c);
return contrib;
}
-
+
/**
* Configure a node with a list of contributions.
*/
- static Node node(final String uri, final Contribution... contributions) {
- final NodeConfiguration cfg = new NodeConfigurationImpl();
- cfg.setURI(uri);
- return new NodeImpl(nf, cfg, Arrays.asList(contributions));
+ static Node node(final Contribution... contributions) {
+ return nf.createNode(Arrays.asList(contributions));
}
}