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 );
+ }
+}