You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by rm...@apache.org on 2013/09/11 15:43:08 UTC
svn commit: r1521832 - in /geronimo/specs/trunk/geronimo-jbatch_1.0_spec:
pom.xml src/main/java/javax/batch/runtime/BatchRuntime.java
Author: rmannibucau
Date: Wed Sep 11 13:43:08 2013
New Revision: 1521832
URL: http://svn.apache.org/r1521832
Log:
using ProviderLocator to find the JobOperator
Modified:
geronimo/specs/trunk/geronimo-jbatch_1.0_spec/pom.xml
geronimo/specs/trunk/geronimo-jbatch_1.0_spec/src/main/java/javax/batch/runtime/BatchRuntime.java
Modified: geronimo/specs/trunk/geronimo-jbatch_1.0_spec/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jbatch_1.0_spec/pom.xml?rev=1521832&r1=1521831&r2=1521832&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jbatch_1.0_spec/pom.xml (original)
+++ geronimo/specs/trunk/geronimo-jbatch_1.0_spec/pom.xml Wed Sep 11 13:43:08 2013
@@ -63,6 +63,12 @@
<version>1.0</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-osgi-locator</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
@@ -72,8 +78,13 @@
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
+ <Specification-Version>1.0</Specification-Version>
+ <Specification-Title>JSR-352 JBatch 1.0</Specification-Title>
<Export-Package>javax.batch*;version=1.0</Export-Package>
+ <Private-Package>org.apache.geronimo.osgi.locator</Private-Package>
+ <Bundle-Activator>org.apache.geronimo.osgi.locator.Activator</Bundle-Activator>
<Import-Package>
+ org.apache.geronimo.osgi.registry.api;resolution:=optional,
javax.inject;resolution:=optional,
javax.enterprise.util;resolution:=optional
</Import-Package>
Modified: geronimo/specs/trunk/geronimo-jbatch_1.0_spec/src/main/java/javax/batch/runtime/BatchRuntime.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jbatch_1.0_spec/src/main/java/javax/batch/runtime/BatchRuntime.java?rev=1521832&r1=1521831&r2=1521832&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jbatch_1.0_spec/src/main/java/javax/batch/runtime/BatchRuntime.java (original)
+++ geronimo/specs/trunk/geronimo-jbatch_1.0_spec/src/main/java/javax/batch/runtime/BatchRuntime.java Wed Sep 11 13:43:08 2013
@@ -18,9 +18,13 @@
*/
package javax.batch.runtime;
+import org.apache.geronimo.osgi.locator.ProviderLocator;
+
import javax.batch.operations.JobOperator;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.util.Iterator;
+import java.util.List;
import java.util.ServiceLoader;
public class BatchRuntime {
@@ -36,13 +40,21 @@ public class BatchRuntime {
}
private static JobOperator findJobOperator() {
- final ServiceLoader<JobOperator> loader = ServiceLoader.load(JobOperator.class);
- for (final JobOperator provider : loader) {
+ final Iterator<JobOperator> iterator = operators();
+ while (iterator.hasNext()) {
+ final JobOperator provider = iterator.next();
if (provider != null) {
- // Use first one
return provider;
}
}
return null;
}
+
+ private static Iterator<JobOperator> operators() {
+ try {
+ return ((List<JobOperator>) ProviderLocator.getService(JobOperator.class.getName(), JobOperator.class, Thread.currentThread().getContextClassLoader())).iterator();
+ } catch (final Throwable th) { // rarely case where potentially missing OSGi stuff
+ return ServiceLoader.load(JobOperator.class).iterator();
+ }
+ }
}