[MPLUGIN-150] Update to QDox 1.9.1

o Updated dependency and added IT to motivate update

git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@773320 13f79535-47bb-0310-9956-ffa450edef68
master
Benjamin Bentmann 2009-05-10 10:06:36 +00:00
parent c8a4f2eef2
commit 074cf5ba40
9 changed files with 265 additions and 1 deletions

View File

@ -0,0 +1,40 @@
<?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.
-->
<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>
<parent>
<groupId>org.apache.maven.its.plugin</groupId>
<artifactId>ipcr</artifactId>
<version>1.0</version>
</parent>
<artifactId>ipcr-dep-a</artifactId>
<packaging>jar</packaging>
<name>Dependency A</name>
<description>
Test that the component used to scan sources for annotations does not analyze classes from the plugin's own class
realm while traversing the class hierarchy (see QDOX-148). This module provides a simple dependency to build up
the class realm of interest.
</description>
</project>

View File

@ -0,0 +1,5 @@
package test;
public class ClassA
{
}

View File

@ -0,0 +1,48 @@
<?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.
-->
<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>
<parent>
<groupId>org.apache.maven.its.plugin</groupId>
<artifactId>ipcr</artifactId>
<version>1.0</version>
</parent>
<artifactId>ipcr-dep-b</artifactId>
<packaging>jar</packaging>
<name>Dependency B</name>
<description>
Test that the component used to scan sources for annotations does not analyze classes from the plugin's own class
realm while traversing the class hierarchy (see QDOX-148). This module provides a simple dependency to build up
the class realm of interest.
</description>
<dependencies>
<dependency>
<groupId>org.apache.maven.its.plugin</groupId>
<artifactId>ipcr-dep-a</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,14 @@
package test;
public class ClassB
{
/**
* For the test we want to trigger a linkage error when resolving ClassA. However, we want this error to occur when
* analyzing ClassB and not when loading ClassB itself.
*/
public void triggerLazyLinkageError(ClassA param)
{
}
}

View File

@ -0,0 +1,5 @@
invoker.goals.1 = clean install
invoker.profiles.1 = setup
invoker.goals.2 = clean process-classes
invoker.profiles.2 = test

View File

@ -0,0 +1,64 @@
<?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.
-->
<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.its.plugin</groupId>
<artifactId>ipcr</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<name>Aggregator</name>
<description>
Test that the component used to scan sources for annotations does not analyze classes from the plugin's own class
realm while traversing the class hierarchy (see QDOX-148).
</description>
<profiles>
<profile>
<!-- builds the dependencies requires to exhibit the problem -->
<id>setup</id>
<modules>
<module>dep-a</module>
<module>dep-b</module>
</modules>
</profile>
<profile>
<!-- runs the test -->
<id>test</id>
<modules>
<module>test</module>
</modules>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
</profiles>
</project>

View File

@ -0,0 +1,73 @@
<?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.
-->
<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>
<parent>
<groupId>org.apache.maven.its.plugin</groupId>
<artifactId>ipcr</artifactId>
<version>1.0</version>
</parent>
<artifactId>ipcr-plugin</artifactId>
<packaging>maven-plugin</packaging>
<name>Test Plugin</name>
<description>
Test that the component used to scan sources for annotations does not analyze classes from the plugin's own class
realm while traversing the class hierarchy (see QDOX-148). This module provides the plugin sources to scan.
</description>
<dependencies>
<!--
This project depends on both ipcr-dep-b and (indirectly) ipcr-dep-a. However, the plugin realm only contains
ipcr-dep-b, causing a linkage error when erroneously traversing the class hierarchy.
-->
<dependency>
<groupId>org.apache.maven.its.plugin</groupId>
<artifactId>ipcr-dep-b</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.its.plugin</groupId>
<artifactId>ipcr-dep-b</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.maven.its.plugin</groupId>
<artifactId>ipcr-dep-a</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,15 @@
package test;
/**
* This is the source class to be scanned for annotations. While scanning, QDox must not try to resolve references to
* other types like the super class from the plugin class realm. The plugin class realm has no relation at all to
* the project class path. In particular, the plugin class realm could (by incident) contain different versions of those
* types or could be incomplete (due to exclusions). The later case leads to NoClassDefFoundErrors, crashing the scan.
*
* @goal test
*/
public class SomeMojo
extends ClassB
{
}

View File

@ -74,7 +74,7 @@
<dependency> <dependency>
<groupId>com.thoughtworks.qdox</groupId> <groupId>com.thoughtworks.qdox</groupId>
<artifactId>qdox</artifactId> <artifactId>qdox</artifactId>
<version>1.6.3</version> <version>1.9.1</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>