[ARCHETYPE-521] Cannot specify remote repository for generate project from archetype
authorrfscholte <rfscholte@apache.org>
Sat, 1 Apr 2017 11:21:41 +0000 (13:21 +0200)
committerrfscholte <rfscholte@apache.org>
Sat, 1 Apr 2017 11:21:41 +0000 (13:21 +0200)
Verified with integration-test

maven-archetype-plugin/pom.xml
maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.jar/META-INF/maven/archetype-metadata.xml [new file with mode: 0644]
maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.jar/archetype-resources/pom.xml [new file with mode: 0644]
maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.pom [new file with mode: 0644]
maven-archetype-plugin/src/it/mrm/archetype-repository/archetype-catalog.xml [new file with mode: 0644]
maven-archetype-plugin/src/it/mrm/settings.xml
maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/invoker.properties [new file with mode: 0644]
maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/test.properties [new file with mode: 0644]
maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/verify.groovy [new file with mode: 0644]

index ba6b272..3fc6765 100644 (file)
             <version>1.1.0</version>
             <executions>
               <execution>
+                <id>mirror</id>
                 <goals>
                   <goal>start</goal>
                   <goal>stop</goal>
                 </goals>
+                <configuration>
+                  <repositories>
+                    <mockRepo>
+                      <source>src/it/mrm/repository</source>
+                      <cloneTo>target/mock-repo</cloneTo>
+                    </mockRepo>
+                    <proxyRepo/>
+                  </repositories>
+                </configuration>
+              </execution>
+              <execution>
+                <id>archetype-repository</id>
+                <goals>
+                  <goal>start</goal>
+                  <goal>stop</goal>
+                </goals>
+                <configuration>
+                  <propertyName>archetype-repo.proxy.url</propertyName>
+                  <repositories>
+                    <mockRepo>
+                      <source>src/it/mrm/archetype-repository</source>
+                      <cloneTo>target/archetype-repo</cloneTo>
+                    </mockRepo>
+                  </repositories>
+                </configuration>
               </execution>
             </executions>
-            <configuration>
-              <repositories>
-                <mockRepo>
-                  <source>src/it/mrm/repository</source>
-                  <cloneTo>target/mock-repo</cloneTo>
-                </mockRepo>
-                <proxyRepo/>
-              </repositories>
-            </configuration>
           </plugin>
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
               <settingsFile>src/it/mrm/settings.xml</settingsFile>
               <filterProperties>
                 <repository.proxy.url>${mrm.repository.url}</repository.proxy.url>
+                <archetype-repo.proxy.url>${archetype-repo.proxy.url}</archetype-repo.proxy.url>
               </filterProperties>
             </configuration>
             <executions>
diff --git a/maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.jar/META-INF/maven/archetype-metadata.xml b/maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.jar/META-INF/maven/archetype-metadata.xml
new file mode 100644 (file)
index 0000000..d504e4e
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+<archetype-descriptor name="custom">
+  <fileSets>
+    <fileSet filtered="true" packaged="true">
+      <directory>src/main/java</directory>
+      <includes>
+        <include>**/*.java</include>
+      </includes>
+    </fileSet>
+  </fileSets>
+</archetype-descriptor>
\ No newline at end of file
diff --git a/maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.jar/archetype-resources/pom.xml b/maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.jar/archetype-resources/pom.xml
new file mode 100644 (file)
index 0000000..9cde305
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+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>${groupId}</groupId>
+  <artifactId>${artifactId}</artifactId>
+  <version>${version}</version>
+
+  <description>Generated with org.apache.maven.archetypes.its:3rdparty-archetype:1.0</description>
+  
+</project>
diff --git a/maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.pom b/maven-archetype-plugin/src/it/mrm/archetype-repository/3rdparty-archetype-1.0.pom
new file mode 100644 (file)
index 0000000..a248099
--- /dev/null
@@ -0,0 +1,29 @@
+<!--
+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.maven.archetypes.its</groupId>
+  <artifactId>3rdparty-archetype</artifactId>
+  <version>1.0</version>
+
+</project>
diff --git a/maven-archetype-plugin/src/it/mrm/archetype-repository/archetype-catalog.xml b/maven-archetype-plugin/src/it/mrm/archetype-repository/archetype-catalog.xml
new file mode 100644 (file)
index 0000000..02ad075
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<archetype-catalog
+  xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
+  xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    
+  <archetypes>
+    <archetype>
+      <groupId>org.apache.maven.archetypes.its</groupId>
+      <artifactId>3rdparty-archetype</artifactId>
+      <version>1.0</version>
+      <description>A custom archetype only available or ITs</description>
+    </archetype>
+  </archetypes>
+
+</archetype-catalog>
\ No newline at end of file
index 9c21101..5913350 100644 (file)
@@ -25,7 +25,7 @@ under the License.
       <id>mrm-maven-plugin</id>
       <name>Mock Repository Manager</name>
       <url>@repository.proxy.url@</url>
-      <mirrorOf>*</mirrorOf>
+      <mirrorOf>*,!archetype</mirrorOf>
     </mirror>
   </mirrors>
   <profiles>
@@ -67,5 +67,25 @@ under the License.
         </pluginRepository>
       </pluginRepositories>
     </profile>
+    
+    <profile>
+      <id>acme</id>
+      <repositories>
+        <repository>
+          <id>archetype</id>
+          <url>@archetype-repo.proxy.url@</url>
+          <releases>
+            <enabled>true</enabled>
+            <checksumPolicy>ignore</checksumPolicy>
+            <updatePolicy>never</updatePolicy>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+            <checksumPolicy>ignore</checksumPolicy>
+            <updatePolicy>always</updatePolicy>
+          </snapshots>
+        </repository>
+      </repositories>
+    </profile>
   </profiles>
 </settings>
diff --git a/maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/invoker.properties b/maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/invoker.properties
new file mode 100644 (file)
index 0000000..febc96a
--- /dev/null
@@ -0,0 +1,18 @@
+# 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.
+
+invoker.goals = org.apache.maven.plugins:maven-archetype-plugin:${project.version}:generate -Pacme
\ No newline at end of file
diff --git a/maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/test.properties b/maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/test.properties
new file mode 100644 (file)
index 0000000..010419d
--- /dev/null
@@ -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
+# 
+#   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.
+
+archetypeGroupId=org.apache.maven.archetypes.its
+archetypeArtifactId=3rdparty-archetype
+archetypeVersion=1.0
+
+groupId=com.company
+artifactId=project
+version=1.0-SNAPSHOT
+package=com.company.project
\ No newline at end of file
diff --git a/maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/verify.groovy b/maven-archetype-plugin/src/it/projects/ARCHETYPE-521_archetype-repo/verify.groovy
new file mode 100644 (file)
index 0000000..d2bffac
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * 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 project = new XmlSlurper().parse( new File( basedir, "project/pom.xml" ) )
+assert project.description.text()  == 'Generated with org.apache.maven.archetypes.its:3rdparty-archetype:1.0'
\ No newline at end of file