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]

Reply via email to