Hi,

I moved that file because it was the only tracker not in the .tracker package. 
I'm happy to have a broader discussion about the util bundle, including moving 
the filesystem code from the application component and generally getting it to 
1.0 standard for a proper, semantically versioned runtime.

We haven't been semantically versioning so far, so I don't think imports of 
[0.3,1.0) really make sense. Most parts of the runtime have been making 
breaking changes each release because we were incubating and we're only now 
approaching a stable API.


Tim

----------------------------------------
> Date: Mon, 21 Feb 2011 12:21:19 +0100
> Subject: Re: svn commit: r1067207 - in /aries/trunk: 
> blueprint/blueprint-annotation-impl/ 
> blueprint/blueprint-annotation-impl/src/main/java/org/apache/aries/blueprint/annotation/impl/
>  blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/
> From: [email protected]
> To: [email protected]
>
> Sorry for not being more clear, I was referring to the following change:
>
> > Removed:
> > aries/trunk/util/src/main/java/org/apache/aries/util/SingleServiceTracker.java
>
> One class has been deleted from a package, so that's a major
> incompabible change which needs aries-util version to be bumped to 1.0
> according to semantic versioning rules. What I'm not sure is how it
> affect other projects, for example blueprint trunk would need to
> change the aries-util dependency from [0.3,1) to [1,2) and I'm not
> sure how the blueprint version should reflect that change.
>
> I don't really want to include an update to a new major version of a
> dependency in a minor release of blueprint, so I think we should bump
> blueprint to 1.0, hence my point of creating a 0.4 branch for
> blueprint.
>
> Hope it's a bit more clear now.
>
> On Mon, Feb 21, 2011 at 12:12, Alasdair Nottingham  wrote:
> > Can you clarify what in this commit you are objecting to? There were
> > rather a large number of
> > changes not all of which are included in your email.
> >
> > Why would you create a branch for blueprint 0.4? What is the point?
> >
> > Alasdair
> >
> > On 21 February 2011 10:55, Guillaume Nodet  wrote:
> >> I come back to this commit as this is a *major* incompatibility change.
> >> The util package major version need be bumped up.  I'm not quite sure
> >> what kind of changes that impact on downstream bundles (blueprint,
> >> jndi, jpa, etc...) but I think the cascading effect is that their
> >> major version need to be bumped too.  Can someone please have a look
> >> at that and fix the problems ?
> >>
> >> I'll create a branch for blueprint 0.4.x which can work with other
> >> components in 0.3 as that's what is implied the version range is
> >> afaik.
> >>
> >> On Fri, Feb 4, 2011 at 19:22, Guillaume Nodet  wrote:
> >>> While I do not question the validity of such changes, it tends to
> >>> confirm my impression that we have components that are quite tied
> >>> together and that we'll never be able to release them independantly
> >>> (apart from bug fix release which do not matter here).
> >>> How easy would such things be if we had several trunks, one jira per
> >>> component, each jira associated to a different version in jira...
> >>> This also changes the constraints on the packages imported by a
> >>> component, so you'd have to change some package versions.  That's
> >>> kinda bad as if a user want to update one bundle, he has to actually
> >>> update a bunch of bundles.  if we're going to use a different version
> >>> for each component, we'd have to keep track of the compatibility
> >>> somewhere so that this can appear in the release notes.
> >>>
> >>> i'll stop to lobby on the release cycle versioning, but I just want to
> >>> make everyone knows where we're going.
> >>>
> >>> I wonder if we'll have to change to a more manual management of the
> >>> imported packages in the pom, disabling * packages expansions by bnd
> >>> and also disabling auto computation of version ranges to make sure
> >>> we're aware of changes
> >>>
> >>> On Friday, February 4, 2011,   wrote:
> >>>> Author: timothyjward
> >>>> Date: Fri Feb  4 16:13:32 2011
> >>>> New Revision: 1067207
> >>>>
> >>>> URL: http://svn.apache.org/viewvc?rev=1067207&view=rev
> >>>> Log:
> >>>> ARIES-567 - Add a common utility for safe unregistration
> >>>>
> >>>> Added:
> >>>>     
> >>>> aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/util/
> >>>>     
> >>>> aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/util/AriesFrameworkUtil.java
> >>>>     aries/trunk/jpa/jpa-container/src/test/java/org/apache/aries/util/
> >>>>     
> >>>> aries/trunk/jpa/jpa-container/src/test/java/org/apache/aries/util/AriesFrameworkUtil.java
> >>>>     
> >>>> aries/trunk/util/src/main/java/org/apache/aries/util/tracker/SingleServiceTracker.java
> >>>>       - copied, changed from r1067146, 
> >>>> aries/trunk/util/src/main/java/org/apache/aries/util/SingleServiceTracker.java
> >>>> Removed:
> >>>>     
> >>>> aries/trunk/util/src/main/java/org/apache/aries/util/SingleServiceTracker.java
> >>>> Modified:
> >>>>     aries/trunk/blueprint/blueprint-annotation-impl/pom.xml
> >>>>     
> >>>> aries/trunk/blueprint/blueprint-annotation-impl/src/main/java/org/apache/aries/blueprint/annotation/impl/Activator.java
> >>>>     
> >>>> aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmManagedServiceFactory.java
> >>>>     
> >>>> aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/ManagedObjectManager.java
> >>>>     
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java
> >>>>     
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
> >>>>     
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ServiceRecipe.java
> >>>>     aries/trunk/jmx/jmx-blueprint-core/pom.xml
> >>>>     
> >>>> aries/trunk/jmx/jmx-blueprint-core/src/main/java/org/apache/aries/jmx/blueprint/impl/BlueprintState.java
> >>>>     
> >>>> aries/trunk/jndi/jndi-rmi/src/main/java/org/apache/aries/jndi/rmi/Activator.java
> >>>>     
> >>>> aries/trunk/jndi/jndi-url/src/main/java/org/apache/aries/jndi/url/Activator.java
> >>>>     
> >>>> aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/GlobalPersistenceManager.java
> >>>>     
> >>>> aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java
> >>>>     
> >>>> aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/CountingEntityManagerFactory.java
> >>>>     
> >>>> aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java
> >>>>     
> >>>> aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/PersistenceBundleManager.java
> >>>>     aries/trunk/quiesce/quiesce-manager/pom.xml
> >>>>     
> >>>> aries/trunk/quiesce/quiesce-manager/src/main/java/org/apache/aries/quiesce/manager/impl/Activator.java
> >>>>     aries/trunk/transaction/pom.xml
> >>>>     aries/trunk/transaction/transaction-manager/pom.xml
> >>>>     
> >>>> aries/trunk/transaction/transaction-manager/src/main/java/org/apache/aries/transaction/TransactionManagerService.java
> >>>>     aries/trunk/transaction/transaction-wrappers/pom.xml
> >>>>     
> >>>> aries/trunk/transaction/transaction-wrappers/src/main/java/org/apache/aries/transaction/jdbc/Activator.java
> >>>>     
> >>>> aries/trunk/util/src/main/java/org/apache/aries/util/AriesFrameworkUtil.java
> >>>>     
> >>>> aries/trunk/util/src/test/java/org/apache/aries/util/SingleServiceTrackerTest.java
> >>>>
> >>>> Modified: aries/trunk/blueprint/blueprint-annotation-impl/pom.xml
> >>>> URL: 
> >>>> http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-annotation-impl/pom.xml?rev=1067207&r1=1067206&r2=1067207&view=diff
> >>>> ==============================================================================
> >>>> --- aries/trunk/blueprint/blueprint-annotation-impl/pom.xml (original)
> >>>> +++ aries/trunk/blueprint/blueprint-annotation-impl/pom.xml Fri Feb  4 
> >>>> 16:13:32 2011
> >>>> @@ -57,6 +57,10 @@
> >>>>            org.apache.aries.blueprint.annotation.api
> >>>>        
> >>>>        
> >>>> +          org.apache.aries
> >>>> +          org.apache.aries.util
> >>>> +      
> >>>> +      
> >>>>            org.osgi
> >>>>            org.osgi.core
> >>>>            provided
> >>>>
> >>>> Modified: 
> >>>> aries/trunk/blueprint/blueprint-annotation-impl/src/main/java/org/apache/aries/blueprint/annotation/impl/Activator.java
> >>>> URL: 
> >>>> http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-annotation-impl/src/main/java/org/apache/aries/blueprint/annotation/impl/Activator.java?rev=1067207&r1=1067206&r2=1067207&view=diff
> >>>> ==============================================================================
> >>>> --- 
> >>>> aries/trunk/blueprint/blueprint-annotation-impl/src/main/java/org/apache/aries/blueprint/annotation/impl/Activator.java
> >>>>  (original)
> >>>> +++ 
> >>>> aries/trunk/blueprint/blueprint-annotation-impl/src/main/java/org/apache/aries/blueprint/annotation/impl/Activator.java
> >>>>  Fri Feb  4 16:13:32 2011
> >>>> @@ -19,11 +19,12 @@ package org.apache.aries.blueprint.annot
> >>>>  import java.util.Dictionary;
> >>>>  import java.util.Hashtable;
> >>>>
> >>>> +import 
> >>>> org.apache.aries.blueprint.annotation.service.BlueprintAnnotationScanner;
> >>>> +import org.apache.aries.util.AriesFrameworkUtil;
> >>>>  import org.osgi.framework.BundleActivator;
> >>>>  import org.osgi.framework.BundleContext;
> >>>>  import org.osgi.framework.Constants;
> >>>>  import org.osgi.framework.ServiceRegistration;
> >>>> -import 
> >>>> org.apache.aries.blueprint.annotation.service.BlueprintAnnotationScanner;
> >>>>
> >>>>  public class Activator implements BundleActivator {
> >>>>
> >>>> @@ -36,9 +37,7 @@ public class Activator implements Bundle
> >>>>      }
> >>>>
> >>>>      public void stop(BundleContext context) {
> >>>> -        if (sr != null) {
> >>>> -            sr.unregister();
> >>>> -        }
> >>>> +      AriesFrameworkUtil.safeUnregisterService(sr);
> >>>>      }
> >>>>
> >>>>  }
> >>>>
> >>>> Modified: 
> >>>> aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmManagedServiceFactory.java
> >>>> URL: 
> >>>> http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmManagedServiceFactory.java?rev=1067207&r1=1067206&r2=1067207&view=diff
> >>>> ==============================================================================
> >>>> --- 
> >>>> aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmManagedServiceFactory.java
> >>>>  (original)
> >>>> +++ 
> >>>> aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmManagedServiceFactory.java
> >>>>  Fri Feb  4 16:13:32 2011
> >>>> @@ -35,6 +35,7 @@ import org.apache.aries.blueprint.Servic
> >>>>  import org.apache.aries.blueprint.container.ServiceListener;
> >>>>  import org.apache.aries.blueprint.utils.JavaUtils;
> >>>>  import org.apache.aries.blueprint.utils.ReflectionUtils;
> >>>> +import org.apache.aries.util.AriesFrameworkUtil;
> >>>>  import org.osgi.framework.Bundle;
> >>>>  import org.osgi.framework.Constants;
> >>>>  import org.osgi.framework.ServiceReference;
> >>>> @@ -100,9 +101,7 @@ public class CmManagedServiceFactory {
> >>>>      }
> >>>>
> >>>>      public void destroy() {
> >>>> -        if (registration != null) {
> >>>> -            registration.unregister();
> >>>> -        }
> >>>> +        AriesFrameworkUtil.safeUnregisterService(registration);
> >>>>          for (Map.Entry entry : services.entrySet()) {
> >>>>              destroy(entry.getValue(), entry.getKey(), BUNDLE_STOPPING);
> >>>>          }
> >>>> @@ -119,7 +118,7 @@ public class CmManagedServiceFactory {
> >>>>              }
> >>>>          }
> >>>>          destroyComponent(component, code);
> >>>> -        registration.unregister();
> >>>> +        AriesFrameworkUtil.safeUnregisterService(registration);
> >>>>      }
> >>>>
> >>>>      public Map getServiceMap() {
> >>>>
> >>>> Modified: 
> >>>> aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/ManagedObjectManager.java
> >>>> URL: 
> >>>> http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/ManagedObjectManager.java?rev=1067207&r1=1067206&r2=1067207&view=diff
> >>>> ==============================================================================
> >>>> --- 
> >>>> aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/ManagedObjectManager.java
> >>>>  (original)
> >>>> +++ 
> >>>> aries/trunk/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/ManagedObjectManager.java
> >>>>  Fri Feb  4 16:13:32 2011
> >>>> @@ -25,6 +25,7 @@ import java.util.HashMap;
> >>>>  import java.util.List;
> >>>>  import java.util.Properties;
> >>>>
> >>>> +import org.apache.aries.util.AriesFrameworkUtil;
> >>>>  import org.osgi.framework.ServiceRegistration;
> >>>>  import org.osgi.service.cm.ConfigurationException;
> >>>>  import org.osgi.service.cm.ManagedService;
> >>>> @@ -60,7 +61,7 @@ public class ManagedObjectManager {
> >>>>              reg.remove(cm);
> >>>>              if (reg.isEmpty()) {
> >>>>                  map.remove(key);
> >>>> -                reg.getRegistration().unregister();
> >>>> +                
> >>>> AriesFrameworkUtil.safeUnregisterService(reg.getRegistration());
> >>>>              }
> >>>>          }
> >>>>      }
> >>>>
> >>>> Modified: 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java
> >>>> URL: 
> >>>> http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java?rev=1067207&r1=1067206&r2=1067207&view=diff
> >>>> ==============================================================================
> >>>> --- 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java
> >>>>  (original)
> >>>> +++ 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java
> >>>>  Fri Feb  4 16:13:32 2011
> >>>> @@ -62,6 +62,7 @@ import org.apache.aries.blueprint.reflec
> >>>>  import org.apache.aries.blueprint.utils.HeaderParser;
> >>>>  import org.apache.aries.blueprint.utils.JavaUtils;
> >>>>  import org.apache.aries.blueprint.utils.HeaderParser.PathElement;
> >>>> +import org.apache.aries.util.AriesFrameworkUtil;
> >>>>  import org.osgi.framework.Bundle;
> >>>>  import org.osgi.framework.BundleContext;
> >>>>  import org.osgi.framework.Constants;
> >>>> @@ -812,9 +813,7 @@ public class BlueprintContainerImpl impl
> >>>>          if (timeoutFuture != null) {
> >>>>              timeoutFuture.cancel(false);
> >>>>          }
> >>>> -        if (registration != null) {
> >>>> -            registration.unregister();
> >>>> -        }
> >>>> +        AriesFrameworkUtil.safeUnregisterService(registration);
> >>>>          if (handlerSet != null) {
> >>>>              handlerSet.removeListener(this);
> >>>>              handlerSet.destroy();
> >>>> @@ -845,9 +844,7 @@ public class BlueprintContainerImpl impl
> >>>>          if (timeoutFuture != null) {
> >>>>              timeoutFuture.cancel(false);
> >>>>          }
> >>>> -        if (registration != null) {
> >>>> -            registration.unregister();
> >>>> -        }
> >>>> +        AriesFrameworkUtil.safeUnregisterService(registration);
> >>>>          if (handlerSet != null) {
> >>>>              handlerSet.removeListener(this);
> >>>>              handlerSet.destroy();
> >>>>
> >>>> Modified: 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
> >>>> URL: 
> >>>> http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java?rev=1067207&r1=1067206&r2=1067207&view=diff
> >>>> ==============================================================================
> >>>> --- 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
> >>>>  (original)
> >>>> +++ 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
> >>>>  Fri Feb  4 16:13:32 2011
> >>>> @@ -39,9 +39,10 @@ import org.apache.aries.blueprint.namesp
> >>>>  import org.apache.aries.blueprint.utils.HeaderParser;
> >>>>  import org.apache.aries.blueprint.utils.HeaderParser.PathElement;
> >>>>  import org.apache.aries.proxy.ProxyManager;
> >>>> -import org.apache.aries.util.SingleServiceTracker;
> >>>> -import org.apache.aries.util.SingleServiceTracker.SingleServiceListener;
> >>>> +import org.apache.aries.util.AriesFrameworkUtil;
> >>>>  import org.apache.aries.util.tracker.RecursiveBundleTracker;
> >>>> +import org.apache.aries.util.tracker.SingleServiceTracker;
> >>>> +import 
> >>>> org.apache.aries.util.tracker.SingleServiceTracker.SingleServiceListener;
> >>>>  import org.osgi.framework.Bundle;
> >>>>  import org.osgi.framework.BundleActivator;
> >>>>  import org.osgi.framework.BundleContext;
> >>>> @@ -154,10 +155,9 @@ public class BlueprintExtender implement
> >>>>                 bt.close();
> >>>>          }
> >>>>
> >>>> -        parserServiceReg.unregister();
> >>>> -
> >>>> -        if (quiesceParticipantReg != null)
> >>>> -               quiesceParticipantReg.unregister();
> >>>> +        AriesFrameworkUtil.safeUnregisterService(parserServiceReg);
> >>>> +
> >>>> +        AriesFrameworkUtil.safeUnregisterService(quiesceParticipantReg);
> >>>>
> >>>>          // Orderly shutdown of containers
> >>>>          while (!containers.isEmpty()) {
> >>>>
> >>>> Modified: 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ServiceRecipe.java
> >>>> URL: 
> >>>> http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ServiceRecipe.java?rev=1067207&r1=1067206&r2=1067207&view=diff
> >>>> ==============================================================================
> >>>> --- 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ServiceRecipe.java
> >>>>  (original)
> >>>> +++ 
> >>>> aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ServiceRecipe.java
> >>>>  Fri Feb  4 16:13:32 2011
> >>>> @@ -44,6 +44,7 @@ import org.apache.aries.blueprint.proxy.
> >>>>  import org.
> >>>
> >>> --
> >>> Cheers,
> >>> Guillaume Nodet
> >>> ------------------------
> >>> Blog: http://gnodet.blogspot.com/
> >>> ------------------------
> >>> Open Source SOA
> >>> http://fusesource.com
> >>>
> >>
> >>
> >>
> >> --
> >> Cheers,
> >> Guillaume Nodet
> >> ------------------------
> >> Blog: http://gnodet.blogspot.com/
> >> ------------------------
> >> Open Source SOA
> >> http://fusesource.com
> >>
> >
> >
> >
> > --
> > Alasdair Nottingham
> > [email protected]
> >
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
                                          

Reply via email to