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
