Looks like a file was added without the required license header, which will cause mvn rat:check to fail at release time....
incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/IdSpace.java -Donald On 3/11/10 8:45 AM, [email protected] wrote: > Author: mahrwald > Date: Thu Mar 11 13:45:28 2010 > New Revision: 921845 > > URL: http://svn.apache.org/viewvc?rev=921845&view=rev > Log: > ARIES-246: Fix duplicate anon component recipe problem with > CompDefRegProcessors > > Added: > > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/IdSpace.java > Modified: > > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java > > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintRepository.java > > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/RecipeBuilder.java > > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/di/Repository.java > > Modified: > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java > URL: > http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java?rev=921845&r1=921844&r2=921845&view=diff > ============================================================================== > --- > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java > (original) > +++ > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java > Thu Mar 11 13:45:28 2010 > @@ -138,7 +138,8 @@ public class BlueprintContainerImpl impl > private final AtomicBoolean running = new AtomicBoolean(); > private List<ServiceRecipe> services; > private AccessControlContext accessControlContext; > - > + private final IdSpace tempRecipeIdSpace = new IdSpace(); > + > public BlueprintContainerImpl(BundleContext bundleContext, Bundle > extenderBundle, BlueprintListener eventDispatcher, NamespaceHandlerRegistry > handlers, ScheduledExecutorService executors, List<Object> pathList) { > this.bundleContext = bundleContext; > this.extenderBundle = extenderBundle; > @@ -427,7 +428,7 @@ public class BlueprintContainerImpl impl > > public BlueprintRepository getRepository() { > if (repository == null) { > - repository = new RecipeBuilder(this).createRepository(); > + repository = new RecipeBuilder(this, > tempRecipeIdSpace).createRepository(); > } > return repository; > } > @@ -484,15 +485,31 @@ public class BlueprintContainerImpl impl > } > // Update repository with recipes processed by the processors > untrackServiceReferences(); > - Repository tmpRepo = new RecipeBuilder(this).createRepository(); > + Repository tmpRepo = new RecipeBuilder(this, > tempRecipeIdSpace).createRepository(); > + > + LOGGER.debug("Updating blueprint repository"); > + > + for (String name : repository.getNames()) { > + if (repository.getInstance(name) == null) { > + LOGGER.debug("Removing uninstantiated recipe {}", new > Object[] { name }); > + repository.removeRecipe(name); > + } else { > + LOGGER.debug("Recipe {} is already instantiated", new > Object[] { name }); > + } > + } > + > for (String name : tmpRepo.getNames()) { > if (repository.getInstance(name) == null) { > + LOGGER.debug("Adding new recipe {}", new Object[] { name > }); > Recipe r = tmpRepo.getRecipe(name); > if (r != null) { > repository.putRecipe(name, r); > } > + } else { > + LOGGER.debug("Recipe {} is already instantiated and > cannot be updated", new Object[] { name }); > } > } > + > getSatisfiableDependenciesMap(true); > trackServiceReferences(); > } > > Modified: > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintRepository.java > URL: > http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintRepository.java?rev=921845&r1=921844&r2=921845&view=diff > ============================================================================== > --- > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintRepository.java > (original) > +++ > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintRepository.java > Thu Mar 11 13:45:28 2010 > @@ -114,6 +114,13 @@ public class BlueprintRepository impleme > } > recipes.put(name, recipe); > } > + > + public void removeRecipe(String name) { > + if (instances.get(name) != null) > + throw new ComponentDefinitionException("Name " + name + " is > already instanciated as " + instances.get(name) + " and cannot be removed."); > + > + recipes.remove(name); > + } > > private Object convert(String name, Object instance) throws > ComponentDefinitionException { > try { > > Added: > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/IdSpace.java > URL: > http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/IdSpace.java?rev=921845&view=auto > ============================================================================== > --- > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/IdSpace.java > (added) > +++ > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/IdSpace.java > Thu Mar 11 13:45:28 2010 > @@ -0,0 +1,11 @@ > +package org.apache.aries.blueprint.container; > + > +import java.util.concurrent.atomic.AtomicLong; > + > +public class IdSpace { > + private AtomicLong currentId = new AtomicLong(0); > + > + public long nextId() { > + return currentId.getAndIncrement(); > + } > +} > > Modified: > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/RecipeBuilder.java > URL: > http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/RecipeBuilder.java?rev=921845&r1=921844&r2=921845&view=diff > ============================================================================== > --- > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/RecipeBuilder.java > (original) > +++ > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/RecipeBuilder.java > Thu Mar 11 13:45:28 2010 > @@ -70,12 +70,13 @@ import org.osgi.service.blueprint.reflec > */ > public class RecipeBuilder { > > - private Set<String> names = new HashSet<String>(); > - private int nameCounter; > - private ExtendedBlueprintContainer blueprintContainer; > - private ComponentDefinitionRegistry registry; > + private final Set<String> names = new HashSet<String>(); > + private final ExtendedBlueprintContainer blueprintContainer; > + private final ComponentDefinitionRegistry registry; > + private final IdSpace recipeIdSpace; > > - public RecipeBuilder(ExtendedBlueprintContainer blueprintContainer) { > + public RecipeBuilder(ExtendedBlueprintContainer blueprintContainer, > IdSpace recipeIdSpace) { > + this.recipeIdSpace = recipeIdSpace; > this.blueprintContainer = blueprintContainer; > this.registry = blueprintContainer.getComponentDefinitionRegistry(); > } > @@ -349,7 +350,7 @@ public class RecipeBuilder { > private String getName(String name) { > if (name == null) { > do { > - name = "#recipe-" + ++nameCounter; > + name = "#recipe-" + recipeIdSpace.nextId(); > } while (names.contains(name) || > registry.containsComponentDefinition(name)); > } > names.add(name); > > Modified: > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/di/Repository.java > URL: > http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/di/Repository.java?rev=921845&r1=921844&r2=921845&view=diff > ============================================================================== > --- > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/di/Repository.java > (original) > +++ > incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/di/Repository.java > Thu Mar 11 13:45:28 2010 > @@ -50,6 +50,13 @@ public interface Repository { > Recipe getRecipe(String name); > > void putRecipe(String name, Recipe recipe); > + > + /** > + * Remove an uninstantiated recipe > + * @param name > + * @throws ComponentDefinitionException if the recipe is already > instantiated > + */ > + void removeRecipe(String name); > > Object create(String name) throws ComponentDefinitionException; > > > >
