Do we need to always return a non null value in the addingBundle method ? It looks to me that if no related files found in the target bundle, it is better to return null to tell the tracker to ignore it. Thanks.
2011/5/25 <[email protected]>: > Author: gawor > Date: Wed May 25 05:25:34 2011 > New Revision: 1127388 > > URL: http://svn.apache.org/viewvc?rev=1127388&view=rev > Log: > GERONIMO-5938, GERONIMO-5976: Scan bundles for tag libs a little sooner to > prevent a potential race condition with WAB extender > > Modified: > > geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/Activator.java > > geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/TldRegistryImpl.java > > geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/Activator.java > > geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/ConfigBundleTrackerCustomizer.java > > Modified: > geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/Activator.java > URL: > http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/Activator.java?rev=1127388&r1=1127387&r2=1127388&view=diff > ============================================================================== > --- > geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/Activator.java > (original) > +++ > geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/Activator.java > Wed May 25 05:25:34 2011 > @@ -33,7 +33,7 @@ public class Activator implements Bundle > TldRegistryImpl tldRegistry = new TldRegistryImpl(context); > tldRegistryRegistration = > context.registerService(TldRegistry.class.getName(), tldRegistry, null); > > - tldBundleTracker = new BundleTracker(context, Bundle.ACTIVE, > tldRegistry); > + tldBundleTracker = new BundleTracker(context, Bundle.STARTING | > Bundle.ACTIVE, tldRegistry); > tldBundleTracker.open(); > } > > > Modified: > geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/TldRegistryImpl.java > URL: > http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/TldRegistryImpl.java?rev=1127388&r1=1127387&r2=1127388&view=diff > ============================================================================== > --- > geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/TldRegistryImpl.java > (original) > +++ > geronimo/server/trunk/plugins/jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/TldRegistryImpl.java > Wed May 25 05:25:34 2011 > @@ -109,22 +109,12 @@ public class TldRegistryImpl implements > @Override > public Object addingBundle(Bundle bundle, BundleEvent event) { > Collection<TldProvider.TldEntry> tlds = scanBundle(bundle); > - if (tlds.isEmpty()) { > - return null; > - } else { > - map.put(bundle, tlds); > - return bundle; > - } > + map.put(bundle, tlds); > + return bundle; > } > > @Override > public void modifiedBundle(Bundle bundle, BundleEvent event, Object > object) { > - Collection<TldProvider.TldEntry> tlds = scanBundle(bundle); > - if (tlds.isEmpty()) { > - map.remove(bundle); > - } else { > - map.put(bundle, tlds); > - } > } > > @Override > @@ -134,7 +124,7 @@ public class TldRegistryImpl implements > > private Collection<TldProvider.TldEntry> scanBundle(Bundle bundle) { > ServiceReference reference = > bundleContext.getServiceReference(PackageAdmin.class.getName()); > - PackageAdmin packageAdmin = (PackageAdmin) > bundle.getBundleContext().getService(reference); > + PackageAdmin packageAdmin = (PackageAdmin) > bundleContext.getService(reference); > try { > BundleResourceFinder resourceFinder = new > BundleResourceFinder(packageAdmin, bundle, "META-INF/", ".tld"); > TldResourceFinderCallback callback = new > TldResourceFinderCallback(); > > Modified: > geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/Activator.java > URL: > http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/Activator.java?rev=1127388&r1=1127387&r2=1127388&view=diff > ============================================================================== > --- > geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/Activator.java > (original) > +++ > geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/Activator.java > Wed May 25 05:25:34 2011 > @@ -62,7 +62,7 @@ public class Activator implements Bundle > // register this as a service > registryRegistration = > context.registerService(ConfigRegistry.class.getName(), registry, null); > > - bt = new BundleTracker(context, Bundle.ACTIVE, new > ConfigBundleTrackerCustomizer(this, context.getBundle(), registry)); > + bt = new BundleTracker(context, Bundle.STARTING | Bundle.ACTIVE, > new ConfigBundleTrackerCustomizer(this, context.getBundle(), registry)); > bt.open(); > } > > > Modified: > geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/ConfigBundleTrackerCustomizer.java > URL: > http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/ConfigBundleTrackerCustomizer.java?rev=1127388&r1=1127387&r2=1127388&view=diff > ============================================================================== > --- > geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/ConfigBundleTrackerCustomizer.java > (original) > +++ > geronimo/server/trunk/plugins/myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/ConfigBundleTrackerCustomizer.java > Wed May 25 05:25:34 2011 > @@ -55,7 +55,8 @@ public class ConfigBundleTrackerCustomiz > if (bundle.equals(registryBundle)) { > return null; > } > - return registry.addBundle(bundle) ? Boolean.TRUE : null; > + registry.addBundle(bundle); > + return bundle; > } > > @Override > @@ -64,7 +65,7 @@ public class ConfigBundleTrackerCustomiz > } > > @Override > - public void removedBundle(Bundle bundle, BundleEvent event, Object > object) { > + public void removedBundle(Bundle bundle, BundleEvent event, Object > object) { > // have the registry process this > registry.removeBundle(bundle, object); > } > > > -- Ivan
