.classpath | 4 modules/core/arquillian-integration/container/pom.xml | 22 +++++ modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/impl/util/SigarInstaller.java | 42 +++++++--- modules/core/arquillian-integration/container/src/main/resources/maven-properties.properties | 4 modules/plugins/jboss-as-7/pom.xml | 8 - 5 files changed, 65 insertions(+), 15 deletions(-)
New commits: commit afa006e24139c5badef4ac89ac22e0d6ce4e2280 Author: Thomas Segismont tsegismo@redhat.com Date: Mon Dec 24 16:28:01 2012 +0100
Integation tests: make rid of SigarInstaller hard coded Sigar version
diff --git a/.classpath b/.classpath index 2b8098f..e6e9eaf 100644 --- a/.classpath +++ b/.classpath @@ -169,9 +169,11 @@ <classpathentry kind="src" path="modules/helpers/rtfilter/src/main/java"/> <classpathentry kind="src" path="modules/core/plugin-container-itest/src/test/java"/> <classpathentry kind="src" path="modules/core/plugin-test-util/src/main/java"/> - <classpathentry kind="src" path="modules/core/arquillian-integration/container/src/test/java"/> <classpathentry kind="src" path="modules/core/arquillian-integration/archive/src/main/java"/> <classpathentry kind="src" path="modules/core/arquillian-integration/container/src/main/java"/> + <classpathentry kind="src" path="modules/core/arquillian-integration/container/src/main/resources"/> + <classpathentry kind="src" path="modules/core/arquillian-integration/container/src/test/java"/> + <classpathentry kind="src" path="modules/core/arquillian-integration/container/src/test/resources"/> <classpathentry kind="src" path="modules/test-utils/src/main/java"/> <classpathentry kind="src" path="modules/integration-tests/mod_cluster-plugin-test/src/test/java"/> <classpathentry kind="src" path="etc/samples/skeleton-plugin/src/main/java"/> diff --git a/modules/core/arquillian-integration/container/pom.xml b/modules/core/arquillian-integration/container/pom.xml index f01d018..2a397ab 100644 --- a/modules/core/arquillian-integration/container/pom.xml +++ b/modules/core/arquillian-integration/container/pom.xml @@ -20,6 +20,28 @@ <name>RHQ Arquillian Plugin Container</name> <description>RHQ Embedded Agent Plugin Container integration for Arquillian</description>
+ <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + <includes> + <include>maven-properties.properties</include> + </includes> + </resource> + <resource> + <directory>src/main/resources</directory> + <filtering>false</filtering> + <includes> + <include>**/*</include> + </includes> + <excludes> + <exclude>maven-properties.properties</exclude> + </excludes> + </resource> + </resources> + </build> + <!-- Dependencies --> <dependencies>
diff --git a/modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/impl/util/SigarInstaller.java b/modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/impl/util/SigarInstaller.java index 97b6df8..cad7f7d 100644 --- a/modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/impl/util/SigarInstaller.java +++ b/modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/impl/util/SigarInstaller.java @@ -21,7 +21,9 @@ package org.rhq.test.arquillian.impl.util; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; +import java.io.InputStream; import java.util.Collection; +import java.util.Properties; import java.util.UUID;
import org.apache.commons.logging.Log; @@ -56,18 +58,40 @@ public class SigarInstaller { }
private void init() { + MavenDependencyResolver mavenDependencyResolver = DependencyResolvers.use(MavenDependencyResolver.class);
- // artifact specifier format is "<groupId>:<artifactId>[:<extension>[:<classifier>]][:<version >]" - Collection<JavaArchive> sigars = mavenDependencyResolver - .loadMetadataFromPom("pom.xml") - .goOffline() - // TODO (ips, 05/02/12): Figure out how to make this work without hard-coding the version. - .artifact("org.hyperic:sigar-dist:zip:1.6.5.132-3") - .resolveAs(JavaArchive.class); + // Read the desired properties from the Maven filtered resource file + Properties pomProperties = new Properties(); + InputStream propertyFileInputStream = getClass().getClassLoader().getResourceAsStream( + "maven-properties.properties"); + try { + pomProperties.load(propertyFileInputStream); + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + if (propertyFileInputStream != null) { + try { + propertyFileInputStream.close(); + } catch (IOException ignore) { + } + } + } + + String sigarVersion = pomProperties.getProperty("sigar.version"); + if (sigarVersion == null) { + throw new RuntimeException("Could not read Sigar version from the properties file"); + } + + // Artifact specifier format is "<groupId>:<artifactId>[:<extension>[:<classifier>]][:<version >]" + String sigarArtifactCoordinates = "org.hyperic:sigar-dist:zip:" + sigarVersion; + + Collection<JavaArchive> sigars = mavenDependencyResolver.loadMetadataFromPom("pom.xml").goOffline() + .artifact(sigarArtifactCoordinates).resolveAs(JavaArchive.class);
- if (sigars.size() > 1) { - LOG.warn("More than 1 org.hyperic:sigar-dist artifact found in the current POM: " + sigars); + // The previous search can only find a single artifact (fully qualified) + if (sigars.size() != 1) { + throw new RuntimeException(sigarArtifactCoordinates + " search resolved to more than 1 artifact"); }
sigarDistArtifact = sigars.iterator().next(); diff --git a/modules/core/arquillian-integration/container/src/main/resources/maven-properties.properties b/modules/core/arquillian-integration/container/src/main/resources/maven-properties.properties new file mode 100644 index 0000000..0eb80b4 --- /dev/null +++ b/modules/core/arquillian-integration/container/src/main/resources/maven-properties.properties @@ -0,0 +1,4 @@ +#This file helps test classes to load properties coming from Maven POM +#It is filtered during the process-resources phase of a Maven build +#Add the properties you need here +sigar.version=${sigar.version} \ No newline at end of file diff --git a/modules/plugins/jboss-as-7/pom.xml b/modules/plugins/jboss-as-7/pom.xml index 14ef20f..bee2bbb 100644 --- a/modules/plugins/jboss-as-7/pom.xml +++ b/modules/plugins/jboss-as-7/pom.xml @@ -330,12 +330,10 @@ <target> <!-- Set as7.zipfile name before download --> <property name="as7.zipfile" location="${java.io.tmpdir}/jboss-as7-${as7.version}.zip"/> - <!-- Defensive clean --> - <delete file="${as7.zipfile}" quiet="true" /> <!-- Defensive clean (jboss7.home is a POM property) --> <delete dir="${jboss7.home}" quiet="true"/> - <!-- Download as7 dist --> - <get src="${as7.url}" dest="${as7.zipfile}" verbose="true"/> + <!-- Download as7 dist if not already present --> + <get src="${as7.url}" dest="${as7.zipfile}" usetimestamp="true" verbose="true" /> <!-- Unzip as7 dist to jboss7.home --> <unzip src="${as7.zipfile}" dest="${jboss7.home}"> <!-- cutdirsmapper available since ANT 1.8.2. See http://ant.apache.org/manual/Types/mapper.html --> @@ -367,7 +365,7 @@ </goals> <configuration> <target> - <delete dir="${jboss7.home}" verbose="true"/> + <delete dir="${jboss7.home}" /> </target> </configuration> </execution>
rhq-commits@lists.fedorahosted.org