diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java index 7ebddb51..6189d1c8 100644 --- a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java +++ b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java @@ -487,8 +487,8 @@ private void createModulePoms( throws IOException, XmlPullParserException { Model pom = pomManager.readPom(FileUtils.resolveFile(basedir, Constants.ARCHETYPE_POM)); - String parentArtifactId = pomReversedProperties.getProperty(Constants.PARENT_ARTIFACT_ID); - String artifactId = pom.getArtifactId(); + String previousParentArtifactId = pomReversedProperties.getProperty(Constants.PARENT_ARTIFACT_ID); + String previousArtifactId = pomReversedProperties.getProperty(Constants.ARTIFACT_ID); setParentArtifactId(pomReversedProperties, pomReversedProperties.getProperty(Constants.ARTIFACT_ID)); setArtifactId(pomReversedProperties, pom.getArtifactId()); @@ -518,8 +518,8 @@ private void createModulePoms( preserveCData, keepParent); - restoreParentArtifactId(pomReversedProperties, parentArtifactId); - restoreArtifactId(pomReversedProperties, artifactId); + restoreParentArtifactId(pomReversedProperties, previousParentArtifactId); + restoreArtifactId(pomReversedProperties, previousArtifactId); } @SuppressWarnings("checkstyle:ParameterNumber") diff --git a/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/archetype.properties b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/archetype.properties new file mode 100644 index 00000000..f5b87f16 --- /dev/null +++ b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/archetype.properties @@ -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 +# +# 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.groupId=org.codehaus.mojo.archetypes +archetype.artifactId=maven-archetype-test +archetype.version=1.0 +groupId=org.apache.maven.archetype.test +artifactId=test-issue-983-preserve-cdata +version=1.0-SNAPSHOT +package=org.apache.maven.archetype +someProperty=A String to search for +excludePatterns=build.log,invoker.properties,verify.groovy \ No newline at end of file diff --git a/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/invoker.properties b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/invoker.properties new file mode 100644 index 00000000..956a3c69 --- /dev/null +++ b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/invoker.properties @@ -0,0 +1,19 @@ +# 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}:create-from-project -Darchetype.preserveCData + diff --git a/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/pom.xml b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/pom.xml new file mode 100644 index 00000000..b5c95e02 --- /dev/null +++ b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/pom.xml @@ -0,0 +1,38 @@ + + + + + 4.0.0 + + org.apache.maven.archetype.test + test-issue-983-preserve-cdata + 1.0-SNAPSHOT + + Maven archetype Test issue-983-preserve-cdata + pom + + + subModule1 + subModule2 + + diff --git a/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/subModule1/pom.xml b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/subModule1/pom.xml new file mode 100644 index 00000000..61474531 --- /dev/null +++ b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/subModule1/pom.xml @@ -0,0 +1,37 @@ + + + + + 4.0.0 + + + org.apache.maven.archetype.test + test-issue-983-preserve-cdata + 1.0-SNAPSHOT + + + test-issue-983-preserve-cdata-subModule1 + Maven archetype Test issue-983-preserve-cdata-subModule1 + pom + + diff --git a/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/subModule2/pom.xml b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/subModule2/pom.xml new file mode 100644 index 00000000..c6ad297e --- /dev/null +++ b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/subModule2/pom.xml @@ -0,0 +1,45 @@ + + + + + 4.0.0 + + + org.apache.maven.archetype.test + test-issue-983-preserve-cdata + 1.0-SNAPSHOT + + + test-issue-983-preserve-cdata-subModule2 + Maven archetype Test issue-983-preserve-cdata-subModule2 + pom + + + + org.apache.maven.archetype.test + test-issue-983-preserve-cdata-subModule1 + ${project.version} + + + + diff --git a/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/verify.groovy b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/verify.groovy new file mode 100644 index 00000000..d047bb42 --- /dev/null +++ b/maven-archetype-plugin/src/it/projects/issue-983-preserve-cdata/verify.groovy @@ -0,0 +1,23 @@ +/* + * 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 template = new File(basedir, 'target/generated-sources/archetype/src/main/resources/archetype-resources/subModule2/pom.xml') +// dependency subModule1 must be kept +assert template.text.contains('${parentArtifactId}-subModule1') + \ No newline at end of file