You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by ol...@apache.org on 2015/01/21 13:31:09 UTC
svn commit: r1653494 - in
/incubator/sirona/trunk/core/src/main/java/org/apache/sirona:
configuration/Configuration.java spi/DefaultSPI.java
util/SironaServiceLoader.java
Author: olamy
Date: Wed Jan 21 12:31:08 2015
New Revision: 1653494
URL: http://svn.apache.org/r1653494
Log:
add wrapper on the top of ServiceLoader for 1.5 compliance
Added:
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/util/SironaServiceLoader.java
- copied, changed from r1653493, incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java
Modified:
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/Configuration.java
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java
Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/Configuration.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/Configuration.java?rev=1653494&r1=1653493&r2=1653494&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/Configuration.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/Configuration.java Wed Jan 21 12:31:08 2015
@@ -16,12 +16,13 @@
*/
package org.apache.sirona.configuration;
+import org.apache.sirona.util.SironaServiceLoader;
+
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
-import java.util.ServiceLoader;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -47,7 +48,8 @@ public final class Configuration {
if (classLoader == null) { // ServiceLoader fallbacks to it normally but ensure it is portable
classLoader = ClassLoader.getSystemClassLoader();
}
- for (final ConfigurationProvider provider : ServiceLoader.load(ConfigurationProvider.class, classLoader)) {
+ for (final ConfigurationProvider provider : SironaServiceLoader.load( ConfigurationProvider.class, //
+ Configuration.class.getClassLoader() )) {
providers.add(provider);
}
Collections.sort(providers, Sorter.INSTANCE);
Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java?rev=1653494&r1=1653493&r2=1653494&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java Wed Jan 21 12:31:08 2015
@@ -16,11 +16,11 @@
*/
package org.apache.sirona.spi;
-import java.util.ServiceLoader;
+import org.apache.sirona.util.SironaServiceLoader;
public class DefaultSPI implements SPI {
@Override
public <T> Iterable<T> find(final Class<T> api, final ClassLoader loader) {
- return ServiceLoader.load(api, loader);
+ return SironaServiceLoader.load( api, loader );
}
}
Copied: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/util/SironaServiceLoader.java (from r1653493, incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java)
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/util/SironaServiceLoader.java?p2=incubator/sirona/trunk/core/src/main/java/org/apache/sirona/util/SironaServiceLoader.java&p1=incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java&r1=1653493&r2=1653494&rev=1653494&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/spi/DefaultSPI.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/util/SironaServiceLoader.java Wed Jan 21 12:31:08 2015
@@ -14,13 +14,37 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sirona.spi;
+package org.apache.sirona.util;
-import java.util.ServiceLoader;
+import java.util.Iterator;
+
+/**
+ * This class is a wrapper on the top of ServiceLoader (reverting on internal impl if 1.6 not available)
+ *
+ * @since 0.3
+ */
+public class SironaServiceLoader<S>
+ implements Iterable<S>
+{
+
+ private Class<S> service;
+
+ private ClassLoader loader;
+
+ private SironaServiceLoader( Class<S> service, ClassLoader loader )
+ {
+ this.service = service;
+ this.loader = loader;
+ }
+
+ public static <S> SironaServiceLoader<S> load( Class<S> service, ClassLoader loader )
+ {
+ return new SironaServiceLoader<S>( service, loader );
+ }
-public class DefaultSPI implements SPI {
@Override
- public <T> Iterable<T> find(final Class<T> api, final ClassLoader loader) {
- return ServiceLoader.load(api, loader);
+ public Iterator<S> iterator()
+ {
+ return java.util.ServiceLoader.load( this.service, this.loader ).iterator();
}
}