[rhq] Branch 'feature/cassandra-backend' - modules/enterprise
by John Sanda
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java | 31 +++++
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java | 59 +++++++++-
2 files changed, 89 insertions(+), 1 deletion(-)
New commits:
commit e5e722d8f301f14fa43c894a2a6c62cdc0de897d
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Dec 4 14:57:17 2012 -0500
adding method to MetricsServer to retrieve raw data for a resource group.
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
index 8416383..d49e03c 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
@@ -89,6 +89,17 @@ public class MetricsServer {
return null;
}
+ public List<MeasurementDataNumericHighLowComposite> findDataForGroup(List<Integer> scheduleIds, long beginTime,
+ long endTime) {
+ DateTime begin = new DateTime(beginTime);
+
+ if (dateTimeService.isInRawDataRange(begin)) {
+ return findRawDataForGroup(scheduleIds, beginTime, endTime);
+ }
+ throw new UnsupportedOperationException("MetricsServer.findDataForGroup currently only supports querying " +
+ "raw data");
+ }
+
private List<MeasurementDataNumericHighLowComposite> findRawDataForResource(int scheduleId, long beginTime,
long endTime) {
MetricsDAO dao = new MetricsDAO(session);
@@ -109,6 +120,26 @@ public class MetricsServer {
return data;
}
+ private List<MeasurementDataNumericHighLowComposite> findRawDataForGroup(List<Integer> scheduleIds, long beginTime,
+ long endTime) {
+ MetricsDAO dao = new MetricsDAO(session);
+ Buckets buckets = new Buckets(beginTime, endTime);
+
+ List<RawNumericMetric> rawMetrics = dao.findRawMetrics(scheduleIds, new DateTime(beginTime),
+ new DateTime(endTime));
+ for (RawNumericMetric rawMetric : rawMetrics) {
+ buckets.insert(rawMetric.getTimestamp(), rawMetric.getValue());
+ }
+
+ List<MeasurementDataNumericHighLowComposite> data = new ArrayList<MeasurementDataNumericHighLowComposite>();
+ for (int i = 0; i < buckets.getNumDataPoints(); ++i) {
+ Buckets.Bucket bucket = buckets.get(i);
+ data.add(new MeasurementDataNumericHighLowComposite(bucket.getStartTime(), bucket.getAvg(),
+ bucket.getMax(), bucket.getMin()));
+ }
+ return data;
+ }
+
private List<MeasurementDataNumericHighLowComposite> findAggregateDataForResource(int scheduleId, long beginTime,
long endTime, String columnFamily) {
MetricsDAO dao = new MetricsDAO(session);
diff --git a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java
index 5e443b6..712503f 100644
--- a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java
+++ b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java
@@ -338,7 +338,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
}
@Test//(enabled = ENABLED)
- public void findRawDataComposites() {
+ public void findRawDataCompositesForResource() {
DateTime beginTime = now().minusHours(4);
DateTime endTime = now();
Buckets buckets = new Buckets(beginTime, endTime);
@@ -378,6 +378,63 @@ public class MetricsServerTest extends CassandraIntegrationTest {
actualData.get(29));
}
+ @Test
+ public void findRawDataCompositesForGroup() {
+ DateTime beginTime = now().minusHours(4);
+ DateTime endTime = now();
+ Buckets buckets = new Buckets(beginTime, endTime);
+ int scheduleId1 = 123;
+ int scheduleId2 = 456;
+
+ Set<MeasurementDataNumeric> data = new HashSet<MeasurementDataNumeric>();
+ data.add(new MeasurementDataNumeric(buckets.get(0).getStartTime() + 10, scheduleId1, 1.1));
+ data.add(new MeasurementDataNumeric(buckets.get(0).getStartTime() + 10, scheduleId2, 1.2));
+
+ data.add(new MeasurementDataNumeric(buckets.get(0).getStartTime() + 20, scheduleId1, 2.1));
+ data.add(new MeasurementDataNumeric(buckets.get(0).getStartTime() + 20, scheduleId2, 2.2));
+
+ data.add(new MeasurementDataNumeric(buckets.get(0).getStartTime() + 30, scheduleId1, 3.1));
+ data.add(new MeasurementDataNumeric(buckets.get(0).getStartTime() + 30, scheduleId2, 3.2));
+
+ data.add(new MeasurementDataNumeric(buckets.get(59).getStartTime() + 10, scheduleId1, 4.1));
+ data.add(new MeasurementDataNumeric(buckets.get(59).getStartTime() + 10, scheduleId2, 4.2));
+
+ data.add(new MeasurementDataNumeric(buckets.get(59).getStartTime() + 20, scheduleId1, 5.1));
+ data.add(new MeasurementDataNumeric(buckets.get(59).getStartTime() + 20, scheduleId2, 5.2));
+
+ data.add(new MeasurementDataNumeric(buckets.get(59).getStartTime() + 30, scheduleId1, 6.1));
+ data.add(new MeasurementDataNumeric(buckets.get(59).getStartTime() + 30, scheduleId2, 6.2));
+
+ // add some data outside the range
+ data.add(new MeasurementDataNumeric(buckets.get(0).getStartTime() - 100, scheduleId1, 1.23));
+ data.add(new MeasurementDataNumeric(buckets.get(0).getStartTime() - 100, scheduleId2, 2.23));
+ data.add(new MeasurementDataNumeric(buckets.get(59).getStartTime() + buckets.getInterval() + 50, scheduleId1,
+ 4.56));
+ data.add(new MeasurementDataNumeric(buckets.get(59).getStartTime() + buckets.getInterval() + 50, scheduleId2,
+ 4.56));
+
+ metricsServer.addNumericData(data);
+
+ List<MeasurementDataNumericHighLowComposite> actualData = metricsServer.findDataForGroup(
+ asList(scheduleId1, scheduleId2), beginTime.getMillis(), endTime.getMillis());
+
+ assertEquals(actualData.size(), buckets.getNumDataPoints(), "Expected to get back 60 data points.");
+
+ MeasurementDataNumericHighLowComposite expectedBucket0Data = new MeasurementDataNumericHighLowComposite(
+ buckets.get(0).getStartTime(), divide(1.1 + 1.2 + 2.1 + 2.2 + 3.1 + 3.2, 6), 3.2, 1.1);
+ MeasurementDataNumericHighLowComposite expectedBucket59Data = new MeasurementDataNumericHighLowComposite(
+ buckets.get(59).getStartTime(), divide(4.1 + 4.2 + 5.1 + 5.2 + 6.1 + 6.2, 6), 6.2, 4.1);
+ MeasurementDataNumericHighLowComposite expectedBucket29Data = new MeasurementDataNumericHighLowComposite(
+ buckets.get(29).getStartTime(), Double.NaN, Double.NaN, Double.NaN);
+
+ assertPropertiesMatch("The data for bucket 0 does not match the expected values.", expectedBucket0Data,
+ actualData.get(0));
+ assertPropertiesMatch("The data for bucket 59 does not match the expected values.", expectedBucket59Data,
+ actualData.get(59));
+ assertPropertiesMatch("The data for bucket 29 does not match the expected values.", expectedBucket29Data,
+ actualData.get(29));
+ }
+
@Test//(enabled = ENABLED)
public void find1HourDataComposites() {
DateTime beginTime = now().minusDays(11);
11 years, 6 months
[rhq] Branch 'feature/cassandra-backend' - modules/enterprise
by John Sanda
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java | 29 ----------
1 file changed, 29 deletions(-)
New commits:
commit 1d1e126e47b59df651c22d2407dd700425d58ef1
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Dec 4 12:35:50 2012 -0500
remove dead code
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
index 7231b3a..8416383 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
@@ -51,14 +51,6 @@ import org.joda.time.Minutes;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
-import me.prettyprint.cassandra.serializers.CompositeSerializer;
-import me.prettyprint.cassandra.serializers.DoubleSerializer;
-import me.prettyprint.cassandra.serializers.IntegerSerializer;
-import me.prettyprint.cassandra.serializers.LongSerializer;
-import me.prettyprint.hector.api.beans.Composite;
-import me.prettyprint.hector.api.beans.HColumn;
-import me.prettyprint.hector.api.factory.HFactory;
-
/**
* @author John Sanda
*/
@@ -336,25 +328,4 @@ public class MetricsServer {
DateTime now = new DateTime();
return now.hourOfDay().roundFloorCopy();
}
-
- private HColumn<Composite, Double> createAvgColumn(DateTime timestamp, double value, int ttl) {
- return createAggregateColumn(AggregateType.AVG, timestamp, value, ttl);
- }
-
- private HColumn<Composite, Double> createMaxColumn(DateTime timestamp, double value, int ttl) {
- return createAggregateColumn(AggregateType.MAX, timestamp, value, ttl);
- }
-
- private HColumn<Composite, Double> createMinColumn(DateTime timestamp, double value, int ttl) {
- return createAggregateColumn(AggregateType.MIN, timestamp, value, ttl);
- }
-
- private HColumn<Composite, Double> createAggregateColumn(AggregateType type, DateTime timestamp, double value,
- int ttl) {
- Composite composite = new Composite();
- composite.addComponent(timestamp.getMillis(), LongSerializer.get());
- composite.addComponent(type.ordinal(), IntegerSerializer.get());
- return HFactory.createColumn(composite, value, ttl, CompositeSerializer.get(), DoubleSerializer.get());
- }
-
}
11 years, 6 months
[rhq] Branch 'feature/cassandra-backend' - modules/enterprise
by John Sanda
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java | 40 ++++++++++
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java | 35 ++++++++
2 files changed, 75 insertions(+)
New commits:
commit 1806c68325b77f7d6f396fa40eb999c0911414f5
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Dec 4 12:33:25 2012 -0500
add method to fetch raw metrics for multiple schedule ids
This is needed for fetching data for a resource group.
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java
index c6a5d40..0b64f94 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java
@@ -29,6 +29,7 @@ import static com.datastax.driver.core.utils.querybuilder.Clause.eq;
import static com.datastax.driver.core.utils.querybuilder.Clause.gte;
import static com.datastax.driver.core.utils.querybuilder.Clause.lt;
import static com.datastax.driver.core.utils.querybuilder.QueryBuilder.select;
+import static org.rhq.core.util.StringUtil.listToString;
import java.util.ArrayList;
import java.util.Date;
@@ -195,6 +196,45 @@ public class MetricsDAO {
}
}
+ public List<RawNumericMetric> findRawMetrics(List<Integer> scheduleIds, DateTime startTime, DateTime endTime) {
+ try {
+ // TODO investigate possible bug in datastax driver for binding lists as parameters
+ // I was not able to get the below query working by directly binding the List
+ // object. From a quick glance at the driver code, it looks like it might not
+ // yet be properly supported in which case we need to report a bug.
+ //
+ // jsanda
+
+// String cql = "SELECT schedule_id, time, value FROM " + RAW_METRICS_TABLE +
+// " WHERE schedule_id IN (?) AND time >= ? AND time < ? ORDER BY time";
+// PreparedStatement statement = session.prepare(cql);
+// BoundStatement boundStatement = statement.bind(scheduleIds, startTime.toDate(), endTime.toDate());
+// ResultSet resultSet = session.execute(boundStatement);
+// String cql =
+// select("schedule_id", "time", "value")
+// .from(RAW_METRICS_TABLE)
+// .where(
+// in("schedule_id", listToString(scheduleIds)),
+// gte("time", startTime.toDate()),
+// lt("time", endTime.toDate()))
+// .getQueryString();
+
+ String cql = "SELECT schedule_id, time, value FROM " + RAW_METRICS_TABLE + " WHERE schedule_id IN (" +
+ listToString(scheduleIds) + ") AND time >= " + startTime.getMillis() + " AND time <= " +
+ endTime.getMillis();
+ ResultSet resultSet = session.execute(cql);
+
+ List<RawNumericMetric> metrics = new ArrayList<RawNumericMetric>();
+ ResultSetMapper<RawNumericMetric> resultSetMapper = new RawNumericMetricMapper(false);
+ for (Row row : resultSet) {
+ metrics.add(resultSetMapper.map(row));
+ }
+ return metrics;
+ } catch (NoHostAvailableException e) {
+ throw new CQLException(e);
+ }
+ }
+
public List<AggregatedNumericMetric> findAggregateMetrics(String bucket, int scheduleId) {
try {
String cql =
diff --git a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java
index d5ed264..7bbea11 100644
--- a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java
+++ b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java
@@ -113,6 +113,41 @@ public class MetricsDAOTest extends CassandraIntegrationTest {
}
@Test
+ public void findRawMetricsForMultipleSchedules() throws Exception {
+ DateTime currentTime = hour0().plusHours(4).plusMinutes(44);
+ DateTime currentHour = currentTime.hourOfDay().roundFloorCopy();
+ DateTime threeMinutesAgo = currentTime.minusMinutes(3);
+ DateTime twoMinutesAgo = currentTime.minusMinutes(2);
+ DateTime oneMinuteAgo = currentTime.minusMinutes(1);
+
+ int scheduleId1 = 1;
+ int scheduleId2 = 2;
+
+ Set<MeasurementDataNumeric> data = new HashSet<MeasurementDataNumeric>();
+ data.add(new MeasurementDataNumeric(threeMinutesAgo.getMillis(), scheduleId1, 1.1));
+ data.add(new MeasurementDataNumeric(threeMinutesAgo.getMillis(), scheduleId2, 1.2));
+ data.add(new MeasurementDataNumeric(twoMinutesAgo.getMillis(), scheduleId1, 2.1));
+ data.add(new MeasurementDataNumeric(twoMinutesAgo.getMillis(), scheduleId2, 2.2));
+ data.add(new MeasurementDataNumeric(oneMinuteAgo.getMillis(), scheduleId1, 3.1));
+ data.add(new MeasurementDataNumeric(oneMinuteAgo.getMillis(), scheduleId2, 3.2));
+
+ int ttl = Hours.ONE.toStandardSeconds().getSeconds();
+ Set<MeasurementDataNumeric> actualUpdates = dao.insertRawMetrics(data, ttl);
+
+ List<RawNumericMetric> actualMetrics = dao.findRawMetrics(asList(scheduleId1, scheduleId2), currentHour,
+ currentHour.plusHours(1));
+ List<RawNumericMetric> expectedMetrics = asList(
+ new RawNumericMetric(scheduleId1, threeMinutesAgo.getMillis(), 1.1),
+ new RawNumericMetric(scheduleId1, twoMinutesAgo.getMillis(), 2.1),
+ new RawNumericMetric(scheduleId1, oneMinuteAgo.getMillis(), 3.1),
+ new RawNumericMetric(scheduleId2, threeMinutesAgo.getMillis(), 1.2),
+ new RawNumericMetric(scheduleId2, twoMinutesAgo.getMillis(), 2.2),
+ new RawNumericMetric(scheduleId2, oneMinuteAgo.getMillis(), 3.2)
+ );
+ assertEquals(actualMetrics, expectedMetrics, "Failed to find raw metrics for multiple schedules");
+ }
+
+ @Test
public void insertAndFindAllOneHourMetrics() {
int scheduleId = 1;
DateTime hour0 = hour0();
11 years, 6 months
[rhq] Branch 'rhq-on-as7' - 2 commits - modules/enterprise
by mazz
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java | 21 ++++------
1 file changed, 10 insertions(+), 11 deletions(-)
New commits:
commit 9b4a2c27ff66c62af50bbd8089a1dbb48211d701
Merge: d32fc31 e14b96b
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Dec 4 11:54:32 2012 -0500
Merge remote-tracking branch 'origin/master' into rhq-on-as7
commit e14b96b48e4a7faedf4dfcad1d3ebc7ad3ec0bd5
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Dec 4 11:53:14 2012 -0500
Adding in the missing server plugin service prepare/unprepare.
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 a3ae638..190c3d5 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
@@ -57,6 +57,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
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.test.AbstractEJB3Test;
import org.rhq.enterprise.server.test.TransactionCallback;
@@ -66,16 +67,6 @@ import org.rhq.enterprise.server.test.TransactionCallback;
*/
public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
- // Tests in this class are failing currently do to a system initialization problem.
- // MeasurementDataManagerUtility looks up config settings from SystemManagerBean.
- // SystemManagerBean is however failing in its getDriftServerPluginManager method on
- // the call to LookupUtil.getServerPluginService(). An InstanceNotFoundException is
- // thrown,
- //
- // javax.management.InstanceNotFoundException: rhq:service=ServerPluginService
- //
- // Looks like the server plugin service is not getting deployed.
-
//private final Log log = LogFactory.getLog(MeasurementDataManagerBeanTest.class);
private static final boolean ENABLED = true;
@@ -120,13 +111,21 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
protected void beforeMethod() throws Exception {
overlord = subjectManager.getOverlord();
+ // MeasurementDataManagerUtility looks up config settings from SystemManagerBean.
+ // SystemManagerBean.getDriftServerPluginManager method requires drift server plugin.
+ DriftServerPluginService driftServerPluginService = new DriftServerPluginService();
+ prepareCustomServerPluginService(driftServerPluginService);
+ driftServerPluginService.masterConfig.getPluginDirectory().mkdirs();
+
createInventory();
insertDummyReport();
}
@Override
- protected void afterMethod() {
+ protected void afterMethod() throws Exception {
purgeDB();
+
+ unprepareServerPluginService();
}
@Test(enabled = ENABLED)
11 years, 6 months
[rhq] modules/enterprise
by Jay Shaughnessy
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBeanTest.java | 21 ++++------
1 file changed, 10 insertions(+), 11 deletions(-)
New commits:
commit e14b96b48e4a7faedf4dfcad1d3ebc7ad3ec0bd5
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Dec 4 11:53:14 2012 -0500
Adding in the missing server plugin service prepare/unprepare.
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 a3ae638..190c3d5 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
@@ -57,6 +57,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
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.test.AbstractEJB3Test;
import org.rhq.enterprise.server.test.TransactionCallback;
@@ -66,16 +67,6 @@ import org.rhq.enterprise.server.test.TransactionCallback;
*/
public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
- // Tests in this class are failing currently do to a system initialization problem.
- // MeasurementDataManagerUtility looks up config settings from SystemManagerBean.
- // SystemManagerBean is however failing in its getDriftServerPluginManager method on
- // the call to LookupUtil.getServerPluginService(). An InstanceNotFoundException is
- // thrown,
- //
- // javax.management.InstanceNotFoundException: rhq:service=ServerPluginService
- //
- // Looks like the server plugin service is not getting deployed.
-
//private final Log log = LogFactory.getLog(MeasurementDataManagerBeanTest.class);
private static final boolean ENABLED = true;
@@ -120,13 +111,21 @@ public class MeasurementDataManagerBeanTest extends AbstractEJB3Test {
protected void beforeMethod() throws Exception {
overlord = subjectManager.getOverlord();
+ // MeasurementDataManagerUtility looks up config settings from SystemManagerBean.
+ // SystemManagerBean.getDriftServerPluginManager method requires drift server plugin.
+ DriftServerPluginService driftServerPluginService = new DriftServerPluginService();
+ prepareCustomServerPluginService(driftServerPluginService);
+ driftServerPluginService.masterConfig.getPluginDirectory().mkdirs();
+
createInventory();
insertDummyReport();
}
@Override
- protected void afterMethod() {
+ protected void afterMethod() throws Exception {
purgeDB();
+
+ unprepareServerPluginService();
}
@Test(enabled = ENABLED)
11 years, 6 months
[rhq] Branch 'rhq-on-as7' - 4 commits - modules/enterprise
by mazz
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java | 71 ++++------
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java | 8 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java | 2
3 files changed, 42 insertions(+), 39 deletions(-)
New commits:
commit d32fc3170963d9622f025498234b24fbc9cdf572
Merge: 68f57f8 6a533ab
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Dec 4 11:33:37 2012 -0500
Merge remote-tracking branch 'origin/master' into rhq-on-as7
commit 6a533abe4e252374aaa1760dde8bc1cf567e2d0a
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Dec 4 11:27:35 2012 -0500
Fix test failure, ensure that existing plugins are scanned and registered
prior to easch test.
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
index befaa1a..05bb9c0 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
@@ -55,11 +55,13 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
subjectMgr = LookupUtil.getSubjectManager();
pluginMgr = LookupUtil.getPluginManager();
- FileUtil.purge(new File(getPluginScannerService().getAgentPluginDir()), true);
+ getPluginScannerService().startDeployment();
}
@Override
protected void afterMethod() throws Exception {
+ FileUtil.purge(new File(getPluginScannerService().getAgentPluginDir()), true);
+
unpreparePluginScannerService();
}
@@ -86,7 +88,7 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
createPluginJarFile("test-plugin3.jar", "plugin_3.xml");
createPluginJarFile("test-plugin3.1.jar", "plugin_3.1.xml");
- getPluginScannerService().startDeployment();
+ getPluginScannerService().scanAndRegister();
}
@Test(dependsOnMethods = { "registerPlugins" })
@@ -105,6 +107,8 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
public void doNotDisablePluginIfDependentPluginsAreNotAlsoDisabled() throws Exception {
Plugin plugin = getPlugin("PluginManagerBeanTestPlugin1");
assertTrue("Plugin should not already be disabled", plugin.isEnabled());
+ Plugin plugin2 = getPlugin("PluginManagerBeanTestPlugin2");
+ assertTrue("Plugin should not already be disabled", plugin.isEnabled());
Exception exception = null;
commit bb6f2974eb61c5579c68137f1517ffe88d7b9a2c
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Dec 4 11:26:44 2012 -0500
trivial, comment re: potentially unnecessary call
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java
index 39ce392..ddff417 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java
@@ -92,7 +92,7 @@ public class ProductPluginDeployer {
* allowed to begin registering types from deployed plugins.
*/
public void startDeployment() {
- // we can now register our initial set of plugins
+ // we can now register our initial set of plugins (This may be a no-op at this point)
registerPlugins();
// indicate that we are now ready for hot-deployment of new plugins
commit 5c02b44e2fc132e93e63f6f067f2cfd5b8e94808
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Dec 4 11:18:48 2012 -0500
- override AbstractEJB3Test.afterMethod() as opposed to an explicitly annotated method
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java
index 3f0ef84..d2682af 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java
@@ -6,7 +6,6 @@ import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.transaction.TransactionManager;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import org.rhq.core.domain.auth.Subject;
@@ -54,6 +53,41 @@ public class RepoSyncingTest extends AbstractEJB3Test {
em.flush();
}
+ @Override
+ protected void afterMethod() throws Exception {
+ unprepareServerPluginService();
+
+ getTransactionManager().begin();
+ EntityManager em = getEntityManager();
+ ContentSource deleteSrc = em.find(ContentSource.class, contentSource.getId());
+ // em.remove(deleteSrc.getContentSourceType());
+ em.remove(deleteSrc);
+
+ Query q = em.createNamedQuery(RepoDistribution.QUERY_FIND_BY_REPO_ID);
+ q.setParameter("repoId", repo.getId());
+ List<RepoDistribution> rds = q.getResultList();
+ for (RepoDistribution rd : rds) {
+ Distribution d = rd.getRepoDistributionPK().getDistribution();
+ List<DistributionFile> dfiles = LookupUtil.getDistributionManagerLocal().getDistributionFilesByDistId(
+ d.getId());
+ for (DistributionFile df : dfiles) {
+ DistributionFile dfl = em.find(DistributionFile.class, df.getId());
+ em.remove(dfl);
+ }
+ em.remove(rd);
+ em.remove(d);
+ }
+
+ Repo delRepo = em.find(Repo.class, repo.getId());
+ em.remove(delRepo);
+
+ TransactionManager tx = getTransactionManager();
+ if (tx != null) {
+ tx.commit();
+ }
+
+ }
+
@Test(enabled = ENABLED)
public void testSyncResults() throws Exception {
// We have to commit because bean has new transaction inside it
@@ -200,41 +234,6 @@ public class RepoSyncingTest extends AbstractEJB3Test {
}
}
- @AfterMethod
- public void tearDownAfterMethod() throws Exception {
- unprepareServerPluginService();
-
- getTransactionManager().begin();
- EntityManager em = getEntityManager();
- ContentSource deleteSrc = em.find(ContentSource.class, contentSource.getId());
- // em.remove(deleteSrc.getContentSourceType());
- em.remove(deleteSrc);
-
- Query q = em.createNamedQuery(RepoDistribution.QUERY_FIND_BY_REPO_ID);
- q.setParameter("repoId", repo.getId());
- List<RepoDistribution> rds = q.getResultList();
- for (RepoDistribution rd : rds) {
- Distribution d = rd.getRepoDistributionPK().getDistribution();
- List<DistributionFile> dfiles = LookupUtil.getDistributionManagerLocal().getDistributionFilesByDistId(
- d.getId());
- for (DistributionFile df : dfiles) {
- DistributionFile dfl = em.find(DistributionFile.class, df.getId());
- em.remove(dfl);
- }
- em.remove(rd);
- em.remove(d);
- }
-
- Repo delRepo = em.find(Repo.class, repo.getId());
- em.remove(delRepo);
-
- TransactionManager tx = getTransactionManager();
- if (tx != null) {
- tx.commit();
- }
-
- }
-
class SyncerThread extends Thread {
boolean synced = false;
11 years, 6 months
[rhq] 3 commits - modules/enterprise
by Jay Shaughnessy
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java | 71 ++++------
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java | 8 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java | 2
3 files changed, 42 insertions(+), 39 deletions(-)
New commits:
commit 6a533abe4e252374aaa1760dde8bc1cf567e2d0a
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Dec 4 11:27:35 2012 -0500
Fix test failure, ensure that existing plugins are scanned and registered
prior to easch test.
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
index befaa1a..05bb9c0 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/PluginManagerBeanTest.java
@@ -55,11 +55,13 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
subjectMgr = LookupUtil.getSubjectManager();
pluginMgr = LookupUtil.getPluginManager();
- FileUtil.purge(new File(getPluginScannerService().getAgentPluginDir()), true);
+ getPluginScannerService().startDeployment();
}
@Override
protected void afterMethod() throws Exception {
+ FileUtil.purge(new File(getPluginScannerService().getAgentPluginDir()), true);
+
unpreparePluginScannerService();
}
@@ -86,7 +88,7 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
createPluginJarFile("test-plugin3.jar", "plugin_3.xml");
createPluginJarFile("test-plugin3.1.jar", "plugin_3.1.xml");
- getPluginScannerService().startDeployment();
+ getPluginScannerService().scanAndRegister();
}
@Test(dependsOnMethods = { "registerPlugins" })
@@ -105,6 +107,8 @@ public class PluginManagerBeanTest extends MetadataBeanTest {
public void doNotDisablePluginIfDependentPluginsAreNotAlsoDisabled() throws Exception {
Plugin plugin = getPlugin("PluginManagerBeanTestPlugin1");
assertTrue("Plugin should not already be disabled", plugin.isEnabled());
+ Plugin plugin2 = getPlugin("PluginManagerBeanTestPlugin2");
+ assertTrue("Plugin should not already be disabled", plugin.isEnabled());
Exception exception = null;
commit bb6f2974eb61c5579c68137f1517ffe88d7b9a2c
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Dec 4 11:26:44 2012 -0500
trivial, comment re: potentially unnecessary call
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java
index 39ce392..ddff417 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/plugin/ProductPluginDeployer.java
@@ -92,7 +92,7 @@ public class ProductPluginDeployer {
* allowed to begin registering types from deployed plugins.
*/
public void startDeployment() {
- // we can now register our initial set of plugins
+ // we can now register our initial set of plugins (This may be a no-op at this point)
registerPlugins();
// indicate that we are now ready for hot-deployment of new plugins
commit 5c02b44e2fc132e93e63f6f067f2cfd5b8e94808
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Dec 4 11:18:48 2012 -0500
- override AbstractEJB3Test.afterMethod() as opposed to an explicitly annotated method
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java
index 3f0ef84..d2682af 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/content/test/RepoSyncingTest.java
@@ -6,7 +6,6 @@ import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.transaction.TransactionManager;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import org.rhq.core.domain.auth.Subject;
@@ -54,6 +53,41 @@ public class RepoSyncingTest extends AbstractEJB3Test {
em.flush();
}
+ @Override
+ protected void afterMethod() throws Exception {
+ unprepareServerPluginService();
+
+ getTransactionManager().begin();
+ EntityManager em = getEntityManager();
+ ContentSource deleteSrc = em.find(ContentSource.class, contentSource.getId());
+ // em.remove(deleteSrc.getContentSourceType());
+ em.remove(deleteSrc);
+
+ Query q = em.createNamedQuery(RepoDistribution.QUERY_FIND_BY_REPO_ID);
+ q.setParameter("repoId", repo.getId());
+ List<RepoDistribution> rds = q.getResultList();
+ for (RepoDistribution rd : rds) {
+ Distribution d = rd.getRepoDistributionPK().getDistribution();
+ List<DistributionFile> dfiles = LookupUtil.getDistributionManagerLocal().getDistributionFilesByDistId(
+ d.getId());
+ for (DistributionFile df : dfiles) {
+ DistributionFile dfl = em.find(DistributionFile.class, df.getId());
+ em.remove(dfl);
+ }
+ em.remove(rd);
+ em.remove(d);
+ }
+
+ Repo delRepo = em.find(Repo.class, repo.getId());
+ em.remove(delRepo);
+
+ TransactionManager tx = getTransactionManager();
+ if (tx != null) {
+ tx.commit();
+ }
+
+ }
+
@Test(enabled = ENABLED)
public void testSyncResults() throws Exception {
// We have to commit because bean has new transaction inside it
@@ -200,41 +234,6 @@ public class RepoSyncingTest extends AbstractEJB3Test {
}
}
- @AfterMethod
- public void tearDownAfterMethod() throws Exception {
- unprepareServerPluginService();
-
- getTransactionManager().begin();
- EntityManager em = getEntityManager();
- ContentSource deleteSrc = em.find(ContentSource.class, contentSource.getId());
- // em.remove(deleteSrc.getContentSourceType());
- em.remove(deleteSrc);
-
- Query q = em.createNamedQuery(RepoDistribution.QUERY_FIND_BY_REPO_ID);
- q.setParameter("repoId", repo.getId());
- List<RepoDistribution> rds = q.getResultList();
- for (RepoDistribution rd : rds) {
- Distribution d = rd.getRepoDistributionPK().getDistribution();
- List<DistributionFile> dfiles = LookupUtil.getDistributionManagerLocal().getDistributionFilesByDistId(
- d.getId());
- for (DistributionFile df : dfiles) {
- DistributionFile dfl = em.find(DistributionFile.class, df.getId());
- em.remove(dfl);
- }
- em.remove(rd);
- em.remove(d);
- }
-
- Repo delRepo = em.find(Repo.class, repo.getId());
- em.remove(delRepo);
-
- TransactionManager tx = getTransactionManager();
- if (tx != null) {
- tx.commit();
- }
-
- }
-
class SyncerThread extends Thread {
boolean synced = false;
11 years, 6 months
[rhq] Branch 'feature/cassandra-backend' - modules/enterprise
by John Sanda
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cassandra/SessionManagerBean.java | 16 +++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
New commits:
commit a82cb482e72843b03b23fae4eb1744be6324d71e
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Dec 4 10:36:05 2012 -0500
add authentication to session initialization
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cassandra/SessionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cassandra/SessionManagerBean.java
index 0b149d3..1260451 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cassandra/SessionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cassandra/SessionManagerBean.java
@@ -30,6 +30,7 @@ import javax.ejb.Singleton;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
+import com.datastax.driver.core.SimpleAuthInfoProvider;
import com.datastax.driver.core.exceptions.NoHostAvailableException;
import org.rhq.server.metrics.CQLException;
@@ -45,7 +46,20 @@ public class SessionManagerBean {
@PostConstruct
private void createSession() {
try {
- Cluster cluster = Cluster.builder().addContactPoints("127.0.0.1", "127.0.0.2").build();
+ String username = System.getProperty("rhq.cassandra.username");
+ if (username == null) {
+ throw new CQLException("The rhq.cassandra.username property is null. Cannot create session.");
+ }
+
+ String password = System.getProperty("rhq.cassandra.password");
+ if (password == null) {
+ throw new CQLException("The rhq.cassandra.password property is null. Cannot create session.");
+ }
+
+ Cluster cluster = Cluster.builder()
+ .addContactPoints("127.0.0.1", "127.0.0.2")
+ .withAuthInfoProvider(new SimpleAuthInfoProvider().add("username", username).add("password", password))
+ .build();
session = cluster.connect("rhq");
} catch (NoHostAvailableException e) {
throw new CQLException("Unable to create session", e);
11 years, 6 months
[rhq] Branch 'rhq-on-as7' - 2 commits - modules/plugins
by mazz
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
New commits:
commit 68f57f8fe40779de0553aa2b4430f6780662a4f3
Merge: 9eb1aa6 3a80401
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Dec 4 10:32:08 2012 -0500
Merge remote-tracking branch 'origin/master' into rhq-on-as7
commit 3a80401e9899f9025b9119259467118b64338c87
Author: Simeon Pinder <spinder(a)fulliautomatix.conchfritter.com>
Date: Tue Dec 4 07:50:29 2012 -0500
[BZ 871535] update product types to support EPP->JPP rename.
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
index 87e31f3..7239c02 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
@@ -34,6 +34,7 @@ public enum JBossProductType {
EAP("EAP", "JBoss EAP 6", "JBoss Enterprise Application Platform 6", "EAP"),
JDG("JDG", "JBoss JDG 6", "JBoss Data Grid 6", "Data Grid"),
EPP("EPP", "JBoss EAP 6", "JBoss Enterprise Portal Platform 6", "EPP"),
+ JPP("JPP", "JBoss EAP 6", "JBoss Portal Platform 6", "JPP"),
// EWP("EWP", "JBoss EWP 6", "JBoss Enterprise Web Platform 6", "EWP"),
SOA("SOA-P", "JBoss SOA-P 6", "JBoss Enterprise SOA Platform (ESB)", "SOAP");
@@ -97,8 +98,10 @@ public enum JBossProductType {
productType = JBossProductType.EAP;
} else if (slot.equals("jdg")) {
productType = JBossProductType.JDG;
- } else if (slot.equals("epp")) {
+ } else if (slot.equals("epp")) {//old EPP
productType = JBossProductType.EPP;
+ } else if (slot.equals("jpp")) {//new EPP->JPP plugin
+ productType = JBossProductType.JPP;
} else if (slot.equals("soa-p")) {
productType = JBossProductType.SOA;
} else {
@@ -122,6 +125,8 @@ public enum JBossProductType {
productType = JBossProductType.JDG;
} else if (homeDirName.contains("-epp-")) {
productType = JBossProductType.EPP;
+ } else if (homeDirName.contains("-jpp-")) {
+ productType = JBossProductType.JPP;
} else if (homeDirName.contains("soa-p-")) {
productType = JBossProductType.SOA;
} else {
11 years, 6 months
[rhq] modules/plugins
by Simeon Pinder
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
New commits:
commit 3a80401e9899f9025b9119259467118b64338c87
Author: Simeon Pinder <spinder(a)fulliautomatix.conchfritter.com>
Date: Tue Dec 4 07:50:29 2012 -0500
[BZ 871535] update product types to support EPP->JPP rename.
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
index 87e31f3..7239c02 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
@@ -34,6 +34,7 @@ public enum JBossProductType {
EAP("EAP", "JBoss EAP 6", "JBoss Enterprise Application Platform 6", "EAP"),
JDG("JDG", "JBoss JDG 6", "JBoss Data Grid 6", "Data Grid"),
EPP("EPP", "JBoss EAP 6", "JBoss Enterprise Portal Platform 6", "EPP"),
+ JPP("JPP", "JBoss EAP 6", "JBoss Portal Platform 6", "JPP"),
// EWP("EWP", "JBoss EWP 6", "JBoss Enterprise Web Platform 6", "EWP"),
SOA("SOA-P", "JBoss SOA-P 6", "JBoss Enterprise SOA Platform (ESB)", "SOAP");
@@ -97,8 +98,10 @@ public enum JBossProductType {
productType = JBossProductType.EAP;
} else if (slot.equals("jdg")) {
productType = JBossProductType.JDG;
- } else if (slot.equals("epp")) {
+ } else if (slot.equals("epp")) {//old EPP
productType = JBossProductType.EPP;
+ } else if (slot.equals("jpp")) {//new EPP->JPP plugin
+ productType = JBossProductType.JPP;
} else if (slot.equals("soa-p")) {
productType = JBossProductType.SOA;
} else {
@@ -122,6 +125,8 @@ public enum JBossProductType {
productType = JBossProductType.JDG;
} else if (homeDirName.contains("-epp-")) {
productType = JBossProductType.EPP;
+ } else if (homeDirName.contains("-jpp-")) {
+ productType = JBossProductType.JPP;
} else if (homeDirName.contains("soa-p-")) {
productType = JBossProductType.SOA;
} else {
11 years, 6 months