.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(a)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>