You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cl...@apache.org on 2009/04/21 11:25:53 UTC

svn commit: r767085 - in /felix/sandbox/clement/BundleAsiPOJO: ./ org.apache.felix.ipojo.pax.exam.target.tests/ org.apache.felix.ipojo.pax.exam.target.tests/src/ org.apache.felix.ipojo.pax.exam.target.tests/src/main/ org.apache.felix.ipojo.pax.exam.tar...

Author: clement
Date: Tue Apr 21 09:25:51 2009
New Revision: 767085

URL: http://svn.apache.org/viewvc?rev=767085&view=rev
Log:
TinyBundle extension to create iPOJO bundles

Added:
    felix/sandbox/clement/BundleAsiPOJO/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/consumer.xml
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/pom.xml
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/provider.xml
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/Consumer.java
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/MyProvider.java
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/service/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/service/Hello.java
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/exam/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/exam/target/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/exam/target/tests/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/exam/target/tests/BundleCreationTest.java
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/pom.xml
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/pax/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/pax/exam/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/pax/exam/target/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/pax/exam/target/BundleAsiPOJO.java
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/pax/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/pax/exam/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/pax/exam/target/
    felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/pax/exam/target/AppTest.java

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/consumer.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/consumer.xml?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/consumer.xml (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/consumer.xml Tue Apr 21 09:25:51 2009
@@ -0,0 +1,3 @@
+<ipojo>
+<instance component="org.apache.felix.ipojo.pax.exam.target.tests.impl.Consumer"/>
+</ipojo>
\ No newline at end of file

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/pom.xml?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/pom.xml (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/pom.xml Tue Apr 21 09:25:51 2009
@@ -0,0 +1,132 @@
+<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>
+  <groupId>org.apache.felix</groupId>
+  <artifactId>org.apache.felix.ipojo.pax.exam.target.tests</artifactId>
+  <packaging>jar</packaging>
+  <version>0.9.0-SNAPSHOT</version>
+  <name>org.apache.felix.ipojo.pax.exam.target.tests</name>
+  <build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.5</source>
+					<target>1.5</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.servicemix.tooling</groupId>
+				<artifactId>depends-maven-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>generate-depends-file</id>
+						<goals>
+							<goal>generate-depends-file</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			
+			<!--  <plugin>
+				<groupId>org.ops4j.pax.exam</groupId>
+				<artifactId>maven-paxexam-plugin</artifactId>
+				<executions>
+					<execution>
+					<id>generate-paxexam-config</id>
+					<goals>
+						<goal>generate-paxexam-config</goal>
+					</goals>
+					</execution>
+				</executions>
+				<configuration>
+				<settings>
+					<platform>felix</platform>
+				</settings>
+				</configuration>
+			</plugin> -->
+		</plugins>
+	</build>	
+	
+	<dependencies>
+		
+	<!--
+		Pax Exam API:
+	-->
+	<dependency>
+		<groupId>org.ops4j.pax.exam</groupId>
+		<artifactId>pax-exam</artifactId>
+		<version>0.4.0</version>
+	</dependency>
+	<!--
+		During runtime Pax Exam will discover the OSGi container to use by
+		searching metadata available into classpath. Pax Exam comes with a
+		default container that uses [Pax Runner] for implementing the
+		container requirements:
+	-->
+	<dependency>
+		<groupId>org.ops4j.pax.exam</groupId>
+		<artifactId>pax-exam-container-default
+		</artifactId>
+		<version>0.4.0</version>
+	</dependency>
+	<!--
+		If your test code is based on JUnit you will have to have the Junit
+		support artifact:
+	-->
+	<dependency>
+		<groupId>org.ops4j.pax.exam</groupId>
+		<artifactId>pax-exam-junit</artifactId>
+		<version>0.4.0</version>
+	</dependency>
+	<dependency>
+		<groupId>junit</groupId>
+		<artifactId>junit</artifactId>
+		<version>4.5</version>
+		<type>jar</type>
+		<scope>test</scope>
+	</dependency>
+	
+		
+	<!-- TinyBundle -->
+	<dependency>
+		 <groupId>org.ops4j.pax.tinybundles</groupId>
+  		 <artifactId>pax-tinybundles-core</artifactId>
+  		 <version>0.5.0-SNAPSHOT</version>
+  	</dependency>
+  	<dependency>
+  		<groupId>org.apache.felix</groupId>
+  		<artifactId>org.apache.felix.ipojo.pax.exam.target</artifactId>
+  		<version>0.9.0-SNAPSHOT</version>
+ 	 </dependency>
+ 	 <dependency>
+			<groupId>xerces</groupId>
+			<artifactId>xercesImpl</artifactId>
+			<version>2.4.0</version>
+		</dependency>
+ 	 <dependency>
+ 	 	<groupId>org.apache.felix</groupId>
+ 	 	<artifactId>org.apache.felix.ipojo.annotations</artifactId>
+ 	 	<version>1.2.0</version>
+ 	 </dependency>
+  	
+	</dependencies>
+
+  	
+  	 
+	
+	<repositories>
+		<repository>
+			<id>ops4j.releases</id>
+			<name>OPS4J Release</name>
+			<url> http://repository.ops4j.org/maven2/</url>
+			<releases>
+				<enabled>true</enabled>
+			</releases>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</repository>
+	</repositories>
+</project>

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/provider.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/provider.xml?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/provider.xml (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/provider.xml Tue Apr 21 09:25:51 2009
@@ -0,0 +1,6 @@
+<ipojo>
+<component classname="org.apache.felix.ipojo.pax.exam.target.tests.impl.MyProvider">
+	<provides/>
+</component>
+<instance component="org.apache.felix.ipojo.pax.exam.target.tests.impl.MyProvider"/>
+</ipojo>
\ No newline at end of file

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/Consumer.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/Consumer.java?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/Consumer.java (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/Consumer.java Tue Apr 21 09:25:51 2009
@@ -0,0 +1,17 @@
+package org.apache.felix.ipojo.pax.exam.target.tests.impl;
+
+import org.apache.felix.ipojo.annotations.Component;
+import org.apache.felix.ipojo.annotations.Requires;
+import org.apache.felix.ipojo.pax.exam.target.tests.service.Hello;
+
+@Component
+public class Consumer {
+    
+    @Requires
+    private Hello hello;
+    
+    public Consumer() {
+        System.out.println(hello.sayHello());
+    }
+
+}

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/MyProvider.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/MyProvider.java?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/MyProvider.java (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/impl/MyProvider.java Tue Apr 21 09:25:51 2009
@@ -0,0 +1,11 @@
+package org.apache.felix.ipojo.pax.exam.target.tests.impl;
+
+import org.apache.felix.ipojo.pax.exam.target.tests.service.Hello;
+
+public class MyProvider implements Hello {
+    
+    public String sayHello() {
+        return "Hello";
+    }
+
+}

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/service/Hello.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/service/Hello.java?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/service/Hello.java (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/main/java/org/apache/felix/ipojo/pax/exam/target/tests/service/Hello.java Tue Apr 21 09:25:51 2009
@@ -0,0 +1,7 @@
+package org.apache.felix.ipojo.pax.exam.target.tests.service;
+
+public interface Hello {
+    
+    public String sayHello();
+
+}

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/exam/target/tests/BundleCreationTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/exam/target/tests/BundleCreationTest.java?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/exam/target/tests/BundleCreationTest.java (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target.tests/src/test/java/org/apache/felix/ipojo/pax/exam/target/tests/BundleCreationTest.java Tue Apr 21 09:25:51 2009
@@ -0,0 +1,142 @@
+package org.apache.felix.ipojo.pax.exam.target.tests;
+
+import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
+import static org.ops4j.pax.exam.CoreOptions.options;
+import static org.ops4j.pax.exam.CoreOptions.provision;
+import static org.ops4j.pax.tinybundles.core.TinyBundles.asURL;
+import static org.ops4j.pax.tinybundles.core.TinyBundles.newBundle;
+import static org.ops4j.pax.tinybundles.core.TinyBundles.with;
+
+import java.io.File;
+import java.net.MalformedURLException;
+
+import org.apache.felix.ipojo.pax.exam.target.BundleAsiPOJO;
+import org.apache.felix.ipojo.pax.exam.target.tests.impl.Consumer;
+import org.apache.felix.ipojo.pax.exam.target.tests.impl.MyProvider;
+import org.apache.felix.ipojo.pax.exam.target.tests.service.Hello;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Inject;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.Configuration;
+import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.Constants;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+
+
+@RunWith( JUnit4TestRunner.class )
+public class BundleCreationTest {
+    
+    
+    @Inject
+    BundleContext context;
+    
+    @Configuration
+    public static Option[] configure()
+    {
+        
+        
+        File metaProv = new File("provider.xml");
+        if (! metaProv.exists()) {
+            Assert.fail("No provider file");
+        }
+        
+        return options(
+            provision(
+                mavenBundle()
+                    .groupId( "org.ops4j.pax.tinybundles" )
+                    .artifactId( "pax-tinybundles-core" )
+                    .version( "0.5.0-SNAPSHOT" )),
+            provision( 
+                    mavenBundle()
+                    .groupId("org.apache.felix")
+                    .artifactId("org.apache.felix.ipojo")
+                    .version("1.3.0-SNAPSHOT")
+            ),
+            provision(
+                            newBundle()
+                                .addClass( Hello.class )
+                                .prepare()
+                               .set(Constants.BUNDLE_SYMBOLICNAME,"ServiceInterface")
+                               .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.pax.exam.target.tests.service")
+                                .build( asURL() ).toExternalForm()
+                        ),
+            provision(
+                    newBundle()
+                    .addClass(MyProvider.class)
+                    .prepare( 
+                        with()
+                            .set(Constants.BUNDLE_SYMBOLICNAME,"Provider")
+                            .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.pax.exam.target.tests.service")
+                        )
+                        .build( new BundleAsiPOJO(new File("provider.jar"), new File("provider.xml"))  ).toExternalForm()
+                        ),
+                provision(newBundle()
+                        .addClass(Consumer.class)
+                        .prepare(
+                                with()
+                                        .set(Constants.BUNDLE_SYMBOLICNAME, "Consumer")
+                                        .set(Constants.IMPORT_PACKAGE,
+                                                "org.apache.felix.ipojo.pax.exam.target.tests.service"))
+                        .build(
+                                new BundleAsiPOJO(new File("cons.jar"),
+                                        new File("consumer.xml")))
+                        .toExternalForm())
+
+        );
+    }
+    
+    @Test
+    public void creation() throws MalformedURLException, BundleException, InvalidSyntaxException {
+        assertBundle("ServiceInterface");
+//        createServiceProvider();
+        assertBundle("Provider");
+        assertBundle("Consumer");
+
+        dumpBundles();
+        dumpServices();
+        // Check service
+        Assert.assertNotNull(context.getAllServiceReferences(Hello.class.getName(), null));
+
+    }
+    
+    
+    private void dumpServices() throws InvalidSyntaxException {
+        ServiceReference[] refs = context.getAllServiceReferences(null, null);
+        System.out.println(" === Services === ");
+        for (ServiceReference ref : refs) {
+            String[] itf = (String[]) ref.getProperty(Constants.OBJECTCLASS);
+            System.out.println(itf[0]);
+        }
+        System.out.println("====");
+    }
+    
+    private void dumpBundles() throws InvalidSyntaxException {
+        Bundle[] bundles = context.getBundles();
+        System.out.println(" === Bundles === ");
+        for (Bundle bundle : bundles) {
+            String sn  =  bundle.getSymbolicName();
+            System.out.println(sn);
+        }
+        System.out.println("====");
+    }
+    
+    private void assertBundle(String sn) {
+        for (Bundle bundle :context.getBundles()) {
+            if (bundle.getSymbolicName().equals(sn)
+                    && bundle.getState() == Bundle.ACTIVE) {
+                return;
+            }
+                
+        }
+        Assert.fail("Cannot find the bundle " + sn);
+    }
+    
+  
+
+}

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/pom.xml?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/pom.xml (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/pom.xml Tue Apr 21 09:25:51 2009
@@ -0,0 +1,41 @@
+<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>
+  <groupId>org.apache.felix</groupId>
+  <artifactId>org.apache.felix.ipojo.pax.exam.target</artifactId>
+  <packaging>jar</packaging>
+  <version>0.9.0-SNAPSHOT</version>
+  <name>BundleAsiPOJO</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+     <groupId>org.ops4j.pax.tinybundles</groupId>
+  	<artifactId>pax-tinybundles-core</artifactId>
+  	<version>0.5.0-SNAPSHOT</version>
+  </dependency>
+      <dependency>
+     <groupId>org.apache.felix</groupId>
+  	<artifactId>org.apache.felix.ipojo.manipulator</artifactId>
+  	<version>1.3.0-SNAPSHOT</version>
+  </dependency>
+  </dependencies>
+  
+  <build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.5</source>
+					<target>1.5</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/pax/exam/target/BundleAsiPOJO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/pax/exam/target/BundleAsiPOJO.java?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/pax/exam/target/BundleAsiPOJO.java (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/main/java/org/apache/felix/ipojo/pax/exam/target/BundleAsiPOJO.java Tue Apr 21 09:25:51 2009
@@ -0,0 +1,62 @@
+package org.apache.felix.ipojo.pax.exam.target;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.List;
+
+import org.apache.felix.ipojo.manipulator.Pojoization;
+import org.ops4j.pax.tinybundles.core.BundleAs;
+import org.ops4j.pax.tinybundles.core.targets.BundleAsFile;
+
+public class BundleAsiPOJO implements BundleAs<URL> {
+
+    private File m_metadata;
+    private File m_file;
+    
+    public BundleAsiPOJO (File file, File metadata) {
+        m_metadata = metadata;
+        m_file = file;
+        if (! metadata.exists()) {
+            throw new RuntimeException("METADATA NOT FOUND");
+        }
+    }
+
+    public URL make(InputStream arg0) {
+        Pojoization pojoizator = new Pojoization();
+        try {
+            File fout = File.createTempFile( "tinybundle_", ".jar" );
+            fout.deleteOnExit();
+            File out = new BundleAsFile(fout).make(arg0);
+            pojoizator.pojoization(out, m_file, m_metadata);
+
+            
+            List<String> list = (List<String>) pojoizator.getErrors();
+            if (list != null  && ! list.isEmpty()) {
+                for (String s : list) {
+                    System.err.println("[ERROR]" + s);
+                }
+                throw new RuntimeException("Errors occurs during pojoization " + list);
+            }
+            
+            list = (List<String>) pojoizator.getWarnings();
+            if (list != null  && ! list.isEmpty()) {
+                for (String s : list) {
+                    System.err.println("[WARNING]" + s);
+                }
+            }
+            return m_file.toURL();
+        } catch (Exception e) {
+            List<String> list = (List<String>) pojoizator.getErrors();
+            if (list != null) {
+                for (String s : list) {
+                    System.err.println(s);
+                }
+            }
+            e.printStackTrace();
+            throw new RuntimeException(e.getMessage());
+        }
+        
+    }
+
+}

Added: felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/pax/exam/target/AppTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/pax/exam/target/AppTest.java?rev=767085&view=auto
==============================================================================
--- felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/pax/exam/target/AppTest.java (added)
+++ felix/sandbox/clement/BundleAsiPOJO/org.apache.felix.ipojo.pax.exam.target/src/test/java/org/apache/felix/ipojo/pax/exam/target/AppTest.java Tue Apr 21 09:25:51 2009
@@ -0,0 +1,38 @@
+package org.apache.felix.ipojo.pax.exam.target;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}