Author: alien11689
Date: Sun Aug  6 10:53:10 2017
New Revision: 1804230

URL: http://svn.apache.org/viewvc?rev=1804230&view=rev
Log:
[ARIES-1735] Detect beans with the same id, but different classes

Added:
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/invoker.properties
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/pom.xml
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T1.java
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T2.java
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p2/
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p2/T1.java
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/verify.groovy
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ConflictDetected.java
Modified:
    aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml
    aries/trunk/blueprint/plugin/blueprint-maven-plugin-spi/pom.xml
    aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java
    
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRefStore.java

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml?rev=1804230&r1=1804229&r2=1804230&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml 
(original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-annotation/pom.xml Sun 
Aug  6 10:53:10 2017
@@ -47,6 +47,6 @@
         </aries.osgi.export.pkg>
         <aries.osgi.import.pkg />
         <aries.osgi.private.pkg />
-        <lastReleaseVersion>1.0.0</lastReleaseVersion>
+        <lastReleaseVersion>1.1.0</lastReleaseVersion>
     </properties>
 </project>

Added: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/invoker.properties
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/invoker.properties?rev=1804230&view=auto
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/invoker.properties
 (added)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/invoker.properties
 Sun Aug  6 10:53:10 2017
@@ -0,0 +1 @@
+invoker.buildResult = failure
\ No newline at end of file

Added: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/pom.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/pom.xml?rev=1804230&view=auto
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/pom.xml
 (added)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/pom.xml
 Sun Aug  6 10:53:10 2017
@@ -0,0 +1,54 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.aries.blueprint.plugin.itest</groupId>
+    <artifactId>simple-project</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+            <version>1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.aries.blueprint</groupId>
+                <artifactId>blueprint-maven-plugin</artifactId>
+                <version>@blueprint-maven-plugin.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>add-resource-dir</goal>
+                            <goal>blueprint-generate</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

Added: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T1.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T1.java?rev=1804230&view=auto
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T1.java
 (added)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T1.java
 Sun Aug  6 10:53:10 2017
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package p1;
+
+import javax.inject.Singleton;
+
+@Singleton
+public class T1 {
+
+}
\ No newline at end of file

Added: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T2.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T2.java?rev=1804230&view=auto
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T2.java
 (added)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p1/T2.java
 Sun Aug  6 10:53:10 2017
@@ -0,0 +1,22 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package p1;
+
+public class T2 {
+}

Added: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p2/T1.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p2/T1.java?rev=1804230&view=auto
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p2/T1.java
 (added)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/src/main/java/p2/T1.java
 Sun Aug  6 10:53:10 2017
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package p2;
+
+import javax.inject.Singleton;
+
+@Singleton
+public class T1 {
+
+}
\ No newline at end of file

Added: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/verify.groovy
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/verify.groovy?rev=1804230&view=auto
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/verify.groovy
 (added)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/fail-on-conflict/verify.groovy
 Sun Aug  6 10:53:10 2017
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+def file = new File(basedir, 
'target/generated-sources/blueprint/OSGI-INF/blueprint/autowire.xml')
+assert !file.exists()
+def log = new File(basedir, 'build.log')
+log.text.contains('Found two beans with id `t1`, but different classes: 
[p1.T1, p2.T1]')
+

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin-spi/pom.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-spi/pom.xml?rev=1804230&r1=1804229&r2=1804230&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-spi/pom.xml (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-spi/pom.xml Sun Aug  6 
10:53:10 2017
@@ -30,6 +30,7 @@
     <groupId>org.apache.aries.blueprint</groupId>
     <artifactId>blueprint-maven-plugin-spi</artifactId>
     <version>1.0.1-SNAPSHOT</version>
+    <name>Apache Aries Blueprint Maven Plugin SPI</name>
 
     <scm>
         
<connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/blueprint/plugin/blueprint-maven-plugin-spi</connection>
@@ -49,5 +50,4 @@
         </plugins>
     </build>
 
-    <name>Apache Aries Blueprint Maven Plugin SPI</name>
 </project>

Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml?rev=1804230&r1=1804229&r2=1804230&view=diff
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml (original)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/pom.xml Sun Aug  6 
10:53:10 2017
@@ -17,7 +17,8 @@
  specific language governing permissions and limitations
  under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
 
     <modelVersion>4.0.0</modelVersion>
 
@@ -25,7 +26,7 @@
         <groupId>org.apache.aries</groupId>
         <artifactId>parent</artifactId>
         <version>2.0.1</version>
-        <relativePath />
+        <relativePath/>
     </parent>
 
     <groupId>org.apache.aries.blueprint</groupId>
@@ -40,14 +41,38 @@
     <properties>
         <maven.version>3.0.5</maven.version>
         <aether.version>1.11</aether.version>
+        <maven-plugin-plugin.version>3.4</maven-plugin-plugin.version>
+        <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
+
+        
<blueprint-maven-plugin-spi.version>1.0.1-SNAPSHOT</blueprint-maven-plugin-spi.version>
+        
<blueprint-maven-plugin-spring-handlers.version>1.0.0</blueprint-maven-plugin-spring-handlers.version>
+        
<blueprint-maven-plugin-annotation.version>1.1.1-SNAPSHOT</blueprint-maven-plugin-annotation.version>
+
+        <javax.inject.version>1</javax.inject.version>
+        <javax.transaction-api.version>1.2</javax.transaction-api.version>
+        
<javax.transaction.cdi-api.version>1.2-b03</javax.transaction.cdi-api.version>
+        <cdi-api.version>1.2</cdi-api.version>
+        <persistence-api.version>1.0.2</persistence-api.version>
+        <pax-cdi-api.version>0.8.0</pax-cdi-api.version>
+
+        <wagon-http-lightweight.version>2.6</wagon-http-lightweight.version>
+        <slf4j-jdk14.version>1.7.7</slf4j-jdk14.version>
+        <maven-filtering.version>1.0-beta-4</maven-filtering.version>
+        <plexus-build-api.version>0.0.7</plexus-build-api.version>
+        <plexus-utils.version>3.0</plexus-utils.version>
+        <osgi.cmpn.version>6.0.0</osgi.cmpn.version>
+        <xbean-finder-shaded.version>4.5</xbean-finder-shaded.version>
+
+        
<org.apache.aries.blueprint.api.version>1.0.1</org.apache.aries.blueprint.api.version>
+        
<org.apache.aries.blueprint.core.version>1.7.1</org.apache.aries.blueprint.core.version>
+        
<org.apache.aries.transaction.blueprint.version>1.1.1</org.apache.aries.transaction.blueprint.version>
+        
<org.apache.aries.jpa.blueprint.aries.version>1.0.2</org.apache.aries.jpa.blueprint.aries.version>
+        
<org.apache.aries.blueprint.cm.version>1.0.9</org.apache.aries.blueprint.cm.version>
     </properties>
 
     <scm>
-        
<connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/blueprint/plugin/blueprint-maven-plugin
-        </connection>
-        <developerConnection>
-            
scm:svn:https://svn.apache.org/repos/asf/aries/trunk/blueprint/plugin/blueprint-maven-plugin
-        </developerConnection>
+        
<connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/blueprint/plugin/blueprint-maven-plugin</connection>
+        
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/blueprint/plugin/blueprint-maven-plugin</developerConnection>
         
<url>http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin</url>
     </scm>
 
@@ -62,7 +87,7 @@
             </plugin>
             <plugin>
                 <artifactId>maven-plugin-plugin</artifactId>
-                <version>3.4</version>
+                <version>${maven-plugin-plugin.version}</version>
                 <executions>
                     <execution>
                         <id>default-descriptor</id>
@@ -107,7 +132,7 @@
                 <plugin>
                     <groupId>org.eclipse.m2e</groupId>
                     <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
+                    <version>${lifecycle-mapping.version}</version>
                     <configuration>
                         <lifecycleMappingMetadata>
                             <pluginExecutions>
@@ -127,7 +152,7 @@
                                         </goals>
                                     </pluginExecutionFilter>
                                     <action>
-                                        <ignore />
+                                        <ignore/>
                                     </action>
                                 </pluginExecution>
                             </pluginExecutions>
@@ -143,54 +168,54 @@
         <dependency>
             <groupId>org.apache.aries.blueprint</groupId>
             <artifactId>blueprint-maven-plugin-spi</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
+            <version>${blueprint-maven-plugin-spi.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.aries.blueprint</groupId>
             <artifactId>blueprint-maven-plugin-spring-handlers</artifactId>
-            <version>1.0.0</version>
+            
<version>${blueprint-maven-plugin-spring-handlers.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.apache.maven.plugin-tools</groupId>
             <artifactId>maven-plugin-annotations</artifactId>
-            <version>3.4</version>
+            <version>${maven-plugin-plugin.version}</version>
         </dependency>
         <dependency>
             <groupId>javax.inject</groupId>
             <artifactId>javax.inject</artifactId>
-            <version>1</version>
+            <version>${javax.inject.version}</version>
         </dependency>
         <dependency>
             <groupId>javax.transaction</groupId>
             <artifactId>javax.transaction-api</artifactId>
-            <version>1.2</version>
+            <version>${javax.transaction-api.version}</version>
         </dependency>
         <dependency>
             <groupId>javax.enterprise</groupId>
             <artifactId>cdi-api</artifactId>
-            <version>1.2</version>
+            <version>${cdi-api.version}</version>
         </dependency>
         <dependency>
             <groupId>javax.persistence</groupId>
             <artifactId>persistence-api</artifactId>
-            <version>1.0.2</version>
+            <version>${persistence-api.version}</version>
         </dependency>
         <dependency>
             <groupId>org.ops4j.pax.cdi</groupId>
             <artifactId>pax-cdi-api</artifactId>
-            <version>0.8.0</version>
+            <version>${pax-cdi-api.version}</version>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>osgi.cmpn</artifactId>
-            <version>6.0.0</version>
+            <version>${osgi.cmpn.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.apache.aries.blueprint</groupId>
             <artifactId>blueprint-maven-plugin-annotation</artifactId>
-            <version>1.1.1-SNAPSHOT</version>
+            <version>${blueprint-maven-plugin-annotation.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
@@ -225,7 +250,7 @@
         <dependency>
             <groupId>org.apache.maven.wagon</groupId>
             <artifactId>wagon-http-lightweight</artifactId>
-            <version>2.6</version>
+            <version>${wagon-http-lightweight.version}</version>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
@@ -235,35 +260,35 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-jdk14</artifactId>
-            <version>1.7.7</version>
+            <version>${slf4j-jdk14.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.apache.maven.shared</groupId>
             <artifactId>maven-filtering</artifactId>
-            <version>1.0-beta-4</version>
+            <version>${maven-filtering.version}</version>
         </dependency>
         <dependency>
             <groupId>org.sonatype.plexus</groupId>
             <artifactId>plexus-build-api</artifactId>
-            <version>0.0.7</version>
+            <version>${plexus-build-api.version}</version>
         </dependency>
         <dependency>
             <groupId>org.codehaus.plexus</groupId>
             <artifactId>plexus-utils</artifactId>
-            <version>3.0</version>
+            <version>${plexus-utils.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.xbean</groupId>
             <artifactId>xbean-finder-shaded</artifactId>
-            <version>4.5</version>
+            <version>${xbean-finder-shaded.version}</version>
         </dependency>
 
         <!-- For the CDI annotations -->
         <dependency>
             <groupId>javax.transaction.cdi</groupId>
             <artifactId>javax.transaction.cdi-api</artifactId>
-            <version>1.2-b03</version>
+            <version>${javax.transaction.cdi-api.version}</version>
         </dependency>
 
         <dependency>
@@ -275,34 +300,33 @@
         <dependency>
             <groupId>org.apache.aries.blueprint</groupId>
             <artifactId>org.apache.aries.blueprint.api</artifactId>
-            <version>1.0.1</version>
+            <version>${org.apache.aries.blueprint.api.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.aries.blueprint</groupId>
             <artifactId>org.apache.aries.blueprint.core</artifactId>
-            <version>1.7.1</version>
+            <version>${org.apache.aries.blueprint.core.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.aries.transaction</groupId>
             <artifactId>org.apache.aries.transaction.blueprint</artifactId>
-            <version>1.1.1</version>
+            
<version>${org.apache.aries.transaction.blueprint.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.aries.jpa</groupId>
             <artifactId>org.apache.aries.jpa.blueprint.aries</artifactId>
-            <version>1.0.2</version>
+            <version>${org.apache.aries.jpa.blueprint.aries.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.aries.blueprint</groupId>
             <artifactId>org.apache.aries.blueprint.cm</artifactId>
-            <version>1.0.9</version>
+            <version>${org.apache.aries.blueprint.cm.version}</version>
             <scope>test</scope>
         </dependency>
-
     </dependencies>
 
 </project>

Modified: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java?rev=1804230&r1=1804229&r2=1804230&view=diff
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java
 (original)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java
 Sun Aug  6 10:53:10 2017
@@ -19,6 +19,7 @@
 package org.apache.aries.blueprint.plugin;
 
 import org.apache.aries.blueprint.plugin.model.Blueprint;
+import org.apache.aries.blueprint.plugin.model.ConflictDetected;
 import org.apache.aries.blueprint.plugin.spi.Activation;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.AbstractMojo;
@@ -112,15 +113,21 @@ public class GenerateMojo extends Abstra
         BlueprintConfigurationImpl blueprintConfiguration = new 
BlueprintConfigurationImpl(namespaces, defaultActivation, customParameters);
 
         try {
-            ClassFinder classFinder = createProjectScopeFinder();
-            Set<Class<?>> classes = 
FilteredClassFinder.findClasses(classFinder, toScan);
-            Blueprint blueprint = new Blueprint(blueprintConfiguration, 
classes);
-            writeBlueprintIfNeeded(blueprint);
+            generateBlueprint(toScan, blueprintConfiguration);
+        } catch (ConflictDetected e) {
+            throw new MojoExecutionException(e.getMessage(), e);
         } catch (Exception e) {
-            throw new MojoExecutionException("Error building commands help", 
e);
+            throw new MojoExecutionException("Error during blueprint 
generation", e);
         }
     }
 
+    private void generateBlueprint(List<String> toScan, 
BlueprintConfigurationImpl blueprintConfiguration) throws Exception {
+        ClassFinder classFinder = createProjectScopeFinder();
+        Set<Class<?>> classes = FilteredClassFinder.findClasses(classFinder, 
toScan);
+        Blueprint blueprint = new Blueprint(blueprintConfiguration, classes);
+        writeBlueprintIfNeeded(blueprint);
+    }
+
     private void writeBlueprintIfNeeded(Blueprint blueprint) throws Exception {
         if (blueprint.shouldBeGenerated()) {
             writeBlueprint(blueprint);

Modified: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java?rev=1804230&r1=1804229&r2=1804230&view=diff
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java
 (original)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java
 Sun Aug  6 10:53:10 2017
@@ -21,9 +21,9 @@ package org.apache.aries.blueprint.plugi
 import java.lang.annotation.Annotation;
 import java.util.Set;
 
-class BeanRef implements Comparable<BeanRef> {
+final class BeanRef implements Comparable<BeanRef> {
     final String id;
-    private final Class<?> clazz;
+    final Class<?> clazz;
     private final Set<Annotation> qualifiers;
 
     BeanRef(Class<?> clazz, String id, Annotation[] qualifiers) {
@@ -42,4 +42,7 @@ class BeanRef implements Comparable<Bean
         return this.id.compareTo(other.id);
     }
 
+    boolean conflictsWith(BeanRef bean) {
+        return id.equals(bean.id) && !clazz.equals(bean.clazz);
+    }
 }

Modified: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRefStore.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRefStore.java?rev=1804230&r1=1804229&r2=1804230&view=diff
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRefStore.java
 (original)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRefStore.java
 Sun Aug  6 10:53:10 2017
@@ -28,11 +28,16 @@ class BeanRefStore {
     private SortedSet<BeanRef> reg = new TreeSet<BeanRef>();
 
     void addBean(BeanRef beanRef) {
+        rejectOnConflict(beanRef);
         reg.add(beanRef);
     }
 
-    Collection<BeanRef> getBeans() {
-        return reg;
+    private void rejectOnConflict(BeanRef beanRef) {
+        for (BeanRef bean : reg) {
+            if(beanRef.conflictsWith(bean)){
+                throw new ConflictDetected(beanRef, bean);
+            }
+        }
     }
 
     BeanRef getMatching(BeanTemplate template) {

Added: 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ConflictDetected.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ConflictDetected.java?rev=1804230&view=auto
==============================================================================
--- 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ConflictDetected.java
 (added)
+++ 
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ConflictDetected.java
 Sun Aug  6 10:53:10 2017
@@ -0,0 +1,25 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.aries.blueprint.plugin.model;
+
+public class ConflictDetected extends RuntimeException {
+    ConflictDetected(BeanRef bean1, BeanRef bean2) {
+        super(String.format("Found two beans with id `%s`, but different 
classes: [%s, %s]", bean1.id, bean1.clazz.getName(), bean2.clazz.getName()));
+    }
+}


Reply via email to