Author: slaws
Date: Tue Mar 15 13:16:11 2011
New Revision: 1081768

URL: http://svn.apache.org/viewvc?rev=1081768&view=rev
Log:
Take a copy from 2.x trunk as I'm going to remove it from there shortly. 

Added:
    tuscany/sandbox/slaws/bundle/   (with props)
    tuscany/sandbox/slaws/bundle/commands.txt
    tuscany/sandbox/slaws/bundle/obr/
    tuscany/sandbox/slaws/bundle/obr/repository.xml
    tuscany/sandbox/slaws/bundle/pom.xml
    tuscany/sandbox/slaws/bundle/src/
    tuscany/sandbox/slaws/bundle/src/main/
    tuscany/sandbox/slaws/bundle/src/main/java/
    tuscany/sandbox/slaws/bundle/src/main/java/sample/
    tuscany/sandbox/slaws/bundle/src/main/java/sample/Helloworld.java
    tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/
    tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java
    tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java
    tuscany/sandbox/slaws/bundle/src/main/resources/
    tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/
    
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml
    tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/
    
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
    
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
    
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory
    tuscany/sandbox/slaws/bundle/src/main/resources/definitions.xml
    tuscany/sandbox/slaws/bundle/src/main/resources/helloworld.composite
    tuscany/sandbox/slaws/bundle/src/test/
    tuscany/sandbox/slaws/bundle/src/test/java/
    tuscany/sandbox/slaws/bundle/src/test/java/sample/
    tuscany/sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java

Propchange: tuscany/sandbox/slaws/bundle/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Mar 15 13:16:11 2011
@@ -0,0 +1,4 @@
+.classpath
+.project
+.settings
+target

Added: tuscany/sandbox/slaws/bundle/commands.txt
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/commands.txt?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/commands.txt (added)
+++ tuscany/sandbox/slaws/bundle/commands.txt Tue Mar 15 13:16:11 2011
@@ -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
+
+

Added: tuscany/sandbox/slaws/bundle/obr/repository.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/obr/repository.xml?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/obr/repository.xml (added)
+++ tuscany/sandbox/slaws/bundle/obr/repository.xml Tue Mar 15 13:16:11 2011
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<repository lastmodified='20110302114746.328'>
+  <resource 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/modules/sca-api/target/tuscany-sca-api-2.0-SNAPSHOT.jar'
 version='2.0.0'>
+    <description>API classes for the Service Component 
Architecture</description>
+    <size>38075</size>
+    <documentation>http://www.apache.org/</documentation>
+    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
+    <capability name='bundle'>
+      <p n='symbolicname' v='org.apache.tuscany.sca.api'/>
+      <p n='presentationname' v='Apache Tuscany SCA API'/>
+      <p n='version' t='version' v='2.0.0'/>
+      <p n='manifestversion' v='2'/>
+    </capability>
+    <capability name='package'>
+      <p n='package' v='org.oasisopen.sca'/>
+      <p n='version' t='version' v='2.0.0'/>
+      <p n='uses:' v='javax.security.auth'/>
+    </capability>
+    <capability name='package'>
+      <p n='package' v='org.oasisopen.sca.annotation'/>
+      <p n='version' t='version' v='2.0.0'/>
+    </capability>
+    <capability name='package'>
+      <p n='package' v='org.oasisopen.sca.client'/>
+      <p n='version' t='version' v='2.0.0'/>
+    </capability>
+    <require name='package' filter='(&amp;(package=javax.security.auth))' 
extend='false' multiple='false' optional='false'>Import package 
javax.security.auth</require>
+    <require name='package' 
filter='(&amp;(package=org.oasisopen.sca)(version&gt;=2.0.0))' extend='false' 
multiple='false' optional='false'>Import package 
org.oasisopen.sca;version=2.0.0</require>
+    <require name='package' 
filter='(&amp;(package=org.oasisopen.sca.annotation)(version&gt;=2.0.0))' 
extend='false' multiple='false' optional='false'>Import package 
org.oasisopen.sca.annotation;version=2.0.0</require>
+    <require name='package' 
filter='(&amp;(package=org.oasisopen.sca.client)(version&gt;=2.0.0))' 
extend='false' multiple='false' optional='false'>Import package 
org.oasisopen.sca.client;version=2.0.0</require>
+  </resource>
+  <resource id='org.apache.tuscany.sca.bundle/2.0.0.SNAPSHOT' 
symbolicname='org.apache.tuscany.sca.bundle' presentationname='Apache Tuscany 
SCA iTest Bundle' 
uri='file:/D:/sca-java-2.x/unreleased/testing/itest/bundle/target/bundle-2.0-SNAPSHOT.jar'
 version='2.0.0.SNAPSHOT'>
+    <description>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.</description>
+    <size>15096</size>
+    <documentation>http://www.apache.org/</documentation>
+    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
+    <capability name='bundle'>
+      <p n='symbolicname' v='org.apache.tuscany.sca.bundle'/>
+      <p n='presentationname' v='Apache Tuscany SCA iTest Bundle'/>
+      <p n='version' t='version' v='2.0.0.SNAPSHOT'/>
+      <p n='manifestversion' v='2'/>
+    </capability>
+    <capability name='package'>
+      <p n='package' v='sample'/>
+      <p n='version' t='version' v='0.0.0'/>
+      <p n='uses:' v='org.oasisopen.sca.annotation'/>
+    </capability>
+    <require name='package' 
filter='(&amp;(package=org.oasisopen.sca.annotation)(version&gt;=2.0.0))' 
extend='false' multiple='false' optional='false'>Import package 
org.oasisopen.sca.annotation;version=2.0</require>
+    <require name='package' 
filter='(&amp;(package=org.osgi.framework)(version&gt;=1.5.0))' extend='false' 
multiple='false' optional='false'>Import package 
org.osgi.framework;version=1.5</require>
+    <require name='package' filter='(&amp;(package=sample))' extend='false' 
multiple='false' optional='false'>Import package sample</require>
+  </resource>
+</repository>

Added: tuscany/sandbox/slaws/bundle/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/pom.xml?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/pom.xml (added)
+++ tuscany/sandbox/slaws/bundle/pom.xml Tue Mar 15 13:16:11 2011
@@ -0,0 +1,265 @@
+<?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 xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+   <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>tuscany-itest</artifactId>
+        <version>2.0-SNAPSHOT</version>
+    </parent>
+
+   <artifactId>bundle</artifactId>
+   <name>Apache Tuscany SCA iTest Bundle</name>
+   <packaging>bundle</packaging>
+
+   <properties>
+      <tuscany.version>2.0-SNAPSHOT</tuscany.version>
+   </properties>
+
+   <dependencies>     
+
+       <dependency>
+           <groupId>org.eclipse</groupId>
+           <artifactId>osgi</artifactId>
+           <version>3.5.0-v20090520</version>
+           <scope>compile</scope>
+       </dependency>
+
+       <dependency>
+           <groupId>org.apache.tuscany.sca</groupId>
+           <artifactId>tuscany-sca-api</artifactId>
+           <version>2.0-SNAPSHOT</version>
+           <scope>compile</scope>
+       </dependency> 
+               
+       <dependency>
+           <groupId>org.apache.aries.application</groupId>
+           <artifactId>org.apache.aries.application.api</artifactId>
+           <version>0.4-SNAPSHOT</version>
+           <scope>compile</scope>
+       </dependency>          
+       
+       <dependency>
+           <groupId>org.apache.aries.application</groupId>
+           <artifactId>org.apache.aries.application.management</artifactId>
+           <version>0.4-SNAPSHOT</version>
+           <scope>compile</scope>
+       </dependency> 
+       
+       <dependency>
+           <groupId>org.apache.aries.application</groupId>
+           <artifactId>org.apache.aries.application.modeller</artifactId>
+           <version>0.4-SNAPSHOT</version>
+           <scope>compile</scope>
+       </dependency>                  
+       
+       <dependency>
+           <groupId>org.apache.aries.application</groupId>
+           <artifactId>org.apache.aries.application.resolver.obr</artifactId>
+           <version>0.4-SNAPSHOT</version>
+           <scope>compile</scope>
+       </dependency>      
+
+      <!-- Test dependencies -->
+<!-- 
+       <dependency>
+         <groupId>junit</groupId>
+         <artifactId>junit</artifactId>
+         <version>4.8.1</version>
+         <scope>test</scope>
+      </dependency>   
+--> 
+      
+      <!-- Pax Exam test runtime -->      
+         <dependency>
+             <groupId>org.ops4j.pax.exam</groupId>
+             <artifactId>pax-exam</artifactId>
+             <version>1.2.4</version>
+             <scope>test</scope>
+         </dependency>
+         
+         <dependency>
+             <groupId>org.ops4j.pax.exam</groupId>
+             <artifactId>pax-exam-junit</artifactId>
+             <version>1.2.4</version>
+             <scope>test</scope>
+         </dependency>
+         
+         <dependency>
+             <groupId>org.ops4j.pax.exam</groupId>
+             <artifactId>pax-exam-container-default</artifactId>
+             <version>1.2.4</version>
+             <scope>test</scope>
+         </dependency>
+         
+      <dependency>
+          <groupId>org.ops4j.pax.logging</groupId>
+          <artifactId>pax-logging-api</artifactId>
+          <version>1.6.1</version>
+          <scope>test</scope>
+      </dependency>      
+         
+      <dependency>
+          <groupId>org.ops4j.pax.logging</groupId>
+          <artifactId>pax-logging-service</artifactId>
+          <version>1.6.1</version>
+          <scope>test</scope>
+      </dependency>    
+      
+      <dependency>
+          <groupId>org.ops4j.pax.url</groupId>
+          <artifactId>pax-url-mvn</artifactId>
+          <version>1.2.4</version>
+          <scope>test</scope>
+      </dependency>      
+            
+      <!-- extra bundles that will be loaded -->
+        
+      <dependency>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>org.apache.felix.bundlerepository</artifactId>
+          <version>1.6.2</version>
+          <scope>test</scope>
+      </dependency>
+      
+<!--       
+       <dependency>
+           <groupId>org.apache.felix</groupId>
+           <artifactId>org.apache.felix.configadmin</artifactId>
+           <version>1.2.4</version>
+           <scope>test</scope>
+       </dependency>  
+-->           
+      
+       <dependency>
+           <groupId>org.apache.aries</groupId>
+           <artifactId>org.apache.aries.util</artifactId>
+           <version>0.4-SNAPSHOT</version>
+           <scope>test</scope>
+       </dependency>
+       
+       <dependency>
+           <groupId>org.apache.aries.blueprint</groupId>
+           <artifactId>org.apache.aries.blueprint</artifactId>
+           <version>0.4-SNAPSHOT</version>
+           <scope>test</scope>
+       </dependency>
+       
+       <dependency>
+           <groupId>org.apache.aries.proxy</groupId>
+           <artifactId>org.apache.aries.proxy</artifactId>
+           <version>0.4-SNAPSHOT</version>
+           <scope>test</scope>
+       </dependency> 
+       
+       <dependency>
+           <groupId>org.apache.aries.application</groupId>
+           <artifactId>org.apache.aries.application.runtime</artifactId>
+           <version>0.4-SNAPSHOT</version>
+           <scope>test</scope>
+       </dependency>       
+       
+       <dependency>
+           <groupId>org.apache.aries.application</groupId>
+           
<artifactId>org.apache.aries.application.default.local.platform</artifactId>
+           <version>0.4-SNAPSHOT</version>           
+           <scope>test</scope>
+       </dependency>
+       
+      <dependency>
+          <groupId>org.apache.aries.application</groupId>
+          
<artifactId>org.apache.aries.application.runtime.itest.interfaces</artifactId>
+          <version>0.4-SNAPSHOT</version>
+          <scope>test</scope>
+      </dependency>         
+       
+       <dependency>
+           <groupId>asm</groupId>
+           <artifactId>asm-all</artifactId>
+           <version>3.3.1</version>
+           <scope>test</scope>
+       </dependency> 
+       
+       <dependency>
+           <groupId>org.osgi</groupId>
+           <artifactId>org.osgi.compendium</artifactId>
+           <version>4.2.0</version>
+           <scope>test</scope>
+       </dependency>  
+       
+       <dependency>
+           <groupId>org.osgi</groupId>
+           <artifactId>org.osgi.core</artifactId>
+           <version>4.2.0</version>
+           <scope>test</scope>
+       </dependency>              
+      
+   </dependencies>
+   
+   <build>
+       <plugins>
+         <plugin>
+           <groupId>org.apache.felix</groupId>
+           <artifactId>maven-bundle-plugin</artifactId>
+           <extensions>true</extensions>
+<!-- create a repositoy.xml file for this bundle    
+           <executions>
+             <execution>
+               <id>generate-obr</id>
+               <phase>process-classes</phase>
+               <goals>
+                 <goal>install</goal>
+               </goals>
+             </execution>
+           </executions>
+-->        
+           <configuration>  
+<!--     
+             <obrRepository>target/obr</obrRepository>
+-->          
+             <instructions>
+               <Export-Package>sample</Export-Package>
+               <Private-Package>sample.impl</Private-Package>
+               <Bundle-Activator>sample.impl.SampleActivator</Bundle-Activator>
+             </instructions>
+           </configuration>
+         </plugin>
+      <plugin>
+          <groupId>org.apache.servicemix.tooling</groupId>
+          <artifactId>depends-maven-plugin</artifactId>
+          <version>1.2</version>
+          <executions>
+              <execution>
+                  <id>generate-depends-file</id>
+                  <goals>
+                      <goal>generate-depends-file</goal>
+                  </goals>
+                  <configuration>
+                      
<outputFile>${project.build.directory}/test-classes/META-INF/maven/dependencies.properties</outputFile>
+                  </configuration>
+              </execution>
+          </executions>
+      </plugin>          
+       </plugins>   
+   </build>
+  
+</project>

Added: tuscany/sandbox/slaws/bundle/src/main/java/sample/Helloworld.java
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/java/sample/Helloworld.java?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/src/main/java/sample/Helloworld.java (added)
+++ tuscany/sandbox/slaws/bundle/src/main/java/sample/Helloworld.java Tue Mar 
15 13:16:11 2011
@@ -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);
+
+}

Added: 
tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java 
(added)
+++ tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/HelloworldImpl.java 
Tue Mar 15 13:16:11 2011
@@ -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;
+        }
+    }
+
+}

Added: 
tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java 
(added)
+++ tuscany/sandbox/slaws/bundle/src/main/java/sample/impl/SampleActivator.java 
Tue Mar 15 13:16:11 2011
@@ -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
+    }
+
+}

Added: 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml?rev=1081768&view=auto
==============================================================================
--- 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml 
(added)
+++ 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/sca-contribution.xml 
Tue Mar 15 13:16:11 2011
@@ -0,0 +1,25 @@
+<?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://docs.oasis-open.org/ns/opencsa/sca/200912";
+              xmlns:sample="http://sample";>
+   
+   <deployable composite="sample:helloworld-contribution" />
+
+</contribution>

Added: 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor?rev=1081768&view=auto
==============================================================================
--- 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
 (added)
+++ 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
 Tue Mar 15 13:16:11 2011
@@ -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

Added: 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions?rev=1081768&view=auto
==============================================================================
--- 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
 (added)
+++ 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
 Tue Mar 15 13:16:11 2011
@@ -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

Added: 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory?rev=1081768&view=auto
==============================================================================
--- 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory
 (added)
+++ 
tuscany/sandbox/slaws/bundle/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory
 Tue Mar 15 13:16:11 2011
@@ -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

Added: tuscany/sandbox/slaws/bundle/src/main/resources/definitions.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/resources/definitions.xml?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/src/main/resources/definitions.xml (added)
+++ tuscany/sandbox/slaws/bundle/src/main/resources/definitions.xml Tue Mar 15 
13:16:11 2011
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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 xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912";
+            targetNamespace="http://tuscany.apache.org/xmlns/sca/1.1";
+            xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1";>
+
+       <intent name="implementation.generic" constrains="implementation">
+               <description>
+                       An intent that targets policy interceptors at the 
implementation
+               </description>
+       </intent>
+    
+    <intent name="interaction.generic" constrains="binding">
+        <description>
+            An intent that targets policy interceptors at the binding 
generically
+        </description>
+    </intent>
+    
+    <intent name="interaction.bindingws" constrains="binding.ws">
+        <description>
+            An intent that targets policy interceptors at binding.ws
+        </description>
+    </intent>
+    
+    <policySet name="ImplementationGeneric"
+               provides="tuscany:implementation.generic"
+               appliesTo="//implementation">
+        <tuscany:implementationGenericPolicy name="ImplementationGeneric"/>
+    </policySet>  
+    
+    <policySet name="InteractionGeneric"
+               provides="tuscany:interaction.generic"
+               appliesTo="//binding">
+        <tuscany:interactionGenericPolicy name="InteractionGeneric"/>
+    </policySet>  
+    
+    <policySet name="InteractionBindingWS"
+               provides="tuscany:interaction.bindingws"
+               appliesTo="//binding.ws">
+        <tuscany:interactionBindingWSPolicy name="InteractionBindingWS"/>
+    </policySet> 
+    
+</definitions>
\ No newline at end of file

Added: tuscany/sandbox/slaws/bundle/src/main/resources/helloworld.composite
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/main/resources/helloworld.composite?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/src/main/resources/helloworld.composite (added)
+++ tuscany/sandbox/slaws/bundle/src/main/resources/helloworld.composite Tue 
Mar 15 13:16:11 2011
@@ -0,0 +1,50 @@
+<?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://docs.oasis-open.org/ns/opencsa/sca/200912";
+           xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1";
+           targetNamespace="http://sample";
+           name="helloworld-contribution">
+
+    <component name="HelloworldComponent1">
+        <implementation.java class="sample.HelloworldImpl"/>
+        <reference name="hwRef" 
+                   target="HelloworldComponent2"
+                   requires="tuscany:interaction.bindingws" 
+                   policySets="tuscany:InteractionBindingWS"/>
+        <property name="componentName" value="HelloworldComponent1"/>
+    </component>
+    
+     <component name="HelloworldComponent2">
+        <implementation.java class="sample.HelloworldImpl"/>
+        <service name="Helloworld" 
+                 requires="tuscany:interaction.bindingws" 
+                 policySets="tuscany:InteractionBindingWS">
+            <binding.ws/>
+        </service>
+        <reference name="hwRef" target="HelloworldComponent3"/>
+        <property name="componentName" value="HelloworldComponent2"/>
+    </component>
+    
+    <component name="HelloworldComponent3">
+        <implementation.java class="sample.HelloworldImpl"/>
+        <property name="componentName" value="HelloworldComponent3"/>
+    </component>    
+
+</composite>

Added: tuscany/sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java?rev=1081768&view=auto
==============================================================================
--- tuscany/sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java 
(added)
+++ tuscany/sandbox/slaws/bundle/src/test/java/sample/HelloworldTestCase.java 
Tue Mar 15 13:16:11 2011
@@ -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<ModelledResource> mrs = new HashSet<ModelledResource>();
+        
+        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<ModelledResource> 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> T getOsgiService(Class<T> 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();
+    }    
+}
+
+


Reply via email to