modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java | 40 ++
modules/core/domain/pom.xml | 7
modules/enterprise/agent/ant-run.xml | 21 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.bat | 2
modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.bat | 2
modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh | 2
modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java | 15 -
modules/enterprise/server/installer/src/test/java/org/rhq/enterprise/server/installer/client/DatasourceJBossASClientTest.java | 3
modules/enterprise/server/itests-2/pom.xml | 29 --
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java | 3
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java | 91 +++---
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java | 7
modules/plugins/cassandra/pom.xml | 136 +++++-----
13 files changed, 209 insertions(+), 149 deletions(-)
New commits:
commit ff06218f96c862f554fd684820f06a0b3c3b074e
Merge: ebdff7f 2c9a8bd
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Dec 13 09:04:35 2012 -0600
Merge branch 'master' into feature/cassandra-backend
commit 2c9a8bd0e7b79dac706195f7a1a2474b1c39f631
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Dec 13 10:02:55 2012 -0500
Replace more instances of straight division with approach that maintains precision.
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
index 8861378..e87bff2 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
@@ -203,7 +203,8 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
MeasurementAggregate actual = dataManager.getAggregate(overlord, dynamicSchedule.getId(),
beginTime.getMillis(), endTime.getMillis());
- MeasurementAggregate expected = new MeasurementAggregate(1.1, (1.1 + 2.2 + 3.3 + 4.4 + 5.5 + 6.6) / 6, 6.6);
+ MeasurementAggregate expected = new MeasurementAggregate(1.1, divide((1.1 + 2.2 + 3.3 + 4.4 + 5.5 + 6.6), 6),
+ 6.6);
AssertUtils.assertPropertiesMatch(expected, actual, "Aggregate does not match");
}
@@ -236,9 +237,9 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
assertEquals("Expected to get back 60 data points.", buckets.getNumDataPoints(), actualData.size());
MeasurementDataNumericHighLowComposite expectedBucket0Data = new MeasurementDataNumericHighLowComposite(
- buckets.get(0), (2.0 + 5.0 + 3.0) / 3, 6.0, 1.0);
+ buckets.get(0), divide((2.0 + 5.0 + 3.0), 3), 6.0, 1.0);
MeasurementDataNumericHighLowComposite expectedBucket59Data = new MeasurementDataNumericHighLowComposite(
- buckets.get(59), (5.0 + 5.0 + 3.0) / 3, 9.0, 2.0);
+ buckets.get(59), divide((5.0 + 5.0 + 3.0), 3), 9.0, 2.0);
assertPropertiesMatch("The data for bucket 0 does not match the expected values.", expectedBucket0Data,
actualData.get(0));
commit 64b887e487f4bc90677148778e3316b4e975c9fb
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Dec 13 09:41:48 2012 -0500
remove recovery plugin from postgres XA test datasource, not needed since
the mem-leak issue is not relevant in a test run and the declaration of this
workaround class is problematic.
diff --git a/modules/enterprise/server/itests-2/pom.xml b/modules/enterprise/server/itests-2/pom.xml
index e1b466f..f58396a 100644
--- a/modules/enterprise/server/itests-2/pom.xml
+++ b/modules/enterprise/server/itests-2/pom.xml
@@ -520,9 +520,6 @@
<statement>
<prepared-statement-cache-size>75</prepared-statement-cache-size>
</statement>
- <recovery no-recovery="false">
- <recover-plugin class-name="org.jboss.jca.core.recovery.ValidatingManagedConnectionFactoryRecoveryPlugin"/>
- </recovery>
</xa-datasource>]]></replacevalue>
</replacefilter>
commit 866e7803407fe4fe18c6fdf54ca3344b70b02a25
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Dec 12 15:51:21 2012 -0500
installer work
- remove debugging system.out.println
- protect paths with quotes in rhq-installer.bat
- reduce dev installer retry from 5 to 3 if the remote admin endpoint in AS isn't ready
- not sure, this retry seems to do some wonky things on win
diff --git a/modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java b/modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java
index 1b5b462..c3ceec2 100644
--- a/modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java
+++ b/modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java
@@ -307,8 +307,6 @@ public class DatasourceJBossASClient extends JBossASClient {
preparedStatementCacheSize, recoveryPluginClassName, securityDomain, staleConnectionCheckerClassName,
transactionIsolation, validConnectionCheckerClassName);
- System.out.println("**** \n" + dmr);
-
Address addr = Address.root().add(SUBSYSTEM, SUBSYSTEM_DATASOURCES, XA_DATA_SOURCE, name);
final ModelNode request1 = ModelNode.fromString(dmr);
request1.get(OPERATION).set(ADD);
diff --git a/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh b/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh
index e7cadef..5369ab2 100755
--- a/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh
+++ b/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh
@@ -11,7 +11,7 @@ _INSTALLER_SCRIPT="${RHQ_SERVER_HOME}/bin/rhq-installer.sh"
# we are normally executed just before the server starts, so give it time to initialize
sleep 5
-_TRIES="1 2 3"
+_TRIES="1 2"
for _TRY in $_TRIES
do
echo Running Installer Now...
diff --git a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java
index c65001d..5c0316d 100644
--- a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java
+++ b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java
@@ -522,13 +522,6 @@ public class ServerInstallUtil {
props.put("PortNumber", "${rhq.server.database.port:5432}");
props.put("DatabaseName", "${rhq.server.database.db-name:rhq}");
- /* TODO: Use this version which defines the recovery plugin
- xaDsRequest = client.createNewXADatasourceRequest(RHQ_DATASOURCE_NAME_XA, 30000, JDBC_DRIVER_POSTGRES,
- "org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter", 15, 5, 50, Boolean.FALSE,
- (Boolean) null, 75, "org.jboss.jca.core.recovery.ValidatingManagedConnectionFactoryRecoveryPlugin",
- RHQ_DS_SECURITY_DOMAIN, (String) null, "TRANSACTION_READ_COMMITTED",
- "org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker", props);
- */
xaDsRequest = client.createNewXADatasourceRequest(RHQ_DATASOURCE_NAME_XA, 30000, JDBC_DRIVER_POSTGRES,
"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter", 15, 5, 50, (Boolean) null,
(Boolean) null, 75, (String) null, RHQ_DS_SECURITY_DOMAIN, (String) null, "TRANSACTION_READ_COMMITTED",
commit 2f61a838d951ef6746eb0f2989ec3cf5a24a8b75
Author: Simeon Pinder <spinder(a)fulliautomatix.conchfritter.com>
Date: Wed Dec 12 14:47:54 2012 -0500
Update the zip and chmod processing filters for the agent to include all of the shared library file extensions.
diff --git a/modules/enterprise/agent/ant-run.xml b/modules/enterprise/agent/ant-run.xml
index 4085efd..93ccd25 100644
--- a/modules/enterprise/agent/ant-run.xml
+++ b/modules/enterprise/agent/ant-run.xml
@@ -21,6 +21,7 @@ Ant Script that provides ways to package the Agent.
<property name="jaxb-api.version" value="2.1"/>
<property name="jaxb-impl.version" value="2.1"/>
<property name="log4j.version" value="1.2.16"/>
+ <property name="so.exts" value="*.so.*"/>
<!--
=======================================================================
@@ -129,6 +130,7 @@ Ant Script that provides ways to package the Agent.
<include name="**/lib/sigar.jar"/>
<include name="**/lib/bcel*.jar"/>
<include name="**/lib/*.so"/>
+ <include name="**/lib/${so.exts}"/>
<include name="**/lib/*.sl"/>
<include name="**/lib/*.dll"/>
<include name="**/lib/*.dylib"/>
@@ -139,21 +141,21 @@ Ant Script that provides ways to package the Agent.
<fileset refid="augeas.native.fileset" />
<patternset>
<include name="**/lib*/*.so"/>
- <include name="**/lib*/*.so.1"/>
+ <include name="**/lib*/${so.exts}"/>
</patternset>
</unzip>
<move todir="${agent.distro.dir}/lib/augeas/lib" flatten="true" overwrite="false">
<fileset dir="${agent.distro.dir}/lib/augeas-native-${augeas.zip.version}/lib">
<include name="*.so" />
- <include name="*.so.1" />
+ <include name="${so.exts}" />
</fileset>
</move>
<move todir="${agent.distro.dir}/lib/augeas/lib64" flatten="true" overwrite="false">
<fileset dir="${agent.distro.dir}/lib/augeas-native-${augeas.zip.version}/lib64">
<include name="*.so" />
- <include name="*.so.1" />
+ <include name="${so.exts}" />
</fileset>
</move>
@@ -172,9 +174,9 @@ Ant Script that provides ways to package the Agent.
<delete failonerror="false" includeEmptyDirs="true" verbose="true">
<fileset dir="${agent.distro.dir}/lib" includes="hyperic-sigar-*/"/>
</delete>
- <chmod dir="${agent.distro.dir}/lib" perm="ug+rx" includes="*.so,*.sl,*.dylib"/>
- <chmod dir="${agent.distro.dir}/lib/augeas/lib" perm="ug+rx" includes="*.so,*.so.1"/>
- <chmod dir="${agent.distro.dir}/lib/augeas/lib64" perm="ug+rx" includes="*.so,*.so.1"/>
+ <chmod dir="${agent.distro.dir}/lib" perm="ug+rx" includes="*.so,${so.exts},*.sl,*.dylib"/>
+ <chmod dir="${agent.distro.dir}/lib/augeas/lib" perm="ug+rx" includes="*.so,${so.exts}"/>
+ <chmod dir="${agent.distro.dir}/lib/augeas/lib64" perm="ug+rx" includes="*.so,${so.exts}"/>
<copy todir="${agent.distro.dir}/bin">
<fileset dir="${basedir}/src/etc"
@@ -217,7 +219,7 @@ Ant Script that provides ways to package the Agent.
<include name="rhq-agent/**"/>
<exclude name="rhq-agent/bin/*.sh"/>
<exclude name="rhq-agent/lib/*.so"/>
- <exclude name="rhq-agent/lib/*.so.1"/>
+ <exclude name="rhq-agent/lib/${so.exts}"/>
<exclude name="rhq-agent/lib/*.sl"/>
<exclude name="rhq-agent/lib/*.dylib"/>
<exclude name="rhq-agent/lib/augeas/**" />
@@ -225,12 +227,13 @@ Ant Script that provides ways to package the Agent.
<zipfileset dir="${basedir}/target" filemode="755" dirmode="755">
<include name="rhq-agent/bin/*.sh"/>
<include name="rhq-agent/lib/*.so"/>
+ <include name="rhq-agent/lib/${so.exts}"/>
<include name="rhq-agent/lib/*.sl"/>
<include name="rhq-agent/lib/*.dylib"/>
<include name="rhq-agent/lib/augeas/lib/*.so"/>
- <include name="rhq-agent/lib/augeas/lib/*.so.1"/>
+ <include name="rhq-agent/lib/augeas/lib/${so.exts}"/>
<include name="rhq-agent/lib/augeas/lib64/*.so"/>
- <include name="rhq-agent/lib/augeas/lib64/*.so.1"/>
+ <include name="rhq-agent/lib/augeas/lib64/${so.exts}"/>
</zipfileset>
</zip>
commit 685985600a5e0e9468b6e393c7fa09d5772b0afe
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Dec 12 12:37:13 2012 -0500
this is for unix developers - only retry 3 times - if the installer can't do its thing by then, something is probably wrong anyway.
this doesn't involve production functionality - rhq-autonistaller.sh is only for dev mode builds
diff --git a/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh b/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh
index f61a482..e7cadef 100755
--- a/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh
+++ b/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.sh
@@ -11,7 +11,7 @@ _INSTALLER_SCRIPT="${RHQ_SERVER_HOME}/bin/rhq-installer.sh"
# we are normally executed just before the server starts, so give it time to initialize
sleep 5
-_TRIES="1 2 3 4 5"
+_TRIES="1 2 3"
for _TRY in $_TRIES
do
echo Running Installer Now...
commit 7e1c0397aa94683d0efb35166c3970dae969ea46
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Dec 12 12:33:20 2012 -0500
only have it try 2 times (as opposed to 5). if the server isn't up in time for our installer to do its thing by then, something is probably wrong anyway
this is only for windows developers use (dev mode) so this isn't involving production functionality
diff --git a/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.bat b/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.bat
index b756b31..888d147 100644
--- a/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.bat
+++ b/modules/enterprise/server/appserver/src/main/dev-resources/bin/rhq-autoinstall.bat
@@ -19,7 +19,7 @@ rem we are normally executed just before the server starts, so give it time to i
rem yes, this is a sleep of 5s, backwards compatible to XP
ping 127.0.0.1 -n 5 -w 1000 > nul
-for /L %%i in (1,1,5) do (
+for /L %%i in (1,1,2) do (
echo Running Installer Now...
CALL "%_INSTALLER_SCRIPT%"
if ERRORLEVEL 2 (
commit 5f3dbdeeb2e800f3b730dc0f3befad9b244e6615
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Dec 12 12:26:04 2012 -0500
fix windows script so dir names are quoted when starting the vm
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.bat
index 81d83ad..3140467 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.bat
@@ -136,7 +136,7 @@ if defined RHQ_SERVER_DEBUG echo _JBOSS_MODULEPATH: %_JBOSS_MODULEPATH%
echo Starting RHQ Server installer ...
rem start the AS instance with our main installer module
-%RHQ_SERVER_JAVA_EXE_FILE_PATH% %RHQ_SERVER_INSTALLER_JAVA_OPTS% %RHQ_SERVER_INSTALLER_ADDITIONAL_JAVA_OPTS% -jar %RHQ_SERVER_HOME%\jbossas\jboss-modules.jar -mp %_JBOSS_MODULEPATH% org.rhq.rhq-installer-util %*
+"%RHQ_SERVER_JAVA_EXE_FILE_PATH%" %RHQ_SERVER_INSTALLER_JAVA_OPTS% %RHQ_SERVER_INSTALLER_ADDITIONAL_JAVA_OPTS% -jar "%RHQ_SERVER_HOME%\jbossas\jboss-modules.jar" -mp "%_JBOSS_MODULEPATH%" org.rhq.rhq-installer-util %*
goto :done
commit 946dee4b2e8c8ce275f069a3c79efedd3c7aaf74
Author: Jay Shaughnessy <jshaughn(a)jshaughn.csb>
Date: Wed Dec 12 09:12:47 2012 -0500
Oracle testing
- Add no-tx-separate=pools=true for ora XA datasource to avoid connection issues
- remove SetBigStringTryClob conn prop for oracle because we shouldn't need
it with the Ora11 driver and trying to set hits an AS bug
- apply necessary changes to installer as well as test code
- fix issues with aggressive and sometimes non-functioning cleanup code in MeasurementDataManagerBeanTest
- Add oracle driver jar to test deployment to support dbunit
Also
- Add support for recovery-plugin class for postgres to avoid mem leak in 7.1.1.Final.
(note - the actual use of that hook will be in a subsequent commit)
diff --git a/modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java b/modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java
index ab44796..1b5b462 100644
--- a/modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java
+++ b/modules/common/jboss-as-dmr-client/src/main/java/org/rhq/common/jbossas/client/controller/DatasourceJBossASClient.java
@@ -261,9 +261,12 @@ public class DatasourceJBossASClient extends JBossASClient {
* @param idleTimeoutMinutes
* @param minPoolSize
* @param maxPoolSize
+ * @param noRecovery optional, left unset if null
+ * @param noTxSeparatePools optional, left unset if null
* @param preparedStatementCacheSize
+ * @param recoveryPluginClassName optional, left unset if null
* @param securityDomain
- * @param staleConnectionCheckerClassName
+ * @param staleConnectionCheckerClassName optional, left unset if null
* @param transactionIsolation
* @param validConnectionCheckerClassName
* @param xaDatasourceProperties
@@ -271,9 +274,10 @@ public class DatasourceJBossASClient extends JBossASClient {
* @return the request that can be used to create the XA datasource
*/
public ModelNode createNewXADatasourceRequest(String name, int blockingTimeoutWaitMillis, String driverName,
- String exceptionSorterClassName, int idleTimeoutMinutes, int minPoolSize, int maxPoolSize,
- int preparedStatementCacheSize, String securityDomain, String staleConnectionCheckerClassName,
- String transactionIsolation, String validConnectionCheckerClassName, Map<String, String> xaDatasourceProperties) {
+ String exceptionSorterClassName, int idleTimeoutMinutes, int minPoolSize, int maxPoolSize, Boolean noRecovery,
+ Boolean noTxSeparatePools, int preparedStatementCacheSize, String recoveryPluginClassName,
+ String securityDomain, String staleConnectionCheckerClassName, String transactionIsolation,
+ String validConnectionCheckerClassName, Map<String, String> xaDatasourceProperties) {
String jndiName = "java:jboss/datasources/" + name;
@@ -286,8 +290,11 @@ public class DatasourceJBossASClient extends JBossASClient {
+ ", \"jndi-name\" => \"%s\" " //
+ ", \"jta\" => true " //
+ ", \"min-pool-size\" => %d " //
- + ", \"max-pool-size\" => %d " //
+ + ", \"max-pool-size\" => %d " //
+ + ", \"no-recovery\" => %b " //
+ + ", \"no-tx-separate-pools\" => %b " //
+ ", \"prepared-statements-cache-size\" => %dL " //
+ + ", \"recovery-plugin-class-name\" => \"%s\" " //
+ ", \"security-domain\" => \"%s\" " //
+ ", \"stale-connection-checker-class-name\" => \"%s\" " //
+ ", \"transaction-isolation\" => \"%s\" " //
@@ -296,8 +303,11 @@ public class DatasourceJBossASClient extends JBossASClient {
+ "}";
String dmr = String.format(dmrTemplate, blockingTimeoutWaitMillis, driverName, exceptionSorterClassName,
- idleTimeoutMinutes, jndiName, minPoolSize, maxPoolSize, preparedStatementCacheSize, securityDomain,
- staleConnectionCheckerClassName, transactionIsolation, validConnectionCheckerClassName);
+ idleTimeoutMinutes, jndiName, minPoolSize, maxPoolSize, noRecovery, noTxSeparatePools,
+ preparedStatementCacheSize, recoveryPluginClassName, securityDomain, staleConnectionCheckerClassName,
+ transactionIsolation, validConnectionCheckerClassName);
+
+ System.out.println("**** \n" + dmr);
Address addr = Address.root().add(SUBSYSTEM, SUBSYSTEM_DATASOURCES, XA_DATA_SOURCE, name);
final ModelNode request1 = ModelNode.fromString(dmr);
@@ -327,6 +337,22 @@ public class DatasourceJBossASClient extends JBossASClient {
batch[n++] = requestN;
}
- return createBatchRequest(batch);
+ ModelNode result = createBatchRequest(batch);
+
+ // remove unset args
+ if (null == noRecovery) {
+ result.get("steps").get(0).remove("no-recovery");
+ }
+ if (null == noTxSeparatePools) {
+ result.get("steps").get(0).remove("no-tx-separate-pools");
+ }
+ if (null == recoveryPluginClassName) {
+ result.get("steps").get(0).remove("recovery-plugin-class-name");
+ }
+ if (null == staleConnectionCheckerClassName) {
+ result.get("steps").get(0).remove("stale-connection-checker-class-name");
+ }
+
+ return result;
}
}
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e874c08..cb7699b 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -381,7 +381,7 @@
</timeout>
<statement>
<prepared-statement-cache-size>75</prepared-statement-cache-size>
- </statement>
+ </statement>
</xa-datasource>]]></replacevalue>
</replacefilter>
@@ -441,6 +441,11 @@
<xa-pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
+ <!--
+ Oracle does not like XA connections getting used both inside and outside a JTA transaction.
+ To workaround the problem you can create separate sub-pools for the different contexts using <no-tx-separate-pools/>
+ -->
+ <no-tx-separate-pools>true</no-tx-separate-pools>
</xa-pool>
<security>
<security-domain>RHQDSSecurityDomain</security-domain>
diff --git a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java
index 516dca6..c65001d 100644
--- a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java
+++ b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java
@@ -511,7 +511,7 @@ public class ServerInstallUtil {
"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter", 15, false, 2, 5, 75,
RHQ_DS_SECURITY_DOMAIN, "-unused-stale-conn-checker-", "TRANSACTION_READ_COMMITTED",
"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker", props);
- noTxDsRequest.get("steps").get(0).remove("stale-connection-checker-class-name"); // we don't have one of these for postgres
+ noTxDsRequest.get("steps").get(0).remove("stale-connection-checker-class-name"); // we don't have one of these for postgres
} else {
LOG.info("Postgres datasource [" + RHQ_DATASOURCE_NAME_NOTX + "] already exists");
}
@@ -522,11 +522,18 @@ public class ServerInstallUtil {
props.put("PortNumber", "${rhq.server.database.port:5432}");
props.put("DatabaseName", "${rhq.server.database.db-name:rhq}");
+ /* TODO: Use this version which defines the recovery plugin
xaDsRequest = client.createNewXADatasourceRequest(RHQ_DATASOURCE_NAME_XA, 30000, JDBC_DRIVER_POSTGRES,
- "org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter", 15, 5, 50, 75,
- RHQ_DS_SECURITY_DOMAIN, "-unused-stale-conn-checker-", "TRANSACTION_READ_COMMITTED",
+ "org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter", 15, 5, 50, Boolean.FALSE,
+ (Boolean) null, 75, "org.jboss.jca.core.recovery.ValidatingManagedConnectionFactoryRecoveryPlugin",
+ RHQ_DS_SECURITY_DOMAIN, (String) null, "TRANSACTION_READ_COMMITTED",
+ "org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker", props);
+ */
+ xaDsRequest = client.createNewXADatasourceRequest(RHQ_DATASOURCE_NAME_XA, 30000, JDBC_DRIVER_POSTGRES,
+ "org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter", 15, 5, 50, (Boolean) null,
+ (Boolean) null, 75, (String) null, RHQ_DS_SECURITY_DOMAIN, (String) null, "TRANSACTION_READ_COMMITTED",
"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker", props);
- xaDsRequest.get("steps").get(0).remove("stale-connection-checker-class-name"); // we don't have one of these for postgres
+
} else {
LOG.info("Postgres XA datasource [" + RHQ_DATASOURCE_NAME_XA + "] already exists");
}
@@ -549,7 +556,6 @@ public class ServerInstallUtil {
if (!client.isDatasource(RHQ_DATASOURCE_NAME_NOTX)) {
props.put("char.encoding", "UTF-8");
- props.put("SetBigStringTryClob", "true");
noTxDsRequest = client.createNewDatasourceRequest(RHQ_DATASOURCE_NAME_NOTX, 30000,
"${rhq.server.database.connection-url:jdbc:oracle:thin:@127.0.0.1:1521:rhq}", JDBC_DRIVER_ORACLE,
@@ -564,11 +570,11 @@ public class ServerInstallUtil {
if (!client.isDatasource(RHQ_DATASOURCE_NAME_XA)) {
props.clear();
props.put("URL", "${rhq.server.database.connection-url:jdbc:oracle:thin:@127.0.0.1:1521:rhq}");
- props.put("ConnectionProperties", "SetBigStringTryClob=true");
xaDsRequest = client.createNewXADatasourceRequest(RHQ_DATASOURCE_NAME_XA, 30000, JDBC_DRIVER_ORACLE,
- "org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter", 15, 5, 50, 75,
- RHQ_DS_SECURITY_DOMAIN, "org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker",
+ "org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter", 15, 5, 50, (Boolean) null,
+ Boolean.TRUE, 75, (String) null, RHQ_DS_SECURITY_DOMAIN,
+ "org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker",
"TRANSACTION_READ_COMMITTED",
"org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker", props);
} else {
diff --git a/modules/enterprise/server/installer/src/test/java/org/rhq/enterprise/server/installer/client/DatasourceJBossASClientTest.java b/modules/enterprise/server/installer/src/test/java/org/rhq/enterprise/server/installer/client/DatasourceJBossASClientTest.java
index f2dd7bc..52a3478 100644
--- a/modules/enterprise/server/installer/src/test/java/org/rhq/enterprise/server/installer/client/DatasourceJBossASClientTest.java
+++ b/modules/enterprise/server/installer/src/test/java/org/rhq/enterprise/server/installer/client/DatasourceJBossASClientTest.java
@@ -106,7 +106,8 @@ public class DatasourceJBossASClientTest {
xaDSProps.put("ConnectionProperties", "SetBigStringTryClob=true");
ModelNode request = client.createNewXADatasourceRequest("RHQDS", 30000, "oracle",
- "org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter", 15, 2, 5, 75, "RHQDSSecurityDomain",
+ "org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter", 15, 2, 5, (Boolean) null,
+ Boolean.TRUE, 75, (String) null, "RHQDSSecurityDomain",
"org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker", "TRANSACTION_READ_COMMITTED",
"org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker", xaDSProps);
diff --git a/modules/enterprise/server/itests-2/pom.xml b/modules/enterprise/server/itests-2/pom.xml
index c0c420e..e1b466f 100644
--- a/modules/enterprise/server/itests-2/pom.xml
+++ b/modules/enterprise/server/itests-2/pom.xml
@@ -23,7 +23,8 @@
<properties>
<jboss.zip>${settings.localRepository}/org/jboss/as/jboss-as-dist/${jboss.version}/jboss-as-dist-${jboss.version}.zip</jboss.zip>
<jboss.unzip.location>${basedir}/target/jboss-as-${jboss.version}</jboss.unzip.location>
- <jboss.vm.args>-Xmx700m -XX:MaxPermSize=200m -Djava.security.manager -Djava.security.policy==${jboss.unzip.location}/security.policy</jboss.vm.args>
+ <jboss.vm.args>-Xmx700m -XX:MaxPermSize=200m -Djava.security.manager
+ -Djava.security.policy==${jboss.unzip.location}/security.policy</jboss.vm.args>
<jboss.vm.args.debug></jboss.vm.args.debug> <!-- -Ditest.debug can override this, see below -->
</properties>
@@ -225,11 +226,9 @@
<echo>JBossAS ${jboss.version} should now be at: ${jboss.unzip.location}</echo>
<echo>Copying security policy to JBossAS</echo>
- <copy file="${project.build.directory}/test-classes/security.policy" tofile="${jboss.unzip.location}/security.policy"/>
-
- <property
- name="jboss.conf"
- location="${jboss.unzip.location}/standalone/configuration/standalone.xml" />
+ <copy file="${project.build.directory}/test-classes/security.policy" tofile="${jboss.unzip.location}/security.policy" />
+
+ <property name="jboss.conf" location="${jboss.unzip.location}/standalone/configuration/standalone.xml" />
<echo>Will now add test configuration to JBossAS config file: ${jboss.conf}</echo>
<replace file="${jboss.conf}">
@@ -520,7 +519,10 @@
</timeout>
<statement>
<prepared-statement-cache-size>75</prepared-statement-cache-size>
- </statement>
+ </statement>
+ <recovery no-recovery="false">
+ <recover-plugin class-name="org.jboss.jca.core.recovery.ValidatingManagedConnectionFactoryRecoveryPlugin"/>
+ </recovery>
</xa-datasource>]]></replacevalue>
</replacefilter>
@@ -580,6 +582,11 @@
<xa-pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
+ <!--
+ Oracle does not like XA connections getting used both inside and outside a JTA transaction.
+ To workaround the problem you can create separate sub-pools for the different contexts using <no-tx-separate-pools/>
+ -->
+ <no-tx-separate-pools>true</no-tx-separate-pools>
</xa-pool>
<security>
<security-domain>RHQDSSecurityDomain</security-domain>
@@ -631,15 +638,8 @@
<clean.db>${clean.db}</clean.db>
<log4j.configDebug>false</log4j.configDebug>
<project.version>${project.version}</project.version>
-
- <rhq.test.ds.type-mapping>${rhq.test.ds.type-mapping}</rhq.test.ds.type-mapping>
- <rhq.test.ds.server-name>${rhq.test.ds.server-name}</rhq.test.ds.server-name>
- <rhq.test.ds.db-name>${rhq.test.ds.db-name}</rhq.test.ds.db-name>
- <rhq.test.ds.connection-url>${rhq.test.ds.connection-url}</rhq.test.ds.connection-url>
- <rhq.db.admin.username>${rhq.db.admin.username}</rhq.db.admin.username>
- <rhq.db.admin.password>${rhq.db.admin.password}</rhq.db.admin.password>
- <rhq.test.ds.user-name>${rhq.test.ds.user-name}</rhq.test.ds.user-name>
- <rhq.test.ds.password>${rhq.test.ds.password}</rhq.test.ds.password>
+ <rhq.skip.oracle>${skip.oracle}</rhq.skip.oracle>
+ <rhq.ojdbc.version>${ojdbc6.version}</rhq.ojdbc.version>
</systemPropertyVariables>
<additionalClasspathElements>
<!-- The below is required for tests to run against Oracle. -->
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
index 9c2882c..8861378 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java
@@ -31,6 +31,8 @@ import static org.rhq.core.domain.measurement.NumericType.DYNAMIC;
import static org.rhq.core.domain.resource.ResourceCategory.SERVER;
import static org.rhq.test.AssertUtils.assertPropertiesMatch;
+import java.math.BigDecimal;
+import java.math.MathContext;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@@ -46,6 +48,7 @@ import org.testng.annotations.Test;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.EntityContext;
+import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementReport;
@@ -59,8 +62,10 @@ import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.drift.DriftServerPluginService;
import org.rhq.enterprise.server.measurement.util.MeasurementDataManagerUtility;
+import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.test.TransactionCallback;
+import org.rhq.enterprise.server.util.ResourceTreeHelper;
import org.rhq.test.AssertUtils;
/**
@@ -108,6 +113,9 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
@EJB
private MeasurementDataManagerLocal dataManager;
+ @EJB
+ private ResourceManagerLocal resourceManager;
+
@Override
protected void beforeMethod() throws Exception {
overlord = subjectManager.getOverlord();
@@ -149,15 +157,14 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
dataManager.mergeMeasurementReport(report);
List<MeasurementDataNumericHighLowComposite> actualData = findDataForContext(overlord,
- EntityContext.forResource(resource.getId()), dynamicSchedule, beginTime.getMillis(),
- endTime.getMillis());
+ EntityContext.forResource(resource.getId()), dynamicSchedule, beginTime.getMillis(), endTime.getMillis());
assertEquals("Expected to get back 60 data points.", buckets.getNumDataPoints(), actualData.size());
MeasurementDataNumericHighLowComposite expectedBucket0Data = new MeasurementDataNumericHighLowComposite(
- buckets.get(0), (1.1 + 2.2 + 3.3) / 3, 3.3, 1.1);
+ buckets.get(0), divide((1.1 + 2.2 + 3.3), 3), 3.3, 1.1);
MeasurementDataNumericHighLowComposite expectedBucket59Data = new MeasurementDataNumericHighLowComposite(
- buckets.get(59), (4.4 + 5.5 + 6.6) / 3, 6.6, 4.4);
+ buckets.get(59), divide((4.4 + 5.5 + 6.6), 3), 6.6, 4.4);
MeasurementDataNumericHighLowComposite expectedBucket29Data = new MeasurementDataNumericHighLowComposite(
buckets.get(29), Double.NaN, Double.NaN, Double.NaN);
@@ -169,6 +176,11 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
actualData.get(29));
}
+ static double divide(double dividend, int divisor) {
+ return new BigDecimal(Double.toString(dividend)).divide(new BigDecimal(Integer.toString(divisor)),
+ MathContext.DECIMAL64).doubleValue();
+ }
+
@Test(enabled = true)
public void getRawAggregate() {
DateTime now = new DateTime();
@@ -191,8 +203,7 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
MeasurementAggregate actual = dataManager.getAggregate(overlord, dynamicSchedule.getId(),
beginTime.getMillis(), endTime.getMillis());
- MeasurementAggregate expected = new MeasurementAggregate(1.1, (1.1 + 2.2 + 3.3 + 4.4 + 5.5 + 6.6) / 6,
- 6.6);
+ MeasurementAggregate expected = new MeasurementAggregate(1.1, (1.1 + 2.2 + 3.3 + 4.4 + 5.5 + 6.6) / 6, 6.6);
AssertUtils.assertPropertiesMatch(expected, actual, "Aggregate does not match");
}
@@ -206,19 +217,16 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
// results in an interval or bucket size of 4.4 hours
Buckets buckets = new Buckets(beginTime, endTime);
- List<AggregateTestData> data = asList(
- new AggregateTestData(buckets.get(0), dynamicSchedule.getId(), 2.0, 3.0, 1.0),
- new AggregateTestData(buckets.get(0) + Hours.ONE.toStandardDuration().getMillis(),
- dynamicSchedule.getId(), 5.0, 6.0, 4.0),
- new AggregateTestData(buckets.get(0) + Hours.TWO.toStandardDuration().getMillis(),
+ List<AggregateTestData> data = asList(new AggregateTestData(buckets.get(0), dynamicSchedule.getId(), 2.0, 3.0,
+ 1.0),
+ new AggregateTestData(buckets.get(0) + Hours.ONE.toStandardDuration().getMillis(), dynamicSchedule.getId(),
+ 5.0, 6.0, 4.0), new AggregateTestData(buckets.get(0) + Hours.TWO.toStandardDuration().getMillis(),
dynamicSchedule.getId(), 3.0, 3.0, 3.0),
- new AggregateTestData(buckets.get(59), dynamicSchedule.getId(), 5.0, 9.0, 2.0),
- new AggregateTestData(buckets.get(59) + Hours.ONE.toStandardDuration().getMillis(),
- dynamicSchedule.getId(), 5.0, 6.0, 4.0),
+ new AggregateTestData(buckets.get(59), dynamicSchedule.getId(), 5.0, 9.0, 2.0), new AggregateTestData(
+ buckets.get(59) + Hours.ONE.toStandardDuration().getMillis(), dynamicSchedule.getId(), 5.0, 6.0, 4.0),
new AggregateTestData(buckets.get(59) + Hours.TWO.toStandardDuration().getMillis(),
- dynamicSchedule.getId(), 3.0, 3.0, 3.0)
- );
+ dynamicSchedule.getId(), 3.0, 3.0, 3.0));
insert1HourData(data);
@@ -281,11 +289,20 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
executeInTransaction(false, new TransactionCallback() {
@Override
public void execute() throws Exception {
+ ResourceCriteria c = new ResourceCriteria();
+ c.addFilterInventoryStatus(null);
+ c.addFilterResourceKey(RESOURCE_KEY);
+ c.fetchSchedules(true);
+ List<Resource> r = resourceManager.findResourcesByCriteria(subjectManager.getOverlord(), c);
// Note that the order of deletes is important due to FK
// constraints.
- deleteMeasurementSchedules();
- deleteResource();
+ if (!r.isEmpty()) {
+ assertTrue("Should be only 1 resource", r.size() == 1);
+ Resource doomedResource = r.get(0);
+ deleteMeasurementSchedules(doomedResource);
+ deleteResource(doomedResource);
+ }
deleteAgent();
deleteDynamicMeasurementDef();
deleteResourceType();
@@ -294,38 +311,31 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
}
private void deleteDynamicMeasurementDef() {
- em.createQuery("delete from MeasurementDefinition " +
- "where dataType = :dataType and " +
- "name = :name")
- .setParameter("dataType", MEASUREMENT)
- .setParameter("name", DYNAMIC_DEF_NAME)
- .executeUpdate();
+ em.createQuery("delete from MeasurementDefinition " + "where dataType = :dataType and " + "name = :name")
+ .setParameter("dataType", MEASUREMENT).setParameter("name", DYNAMIC_DEF_NAME).executeUpdate();
}
private void deleteAgent() {
- em.createQuery("delete from Agent where name = :name")
- .setParameter("name", AGENT_NAME)
- .executeUpdate();
+ em.createQuery("delete from Agent where name = :name").setParameter("name", AGENT_NAME).executeUpdate();
}
private void deleteResourceType() {
em.createQuery("delete from ResourceType where name = :name and plugin = :plugin")
- .setParameter("name", RESOURCE_TYPE)
- .setParameter("plugin", PLUGIN)
- .executeUpdate();
+ .setParameter("name", RESOURCE_TYPE).setParameter("plugin", PLUGIN).executeUpdate();
}
- private void deleteResource() {
- em.createQuery("delete from Availability").executeUpdate();
-
- em.createQuery("delete from Resource where resourceKey = :key and uuid = :uuid")
- .setParameter("key", RESOURCE_KEY)
- .setParameter("uuid", RESOURCE_UUID)
- .executeUpdate();
+ private void deleteResource(Resource doomedResource) {
+ ResourceTreeHelper.deleteResource(em, doomedResource);
+ em.flush();
}
- private void deleteMeasurementSchedules() {
- em.createQuery("delete from MeasurementSchedule").executeUpdate();
+ private void deleteMeasurementSchedules(Resource doomedResource) {
+ for (MeasurementSchedule ms : doomedResource.getSchedules()) {
+ int i = em.createQuery("delete from MeasurementSchedule where id = :msId").setParameter("msId", ms.getId())
+ .executeUpdate();
+ em.flush();
+ System.out.println("Deleted [" + i + "] schedules with id [" + ms.getId() + "]");
+ }
}
private void insertDummyReport() {
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
index deceebc..dd46a29 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
@@ -338,6 +338,13 @@ public abstract class AbstractEJB3Test extends Arquillian {
dependencies.addAll(resolver.artifact("org.rhq:test-utils").resolveAs(JavaArchive.class));
dependencies.addAll(resolver.artifact("org.rhq.helpers:perftest-support").resolveAs(JavaArchive.class));
+ // If we're running oracle we need to include the OJDBC driver because dbunit needs it. Note that we need
+ // add it explicitly even though it is a provided module used by the datasource.
+ if (!Boolean.valueOf(System.getProperty("rhq.skip.oracle"))) {
+ dependencies.addAll(resolver.artifact("com.oracle:ojdbc6:jar:" + System.getProperty("rhq.ojdbc.version"))
+ .resolveAs(JavaArchive.class));
+ }
+
// Transitive deps required by the above and for some reason not sucked in. Note that
// these require an explicit version. TODO (jshaughn): Can we make these transitive or
// avoid the explicit version?
commit a33df9ca8700523e66d6443b4454977433330233
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Dec 12 13:41:08 2012 +0100
Forgot to re-enable the now fixed and working JndiAccessTest in itests-2.
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java
index e831a2b..fabe6ae 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java
@@ -47,8 +47,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
*
* @author Lukas Krejci
*/
-@Test(enabled = false)
-// TODO JNDI: reenable after fixing secure jndi lookups
+@Test
public class JndiAccessTest extends AbstractEJB3Test {
public void testScriptCantOverrideSystemProperties() throws Exception {
commit 4a2e78668aae419f5f47bbc45c4f4ac7b7c339ac
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Dec 12 00:17:32 2012 -0600
Update Cassandra plugin pom to include the dev profile for dev container deployments.
diff --git a/modules/plugins/cassandra/pom.xml b/modules/plugins/cassandra/pom.xml
index ab61220..d8cfd68 100644
--- a/modules/plugins/cassandra/pom.xml
+++ b/modules/plugins/cassandra/pom.xml
@@ -13,12 +13,6 @@
<name>RHQ Cassandra Plugin</name>
<description>An RHQ plugin for monitoring and managing a Cassandra cluster</description>
- <properties>
- <rhq.rootDir>../../..</rhq.rootDir>
- <rhq.containerDir>${rhq.rootDir}/${rhq.defaultDevContainerPath}</rhq.containerDir>
- <rhq.deploymentDir>${rhq.containerDir}/${rhq.agentPluginDir}</rhq.deploymentDir>
- </properties>
-
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
@@ -156,62 +150,11 @@
</execution>
</executions>
</plugin>
+
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
- <id>deploy</id>
- <phase>package</phase>
- <configuration>
- <target>
- <mkdir dir="${rhq.deploymentDir}"/>
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar"/>
- <echo>*** Updating ${deployment.file}...</echo>
- <jar destfile="${deployment.file}" basedir="${project.build.outputDirectory}"/>
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- <execution>
- <id>deploy-jar-meta-inf</id>
- <phase>package</phase>
- <configuration>
- <target>
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar"/>
- <echo>*** Updating META-INF dir in ${deployment.file}...</echo>
- <unjar src="${project.build.directory}/${project.build.finalName}.jar"
- dest="${project.build.outputDirectory}">
- <patternset>
- <include name="META-INF/**"/>
- </patternset>
- </unjar>
- <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF"
- update="true">
- </jar>
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- <execution>
- <id>undeploy</id>
- <phase>clean</phase>
- <configuration>
- <target>
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar"/>
- <echo>*** Deleting ${deployment.file}...</echo>
- <delete file="${deployment.file}"/>
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
<phase>pre-integration-test</phase>
<configuration>
<target>
@@ -224,9 +167,6 @@
<fileset dir="${settings.localRepository}/">
<include name="org/rhq/rhq-jmx-plugin/${project.version}/rhq-jmx-plugin-${project.version}.jar" />
</fileset>
- <fileset dir="${rhq.deploymentDir}">
- <include name="${project.artifactId}-${project.version}.jar" />
- </fileset>
<fileset dir="${project.build.directory}" includes="${project.artifactId}-${project.version}.jar" />
</copy>
@@ -290,4 +230,78 @@
</plugin>
</plugins>
</build>
+
+ <profiles>
+ <profile>
+ <id>dev</id>
+
+ <properties>
+ <rhq.rootDir>../../..</rhq.rootDir>
+ <rhq.containerDir>${rhq.rootDir}/${rhq.defaultDevContainerPath}</rhq.containerDir>
+ <rhq.deploymentDir>${rhq.containerDir}/${rhq.agentPluginDir}</rhq.deploymentDir>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>deploy</id>
+ <phase>package</phase>
+ <configuration>
+ <target>
+ <mkdir dir="${rhq.deploymentDir}"/>
+ <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar"/>
+ <echo>*** Updating ${deployment.file}...</echo>
+ <jar destfile="${deployment.file}" basedir="${project.build.outputDirectory}"/>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>deploy-jar-meta-inf</id>
+ <phase>package</phase>
+ <configuration>
+ <target>
+ <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar"/>
+ <echo>*** Updating META-INF dir in ${deployment.file}...</echo>
+ <unjar src="${project.build.directory}/${project.build.finalName}.jar"
+ dest="${project.build.outputDirectory}">
+ <patternset>
+ <include name="META-INF/**"/>
+ </patternset>
+ </unjar>
+ <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF"
+ update="true">
+ </jar>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>undeploy</id>
+ <phase>clean</phase>
+ <configuration>
+ <target>
+ <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar"/>
+ <echo>*** Deleting ${deployment.file}...</echo>
+ <delete file="${deployment.file}"/>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>