diff options
author | dims <dims@13f79535-47bb-0310-9956-ffa450edef68> | 2008-06-17 00:23:01 +0000 |
---|---|---|
committer | dims <dims@13f79535-47bb-0310-9956-ffa450edef68> | 2008-06-17 00:23:01 +0000 |
commit | bdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a (patch) | |
tree | 38a92061c0793434c4be189f1d70c3458b6bc41d /branches/sca-java-1.2/itest/osgi-tuscany |
Move Tuscany from Incubator to top level.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.2/itest/osgi-tuscany')
44 files changed, 3809 insertions, 0 deletions
diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/pom.xml b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/pom.xml new file mode 100644 index 0000000000..609803205c --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/pom.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany-test</artifactId> + <name>Apache Tuscany OSGi-Based Tuscany Runtime Tests</name> + + <dependencies> + + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.main</artifactId> + <version>1.1.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.osgi.core</artifactId> + <version>1.0.0</version> + </dependency> + + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.configadmin</artifactId> + <version>1.0.0</version> + <!-- Exclude the javax.servlet to avoid conflict --> + <exclusions> + <exclusion> + <groupId>org.apache.felix</groupId> + <artifactId>javax.servlet</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.scr</artifactId> + <version>1.0.0</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.2</version> + <scope>test</scope> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <forkMode>pertest</forkMode> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/FelixTestRuntime.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/FelixTestRuntime.java new file mode 100644 index 0000000000..3b5e808d1b --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/FelixTestRuntime.java @@ -0,0 +1,185 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.runtime.impl; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +import org.apache.felix.framework.Felix; +import org.apache.felix.main.AutoActivator; +import org.apache.felix.main.Main; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class FelixTestRuntime extends OSGiTestRuntime implements BundleActivator { + + private static BundleContext bundleContext; + + private static FelixTestRuntime instance; + + private static Felix felix; + + + public static OSGiTestRuntime getInstance() throws Exception { + if (instance == null) { + + FelixTestRuntime runtime = new FelixTestRuntime(); + instance = runtime; + } + return instance; + } + + + private void deleteDirectory(File dir) { + File[] files = dir.listFiles(); + for (int i = 0; i < files.length; i++) { + if (files[i].isDirectory()) + deleteDirectory(files[i]); + else { + files[i].delete(); + } + } + dir.delete(); + + } + + private void deleteProfile() { + String profileDirName = System.getProperty("felix.cache.profiledir"); + if (profileDirName == null) profileDirName = ".felix"; + File profileDir = new File(profileDirName); + if (profileDir.isDirectory()) + deleteDirectory(profileDir); + else + profileDir.delete(); + } + + protected BundleContext startRuntime() throws Exception { + + if (bundleContext != null) + return bundleContext; + + Properties props = Main.loadConfigProperties(); + + deleteProfile(); + // Create profile directory + String profileDirName = System.getProperty("felix.cache.profiledir"); + if (profileDirName == null) profileDirName = ".felix"; + File profileDir = new File(profileDirName); + profileDir.mkdir(); + + props.put("felix.cache.profiledir", profileDir.getAbsolutePath()); + props.put("felix.embedded.execution", "true"); + String systemPackages = + "org.osgi.framework; version=1.3.0," + + "org.osgi.service.packageadmin; version=1.2.0, " + + "org.osgi.service.startlevel; version=1.0.0, " + + "org.osgi.service.url; version=1.0.0, " + + "org.osgi.util.tracker; version=1.3.2, " + + "javax.xml, " + + "javax.xml.datatype, " + + "javax.xml.namespace, " + + "javax.xml.parsers, " + + "javax.xml.transform, " + + "javax.xml.transform.dom, " + + "javax.xml.transform.sax, " + + "javax.xml.transform.stream, " + + "javax.xml.validation, " + + "javax.xml.xpath, " + + "javax.sql," + + "org.w3c.dom, " + + "org.xml.sax, " + + "org.xml.sax.ext, " + + "org.xml.sax.helpers, " + + "javax.security.auth, " + + "javax.security.auth.login, " + + "javax.security.auth.callback, " + + "javax.naming, " + + "javax.naming.spi, " + + "javax.naming.directory, " + + "javax.management, " + + "sun.misc, " + + "javax.net, " + + "javax.crypto, " + + "org.apache.felix.main"; + + + props.put("org.osgi.framework.system.packages", systemPackages); + + List<BundleActivator> activators = new ArrayList<BundleActivator>(); + AutoActivator autoActivator = new AutoActivator(props); + activators.add(autoActivator); + felix = new Felix(props, activators); + ((Bundle)felix).start(); + bundleContext = ((Bundle)felix).getBundleContext(); + + return bundleContext; + + } + + public void start(BundleContext context) throws Exception { + + bundleContext = context; + synchronized (this) { + this.notify(); + } + } + + public void stop(BundleContext context) throws Exception { + bundleContext = null; + } + + + + @Override + public BundleContext getBundleContext() { + return bundleContext; + } + + @Override + protected void setBundleContext(BundleContext bundleContext) { + super.setBundleContext(bundleContext); + FelixTestRuntime.bundleContext = bundleContext; + } + + + @Override + public void shutdown() throws Exception { + + if (bundleContext == null) + return; + + bundleContext = null; + instance = null; + + felix.stop(); + int retries = 50; + synchronized (felix) { + while (retries-- > 0 && felix.getState() != Bundle.UNINSTALLED) { + felix.wait(100); + } + } + + super.shutdown(); + } + + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/OSGiTestRuntime.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/OSGiTestRuntime.java new file mode 100644 index 0000000000..bb3a263632 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/OSGiTestRuntime.java @@ -0,0 +1,109 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.runtime.impl; + +import java.lang.reflect.Method; + +import org.osgi.framework.BundleContext; +import org.osgi.framework.BundleException; + +public abstract class OSGiTestRuntime { + + public abstract BundleContext getBundleContext(); + + protected abstract BundleContext startRuntime() throws Exception; + + private static OSGiTestRuntime instance; + + private BundleContext bundleContext; + + + /** + * 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 + * system bundlecontext. If not set, start Felix from the classpath. + * + * @throws BundleException + */ + public synchronized static OSGiTestRuntime findRuntime() throws Exception { + if (instance != null) { + return instance; + } + String runtimeClassName = System.getProperty(OSGiTestRuntime.class.getName()); + + if (instance != null) + return instance; + + if (runtimeClassName != null) { + try { + Class<?> runtimeClass = OSGiTestRuntime.class.getClassLoader().loadClass(runtimeClassName); + Method method = runtimeClass.getMethod("getInstance"); + instance = (OSGiTestRuntime) method.invoke(null); + return instance; + + } catch (Exception e) { + throw new BundleException("Could not start OSGi runtime " + runtimeClassName, e); + } + } + + instance = FelixTestRuntime.getInstance(); + return instance; + + } + + + public synchronized static OSGiTestRuntime getRuntime() throws Exception { + + instance = findRuntime(); + + if (instance != null) { + + if (instance.bundleContext == null) { + instance.startRuntime(); + instance.bundleContext = instance.getBundleContext(); + } + return instance; + } + return instance; + } + + + public void shutdown() throws Exception { + + bundleContext = null; + if (this == instance) + instance = null; + } + + protected void setBundleContext(BundleContext bundleContext) { + this.bundleContext = bundleContext; + } + + + /** + * @return the instance + */ + public synchronized static void stop() throws Exception { + if (instance != null) { + instance.shutdown(); + instance = null; + } + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/util/OSGiRuntimeLoader.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/util/OSGiRuntimeLoader.java new file mode 100644 index 0000000000..270f589f7c --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/util/OSGiRuntimeLoader.java @@ -0,0 +1,86 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.util; + +import org.apache.felix.main.Main; +import org.apache.tuscany.sca.test.osgi.runtime.impl.OSGiTestRuntime; + + + +/** + * OSGi Test Utils : Set up OSGi runtime + */ +public class OSGiRuntimeLoader { + + public static OSGiTestRuntime startOSGiTestRuntime() throws Exception { + + setUpFelixTestRuntime(); + + + System.setProperty("felix.cache.profiledir", ".felix.test"); + + OSGiTestRuntime osgiRuntime = OSGiTestRuntime.getRuntime(); + + System.setProperty("felix.cache.profiledir", ".felix"); + + return osgiRuntime; + + } + + public static void setUpOSGiTestRuntime() throws Exception { + + setUpFelixTestRuntime(); + + } + + + private static void setUpFelixTestRuntime() throws Exception { + + String felixConfigFileName = "file:target/test-classes/felix/felix.config.properties"; + + System.setProperty("felix.config.properties", felixConfigFileName); + + System.setProperty("felix.service.urlhandlers", "false"); + + + try { + String felixDir = Main.class.getProtectionDomain().getCodeSource().getLocation().getPath(); + int index = 0; + if ((index = felixDir.indexOf("/org.apache.felix.main")) >= 0) { + felixDir = felixDir.substring(0, index); + System.setProperty("FELIX_DIR", felixDir); + } + + } catch (Exception e) { + // Ignore + } + + + } + + public static void shutdownOSGiRuntime() { + try { + OSGiTestRuntime.stop(); + + } catch (Exception e) { + // Ignore + } + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/util/TuscanyLoader.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/util/TuscanyLoader.java new file mode 100644 index 0000000000..30be1feee9 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/util/TuscanyLoader.java @@ -0,0 +1,105 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.util; + +import java.io.File; +import java.io.FilenameFilter; + +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; + +/** + * Load Tuscany into an OSGi runtime + * + */ +public class TuscanyLoader { + + private static final String scaApiDir = "sca-api"; + private static final String tuscanySpiDir = "tuscany-spi"; + private static final String tuscanyRuntimeDir = "tuscany-runtime"; + private static final String tuscanyExtensionsDir = "tuscany-extensions"; + private static final String thirdPartyDir = "tuscany-3rdparty"; + + private static Bundle tuscanyRuntimeBundle; + + + private static String findBundle(String subDirName) throws Exception { + + File dir = new File("../" + subDirName + "/target"); + if (dir.exists() && dir.isDirectory()) { + File[] files = dir.listFiles(new FilenameFilter() { + + public boolean accept(File dir, String name) { + return name.endsWith(".jar"); + } + + }); + + if (files != null && files.length > 0) + return files[0].toURI().toURL().toString(); + } + return null; + } + + + /** + * Load four Tuscany bundles (API, Core-SPI, Runtime, Extensions) and + * one 3rd party bundle + * + * @param bundleContext + */ + public static Bundle loadTuscanyIntoOSGi(BundleContext bundleContext) throws Exception { + + if (tuscanyRuntimeBundle != null) + return tuscanyRuntimeBundle; + + long startTime = System.currentTimeMillis(); + + String thirdPartyBundleName = findBundle(thirdPartyDir); + Bundle thirdPartyBundle = bundleContext.installBundle(thirdPartyBundleName); + thirdPartyBundle.start(); + + + String scaApiBundleName = findBundle(scaApiDir); + Bundle scaApiBundle = bundleContext.installBundle(scaApiBundleName); + scaApiBundle.start(); + + String tuscanySpiBundleName = findBundle(tuscanySpiDir); + Bundle tuscanySpiBundle = bundleContext.installBundle(tuscanySpiBundleName); + + String tuscanyRuntimeBundleName = findBundle(tuscanyRuntimeDir); + Bundle tuscanyRuntimeBundle = bundleContext.installBundle(tuscanyRuntimeBundleName); + + String tuscanyExtensionsBundleName = findBundle(tuscanyExtensionsDir); + Bundle tuscanyExtensionsBundle = bundleContext.installBundle(tuscanyExtensionsBundleName); + + + tuscanySpiBundle.start(); + tuscanyExtensionsBundle.start(); + + + long endTime = System.currentTimeMillis(); + + System.out.println("Loaded Tuscany, time taken = " + (endTime-startTime) + " ms" ); + + return tuscanyRuntimeBundle; + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/OSGiTuscanyTestHarness.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/OSGiTuscanyTestHarness.java new file mode 100644 index 0000000000..5d9ce2bdfe --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/OSGiTuscanyTestHarness.java @@ -0,0 +1,304 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.harness; + + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.lang.reflect.Method; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.jar.JarOutputStream; +import java.util.jar.Manifest; +import java.util.zip.ZipEntry; + +import junit.framework.Assert; +import junit.framework.TestCase; +import junit.framework.TestResult; + +import org.apache.tuscany.sca.test.osgi.runtime.impl.OSGiTestRuntime; +import org.apache.tuscany.sca.test.util.OSGiRuntimeLoader; +import org.apache.tuscany.sca.test.util.TuscanyLoader; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; + +/* + * Test Tuscany running in an OSGi container + * Harness can be used to run Tuscany samples with Tuscany running in OSGi + */ +public class OSGiTuscanyTestHarness { + + + private OSGiTestRuntime osgiRuntime; + private Bundle tuscanyRuntime; + private BundleContext bundleContext; + + public void setUp() throws Exception { + + osgiRuntime = OSGiRuntimeLoader.startOSGiTestRuntime(); + bundleContext = osgiRuntime.getBundleContext(); + } + + + public void tearDown() throws Exception { + + if (tuscanyRuntime != null) { + tuscanyRuntime.stop(); + tuscanyRuntime.uninstall(); + } + OSGiRuntimeLoader.shutdownOSGiRuntime(); + } + + + public void runTest(String... testDirs) throws Exception { + + String mainTestDir = testDirs[0]; + + File testDir = new File(mainTestDir + "/target/test-classes"); + if (!testDir.exists()) { + System.err.println("Test directory " + testDir + " does not exist"); + return; + } + + System.out.println("Run tests from : " + mainTestDir); + + tuscanyRuntime = TuscanyLoader.loadTuscanyIntoOSGi(bundleContext); + + String[] dirs = new String[testDirs.length + 2]; + int i = 0; + dirs[i++] = mainTestDir + "/target/test-classes"; + dirs[i++] = "target/test-classes"; + for (int j = 0; j < testDirs.length; j++) { + dirs[i++] = testDirs[j] + "/target/classes"; + } + + String manifestFile = "target/test-classes/META-INF/MANIFEST.MF"; + + Bundle testBundle = createAndInstallBundle( + "file:" + mainTestDir + "/target/classes", // Bundle location: used to get File URLs for DefaultSCADomain + manifestFile, // Test bundle manifest file + dirs // Directory entries to be added to bundle + ); + + + tuscanyRuntime.start(); + + testBundle.start(); + + Class<?> testClass = testBundle.loadClass(this.getClass().getName()); + Method testMethod = testClass.getMethod("runAllTestsFromBundle", Bundle.class); + Object testObject = testClass.newInstance(); + testMethod.invoke(testObject, testBundle); + + testBundle.stop(); + testBundle.uninstall(); + } + + // Create and install a bundle with the specified manifest file + // The bundle contains all files from the list of directories specified + public Bundle createAndInstallBundle(String bundleLocation, String manifestFileName, + String[] dirNames) throws Exception { + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + File manifestFile = new File(manifestFileName); + Manifest manifest = new Manifest(); + manifest.read(new FileInputStream(manifestFile)); + + JarOutputStream jarOut = new JarOutputStream(out, manifest); + + for (int i = 0; i < dirNames.length; i++) { + File dir = new File(dirNames[i]); + addFilesToJar(dir, dirNames[i], jarOut); + } + + jarOut.close(); + out.close(); + + ByteArrayInputStream inStream = new ByteArrayInputStream(out.toByteArray()); + return bundleContext.installBundle(bundleLocation, inStream); + + } + + // Add all the files from a build directory into a jar file + // This method is used to create bundles on the fly + private void addFilesToJar(File dir, String rootDirName, JarOutputStream jarOut) throws Exception { + + if (dir.getName().equals(".svn")) + return; + + File[] files = dir.listFiles(); + + if (files == null) + return; + + for (int i = 0; i < files.length; i++) { + + if (files[i].isDirectory()) { + addFilesToJar(files[i], rootDirName, jarOut); + } + if (files[i].getName().endsWith("MANIFEST.MF")) + continue; + + String entryName = files[i].getPath().substring(rootDirName.length()+1); + entryName = entryName.replaceAll("\\\\", "/"); + if (files[i].isDirectory()) { + entryName += "/"; + } + ZipEntry ze = new ZipEntry(entryName); + + try { + jarOut.putNextEntry(ze); + FileInputStream file = new FileInputStream(files[i]); + byte[] fileContents = new byte[file.available()]; + file.read(fileContents); + jarOut.write(fileContents); + } catch (Exception e) { + // Ignore duplicate entry errors + } + } + } + + + public void runAllTestsFromBundle(Bundle bundle) throws Exception { + + TestResult testResult = new TestResult(); + Enumeration entries = bundle.findEntries("/", "*TestCase.class", true); + while (entries.hasMoreElements()) { + URL entry = (URL)entries.nextElement(); + String className = entry.getFile(); + className = className.substring(1, className.length()-6); // remove leading / and trailing .class + className = className.replaceAll("/", "."); + Class testClass = bundle.loadClass(className); + boolean isJunitTest = TestCase.class.isAssignableFrom(testClass); + if (testClass.getName().endsWith("TestCase") && + !testClass.getPackage().getName().startsWith("org.apache.tuscany.sca.test.osgi")) { + Object test = (Object)testClass.newInstance(); + + System.out.println("Running test " + test + " "); + int ran = 0; + int failed = 0; + ArrayList<Method> testMethods = new ArrayList<Method>(); + Method setupMethod = null; + Method tearDownMethod = null; + Method setupClassMethod = null; + Method tearDownClassMethod = null; + Method[] methods = testClass.getDeclaredMethods(); + for (final Method method : methods) { + if ((isJunitTest && method.getName().startsWith("test")) + || method.getAnnotation(Test.class) != null) { + testMethods.add(method); + + } + else if ((isJunitTest && method.getName().equals("setUp")) + || method.getAnnotation(Before.class) != null) { + + setupMethod = method; + AccessController.doPrivileged(new PrivilegedAction<Object>() { + public Object run() { + method.setAccessible(true); + return null; + } + }); + + } + else if ((isJunitTest && method.getName().equals("tearDown")) + || method.getAnnotation(After.class) != null) { + + tearDownMethod = method; + AccessController.doPrivileged(new PrivilegedAction<Object>() { + public Object run() { + method.setAccessible(true); + return null; + } + }); + + } + else if (method.getAnnotation(BeforeClass.class) != null) { + + setupClassMethod = method; + AccessController.doPrivileged(new PrivilegedAction<Object>() { + public Object run() { + method.setAccessible(true); + return null; + } + }); + + } + else if (method.getAnnotation(AfterClass.class) != null) { + + tearDownClassMethod = method; + AccessController.doPrivileged(new PrivilegedAction<Object>() { + public Object run() { + method.setAccessible(true); + return null; + } + }); + + } + } + try { + if (setupClassMethod != null) + setupClassMethod.invoke(null); + for (Method testMethod : testMethods) { + + ran++; + failed++; + try { + if (setupMethod != null) + setupMethod.invoke(test); + + testMethod.invoke(test); + failed--; + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } finally { + if (tearDownMethod != null) + tearDownMethod.invoke(test); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } finally { + + System.out.println("Ran: " + ran + ", Passed: " + (ran-failed) + ", Failed: " + failed); + if (tearDownClassMethod != null) + tearDownClassMethod.invoke(null); + } + } + + } + + Assert.assertEquals(0, testResult.errorCount()); + + } +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/TestBundleActivator.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/TestBundleActivator.java new file mode 100644 index 0000000000..a354ae0443 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/TestBundleActivator.java @@ -0,0 +1,38 @@ +/** + * + * 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. + */ +package org.apache.tuscany.sca.test.osgi.harness; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + + +/* + * Bundle activator for running the Tuscany SCA tests under OSGi + */ +public class TestBundleActivator implements BundleActivator { + + public void start(BundleContext bundleContext) throws Exception { + + } + + public void stop(BundleContext bundleContext) throws Exception { + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorImplementationPoliciesTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorImplementationPoliciesTestCase.java new file mode 100644 index 0000000000..179ca9ac53 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorImplementationPoliciesTestCase.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-calculator-implementation-policies + */ +public class CalculatorImplementationPoliciesTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "calculator-implementation-policies"); + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorRmiTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorRmiTestCase.java new file mode 100644 index 0000000000..067071e93c --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorRmiTestCase.java @@ -0,0 +1,62 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-calculator-rmi-reference and samples-calculator-rmi-service + */ +public class CalculatorRmiTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "calculator-rmi-reference"); + testHarness.runTest("../../../samples/" + "calculator-rmi-service"); + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorScriptTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorScriptTestCase.java new file mode 100644 index 0000000000..f3dd7c2392 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorScriptTestCase.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-calculator-script + */ +public class CalculatorScriptTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "calculator-script"); + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CallbackWsClientTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CallbackWsClientTestCase.java new file mode 100644 index 0000000000..acdc14153c --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CallbackWsClientTestCase.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-callback-ws + */ +public class CallbackWsClientTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "callback-ws-client", + "../../../samples/" + "callback-ws-service"); + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CallbackWsServiceTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CallbackWsServiceTestCase.java new file mode 100644 index 0000000000..d009ab116f --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CallbackWsServiceTestCase.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-callback-ws + */ +public class CallbackWsServiceTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "callback-ws-service"); + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceJmsTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceJmsTestCase.java new file mode 100644 index 0000000000..44fcd77036 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceJmsTestCase.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-helloworld-ws-service-jms + */ +public class HelloworldWsServiceJmsTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "helloworld-ws-service-jms"); + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceSecureTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceSecureTestCase.java new file mode 100644 index 0000000000..c3d7237470 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceSecureTestCase.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-helloworld-ws-service-secure + */ +public class HelloworldWsServiceSecureTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "helloworld-ws-service-secure"); + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceTestCase.java new file mode 100644 index 0000000000..6a4553bdb6 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceTestCase.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-helloworld-ws-service + */ +public class HelloworldWsServiceTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "helloworld-ws-service"); + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiSupplyChainTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiSupplyChainTestCase.java new file mode 100644 index 0000000000..6ab92ffc5a --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiSupplyChainTestCase.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples-osgi-supplychain + */ +public class OSGiSupplyChainTestCase { + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + } + } + + + @Test + public void runTest() throws Exception { + + testHarness.runTest("../../../samples/" + "osgi-supplychain"); + + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiTuscanyRuntimeTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiTuscanyRuntimeTestCase.java new file mode 100644 index 0000000000..6bbac4c72d --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiTuscanyRuntimeTestCase.java @@ -0,0 +1,115 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import java.io.File; +import java.lang.reflect.Method; +import java.net.URL; + +import org.apache.tuscany.sca.test.osgi.runtime.impl.OSGiTestRuntime; +import org.apache.tuscany.sca.test.util.OSGiRuntimeLoader; +import org.apache.tuscany.sca.test.util.TuscanyLoader; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.osgi.framework.Bundle; +import org.osgi.framework.ServiceReference; + +/* + * Test Tuscany running inside OSGi + */ +public class OSGiTuscanyRuntimeTestCase { + + private OSGiTestRuntime osgiRuntime; + private Bundle tuscanyRuntime; + + + @Before + public void setUp() throws Exception { + + osgiRuntime = OSGiRuntimeLoader.startOSGiTestRuntime(); + } + + + @After + public void tearDown() throws Exception { + + if (tuscanyRuntime != null) { + tuscanyRuntime.stop(); + tuscanyRuntime.uninstall(); + } + OSGiRuntimeLoader.shutdownOSGiRuntime(); + } + + + + @Test + public void startTuscanyRuntimeInOSGi() throws Exception { + + tuscanyRuntime = TuscanyLoader.loadTuscanyIntoOSGi(osgiRuntime.getBundleContext()); + Assert.assertNotNull(tuscanyRuntime); + tuscanyRuntime.start(); + Class<?> clazz = tuscanyRuntime.loadClass("org.apache.tuscany.sca.osgi.runtime.OSGiRuntime"); + Assert.assertNotNull(clazz); + + } + + @Test + public void testOSGiTuscany_ImplementationJava() throws Exception { + testOSGiTuscanyUsingOSGiClient("SupplyChain.jar"); + } + + @Test + public void testOSGiTuscany_BindingWS() throws Exception { + testOSGiTuscanyUsingOSGiClient("SupplyChainWS.jar"); + } + + + private void testOSGiTuscanyUsingOSGiClient(String contributionJarName) throws Exception { + + tuscanyRuntime = TuscanyLoader.loadTuscanyIntoOSGi(osgiRuntime.getBundleContext()); + tuscanyRuntime.start(); + + String folderName = "../test-bundles/target/"; + String supplychainJarName = contributionJarName; + String supplychainClientJarName = "SupplyChainClient.jar"; + URL supplyChainURL = new File(folderName + supplychainJarName).toURI().toURL(); + URL supplyChainClientURL = new File(folderName + supplychainClientJarName).toURI().toURL(); + + Bundle supplyChainBundle = osgiRuntime.getBundleContext().installBundle(supplyChainURL.toString()); + supplyChainBundle.start(); + Bundle clientBundle = osgiRuntime.getBundleContext().installBundle(supplyChainClientURL.toString()); + clientBundle.start(); + + String clientClassName = "supplychain.client.SupplyChainClient"; + Class<?> clientClass = clientBundle.loadClass(clientClassName); + ServiceReference testServiceRef = clientBundle.getBundleContext().getServiceReference(clientClassName); + Object testService = clientBundle.getBundleContext().getService(testServiceRef); + + Method m = clientClass.getMethod("runTest", String.class); + m.invoke(testService, contributionJarName); + + System.out.println("OSGi Client test completed successfully."); + } + + + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySampleExtensionsTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySampleExtensionsTestCase.java new file mode 100644 index 0000000000..99748739f6 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySampleExtensionsTestCase.java @@ -0,0 +1,93 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples which use provide Tuscany extensions + */ +public class TuscanySampleExtensionsTestCase { + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + testHarness = null; + } + } + + + @Test + public void testBindingEchoExtension() throws Exception { + + testHarness.runTest("../../../samples/" + "binding-echo-extension"); + } + + @Test + public void testBindingEcho() throws Exception { + + testHarness.runTest("../../../samples/" + "binding-echo", "../../../samples/" + "binding-echo-extension"); + + } + + @Test + public void testDataBindingEcho() throws Exception { + + testHarness.runTest("../../../samples/" + "databinding-echo", "../../../samples/" + "binding-echo-extension"); + + } + + @Test + public void testImplementationCrudExtension() throws Exception { + + testHarness.runTest("../../../samples/" + "implementation-crud-extension"); + } + + @Test + public void testImplementationCrud() throws Exception { + + testHarness.runTest("../../../samples/" + "implementation-crud", "../../../samples/" + "implementation-crud-extension"); + + } + + @Test + public void testImplementationPojoExtension() throws Exception { + + testHarness.runTest("../../../samples/" + "implementation-pojo-extension"); + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java new file mode 100644 index 0000000000..6f459face6 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java @@ -0,0 +1,80 @@ +/* + * 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. + */ +package org.apache.tuscany.sca.test.osgi.tuscany; + + +import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/* + * Test Tuscany running in an OSGi container + * + * Run samples which use old domain code + */ +public class TuscanySamplesUsingOldDomainTestCase { + + + private static String[] SAMPLES = { + + "binding-notification-consumer", + "binding-notification-producer", + "calculator", + "implementation-composite", + "implementation-notification", + "loanapplication", + "quote-xquery", + "simple-bigbank", + "simple-callback", + "supplychain" + + }; + + + private OSGiTuscanyTestHarness testHarness; + + @Before + public void setUp() throws Exception { + + testHarness = new OSGiTuscanyTestHarness(); + testHarness.setUp(); + } + + + @After + public void tearDown() throws Exception { + + if (testHarness != null) { + testHarness.tearDown(); + testHarness = null; + } + } + + + @Test + public void runTestsUsingOldDomainCode() throws Exception { + + for (String testDir : SAMPLES) { + testHarness.runTest("../../../samples/" + testDir); + } + } + + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/META-INF/MANIFEST.MF b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..e1ea45120f --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: tuscany.sca.samples +Bundle-SymbolicName: org.apache.tuscany.sca.test.samples +Bundle-Version: 1.0.0 +Bundle-Localization: plugin +Import-Package: org.osgi.framework, + junit.framework, + org.junit, + org.apache.tuscany.sca.host.embedded, + org.osoa.sca, + org.osoa.sca.annotations, + org.apache.tuscany.sca.databinding.annotation, + org.apache.tuscany.sca.domain, + org.apache.tuscany.sca.node +DynamicImport-Package: * +Bundle-Activator: org.apache.tuscany.sca.test.osgi.harness.TestBundleActivator diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/felix/felix.config.properties b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/felix/felix.config.properties new file mode 100644 index 0000000000..51ce909cbd --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/felix/felix.config.properties @@ -0,0 +1,45 @@ +# +# 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. +# +# +# Framework config properties. +# +org.osgi.framework.system.packages=org.osgi.framework; version=1.3.0, \ + org.osgi.service.packageadmin; version=1.2.0, \ + org.osgi.service.startlevel; version=1.0.0, \ + org.osgi.service.url; version=1.0.0 \ + org.osgi.util.tracker; version=1.3.2 + + +felix.auto.start.1= \ + "file://${FELIX_DIR}/org.apache.felix.scr/1.0.0/org.apache.felix.scr-1.0.0.jar" + +# "file://${FELIX_DIR}/org.apache.felix.configadmin/1.0.0/org.apache.felix.configadmin-1.0.0.jar" +# "file://${FELIX_DIR}/org.apache.felix.shell/1.1.0-SNAPSHOT/org.apache.felix.shell-1.1.0-SNAPSHOT.jar" \ +# "file://${FELIX_DIR}/org.apache.felix.shell.tui/1.1.0-SNAPSHOT/org.apache.felix.shell.tui-1.1.0-SNAPSHOT.jar" \ +# "file://${FELIX_DIR}/org.apache.felix.bundlerepository/1.1.0-SNAPSHOT/org.apache.felix.bundlerepository-1.1.0-SNAPSHOT.jar" \ + + +felix.startlevel.framework=1 +felix.startlevel.bundle=1 + +# +# Bundle config properties. +# +org.osgi.service.http.port=8080 +obr.shell.telnet=on diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/pom.xml b/branches/sca-java-1.2/itest/osgi-tuscany/pom.xml new file mode 100644 index 0000000000..191e1b152e --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/pom.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany</artifactId> + <packaging>pom</packaging> + <name>Apache Tuscany OSGi-based Tuscany Runtime Integration Tests</name> + + <modules> + <module>sca-api</module> + <module>tuscany-spi</module> + <module>tuscany-runtime</module> + <module>tuscany-extensions</module> + <module>tuscany-3rdparty</module> + <module>test-bundles</module> + <module>osgi-tuscany-test</module> + </modules> + +</project> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/sca-api/pom.xml b/branches/sca-java-1.2/itest/osgi-tuscany/sca-api/pom.xml new file mode 100644 index 0000000000..c6b219265b --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/sca-api/pom.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany-sca-api</artifactId> + <name>Apache Tuscany OSGi - SCA API Bundle</name> + <packaging>bundle</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca-api</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>1.2.1</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-Version>1.2.0</Bundle-Version> + <Bundle-SymbolicName>org.apache.tuscany.sca.api</Bundle-SymbolicName> + <Bundle-Description>Apache Tuscany SCA API Bundle</Bundle-Description> + <Export-Package>org.osoa.sca*</Export-Package> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/build-bundles.xml b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/build-bundles.xml new file mode 100644 index 0000000000..b4251a2fd3 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/build-bundles.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project name="OSGiBundleCreator"> + + <target name="create-bundles"> + + <jar jarfile="${jar.dir}/${jar.file.name}" manifest="${files.dir}/${manifest.file.name}" > + <fileset dir="${files.dir}" includes="${files.list}"> + </fileset> + </jar> + </target> + + +</project> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/pom.xml b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/pom.xml new file mode 100644 index 0000000000..947bdc0b55 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/pom.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany-test-bundles</artifactId> + <name>Apache Tuscany OSGi-Based Tuscany Runtime Test Bundles</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca-api</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-embedded</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.main</artifactId> + <version>1.1.0-SNAPSHOT</version> + </dependency> + + + </dependencies> + + <build> + <finalName>itest-osgi-tuscany-test-bundles</finalName> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.1</version> + + <dependencies> + <dependency> + <groupId>ant</groupId> + <artifactId>ant-trax</artifactId> + <version>1.6.5</version> + </dependency> + </dependencies> + + <executions> + <execution> + <id>create-bundles</id> + <phase>generate-test-sources</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <tasks> + <ant antfile="./build-bundles.xml" target="create-bundles"> + <property name="jar.dir" value="target" /> + <property name="files.dir" value="target/classes" /> + <property name="jar.file.name" value="SupplyChain.jar" /> + <property name="manifest.file.name" value="META-INF/SupplyChain.mf" /> + <property name="files.list" + value="supplychain/customer/* \ + supplychain/retailer/* \ + supplychain/warehouse/* \ + supplychain/shipper/* \ + supplychain/supplychain.composite \ + META-INF/sca-contribution.xml" /> + + </ant> + <ant antfile="./build-bundles.xml" target="create-bundles"> + <property name="jar.dir" value="target" /> + <property name="files.dir" value="target/classes" /> + <property name="jar.file.name" value="SupplyChainClient.jar" /> + <property name="manifest.file.name" value="META-INF/SupplyChainClient.mf" /> + <property name="files.list" + value="supplychain/client/*" /> + </ant> + <ant antfile="./build-bundles.xml" target="create-bundles"> + <property name="jar.dir" value="target" /> + <property name="files.dir" value="target/classes" /> + <property name="jar.file.name" value="SupplyChainWS.jar" /> + <property name="manifest.file.name" value="META-INF/SupplyChain.mf" /> + <property name="files.list" + value="supplychain/customer/* \ + supplychain/retailer/* \ + supplychain/warehouse/* \ + supplychain/shipper/* \ + supplychain/ws/supplychain.composite \ + supplychain/ws/Customer.wsdl \ + META-INF/sca-contribution.xml" /> + + </ant> + + </tasks> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/client/SupplyChainClient.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/client/SupplyChainClient.java new file mode 100644 index 0000000000..006cccda58 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/client/SupplyChainClient.java @@ -0,0 +1,115 @@ +/* + * 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. + */ +package supplychain.client; + + +import java.io.File; +import java.net.URL; +import java.util.Hashtable; + + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.contribution.service.ContributionService; +import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + + + +import supplychain.customer.Customer; + +/** + * SupplyChain test client + */ +public class SupplyChainClient implements BundleActivator { + + private EmbeddedSCADomain scaDomain; + private Customer customer; + + + + public void start(BundleContext context) throws Exception { + + context.registerService(SupplyChainClient.class.getName(), this, new Hashtable()); + + } + + public void stop(BundleContext context) throws Exception { + + } + + protected void setUp(String contributionJarName) throws Exception { + + scaDomain = new EmbeddedSCADomain(EmbeddedSCADomain.class.getClassLoader(), "http://localhost"); + scaDomain.start(); + ContributionService contributionService = scaDomain.getContributionService(); + String folderName = "../test-bundles/target/"; + String supplychainJarName = contributionJarName; + URL supplyChainURL = new File(folderName + supplychainJarName).toURI().toURL(); + + Contribution contribution = contributionService.contribute("SupplyChain", supplyChainURL, false); + for (Composite deployable : contribution.getDeployables() ) { + scaDomain.getDomainComposite().getIncludes().add(deployable); + scaDomain.buildComposite(deployable); + } + + for (Composite deployable : contribution.getDeployables() ) { + scaDomain.getCompositeActivator().activate(deployable); + scaDomain.getCompositeActivator().start(deployable); + } + customer = scaDomain.getService(Customer.class, "CustomerComponent"); + } + + protected void tearDown() throws Exception { + if (scaDomain != null) { + scaDomain.close(); + scaDomain = null; + } + } + + + public void runTest(String contributionJarName) throws Exception { + + try { + setUp(contributionJarName); + customer.purchaseGoods(); + int retries = 10; + int outstandingCount = 1; + while (retries-- > 0) { + + outstandingCount = customer.outstandingOrderCount(); + if (outstandingCount == 0) + break; + else + Thread.sleep(100); + } + if (outstandingCount != 0) + throw new RuntimeException("Orders not processed on time"); + + } finally { + + tearDown(); + } + + + } + + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/customer/Customer.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/customer/Customer.java new file mode 100644 index 0000000000..35190c7ca4 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/customer/Customer.java @@ -0,0 +1,37 @@ +/* + * 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. + */ +package supplychain.customer; + +import org.osoa.sca.annotations.OneWay; +import org.osoa.sca.annotations.Remotable; + +/** + * This is the business interface of the Customer service component. + */ +@Remotable +public interface Customer { + + public void purchaseGoods(); + + @OneWay + public void notifyShipment(String order); + + public int outstandingOrderCount(); + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/customer/JavaCustomerComponentImpl.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/customer/JavaCustomerComponentImpl.java new file mode 100644 index 0000000000..d6f164c5aa --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/customer/JavaCustomerComponentImpl.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package supplychain.customer; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import supplychain.retailer.Retailer; + +/** + * This class implements the Customer service component (POJO implementation). + */ +@Service(Customer.class) +@Scope("COMPOSITE") +public class JavaCustomerComponentImpl implements Customer { + + private static int outstandingOrderCount; + + private Retailer retailer; + + public JavaCustomerComponentImpl() { + } + + @Reference + public void setRetailer(Retailer retailer) { + this.retailer = retailer; + } + + public void purchaseGoods() { + outstandingOrderCount++; + retailer.submitOrder("Order"); + } + + public void notifyShipment(String order) { + outstandingOrderCount--; + System.out.print("Work thread " + Thread.currentThread() + " - "); + System.out.println(order); + } + + public int outstandingOrderCount() { + return outstandingOrderCount; + } + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/retailer/JavaRetailerComponentImpl.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/retailer/JavaRetailerComponentImpl.java new file mode 100644 index 0000000000..d7b52ee07b --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/retailer/JavaRetailerComponentImpl.java @@ -0,0 +1,59 @@ +/* + * 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. + */ +package supplychain.retailer; + + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import supplychain.warehouse.Warehouse; + +/** + * This class implements the Retailer service component (POJO implementation). + */ +@Service(Retailer.class) +@Scope("STATELESS") +public class JavaRetailerComponentImpl implements Retailer { + + private Warehouse warehouse; + + public JavaRetailerComponentImpl() { + } + + @Reference + public void setWarehouse(Warehouse warehouse) { + this.warehouse = warehouse; + } + + + public Warehouse getWarehouse() { + return warehouse; + } + + public void submitOrder(String order) { + + warehouse.fulfillOrder(order + ", submitted"); + + } + + + + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/retailer/Retailer.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/retailer/Retailer.java new file mode 100644 index 0000000000..1e87d59af1 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/retailer/Retailer.java @@ -0,0 +1,28 @@ +/* + * 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. + */ +package supplychain.retailer; + +/** + * This is the business interface of the Retailer service component. + */ +public interface Retailer { + + public void submitOrder(String order); + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/shipper/JavaShipperComponentImpl.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/shipper/JavaShipperComponentImpl.java new file mode 100644 index 0000000000..28de2cf1c2 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/shipper/JavaShipperComponentImpl.java @@ -0,0 +1,50 @@ +/* + * 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. + */ +package supplychain.shipper; + + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import supplychain.customer.Customer; + +/** + * This class implements the Shipper service component (POJO implementation). + */ +@Service(Shipper.class) +@Scope("COMPOSITE") +public class JavaShipperComponentImpl implements Shipper { + + private Customer customer; + + public JavaShipperComponentImpl() { + } + + @Reference + public void setCustomer(Customer customer) { + this.customer = customer; + } + + public void processShipment(String order) { + customer.notifyShipment(order + ", shipped"); + } + + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/shipper/Shipper.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/shipper/Shipper.java new file mode 100644 index 0000000000..2514928c10 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/shipper/Shipper.java @@ -0,0 +1,28 @@ +/* + * 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. + */ +package supplychain.shipper; + +/** + * This is the business interface of the Shipper service component. + */ +public interface Shipper { + + public void processShipment(String order); + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/warehouse/JavaWarehouseComponentImpl.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/warehouse/JavaWarehouseComponentImpl.java new file mode 100644 index 0000000000..37de2d70c0 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/warehouse/JavaWarehouseComponentImpl.java @@ -0,0 +1,49 @@ +/* + * 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. + */ +package supplychain.warehouse; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import supplychain.shipper.Shipper; + +/** + * This class implements the Warehouse service component (POJO implementation). + */ +@Service(Warehouse.class) +@Scope("STATELESS") +public class JavaWarehouseComponentImpl implements Warehouse { + + private Shipper shipper; + + public JavaWarehouseComponentImpl() { + } + + @Reference + public void setShipper(Shipper shipper) { + this.shipper = shipper; + } + + public void fulfillOrder(String order) { + shipper.processShipment(order + ", fulfilled"); + } + + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/warehouse/Warehouse.java b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/warehouse/Warehouse.java new file mode 100644 index 0000000000..6f1f6b8730 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/java/supplychain/warehouse/Warehouse.java @@ -0,0 +1,28 @@ +/* + * 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. + */ +package supplychain.warehouse; + +/** + * This is the business interface of the Warehouse service component. + */ +public interface Warehouse { + + public void fulfillOrder(String order); + +} diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/SupplyChain.mf b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/SupplyChain.mf new file mode 100644 index 0000000000..be36629b3c --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/SupplyChain.mf @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: SupplyChain +Bundle-SymbolicName: supplychain.SupplyChain +Bundle-Version: 1.0.0 +Bundle-Localization: plugin +Import-Package: org.osgi.framework, + org.osoa.sca, + org.osoa.sca.annotations +Export-Package: supplychain.customer, supplychain + diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/SupplyChainClient.mf b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/SupplyChainClient.mf new file mode 100644 index 0000000000..d4055a8fc3 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/SupplyChainClient.mf @@ -0,0 +1,20 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: SupplyChainClient +Bundle-SymbolicName: supplychain.SupplyChainClient +Bundle-Version: 1.0.0 +Bundle-Localization: plugin +Import-Package: org.osgi.framework, + supplychain.customer, supplychain, + org.apache.tuscany.sca.host.embedded, + org.apache.tuscany.sca.host.embedded.impl, + org.apache.tuscany.sca.assembly, + org.apache.tuscany.sca.contribution, + org.apache.tuscany.sca.contribution.service, + org.apache.tuscany.sca.core.assembly, + org.apache.tuscany.sca.assembly.builder, + org.osoa.sca, + org.osoa.sca.annotations +Export-Package: supplychain.client +Bundle-Activator: supplychain.client.SupplyChainClient + diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/sca-contribution.xml b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..714d1826e1 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0" + targetNamespace="http://supplychain" + xmlns:supplychain="http://supplychain"> + + <deployable composite="supplychain:supplychain"/> + +</contribution> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/supplychain.composite b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/supplychain.composite new file mode 100644 index 0000000000..5be79b741a --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/supplychain.composite @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
+ targetNamespace="http://supplychain"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:sp="http://supplychain"
+ name="supplychain">
+
+ <component name="CustomerComponent">
+ <implementation.java class="supplychain.customer.JavaCustomerComponentImpl" />
+ <reference name="retailer" target="RetailerComponent" />
+ </component>
+
+ <component name="RetailerComponent">
+ <implementation.java class="supplychain.retailer.JavaRetailerComponentImpl" />
+ <reference name="warehouse" target="WarehouseComponent"/>
+ </component>
+
+ <component name="WarehouseComponent">
+ <implementation.java class="supplychain.warehouse.JavaWarehouseComponentImpl" />
+ <reference name="shipper" target="ShipperComponent" />
+ </component>
+
+ <component name="ShipperComponent">
+ <implementation.java class="supplychain.shipper.JavaShipperComponentImpl" />
+ <reference name="customer" target="CustomerComponent" />
+ </component>
+
+
+</composite>
diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/ws/Customer.wsdl b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/ws/Customer.wsdl new file mode 100644 index 0000000000..466bc38fc2 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/ws/Customer.wsdl @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. + --> +<wsdl:definitions targetNamespace="http://supplychain" + xmlns:axis2ns1="http://supplychain" + xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" + xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" + xmlns:ns1="http://supplychain" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <xs:schema attributeFormDefault="unqualified" + elementFormDefault="qualified" + targetNamespace="http://supplychain" + xmlns:ns="http://supplychain" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="outstandingOrderCount"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="outstandingOrderCountResponse"> + <xs:complexType> + <xs:sequence> + <xs:element name="return" type="xs:int"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="notifyShipment"> + <xs:complexType> + <xs:sequence> + <xs:element name="param0" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="notifyShipmentResponse"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="purchaseGoods"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="purchaseGoodsResponse"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + </xs:schema> + </wsdl:types> + <wsdl:message name="outstandingOrderCountRequest" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:part element="ns1:outstandingOrderCount" name="part1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:message> + <wsdl:message name="outstandingOrderCountResponseMessage" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:part element="ns1:outstandingOrderCountResponse" name="part1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:message> + <wsdl:message name="notifyShipmentRequest" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:part element="ns1:notifyShipment" name="part1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:message> + <wsdl:message name="notifyShipmentResponseMessage" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:part element="ns1:notifyShipmentResponse" name="part1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:message> + <wsdl:message name="purchaseGoodsRequest" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:part element="ns1:purchaseGoods" name="part1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:message> + <wsdl:message name="purchaseGoodsResponseMessage" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:part element="ns1:purchaseGoodsResponse" name="part1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:message> + <wsdl:portType name="Customer" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:operation name="outstandingOrderCount" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:input message="axis2ns1:outstandingOrderCountRequest" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + <wsdl:output + message="axis2ns1:outstandingOrderCountResponseMessage" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:operation> + <wsdl:operation name="notifyShipment" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:input message="axis2ns1:notifyShipmentRequest" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:operation> + <wsdl:operation name="purchaseGoods" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:input message="axis2ns1:purchaseGoodsRequest" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + <wsdl:output message="axis2ns1:purchaseGoodsResponseMessage" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="CustomerBinding" type="axis2ns1:Customer" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:binding style="document" + transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + <wsdl:operation name="outstandingOrderCount" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:operation soapAction="urn:outstandingOrderCount" + style="document" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + <wsdl:input xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:body namespace="http://supplychain" use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + </wsdl:input> + <wsdl:output xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:body namespace="http://supplychain" use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="notifyShipment" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:operation soapAction="urn:notifyShipment" style="document" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + <wsdl:input xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:body namespace="http://supplychain" use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + </wsdl:input> + </wsdl:operation> + <wsdl:operation name="purchaseGoods" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:operation soapAction="urn:purchaseGoods" style="document" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + <wsdl:input xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:body namespace="http://supplychain" use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + </wsdl:input> + </wsdl:operation> + </wsdl:binding> + + <wsdl:service name="CustomerWebService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:port binding="axis2ns1:CustomerBinding" + name="CustomerPort" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <soap:address + location="http://localhost:8085/services/Customer" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/> + </wsdl:port> + </wsdl:service>
+ +</wsdl:definitions> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/ws/supplychain.composite b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/ws/supplychain.composite new file mode 100644 index 0000000000..88d1e72efc --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/test-bundles/src/main/resources/supplychain/ws/supplychain.composite @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
+ targetNamespace="http://supplychain"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:sp="http://supplychain"
+ name="supplychain">
+
+ <component name="CustomerComponent">
+ <implementation.java class="supplychain.customer.JavaCustomerComponentImpl" />
+ <reference name="retailer" target="RetailerComponent" />
+ <service name="Customer">
+ <interface.wsdl interface="http://supplychain#wsdl.interface(Customer)" />
+ <binding.ws wsdlElement="http://supplychain#wsdl.port(CustomerWebService/CustomerPort)"/>
+ </service>
+ </component>
+
+ <component name="RetailerComponent">
+ <implementation.java class="supplychain.retailer.JavaRetailerComponentImpl" />
+ <reference name="warehouse" target="WarehouseComponent"/>
+ </component>
+
+ <component name="WarehouseComponent">
+ <implementation.java class="supplychain.warehouse.JavaWarehouseComponentImpl" />
+ <reference name="shipper" target="ShipperComponent" />
+ </component>
+
+ <component name="ShipperComponent">
+ <implementation.java class="supplychain.shipper.JavaShipperComponentImpl" />
+ <reference name="customer">
+ <interface.wsdl interface="http://supplychain#wsdl.interface(Customer)" />
+ <binding.ws wsdlElement="http://supplychain#wsdl.port(CustomerWebService/CustomerPort)"/>
+ </reference>
+ </component>
+
+
+</composite>
diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-3rdparty/pom.xml b/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-3rdparty/pom.xml new file mode 100644 index 0000000000..a649c76ae7 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-3rdparty/pom.xml @@ -0,0 +1,332 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany-3rdparty</artifactId> + <name>Apache Tuscany OSGi - Tuscany 3rdParty Bundle</name> + <packaging>bundle</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-core</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-java</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-namespace</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-osgi</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-domain-impl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-impl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-assembly-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-osgi-runtime</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> +<!-- + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-atom</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-atom-abdera</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-feed-atom</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> +--> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-sca</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-sca-axis2</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-axis2</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-rmi</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-notification</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-http</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-jsonrpc</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-jms</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-dwr</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-groovy</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-axiom</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-fastinfoset</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-jaxb</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-json</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-sdo</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-sdo-axiom</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-xmlbeans</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-embedded</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-http</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-jetty</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-webapp</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-tomcat</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-das</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-node-runtime</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-notification</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-osgi</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-script</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-widget</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-xquery</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-resource</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-spring</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-ejb</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-extension-helper</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-core-spring</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy-logging</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy-transaction</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy-security</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.activemq</groupId> + <artifactId>apache-activemq</artifactId> + <version>4.1.1</version> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-util</artifactId> + <version>6.1.7</version> + </dependency> + + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>1.2.1</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-Version>1.2.0</Bundle-Version> + <Bundle-SymbolicName>org.apache.tuscany.sca.3rdparty</Bundle-SymbolicName> + <Bundle-Description>Apache Tuscany SCA 3rd party Bundle</Bundle-Description> + <Embed-StripVersion>true</Embed-StripVersion> + <Embed-StripGroup>true</Embed-StripGroup> + <Embed-Transitive>true</Embed-Transitive> + <Embed-Dependency> + tuscany-sdo*, + tuscany-das*, + !tuscany* + </Embed-Dependency> + <_exportcontents> + !org.apache.tuscany.sca*, + !org.osoa.sca*, + * + </_exportcontents> + <Import-Package>*;resolution:=optional</Import-Package> + <DynamicImport-Package>*</DynamicImport-Package> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-extensions/pom.xml b/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-extensions/pom.xml new file mode 100644 index 0000000000..0993ce3975 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-extensions/pom.xml @@ -0,0 +1,336 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany-tuscany-extensions</artifactId> + <name>Apache Tuscany OSGi - Tuscany Extensions Bundle</name> + <packaging>bundle</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-assembly-xsd</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-atom</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-atom-abdera</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-sca</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-sca-axis2</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-sca-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-axis2</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-rmi</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-notification</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-http</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-jsonrpc</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-jms</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-dwr</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-groovy</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-axiom</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-fastinfoset</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-jaxb</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-json</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-saxon</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-sdo</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-sdo-axiom</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-xmlbeans</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-embedded</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-http</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-jetty</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-rmi</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> +<!-- + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-webapp</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-tomcat</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> +--> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-das</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-data-api</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-data-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-node</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-node-runtime</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-node-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-notification</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-osgi</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-script</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-widget</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-xquery</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-resource</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-spring</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-ejb</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-ejb-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-data-engine-helper</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-extension-helper</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-core-spring</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy-logging</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> +<!-- + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy-transaction</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> +--> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy-security</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>1.2.1</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-Version>1.2.0</Bundle-Version> + <Bundle-SymbolicName>org.apache.tuscany.sca.extensions</Bundle-SymbolicName> + <Bundle-Description>Apache Tuscany SCA Extensions Bundle</Bundle-Description> + <Embed-StripVersion>true</Embed-StripVersion> + <Embed-StripGroup>true</Embed-StripGroup> + <Embed-Dependency>tuscany*</Embed-Dependency> + <_exportcontents> + org.apache.tuscany.sca.*, + </_exportcontents> + <Import-Package>*;version="0"</Import-Package> + <DynamicImport-Package>*</DynamicImport-Package> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-runtime/pom.xml b/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-runtime/pom.xml new file mode 100644 index 0000000000..2404769b00 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-runtime/pom.xml @@ -0,0 +1,197 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany-runtime</artifactId> + <name>Apache Tuscany OSGi - Tuscany Runtime Bundle</name> + <packaging>bundle</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-assembly-xsd</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-core</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-core-databinding</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-impl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-java</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-namespace</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-osgi</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution-resource</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-domain-api</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-domain</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-domain-impl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-api</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-impl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-assembly-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-definitions</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-definitions-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-osgi-runtime</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node2-api</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node2-impl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node2-launcher</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-workspace</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-workspace-admin</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-workspace-impl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-workspace-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>1.2.1</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-Version>1.2.0</Bundle-Version> + <Bundle-SymbolicName>org.apache.tuscany.sca.runtime</Bundle-SymbolicName> + <Bundle-Description>Apache Tuscany SCA Runtime Bundle</Bundle-Description> + <Bundle-Activator>org.apache.tuscany.sca.osgi.runtime.OSGiBundleActivator</Bundle-Activator> + <DynamicImport-Package>org.apache.felix.main</DynamicImport-Package> + <Embed-StripVersion>true</Embed-StripVersion> + <Embed-StripGroup>true</Embed-StripGroup> + <Embed-Dependency>tuscany*</Embed-Dependency> + <_exportcontents> + org.apache.tuscany.sca.*, + </_exportcontents> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-spi/pom.xml b/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-spi/pom.xml new file mode 100644 index 0000000000..56eacaed40 --- /dev/null +++ b/branches/sca-java-1.2/itest/osgi-tuscany/tuscany-spi/pom.xml @@ -0,0 +1,125 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany-tuscany-spi</artifactId> + <name>Apache Tuscany OSGi - Tuscany SPI Bundle</name> + <packaging>bundle</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-core-spi</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-contribution</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-policy</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-assembly</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-interface</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-interface-java</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-interface-java-jaxws</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-interface-java-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-interface-wsdl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-interface-wsdl-xml</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-interface-wsdl-java2wsdl</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-extensibility</artifactId> + <version>1.2-incubating-SNAPSHOT</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>1.2.1</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-Version>1.2.0</Bundle-Version> + <Bundle-SymbolicName>org.apache.tuscany.sca.spi</Bundle-SymbolicName> + <Bundle-Description>Apache Tuscany SCA SPI Bundle</Bundle-Description> + <Embed-StripVersion>true</Embed-StripVersion> + <Embed-StripGroup>true</Embed-StripGroup> + <Embed-Dependency>tuscany*</Embed-Dependency> + <_exportcontents> + org.apache.tuscany.sca.*, + </_exportcontents> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + +</project> |