掲示板

Liferay Maven Plugin - Testing Issue

thumbnail
12年前 に Kamesh Sampath によって更新されました。

Liferay Maven Plugin - Testing Issue

Regular Member 投稿: 158 参加年月日: 10/05/27 最新の投稿
Hi,

I am facing an issue with testing my newly developed Liferay Plugin, since my maven platform is 3.x and the Liferay plugins maven version 2.0.10 , i facing some improper classloading issue when i run my MojoTestCase extends AbstractMojoTestCase, I have quoted below the stack trace,


java.lang.NoSuchMethodError: org.codehaus.plexus.configuration.PlexusConfiguration.setName(Ljava/lang/String;)V
at org.codehaus.plexus.configuration.DefaultPlexusConfiguration.addChild(DefaultPlexusConfiguration.java:222)
at org.codehaus.plexus.configuration.DefaultPlexusConfiguration.getChild(DefaultPlexusConfiguration.java:165)
at org.codehaus.plexus.configuration.DefaultPlexusConfiguration.getChild(DefaultPlexusConfiguration.java:149)
at org.codehaus.plexus.container.initialization.InitializeComponentRegistryPhase.getComponentRepository(InitializeComponentRegistryPhase.java:66)
at org.codehaus.plexus.container.initialization.InitializeComponentRegistryPhase.execute(InitializeComponentRegistryPhase.java:41)
at org.codehaus.plexus.DefaultPlexusContainer.initializePhases(DefaultPlexusContainer.java:644)
at org.codehaus.plexus.DefaultPlexusContainer.initialize(DefaultPlexusContainer.java:556)
at org.codehaus.plexus.DefaultPlexusContainer.construct(DefaultPlexusContainer.java:281)
at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:172)
at org.apache.maven.plugin.testing.AbstractMojoTestCase.setupContainer(AbstractMojoTestCase.java:128)
at org.apache.maven.plugin.testing.AbstractMojoTestCase.getContainer(AbstractMojoTestCase.java:141)
at org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:87)
at com.liferay.maven.plugins.search.template.test.SearchContainerMojoTest.setUp(SearchContainerMojoTest.java:39)
at junit.framework.TestCase.runBare(TestCase.java:125)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:98)
at org.apache.maven.surefire.junit.JUnit3Provider.executeTestSet(JUnit3Provider.java:107)
at org.apache.maven.surefire.junit.JUnit3Provider.invoke(JUnit3Provider.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
at $Proxy0.invoke(Unknown Source)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)



The pom.xml that am using is,


<!--?xml version="1.0"?-->

<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/maven-v4_0_0.xsd">
	<parent>
		<artifactid>plugins</artifactid>
		<groupid>com.liferay.maven</groupid>
		<version>6.2.0-SNAPSHOT</version>
		<relativepath>../pom.xml</relativepath>
	</parent>
	<modelversion>4.0.0</modelversion>
	<groupid>com.liferay.maven.plugins</groupid>
	<artifactid>liferay-maven-plugin</artifactid>
	<packaging>maven-plugin</packaging>
	<name>Liferay Maven 2 Plugin</name>
	<description>Contains goals to manage Liferay plugins.</description>
	<build>
		<plugins>
			<plugin>
				<artifactid>maven-plugin-plugin</artifactid>
				<version>2.9</version>
				<configuration>
					<goalprefix>liferay</goalprefix>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<!-- Liferay -->

		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>portal-impl</artifactid>
			<version>${liferay.version}</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>portal-service</artifactid>
			<version>${liferay.version}</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>util-bridges</artifactid>
			<version>${liferay.version}</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>util-java</artifactid>
			<version>${liferay.version}</version>
		</dependency>

		<!-- Maven -->

		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-artifact</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-model</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-plugin-api</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-project</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven.shared</groupid>
			<artifactid>maven-invoker</artifactid>
			<version>${maven.version}</version>
		</dependency>

		<dependency>
			<groupid>org.codehaus.plexus</groupid>
			<artifactid>plexus-component-api</artifactid>
			<version>1.0-alpha-33</version>
		</dependency>


		<!-- External -->

		<dependency>
			<groupid>com.sun.media</groupid>
			<artifactid>jai-codec</artifactid>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupid>com.thoughtworks.qdox</groupid>
			<artifactid>qdox</artifactid>
			<version>1.12</version>
		</dependency>
		<dependency>
			<groupid>commons-discovery</groupid>
			<artifactid>commons-discovery</artifactid>
			<version>0.4</version>
		</dependency>
		<dependency>
			<groupid>commons-httpclient</groupid>
			<artifactid>commons-httpclient</artifactid>
			<version>3.1</version>
		</dependency>
		<dependency>
			<groupid>commons-io</groupid>
			<artifactid>commons-io</artifactid>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupid>dom4j</groupid>
			<artifactid>dom4j</artifactid>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupid>easyconf</groupid>
			<artifactid>easyconf</artifactid>
			<version>0.9.5</version>
			<exclusions>
				<exclusion>
					<groupid>javax.sql</groupid>
					<artifactid>jdbc-stdext</artifactid>
				</exclusion>
				<exclusion>
					<groupid>struts</groupid>
					<artifactid>struts</artifactid>
				</exclusion>
				<exclusion>
					<groupid>xdoclet</groupid>
					<artifactid>xdoclet</artifactid>
				</exclusion>
				<exclusion>
					<groupid>xdoclet</groupid>
					<artifactid>xdoclet-web-module</artifactid>
				</exclusion>
				<exclusion>
					<groupid>xpp3</groupid>
					<artifactid>xpp3_min</artifactid>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupid>jalopy</groupid>
			<artifactid>jalopy</artifactid>
			<version>1.5rc3</version>
		</dependency>
		<dependency>
			<groupid>javax.portlet</groupid>
			<artifactid>portlet-api</artifactid>
			<version>2.0</version>
		</dependency>
		<dependency>
			<groupid>javax.servlet</groupid>
			<artifactid>servlet-api</artifactid>
			<version>2.5</version>
		</dependency>
		<dependency>
			<groupid>javax.servlet.jsp</groupid>
			<artifactid>jsp-api</artifactid>
			<version>2.1</version>
		</dependency>
		<dependency>
			<groupid>log4j</groupid>
			<artifactid>log4j</artifactid>
			<version>1.2.16</version>
			<exclusions>
				<exclusion>
					<groupid>com.sun.jdmk</groupid>
					<artifactid>jmxtools</artifactid>
				</exclusion>
				<exclusion>
					<groupid>com.sun.jmx</groupid>
					<artifactid>jmxri</artifactid>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupid>net.java.dev.rome</groupid>
			<artifactid>rome</artifactid>
			<version>1.0.0</version>
		</dependency>
		<dependency>
			<groupid>org.apache.ant</groupid>
			<artifactid>ant</artifactid>
			<version>1.8.2</version>
		</dependency>
		<dependency>
			<groupid>org.apache.axis</groupid>
			<artifactid>axis</artifactid>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupid>org.apache.axis</groupid>
			<artifactid>axis-ant</artifactid>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupid>org.apache.axis</groupid>
			<artifactid>axis-jaxrpc</artifactid>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupid>org.apache.jackrabbit</groupid>
			<artifactid>jackrabbit-core</artifactid>
			<version>2.1.2</version>
			<exclusions>
				<exclusion>
					<groupid>org.slf4j</groupid>
					<artifactid>jcl-over-slf4j</artifactid>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupid>org.apache.tika</groupid>
			<artifactid>tika-core</artifactid>
			<version>0.9</version>
		</dependency>
		<dependency>
			<groupid>org.apache.tomcat</groupid>
			<artifactid>tomcat-jdbc</artifactid>
			<version>7.0.22</version>
		</dependency>
		<dependency>
			<groupid>org.codehaus.plexus</groupid>
			<artifactid>plexus-archiver</artifactid>
			<version>1.0-alpha-9</version>
		</dependency>
		<dependency>
			<groupid>org.codehaus.plexus</groupid>
			<artifactid>plexus-io</artifactid>
			<version>1.0-alpha-1</version>
		</dependency>
		<dependency>
			<groupid>org.freemarker</groupid>
			<artifactid>freemarker</artifactid>
			<version>2.3.16</version>
		</dependency>
		<dependency>
			<groupid>org.slf4j</groupid>
			<artifactid>slf4j-api</artifactid>
			<version>1.6.4</version>
		</dependency>
		<dependency>
			<groupid>org.springframework</groupid>
			<artifactid>spring-context</artifactid>
			<version>3.0.6.RELEASE</version>
		</dependency>
		<dependency>
			<groupid>oro</groupid>
			<artifactid>oro</artifactid>
			<version>2.0.8</version>
		</dependency>
		<dependency>
			<groupid>wsdl4j</groupid>
			<artifactid>wsdl4j</artifactid>
			<version>1.6.2</version>
		</dependency>
		<!-- Test -->
		<dependency>
			<groupid>org.codehaus.plexus</groupid>
			<artifactid>plexus-container-default</artifactid>
			<version>1.5.5</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupid>org.apache.maven.plugin-testing</groupid>
			<artifactid>maven-plugin-testing-harness</artifactid>
			<version>2.0-alpha-1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>


A little bit modified version of lifeay-plugin's pom.xml with addtional dependencies for testing

Any idea what could be the reason for this and suggestions to fix it ?

~Kamesh
thumbnail
12年前 に Kamesh Sampath によって更新されました。

RE: Liferay Maven Plugin - Testing Issue

Regular Member 投稿: 158 参加年月日: 10/05/27 最新の投稿
Here is the updated pom.xml that will help the plugin tests to run even with existing 2.0.10 maven version on 3.x container


<!--?xml version="1.0"?-->

<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/maven-v4_0_0.xsd">
	<parent>
		<artifactid>plugins</artifactid>
		<groupid>com.liferay.maven</groupid>
		<version>6.2.0-SNAPSHOT</version>
		<relativepath>../pom.xml</relativepath>
	</parent>
	<modelversion>4.0.0</modelversion>
	<groupid>com.liferay.maven.plugins</groupid>
	<artifactid>liferay-maven-plugin</artifactid>
	<packaging>maven-plugin</packaging>
	<name>Liferay Maven 2 Plugin</name>
	<description>Contains goals to manage Liferay plugins.</description>
	<build>
		<plugins>
			<plugin>
				<artifactid>maven-plugin-plugin</artifactid>
				<version>2.9</version>
				<configuration>
					<goalprefix>liferay</goalprefix>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>

		<!-- Liferay -->

		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>portal-impl</artifactid>
			<version>${liferay.version}</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>portal-service</artifactid>
			<version>${liferay.version}</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>util-bridges</artifactid>
			<version>${liferay.version}</version>
		</dependency>
		<dependency>
			<groupid>com.liferay.portal</groupid>
			<artifactid>util-java</artifactid>
			<version>${liferay.version}</version>
		</dependency>

		<!-- Maven -->

		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-artifact</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-model</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-plugin-api</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-project</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven.shared</groupid>
			<artifactid>maven-invoker</artifactid>
			<version>${maven.version}</version>
		</dependency>
		<dependency>
			<groupid>org.apache.maven</groupid>
			<artifactid>maven-settings</artifactid>
			<version>${maven.version}</version>
		</dependency>

		<dependency>
			<groupid>org.codehaus.plexus</groupid>
			<artifactid>plexus-utils</artifactid>
			<version>3.0</version>
		</dependency>

		<!-- External -->

		<dependency>
			<groupid>com.sun.media</groupid>
			<artifactid>jai-codec</artifactid>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupid>com.thoughtworks.qdox</groupid>
			<artifactid>qdox</artifactid>
			<version>1.12</version>
		</dependency>
		<dependency>
			<groupid>commons-discovery</groupid>
			<artifactid>commons-discovery</artifactid>
			<version>0.4</version>
		</dependency>
		<dependency>
			<groupid>commons-httpclient</groupid>
			<artifactid>commons-httpclient</artifactid>
			<version>3.1</version>
		</dependency>
		<dependency>
			<groupid>commons-io</groupid>
			<artifactid>commons-io</artifactid>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupid>dom4j</groupid>
			<artifactid>dom4j</artifactid>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupid>easyconf</groupid>
			<artifactid>easyconf</artifactid>
			<version>0.9.5</version>
			<exclusions>
				<exclusion>
					<groupid>javax.sql</groupid>
					<artifactid>jdbc-stdext</artifactid>
				</exclusion>
				<exclusion>
					<groupid>struts</groupid>
					<artifactid>struts</artifactid>
				</exclusion>
				<exclusion>
					<groupid>xdoclet</groupid>
					<artifactid>xdoclet</artifactid>
				</exclusion>
				<exclusion>
					<groupid>xdoclet</groupid>
					<artifactid>xdoclet-web-module</artifactid>
				</exclusion>
				<exclusion>
					<groupid>xpp3</groupid>
					<artifactid>xpp3_min</artifactid>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupid>jalopy</groupid>
			<artifactid>jalopy</artifactid>
			<version>1.5rc3</version>
		</dependency>
		<dependency>
			<groupid>javax.portlet</groupid>
			<artifactid>portlet-api</artifactid>
			<version>2.0</version>
		</dependency>
		<dependency>
			<groupid>javax.servlet</groupid>
			<artifactid>servlet-api</artifactid>
			<version>2.5</version>
		</dependency>
		<dependency>
			<groupid>javax.servlet.jsp</groupid>
			<artifactid>jsp-api</artifactid>
			<version>2.1</version>
		</dependency>
		<dependency>
			<groupid>log4j</groupid>
			<artifactid>log4j</artifactid>
			<version>1.2.16</version>
			<exclusions>
				<exclusion>
					<groupid>com.sun.jdmk</groupid>
					<artifactid>jmxtools</artifactid>
				</exclusion>
				<exclusion>
					<groupid>com.sun.jmx</groupid>
					<artifactid>jmxri</artifactid>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupid>net.java.dev.rome</groupid>
			<artifactid>rome</artifactid>
			<version>1.0.0</version>
		</dependency>
		<dependency>
			<groupid>org.apache.ant</groupid>
			<artifactid>ant</artifactid>
			<version>1.8.2</version>
		</dependency>
		<dependency>
			<groupid>org.apache.axis</groupid>
			<artifactid>axis</artifactid>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupid>org.apache.axis</groupid>
			<artifactid>axis-ant</artifactid>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupid>org.apache.axis</groupid>
			<artifactid>axis-jaxrpc</artifactid>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupid>org.apache.jackrabbit</groupid>
			<artifactid>jackrabbit-core</artifactid>
			<version>2.1.2</version>
			<exclusions>
				<exclusion>
					<groupid>org.slf4j</groupid>
					<artifactid>jcl-over-slf4j</artifactid>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupid>org.apache.tika</groupid>
			<artifactid>tika-core</artifactid>
			<version>0.9</version>
		</dependency>
		<dependency>
			<groupid>org.apache.tomcat</groupid>
			<artifactid>tomcat-jdbc</artifactid>
			<version>7.0.22</version>
		</dependency>
		<dependency>
			<groupid>org.codehaus.plexus</groupid>
			<artifactid>plexus-archiver</artifactid>
			<version>1.0-alpha-9</version>
		</dependency>
		<dependency>
			<groupid>org.codehaus.plexus</groupid>
			<artifactid>plexus-io</artifactid>
			<version>1.0-alpha-1</version>
		</dependency>
		<dependency>
			<groupid>org.freemarker</groupid>
			<artifactid>freemarker</artifactid>
			<version>2.3.16</version>
		</dependency>
		<dependency>
			<groupid>org.slf4j</groupid>
			<artifactid>slf4j-api</artifactid>
			<version>1.6.4</version>
		</dependency>
		<dependency>
			<groupid>org.springframework</groupid>
			<artifactid>spring-context</artifactid>
			<version>3.0.6.RELEASE</version>
		</dependency>
		<dependency>
			<groupid>oro</groupid>
			<artifactid>oro</artifactid>
			<version>2.0.8</version>
		</dependency>
		<dependency>
			<groupid>wsdl4j</groupid>
			<artifactid>wsdl4j</artifactid>
			<version>1.6.2</version>
		</dependency>

		<!-- Test -->
		<dependency>
			<groupid>org.apache.maven.plugin-testing</groupid>
			<artifactid>maven-plugin-testing-harness</artifactid>
			<version>1.2</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

</project>
thumbnail
12年前 に Mika Koivisto によって更新されました。

RE: Liferay Maven Plugin - Testing Issue

Liferay Legend 投稿: 1519 参加年月日: 06/08/07 最新の投稿
Thanks for the info. I also need to create some automated tests for the plugin at some point.
thumbnail
12年前 に Kamesh Sampath によって更新されました。

RE: Liferay Maven Plugin - Testing Issue

Regular Member 投稿: 158 参加年月日: 10/05/27 最新の投稿
I have put down some test cases in the liferay-maven.-support pull request that i has sent you, though its not complete test suite but i have started with test setup and some basic tests.
11年前 に Amit Khanna によって更新されました。

RE: Liferay Maven Plugin - Testing Issue

New Member 投稿: 1 参加年月日: 13/02/27 最新の投稿
Could you please provide any reference/doc/blog of a liferay service test example with maven?

Thanks