Author: iocanel
Date: Mon Oct 29 12:58:44 2012
New Revision: 1403276
URL: http://svn.apache.org/viewvc?rev=1403276&view=rev
Log:
[CAMEL-5756] OSGi resolvers for component, dataformat and language, now check
if service is assignable
Modified:
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiComponentResolver.java
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiLanguageResolver.java
Modified:
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiComponentResolver.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiComponentResolver.java?rev=1403276&r1=1403275&r2=1403276&view=diff
==============================================================================
---
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiComponentResolver.java
(original)
+++
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiComponentResolver.java
Mon Oct 29 12:58:44 2012
@@ -68,9 +68,14 @@ public class OsgiComponentResolver imple
LOG.trace("Finding Component: {}", name);
try {
ServiceReference[] refs =
bundleContext.getServiceReferences(ComponentResolver.class.getName(),
"(component=" + name + ")");
- if (refs != null && refs.length > 0) {
- ComponentResolver resolver = (ComponentResolver)
bundleContext.getService(refs[0]);
- return resolver.resolveComponent(name, context);
+ if (refs != null) {
+ for (ServiceReference ref : refs) {
+ Object service = bundleContext.getService(ref);
+ if
(ComponentResolver.class.isAssignableFrom(service.getClass())) {
+ ComponentResolver resolver = (ComponentResolver)
service;
+ return resolver.resolveComponent(name, context);
+ }
+ }
}
return null;
} catch (InvalidSyntaxException e) {
Modified:
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java?rev=1403276&r1=1403275&r2=1403276&view=diff
==============================================================================
---
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
(original)
+++
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
Mon Oct 29 12:58:44 2012
@@ -58,9 +58,14 @@ public class OsgiDataFormatResolver impl
LOG.trace("Finding DataFormat: {}", name);
try {
ServiceReference[] refs =
bundleContext.getServiceReferences(DataFormatResolver.class.getName(),
"(dataformat=" + name + ")");
- if (refs != null && refs.length > 0) {
- DataFormatResolver resolver = (DataFormatResolver)
bundleContext.getService(refs[0]);
- return resolver.resolveDataFormat(name, context);
+ if (refs != null) {
+ for (ServiceReference ref : refs) {
+ Object service = bundleContext.getService(ref);
+ if
(DataFormatResolver.class.isAssignableFrom(service.getClass())) {
+ DataFormatResolver resolver = (DataFormatResolver)
service;
+ return resolver.resolveDataFormat(name, context);
+ }
+ }
}
return null;
} catch (InvalidSyntaxException e) {
Modified:
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiLanguageResolver.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiLanguageResolver.java?rev=1403276&r1=1403275&r2=1403276&view=diff
==============================================================================
---
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiLanguageResolver.java
(original)
+++
camel/branches/camel-2.9.x/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiLanguageResolver.java
Mon Oct 29 12:58:44 2012
@@ -67,10 +67,16 @@ public class OsgiLanguageResolver implem
LOG.trace("Finding Language: {}", name);
try {
ServiceReference[] refs =
bundleContext.getServiceReferences(LanguageResolver.class.getName(),
"(language=" + name + ")");
- if (refs != null && refs.length > 0) {
- LanguageResolver resolver = (LanguageResolver)
bundleContext.getService(refs[0]);
- return resolver.resolveLanguage(name, context);
+ if (refs != null) {
+ for (ServiceReference ref : refs) {
+ Object service = bundleContext.getService(ref);
+ if
(LanguageResolver.class.isAssignableFrom(service.getClass())) {
+ LanguageResolver resolver = (LanguageResolver) service;
+ return resolver.resolveLanguage(name, context);
+ }
+ }
}
+
return null;
} catch (InvalidSyntaxException e) {
throw ObjectHelper.wrapRuntimeCamelException(e);
@@ -81,9 +87,14 @@ public class OsgiLanguageResolver implem
LOG.trace("Finding LanguageResolver: {}", name);
try {
ServiceReference[] refs =
bundleContext.getServiceReferences(LanguageResolver.class.getName(),
"(resolver=" + name + ")");
- if (refs != null && refs.length > 0) {
- LanguageResolver resolver = (LanguageResolver)
bundleContext.getService(refs[0]);
- return resolver;
+ if (refs != null) {
+ for (ServiceReference ref : refs) {
+ Object service = bundleContext.getService(ref);
+ if
(service.getClass().isAssignableFrom(LanguageResolver.class)) {
+ LanguageResolver resolver = (LanguageResolver) service;
+ return resolver;
+ }
+ }
}
return null;
} catch (InvalidSyntaxException e) {