You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/09/18 08:31:24 UTC
svn commit: r576720 - in /incubator/tuscany/java/sca:
itest/osgi-contribution/contribution-test/src/main/java/org/apache/tuscany/sca/contribution/osgi/
itest/osgi-implementation/src/test/java/helloworld/
itest/osgi-implementation/src/test/java/util/ mo...
Author: rfeng
Date: Mon Sep 17 23:31:22 2007
New Revision: 576720
URL: http://svn.apache.org/viewvc?rev=576720&view=rev
Log:
Merge the changes from 1.0 branch back to trunk
Added:
incubator/tuscany/java/sca/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding
- copied unchanged from r576568, incubator/tuscany/branches/sca-java-1.0/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding
incubator/tuscany/java/sca/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer
- copied, changed from r576568, incubator/tuscany/branches/sca-java-1.0/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/resources/META-INF/
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/resources/META-INF/services/
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
Removed:
incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/HelloWorldTestCase.java
incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/PassByRefTestCase.java
incubator/tuscany/java/sca/modules/binding-osgi/
incubator/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/module/
incubator/tuscany/java/sca/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/runtime/
incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/XQueryModuleActivator.java
incubator/tuscany/java/sca/modules/implementation-xquery/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
Modified:
incubator/tuscany/java/sca/itest/osgi-contribution/contribution-test/src/main/java/org/apache/tuscany/sca/contribution/osgi/OSGiTestUtil.java
incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/util/OSGiTestUtil.java
incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java
incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java
incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiImportExportListener.java
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/DOMHelper.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTestCase.java
incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/XQueryImplementationProviderFactory.java
incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java
incubator/tuscany/java/sca/modules/osgi-runtime/src/test/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntimeTestCase.java
incubator/tuscany/java/sca/modules/pom.xml
Modified: incubator/tuscany/java/sca/itest/osgi-contribution/contribution-test/src/main/java/org/apache/tuscany/sca/contribution/osgi/OSGiTestUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-contribution/contribution-test/src/main/java/org/apache/tuscany/sca/contribution/osgi/OSGiTestUtil.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-contribution/contribution-test/src/main/java/org/apache/tuscany/sca/contribution/osgi/OSGiTestUtil.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-contribution/contribution-test/src/main/java/org/apache/tuscany/sca/contribution/osgi/OSGiTestUtil.java Mon Sep 17 23:31:22 2007
@@ -63,7 +63,7 @@
public static void shutdownOSGiRuntime() {
try {
- OSGiRuntime.getRuntime().shutdown();
+ OSGiRuntime.stop();
} catch (Exception e) {
// Ignore
Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/util/OSGiTestUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/util/OSGiTestUtil.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/util/OSGiTestUtil.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/util/OSGiTestUtil.java Mon Sep 17 23:31:22 2007
@@ -61,7 +61,7 @@
public static void shutdownOSGiRuntime() {
try {
- OSGiRuntime.getRuntime().shutdown();
+ OSGiRuntime.stop();
} catch (Exception e) {
// Ignore
Modified: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java Mon Sep 17 23:31:22 2007
@@ -40,18 +40,20 @@
private Contribution contribution;
protected WeakReference<ClassLoader> classLoader;
private Map<String, ClassReference> map = new HashMap<String, ClassReference>();
-
+
private ModelResolver osgiResolver;
-
+
public ClassReferenceModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) {
this.contribution = contribution;
//FIXME The classloader should be passed in
this.classLoader = new WeakReference<ClassLoader>(Thread.currentThread().getContextClassLoader());
-
+
try {
- Class osgiResolverClass = Class.forName("org.apache.tuscany.sca.contribution.osgi.impl.OSGiClassReferenceModelResolver");
+ Class osgiResolverClass =
+ Class.forName("org.apache.tuscany.sca.contribution.osgi.impl.OSGiClassReferenceModelResolver");
if (osgiResolverClass != null) {
- Constructor constructor = osgiResolverClass.getConstructor(Contribution.class, ModelFactoryExtensionPoint.class);
+ Constructor constructor =
+ osgiResolverClass.getConstructor(Contribution.class, ModelFactoryExtensionPoint.class);
this.osgiResolver = (ModelResolver)constructor.newInstance(contribution, modelFactories);
}
} catch (Exception e) {
@@ -62,11 +64,11 @@
ClassReference clazz = (ClassReference)resolved;
map.put(clazz.getClassName(), clazz);
}
-
+
public Object removeModel(Object resolved) {
return map.remove(((ClassReference)resolved).getClassName());
}
-
+
/**
* Handle artifact resolution when the specific class reference is imported from another contribution
* @param unresolved
@@ -75,10 +77,10 @@
private ClassReference resolveImportedModel(ClassReference unresolved) {
ClassReference resolved = unresolved;
- if( this.contribution != null) {
+ if (this.contribution != null) {
for (Import import_ : this.contribution.getImports()) {
if (import_ instanceof JavaImport) {
- JavaImport javaImport = (JavaImport) import_;
+ JavaImport javaImport = (JavaImport)import_;
String packageName = javaImport.getPackage();
if (javaImport.getPackage().equals(packageName)) {
// Delegate the resolution to the import resolver
@@ -86,59 +88,53 @@
}
}
}
-
+
}
return resolved;
}
-
-
+
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
Object resolved = map.get(unresolved);
-
- if (resolved != null ){
+
+ if (resolved != null) {
return modelClass.cast(resolved);
- }
-
+ }
+
//Load a class on demand
Class clazz = null;
-
- if (osgiResolver != null)
- resolved = osgiResolver.resolveModel(modelClass, unresolved);
-
- if (unresolved == resolved || resolved == null) {
- try {
- clazz = Class.forName(((ClassReference)unresolved).getClassName(), true, classLoader.get());
- } catch (ClassNotFoundException e) {
- //we will later try to delegate to imported model resolvers
+
+ try {
+ clazz = Class.forName(((ClassReference)unresolved).getClassName(), true, classLoader.get());
+ } catch (ClassNotFoundException e) {
+ //we will later try to delegate to imported model resolvers
+ if (osgiResolver != null) {
+ resolved = osgiResolver.resolveModel(modelClass, unresolved);
+ clazz = ((ClassReference)resolved).getJavaClass();
}
}
- else
- clazz = ((ClassReference)resolved).getJavaClass();
-
if (clazz != null) {
//if we load the class
// Store a new ClassReference wrappering the loaded class
ClassReference classReference = new ClassReference(clazz);
map.put(getPackageName(classReference), classReference);
-
+
// Return the resolved ClassReference
- return modelClass.cast(classReference);
+ return modelClass.cast(classReference);
} else {
//delegate resolution of the class
resolved = this.resolveImportedModel((ClassReference)unresolved);
return modelClass.cast(resolved);
}
-
}
-
+
/***************
* Helper methods
***************/
-
+
private String getPackageName(ClassReference clazz) {
int pos = clazz.getClassName().lastIndexOf(".");
- return clazz.getClassName().substring(0, pos - 1 );
+ return clazz.getClassName().substring(0, pos - 1);
}
}
Modified: incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java Mon Sep 17 23:31:22 2007
@@ -40,8 +40,7 @@
private Map<String, ClassReference> map = new HashMap<String, ClassReference>();
private Bundle bundle;
private boolean initialized;
-
-
+
public OSGiClassReferenceModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) {
this.contribution = contribution;
}
@@ -50,11 +49,11 @@
ClassReference clazz = (ClassReference)resolved;
map.put(clazz.getClassName(), clazz);
}
-
+
public Object removeModel(Object resolved) {
return map.remove(((ClassReference)resolved).getClassName());
}
-
+
/**
* Handle artifact resolution when the specific class reference is imported from another contribution
* @param unresolved
@@ -63,66 +62,63 @@
private ClassReference resolveImportedModel(ClassReference unresolved) {
ClassReference resolved = unresolved;
- if( this.contribution != null) {
+ if (this.contribution != null) {
for (Import import_ : this.contribution.getImports()) {
-
+
if (resolved == unresolved && bundle != null) {
resolved = import_.getModelResolver().resolveModel(ClassReference.class, unresolved);
if (resolved != unresolved)
- break;
+ break;
}
}
-
+
}
return resolved;
}
-
-
+
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
Object resolved = map.get(unresolved);
-
- if (resolved != null ){
+
+ if (resolved != null) {
return modelClass.cast(resolved);
- }
+ }
initialize();
//Load a class on demand
Class clazz = null;
if (bundle != null) {
- try {
- clazz = bundle.loadClass(((ClassReference)unresolved).getClassName());
- } catch (Exception e) {
- // we will later try to delegate to imported model resolvers
- }
+ try {
+ clazz = bundle.loadClass(((ClassReference)unresolved).getClassName());
+ } catch (Exception e) {
+ // we will later try to delegate to imported model resolvers
+ }
}
-
-
+
if (clazz != null) {
//if we load the class
// Store a new ClassReference wrappering the loaded class
ClassReference classReference = new ClassReference(clazz);
map.put(getPackageName(classReference), classReference);
-
+
// Return the resolved ClassReference
- return modelClass.cast(classReference);
+ return modelClass.cast(classReference);
} else {
//delegate resolution of the class
resolved = this.resolveImportedModel((ClassReference)unresolved);
return modelClass.cast(resolved);
}
-
}
-
+
/***************
* Helper methods
***************/
-
+
private String getPackageName(ClassReference clazz) {
int pos = clazz.getClassName().lastIndexOf(".");
- return clazz.getClassName().substring(0, pos - 1 );
+ return clazz.getClassName().substring(0, pos - 1);
}
-
+
private void initialize() {
if (initialized)
return;
Modified: incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiImportExportListener.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiImportExportListener.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiImportExportListener.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiImportExportListener.java Mon Sep 17 23:31:22 2007
@@ -45,9 +45,9 @@
* @version $Rev$ $Date$
*/
public class OSGiImportExportListener implements ContributionListener {
-
+
private OSGiBundleProcessor bundleProcessor;
-
+
public OSGiImportExportListener() {
bundleProcessor = new OSGiBundleProcessor();
}
@@ -57,58 +57,56 @@
* Export model resolvers are same as Contribution model resolver
* Import model resolvers are matched to a specific contribution if a location uri is specified,
* otherwise it try to resolve agains all the other contributions
- */
+ */
public void contributionAdded(ContributionRepository repository, Contribution contribution) {
-
- OSGiRuntime osgiRuntime;
-
+
+ OSGiRuntime osgiRuntime = null;
try {
- osgiRuntime = OSGiRuntime.getRuntime();
-
- if (bundleProcessor.installContributionBundle(contribution) == null)
+ if (bundleProcessor.installContributionBundle(contribution) == null) {
return;
+ } else {
+ osgiRuntime = OSGiRuntime.getRuntime();
+ }
} catch (Exception e) {
return;
}
-
HashSet<Contribution> bundlesToInstall = new HashSet<Contribution>();
// Initialize the contribution imports
- for (Import import_: contribution.getImports()) {
+ for (Import import_ : contribution.getImports()) {
boolean initialized = false;
-
-
- if(import_ instanceof JavaImport) {
- JavaImport javaImport = (JavaImport) import_;
+
+ if (import_ instanceof JavaImport) {
+ JavaImport javaImport = (JavaImport)import_;
String packageName = javaImport.getPackage();
-
+
//Find a matching contribution
- if(javaImport.getLocation() != null) {
+ if (javaImport.getLocation() != null) {
Contribution targetContribution = repository.getContribution(javaImport.getLocation());
if (targetContribution != null) {
-
+
// Find a matching contribution export
- for (Export export: targetContribution.getExports()) {
+ for (Export export : targetContribution.getExports()) {
if (export instanceof JavaExport) {
JavaExport javaExport = (JavaExport)export;
if (packageName.equals(javaExport.getPackage())) {
-
+
if (osgiRuntime.findBundle(targetContribution.getLocation()) == null)
bundlesToInstall.add(targetContribution);
-
+
initialized = true;
-
+
}
}
if (initialized)
break;
}
- }
+ }
}
}
if (!initialized) {
for (Contribution c : repository.getContributions()) {
-
+
// Go over all exports in the contribution
for (Export export : c.getExports()) {
// If the export matches our namespace, try to the resolve the model object
@@ -121,7 +119,7 @@
}
for (Contribution c : bundlesToInstall) {
try {
- installDummyBundle(osgiRuntime, c);
+ installDummyBundle(osgiRuntime, c);
} catch (Exception e) {
}
}
@@ -132,10 +130,12 @@
}
- public void contributionUpdated(ContributionRepository repository, Contribution oldContribution, Contribution contribution) {
+ public void contributionUpdated(ContributionRepository repository,
+ Contribution oldContribution,
+ Contribution contribution) {
}
-
+
private void installDummyBundle(OSGiRuntime osgiRuntime, Contribution contribution) throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
@@ -143,38 +143,47 @@
String bundleName = contribution.getURI();
String uri = contribution.getURI();
-
+
StringBuffer exportPackageNames = new StringBuffer();
for (Export export : contribution.getExports()) {
if (export instanceof JavaExport) {
- if (exportPackageNames.length() > 0) exportPackageNames.append(",");
+ if (exportPackageNames.length() > 0)
+ exportPackageNames.append(",");
exportPackageNames.append(((JavaExport)export).getPackage());
}
}
StringBuffer importPackageNames = new StringBuffer();
for (Import import_ : contribution.getImports()) {
if (import_ instanceof JavaImport) {
- if (importPackageNames.length() > 0) importPackageNames.append(",");
+ if (importPackageNames.length() > 0)
+ importPackageNames.append(",");
importPackageNames.append(((JavaImport)import_).getPackage());
}
}
- String manifestStr = "Manifest-Version: 1.0" + EOL
- + "Bundle-ManifestVersion: 2" + EOL + "Bundle-Name: "
- + bundleName + EOL + "Bundle-SymbolicName: " + bundleName + EOL
- + "Bundle-Version: " + "1.0.0" + EOL
- + "Bundle-Localization: plugin" + EOL;
-
+ String manifestStr =
+ "Manifest-Version: 1.0" + EOL
+ + "Bundle-ManifestVersion: 2"
+ + EOL
+ + "Bundle-Name: "
+ + bundleName
+ + EOL
+ + "Bundle-SymbolicName: "
+ + bundleName
+ + EOL
+ + "Bundle-Version: "
+ + "1.0.0"
+ + EOL
+ + "Bundle-Localization: plugin"
+ + EOL;
StringBuilder manifestBuf = new StringBuilder();
manifestBuf.append(manifestStr);
- manifestBuf.append("Export-Package: " + exportPackageNames + EOL);
- manifestBuf.append("Import-Package: " + importPackageNames + EOL);
+ manifestBuf.append("Export-Package: " + exportPackageNames + EOL);
+ manifestBuf.append("Import-Package: " + importPackageNames + EOL);
manifestBuf.append("Bundle-ClassPath: .," + uri + EOL);
-
- ByteArrayInputStream manifestStream = new ByteArrayInputStream(
- manifestBuf.toString().getBytes());
+ ByteArrayInputStream manifestStream = new ByteArrayInputStream(manifestBuf.toString().getBytes());
Manifest manifest = new Manifest();
manifest.read(manifestStream);
@@ -184,15 +193,14 @@
jarOut.putNextEntry(ze);
URL url = new URL(contribution.getLocation());
InputStream stream = url.openStream();
-
+
byte[] bytes = new byte[stream.available()];
stream.read(bytes);
jarOut.write(bytes);
stream.close();
-
+
jarOut.close();
out.close();
-
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
Modified: incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java Mon Sep 17 23:31:22 2007
@@ -110,15 +110,21 @@
public Object getChild(OMElement wrapper, ElementInfo childElement, int index, TransformationContext context) {
int pos = 0;
+ String wrapperNS = wrapper.getQName().getNamespaceURI();
for (Iterator i = wrapper.getChildElements(); i.hasNext();) {
OMElement e = (OMElement)i.next();
if (pos == index) {
TypeInfo type = childElement.getType();
- if (type != null) {
+ if (!childElement.getQName().equals(e.getQName()) && type != null) {
OMAttribute attr = e.getAttribute(XSI_TYPE_QNAME);
if (attr == null) {
- OMNamespace ns =
- e.getOMFactory().createOMNamespace(type.getQName().getNamespaceURI(), "_typens_");
+ String typeNS = type.getQName().getNamespaceURI();
+ if (wrapperNS != null) {
+ // FIXME: [rfeng] Workaround for TUSCANY-1713, assuming the type
+ // namespace is the same as the wrapper
+ typeNS = wrapperNS;
+ }
+ OMNamespace ns = e.getOMFactory().createOMNamespace(typeNS, "_typens_");
e.declareNamespace(ns);
OMNamespace xsiNS =
e.getOMFactory().createOMNamespace(XSI_TYPE_QNAME.getNamespaceURI(),
Copied: incubator/tuscany/java/sca/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer (from r576568, incubator/tuscany/branches/sca-java-1.0/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer?p2=incubator/tuscany/java/sca/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer&p1=incubator/tuscany/branches/sca-java-1.0/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer&r1=576568&r2=576720&rev=576720&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer (original)
+++ incubator/tuscany/java/sca/modules/databinding-saxon/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer Mon Sep 17 23:31:22 2007
@@ -22,5 +22,5 @@
org.apache.tuscany.sca.databinding.saxon.Value2ObjectTransformer;source=net.sf.saxon.value.Value,target=java.lang.Object,weight=10000
org.apache.tuscany.sca.databinding.saxon.SimpleType2ValueTransformer;source=java:simpleType,target=net.sf.saxon.value.Value,weight=10000
org.apache.tuscany.sca.databinding.saxon.Value2SimpleTypeTransformer;source=net.sf.saxon.value.Value,target=java:simpleType,weight=10000
-org.apache.tuscany.sca.databinding.saxon.NodeInfo2DataObjectTransformer;source=net.sf.saxon.om.NodeInfo,target=commonj.sdo.DataObject,weight=20
+org.apache.tuscany.sca.databinding.saxon.NodeInfo2DataObjectTransformer;source=net.sf.saxon.om.NodeInfo,target=commonj.sdo.DataObject,weight=10
org.apache.tuscany.sca.databinding.saxon.DataObject2NodeInfoTransformer;source=commonj.sdo.DataObject,target=net.sf.saxon.om.NodeInfo,weight=10
Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java Mon Sep 17 23:31:22 2007
@@ -25,6 +25,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.tuscany.sca.databinding.impl.ServiceConfigurationUtil;
import org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding;
@@ -38,6 +40,7 @@
*/
public class DefaultDataBindingExtensionPoint implements DataBindingExtensionPoint {
private final Map<String, DataBinding> bindings = new HashMap<String, DataBinding>();
+ private static final Logger logger = Logger.getLogger(DefaultTransformerExtensionPoint.class.getName());
private boolean loadedDataBindings;
public DefaultDataBindingExtensionPoint() {
@@ -56,7 +59,17 @@
}
public void addDataBinding(DataBinding dataBinding) {
- bindings.put(dataBinding.getName().toLowerCase(), dataBinding);
+ if (logger.isLoggable(Level.FINE)) {
+ String className = dataBinding.getClass().getName();
+ boolean lazy = false;
+ if (dataBinding instanceof LazyDataBinding) {
+ className = ((LazyDataBinding) dataBinding).className;
+ lazy = true;
+ }
+ logger.fine("Adding databinding: " + className + ";type="
+ + dataBinding.getName() + ",lazy=" + lazy);
+ }
+ bindings.put(dataBinding.getName().toLowerCase(), dataBinding);
String[] aliases = dataBinding.getAliases();
if (aliases != null) {
for (String alias : aliases) {
Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java Mon Sep 17 23:31:22 2007
@@ -24,6 +24,8 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.tuscany.sca.databinding.impl.DirectedGraph;
import org.apache.tuscany.sca.databinding.impl.ServiceConfigurationUtil;
@@ -32,6 +34,7 @@
* @version $Rev$ $Date$
*/
public class DefaultTransformerExtensionPoint implements TransformerExtensionPoint {
+ private static final Logger logger = Logger.getLogger(DefaultTransformerExtensionPoint.class.getName());
private boolean loadedTransformers;
private final DirectedGraph<Object, Transformer> graph = new DirectedGraph<Object, Transformer>();
@@ -40,14 +43,32 @@
}
public void addTransformer(String sourceType, String resultType, int weight, Transformer transformer) {
+ if (logger.isLoggable(Level.FINE)) {
+ String className = transformer.getClass().getName();
+ boolean lazy = false;
+ boolean pull = (transformer instanceof PullTransformer);
+ if (transformer instanceof LazyPullTransformer) {
+ className = ((LazyPullTransformer) transformer).className;
+ lazy = true;
+ }
+ if (transformer instanceof LazyPushTransformer) {
+ className = ((LazyPushTransformer) transformer).className;
+ lazy = true;
+ }
+
+ logger.fine("Adding transformer: " + className + ";source="
+ + sourceType + ",target=" + resultType + ",weight="
+ + weight + ",type=" + (pull ? "pull" : "push") + ",lazy="
+ + lazy);
+ }
graph.addEdge(sourceType, resultType, transformer, weight);
}
public void addTransformer(Transformer transformer) {
- graph.addEdge(transformer.getSourceDataBinding(),
+ addTransformer(transformer.getSourceDataBinding(),
transformer.getTargetDataBinding(),
- transformer,
- transformer.getWeight());
+ transformer.getWeight(),
+ transformer);
}
public boolean removeTransformer(String sourceType, String resultType) {
Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/DOMHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/DOMHelper.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/DOMHelper.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/DOMHelper.java Mon Sep 17 23:31:22 2007
@@ -23,8 +23,10 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
/**
@@ -71,6 +73,41 @@
String qname =
(prefix != null && prefix.length() > 0) ? prefix + ":" + name.getLocalPart() : name.getLocalPart();
return document.createElementNS(name.getNamespaceURI(), qname);
+ }
+
+ /**
+ * Wrap an element as a DOM document
+ * @param node
+ * @return
+ */
+ public static Document promote(Node node) {
+ if (node instanceof Document) {
+ return (Document)node;
+ }
+ Element element = (Element)node;
+ Document doc = element.getOwnerDocument();
+ if (doc.getDocumentElement() == element) {
+ return doc;
+ }
+ doc = (Document)element.getOwnerDocument().cloneNode(false);
+ Element schema = (Element)doc.importNode(element, true);
+ doc.appendChild(schema);
+ Node parent = element.getParentNode();
+ while (parent instanceof Element) {
+ Element root = (Element)parent;
+ NamedNodeMap nodeMap = root.getAttributes();
+ for (int i = 0; i < nodeMap.getLength(); i++) {
+ Attr attr = (Attr)nodeMap.item(i);
+ String name = attr.getName();
+ if ("xmlns".equals(name) || name.startsWith("xmlns:")) {
+ if (schema.getAttributeNode(name) == null) {
+ schema.setAttributeNodeNS((Attr)doc.importNode(attr, true));
+ }
+ }
+ }
+ parent = parent.getParentNode();
+ }
+ return doc;
}
}
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java Mon Sep 17 23:31:22 2007
@@ -23,6 +23,8 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
@@ -58,7 +60,7 @@
import org.apache.tuscany.sca.work.WorkScheduler;
public class ReallySmallRuntime {
-
+ private final static Logger logger = Logger.getLogger(ReallySmallRuntime.class.getName());
private List<ModuleActivator> modules;
private ExtensionPointRegistry registry;
@@ -76,7 +78,8 @@
}
public void start() throws ActivationException {
-
+ long start = System.currentTimeMillis();
+
// Create our extension point registry
registry = new DefaultExtensionPointRegistry();
@@ -154,6 +157,10 @@
scaBindingFactory,
mapper,
domainPolicySets);
+ if (logger.isLoggable(Level.FINE)) {
+ long end = System.currentTimeMillis();
+ logger.fine("The tuscany runtime is started in " + (end - start) + " ms.");
+ }
}
private SCADefinitions loadDomainDefinitions(SCADefinitionsDocumentProcessor definitionsProcessor) throws ActivationException {
@@ -174,6 +181,7 @@
}
public void stop() throws ActivationException {
+ long start = System.currentTimeMillis();
// Stop the runtime modules
stopModules(registry, modules);
@@ -189,6 +197,11 @@
compositeActivator = null;
workScheduler = null;
scopeRegistry = null;
+
+ if (logger.isLoggable(Level.FINE)) {
+ long end = System.currentTimeMillis();
+ logger.fine("The tuscany runtime is stopped in " + (end - start) + " ms.");
+ }
}
public ContributionService getContributionService() {
@@ -233,16 +246,35 @@
}
private void startModules(ExtensionPointRegistry registry, List<ModuleActivator> modules) throws ActivationException {
-
+ boolean debug = logger.isLoggable(Level.FINE);
// Start all the extension modules
- for (ModuleActivator activator : modules) {
- activator.start(registry);
+ for (ModuleActivator module : modules) {
+ long start = 0L;
+ if (debug) {
+ logger.fine(module.getClass().getName() + " is starting.");
+ start = System.currentTimeMillis();
+ }
+ module.start(registry);
+ if (debug) {
+ long end = System.currentTimeMillis();
+ logger.fine(module.getClass().getName() + " is started in " + (end - start) + " ms.");
+ }
}
}
private void stopModules(ExtensionPointRegistry registry, List<ModuleActivator> modules) {
+ boolean debug = logger.isLoggable(Level.FINE);
for (ModuleActivator module : modules) {
+ long start = 0L;
+ if (debug) {
+ logger.fine(module.getClass().getName() + " is stopping.");
+ start = System.currentTimeMillis();
+ }
module.stop(registry);
+ if (debug) {
+ long end = System.currentTimeMillis();
+ logger.fine(module.getClass().getName() + " is stopped in " + (end - start) + " ms.");
+ }
}
}
Modified: incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTestCase.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTestCase.java Mon Sep 17 23:31:22 2007
@@ -51,7 +51,7 @@
@Override
protected void tearDown() throws Exception {
- OSGiRuntime.getRuntime().shutdown();
+ OSGiRuntime.stop();
}
public void testOSGiComponent() throws Exception {
Modified: incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/XQueryImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/XQueryImplementationProviderFactory.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/XQueryImplementationProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/XQueryImplementationProviderFactory.java Mon Sep 17 23:31:22 2007
@@ -18,6 +18,10 @@
*/
package org.apache.tuscany.sca.implementation.xquery;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
+import org.apache.tuscany.sca.databinding.TransformerExtensionPoint;
+import org.apache.tuscany.sca.databinding.impl.MediatorImpl;
import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory;
import org.apache.tuscany.sca.provider.ImplementationProvider;
import org.apache.tuscany.sca.provider.ImplementationProviderFactory;
@@ -31,8 +35,11 @@
private JavaPropertyValueObjectFactory javaFactory;
- public XQueryImplementationProviderFactory(JavaPropertyValueObjectFactory javaFactory) {
- this.javaFactory = javaFactory;
+ public XQueryImplementationProviderFactory(ExtensionPointRegistry registry) {
+ DataBindingExtensionPoint dataBindings = registry.getExtensionPoint(DataBindingExtensionPoint.class);
+ TransformerExtensionPoint transformers = registry.getExtensionPoint(TransformerExtensionPoint.class);
+ MediatorImpl mediator = new MediatorImpl(dataBindings, transformers);
+ this.javaFactory = new JavaPropertyValueObjectFactory(mediator);
}
public ImplementationProvider createImplementationProvider(RuntimeComponent component,
Modified: incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java Mon Sep 17 23:31:22 2007
@@ -27,6 +27,7 @@
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
@@ -51,9 +52,9 @@
private AssemblyFactory assemblyFactory;
private JavaInterfaceFactory javaFactory;
- public XQueryImplementationProcessor(AssemblyFactory assemblyFactory, JavaInterfaceFactory javaFactory) {
- this.assemblyFactory = assemblyFactory;
- this.javaFactory = javaFactory;
+ public XQueryImplementationProcessor(ModelFactoryExtensionPoint modelFactoryExtensionPoint) {
+ this.assemblyFactory = modelFactoryExtensionPoint.getFactory(AssemblyFactory.class);
+ this.javaFactory = modelFactoryExtensionPoint.getFactory(JavaInterfaceFactory.class);
}
public QName getArtifactType() {
Modified: incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java Mon Sep 17 23:31:22 2007
@@ -18,28 +18,30 @@
*/
package org.apache.tuscany.sca.osgi.runtime;
-
import java.io.InputStream;
import java.lang.reflect.Method;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
import org.osgi.service.packageadmin.PackageAdmin;
-public abstract class OSGiRuntime {
-
+public abstract class OSGiRuntime {
+ private static final Logger logger = Logger.getLogger(OSGiRuntime.class.getName());
private BundleContext bundleContext;
-
+
public abstract BundleContext getBundleContext();
-
- public abstract void shutdown() throws Exception;
-
+
+ protected abstract void shutdown() throws Exception;
+
public abstract boolean supportsBundleFragments();
-
+
private PackageAdmin packageAdmin;
-
-
+
+ private static OSGiRuntime instance;
+
/**
* System property org.apache.tuscany.implementation.osgi.runtime.OSGiRuntime can be set to the
* name of the OSGiRuntime class (eg. EquinoxRuntime). If set, start this runtime and return the
@@ -48,105 +50,106 @@
*
* @throws BundleException
*/
- public static OSGiRuntime getRuntime() throws Exception {
-
+ public synchronized static OSGiRuntime getRuntime() throws Exception {
+ if (instance != null) {
+ return instance;
+ }
String runtimeClassName = System.getProperty(OSGiRuntime.class.getName());
if (runtimeClassName != null) {
try {
Class<?> runtimeClass = OSGiRuntime.class.getClassLoader().loadClass(runtimeClassName);
Method method = runtimeClass.getMethod("getInstance");
- return (OSGiRuntime) method.invoke(null);
-
+ instance = (OSGiRuntime)method.invoke(null);
+ return instance;
+
} catch (Exception e) {
throw new BundleException("Could not start OSGi runtime " + runtimeClassName, e);
}
}
-
+
try {
-
- return EquinoxRuntime.getInstance();
-
+ instance = EquinoxRuntime.getInstance();
+ return instance;
+
} catch (ClassNotFoundException e) {
- } catch (Throwable e) {
- e.printStackTrace();
- }
-
+ // Ignore
+ } catch (Throwable e) {
+ logger.log(Level.SEVERE, e.getMessage(), e);
+ }
+
try {
-
- return FelixRuntime.getInstance();
-
+ instance = FelixRuntime.getInstance();
+ return instance;
} catch (ClassNotFoundException e) {
- } catch (Throwable e) {
- e.printStackTrace();
- }
-
+ // Ignore
+ } catch (Throwable e) {
+ logger.log(Level.SEVERE, e.getMessage(), e);
+ }
+
try {
-
- return KnopflerfishRuntime.getInstance();
-
+ instance = KnopflerfishRuntime.getInstance();
+ return instance;
} catch (ClassNotFoundException e) {
- } catch (Throwable e) {
- e.printStackTrace();
- }
-
+ // Ignore
+ } catch (Throwable e) {
+ logger.log(Level.SEVERE, e.getMessage(), e);
+ }
+
throw new BundleException("Could not start OSGi runtime from the classpath");
}
-
+
private void initialize() {
- if (bundleContext == null)
+ if (bundleContext == null)
bundleContext = getBundleContext();
-
- if (bundleContext != null) {
-
- org.osgi.framework.ServiceReference packageAdminReference =
+
+ if (bundleContext != null) {
+
+ org.osgi.framework.ServiceReference packageAdminReference =
bundleContext.getServiceReference("org.osgi.service.packageadmin.PackageAdmin");
if (packageAdminReference != null) {
-
- packageAdmin = (PackageAdmin) bundleContext.getService(packageAdminReference);
+
+ packageAdmin = (PackageAdmin)bundleContext.getService(packageAdminReference);
}
- }
-
+ }
+
}
-
public Bundle findBundle(String bundleSymbolicName, String bundleVersion) {
-
- initialize();
-
+
+ initialize();
+
if (bundleContext != null) {
Bundle[] installedBundles = bundleContext.getBundles();
for (Bundle bundle : installedBundles) {
- if (bundleSymbolicName.equals(bundle.getSymbolicName()) &&
- (bundleVersion == null ||
- bundleVersion.equals(bundle.getHeaders().get("Bundle-Version"))))
- return bundle;
+ if (bundleSymbolicName.equals(bundle.getSymbolicName()) && (bundleVersion == null || bundleVersion
+ .equals(bundle.getHeaders().get("Bundle-Version"))))
+ return bundle;
}
-
+
}
return null;
}
-
public Bundle findBundle(String bundleLocation) {
-
+
initialize();
-
+
if (bundleContext != null) {
Bundle[] installedBundles = bundleContext.getBundles();
for (Bundle bundle : installedBundles) {
if (bundle.getLocation().equals(bundleLocation))
- return bundle;
+ return bundle;
}
-
+
}
return null;
}
-
+
public Bundle installBundle(String bundleLocation, InputStream inputStream) {
-
- initialize();
-
+
+ initialize();
+
try {
if (bundleContext != null) {
Bundle bundle = findBundle(bundleLocation);
@@ -156,15 +159,25 @@
bundle = bundleContext.installBundle(bundleLocation);
else
bundle = bundleContext.installBundle(bundleLocation, inputStream);
-
+
if (bundle != null && packageAdmin != null)
- packageAdmin.refreshPackages(null);
-
+ packageAdmin.refreshPackages(null);
+
return bundle;
}
} catch (BundleException e) {
}
return null;
+ }
+
+ /**
+ * @return the instance
+ */
+ public synchronized static void stop() throws Exception {
+ if (instance != null) {
+ instance.shutdown();
+ instance = null;
+ }
}
}
Added: incubator/tuscany/java/sca/modules/osgi-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator?rev=576720&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/osgi-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator (added)
+++ incubator/tuscany/java/sca/modules/osgi-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator Mon Sep 17 23:31:22 2007
@@ -0,0 +1,36 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# Implementation class for the ModuleActivator
+org.apache.tuscany.sca.osgi.runtime.OSGiRuntimeModuleActivator
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# Implementation class for the ModuleActivator
+org.apache.tuscany.sca.osgi.runtime.OSGiRuntimeModuleActivator
Modified: incubator/tuscany/java/sca/modules/osgi-runtime/src/test/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntimeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/test/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntimeTestCase.java?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/osgi-runtime/src/test/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntimeTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/osgi-runtime/src/test/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntimeTestCase.java Mon Sep 17 23:31:22 2007
@@ -19,40 +19,54 @@
package org.apache.tuscany.sca.osgi.runtime;
-import org.apache.tuscany.sca.osgi.runtime.OSGiRuntime;
-import org.osgi.framework.BundleContext;
-
import junit.framework.TestCase;
+import org.osgi.framework.BundleContext;
+
/**
* Test OSGi runtime.
*
*/
public class OSGiRuntimeTestCase extends TestCase {
-
+ private OSGiRuntime runtime;
+
+ /**
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ this.runtime = OSGiRuntime.getRuntime();
+ }
+
+ /**
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() throws Exception {
+ OSGiRuntime.stop();
+ }
+
public void testRuntime() throws Exception {
-
- BundleContext bc1 = OSGiRuntime.getRuntime().getBundleContext();
-
+
+ BundleContext bc1 = runtime.getBundleContext();
+
assertNotNull(bc1);
-
- BundleContext bc2 = OSGiRuntime.getRuntime().getBundleContext();
-
+
+ BundleContext bc2 = runtime.getBundleContext();
+
assertNotNull(bc2);
-
+
assertTrue(bc1 == bc2);
-
- OSGiRuntime.getRuntime().shutdown();
-
- BundleContext bc3 = OSGiRuntime.getRuntime().getBundleContext();
-
+
+ OSGiRuntime.stop();
+ runtime = OSGiRuntime.getRuntime();
+
+ BundleContext bc3 = runtime.getBundleContext();
+
assertNotNull(bc3);
-
+
assertTrue(bc1 != bc3);
-
-
-
+
}
-
}
Modified: incubator/tuscany/java/sca/modules/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/pom.xml?rev=576720&r1=576719&r2=576720&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/pom.xml Mon Sep 17 23:31:22 2007
@@ -50,7 +50,6 @@
<module>binding-rmi</module>
<module>binding-sca</module>
<module>binding-sca-axis2</module>
- <module>binding-osgi</module>
<!--
<module>binding-sca-jms</module>
-->
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org