So assume we released util as a 1.0 bundle, why would that prevent blueprint 0.4 using it? I don't think I've seen anything that says you have to bump your major version based on the dependency doing so. That seems like a crazy idea. You should only bump your major version if you have to.
I would also say that until we have had a vote about exactly what we are doing regarding releasing and versioning this kind of activity is a little premature. Alasdair On 21 February 2011 11:21, Guillaume Nodet <[email protected]> wrote: > 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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, <[email protected]> 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 @@ >>>>> >>>>> <artifactId>org.apache.aries.blueprint.annotation.api</artifactId> >>>>> </dependency> >>>>> <dependency> >>>>> + <groupId>org.apache.aries</groupId> >>>>> + <artifactId>org.apache.aries.util</artifactId> >>>>> + </dependency> >>>>> + <dependency> >>>>> <groupId>org.osgi</groupId> >>>>> <artifactId>org.osgi.core</artifactId> >>>>> <scope>provided</scope> >>>>> >>>>> 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<ServiceRegistration, Object> 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<ServiceRegistration, Object> 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 > -- Alasdair Nottingham [email protected]
