You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/08/25 15:11:10 UTC
svn commit: r807604 - in
/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi:
OsgiAnnotationTypeConverterLoader.java OsgiPackageScanClassResolver.java
Author: ningjiang
Date: Tue Aug 25 13:11:10 2009
New Revision: 807604
URL: http://svn.apache.org/viewvc?rev=807604&view=rev
Log:
Applied patch with thanks to Martin
Modified:
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java
camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java
Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java?rev=807604&r1=807603&r2=807604&view=diff
==============================================================================
--- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java (original)
+++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiAnnotationTypeConverterLoader.java Tue Aug 25 13:11:10 2009
@@ -37,7 +37,7 @@
@Override
public void load(TypeConverterRegistry registry) throws Exception {
for (Activator.TypeConverterEntry entry : Activator.getTypeConverterEntries()) {
- OsgiPackageScanClassResolver resolver = new OsgiPackageScanClassResolver(entry.bundle.getBundleContext());
+ OsgiPackageScanClassResolver resolver = new OsgiPackageScanClassResolver(entry.bundle);
String[] packages = entry.converterPackages.toArray(new String[entry.converterPackages.size()]);
Set<Class> classes = resolver.findAnnotated(Converter.class, packages);
for (Class type : classes) {
Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java?rev=807604&r1=807603&r2=807604&view=diff
==============================================================================
--- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java (original)
+++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java Tue Aug 25 13:11:10 2009
@@ -33,6 +33,10 @@
public class OsgiPackageScanClassResolver extends DefaultPackageScanClassResolver {
private Bundle bundle;
+ public OsgiPackageScanClassResolver(Bundle bundle) {
+ this.bundle = bundle;
+ }
+
public OsgiPackageScanClassResolver(BundleContext context) {
bundle = context.getBundle();
}
@@ -130,7 +134,18 @@
static Set<String> getImplementationsInBundle(PackageScanFilter test, String packageName, ClassLoader loader, Method mth) {
try {
org.osgi.framework.Bundle bundle = (org.osgi.framework.Bundle) mth.invoke(loader);
- org.osgi.framework.Bundle[] bundles = bundle.getBundleContext().getBundles();
+ org.osgi.framework.Bundle[] bundles = null;
+
+ BundleContext bundleContext = bundle.getBundleContext();
+
+ if (bundleContext == null) {
+ // Bundle is not in STARTING|ACTIVE|STOPPING state
+ // (See OSGi 4.1 spec, section 4.3.17)
+ bundles = new org.osgi.framework.Bundle[] { bundle };
+ } else {
+ bundles = bundleContext.getBundles();
+ }
+
Set<String> urls = new HashSet<String>();
for (org.osgi.framework.Bundle bd : bundles) {
if (LOG.isTraceEnabled()) {