From 010614153f2b109a9a65abf2b9151b7cd9d82627 Mon Sep 17 00:00:00 2001 From: slaws Date: Tue, 15 Mar 2011 13:16:11 +0000 Subject: Take a copy from 2.x trunk as I'm going to remove it from there shortly. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1081768 13f79535-47bb-0310-9956-ffa450edef68 --- sandbox/slaws/bundle/commands.txt | 227 ++++++++++++++++++ sandbox/slaws/bundle/obr/repository.xml | 52 ++++ sandbox/slaws/bundle/pom.xml | 265 +++++++++++++++++++++ .../bundle/src/main/java/sample/Helloworld.java | 28 +++ .../src/main/java/sample/impl/HelloworldImpl.java | 43 ++++ .../src/main/java/sample/impl/SampleActivator.java | 45 ++++ .../main/resources/META-INF/sca-contribution.xml | 25 ++ ...ca.contribution.processor.StAXArtifactProcessor | 20 ++ ....apache.tuscany.sca.definitions.xml.Definitions | 17 ++ ...ache.tuscany.sca.provider.PolicyProviderFactory | 18 ++ .../bundle/src/main/resources/definitions.xml | 60 +++++ .../bundle/src/main/resources/helloworld.composite | 50 ++++ .../src/test/java/sample/HelloworldTestCase.java | 216 +++++++++++++++++ 13 files changed, 1066 insertions(+) create mode 100644 sandbox/slaws/bundle/commands.txt create mode 100644 sandbox/slaws/bundle/obr/repository.xml create mode 100644 sandbox/slaws/bundle/pom.xml create mode 100644 sandbox/slaws/bundle/src/main/java/sample/Helloworld.java create mode 100644 sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java create mode 100644 sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java create mode 100644 sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor create mode 100644 sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory create mode 100644 sandbox/slaws/bundle/src/main/resources/definitions.xml create mode 100644 sandbox/slaws/bundle/src/main/resources/helloworld.composite create mode 100644 sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java (limited to 'sandbox') diff --git a/sandbox/slaws/bundle/commands.txt b/sandbox/slaws/bundle/commands.txt new file mode 100644 index 0000000000..b784087833 --- /dev/null +++ b/sandbox/slaws/bundle/commands.txt @@ -0,0 +1,227 @@ +// Show the test bundle resolving against the Tuscany base repo + +java -jar bin/felix.jar + +obr:repos add file:///D:/sca-java-2.x/unreleased/testing/itest/bundle/target/repository.xml + +obr:list + +Apache Felix Bundle Repository (1.4.3, ...) +Apache Felix Configuration Admin Service (1.2.4, ...) +Apache Felix Declarative Services (1.6.0, ...) +Apache Felix EventAdmin (1.0.0) +Apache Felix File Install (3.0.2, ...) +Apache Felix Gogo Command (0.8.0, ...) +Apache Felix Gogo Runtime (0.8.0, ...) +Apache Felix Gogo Shell (0.8.0, ...) +Apache Felix Gogo Shell Commands (0.2.0) +Apache Felix Gogo Shell Console (0.2.0) +Apache Felix Gogo Shell Launcher (0.2.0) +Apache Felix Gogo Shell Runtime (0.2.0) +Apache Felix Http Api (2.0.4) +Apache Felix Http Base (2.0.4) +Apache Felix Http Bridge (2.0.4) +Apache Felix Http Bundle (2.0.4) +Apache Felix Http Jetty (2.0.4) +Apache Felix Http Proxy (2.0.4) +Apache Felix Http Samples - Filter (2.0.4) +Apache Felix Http Samples - Whiteboard (2.0.4) +Apache Felix HTTP Service Jetty (1.0.1, ...) +Apache Felix Http Whiteboard (2.0.4) +Apache Felix iPOJO (1.8.0, ...) +Apache Felix iPOJO (0.8.0) +Apache Felix iPOJO API (1.6.0, ...) +Apache Felix iPOJO Arch Command (1.6.0, ...) +Apache Felix iPOJO Composite (1.8.0, ...) +Apache Felix iPOJO Composite (1.0.0, ...) +Apache Felix iPOJO Event Admin Handler (1.6.0, ...) +Apache Felix iPOJO Extender Pattern Handler (1.4.0, ...) +Apache Felix iPOJO Extender Pattern Handler (1.0.0, ...) +Apache Felix iPOJO Gogo Command (1.0.1, ...) +Apache Felix iPOJO JMX Handler (1.4.0, ...) +Apache Felix iPOJO Temporal Service Dependency Handler (1.6.0, +Apache Felix iPOJO URL Handler (1.6.0, ...) +Apache Felix iPOJO WebConsole Plugins (1.6.0, ...) +Apache Felix iPOJO White Board Pattern Handler (1.2.0, ...) +Apache Felix iPOJO White Board Pattern Handler (1.4.0) +Apache Felix Log Service (1.0.0) +Apache Felix Metatype Service (1.0.2, ...) +Apache Felix Prefrences Service (1.0.2) +Apache Felix Remote Shell (1.0.4, ...) +Apache Felix Remote Shell (1.1.2, ...) +Apache Felix Shell Service (1.4.2, ...) +Apache Felix Shell TUI (1.4.1, ...) +Apache Felix UPnP Base Driver (0.8.0) +Apache Felix UPnP Extra (0.4.0) +Apache Felix UPnP Tester (0.4.0) +Apache Felix Web Console Event Plugin (1.0.2) +Apache Felix Web Console Memory Usage Plugin (1.0.0) +Apache Felix Web Console Memory Usage Plugin (1.0.2) +Apache Felix Web Console UPnP Plugin (1.0.0) +Apache Felix Web Management Console (3.1.2, ...) +Apache Felix Web Management Console (3.1.2, ...) +Apache Tuscany Java Interface for JAXWS (2.0.0) +Apache Tuscany Launcher (2.0.0) +Apache Tuscany Python Implementation Model (2.0.0) +Apache Tuscany SCA API (2.0.0) +Apache Tuscany SCA Assembly Model (2.0.0) +Apache Tuscany SCA Assembly Model XML Schemas (2.0.0) +Apache Tuscany SCA Atom Feed Binding Extension (2.0.0) +Apache Tuscany SCA BPEL Implementation Model (2.0.0) +Apache Tuscany SCA Client Impl (2.0.0) +Apache Tuscany SCA Comet Binding Model (2.0.0) +Apache Tuscany SCA Common HTTP (2.0.0) +Apache Tuscany SCA Common Java (2.0.0) +Apache Tuscany SCA Common XML (2.0.0) +Apache Tuscany SCA Contribution Model (2.0.0) +Apache Tuscany SCA CORBA Binding Extension (2.0.0) +Apache Tuscany SCA CORBA Host Extension Point (2.0.0) +Apache Tuscany SCA Core Runtime (2.0.0) +Apache Tuscany SCA Core SPI (2.0.0) +Apache Tuscany SCA Core/DataBinding Integration (2.0.0) +Apache Tuscany SCA Data API (2.0.0) +Apache Tuscany SCA Data Binding for JAXB (2.0.0) +Apache Tuscany SCA DataBinding Framework (2.0.0) +Apache Tuscany SCA Default Binding Model (2.0.0) +Apache Tuscany SCA Deployment (2.0.0) +Apache Tuscany SCA EJB Binding Model (2.0.0) +Apache Tuscany SCA Extensibility (2.0.0) +Apache Tuscany SCA HTTP Binding Model (2.0.0) +Apache Tuscany SCA HTTP Servlet Host Extension Point (2.0.0) +Apache Tuscany SCA Java Implementation Model (2.0.0) +Apache Tuscany SCA Java Implementation Model (2.0.0) +Apache Tuscany SCA Java Interface Model (2.0.0) +Apache Tuscany SCA JAX-RS Implementation Model (2.0.0) +Apache Tuscany SCA JAXWS RI based WS Binding Extension (2.0.0) +Apache Tuscany SCA JAXWS-based WS Binding Extension (2.0.0) +Apache Tuscany SCA Jetty Servlet Host Extension (2.0.0) +Apache Tuscany SCA JMS Binding Model (2.0.0) +Apache Tuscany SCA JSON-RPC Binding Model (2.0.0) +Apache Tuscany SCA JSONP Binding Model (2.0.0) +Apache Tuscany SCA Model Builders (2.0.0) +Apache Tuscany SCA Monitor (2.0.0) +Apache Tuscany SCA Node API (2.0.0) +Apache Tuscany SCA Node Implementation (2.0.0) +Apache Tuscany SCA REST Binding Model (2.0.0) +Apache Tuscany SCA RMI Binding Model (2.0.0) +Apache Tuscany SCA Script Implementation Model (2.0.0) +Apache Tuscany SCA Shell (2.0.0) +Apache Tuscany SCA Spring Implementation Model (2.0.0) +Apache Tuscany SCA Web Implementation Web Model (2.0.0) +Apache Tuscany SCA Web Implementation Web Runtime (2.0.0) +Apache Tuscany SCA Web Service binding WSDL Generator (2.0.0) +Apache Tuscany SCA Webapp Host (2.0.0) +Apache Tuscany SCA Widget Implementation Model (2.0.0) +Apache Tuscany SCA Wink (2.0.0) +Apache Tuscany SCA WS Binding Model (2.0.0) +Apache Tuscany SCA WSDL Interface Model (2.0.0) +Apache Tuscany SCA XML Assembly Model (2.0.0) +Apache Tuscany SCA XSD Model (2.0.0) +Apache Tuscany Security Policy Model (2.0.0) +asm.asm (3.1.0) +cglib.cglib (2.2.0) +jsr311-api (1.1.1) +OSGi OBR Service API (1.0.0) +OSGi R4 Compendium Bundle (4.0.0) +Servlet 2.1 API (1.0.0) +wsdl4j.wsdl4j (1.6.2) +XmlSchema (1.4.3) + +obr:repos list + +file:/D:/sca-java-2.x/unreleased/testing/itest/bundle/target/repository.xml +http://felix.apache.org/obr/releases.xml + + +//install file:///D:/sca-java-2.x/modules/sca-api/target/tuscany-sca-api-2.0-SNAPSHOT.jar +//start # + +install file:///D:/sca-java-2.x/unreleased/testing/itest/bundle/target/bundle-2.0-SNAPSHOT.jar +start # + + +// Create repository.xml for a maven resource or repository + +mvn org.apache.felix:maven-bundle-plugin:2.1.0:install-file -DpomFile=pom.xml -Dfile=target\bundle-2.0-SNAPSHOT.jar +mvn org.apache.felix:maven-bundle-plugin:2.1.0:install-file -DpomFile=pom.xml -Dfile=target\tuscany-sca-api-2.0-SNAPSHOT.jar + +mvn org.apache.felix:maven-bundle-plugin:2.1.0:index -DurlTemplate=maven +~/.m2/repository/repository.xml + + +// problems getting OBR to work + +g! obr:info "Apache Tuscany SCA API" +---------------------- +Apache Tuscany SCA API +---------------------- +id: org.apache.tuscany.sca.api/2.0.0 +symbolicname: org.apache.tuscany.sca.api +presentationname: Apache Tuscany SCA API +uri: file:/D:/sca-java-2.x/unreleased/testing/itest/bundle/target/../../../../.. +/distribution/all/target/modules/tuscany-sca-api-2.0-SNAPSHOT.jar +version: 2.0.0 +Requires: + (&(package=org.oasisopen.sca.annotation)(version>=2.0.0)) + (&(package=org.oasisopen.sca)(version>=2.0.0)) + (&(package=org.oasisopen.sca.client)(version>=2.0.0)) + (&(package=javax.security.auth)) +Capabilities: + {symbolicname=org.apache.tuscany.sca.api, presentationname=Apache Tuscany SCA + API, bundle-manifestversion=2, version=2.0.0} + {bundle-version=2.0.0, package=org.oasisopen.sca, bundle-symbolic-name=org.ap +ache.tuscany.sca.api, uses:=javax.security.auth, version=2.0.0} + {bundle-version=2.0.0, package=org.oasisopen.sca.annotation, bundle-symbolic- +name=org.apache.tuscany.sca.api, version=2.0.0} + {bundle-version=2.0.0, package=org.oasisopen.sca.client, bundle-symbolic-name +=org.apache.tuscany.sca.api, version=2.0.0} +g! lb +START LEVEL 1 + ID|State |Level|Name + 0|Active | 0|System Bundle (3.0.8) + 1|Active | 1|Apache Felix Bundle Repository (1.6.2) + 2|Active | 1|Apache Felix Gogo Command (0.8.0) + 3|Active | 1|Apache Felix Gogo Runtime (0.8.0) + 4|Active | 1|Apache Felix Gogo Shell (0.8.0) + 20|Installed | 1|Apache Tuscany SCA iTest Bundle (2.0.0.SNAPSHOT) +g! start 20 +org.osgi.framework.BundleException: Unresolved constraint in bundle org.apache.t +uscany.sca.bundle [20]: Unable to resolve 20.0: missing requirement [20.0] packa +ge; (&(package=org.oasisopen.sca.annotation)(version>=2.0.0)) +g! + + +g! obr:deploy "Apache Tuscany SCA API" +Target resource(s): +------------------- + Apache Tuscany SCA API (2.0.0) + +Deploying...done. +g! lb +START LEVEL 1 + ID|State |Level|Name + 0|Active | 0|System Bundle (3.0.8) + 1|Active | 1|Apache Felix Bundle Repository (1.6.2) + 2|Active | 1|Apache Felix Gogo Command (0.8.0) + 3|Active | 1|Apache Felix Gogo Runtime (0.8.0) + 4|Active | 1|Apache Felix Gogo Shell (0.8.0) + 20|Installed | 1|Apache Tuscany SCA iTest Bundle (2.0.0.SNAPSHOT) + 21|Installed | 1|Apache Tuscany SCA API (2.0.0) +g! start 21 +g! lb +START LEVEL 1 + ID|State |Level|Name + 0|Active | 0|System Bundle (3.0.8) + 1|Active | 1|Apache Felix Bundle Repository (1.6.2) + 2|Active | 1|Apache Felix Gogo Command (0.8.0) + 3|Active | 1|Apache Felix Gogo Runtime (0.8.0) + 4|Active | 1|Apache Felix Gogo Shell (0.8.0) + 20|Installed | 1|Apache Tuscany SCA iTest Bundle (2.0.0.SNAPSHOT) + 21|Active | 1|Apache Tuscany SCA API (2.0.0) +g! start 20 +14-Mar-2011 14:31:45 sample.impl.SampleActivator start +INFO: Starting org.apache.tuscany.sca.bundle [20] +14-Mar-2011 14:31:45 sample.impl.SampleActivator start +INFO: Hello Fred Bloggs->null + + diff --git a/sandbox/slaws/bundle/obr/repository.xml b/sandbox/slaws/bundle/obr/repository.xml new file mode 100644 index 0000000000..ffa152fd13 --- /dev/null +++ b/sandbox/slaws/bundle/obr/repository.xml @@ -0,0 +1,52 @@ + + + + API classes for the Service Component Architecture + 38075 + http://www.apache.org/ + http://www.apache.org/licenses/LICENSE-2.0.txt + +

+

+

+

+ + +

+

+

+ + +

+

+ + +

+

+ + Import package javax.security.auth + Import package org.oasisopen.sca;version=2.0.0 + Import package org.oasisopen.sca.annotation;version=2.0.0 + Import package org.oasisopen.sca.client;version=2.0.0 + + + The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are characterized by a collaborative, consensus based development process, an open and pragmatic software license, and a desire to create high quality software that leads the way in its field. We consider ourselves not simply a group of projects sharing a server, but rather a community of developers and users. + 15096 + http://www.apache.org/ + http://www.apache.org/licenses/LICENSE-2.0.txt + +

+

+

+

+ + +

+

+

+ + Import package org.oasisopen.sca.annotation;version=2.0 + Import package org.osgi.framework;version=1.5 + Import package sample + + diff --git a/sandbox/slaws/bundle/pom.xml b/sandbox/slaws/bundle/pom.xml new file mode 100644 index 0000000000..8551971700 --- /dev/null +++ b/sandbox/slaws/bundle/pom.xml @@ -0,0 +1,265 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca + tuscany-itest + 2.0-SNAPSHOT + + + bundle + Apache Tuscany SCA iTest Bundle + bundle + + + 2.0-SNAPSHOT + + + + + + org.eclipse + osgi + 3.5.0-v20090520 + compile + + + + org.apache.tuscany.sca + tuscany-sca-api + 2.0-SNAPSHOT + compile + + + + org.apache.aries.application + org.apache.aries.application.api + 0.4-SNAPSHOT + compile + + + + org.apache.aries.application + org.apache.aries.application.management + 0.4-SNAPSHOT + compile + + + + org.apache.aries.application + org.apache.aries.application.modeller + 0.4-SNAPSHOT + compile + + + + org.apache.aries.application + org.apache.aries.application.resolver.obr + 0.4-SNAPSHOT + compile + + + + + + + + org.ops4j.pax.exam + pax-exam + 1.2.4 + test + + + + org.ops4j.pax.exam + pax-exam-junit + 1.2.4 + test + + + + org.ops4j.pax.exam + pax-exam-container-default + 1.2.4 + test + + + + org.ops4j.pax.logging + pax-logging-api + 1.6.1 + test + + + + org.ops4j.pax.logging + pax-logging-service + 1.6.1 + test + + + + org.ops4j.pax.url + pax-url-mvn + 1.2.4 + test + + + + + + org.apache.felix + org.apache.felix.bundlerepository + 1.6.2 + test + + + + + + org.apache.aries + org.apache.aries.util + 0.4-SNAPSHOT + test + + + + org.apache.aries.blueprint + org.apache.aries.blueprint + 0.4-SNAPSHOT + test + + + + org.apache.aries.proxy + org.apache.aries.proxy + 0.4-SNAPSHOT + test + + + + org.apache.aries.application + org.apache.aries.application.runtime + 0.4-SNAPSHOT + test + + + + org.apache.aries.application + org.apache.aries.application.default.local.platform + 0.4-SNAPSHOT + test + + + + org.apache.aries.application + org.apache.aries.application.runtime.itest.interfaces + 0.4-SNAPSHOT + test + + + + asm + asm-all + 3.3.1 + test + + + + org.osgi + org.osgi.compendium + 4.2.0 + test + + + + org.osgi + org.osgi.core + 4.2.0 + test + + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + + + sample + sample.impl + sample.impl.SampleActivator + + + + + org.apache.servicemix.tooling + depends-maven-plugin + 1.2 + + + generate-depends-file + + generate-depends-file + + + ${project.build.directory}/test-classes/META-INF/maven/dependencies.properties + + + + + + + + diff --git a/sandbox/slaws/bundle/src/main/java/sample/Helloworld.java b/sandbox/slaws/bundle/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..f4e8c50448 --- /dev/null +++ b/sandbox/slaws/bundle/src/main/java/sample/Helloworld.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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java b/sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java new file mode 100644 index 0000000000..0e6d3cb1c7 --- /dev/null +++ b/sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java @@ -0,0 +1,43 @@ +/* + * 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 sample.impl; + +import org.oasisopen.sca.annotation.Property; +import org.oasisopen.sca.annotation.Reference; + +import sample.Helloworld; + +public class HelloworldImpl implements Helloworld { + + @Reference(required=false) + protected Helloworld hwRef; + + @Property + protected String componentName; + + public String sayHello(String name) { + String returnString = "Hello " + name + "->" + componentName; + if (hwRef != null){ + return hwRef.sayHello(returnString); + } else { + return returnString; + } + } + +} diff --git a/sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java b/sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java new file mode 100644 index 0000000000..4838b534db --- /dev/null +++ b/sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java @@ -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. + */ + +package sample.impl; + +import java.util.logging.Logger; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +import sample.Helloworld; + +public class SampleActivator implements BundleActivator { + private Logger logger = Logger.getLogger(SampleActivator.class.getName()); + + + public void start(BundleContext context) throws Exception { + logger.info("Starting " + context.getBundle()); + + Helloworld hw = new HelloworldImpl(); + logger.info(hw.sayHello("Fred Bloggs")); + } + + public void stop(BundleContext context) throws Exception { + logger.info("Stopping " + context.getBundle()); + // Registered services will be automatically unregistered + } + +} diff --git a/sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml b/sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..95c32fb5bf --- /dev/null +++ b/sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor new file mode 100644 index 0000000000..e3f31ae8d7 --- /dev/null +++ b/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor @@ -0,0 +1,20 @@ +# 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. + +sample.ImplementationGenericPolicyProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#implementationGenericPolicy,model=sample.ImplementationGenericPolicy +sample.InteractionGenericPolicyProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#interactionGenericPolicy,model=sample.InteractionGenericPolicy +sample.InteractionBindingWSPolicyProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#interactionBindingWSPolicy,model=sample.InteractionBindingWSPolicy \ No newline at end of file diff --git a/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions b/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions new file mode 100644 index 0000000000..f362b64a1f --- /dev/null +++ b/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions @@ -0,0 +1,17 @@ +# 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. +definitions.xml diff --git a/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory b/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory new file mode 100644 index 0000000000..cbfb70c346 --- /dev/null +++ b/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory @@ -0,0 +1,18 @@ +# 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. + +sample.InteractionBindingWSPolicyProviderFactory;model=sample.InteractionBindingWSPolicy \ No newline at end of file diff --git a/sandbox/slaws/bundle/src/main/resources/definitions.xml b/sandbox/slaws/bundle/src/main/resources/definitions.xml new file mode 100644 index 0000000000..f37fde76ab --- /dev/null +++ b/sandbox/slaws/bundle/src/main/resources/definitions.xml @@ -0,0 +1,60 @@ + + + + + + + An intent that targets policy interceptors at the implementation + + + + + + An intent that targets policy interceptors at the binding generically + + + + + + An intent that targets policy interceptors at binding.ws + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sandbox/slaws/bundle/src/main/resources/helloworld.composite b/sandbox/slaws/bundle/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..47488f8bbd --- /dev/null +++ b/sandbox/slaws/bundle/src/main/resources/helloworld.composite @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java b/sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..4c3f0271fa --- /dev/null +++ b/sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,216 @@ +/* + * 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 sample; + +import static org.junit.Assert.assertEquals; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.util.HashSet; +import java.util.Set; + +import static org.ops4j.pax.exam.CoreOptions.equinox; +import static org.ops4j.pax.exam.CoreOptions.options; +import static org.ops4j.pax.exam.CoreOptions.systemProperty; + +import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.workingDirectory; + +import org.apache.aries.application.filesystem.IDirectory; +import org.apache.aries.application.management.spi.repository.RepositoryGenerator; +import org.apache.aries.application.modelling.ModelledResourceManager; +import org.apache.aries.application.modelling.ModelledResource; +import org.apache.aries.application.utils.filesystem.FileSystem; + +import org.apache.felix.bundlerepository.Repository; +import org.apache.felix.bundlerepository.RepositoryAdmin; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.ops4j.pax.exam.CoreOptions; +import org.ops4j.pax.exam.Inject; +import org.ops4j.pax.exam.Option; +import org.ops4j.pax.exam.container.def.options.WorkingDirectoryOption; +import org.ops4j.pax.exam.junit.Configuration; +import org.ops4j.pax.exam.junit.JUnit4TestRunner; +import org.ops4j.pax.exam.options.MavenArtifactProvisionOption; + +import org.osgi.framework.BundleContext; +import org.osgi.framework.Constants; +import org.osgi.framework.Filter; +import org.osgi.framework.FrameworkUtil; +import org.osgi.util.tracker.ServiceTracker; + +/* For debugging, uncomment the next two lines and add these imports: + */ +import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartup; +import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption; + + +/** + * Note that much of the technical detail/instruction comes from... + * + * http://svn.apache.org/repos/asf/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverTest.java + * + */ + +@RunWith( JUnit4TestRunner.class ) +public class HelloworldTestCase { + + public static final long DEFAULT_TIMEOUT = 30000; + + @Inject + protected BundleContext bundleContext; + + @Configuration + public static Option[] configuration() { + Option[] options = options( + mavenBundle("org.ops4j.pax.logging", "pax-logging-api"), + mavenBundle("org.ops4j.pax.logging", "pax-logging-service"), + systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("INFO"), + +// mavenBundle("org.apache.felix", "org.apache.felix.configadmin"), + mavenBundle("org.ops4j.pax.url", "pax-url-mvn"), + + mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint"), + mavenBundle("asm", "asm-all"), + mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy"), + mavenBundle("org.apache.aries", "org.apache.aries.util"), + + mavenBundle("org.apache.aries.application", "org.apache.aries.application.api"), + mavenBundle("org.apache.aries.application", "org.apache.aries.application.utils"), + mavenBundle("org.apache.aries.application", "org.apache.aries.application.modeller"), + mavenBundle("org.apache.aries.application", "org.apache.aries.application.default.local.platform"), + mavenBundle("org.apache.felix", "org.apache.felix.bundlerepository"), + mavenBundle("org.apache.aries.application", "org.apache.aries.application.resolver.obr"), + mavenBundle("org.apache.aries.application", "org.apache.aries.application.deployment.management"), + mavenBundle("org.apache.aries.application", "org.apache.aries.application.management"), + mavenBundle("org.apache.aries.application", "org.apache.aries.application.runtime"), + mavenBundle("org.apache.aries.application", "org.apache.aries.application.runtime.itest.interfaces"), + mavenBundle("org.osgi", "org.osgi.compendium"), + mavenBundle("org.apache.aries.testsupport", "org.apache.aries.testsupport.unit"), + + mavenBundle("org.apache.tuscany.sca", "tuscany-sca-api"), + + mavenBundle("org.apache.tuscany.sca", "bundle"), + + /* For debugging, uncomment the next two lines + vmOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777"), + waitForFrameworkStartup(), + */ + + workingDirectory("D://sca-java-2.x//unreleased//testing//itest//bundle//target"), + + equinox().version("3.5.0")); + + return options; + } + + @Test + public void testSayHello() { + System.out.println("testSayHello - start"); + System.out.println("test dir = " + System.getProperty("user.dir")); + System.out.println("current dir = " + this.getClass().getProtectionDomain().getCodeSource().getLocation()); + + // get the OBR repository admin service + RepositoryAdmin respositoryAdminService = getOsgiService(RepositoryAdmin.class); + + // print currently registered repos + Repository[] repos = respositoryAdminService.listRepositories(); + System.out.println("initial repos"); + for (Repository repo : repos) { + System.out.println("Repo >>> " + repo.getName()); + } + + // get the repository generator service + System.out.println("get RepositoryGenerator service ="); + RepositoryGenerator repositoryGenerator = getOsgiService(RepositoryGenerator.class); + System.out.println(repositoryGenerator); + + System.out.println("get ModelledResourceManager service ="); + ModelledResourceManager modelledResourceManager = getOsgiService(ModelledResourceManager.class); + System.out.println(modelledResourceManager); + + Set mrs = new HashSet(); + + try { + // create mrs based on base runtime + populateMRS(modelledResourceManager, + mrs, + "../../../../../distribution/all/target/features/tuscany-base-runtime-pom/which-jars", + "../../../../../distribution/all/target/modules"); + //File outFile = new File("D://sca-java-2.x//unreleased//testing//itest//bundle//target//myrepository.xml"); + //File outFile = new File(".//target//myrepository.xml"); + //FileOutputStream fout = new FileOutputStream(outFile); + FileOutputStream fout = new FileOutputStream("repository.xml"); + repositoryGenerator.generateRepository("Test repo description", mrs, fout); + fout.close(); + + } catch(Exception ex) { + ex.printStackTrace(); + } + + System.out.println("testSayHello - end"); + } + + private void populateMRS(ModelledResourceManager modelledResourceManager, + Set mrs, + String whichJars, + String modules){ + try { + BufferedReader in = new BufferedReader(new FileReader(whichJars)); + String line; + while ((line = in.readLine()) != null) { + if (line.endsWith(".jar")){ + int dirSeparatorIndex = line.indexOf("/"); + if (dirSeparatorIndex > 0){ + line = line.substring(0, dirSeparatorIndex); + } + System.out.println("Processing - " + line); + File bundleFile = new File(modules + "\\" + line); + IDirectory jarDir = FileSystem.getFSRoot(bundleFile); + mrs.add(modelledResourceManager.getModelledResource(bundleFile.toURI().toString(), jarDir)); + } + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + private T getOsgiService(Class type) { + try { + String filterString = "(" + Constants.OBJECTCLASS + "=" + type.getName() + ")"; + Filter osgiFilter = FrameworkUtil.createFilter(filterString); + ServiceTracker tracker = new ServiceTracker(bundleContext, osgiFilter, null); + tracker.open(); + Object tmp = tracker.waitForService(DEFAULT_TIMEOUT); + return type.cast(tmp); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + + private static MavenArtifactProvisionOption mavenBundle(String groupId, String artifactId) { + return CoreOptions.mavenBundle().groupId(groupId).artifactId(artifactId).versionAsInProject(); + } +} + + -- cgit v1.2.3