You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2011/05/25 07:25:35 UTC

svn commit: r1127388 - in /geronimo/server/trunk/plugins: jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/ myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/

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);
     }



Re: svn commit: r1127388 - in /geronimo/server/trunk/plugins: jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/ myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/

Posted by Ivan <xh...@gmail.com>.
Thanks for the explanation, Jarek.

2011/5/25 Jarek Gawor <jg...@gmail.com>:
> Since we are tracking 2 states now (ACTIVE or STARTING) and if a
> bundle does not have any faces configuration, returning null in
> addingBundle() would cause addingBundle() to be called twice for the
> same bundle. So the bundle could be scanned twice needlessly... which
> probably would happen in most cases anyway. Returning non-null
> guarantees that the bundle is scanned only once. That also means that
> the BundleTracker is tracking every bundle but that is not a problem
> in this case.
>
> Jarek
>
> On Wed, May 25, 2011 at 1:59 AM, Ivan <xh...@gmail.com> wrote:
>> 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  <ga...@apache.org>:
>>> 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
>>
>



-- 
Ivan

Re: svn commit: r1127388 - in /geronimo/server/trunk/plugins: jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/ myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/

Posted by Jarek Gawor <jg...@gmail.com>.
Since we are tracking 2 states now (ACTIVE or STARTING) and if a
bundle does not have any faces configuration, returning null in
addingBundle() would cause addingBundle() to be called twice for the
same bundle. So the bundle could be scanned twice needlessly... which
probably would happen in most cases anyway. Returning non-null
guarantees that the bundle is scanned only once. That also means that
the BundleTracker is tracking every bundle but that is not a problem
in this case.

Jarek

On Wed, May 25, 2011 at 1:59 AM, Ivan <xh...@gmail.com> wrote:
> 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  <ga...@apache.org>:
>> 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
>

Re: svn commit: r1127388 - in /geronimo/server/trunk/plugins: jasper/geronimo-jasper/src/main/java/org/apache/geronimo/jasper/internal/ myfaces/geronimo-myfaces/src/main/java/org/apache/geronimo/myfaces/config/resource/osgi/

Posted by Ivan <xh...@gmail.com>.
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  <ga...@apache.org>:
> 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