Fix issue FELIX-2132
Provides Service Controller (XSD, Annotation, API, Core and Tests)
Also update several tests to the new pax exam.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@915909 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/tests/handler/transaction/pom.xml b/ipojo/tests/handler/transaction/pom.xml
index 79a47cd..e3320cc 100644
--- a/ipojo/tests/handler/transaction/pom.xml
+++ b/ipojo/tests/handler/transaction/pom.xml
@@ -32,13 +32,19 @@
<artifactId>org.apache.felix.ipojo.handler.transaction</artifactId>
<version>${pom.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.ipojo.test.helpers</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
<!--
Pax Exam API:
-->
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam</artifactId>
- <version>1.1.0</version>
+ <version>1.2.0</version>
</dependency>
<!--
During runtime Pax Exam will discover the OSGi container to use by
@@ -50,7 +56,7 @@
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-container-default
</artifactId>
- <version>1.1.0</version>
+ <version>1.2.0</version>
</dependency>
<!--
If your test code is based on JUnit you will have to have the Junit
@@ -59,7 +65,7 @@
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit</artifactId>
- <version>1.1.0</version>
+ <version>1.2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
@@ -68,11 +74,11 @@
<type>jar</type>
<scope>test</scope>
</dependency>
-
+ <!-- Tinybundles -->
<dependency>
<groupId>org.ops4j.pax.swissbox</groupId>
<artifactId>pax-swissbox-tinybundles</artifactId>
- <version>1.0.0</version>
+ <version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
@@ -87,12 +93,12 @@
<dependency>
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-api</artifactId>
- <version>1.3.0</version>
+ <version>1.4</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-service</artifactId>
- <version>1.3.0</version>
+ <version>1.4</version>
</dependency>
</dependencies>
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/IPOJOHelper.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/IPOJOHelper.java
deleted file mode 100644
index 0fbe4d9..0000000
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/IPOJOHelper.java
+++ /dev/null
@@ -1,730 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.ipojo.transaction.test;
-
-import java.util.ArrayList;
-import java.util.Dictionary;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.felix.ipojo.ComponentInstance;
-import org.apache.felix.ipojo.Factory;
-import org.apache.felix.ipojo.Handler;
-import org.apache.felix.ipojo.HandlerFactory;
-import org.apache.felix.ipojo.ServiceContext;
-import org.apache.felix.ipojo.architecture.Architecture;
-import org.apache.felix.ipojo.metadata.Element;
-import org.apache.felix.ipojo.parser.ManifestMetadataParser;
-import org.apache.felix.ipojo.parser.ParseException;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.ManagedServiceFactory;
-
-/**
- * iPOJO Helper.
- * This helper helps getting {@link Factory}, and managing
- * {@link ComponentInstance}.
- * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
- */
-public class IPOJOHelper {
-
- /**
- * The bundle context.
- */
- private BundleContext m_context;
-
-
- /**
- * List of instances.
- */
- private List<ComponentInstance> m_instances;
-
- /**
- * Creates a IPOJOHelper.
- * @param tc the OSGi Test Case
- */
- public IPOJOHelper(BundleContext context) {
- m_context = context;
- m_instances = new ArrayList<ComponentInstance>();
- }
-
- /**
- * Disposes created instances.
- * @see org.apache.felix.ipojo.junit4osgi.Helper#dispose()
- */
- public void dispose() {
- for (int i = 0; i < m_instances.size(); i++) {
- ((ComponentInstance) m_instances.get(i)).dispose();
- }
- m_instances.clear();
- }
-
- /**
- * Gets a created instance from the instance name.
- * @param name the instance name.
- * @return the created {@link ComponentInstance} or <code>null</code>
- * if the instance was not created during the session.
- */
- public ComponentInstance getInstanceByName(String name) {
- for (int i = 0; i < m_instances.size(); i++) {
- if (((ComponentInstance) m_instances.get(i)).getInstanceName()
- .equals(name)) {
- return (ComponentInstance) m_instances.get(i);
- }
- }
- return null;
- }
-
- /**
- * Creates a new component instance with the given name (and empty
- * configuration), from the factory specified in the given bundle.
- *
- * @param bundle the bundle from which the component factory is defined.
- * @param factoryName the name of the component factory, defined in the
- * specified bundle.
- * @param instanceName the name of the component instance to create.
- * @return the newly created component instance.
- */
- public static ComponentInstance createComponentInstance(Bundle bundle,
- String factoryName, String instanceName) {
-
- // Create the instance configuration
- Properties configuration = new Properties();
- configuration.put("instance.name", instanceName);
-
- return createComponentInstance(bundle, factoryName, configuration);
- }
-
- /**
- * Creates a new component instance with the given configuration, from the
- * factory specified in the given bundle.
- *
- * @param bundle the bundle from which the component factory is defined.
- * @param factoryName the name of the component factory, defined in the
- * specified bundle.
- * @param configuration the configuration of the component instance to
- * create.
- * @return the newly created component instance.
- */
- public static ComponentInstance createComponentInstance(Bundle bundle,
- String factoryName, Dictionary configuration) {
-
- // Retrieve the component factory.
- Factory fact = getFactory(bundle, factoryName);
-
- if (fact == null) {
- // Factory not found...
- throw new IllegalArgumentException(
- "Cannot find the component factory (" + factoryName
- + ") in the specified bundle ("
- + bundle.getSymbolicName() + ").");
- }
-
- try {
- return fact.createComponentInstance(configuration);
- } catch (Exception e) {
- throw new IllegalArgumentException(
- "Cannot create the component instance with the given configuration:"
- + e.getMessage());
- }
- }
-
- /**
- * Creates a new component instance with the given name and configuration,
- * from the factory specified in the given bundle.
- *
- * @param bundle the bundle from which the component factory is defined.
- * @param factoryName the name of the component factory, defined in the
- * specified bundle.
- * @param instanceName the name of the component instance to create.
- * @param configuration the configuration of the instance to create.
- * @return the newly created component instance.
- */
- public static ComponentInstance createComponentInstance(Bundle bundle,
- String factoryName, String instanceName, Dictionary configuration) {
-
- // Add the instance name to the configuration
- configuration.put("instance.name", instanceName);
-
- return createComponentInstance(bundle, factoryName, configuration);
- }
-
- /**
- * Creates a new component instance with the given name (and an empty
- * configuration), from the factory specified in the given service context.
- *
- * @param serviceContext the service context in which the component factory
- * service is registered.
- * @param factoryName the name of the component factory, defined in the
- * specified service context.
- * @param instanceName the name of the component instance to create.
- * @return the newly created component instance.
- */
- public static ComponentInstance createComponentInstance(
- ServiceContext serviceContext, String factoryName,
- String instanceName) {
-
- // Create the instance configuration
- Properties configuration = new Properties();
- configuration.put("instance.name", instanceName);
-
- return createComponentInstance(serviceContext, factoryName,
- configuration);
- }
-
- /**
- * Creates a new component instance with the given name and configuration,
- * from the factory specified in the given service context.
- *
- * @param serviceContext the service context in which the component factory
- * service is registered.
- * @param factoryName the name of the component factory, defined in the
- * specified service context.
- * @param configuration the configuration of the instance to create.
- * @return the newly created component instance.
- */
- public static ComponentInstance createComponentInstance(
- ServiceContext serviceContext, String factoryName,
- Dictionary configuration) {
-
- // Retrieve the component factory.
- Factory fact = getFactory(serviceContext, factoryName);
-
- if (fact == null) {
- // Factory not found...
- throw new IllegalArgumentException(
- "Cannot find the component factory (" + factoryName
- + ") in the specified service context.");
- }
-
- try {
- return fact.createComponentInstance(configuration);
- } catch (Exception e) {
- throw new IllegalArgumentException(
- "Cannot create the component instance with the given configuration: "
- + e.getMessage());
- }
- }
-
- /**
- * Creates a new component instance with the given name and configuration,
- * from the factory specified in the given service context.
- *
- * @param serviceContext the service context in which the component factory
- * service is registered.
- * @param factoryName the name of the component factory, defined in the
- * specified service context.
- * @param instanceName the name of the component instance to create.
- * @param configuration the configuration of the instance to create.
- * @return the newly created component instance.
- */
- public static ComponentInstance createComponentInstance(
- ServiceContext serviceContext, String factoryName,
- String instanceName, Dictionary configuration) {
-
- // Add the instance name to the configuration
- configuration.put("instance.name", instanceName);
-
- return createComponentInstance(serviceContext, factoryName,
- configuration);
- }
-
- /**
- * Creates a new component instance with the given name (and empty
- * configuration), from the factory specified in the local bundle.
- *
- * @param factoryName the name of the component factory, defined in the
- * local bundle.
- * @param instanceName the name of the component instance to create.
- * @return the newly created component instance.
- */
- public ComponentInstance createComponentInstance(String factoryName,
- String instanceName) {
- ComponentInstance ci = createComponentInstance(m_context.getBundle(),
- factoryName, instanceName);
- m_instances.add(ci);
- return ci;
- }
-
- /**
- * Creates a new component instance with the given configuration, from the
- * factory specified in the local bundle.
- *
- * @param factoryName the name of the component factory, in the local
- * bundle.
- * @param configuration the configuration of the component instance to
- * create.
- * @return the newly created component instance.
- */
- public ComponentInstance createComponentInstance(String factoryName,
- Dictionary configuration) {
- ComponentInstance ci = createComponentInstance(m_context.getBundle(),
- factoryName, configuration);
- m_instances.add(ci);
- return ci;
- }
-
- /**
- * Creates a new component instance with no configuration, from the factory
- * specified in the local bundle.
- *
- * @param factoryName the name of the component factory, in the local
- * bundle.
- * @return the newly created component instance.
- */
- public ComponentInstance createComponentInstance(String factoryName) {
- ComponentInstance ci = createComponentInstance(m_context.getBundle(),
- factoryName, (Dictionary) null);
- m_instances.add(ci);
- return ci;
- }
-
- /**
- * Creates a new component instance with the given name and configuration,
- * from the factory specified in the given bundle.
- *
- * @param factoryName the name of the component factory, defined in the
- * specified bundle.
- * @param instanceName the name of the component instance to create.
- * @param configuration the configuration of the instance to create.
- * @return the newly created component instance.
- */
- public ComponentInstance createComponentInstance(String factoryName,
- String instanceName, Dictionary configuration) {
- ComponentInstance ci = createComponentInstance(m_context.getBundle(),
- factoryName, instanceName, configuration);
- m_instances.add(ci);
- return ci;
- }
-
- /**
- * Returns the component factory with the given name in the local bundle.
- *
- * @param factoryName the name of the factory to retrieve.
- * @return the component factory with the given name in the local bundle, or
- * {@code null} if not found.
- */
- public Factory getFactory(String factoryName) {
- return getFactory(m_context.getBundle(), factoryName);
- }
-
- /**
- * Returns the handler factory with the given name in the local bundle.
- *
- * @param factoryName the name of the handler factory to retrieve.
- * @return the handler factory with the given name in the local bundle, or
- * {@code null} if not found.
- */
- public HandlerFactory getHandlerFactory(String factoryName) {
- return getHandlerFactory(m_context.getBundle(), factoryName);
- }
-
- /**
- * Returns the metadata description of the component defined in this bundle.
- *
- * @param component the name of the locally defined component.
- * @return the metadata description of the component with the given name,
- * defined in this given bundle, or {@code null} if not found.
- */
- public Element getMetadata(String component) {
- return getMetadata(m_context.getBundle(), component);
- }
-
- /**
- * Returns the component factory with the given name in the given bundle.
- *
- * @param bundle the bundle from which the component factory is defined.
- * @param factoryName the name of the defined factory.
- * @return the component factory with the given name in the given bundle, or
- * {@code null} if not found.
- */
- public static Factory getFactory(Bundle bundle, String factoryName) {
- ServiceReference[] refs;
- try {
- // Retrieves the component factories services in the bundle.
- refs = bundle.getBundleContext().getServiceReferences(
- Factory.class.getName(),
- "(factory.name=" + factoryName + ")");
- if (refs != null) {
- return (Factory) bundle.getBundleContext().getService(refs[0]);
- }
-
- // Factory not found...
- return null;
-
- } catch (InvalidSyntaxException e) {
- throw new IllegalArgumentException(
- "Cannot get the component factory services: "
- + e.getMessage());
- }
- }
-
- /**
- * Returns the component factory with the given name, registered in the
- * given service context.
- *
- * @param serviceContext the service context in which the factory service is
- * defined.
- * @param factoryName the name of the factory.
- * @return the component factory with the given name, registered in the
- * given service context.
- */
- public static Factory getFactory(ServiceContext serviceContext,
- String factoryName) {
- ServiceReference[] refs;
- try {
- // Retrieves the component factories services in the service
- // context.
- refs = serviceContext.getServiceReferences(Factory.class.getName(),
- "(factory.name=" + factoryName + ")");
- if (refs != null) {
- return (Factory) serviceContext.getService(refs[0]);
- }
- return null;
-
- } catch (InvalidSyntaxException e) {
- System.err.println("Cannot get the factory " + factoryName + " : "
- + e.getMessage());
- return null;
- }
- }
-
- /**
- * Returns the handler factory with the given name in the given bundle.
- *
- * @param bundle the bundle from which the handler factory is defined.
- * @param factoryName the name of the handler factory to retrieve.
- * @return the handler factory with the given name in the given bundle, or
- * {@code null} if not found.
- */
- public static HandlerFactory getHandlerFactory(Bundle bundle,
- String factoryName) {
- ServiceReference[] refs;
- try {
- // Retrieves the handler factories services in the bundle.
- refs = bundle.getBundleContext().getServiceReferences(
- HandlerFactory.class.getName(),
- "(" + Handler.HANDLER_NAME_PROPERTY + "=" + factoryName
- + ")");
- if (refs != null) {
- return (HandlerFactory) bundle.getBundleContext().getService(
- refs[0]);
- }
-
- // Factory not found...
- return null;
- } catch (InvalidSyntaxException e) {
- throw new IllegalArgumentException(
- "Cannot get the handler factory services: "
- + e.getMessage());
- }
- }
-
- /**
- * Returns the metadata description of the component with the given name,
- * defined in the given bundle.
- *
- * @param bundle the bundle from which the component is defined.
- * @param component the name of the defined component.
- * @return the metadata description of the component with the given name,
- * defined in the given bundle, or {@code null} if not found.
- */
- public static Element getMetadata(Bundle bundle, String component) {
-
- // Retrieves the component description from the bundle's manifest.
- String elem = (String) bundle.getHeaders().get("iPOJO-Components");
- if (elem == null) {
- throw new IllegalArgumentException(
- "Cannot find iPOJO-Components descriptor in the specified bundle ("
- + bundle.getSymbolicName()
- + "). Not an iPOJO bundle.");
- }
-
- // Parses the retrieved description and find the component with the
- // given name.
- try {
- Element element = ManifestMetadataParser.parseHeaderMetadata(elem);
- Element[] childs = element.getElements("component");
- for (int i = 0; i < childs.length; i++) {
- String name = childs[i].getAttribute("name");
- String clazz = childs[i].getAttribute("classname");
- if (name != null && name.equalsIgnoreCase(component)) {
- return childs[i];
- }
- if (clazz.equalsIgnoreCase(component)) {
- return childs[i];
- }
- }
-
- // Component not found...
- return null;
-
- } catch (ParseException e) {
- throw new IllegalStateException(
- "Cannot parse the components from specified bundle ("
- + bundle.getSymbolicName() + "): " + e.getMessage());
- }
- }
-
- /**
- * Returns the service object of a service registered in the specified
- * service context, offering the specified interface and matching the given
- * filter.
- *
- * @param serviceContext the service context in which the service is
- * searched.
- * @param itf the interface provided by the searched service.
- * @param filter an additional filter (can be {@code null}).
- * @return the service object provided by the specified bundle, offering the
- * specified interface and matching the given filter.
- */
- public static Object getServiceObject(ServiceContext serviceContext,
- String itf, String filter) {
- ServiceReference ref = getServiceReference(serviceContext, itf, filter);
- if (ref != null) {
- return serviceContext.getService(ref);
- } else {
- return null;
- }
- }
-
- /**
- * Returns the service objects of the services registered in the specified
- * service context, offering the specified interface and matching the given
- * filter.
- *
- * @param serviceContext the service context in which services are searched.
- * @param itf the interface provided by the searched services.
- * @param filter an additional filter (can be {@code null}).
- * @return the service objects provided by the specified bundle, offering
- * the specified interface and matching the given filter.
- */
- public static Object[] getServiceObjects(ServiceContext serviceContext,
- String itf, String filter) {
- ServiceReference[] refs = getServiceReferences(serviceContext, itf,
- filter);
- if (refs != null) {
- Object[] list = new Object[refs.length];
- for (int i = 0; i < refs.length; i++) {
- list[i] = serviceContext.getService(refs[i]);
- }
- return list;
- } else {
- return new Object[0];
- }
- }
-
- /**
- * Returns the service reference of a service registered in the specified
- * service context, offering the specified interface and matching the given
- * filter.
- *
- * @param serviceContext the service context in which services are searched.
- * @param itf the interface provided by the searched service.
- * @param filter an additional filter (can be {@code null}).
- * @return a service reference registered in the specified service context,
- * offering the specified interface and matching the given filter.
- * If no service is found, {@code null} is returned.
- */
- public static ServiceReference getServiceReference(
- ServiceContext serviceContext, String itf, String filter) {
- ServiceReference[] refs = getServiceReferences(serviceContext, itf,
- filter);
- if (refs.length != 0) {
- return refs[0];
- } else {
- // No service found
- return null;
- }
- }
-
- /**
- * Returns the service reference of the service registered in the specified
- * service context, offering the specified interface and having the given
- * persistent ID.
- *
- * @param serviceContext the service context in which services are searched.
- * @param itf the interface provided by the searched service.
- * @param pid the persistent ID of the searched service.
- * @return a service registered in the specified service context, offering
- * the specified interface and having the given persistent ID.
- */
- public static ServiceReference getServiceReferenceByPID(
- ServiceContext serviceContext, String itf, String pid) {
- String filter = "(" + "service.pid" + "=" + pid + ")";
- ServiceReference[] refs = getServiceReferences(serviceContext, itf,
- filter);
- if (refs == null) {
- return null;
- } else if (refs.length == 1) {
- return refs[0];
- } else {
- throw new IllegalStateException(
- "A service lookup by PID returned several providers ("
- + refs.length + ")" + " for " + itf + " with pid="
- + pid);
- }
- }
-
- /**
- * Returns the service reference of all the services registered in the
- * specified service context, offering the specified interface and matching
- * the given filter.
- *
- * @param serviceContext the service context in which services are searched.
- * @param itf the interface provided by the searched services.
- * @param filter an additional filter (can be {@code null}).
- * @return all the service references registered in the specified service
- * context, offering the specified interface and matching the given
- * filter. If no service matches, an empty array is returned.
- */
- public static ServiceReference[] getServiceReferences(
- ServiceContext serviceContext, String itf, String filter) {
- ServiceReference[] refs = null;
- try {
- // Get all the service references
- refs = serviceContext.getServiceReferences(itf, filter);
- } catch (InvalidSyntaxException e) {
- throw new IllegalArgumentException(
- "Cannot get service references: " + e.getMessage());
- }
- if (refs == null) {
- return new ServiceReference[0];
- } else {
- return refs;
- }
- }
-
- /**
- * Returns the service reference of a service registered in the specified
- * service context, offering the specified interface and having the given
- * name.
- *
- * @param serviceContext the service context in which services are searched.
- * @param itf the interface provided by the searched service.
- * @param name the name of the searched service.
- * @return a service registered in the specified service context, offering
- * the specified interface and having the given name.
- */
- public static ServiceReference getServiceReferenceByName(
- ServiceContext serviceContext, String itf, String name) {
- String filter = null;
- if (itf.equals(Factory.class.getName())
- || itf.equals(ManagedServiceFactory.class.getName())) {
- filter = "(" + "factory.name" + "=" + name + ")";
- } else if (itf.equals(Architecture.class.getName())) {
- filter = "(" + "architecture.instance" + "=" + name + ")";
- } else {
- filter = "(" + "instance.name" + "=" + name + ")";
- }
- return getServiceReference(serviceContext, itf, filter);
- }
-
- /**
- * Checks the availability of a service inside the given service context.
- * @param sc the service context
- * @param itf the service interface to found
- * @return <code>true</code> if the service is available in the service
- * context, <code>false</code> otherwise.
- */
- public static boolean isServiceAvailable(ServiceContext sc, String itf) {
- ServiceReference ref = getServiceReference(sc, itf, null);
- return ref != null;
- }
-
- /**
- * Checks the availability of a service inside the given service context.
- * @param sc the service context
- * @param itf the service interface to found
- * @param name the service provider name
- * @return <code>true</code> if the service is available in the service
- * context, <code>false</code> otherwise.
- */
- public static boolean isServiceAvailableByName(ServiceContext sc,
- String itf, String name) {
- ServiceReference ref = getServiceReferenceByName(sc, itf, name);
- return ref != null;
- }
-
- /**
- * Checks the availability of a service inside the given service context.
- * @param sc the service context
- * @param itf the service interface to found
- * @param pid the pid of the service
- * @return <code>true</code> if the service is available in the service
- * context, <code>false</code> otherwise.
- */
- public static boolean isServiceAvailableByPID(ServiceContext sc,
- String itf, String pid) {
- ServiceReference ref = getServiceReferenceByPID(sc, itf, pid);
- return ref != null;
- }
-
- /**
- * Returns the service reference of a service provided by the specified
- * bundle, offering the specified interface and having the given name.
- *
- * @param bundle the bundle from which the service is searched.
- * @param itf the interface provided by the searched service.
- * @param name the name of the searched service.
- * @return a service provided by the specified bundle, offering the
- * specified interface and having the given name.
- */
- public static ServiceReference getServiceReferenceByName(Bundle bundle,
- String itf, String name) {
- String filter = null;
- if (itf.equals(Factory.class.getName())
- || itf.equals(ManagedServiceFactory.class.getName())) {
- filter = "(" + "factory.name" + "=" + name + ")";
- } else if (itf.equals(Architecture.class.getName())) {
- filter = "(" + "architecture.instance" + "=" + name + ")";
- } else {
- filter = "(" + "instance.name" + "=" + name + ")";
- }
- return OSGiHelper.getServiceReference(bundle, itf, filter);
- }
-
- /**
- * Returns the service reference of a service provided by the local bundle,
- * offering the specified interface and having the given name.
- *
- * @param itf the interface provided by the searched service.
- * @param name the name of the searched service.
- * @return a service provided by the specified bundle, offering the
- * specified interface and having the given name.
- */
- public ServiceReference getServiceReferenceByName(String itf, String name) {
- return getServiceReferenceByName(m_context.getBundle(), itf, name);
- }
-
- /**
- * Checks if the service is available.
- * @param itf the service interface
- * @param name the service provider name
- * @return <code>true</code> if the service is available, <code>false</code>
- * otherwise.
- */
- public boolean isServiceAvailableByName(String itf, String name) {
- ServiceReference ref = getServiceReferenceByName(itf, name);
- return ref != null;
- }
-
-}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/OSGiHelper.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/OSGiHelper.java
deleted file mode 100644
index 604ee18..0000000
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/OSGiHelper.java
+++ /dev/null
@@ -1,456 +0,0 @@
-package org.apache.felix.ipojo.transaction.test;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-import static org.junit.Assert.fail;
-
-
-public class OSGiHelper {
-
- /**
- * The bundle context.
- */
- private BundleContext context;
-
- /**
- * List of get references.
- */
- private List<ServiceReference> m_references = new ArrayList<ServiceReference>();
-
- public OSGiHelper(BundleContext context) {
- this.context = context;
- }
-
- public void dispose() {
- // Unget services
- for (int i = 0; i < m_references.size(); i++) {
- context.ungetService((ServiceReference) m_references.get(i));
- }
- m_references.clear();
- }
-
- /**
- * Gets the Bundle Context.
- * @return the bundle context.
- */
- public BundleContext getContext() {
- return context;
- }
-
- /**
- * Returns the service object of a service provided by the specified bundle,
- * offering the specified interface and matching the given filter.
- *
- * @param bundle the bundle from which the service is searched.
- * @param itf the interface provided by the searched service.
- * @param filter an additional filter (can be {@code null}).
- * @return the service object provided by the specified bundle, offering the
- * specified interface and matching the given filter.
- */
- public static Object getServiceObject(Bundle bundle, String itf,
- String filter) {
- ServiceReference ref = getServiceReference(bundle, itf, filter);
- if (ref != null) {
- return bundle.getBundleContext().getService(ref);
- } else {
- return null;
- }
- }
-
- /**
- * Returns the service objects of the services provided by the specified
- * bundle, offering the specified interface and matching the given filter.
- *
- * @param bundle the bundle from which services are searched.
- * @param itf the interface provided by the searched services.
- * @param filter an additional filter (can be {@code null}).
- * @return the service objects provided by the specified bundle, offering
- * the specified interface and matching the given filter.
- */
- public static Object[] getServiceObjects(Bundle bundle, String itf,
- String filter) {
- ServiceReference[] refs = getServiceReferences(bundle, itf, filter);
- if (refs != null) {
- Object[] list = new Object[refs.length];
- for (int i = 0; i < refs.length; i++) {
- list[i] = bundle.getBundleContext().getService(refs[i]);
- }
- return list;
- } else {
- return new Object[0];
- }
- }
-
- /**
- * Returns the service reference of a service provided by the specified
- * bundle, offering the specified interface and matching the given filter.
- *
- * @param bundle the bundle from which the service is searched.
- * @param itf the interface provided by the searched service.
- * @param filter an additional filter (can be {@code null}).
- * @return a service reference provided by the specified bundle, offering
- * the specified interface and matching the given filter. If no
- * service is found, {@code null} is returned.
- */
- public static ServiceReference getServiceReference(Bundle bundle,
- String itf, String filter) {
- ServiceReference[] refs = getServiceReferences(bundle, itf, filter);
- if (refs.length != 0) {
- return refs[0];
- } else {
- // No service found
- return null;
- }
- }
-
- /**
- * Checks if the service is available.
- * @param itf the service interface
- * @return <code>true</code> if the service is available, <code>false</code>
- * otherwise.
- */
- public boolean isServiceAvailable(String itf) {
- ServiceReference ref = getServiceReference(itf, null);
- return ref != null;
- }
-
- /**
- * Checks if the service is available.
- * @param itf the service interface
- * @param pid the service pid
- * @return <code>true</code> if the service is available, <code>false</code>
- * otherwise.
- */
- public boolean isServiceAvailableByPID(String itf, String pid) {
- ServiceReference ref = getServiceReferenceByPID(itf, pid);
- return ref != null;
- }
-
- /**
- * Returns the service reference of the service provided by the specified
- * bundle, offering the specified interface and having the given persistent
- * ID.
- *
- * @param bundle the bundle from which the service is searched.
- * @param itf the interface provided by the searched service.
- * @param pid the persistent ID of the searched service.
- * @return a service provided by the specified bundle, offering the
- * specified interface and having the given persistent ID.
- */
- public static ServiceReference getServiceReferenceByPID(Bundle bundle,
- String itf, String pid) {
- String filter = "(" + "service.pid" + "=" + pid + ")";
- ServiceReference[] refs = getServiceReferences(bundle, itf, filter);
- if (refs == null) {
- return null;
- } else if (refs.length == 1) {
- return refs[0];
- } else {
- throw new IllegalStateException(
- "A service lookup by PID returned several providers ("
- + refs.length + ")" + " for " + itf + " with pid="
- + pid);
- }
- }
-
- /**
- * Returns the service reference of all the services provided in the
- * specified bundle, offering the specified interface and matching the given
- * filter.
- *
- * @param bundle the bundle from which services are searched.
- * @param itf the interface provided by the searched services.
- * @param filter an additional filter (can be {@code null}).
- * @return all the service references provided in the specified bundle,
- * offering the specified interface and matching the given filter.
- * If no service matches, an empty array is returned.
- */
- public static ServiceReference[] getServiceReferences(Bundle bundle,
- String itf, String filter) {
- ServiceReference[] refs = null;
- try {
- // Get all the service references
- refs = bundle.getBundleContext().getServiceReferences(itf, filter);
- } catch (InvalidSyntaxException e) {
- throw new IllegalArgumentException(
- "Cannot get service references: " + e.getMessage());
- }
- if (refs == null) {
- return new ServiceReference[0];
- } else {
- return refs;
- }
- }
-
- /**
- * Returns the service object of a service provided by the local bundle,
- * offering the specified interface and matching the given filter.
- *
- * @param itf the interface provided by the searched service.
- * @param filter an additional filter (can be {@code null}).
- * @return the service object provided by the local bundle, offering the
- * specified interface and matching the given filter.
- */
- public Object getServiceObject(String itf, String filter) {
- ServiceReference ref = getServiceReference(itf, filter);
- if (ref != null) {
- m_references.add(ref);
- return context.getService(ref);
- } else {
- return null;
- }
- }
-
- /**
- * Returns the service object associated with this service reference.
- *
- * @param ref service reference
- * @return the service object.
- */
- public Object getServiceObject(ServiceReference ref) {
- if (ref != null) {
- m_references.add(ref);
- return context.getService(ref);
- } else {
- return null;
- }
- }
-
- /**
- * Returns the service objects of the services provided by the local bundle,
- * offering the specified interface and matching the given filter.
- *
- * @param itf the interface provided by the searched services.
- * @param filter an additional filter (can be {@code null}).
- * @return the service objects provided by the local bundle, offering the
- * specified interface and matching the given filter.
- */
- public Object[] getServiceObjects(String itf, String filter) {
- ServiceReference[] refs = getServiceReferences(itf, filter);
- if (refs != null) {
- Object[] list = new Object[refs.length];
- for (int i = 0; i < refs.length; i++) {
- m_references.add(refs[i]);
- list[i] = context.getService(refs[i]);
- }
- return list;
- } else {
- return new Object[0];
- }
- }
-
- /**
- * Returns the service reference of a service provided by the local bundle,
- * offering the specified interface and matching the given filter.
- *
- * @param itf the interface provided by the searched service.
- * @param filter an additional filter (can be {@code null}).
- * @return a service reference provided by the local bundle, offering the
- * specified interface and matching the given filter. If no service
- * is found, {@code null} is returned.
- */
- public ServiceReference getServiceReference(String itf, String filter) {
- return getServiceReference(context.getBundle(), itf, filter);
- }
-
- /**
- * Returns the service reference of a service provided offering the
- * specified interface.
- *
- * @param itf the interface provided by the searched service.
- * @return a service reference provided by the local bundle, offering the
- * specified interface and matching the given filter. If no service
- * is found, {@code null} is returned.
- */
- public ServiceReference getServiceReference(String itf) {
- return getServiceReference(context.getBundle(), itf, null);
- }
-
- /**
- * Returns the service reference of the service provided by the local
- * bundle, offering the specified interface and having the given persistent
- * ID.
- *
- * @param itf the interface provided by the searched service.
- * @param pid the persistent ID of the searched service.
- * @return a service provided by the local bundle, offering the specified
- * interface and having the given persistent ID.
- */
- public ServiceReference getServiceReferenceByPID(String itf, String pid) {
- return getServiceReferenceByPID(context.getBundle(), itf, pid);
- }
-
- /**
- * Returns the service reference of all the services provided in the local
- * bundle, offering the specified interface and matching the given filter.
- *
- * @param itf the interface provided by the searched services.
- * @param filter an additional filter (can be {@code null}).
- * @return all the service references provided in the local bundle, offering
- * the specified interface and matching the given filter. If no
- * service matches, an empty array is returned.
- */
- public ServiceReference[] getServiceReferences(String itf, String filter) {
- return getServiceReferences(context.getBundle(), itf, filter);
- }
-
- /**
- * Gets the package admin exposed by the framework.
- * Fails if the package admin is not available.
- * @return the package admin service.
- */
- public PackageAdmin getPackageAdmin() {
- PackageAdmin pa = (PackageAdmin) getServiceObject(PackageAdmin.class.getName(), null);
- if (pa == null) {
- fail("No package admin available");
- }
- return pa;
- }
-
- /**
- * Refresh the packages.
- * Fails if the package admin service is not available.
- */
- public void refresh() {
- getPackageAdmin().refreshPackages(null);
- }
-
- /**
- * Waits for a service. Fails on timeout.
- * If timeout is set to 0, it sets the timeout to 10s.
- * @param itf the service interface
- * @param filter the filter
- * @param timeout the timeout
- */
- public void waitForService(String itf, String filter, long timeout) {
- if (timeout == 0) {
- timeout = 10000; // Default 10 secondes.
- }
- ServiceReference[] refs = getServiceReferences(itf, filter);
- long begin = System.currentTimeMillis();
- if (refs.length != 0) {
- return;
- } else {
- while(refs.length == 0) {
- try {
- Thread.sleep(5);
- } catch (InterruptedException e) {
- // Interrupted
- }
- long now = System.currentTimeMillis();
-
- if ((now - begin) > timeout) {
- fail("Timeout ... no services matching with the request after " + timeout + "ms");
- }
- refs = getServiceReferences(itf, filter);
- }
- }
- }
-
-
- /**
- * Installs a bundle.
- * Fails if the bundle cannot be installed.
- * Be aware that you have to uninstall the bundle yourself.
- * @param url bundle url
- * @return the installed bundle
- */
- public Bundle installBundle(String url) {
- try {
- return context.installBundle(url);
- } catch (BundleException e) {
- fail("Cannot install the bundle " + url + " : " + e.getMessage());
- }
- return null; // Can not happen
- }
-
- /**
- * Installs a bundle.
- * Fails if the bundle cannot be installed.
- * Be aware that you have to uninstall the bundle yourself.
- * @param url bundle url
- * @param stream input stream containing the bundle
- * @return the installed bundle
- */
- public Bundle installBundle(String url, InputStream stream) {
- try {
- return context.installBundle(url, stream);
- } catch (BundleException e) {
- fail("Cannot install the bundle " + url + " : " + e.getMessage());
- }
- return null; // Can not happen
- }
-
- /**
- * Installs and starts a bundle.
- * Fails if the bundle cannot be installed or an error occurs
- * during startup. Be aware that you have to uninstall the bundle
- * yourself.
- * @param url the bundle url
- * @return the Bundle object.
- */
- public Bundle installAndStart(String url) {
- Bundle bundle = installBundle(url);
- try {
- bundle.start();
- } catch (BundleException e) {
- fail("Cannot start the bundle " + url + " : " + e.getMessage());
- }
- return bundle;
- }
-
- /**
- * Installs and starts a bundle.
- * Fails if the bundle cannot be installed or an error occurs
- * during startup. Be aware that you have to uninstall the bundle
- * yourself.
- * @param url the bundle url
- * @param stream input stream containing the bundle
- * @return the Bundle object.
- */
- public Bundle installAndStart(String url, InputStream stream) {
- Bundle bundle = installBundle(url, stream);
- try {
- bundle.start();
- } catch (BundleException e) {
- fail("Cannot start the bundle " + url + " : " + e.getMessage());
- }
- return bundle;
- }
-
- /**
- * Get the bundle by its id.
- * @param bundleId the bundle id.
- * @return the bundle with the given id.
- */
- public Bundle getBundle(long bundleId) {
- return context.getBundle(bundleId);
- }
-
- /**
- * Gets a bundle by its symbolic name.
- * Fails if no bundle matches.
- * @param name the symbolic name of the bundle
- * @return the bundle object.
- */
- public Bundle getBundle(String name) {
- Bundle[] bundles = context.getBundles();
- for (int i = 0; i < bundles.length; i++) {
- if (name.equals(bundles[i].getSymbolicName())) {
- return bundles[i];
- }
- }
- fail("No bundles with the given symbolic name " + name);
- return null; // should not happen
- }
-
-}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestAnnotations.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestAnnotations.java
index a7a9658..f46f7f4 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestAnnotations.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestAnnotations.java
@@ -1,16 +1,16 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import org.apache.felix.ipojo.metadata.Element;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.ComponentUsingAnnotations;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -60,33 +60,24 @@
public static Option[] configure() {
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( TinyBundles.asURL());
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( TinyBundles.withBnd());
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
- String test = TinyBundles.newBundle()
- .addClass(ComponentUsingAnnotations.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Transaction Annotation Test")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "annotations.jar"), new File(TEST, "annotation.xml")) ).toExternalForm();
+ InputStream test = TinyBundles.newBundle()
+ .add(ComponentUsingAnnotations.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"TransactionAnnotationTest")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "annotations.jar"), new File(TEST, "annotation.xml")) );
Option[] opt = options(
@@ -96,17 +87,14 @@
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
- )
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
-
- ;
+ );
return opt;
}
@@ -154,7 +142,8 @@
private Bundle getBundle() {
for(Bundle b : context.getBundles()) {
- if ("Transaction Annotation Test".equals(b.getSymbolicName())) {
+ System.out.println(b.getSymbolicName());
+ if ("TransactionAnnotationTest".equals(b.getSymbolicName())) {
return b;
}
}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestInstallation.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestInstallation.java
index b957c7c..4f0b92a 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestInstallation.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestInstallation.java
@@ -1,14 +1,12 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -19,6 +17,8 @@
import org.apache.felix.ipojo.ComponentInstance;
import org.apache.felix.ipojo.HandlerFactory;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.FooDelegator;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -29,6 +29,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
@@ -37,6 +38,7 @@
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
+import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
@RunWith( JUnit4TestRunner.class )
@@ -69,58 +71,61 @@
public static Option[] configure() {
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( TinyBundles.asURL());
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+
+// try {
+// StreamUtils.copy(service, new FileOutputStream(new File(ROOT, "service.jar")));
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
- String test = TinyBundles.newBundle()
- .addClass(FooDelegator.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Required Transaction Propgatation")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "requires.jar"), new File(TEST, "requires.xml")) ).toExternalForm();
+ InputStream test = TinyBundles.newBundle()
+ .add(FooDelegator.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"RequiredTransactionPropagation")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "requires.jar"), new File(TEST, "requires.xml")) );
Option[] opt = options(
-
provision(
mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
- )
-
- ;
+ ,
+ new Customizer() {
+ @Override
+ public InputStream customizeTestProbe( InputStream testProbe )
+ {
+ return TinyBundles.modifyBundle(testProbe)
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+ }
+ });
+
return opt;
}
@Test
- public void install() throws NotSupportedException, SystemException, IllegalStateException, SecurityException, HeuristicMixedException, HeuristicRollbackException, RollbackException {
+ public void install() throws NotSupportedException, SystemException, IllegalStateException, SecurityException, HeuristicMixedException, HeuristicRollbackException, RollbackException, InvalidSyntaxException {
Bundle[] bundles = context.getBundles();
for (Bundle b : bundles) {
Assert.assertTrue(b.getSymbolicName(), b.getState() == Bundle.ACTIVE);
@@ -148,10 +153,12 @@
Assert.assertEquals(ComponentInstance.VALID, prov.getState());
Assert.assertEquals(ComponentInstance.VALID, under.getState());
- ref = ipojo.getServiceReferenceByName(CheckService.class.getName(), under.getInstanceName());
- Assert.assertNotNull(ref);
+ ServiceReference[] refs = context.getAllServiceReferences(CheckService.class.getName(), "(instance.name=" + under.getInstanceName() +")");
+
+// ref = ipojo.getServiceReferenceByName(CheckService.class.getName(), under.getInstanceName());
+ Assert.assertNotNull(refs);
- ((CheckService) osgi.getServiceObject(ref)).doSomethingGood();
+ ((CheckService) osgi.getServiceObject(refs[0])).doSomethingGood();
}
}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestInvalidation.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestInvalidation.java
index 548df24..e6c4a69 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestInvalidation.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestInvalidation.java
@@ -1,14 +1,12 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -20,6 +18,8 @@
import javax.transaction.TransactionManager;
import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.FooDelegator;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -30,6 +30,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
@@ -70,54 +71,49 @@
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- .set(Constants.IMPORT_PACKAGE, "javax.transaction")
- )
- .build( TinyBundles.asURL());
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
- String test = TinyBundles.newBundle()
- .addClass(FooDelegator.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Required Transaction Propgatation")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "requires.jar"), new File(TEST, "requires.xml")) ).toExternalForm();
+ InputStream test = TinyBundles.newBundle()
+ .add(FooDelegator.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"RequiredTransactionPropagation")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "requires.jar"), new File(TEST, "requires.xml")) );
Option[] opt = options(
-
provision(
mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
- )
-
- ;
+ ,
+ new Customizer() {
+ @Override
+ public InputStream customizeTestProbe( InputStream testProbe )
+ {
+ return TinyBundles.modifyBundle(testProbe)
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+ }
+ });
return opt;
}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestMandatory.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestMandatory.java
index 03d2e43..69c43e3 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestMandatory.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestMandatory.java
@@ -1,14 +1,12 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -20,6 +18,8 @@
import javax.transaction.TransactionManager;
import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.FooDelegator;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -30,6 +30,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
@@ -69,54 +70,50 @@
public static Option[] configure() {
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- .set(Constants.IMPORT_PACKAGE, "javax.transaction")
- )
- .build( TinyBundles.asURL());
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
-
- String test = TinyBundles.newBundle()
- .addClass(FooDelegator.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Mandatory Transaction Propgatation")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "mandatory.jar"), new File(TEST, "mandatory.xml")) ).toExternalForm();
-
-
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
+
+ InputStream test = TinyBundles.newBundle()
+ .add(FooDelegator.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"MandatoryTransactionPropagation")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "mandatory.jar"), new File(TEST, "mandatory.xml")) );
+
+
Option[] opt = options(
-
provision(
mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
- )
-
- ;
+ ,
+ new Customizer() {
+ @Override
+ public InputStream customizeTestProbe( InputStream testProbe )
+ {
+ return TinyBundles.modifyBundle(testProbe)
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+ }
+ });
+
return opt;
}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestNever.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestNever.java
index 609f9f5..ac63000 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestNever.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestNever.java
@@ -1,14 +1,12 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -20,6 +18,8 @@
import javax.transaction.TransactionManager;
import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.FooDelegator;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -30,6 +30,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
@@ -68,54 +69,49 @@
public static Option[] configure() {
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- .set(Constants.IMPORT_PACKAGE, "javax.transaction")
- )
- .build( TinyBundles.asURL());
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT,"FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
-
- String test = TinyBundles.newBundle()
- .addClass(FooDelegator.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Mandatory Transaction Propgatation")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "never.jar"), new File(TEST, "never.xml")) ).toExternalForm();
-
-
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
+
+ InputStream test = TinyBundles.newBundle()
+ .add(FooDelegator.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"NeverTransactionPropagation")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "never.jar"), new File(TEST, "never.xml")) );
+
Option[] opt = options(
-
provision(
mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
- )
-
- ;
+ ,
+ new Customizer() {
+ @Override
+ public InputStream customizeTestProbe( InputStream testProbe )
+ {
+ return TinyBundles.modifyBundle(testProbe)
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+ }
+ });
+
return opt;
}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestNotSupported.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestNotSupported.java
index bd07984..ad5d311 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestNotSupported.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestNotSupported.java
@@ -1,14 +1,12 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -20,6 +18,8 @@
import javax.transaction.TransactionManager;
import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.FooDelegator;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -30,6 +30,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
@@ -68,54 +69,49 @@
public static Option[] configure() {
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- .set(Constants.IMPORT_PACKAGE, "javax.transaction")
- )
- .build( TinyBundles.asURL());
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
-
- String test = TinyBundles.newBundle()
- .addClass(FooDelegator.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Required Transaction Propgatation")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "notsupported.jar"), new File(TEST, "notsupported.xml")) ).toExternalForm();
-
-
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
+
+ InputStream test = TinyBundles.newBundle()
+ .add(FooDelegator.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"NotSupportedTransactionPropagation")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "notsupported.jar"), new File(TEST, "notsupported.xml")) );
+
Option[] opt = options(
-
provision(
mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
- )
-
- ;
+ ,
+ new Customizer() {
+ @Override
+ public InputStream customizeTestProbe( InputStream testProbe )
+ {
+ return TinyBundles.modifyBundle(testProbe)
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+ }
+ });
+
return opt;
}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestRequires.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestRequires.java
index 5dfd591..4299d2d 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestRequires.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestRequires.java
@@ -1,14 +1,12 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -20,6 +18,8 @@
import javax.transaction.TransactionManager;
import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.FooDelegator;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -30,6 +30,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
@@ -69,54 +70,49 @@
public static Option[] configure() {
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- .set(Constants.IMPORT_PACKAGE, "javax.transaction")
- )
- .build( TinyBundles.asURL());
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
-
- String test = TinyBundles.newBundle()
- .addClass(FooDelegator.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Required Transaction Propgatation")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "requires.jar"), new File(TEST, "requires.xml")) ).toExternalForm();
-
-
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
+
+ InputStream test = TinyBundles.newBundle()
+ .add(FooDelegator.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"RequiresTransactionPropagation")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "requires.jar"), new File(TEST, "requires.xml")) );
+
Option[] opt = options(
-
provision(
mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
- )
-
- ;
+ ,
+ new Customizer() {
+ @Override
+ public InputStream customizeTestProbe( InputStream testProbe )
+ {
+ return TinyBundles.modifyBundle(testProbe)
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+ }
+ });
+
return opt;
}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestRequiresNew.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestRequiresNew.java
index b7a231b..c033233 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestRequiresNew.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestRequiresNew.java
@@ -1,14 +1,12 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -20,6 +18,8 @@
import javax.transaction.TransactionManager;
import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.FooDelegator;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -30,6 +30,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
@@ -69,54 +70,51 @@
public static Option[] configure() {
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- .set(Constants.IMPORT_PACKAGE, "javax.transaction")
- )
- .build( TinyBundles.asURL());
+
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
-
- String test = TinyBundles.newBundle()
- .addClass(FooDelegator.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Required Transaction Propgatation")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "requiresnew.jar"), new File(TEST, "requiresnew.xml")) ).toExternalForm();
-
-
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
+
+ InputStream test = TinyBundles.newBundle()
+ .add(FooDelegator.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"RequiresNewTransactionPropagation")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "requiresnew.jar"), new File(TEST, "requiresnew.xml")) );
+
Option[] opt = options(
-
provision(
mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
- )
-
- ;
+ ,
+ new Customizer() {
+ @Override
+ public InputStream customizeTestProbe( InputStream testProbe )
+ {
+ return TinyBundles.modifyBundle(testProbe)
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+ }
+ });
+
+
return opt;
}
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestSupported.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestSupported.java
index b2eea67..5fb7016 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestSupported.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/TestSupported.java
@@ -1,14 +1,12 @@
package org.apache.felix.ipojo.transaction.test;
-import static org.ops4j.pax.exam.CoreOptions.bundle;
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.exam.MavenUtils.asInProject;
-import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.with;
import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -20,6 +18,8 @@
import javax.transaction.TransactionManager;
import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.test.helpers.IPOJOHelper;
+import org.apache.felix.ipojo.test.helpers.OSGiHelper;
import org.apache.felix.ipojo.tinybundles.BundleAsiPOJO;
import org.apache.felix.ipojo.transaction.test.component.FooDelegator;
import org.apache.felix.ipojo.transaction.test.component.FooImpl;
@@ -30,6 +30,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
@@ -68,54 +69,50 @@
public static Option[] configure() {
ROOT.mkdirs();
- URL service = TinyBundles.newBundle()
- .addClass(CheckService.class)
- .addClass(Foo.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
- .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- .set(Constants.IMPORT_PACKAGE, "javax.transaction")
- )
- .build( TinyBundles.asURL());
+ InputStream service = TinyBundles.newBundle()
+ .add(CheckService.class)
+ .add(Foo.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Service")
+ .set(Constants.EXPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
- String fooimpl = TinyBundles.newBundle()
- .addClass(FooImpl.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) ).toExternalForm();
-
- String test = TinyBundles.newBundle()
- .addClass(FooDelegator.class)
- .prepare(
- with()
- .set(Constants.BUNDLE_SYMBOLICNAME,"Required Transaction Propgatation")
- .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
- )
- .build( new BundleAsiPOJO(new File(ROOT, "supported.jar"), new File(TEST, "supported.xml")) ).toExternalForm();
-
-
+ InputStream fooimpl = TinyBundles.newBundle()
+ .add(FooImpl.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"Foo Provider")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "FooImpl.jar"), new File(TEST, "foo.xml")) );
+
+ InputStream test = TinyBundles.newBundle()
+ .add(FooDelegator.class)
+ .set(Constants.BUNDLE_SYMBOLICNAME,"SupportedTransactionPropagation")
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service, javax.transaction")
+ .build( BundleAsiPOJO.asiPOJOBundle(new File(ROOT, "supported.jar"), new File(TEST, "supported.xml")) );
+
Option[] opt = options(
-
provision(
mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.handler.transaction").version(asInProject()),
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.transaction").version(asInProject()),
- mavenBundle()
- .groupId( "org.ops4j.pax.swissbox" )
- .artifactId( "pax-swissbox-tinybundles" )
- .version(asInProject()),
- bundle(service.toExternalForm()),
- bundle(fooimpl),
- bundle(test)
+ mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.ipojo.test.helpers").version(asInProject())
+ ),
+ provision(
+ service,
+ fooimpl,
+ test
)
- )
-
- ;
+ ,
+ new Customizer() {
+ @Override
+ public InputStream customizeTestProbe( InputStream testProbe )
+ {
+ return TinyBundles.modifyBundle(testProbe)
+ .set(Constants.IMPORT_PACKAGE, "org.apache.felix.ipojo.transaction.test.service")
+ .build();
+ }
+ });
+
+
return opt;
}