[rhq] Branch 'bug/1009945' - modules/enterprise
by John Sanda
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java | 62 +++
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java | 168 +++-------
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java | 8
3 files changed, 125 insertions(+), 113 deletions(-)
New commits:
commit 7228eddf1ad6ef5305bcf9f357888ff86efdea20
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Oct 22 17:01:50 2013 -0400
refactoring some duplicate code and fixing when tasks are scheduled
Aggregation tasks for 1 and 6 hour data were getting schedule too early. They
cannot get scheduled until both their respective index entries have arrived and
aggregation for the previous buckets has completed.
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java
new file mode 100644
index 0000000..1eb9e53
--- /dev/null
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java
@@ -0,0 +1,62 @@
+package org.rhq.server.metrics;
+
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.Row;
+import com.google.common.util.concurrent.FutureCallback;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+* @author John Sanda
+*/
+class AggregateIndexEntriesHandler implements FutureCallback<ResultSet> {
+
+ private final Log log = LogFactory.getLog(AggregateIndexEntriesHandler.class);
+
+ private Set<Integer> indexEntries;
+
+ private AtomicInteger remainingData;
+
+ private SignalingCountDownLatch indexEntriesArrival;
+
+ private long startTime;
+
+ private String src;
+
+ private String dest;
+
+ public AggregateIndexEntriesHandler(Set<Integer> indexEntries, AtomicInteger remainingData,
+ SignalingCountDownLatch indexEntriesArrival, long startTime, String src, String dest) {
+ this.indexEntries = indexEntries;
+ this.remainingData = remainingData;
+ this.indexEntriesArrival = indexEntriesArrival;
+ this.startTime = startTime;
+ this.src = src;
+ this.dest = dest;
+ }
+
+ @Override
+ public void onSuccess(ResultSet resultSet) {
+ for (Row row : resultSet) {
+ indexEntries.add(row.getInt(1));
+ }
+ remainingData.set(indexEntries.size());
+ indexEntriesArrival.countDown();
+ if (log.isDebugEnabled()) {
+ log.debug("Finished loading " + indexEntries.size() + " " + src + " index entries in " +
+ (System.currentTimeMillis() - startTime) + " ms");
+ }
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ log.warn("Failed to retrieve " + src + " index entries. Some " + dest + " aggregates may not get generated.",
+ t);
+ remainingData.set(0);
+ indexEntriesArrival.abort();
+ }
+}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
index d0812e2..d2d3f7d 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
@@ -91,6 +91,9 @@ public class Aggregator {
.set6HourTimeSliceFinished(hasTimeSliceEnded(sixHourTimeSlice, configuration.getOneHourTimeSliceDuration()))
.set24HourTimeSliceFinished(hasTimeSliceEnded(twentyFourHourTimeSlice,
configuration.getSixHourTimeSliceDuration()))
+ .setRemainingRawData(new AtomicInteger(0))
+ .setRemaining1HourData(new AtomicInteger(0))
+ .setRemaining6HourData(new AtomicInteger(0))
.setOneHourIndexEntries(new TreeSet<Integer>())
.setSixHourIndexEntries(new TreeSet<Integer>())
.setOneHourIndexEntriesLock(new ReentrantReadWriteLock())
@@ -139,36 +142,32 @@ public class Aggregator {
@Override
public void onSuccess(ResultSet result) {
List<Row> rows = result.all();
- state.setRemainingRawData(new AtomicInteger(rows.size()));
+ state.getRemainingRawData().set(rows.size());
rawDataIndexEntriesArrival.countDown();
- if (rows.isEmpty()) {
- deleteIndexEntries(MetricsTable.ONE_HOUR);
- } else {
- deleteIndexEntries(MetricsTable.ONE_HOUR);
- log.debug("Starting raw data aggregation for " + rows.size() + " schedules");
- long start = System.currentTimeMillis();
- final DateTime endTime = startTime.plus(configuration.getRawTimeSliceDuration());
- Set<Integer> scheduleIds = new TreeSet<Integer>();
- List<StorageResultSetFuture> rawDataFutures = new ArrayList<StorageResultSetFuture>(batchSize);
- for (final Row row : rows) {
- scheduleIds.add(row.getInt(1));
- readPermits.acquire();
- rawDataFutures.add(dao.findRawMetricsAsync(row.getInt(1), startTime.getMillis(),
- endTime.getMillis()));
- if (rawDataFutures.size() == batchSize) {
- state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
- rawDataFutures));
- rawDataFutures = new ArrayList<StorageResultSetFuture>();
- scheduleIds = new TreeSet<Integer>();
- }
- }
- if (!rawDataFutures.isEmpty()) {
+
+ log.debug("Starting raw data aggregation for " + rows.size() + " schedules");
+ long start = System.currentTimeMillis();
+ final DateTime endTime = startTime.plus(configuration.getRawTimeSliceDuration());
+ Set<Integer> scheduleIds = new TreeSet<Integer>();
+ List<StorageResultSetFuture> rawDataFutures = new ArrayList<StorageResultSetFuture>(batchSize);
+ for (final Row row : rows) {
+ scheduleIds.add(row.getInt(1));
+ readPermits.acquire();
+ rawDataFutures.add(dao.findRawMetricsAsync(row.getInt(1), startTime.getMillis(),
+ endTime.getMillis()));
+ if (rawDataFutures.size() == batchSize) {
state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
rawDataFutures));
+ rawDataFutures = new ArrayList<StorageResultSetFuture>();
+ scheduleIds = new TreeSet<Integer>();
}
- log.debug("Finished processing one hour index entries in " + (System.currentTimeMillis() - start) +
- " ms");
}
+ if (!rawDataFutures.isEmpty()) {
+ state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
+ rawDataFutures));
+ }
+ log.debug("Finished processing one hour index entries in " + (System.currentTimeMillis() - start) +
+ " ms");
}
@Override
@@ -182,75 +181,38 @@ public class Aggregator {
}, state.getAggregationTasks());
if (state.is6HourTimeSliceFinished()) {
+ long start = System.currentTimeMillis();
log.debug("Fetching 1 hour index entries");
StorageResultSetFuture oneHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.SIX_HOUR,
state.getSixHourTimeSlice().getMillis());
- Futures.addCallback(oneHourFuture, new FutureCallback<ResultSet>() {
- @Override
- public void onSuccess(ResultSet resultSet) {
- for (Row row : resultSet) {
- // No need to get the write lock here because there won't be concurrent writes until after
- // state.getOneHourIndexEntriesArrival().countDown() is called
- state.getOneHourIndexEntries().add(row.getInt(1));
- }
- state.setRemaining1HourData(new AtomicInteger(state.getOneHourIndexEntries().size()));
- state.getOneHourIndexEntriesArrival().countDown();
- log.debug("Finished loading 1 hour index entries");
- }
-
- @Override
- public void onFailure(Throwable t) {
- log.warn("Failed to retrieve one hour aggregate index entries for time slice [" +
- get6HourTimeSlice() + "]. Some six hour aggregates may not get generated.");
- state.getOneHourIndexEntriesArrival().abort();
- state.setRemaining1HourData(new AtomicInteger(0));
- }
- }, state.getAggregationTasks());
+ Futures.addCallback(oneHourFuture, new AggregateIndexEntriesHandler(state.getOneHourIndexEntries(),
+ state.getRemaining1HourData(), state.getOneHourIndexEntriesArrival(), start, "1 hour", "6 hour"),
+ state.getAggregationTasks());
}
if (state.is24HourTimeSliceFinished()) {
+ long start = System.currentTimeMillis();
log.debug("Fetching 6 hour index entries");
StorageResultSetFuture sixHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.TWENTY_FOUR_HOUR,
state.getTwentyFourHourTimeSlice().getMillis());
- Futures.addCallback(sixHourFuture, new FutureCallback<ResultSet>() {
- @Override
- public void onSuccess(ResultSet resultSet) {
- for (Row row : resultSet) {
- // No need to get the write lock here because there won't be concurrent writes until after
- // state.getSixHourIndexEntriesArrival().countDown() is called
- state.getSixHourIndexEntries().add(row.getInt(1));
- }
- state.setRemaining6HourData(new AtomicInteger(state.getSixHourIndexEntries().size()));
- state.getSixHourIndexEntriesArrival().countDown();
- log.debug("Finished loading 6 hour index entrie");
- }
-
- @Override
- public void onFailure(Throwable t) {
- log.warn("Failed to retrieve 6 hour index entries for time slice " +
- state.getTwentyFourHourTimeSlice() + ". Some 24 hour aggregates may not get generated.", t);
- state.getSixHourIndexEntriesArrival().abort();
- state.setRemaining6HourData(new AtomicInteger(0));
- }
- }, state.getAggregationTasks());
+ Futures.addCallback(sixHourFuture, new AggregateIndexEntriesHandler(state.getSixHourIndexEntries(),
+ state.getRemaining6HourData(), state.getSixHourIndexEntriesArrival(), start, "6 hour", "24 hour"),
+ state.getAggregationTasks());
}
try {
+ try {
+ rawDataIndexEntriesArrival.await();
+ deleteIndexEntries(MetricsTable.ONE_HOUR);
+ } catch (AbortedException e) {
+ }
+
if (state.is6HourTimeSliceFinished()) {
- // TODO do we need to wait for raw index entries arrival?
+ waitFor(state.getRemainingRawData());
try {
- log.debug("Waiting for arrival of raw data index entries");
- rawDataIndexEntriesArrival.await();
- } catch (AbortedException e) {
- log.warn("Failed to load raw data index entries. Proceeding with 1 hour data aggregation.");
- log.warn("Remaining raw data: " + state.getRemainingRawData());
- }
- log.debug("Waiting for raw aggregation to complete");
- waitForRawAggregationToComplete();
- deleteIndexEntries(MetricsTable.SIX_HOUR);
- // Now queue up remaining 1 hour data aggregation
- try {
- log.debug("Remaining schedule ids for 1 hour aggregation: " + state.getOneHourIndexEntries());
+ state.getOneHourIndexEntriesArrival().await();
+ deleteIndexEntries(MetricsTable.SIX_HOUR);
+
List<StorageResultSetFuture> queryFutures = new ArrayList<StorageResultSetFuture>(batchSize);
Set<Integer> scheduleIds = new TreeSet<Integer>();
state.getOneHourIndexEntriesLock().writeLock().lock();
@@ -259,7 +221,6 @@ public class Aggregator {
state.getSixHourTimeSliceEnd().getMillis()));
scheduleIds.add(scheduleId);
if (queryFutures.size() == batchSize) {
- log.debug("Submitting 1 hour aggregation task for schedule ids " + scheduleIds);
state.getAggregationTasks().submit(new Aggregate1HourData(dao, state, scheduleIds,
queryFutures));
queryFutures = new ArrayList<StorageResultSetFuture>(batchSize);
@@ -267,22 +228,24 @@ public class Aggregator {
}
}
if (!queryFutures.isEmpty()) {
- log.debug("Submitting 1 hour aggregation task for schedule ids " + scheduleIds);
state.getAggregationTasks().submit(new Aggregate1HourData(dao, state, scheduleIds,
queryFutures));
queryFutures = null;
scheduleIds = null;
}
+ } catch (AbortedException e) {
+ log.warn("Failed to load 1 hour index entries. Some 6 hour aggregates may not get generated.", e);
} finally {
state.getOneHourIndexEntriesLock().writeLock().unlock();
}
}
if (state.is24HourTimeSliceFinished()) {
- waitFor1HourAggregationToComplete();
- deleteIndexEntries(MetricsTable.TWENTY_FOUR_HOUR);
+ waitFor(state.getRemaining1HourData());
try {
- log.debug("Remaining scheulde ids for 6 hour aggregation: " + state.getSixHourIndexEntries());
+ state.getSixHourIndexEntriesArrival().await();
+ deleteIndexEntries(MetricsTable.TWENTY_FOUR_HOUR);
+
List<StorageResultSetFuture> queryFutures = new ArrayList<StorageResultSetFuture>(batchSize);
Set<Integer> scheduleIds = new TreeSet<Integer>();
state.getSixHourIndexEntriesLock().writeLock().lock();
@@ -291,7 +254,6 @@ public class Aggregator {
state.getTwentyFourHourTimeSliceEnd().getMillis()));
scheduleIds.add(scheduleId);
if (queryFutures.size() == batchSize) {
- log.debug("Submitting 6 hour aggregation task for schedule ids " + scheduleIds);
state.getAggregationTasks().submit(new Aggregate6HourData(dao, state, scheduleIds,
queryFutures));
queryFutures = new ArrayList<StorageResultSetFuture>(batchSize);
@@ -305,6 +267,8 @@ public class Aggregator {
queryFutures = null;
scheduleIds = null;
}
+ } catch (AbortedException e) {
+ log.warn("Failed to load 6 hour index entries. Some 24 hour aggregates may not get generated.", e);
} finally {
state.getSixHourIndexEntriesLock().writeLock().unlock();
}
@@ -313,54 +277,34 @@ public class Aggregator {
while (!isAggregationFinished()) {
Thread.sleep(50);
}
- log.debug("Aggregation is done. There are " + remainingIndexEntries.get() + " remaining index entries");
} catch (InterruptedException e) {
log.warn("An interrupt occurred while waiting for aggregation to finish", e);
}
return oneHourData;
}
- private void waitForRawAggregationToComplete() throws InterruptedException {
- while (state.getRemainingRawData().get() > 0) {
- Thread.sleep(50);
- }
- }
-
- private void waitFor1HourAggregationToComplete() throws InterruptedException {
- while (state.getRemaining1HourData().get() > 0) {
+ private void waitFor(AtomicInteger remainingData) throws InterruptedException {
+ while (remainingData.get() > 0) {
Thread.sleep(50);
}
}
private boolean isAggregationFinished() throws InterruptedException {
- try {
- rawDataIndexEntriesArrival.await();
- } catch (AbortedException e) {
- }
- try {
- state.getOneHourIndexEntriesArrival().await();
- } catch (AbortedException e) {
-
- }
- try {
- state.getSixHourIndexEntriesArrival().await();
- } catch (AbortedException e) {
- }
return state.getRemainingRawData().get() <= 0 && state.getRemaining1HourData().get() <= 0 &&
state.getRemaining6HourData().get() <= 0 && remainingIndexEntries.get() <= 0;
}
private void deleteIndexEntries(final MetricsTable table) {
- DateTime time;
+ final DateTime time;
switch (table) {
case ONE_HOUR:
time = startTime;
break;
case SIX_HOUR:
- time = get6HourTimeSlice();
+ time = state.getSixHourTimeSlice();
break;
default:
- time = get24HourTimeSlice();
+ time = state.getTwentyFourHourTimeSlice();
break;
}
log.debug("Deleting " + table + " index entries for time slice " + time);
@@ -374,7 +318,7 @@ public class Aggregator {
@Override
public void onFailure(Throwable t) {
- log.warn("Failed to delete index entries for table " + table + " at time [" + startTime + "]");
+ log.warn("Failed to delete index entries for table " + table + " at time [" + time + "]");
remainingIndexEntries.decrementAndGet();
}
});
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 34cc2a9..0741fd2 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
@@ -71,11 +71,17 @@ public class MetricsServer {
private MetricsConfiguration configuration;
+// private RateLimiter readPermits = RateLimiter.create(Integer.parseInt(
+// System.getProperty("rhq.storage.read-limit", "1000")));
+//
+// private RateLimiter writePermits = RateLimiter.create(Integer.parseInt(
+// System.getProperty("rhq.storage.write-limit", "2500")));
+
private RateLimiter readPermits = RateLimiter.create(Integer.parseInt(
System.getProperty("rhq.storage.read-limit", "1200")));
private RateLimiter writePermits = RateLimiter.create(Integer.parseInt(
- System.getProperty("rhq.storage.write-limit", "3100")));
+ System.getProperty("rhq.storage.write-limit", "3000")));
private boolean pastAggregationMissed;
10 years, 7 months
[rhq] modules/core modules/enterprise
by Jay Shaughnessy
modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/ResourceTypeFlyweight.java | 14 ++++-
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java | 21 ++++----
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java | 13 +++--
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataUpdateWithIgnoredTypesTest.java | 25 +++++++---
4 files changed, 48 insertions(+), 25 deletions(-)
New commits:
commit 8abed9ff39a345c79927f0964cf0af60528ed4c2
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Oct 22 16:14:46 2013 -0400
Work to remove intermittent test failures in DiscoveryBossBeanTest
- add some more debug if in fact these failures happen again
- remove the root cause of the issue: MetadataUpdateWithIgnoredTypesTest
creates ignored types that exist until the "AfterClass" logic is
executed. In the failure case the ignored types can exist for some
time and with unlucky test execution DiscoveryBossBeanTest fails
because it executes DBB.mergeInventoryReport, which queries for ignored
types...
To solve it, applied "single test design pattern" to MetadataUpdateWithIgnoredTypesTest
which allows us to do all the clean up in the afterMethod, which always
executes immediately after the [single] test.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/ResourceTypeFlyweight.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/ResourceTypeFlyweight.java
index cae0efe..2715d5b 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/ResourceTypeFlyweight.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/ResourceTypeFlyweight.java
@@ -28,8 +28,8 @@ import java.io.Serializable;
import org.rhq.core.domain.resource.ResourceCategory;
/**
- * A flyweight representation of the resource type intended for the display purposes.
- *
+ * A flyweight representation of the resource type intended for the display purposes.
+ *
* @author Lukas Krejci
*/
public class ResourceTypeFlyweight implements Serializable {
@@ -86,7 +86,7 @@ public class ResourceTypeFlyweight implements Serializable {
public void setSubCategory(ResourceSubCategoryFlyweight subCategory) {
this.subCategory = subCategory;
}
-
+
public boolean isSingleton() {
return singleton;
}
@@ -119,5 +119,11 @@ public class ResourceTypeFlyweight implements Serializable {
result = 31 * id;
}
return result;
- }
+ }
+
+ @Override
+ public String toString() {
+ return "ResourceTypeFlyweight [id=" + id + ", name=" + name + ", plugin=" + plugin + "]";
+ }
+
}
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
index 920ff07..e09db85 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
@@ -288,7 +288,8 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
// Merge this inventory report
MergeInventoryReportResults mergeResults = discoveryBoss.mergeInventoryReport(serialize(inventoryReport));
assert mergeResults != null;
- assert mergeResults.getIgnoredResourceTypes() == null : "nothing should have been ignored";
+ assert mergeResults.getIgnoredResourceTypes() == null : "nothing should have been ignored: "
+ + mergeResults.getIgnoredResourceTypes();
ResourceSyncInfo platformSyncInfo = mergeResults.getResourceSyncInfo();
assert platformSyncInfo != null;
@@ -420,7 +421,8 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
// Merge this inventory report to get platform and servers in NEW state
MergeInventoryReportResults mergeResults = discoveryBoss.mergeInventoryReport(serialize(inventoryReport));
assert mergeResults != null;
- assert mergeResults.getIgnoredResourceTypes() == null : "nothing should have been ignored";
+ assert mergeResults.getIgnoredResourceTypes() == null : "nothing should have been ignored: "
+ + mergeResults.getIgnoredResourceTypes();
ResourceSyncInfo platformSyncInfo = mergeResults.getResourceSyncInfo();
assert platformSyncInfo != null;
@@ -484,18 +486,16 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
storageNode.setUuid(String.valueOf(new Random().nextInt()));
storagePlatform.addChildResource(storageNode);
- storageNode.setPluginConfiguration(Configuration.builder()
- .addSimple("nativeTransportPort", 9142)
- .addSimple("storagePort", 7100)
- .addSimple("host", "localhost")
- .build());
+ storageNode.setPluginConfiguration(Configuration.builder().addSimple("nativeTransportPort", 9142)
+ .addSimple("storagePort", 7100).addSimple("host", "localhost").build());
inventoryReport.addAddedRoot(storagePlatform);
// Merge this inventory report
MergeInventoryReportResults mergeResults = discoveryBoss.mergeInventoryReport(serialize(inventoryReport));
assert mergeResults != null;
- assert mergeResults.getIgnoredResourceTypes() == null : "nothing should have been ignored";
+ assert mergeResults.getIgnoredResourceTypes() == null : "nothing should have been ignored: "
+ + mergeResults.getIgnoredResourceTypes();
ResourceSyncInfo platformSyncInfo = mergeResults.getResourceSyncInfo();
assert platformSyncInfo != null;
@@ -668,8 +668,9 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
}
private StorageNode findStorageNode(Resource resource) {
- List<StorageNode> storageNodes = em.createQuery("SELECT s FROM StorageNode s where s.resource = :resource",
- StorageNode.class).setParameter("resource", resource).getResultList();
+ List<StorageNode> storageNodes = em
+ .createQuery("SELECT s FROM StorageNode s where s.resource = :resource", StorageNode.class)
+ .setParameter("resource", resource).getResultList();
if (storageNodes.isEmpty()) {
return null;
}
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
index a0b6620..b29d375 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
@@ -51,16 +51,19 @@ public class MetadataBeanTest extends AbstractEJB3Test {
private final String objectFileName = "pluginIds.obj";
private Set<Integer> pluginIds;
- /**
+ /**
* <pre>IMPORTANT NOTE FOR SUBCLASS IMPLEMENTORS
* Arquillian (1.0.2) executes @AfterXXX after each test. The work below would normally be done in
- * an AfterClass method, but instead we'll use mock tests, that perform last for each subclass, to
- * perform this cleanup code.
+ * an AfterClass method, but instead we'll use a "special" test that performs last for each subclass, to
+ * perform this cleanup code.
* </pre>
* Need to delete rows from RHQ_PLUGINS because subsequent tests in server/jar would otherwise fail. Some tests look
* at what plugins are in the database, and then look for corresponding plugin files on the file system. MetadataTest
* however removes the generated plugin files during each test run.
- *
+ *
+ * Note that using this for cleanup is discouraged in favor or beforeMethod and afterMethod overrides. Remember
+ * that tests and test classes can execute in any order. This only guarantees clean up at some point, other tests
+ * [in other test classes] may encounter data that is left for cleanup by this mechanism.
*/
protected void afterClassWork() throws Exception {
PluginManagerLocal pluginMgr = LookupUtil.getPluginManager();
@@ -262,7 +265,7 @@ public class MetadataBeanTest extends AbstractEJB3Test {
/**
* This actually creates a .jar file on the file system but doesn't register it.
- *
+ *
* @param jarName the name to be given to the new jar file
* @param descriptorXmlFilename where the descriptor XML can be found on the test classloader
* @return the location of the new jar file
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataUpdateWithIgnoredTypesTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataUpdateWithIgnoredTypesTest.java
index 5d51a2a..b2049da 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataUpdateWithIgnoredTypesTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataUpdateWithIgnoredTypesTest.java
@@ -7,22 +7,35 @@ import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
+/**
+ * This class uses the single test design pattern. This helps eliminate intra-test dependencies, minimizes
+ * setup/cleanup and eliminates lag time between test completion and test class cleanup.
+ * </p>
+ * Therefore, this class does not implement an afterClassWorkTest(), instead that logic is moved to afterMethod().
+ * </p>
+ * This design is specifically used here because we can't allow ignored test resource types to exist in
+ * the DB waiting for cleanup, it affects any calls to mergeInventoryReport that may be don in other test classes.
+ */
@Test(groups = { "plugin.metadata.ignoretypes" })
public class MetadataUpdateWithIgnoredTypesTest extends MetadataBeanTest {
private static final String PLUGIN_NAME = "RemoveIgnoredTypesPlugin";
+ @Override
+ protected void afterMethod() throws Exception {
+ // because we use the single test design pattern we can immediately perform the typical afterClass
+ // cleanup work in the afterMethod, which is guaranteed to run immediately after the test.
+ afterClassWork();
+
+ super.afterMethod();
+ }
+
+ // This must be the only test in this class.
@Test
public void upgradePluginWithIgnoredTypes() throws Exception {
performTest(true);
}
- // required cleanup
- @Test(priority = 10, alwaysRun = true)
- public void afterClassWorkTest() throws Exception {
- afterClassWork();
- }
-
private void performTest(boolean ignoreTypes) throws Exception {
createPlugin("remove-types-plugin", "1.0", "remove_types_v1.xml");
10 years, 7 months
[rhq] Branch 'release/jon3.2.x' - modules/core modules/enterprise
by Jay Shaughnessy
modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java | 26 -
modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java | 5
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java | 1
modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java | 17 -
modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java | 1
modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java | 6
modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java | 12
modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java | 5
modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java | 3
modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java | 10
modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java | 9
modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java | 8
modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java | 2
modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml | 14
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java | 36 --
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java | 48 ++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java | 31 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java | 22 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java | 59 +++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java | 168 +++++++---
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java | 11
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java | 88 ++++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java | 58 ++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java | 30 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java | 18 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java | 33 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java | 29 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java | 18 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java | 36 ++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java | 22 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java | 5
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java | 22 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java | 19 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java | 12
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java | 52 ++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java | 23 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java | 21 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java | 29 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java | 25 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java | 53 ++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java | 60 ++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java | 32 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java | 69 ++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java | 25 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java | 23 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java | 62 +++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java | 23 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java | 14
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java | 27 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java | 19 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java | 52 ++-
77 files changed, 1108 insertions(+), 477 deletions(-)
New commits:
commit e34051457ccf1abfd2106d2ef107620e08ebc160
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Sat Oct 19 11:34:58 2013 -0400
Bug 880359 - JavaDoc used for Remote API is inconsistent with API
Using Eclipse's validation cleaned up remote api and domain javadoc. The jdoc
could still be a lot better in places, but at least it's no longer invalid.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
index 3445d9e..21d6113 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
@@ -131,15 +131,15 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
+ " FROM Alert a " //
+ " JOIN a.alertDefinition alertDef )"),
@NamedQuery(name = AlertDefinition.QUERY_FIND_ALL_COMPOSITES_ADMIN, query = "" //
- + " SELECT new org.rhq.core.domain.alert.composite.AlertDefinitionComposite" //
+ + " SELECT new org.rhq.core.domain.alert.composite.AlertDefinitionComposite" //
+ " ( ad, parent.id, parent.name ) " //
+ " FROM AlertDefinition ad " //
+ " JOIN ad.resource res " //
+ "LEFT JOIN res.parentResource parent " //
- /*
+ /*
* as much as i want to (for efficiency of the query [namely roundtrips to the db]) i can't use fetching here
- * because, when added, the query parser chokes with "query specified join fetching, but the owner of the
- * fetched association was not present in the select list"...even though it clearly is ;/
+ * because, when added, the query parser chokes with "query specified join fetching, but the owner of the
+ * fetched association was not present in the select list"...even though it clearly is ;/
*/
//+ " JOIN FETCH ad.conditions ac " //
+ " WHERE ad.deleted = false " //
@@ -148,19 +148,19 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
+ " AND (ad.ctime > :startTime OR :startTime IS NULL) " //
+ " AND (ad.ctime < :endTime OR :endTime IS NULL) " //
+ " AND (ad.id IN ( SELECT aad.id FROM AlertDefinition aad " //
- + " JOIN aad.conditions aadc " //
+ + " JOIN aad.conditions aadc " //
+ " WHERE aadc.category = :category ) " //
+ " OR :category IS NULL) "), //
@NamedQuery(name = AlertDefinition.QUERY_FIND_ALL_COMPOSITES, query = "" //
- + " SELECT new org.rhq.core.domain.alert.composite.AlertDefinitionComposite" //
+ + " SELECT new org.rhq.core.domain.alert.composite.AlertDefinitionComposite" //
+ " ( ad, parent.id, parent.name ) " //
+ " FROM AlertDefinition ad " //
+ " JOIN ad.resource res " //
+ "LEFT JOIN res.parentResource parent " //
- /*
+ /*
* as much as i want to (for efficiency of the query [namely roundtrips to the db]) i can't use fetching here
- * because, when added, the query parser chokes with "query specified join fetching, but the owner of the
- * fetched association was not present in the select list"...even though it clearly is ;/
+ * because, when added, the query parser chokes with "query specified join fetching, but the owner of the
+ * fetched association was not present in the select list"...even though it clearly is ;/
*/
//+ " JOIN FETCH ad.conditions ac " //
+ " WHERE ad.deleted = false " //
@@ -172,7 +172,7 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
+ " AND (ad.ctime > :startTime OR :startTime IS NULL) " //
+ " AND (ad.ctime < :endTime OR :endTime IS NULL) " //
+ " AND (ad.id IN ( SELECT aad.id FROM AlertDefinition aad " //
- + " JOIN aad.conditions aadc " //
+ + " JOIN aad.conditions aadc " //
+ " WHERE aadc.category = :category ) " //
+ " OR :category IS NULL) "), //
@NamedQuery(name = AlertDefinition.QUERY_FIND_DEFINITION_ID_BY_CONDITION_ID, query = "" //
@@ -532,15 +532,19 @@ public class AlertDefinition implements Serializable {
}
/**
+ * @return the group
* @deprecated use getGroup()
*/
+ @Deprecated
public ResourceGroup getResourceGroup() {
return group;
}
/**
+ * @param resourceGroup
* @deprecated use setGroup(ResourceGroup)
*/
+ @Deprecated
public void setResourceGroup(ResourceGroup resourceGroup) {
this.group = resourceGroup;
}
@@ -646,7 +650,7 @@ public class AlertDefinition implements Serializable {
* If "read only" is true, then changes to the parent group/template alert definition will not
* change this resource alert def. If read only is false, changes to the parent propagate to the
* child resource alert.
- *
+ *
* @return read only flag
*/
public boolean isReadOnly() {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
index ed72d5f..b54c654 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
@@ -285,6 +285,7 @@ public class Role implements Serializable {
/**
* This *does not* update the inverse relation. You may want {@link BundleGroup#addRole(Role)}
+ * @param bundleGroups
*/
public void setBundleGroups(Set<BundleGroup> bundleGroups) {
this.bundleGroups = bundleGroups;
@@ -292,14 +293,15 @@ public class Role implements Serializable {
/**
* This *does not* update the inverse relation. You may want {@link BundleGroup#addRole(Role)}
+ * @param bundleGroup
*/
-
public void addBundleGroup(BundleGroup bundleGroup) {
getBundleGroups().add(bundleGroup);
}
/**
* This *does not* update the inverse relation. You may want {@link BundleGroup#removeRole(Role)}
+ * @param bundleGroup
*/
public void removeBundleGroup(BundleGroup bundleGroup) {
getBundleGroups().remove(bundleGroup);
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java
index c2f2714..1ce5fc9 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java
@@ -199,7 +199,7 @@ public class Bundle implements Serializable {
/**
* This does not set the inverse relationship. You may want {@link BundleGroup#addBundle(Bundle)}.
- * @param bundleGroups
+ * @param bundleGroup
*/
public void addBundleGroup(BundleGroup bundleGroup) {
getBundleGroups().add(bundleGroup);
@@ -207,7 +207,8 @@ public class Bundle implements Serializable {
/**
* This does not set the inverse relationship. You may want {@link BundleGroup#removeBundle(Bundle)}.
- * @param bundleGroups
+ * @param bundleGroup
+ * @return true if bundle group is removed, otherwise false
*/
public boolean removeBundleGroup(BundleGroup bundleGroup) {
return getBundleGroups().remove(bundleGroup);
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java
index 1507f9a..fe470c5 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java
@@ -267,7 +267,7 @@ public class BundleDeployment implements Serializable {
/**
* The duration of the configuration update request which simply is the difference between the
- * {@link #getCreatedTime()} and the {@link #getModifiedTime()}. If the request hasn't completed yet, this will be
+ * {@link #getCtime()} and the {@link #getMtime()}. If the request hasn't completed yet, this will be
* the difference between the current time and the created time.
*
* @return the duration of time that the request took or is taking to complete
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java
index e290f46..4938660 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java
@@ -132,6 +132,7 @@ public class BundleGroup implements Serializable {
/**
* This also updates the inverse relation (remove this bundle group from bundle)
* @param bundle
+ * @return true if bundle was removed, otherwise false
*/
public boolean removeBundle(Bundle bundle) {
boolean result = getBundles().remove(bundle);
@@ -141,7 +142,7 @@ public class BundleGroup implements Serializable {
/**
* This also updates the inverse relations
- * @param bundle
+ * @param bundles
*/
public void setBundles(Set<Bundle> bundles) {
for (Bundle bundle : getBundles()) {
@@ -176,6 +177,7 @@ public class BundleGroup implements Serializable {
/**
* This also updates the inverse relation (remove this bundle group from role)
* @param role
+ * @return true if role was removed, otherwise false
*/
public boolean removeRole(Role role) {
role.removeBundleGroup(this);
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java
index 415383c..f710328 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java
@@ -36,7 +36,7 @@ import org.rhq.core.domain.configuration.PropertySimple;
* the bundle destination base directory definitions (the base locations where bundles can be deployed for resources that
* are of the given type). Rather than expect users of this object to know the internal properties stored in the config, this
* object has strongly-typed methods to extract the properties into more easily consumable POJOs, such as
- * {@link #getBundleDestinationBaseDirectory()} and {@link #addBundleDestinationBaseDirectory(String, String, String, String)}.
+ * {@link #getBundleDestinationBaseDirectories()} and {@link #addBundleDestinationBaseDirectory(String, String, String, String)}.
*
* @author John Mazzitelli
*/
@@ -63,7 +63,7 @@ public class ResourceTypeBundleConfiguration implements Serializable {
/**
* Returns the actual, raw configuration. Callers should rarely want to use this - use the more
- * strongly typed methods such as {@link #getBundleDestinationBaseDirectory()}.
+ * strongly typed methods such as {@link #getBundleDestinationBaseDirectories()}.
*
* @return the raw bundle configuration object
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java b/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java
index 6e04ab6..cfdf228 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java
@@ -319,6 +319,7 @@ public class Server implements Serializable {
* by the various {@link Status} elements), then that change should be added via this method.
* Periodically, a background job will come along, check the status, and possibly perform
* work on behalf of this server based on the type of change.
+ * @param newStatus
*/
public void addStatus(Status newStatus) {
this.status |= newStatus.mask;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java b/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java
index e00a25c..d1abdb7 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java
@@ -128,7 +128,7 @@ public class StorageNodeLoadComposite implements Serializable {
}
/**
- * @deprecated use {@link #getPartitionDiskUsedPercentage() getPartitionDiskUsedPercentage()} instead
+ * @deprecated use {@link #getDataDiskUsedPercentage() getPartitionDiskUsedPercentage()} instead
*
* @return partitionDiskUsedPercentage
*/
@@ -137,9 +137,9 @@ public class StorageNodeLoadComposite implements Serializable {
}
/**
- * @deprecated use {@link #setPartitionDiskUsedPercentage() setPartitionDiskUsedPercentage()} instead
+ * @deprecated use {@link #setDataDiskUsedPercentage(MeasurementAggregateWithUnits)} instead
*
- * @param partitionDiskUsedPercentage
+ * @param diskUsedPercentage
*/
public void setDiskSpacePercentageUsed(MeasurementAggregateWithUnits diskUsedPercentage) {
setDataDiskUsedPercentage(diskUsedPercentage);
@@ -244,7 +244,6 @@ public class StorageNodeLoadComposite implements Serializable {
return builder.toString();
}
-
public static class MeasurementAggregateWithUnits implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java b/modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java
index b3a8b48..3253f01 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java
@@ -44,7 +44,7 @@ public class JobTrigger implements Serializable {
private Date startDate;
// Fields used by recurrenceType=REPEAT_INTERVAL triggers
- private Long repeatInterval;
+ private Long repeatInterval;
// endDate and repeatCount are mutually exclusive - only one can have a non-null value;
// if both are null, the repetition is indefinite.
private Date endDate;
@@ -156,6 +156,7 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run now and repeat on interval indefinitely.
*
+ * @param repeatInterval
* @return a trigger that will run now and repeat on interval indefinitely
*/
public static JobTrigger createNowAndRepeatTrigger(long repeatInterval) {
@@ -165,6 +166,8 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run now and repeat on interval until end date/time.
*
+ * @param repeatInterval
+ * @param endDate
* @return a trigger that will run now and repeat on interval until end date/time
*/
public static JobTrigger createNowAndRepeatTrigger(long repeatInterval, Date endDate) {
@@ -174,6 +177,8 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run now and repeat on interval n times.
*
+ * @param repeatInterval
+ * @param repeatCount
* @return a trigger that will run now and repeat on interval n times
*/
public static JobTrigger createNowAndRepeatTrigger(long repeatInterval, int repeatCount) {
@@ -183,6 +188,7 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run at specified date/time, once.
*
+ * @param startDate
* @return a trigger that will run at specified date/time, once
*/
public static JobTrigger createLaterTrigger(Date startDate) {
@@ -192,6 +198,8 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run at specified date/time and then repeat on interval indefinitely.
*
+ * @param startDate
+ * @param repeatInterval
* @return a trigger that will run at specified date/time and then repeat on interval indefinitely
*/
public static JobTrigger createLaterAndRepeatTrigger(Date startDate, long repeatInterval) {
@@ -201,6 +209,9 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run at specified date/time and then repeat on interval until end date/time.
*
+ * @param startDate
+ * @param repeatInterval
+ * @param endDate
* @return a trigger that will run at specified date/time and then repeat on interval until end date/time
*/
public static JobTrigger createLaterAndRepeatTrigger(Date startDate, long repeatInterval, Date endDate) {
@@ -210,6 +221,9 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run at specified date/time and then repeat on interval n times.
*
+ * @param startDate
+ * @param repeatInterval
+ * @param repeatCount
* @return a trigger that will run at specified date/time and then repeat on interval n times
*/
public static JobTrigger createLaterAndRepeatTrigger(Date startDate, long repeatInterval, int repeatCount) {
@@ -221,6 +235,7 @@ public class JobTrigger implements Serializable {
* <a href="http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html">Quartz
* cron expression syntax</a>, which is a bit different than Unix cron expression syntax.
*
+ * @param cronExpression
* @return a trigger that will run on the schedule specified by a cron expression
*/
public static JobTrigger createCronTrigger(String cronExpression) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java b/modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java
index b9637bf..2f8c31e 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java
@@ -29,9 +29,9 @@ import java.util.HashMap;
/**
* Provides simple strings to describe certain server details, useful for end users that have a need to see
* this data. This is meant to be used as a read-only pojo to be shared to clients.
- *
+ *
* Some of the fields in this pojo may be empty if the user didn't have permissions to see those fields.
- *
+ *
* @author John Mazzitelli
*/
public class ServerDetails implements Serializable {
@@ -46,7 +46,7 @@ public class ServerDetails implements Serializable {
SERVER_TIMEZONE, //
SERVER_LOCAL_TIME, //
SERVER_INSTALL_DIR, // where RHQ is installed, the top directory where everything else is
- SERVER_HOME_DIR, // where the RHQ server's JBossAS deployment is; this is under the install dir
+ SERVER_HOME_DIR, // where the RHQ server's JBossAS deployment is; this is under the install dir
/**
* @deprecated this is no longer used or exposed by the server. The measurements are not stored in the database
@@ -83,6 +83,7 @@ public class ServerDetails implements Serializable {
* Returns details about the server that returned this object. The keys are one of the
* {@link Detail} enums. You are not guaranteed to have all details in the returned map;
* if the user doesn't have the permissions necessary, some details will not be available.
+ * @return HashMap of the details
*/
public HashMap<Detail, String> getDetails() {
return this.details;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java b/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
index 529b037..6a65ba2 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
@@ -198,6 +198,7 @@ public enum SystemSetting {
* Whether or not is this setting present in the publicly accessible. If a property is NOT public, its value
* cannot be obtained remotely and cannot be updated through the SystemManager. Other mechanism must exist in the
* RHQ server to update such settings.
+ * @return true if public, otherwise false
*/
public boolean isPublic() {
return isPublic;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java
index a4bd587..d745b28 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java
@@ -53,8 +53,10 @@ import javax.xml.bind.annotation.XmlSeeAlso;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import org.rhq.core.domain.configuration.Configuration;
+
/**
- * The entire definition for a {@link import javax.persistence.CascadeType.Configuration}. This includes mapped property
+ * The entire definition for a {@link Configuration}. This includes mapped property
* definitions of arbitrary complexity, made up of {@link PropertyDefinitionSimple}s, {@link PropertyDefinitionList}s,
* and {@link PropertyDefinitionMap}s.
*
@@ -168,7 +170,7 @@ public class ConfigurationDefinition implements Serializable {
* Get the properties for this configuration. This is the only method that returns a Collection, where an update
* will be reflected in the database.
*
- * @return
+ * @return the property definitions, not a copy
*/
@NotNull
public Map<String, PropertyDefinition> getPropertyDefinitions() {
@@ -268,7 +270,6 @@ public class ConfigurationDefinition implements Serializable {
*
* @return the set of properties that are not in a group
*
- * @see #propertyDefinitions
* @see #getPropertyDefinitions()
*/
@NotNull
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java
index 636c741..ea4080c 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java
@@ -38,7 +38,6 @@ import javax.persistence.OneToMany;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.IndexColumn;
@@ -123,7 +122,7 @@ public class PropertyDefinitionSimple extends PropertyDefinition {
/**
* Return all the constraints on this simple-property no matter how they are grouped together in the XML.
*
- * @return
+ * @return the constraints, not null
*/
@NotNull
public Set<Constraint> getConstraints() {
@@ -146,6 +145,7 @@ public class PropertyDefinitionSimple extends PropertyDefinition {
/**
* Get the <options> within <property-options> for a <simple-property>
+ * @return not null
*/
@NotNull
public List<PropertyDefinitionEnumeration> getEnumeratedValues() {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
index 19c5ac3..4fe8e03 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
@@ -44,7 +44,6 @@ import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlTransient;
-
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.resource.ProductVersion;
import org.rhq.core.domain.util.OSGiVersionComparator;
@@ -70,7 +69,7 @@ import org.rhq.core.domain.util.OSGiVersionComparator;
+ " WHERE pv.generalPackage.name = :packageName " //
+ " AND pv.generalPackage.packageType.name = :packageTypeName " //
+ " AND pv.generalPackage.packageType.resourceType.id = :resourceTypeId " //
- + " AND pv.sha256 = :sha "
+ + " AND pv.sha256 = :sha " //
+ " ORDER BY pv.id DESC "),
@NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH, query = "SELECT pv FROM PackageVersion AS pv "
+ " WHERE pv.generalPackage.name = :name " + " AND pv.generalPackage.packageType.id = :packageTypeId "
@@ -668,7 +667,7 @@ public class PackageVersion implements Serializable {
/**
* Directly assign this package version to the given repo.
*
- * @param packageVersion
+ * @param repo
*
* @return the mapping that was added
*/
@@ -744,7 +743,7 @@ public class PackageVersion implements Serializable {
*
* @return the mapping entities
*
- * @see #getPackageVersions()
+ * @see #getProductVersions()
*/
public Set<ProductVersionPackageVersion> getProductVersionPackageVersions() {
return productVersionPackageVersions;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java
index 2166e4c..07e1fbd 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java
@@ -139,7 +139,7 @@ public class RepoGroup implements Serializable {
*
* @return the mapping entities
*
- * @see #getRepoGroup()
+ * @see #getRepos()
*/
public Set<RepoRepoGroup> getRepoRepoGroups() {
return repoRepoGroups;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java
index 6fd6633..37f07ac 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java
@@ -122,7 +122,7 @@ public class RepoRelationship implements Serializable {
*
* @return the mapping entities
*
- * @see #getRepoRelationship()
+ * @see #getRelatedRepos()
*/
public Set<RepoRepoRelationship> getRepoRepoRelationships() {
return repoRepoRelationships;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java
index 0f0e191..cc1f402 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java
@@ -39,7 +39,7 @@ public class SubscribedRepo implements Serializable {
}
/**
- * @param repoName the repo name to set
+ * @param name the repo name to set
*/
public void setName(String name) {
this.name = name;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java
index b5dd0e4..d6f8093 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java
@@ -83,7 +83,7 @@ public class BundleVersionCriteria extends TaggedCriteria {
* Unless called by an InventoryManager the deployments will be filtered to those the caller can view, based
* on the resource groups associated with his roles and the destination associated with the deployments.
*
- * @param fetchDestinations
+ * @param fetchBundleDeployments
*/
public void fetchBundleDeployments(boolean fetchBundleDeployments) {
this.fetchBundleDeployments = fetchBundleDeployments;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
index f398020..bd747e2 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
@@ -373,7 +373,7 @@ public abstract class Criteria implements Serializable, BaseCriteria {
* a RuntimeException is thrown, indicating whether no results, or multiple results were found.
*
* @param result
- * @return
+ * @return the single result
* @throws RuntimeException In not exactly one result is found. The message will include either the String
* "NoResultException" or "NonUniqueResultException", appropriately. The JPA exceptions are not used so that there
* is no dependency on a JPA implementation jar for the caller.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java
index 72438fdc..6314f5c 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java
@@ -68,7 +68,7 @@ public class DashboardCriteria extends Criteria {
}
/**
- * If not set explicitly this defaults to {@link DashboardCategory.INVENTORY}.
+ * If not set explicitly this defaults to {@link DashboardCategory#INVENTORY}.
* @param category
*/
public void addFilterCategory(DashboardCategory category) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java
index c4a3795..d419b9e 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java
@@ -132,7 +132,7 @@ public class PackageVersionCriteria extends Criteria {
/**
* Requires MANAGE_INVENTORY permission.
- * @param fetchInstalledPackages
+ * @param fetchInstalledPackageHistory
*/
public void fetchInstalledPackageHistory(boolean fetchInstalledPackageHistory) {
this.fetchInstalledPackageHistory = fetchInstalledPackageHistory;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
index fc41380..c3970e3 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
@@ -178,7 +178,7 @@ public class ResourceCriteria extends TaggedCriteria {
/**
* Note, setting this filter will set filterInventoryStatus to null since that is a mutually exclusive filter.
*
- * @param filterInventoryStatus
+ * @param filterInventoryStatuses
*/
public void addFilterInventoryStatuses(List<InventoryStatus> filterInventoryStatuses) {
this.filterInventoryStatuses = filterInventoryStatuses;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
index 00b54a2..add0aef 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
@@ -150,7 +150,7 @@ public class ResourceGroupCriteria extends TaggedCriteria {
/**
* Requires MANAGE_INVENTORY. Use addFilterPrivate(true) to filter on the caller's private groups.
- * @param filterSubjectId.
+ * @param filterSubjectId
*/
public void addFilterSubjectId(Integer filterSubjectId) {
this.filterSubjectId = filterSubjectId;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java b/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java
index dbbc9f0..90e08c6 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java
@@ -255,7 +255,7 @@ public class Dashboard implements Serializable {
* This can be used to safely add a portlet without knowing the current portlet positioning on the
* Dashboard. It adds the portlet to the bottom of column with the least portlets.
*
- * @param storedPortlet, MODIFIED with assigned column, index
+ * @param storedPortlet MODIFIED with assigned column, index
*/
public void addPortlet(DashboardPortlet storedPortlet) {
int[] columnCounts = new int[getColumns()];
@@ -280,7 +280,7 @@ public class Dashboard implements Serializable {
/**
* Call this only if you are sure the column and index are valid, not already used and not leaving gaps.
*
- * @param storedPortlet, MODIFIED with assigned column, index
+ * @param storedPortlet MODIFIED with assigned column, index
* @param column
* @param index
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java b/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java
index aa9f84a..3e4a10a 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java
@@ -84,7 +84,7 @@ public interface DriftChangeSet<D extends Drift<?, ?>> {
void setVersion(int version);
/**
- * Retturns the category that identifies the change set type.
+ * Returns the category that identifies the change set type.
* @return The change set category
* @see DriftChangeSetCategory
*/
@@ -104,7 +104,7 @@ public interface DriftChangeSet<D extends Drift<?, ?>> {
* value must be stored with the change set such that it can be applied consistently when
* handling the associated drift.
*
- * @return The {@link DriftDefinition.DriftHandlingMode} mode
+ * @return The {@link DriftHandlingMode} mode
*/
DriftHandlingMode getDriftHandlingMode();
@@ -114,7 +114,7 @@ public interface DriftChangeSet<D extends Drift<?, ?>> {
* value set on the owning drift definition can change, the value must be stored with
* the change set such that it can be applied consistently when handling the associated drift.
*
- * @param driftHandlingMode The {@link DriftDefinition.DriftHandlingMode} mode
+ * @param driftHandlingMode The {@link DriftHandlingMode} mode
*/
void setDriftHandlingMode(DriftHandlingMode driftHandlingMode);
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java b/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java
index dd3d676..b8f127e 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java
@@ -89,7 +89,7 @@ public class DriftSnapshot implements Serializable {
/**
* @param changeSet The drifts must be set for the changeSet
- * @return
+ * @return the snapshot
*/
public DriftSnapshot addChangeSet(DriftChangeSet<? extends Drift<?, ?>> changeSet) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java
index cadf0fd..1a52721 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java
@@ -72,9 +72,7 @@ public class MeasurementAggregate implements Serializable {
}
/**
- * Return true if the aggregate has "no real data" I.e. when all values are Not A Number.
- *
- * @return
+ * @return true if the aggregate has "no real data" I.e. when all values are Not A Number.
*/
public boolean isEmpty() {
return min.isNaN() && avg.isNaN() && max.isNaN();
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java
index acf0b23..60f1c11 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java
@@ -75,8 +75,8 @@ public class MeasurementSummary implements java.io.Serializable {
/**
* @param availUp The availUp to set
*/
- public void setAvailUp(Integer currentConfigured) {
- this.availUp = currentConfigured;
+ public void setAvailUp(Integer availUp) {
+ this.availUp = availUp;
}
/**
@@ -89,8 +89,8 @@ public class MeasurementSummary implements java.io.Serializable {
/**
* @param availDown The availDown to set
*/
- public void setAvailDown(Integer unavailConfigured) {
- this.availDown = unavailConfigured;
+ public void setAvailDown(Integer availDown) {
+ this.availDown = availDown;
}
/**
@@ -104,8 +104,8 @@ public class MeasurementSummary implements java.io.Serializable {
* Sets the availUnknown.
* @param availUnknown The availUnknown to set
*/
- public void setAvailUnknown(Integer totalConfigured) {
- this.availUnknown = totalConfigured;
+ public void setAvailUnknown(Integer availUnknown) {
+ this.availUnknown = availUnknown;
}
/**
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java
index 375c79d..3670e2c 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java
@@ -23,9 +23,8 @@ import java.io.Serializable;
/**
* A summary of inventoried {@link org.rhq.core.domain.resource.Resource}s and
* {@link org.rhq.core.domain.resource.group.Group}s that are viewable by the specified user. The summary includes the
- * total number of platforms, servers, services, {@link org.rhq.core.domain.resource.group.CompatibleGroup}s, and
- * {@link org.rhq.core.domain.resource.group.MixedGroup}s. Only Resources with an inventory status of COMMITTED are
- * tallied.
+ * total number of platforms, servers, services, compatible groups, and mixed groups.
+ * Only Resources with an inventory status of COMMITTED are tallied.
*
* @author Ian Springer
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index 8fc65a8..cd09f20 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -1099,7 +1099,7 @@ public class Resource implements Comparable<Resource>, Serializable {
}
/**
- * Constructor that allows the caller to choose what Set impl is used for the {@link #childResources} field.
+ * Constructor that allows the caller to choose what Set implementation is used for the <code>childResources</code> field.
*
* @param childResources the Set that will be used to hold this Resource's child Resources
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java
index 265fc4b..5fbc911 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java
@@ -28,10 +28,11 @@ import java.util.HashSet;
import java.util.Set;
import org.rhq.core.domain.authz.Permission;
+import org.rhq.core.domain.authz.Permission.Target;
/**
* A set of permissions that apply to a particular Resource or ResourceGroup (i.e. {@link Permission}s where
- * {@link Permission#getTarget()} is {@link Permission.Target#RESOURCE}
+ * {@link Permission#getTarget()} is {@link Target#RESOURCE}
*
* @author Joseph Marques
* @author Greg Hinkle
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java
index 2d74bda..f02f2ba 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java
@@ -62,7 +62,7 @@ public class FlyweightCache {
}
/**
- * @see #constructResource(int, String, String, Integer, int, AvailabilityType)
+ * @see #constructResource(int, String, String, String, Integer, int, AvailabilityType)
*
* @param original the resource
* @return the initialized resource flyweight
@@ -140,7 +140,7 @@ public class FlyweightCache {
}
/**
- * @see #constructSubCategory(int, String, Integer, FlyweightCache)
+ * @see #constructSubCategory(int, String, Integer, String)
*
* @param original
* @return a fully initialized resource sub category flyweight
@@ -167,7 +167,6 @@ public class FlyweightCache {
* @param name
* @param parentSubCategoryId
* @param parentSubCategoryName
- * @param cache
* @return a fully initialized resource sub category flyweight
*/
public ResourceSubCategoryFlyweight constructSubCategory(int id, String name, Integer parentSubCategoryId,
@@ -196,7 +195,7 @@ public class FlyweightCache {
}
/**
- * @see #construct(int, String, String, ResourceCategory, Integer, FlyweightCache)
+ * @see #constructResourceType(int, String, String, boolean, ResourceCategory, Integer)
*
* @param original the original resource type
* @return a fully initialized resource type flyweight
@@ -228,8 +227,7 @@ public class FlyweightCache {
* @param singleton true if the resource type is a singleton
* @param category the resource type category
* @param subCategory the id of the resource type sub category or null
- * @param cache the flyweight cache
- * @return
+ * @return the resource type flyweight
*/
public ResourceTypeFlyweight constructResourceType(int id, String name, String plugin, boolean singleton,
ResourceCategory category, Integer subCategory) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java
index c12f554..d0f8b1f 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java
@@ -57,7 +57,7 @@ public class ClusterKey implements Serializable {
public ClusterKey() {
}
- /** Construct ClusterKey with to-be-defined Hierarcrhy */
+ /** Construct ClusterKey with to-be-defined Hierarchy */
public ClusterKey(int clusterResourceGroupId) {
this.clusterGroupId = clusterResourceGroupId;
this.hierarchy = new ArrayList<ClusterKey.Node>();
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java b/modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java
index c110f4b..0071bfc 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java
@@ -32,7 +32,7 @@ import org.rhq.core.domain.resource.composite.DisambiguationReport.ResourceType;
* It supports a simple templating mechanism to configure the representation's format.
* <p>
* In the {@link DisambiguationReport}, a resource (either the resource being disambiguated or one of its parents)
- * is represented by an instance of {@link DisambiguationReport.Resource}. The template uses this instance and its
+ * is represented by an instance of {@link org.rhq.core.domain.resource.composite.DisambiguationReport.Resource}. The template uses this instance and its
* properties:
* <ul>
* <li>id - the resource id
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java b/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java
index d66783a..3425f21 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java
@@ -28,8 +28,6 @@ import java.util.Collection;
import javax.xml.bind.annotation.XmlRootElement;
-import org.rhq.core.domain.criteria.Criteria;
-
/**
* Tracks the result set for a paginated data lookup. Includes the data and the total rows that are available.
*
@@ -74,7 +72,7 @@ public class PageList<E> extends ArrayList<E> implements Serializable {
* @param totalSize the total number of records of which this instance contains a subset of
* @param pageControl defines what subset of data is contained in this instance
*
- * @see Criteria.Restriction#COUNT_ONLY
+ * @see org.rhq.core.domain.criteria.Criteria.Restriction#COUNT_ONLY
*/
public PageList(int totalSize, PageControl pageControl) {
super();
@@ -92,7 +90,7 @@ public class PageList<E> extends ArrayList<E> implements Serializable {
* this instance
* @param pageControl defines what subset of the total number of items is present in this instance
*
- * @see Criteria.Restriction#COLLECTION_ONLY
+ * @see org.rhq.core.domain.criteria.Criteria.Restriction#COLLECTION_ONLY
*/
public PageList(Collection<? extends E> collection, PageControl pageControl) {
super(collection);
@@ -147,6 +145,7 @@ public class PageList<E> extends ArrayList<E> implements Serializable {
* Returns the total size of the "master list" that this page is a subset of.
* <p/>
* <b>Note:</b> This method merely returns the size of this list if it is {@link #isUnbounded() unbounded}.
+ * @return the total size
*/
public int getTotalSize() {
return Math.max(this.size(), this.totalSize);
@@ -178,7 +177,7 @@ public class PageList<E> extends ArrayList<E> implements Serializable {
}
/**
- * @see {@link PageControl#isConsistentWith(PageList)}
+ * @see PageControl#isConsistentWith(PageList)
*
* @return true if this page list is consistent with its page control
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java b/modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java
index 3afe0ed..706f741 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java
@@ -33,7 +33,7 @@ public class HibernateUtil {
* for ensuring that we don't serialize Hibernate types.
* @param <T>
* @param list
- * @return
+ * @return the safe list
*/
public static <T> List<T> safeList(List<T> list) {
if (null == list) {
@@ -48,7 +48,7 @@ public class HibernateUtil {
* for ensuring that we don't serialize Hibernate types.
* @param <T>
* @param set
- * @return
+ * @return the safe set
*/
public static <T> Set<T> safeSet(Set<T> set) {
if (null == set) {
@@ -63,7 +63,7 @@ public class HibernateUtil {
* for ensuring that we don't serialize Hibernate types.
* @param <T>
* @param collection
- * @return
+ * @return the safe collection
*/
public static <T> Collection<T> safeCollection(Collection<T> collection) {
if (null == collection) {
@@ -79,7 +79,7 @@ public class HibernateUtil {
* @param <K>
* @param <V>
* @param map
- * @return
+ * @return the safe map
*/
public static <K, V> Map<K, V> safeMap(Map<K, V> map) {
if (null == map) {
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java b/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
index b3d7691..a2da64b 100644
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
+++ b/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
@@ -319,7 +319,7 @@ public class QueryAllTest extends AbstractEJB3Test {
*
* @param entity
*
- * @return
+ * @return not null
*/
public List<NamedQuery> getNamedQueriesForEntity(String entity) {
List<NamedQuery> lnq = new ArrayList<NamedQuery>();
diff --git a/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml b/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
index 49d2d21..aec9655 100644
--- a/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
+++ b/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
@@ -78,4 +78,18 @@
<justification>Adding a method to a remote API interface is safe.</justification>
</difference>
+ <difference>
+ <className>org/rhq/enterprise/server/configuration/ConfigurationManagerRemote</className>
+ <differenceType>7012</differenceType> <!-- method added to an interface -->
+ <method>org.rhq.core.domain.util.PageList findGroupPluginConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria)</method>
+ <justification>Adding a method to a remote API interface is safe.</justification>
+ </difference>
+
+ <difference>
+ <className>org/rhq/enterprise/server/configuration/ConfigurationManagerRemote</className>
+ <differenceType>7012</differenceType> <!-- method added to an interface -->
+ <method>org.rhq.core.domain.util.PageList findGroupResourceConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria)</method>
+ <justification>Adding a method to a remote API interface is safe.</justification>
+ </difference>
+
</differences>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
index 5d5711e..676be4a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
@@ -23,10 +23,8 @@ import java.util.List;
import javax.ejb.Local;
import org.rhq.core.domain.alert.AlertDefinition;
-import org.rhq.core.domain.alert.notification.AlertNotification;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.composite.IntegerOptionItem;
-import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
@@ -36,7 +34,7 @@ import org.rhq.core.domain.util.PageList;
* @author Joseph Marques
*/
@Local
-public interface AlertDefinitionManagerLocal {
+public interface AlertDefinitionManagerLocal extends AlertDefinitionManagerRemote {
PageList<AlertDefinition> findAlertDefinitions(Subject subject, int resourceId, PageControl pageControl);
AlertDefinition getAlertDefinitionById(Subject subject, int alertDefinitionId);
@@ -64,9 +62,8 @@ public interface AlertDefinitionManagerLocal {
* @throws InvalidAlertDefinitionException
*/
AlertDefinition createAlertDefinitionInNewTransaction(Subject subject, AlertDefinition alertDefinition,
- Integer resourceId, boolean finalizeNotificationConfiguration)
- throws InvalidAlertDefinitionException;
-
+ Integer resourceId, boolean finalizeNotificationConfiguration) throws InvalidAlertDefinitionException;
+
/**
* This is exactly the same as {@link #createAlertDefinitionInNewTransaction(Subject, AlertDefinition, Integer, boolean)} but
* assumes the resource is part of a group (or has given resource type for templates) for which
@@ -128,32 +125,15 @@ public interface AlertDefinitionManagerLocal {
* @throws InvalidAlertDefinitionException
* @throws AlertDefinitionUpdateException
*/
- AlertDefinition updateDependentAlertDefinition(Subject subject, int alertDefinitionId, AlertDefinition alertDefinition, boolean resetMatching) throws InvalidAlertDefinitionException, AlertDefinitionUpdateException;
+ AlertDefinition updateDependentAlertDefinition(Subject subject, int alertDefinitionId,
+ AlertDefinition alertDefinition, boolean resetMatching) throws InvalidAlertDefinitionException,
+ AlertDefinitionUpdateException;
int purgeUnusedAlertDefinitions();
void purgeInternals(int alertDefinitionId);
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- AlertDefinition getAlertDefinition(Subject subject, int alertDefinitionId);
-
- PageList<AlertDefinition> findAlertDefinitionsByCriteria(Subject subject, AlertDefinitionCriteria criteria);
-
- int enableAlertDefinitions(Subject subject, int[] alertDefinitionIds);
-
- int disableAlertDefinitions(Subject subject, int[] alertDefinitionIds);
-
- int removeAlertDefinitions(Subject subject, int[] alertDefinitionIds);
-
- String[] getAlertNotificationConfigurationPreview(Subject sessionSubject, AlertNotification[] notifications);
-
AlertDefinition updateAlertDefinitionInternal(Subject subject, int alertDefinitionId,
- AlertDefinition alertDefinition, boolean resetMatching,
- boolean checkPerms, boolean finalizeNotifications) throws InvalidAlertDefinitionException,
- AlertDefinitionUpdateException;
+ AlertDefinition alertDefinition, boolean resetMatching, boolean checkPerms, boolean finalizeNotifications)
+ throws InvalidAlertDefinitionException, AlertDefinitionUpdateException;
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java
index 3a6e8bb..2da630e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java
@@ -26,24 +26,52 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for Alert Definitions.
+ */
@Remote
public interface AlertDefinitionManagerRemote {
- AlertDefinition getAlertDefinition(//
- Subject subject, int alertDefinitionId);
+ /**
+ * @param subject
+ * @param alertDefinitionId
+ * @return the alert definition or null
+ */
+ AlertDefinition getAlertDefinition(Subject subject, int alertDefinitionId);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<AlertDefinition> findAlertDefinitionsByCriteria(Subject subject, AlertDefinitionCriteria criteria);
- int enableAlertDefinitions(//
- Subject subject, int[] alertDefinitionIds);
+ /**
+ * @param subject
+ * @param alertDefinitionIds
+ * @return number of modified definitions
+ */
+ int enableAlertDefinitions(Subject subject, int[] alertDefinitionIds);
- int disableAlertDefinitions(//
- Subject subject, int[] alertDefinitionIds);
+ /**
+ * @param subject
+ * @param alertDefinitionIds
+ * @return number of modified definitions
+ */
+ int disableAlertDefinitions(Subject subject, int[] alertDefinitionIds);
- int removeAlertDefinitions(//
- Subject subject, int[] alertDefinitionIds);
+ /**
+ * @param subject
+ * @param alertDefinitionIds
+ * @return number of removed definitions
+ */
+ int removeAlertDefinitions(Subject subject, int[] alertDefinitionIds);
- String[] getAlertNotificationConfigurationPreview(//
- Subject subject, AlertNotification[] notifications);
+ /**
+ * @param subject
+ * @param notifications
+ * @return not null
+ */
+ String[] getAlertNotificationConfigurationPreview(Subject subject, AlertNotification[] notifications);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java
index 99637e6..a1a8631 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java
@@ -26,17 +26,48 @@ import org.rhq.core.domain.common.EntityContext;
import org.rhq.core.domain.criteria.AlertCriteria;
import org.rhq.core.domain.util.PageList;
+/**
+ * Alert Manager Remote API.
+ */
@Remote
public interface AlertManagerRemote {
+ /**
+ * @param subject
+ * @param criteria
+ * @return no null
+ */
PageList<Alert> findAlertsByCriteria(Subject subject, AlertCriteria criteria);
+ /**
+ * @param subject
+ * @param alertIds
+ * @return number of deleted alerts
+ */
int deleteAlerts(Subject subject, int[] alertIds);
+ // TODO (jshaughn) Should this be deprecated, seems an odd method to expose.
+ /**
+ * Requires Manage Settings permission.
+ *
+ * @param subject
+ * @param context
+ * @return number of deleted alerts
+ */
int deleteAlertsByContext(Subject subject, EntityContext context);
+ /**
+ * @param subject
+ * @param alertIds
+ * @return number of acknowledged alerts
+ */
int acknowledgeAlerts(Subject subject, int[] alertIds);
+ /**
+ * @param subject
+ * @param context
+ * @return number of acknowledged alerts
+ */
int acknowledgeAlertsByContext(Subject subject, EntityContext context);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
index 4470d53..694eb93 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
@@ -27,6 +27,10 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.authz.RoleManagerLocal;
import org.rhq.enterprise.server.exception.LoginException;
+/**
+ * Subject manager remote API. Typically requires <code>MANAGE_SECURITY</code> permission.
+ *
+ */
@Remote
public interface SubjectManagerRemote {
@@ -45,9 +49,8 @@ public interface SubjectManagerRemote {
*
* @param subject The logged in user's subject.
* @param username The username part of the principal
- * @param password The password part ofthe principal
- *
- * @throws Exception if the principal could not be added
+ * @param password The password part of the principal
+ * @throws SubjectException if the principal could not be added
*/
void createPrincipal(Subject subject, String username, String password) throws SubjectException;
@@ -59,6 +62,7 @@ public interface SubjectManagerRemote {
* @param subjectToCreate The subject to be created.
*
* @return the newly persisted {@link Subject}
+ * @throws SubjectException
*/
Subject createSubject(Subject subject, Subject subjectToCreate) throws SubjectException;
@@ -68,8 +72,6 @@ public interface SubjectManagerRemote {
*
* @param subject The logged in user's subject.
* @param subjectIds identifies the subject IDs for all the users that are to be deleted
- *
- * @throws Exception if failed to delete one or more users
*/
void deleteSubjects(Subject subject, int[] subjectIds);
@@ -79,11 +81,12 @@ public interface SubjectManagerRemote {
* @param username the name of the subject to look for
*
* @return the subject that was found or <code>null</code> if not found
- *
+ *
* @deprecated This method should be avoided as it may be removed in
* a future release. Given that multiple sessions may exist for a
* single user the result of this call is non-deterministic.
*/
+ @Deprecated
Subject getSubjectByName(String username);
/**
@@ -93,7 +96,7 @@ public interface SubjectManagerRemote {
* @param sessionId The sessionId of the desired Subject.
*
* @return The Subject that was found
- *
+ *
* @throws Exception if the sessionId is not valid
*/
Subject getSubjectByNameAndSessionId(String username, int sessionId) throws Exception;
@@ -129,5 +132,10 @@ public interface SubjectManagerRemote {
*/
Subject updateSubject(Subject subject, Subject subjectToModify);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Subject> findSubjectsByCriteria(Subject subject, SubjectCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java
index 47a7f55..fb39e3e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java
@@ -74,14 +74,22 @@ public interface RoleManagerRemote {
/**
* Get all roles assigned for a certain subject
- *
+ *
* @param subject The logged in user's subject
- * @param subjectId The subject ID to find the associated roles for
+ * @param subjectId The subject ID to find the associated roles for
* @param pc PageControl
* @return A page list of assigned
*/
PageList<Role> findSubjectAssignedRoles(Subject subject, int subjectId, PageControl pc);
+ /**
+ * Get all roles eligible to be assigned to the user.
+ *
+ * @param subject
+ * @param subjectId
+ * @param pc
+ * @return not null
+ */
PageList<Role> findSubjectUnassignedRoles(Subject subject, int subjectId, PageControl pc);
/**
@@ -94,7 +102,7 @@ public interface RoleManagerRemote {
void addRolesToSubject(Subject subject, int subjectId, int[] roleIds);
/**
- * Disassociates particular roles from a subject. Once complete, the subject will no longer be authorized with the
+ * Remove particular roles from a subject. Once complete, the subject will no longer be authorized with the
* given roles.
*
* @param subject The logged in user's subject.
@@ -114,7 +122,7 @@ public interface RoleManagerRemote {
/**
* Dissociate particular subjects from a role.
- *
+ *
* @param subject The logged in user's subject.
* @param roleId The role ID to dissociate the roles from
* @param subjectIds The IDs of the subjects to remove from the specified Role
@@ -147,12 +155,36 @@ public interface RoleManagerRemote {
*/
void addResourceGroupsToRole(Subject subject, int roleId, int[] pendingGroupIds);
+ /**
+ * @param subject
+ * @param bundleGroupId
+ * @param roleIds
+ */
void addRolesToBundleGroup(Subject subject, int bundleGroupId, int[] roleIds);
+ /**
+ * @param subject
+ * @param groupId
+ * @param roleIds
+ */
void addRolesToResourceGroup(Subject subject, int groupId, int[] roleIds);
+ /**
+ * Set the specified bundle groups on the role, replacing the previous set of bundle groups.
+ *
+ * @param subject
+ * @param roleId
+ * @param bundleGroupIds
+ */
void setAssignedBundleGroups(Subject subject, int roleId, int[] bundleGroupIds);
+ /**
+ * Set the specified resource groups on the role, replacing the previous set of resource groups.
+ *
+ * @param subject
+ * @param roleId
+ * @param groupIds
+ */
void setAssignedResourceGroups(Subject subject, int roleId, int[] groupIds);
/**
@@ -173,10 +205,29 @@ public interface RoleManagerRemote {
*/
void removeResourceGroupsFromRole(Subject subject, int roleId, int[] groupIds);
+ /**
+ * Remove the bundle group from the specified roles.
+ *
+ * @param subject
+ * @param bundleGroupId
+ * @param roleIds
+ */
void removeRolesFromBundleGroup(Subject subject, int bundleGroupId, int[] roleIds);
+ /**
+ * Remove the resource group from the specified roles.
+ *
+ * @param subject
+ * @param groupId
+ * @param roleIds
+ */
void removeRolesFromResourceGroup(Subject subject, int groupId, int[] roleIds);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Role> findRolesByCriteria(Subject subject, RoleCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java
index 079fff7..4c694eb 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java
@@ -49,7 +49,7 @@ import org.rhq.core.domain.util.PageList;
/**
* Remote interface to the manager responsible for creating and managing bundles.
- *
+ *
* @author John Mazzitelli
* @author Jay Shaughnessy
*/
@@ -60,7 +60,7 @@ public interface BundleManagerRemote {
* Given the ID for a compatible group, this will return the bundle configuration metadata for that group's resource type.
* User interfaces will need to use this method in order to find out if a) the group can be a target for a bundle deployment
* and/or b) what different destination base locations are supported by the group.
- *
+ *
* @param subject the user making the request
* @param compatGroupId the ID for a compatible group whose type's bundle config is to be returned
* @return the bundle configuration for the group's resource type
@@ -79,7 +79,7 @@ public interface BundleManagerRemote {
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
* @param subject user that must have proper permissions
- * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
* @param name name of the BundleFile (and the resulting Package)
* @param version version of the backing package
* @param architecture architecture appropriate for the backing package. Defaults to noarch (i.e. any architecture).
@@ -100,6 +100,14 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param name name of the BundleFile (and the resulting Package)
+ * @param version version of the backing package
+ * @param architecture architecture appropriate for the backing package. Defaults to noarch (i.e. any architecture).
+ * @param fileBytes
+ * @return the new BundleFile
+ * @throws Exception
* @see {@link #addBundleFile(Subject, int, String, String, Architecture, InputStream)}
*/
BundleFile addBundleFileViaByteArray(Subject subject, int bundleVersionId, String name, String version,
@@ -113,6 +121,14 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param name name of the BundleFile (and the resulting Package)
+ * @param version version of the backing package
+ * @param architecture architecture appropriate for the backing package. Defaults to noarch (i.e. any architecture).
+ * @param bundleFileUrl
+ * @return the new BundleFile
+ * @throws Exception
* @see #addBundleFile(Subject, int, String, String, Architecture, InputStream)
*/
BundleFile addBundleFileViaURL(Subject subject, int bundleVersionId, String name, String version,
@@ -127,6 +143,16 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param name name of the BundleFile (and the resulting Package)
+ * @param version version of the backing package
+ * @param architecture architecture appropriate for the backing package. Defaults to noarch (i.e. any architecture).
+ * @param bundleFileUrl
+ * @param userName
+ * @param password
+ * @return the new BundleFile
+ * @throws Exception
* @see #addBundleFileViaURL(Subject, int, String, String, Architecture, String)
*/
BundleFile addBundleFileViaURL(Subject subject, int bundleVersionId, String name, String version,
@@ -140,6 +166,12 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param name name of the BundleFile (and the resulting Package)
+ * @param packageVersionId
+ * @return the new BundleFile
+ * @throws Exception
* @see {@link #addBundleFile(Subject, int, String, String, Architecture, InputStream)}
*/
BundleFile addBundleFileViaPackageVersion(Subject subject, int bundleVersionId, String name, int packageVersionId)
@@ -165,7 +197,7 @@ public interface BundleManagerRemote {
* Create a new bundle deployment. Note that bundle deployment names are generated by this
* call. This provides useful, uniform naming for display. An optional, custom description
* can be added. This call defines a deployment. The defined deployment can then be
- * scheduled in a separate call.
+ * scheduled in a separate call.
* <pre>
* Required Permissions: Either:
* - Global.DEPLOY_BUNDLES and a view of the relevant bundle and a view of the relevant resource group (may involve multiple roles)
@@ -174,7 +206,7 @@ public interface BundleManagerRemote {
* @param subject user that must have proper permissions
* @param bundleVersionId the BundleVersion being deployed by this deployment
* @param bundleDestinationId the BundleDestination for the deployment
- * @param description an optional longer description describing this deployment
+ * @param description an optional longer description describing this deployment
* @param configuration a Configuration (pojo) to be associated with this deployment. Although
* it is not enforceable must be that of the associated BundleVersion.
* @return the persisted deployment
@@ -193,13 +225,13 @@ public interface BundleManagerRemote {
* @param subject user must have MANAGE_INVENTORY permission
* @param bundleId the Bundle to be deployed to this Destination
* @param name a name for this destination. not null or empty
- * @param description an optional longer description describing this destination
+ * @param description an optional longer description describing this destination
* @param destBaseDirName The name of the base directory location where the bundle will be deployed.
* <code>deployDir</code> is relative to the directory that this name refers to.
* This name isn't the directory itself, it refers to the named location as
* defined in the agent plugin's descriptor for the resource's type
* @param deployDir the root dir for deployments to this destination
- * @param groupId the target platforms for deployments to this destination
+ * @param groupId the target platforms for deployments to this destination
* @return the persisted destination
* @throws Exception
*/
@@ -211,7 +243,7 @@ public interface BundleManagerRemote {
* <pre>
* Require Permissions:
* - Global.MANAGE_BUNDLE_GROUPS
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param bundleGroup the new bundle group name the unique bundle group name
* @return the persisted BundleGroup
@@ -223,7 +255,7 @@ public interface BundleManagerRemote {
* Creates a bundle version based on single recipe string. The recipe specifies the bundle name,
* version, version name and version description. If this is the initial version for the named
* bundle the bundle will be implicitly created. The bundle type is discovered by the bundle server
- * plugin that can parse the recipe.
+ * plugin that can parse the recipe.
* </p>
* If this bundle version is the initial version of a new bundle that needs to be created, the subject must
* have Global.VIEW_BUNDLES because the new bundle will not be associated with any bundle group.
@@ -237,6 +269,7 @@ public interface BundleManagerRemote {
* @param recipe the recipe that defines the bundle version to be created
* @return the persisted BundleVersion with alot of the internal relationships filled in to help the caller
* understand all that this method did.
+ * @throws Exception
*/
BundleVersion createBundleVersionViaRecipe(Subject subject, String recipe) throws Exception;
@@ -258,6 +291,7 @@ public interface BundleManagerRemote {
* @param recipe the recipe that defines the bundle version to be created
* @return the persisted BundleVersion with alot of the internal relationships filled in to help the caller
* understand all that this method did.
+ * @throws Exception
*/
BundleVersion createInitialBundleVersionViaRecipe(Subject subject, int[] bundleGroupIds, String recipe)
throws Exception;
@@ -267,7 +301,7 @@ public interface BundleManagerRemote {
* contains the recipe for a supported bundle type, along with 0, 1 or more bundle files that will be associated
* with the bundle version. The recipe specifies the bundle name, version, version name and version description.
* If this is the initial version for the named bundle the bundle will be implicitly created. The bundle type
- * is discovered by inspecting the distribution file.
+ * is discovered by inspecting the distribution file.
* </p>
* If this bundle version is the initial version of a new bundle that needs to be created, the subject must
* have Global.VIEW_BUNDLES because the new bundle will not be associated with any bundle group.
@@ -279,14 +313,20 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param distributionFile a local Bundle Distribution file. It must be read accessible by the RHQ server process.
- * @return the persisted BundleVersion with alot of the internal relationships filled in to help the caller
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
* understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
*/
BundleVersion createBundleVersionViaFile(Subject subject, File distributionFile) throws Exception;
/**
* Like {@link #createBundleVersionViaFile(org.rhq.core.domain.auth.Subject, java.io.File)} except that this method
* takes a <code>temporaryContentHandle</code> as parameter instead of a file.
+ * @param subject user that must have proper permissions
+ * @param temporaryContentHandle
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
+ * understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
*
* @see org.rhq.enterprise.server.content.ContentManagerRemote#createTemporaryContentHandle()
* @see org.rhq.enterprise.server.content.ContentManagerRemote#uploadContentFragment(String, byte[], int, int)
@@ -310,7 +350,7 @@ public interface BundleManagerRemote {
* @param bundleGroupIds identifies the bundle groups that the new bundle will be associated with; null or zero
* length to leave unassigned.
* @param distributionFile a local Bundle Distribution file. It must be read accessible by the RHQ server process.
- * @return the persisted BundleVersion with alot of the internal relationships filled in to help the caller
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
* understand all that this method did. Bundle files specifically are returned.
* @throws Exception
*/
@@ -336,6 +376,7 @@ public interface BundleManagerRemote {
* @param fileBytes the file bits that make up the entire bundle distribution file
* @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
* understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
*/
BundleVersion createBundleVersionViaByteArray(Subject subject, byte[] fileBytes) throws Exception;
@@ -350,7 +391,7 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and Global.VIEW_BUNDLES
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param bundleGroupIds identifies the bundle groups that the new bundle will be associated with; null or zero
* length to leave unassigned.
@@ -381,10 +422,11 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param distributionFileUrl a URL String to the Bundle Distribution file. It must be live, resolvable and read accessible
- * by the RHQ server process.
- *
+ * by the RHQ server process.
+ *
* @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
* understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
*/
BundleVersion createBundleVersionViaURL(Subject subject, String distributionFileUrl) throws Exception;
@@ -424,6 +466,13 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param distributionFileUrl
+ * @param username
+ * @param password
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
+ * understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
* @see #createBundleVersionViaURL(org.rhq.core.domain.auth.Subject, String)
*/
BundleVersion createBundleVersionViaURL(Subject subject, String distributionFileUrl, String username,
@@ -441,6 +490,15 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleGroupIds identifies the bundle groups that the new bundle will be associated with; null or zero
+ * length to leave unassigned.
+ * @param distributionFileUrl
+ * @param username
+ * @param password
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
+ * understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
* @see #createBundleVersionViaURL(org.rhq.core.domain.auth.Subject, String)
*/
BundleVersion createInitialBundleVersionViaURL(Subject subject, int[] bundleGroupIds, String distributionFileUrl,
@@ -459,7 +517,7 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param bundleIds IDs of all bundles to be deleted
- * @throws Exception if any part of the removal fails.
+ * @throws Exception if any part of the removal fails.
*/
void deleteBundles(Subject subject, int[] bundleIds) throws Exception;
@@ -476,7 +534,7 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param bundleId the id of the bundle to remove
- * @throws Exception if any part of the removal fails.
+ * @throws Exception if any part of the removal fails.
*/
void deleteBundle(Subject subject, int bundleId) throws Exception;
@@ -485,7 +543,7 @@ public interface BundleManagerRemote {
* <pre>
* Required Permissions:
* - Global.MANAGE_BUNDLE_GROUPS
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param ids the bundle group id
* @throws Exception
@@ -507,31 +565,43 @@ public interface BundleManagerRemote {
* @param bundleVersionId the id of the bundle version to remove
* @param deleteBundleIfEmpty if <code>true</code> and if this method deletes the last bundle version for its
* bundle, then that bundle entity itself will be completely purged
- * @throws Exception if any part of the removal fails.
+ * @throws Exception if any part of the removal fails.
*/
void deleteBundleVersion(Subject subject, int bundleVersionId, boolean deleteBundleIfEmpty) throws Exception;
/**
* Return the <code>Bundles</code> narrowed by the supplied Criteria. The results are implicitly
- * narrowed to those bundles viewable by the <code>subject</code>.
+ * narrowed to those bundles viewable by the <code>subject</code>.
+ * @param subject
+ * @param criteria
+ * @return not null
*/
PageList<Bundle> findBundlesByCriteria(Subject subject, BundleCriteria criteria);
/**
* Return the <code>BundleGroups</code> narrowed by the supplied Criteria. The results are implicitly
- * narrowed to those bundle groups viewable by the <code>subject</code>.
+ * narrowed to those bundle groups viewable by the <code>subject</code>.
+ * @param subject
+ * @param criteria
+ * @return not null
*/
PageList<BundleGroup> findBundleGroupsByCriteria(Subject subject, BundleGroupCriteria criteria);
/**
* Return the <code>BundleDeployments</code> narrowed by the supplied Criteria. The results are implicitly
- * narrowed to those for bundles and destination groups viewable by the <code>subject</code>.
+ * narrowed to those for bundles and destination groups viewable by the <code>subject</code>.
+ * @param subject
+ * @param criteria
+ * @return not null
*/
PageList<BundleDeployment> findBundleDeploymentsByCriteria(Subject subject, BundleDeploymentCriteria criteria);
/**
* Return the <code>BundleDestinations</code> narrowed by the supplied Criteria. The results are implicitly
- * narrowed to those with destination resource groups viewable by the <code>subject</code>.
+ * narrowed to those with destination resource groups viewable by the <code>subject</code>.
+ * @param subject
+ * @param criteria
+ * @return not null
*/
PageList<BundleDestination> findBundleDestinationsByCriteria(Subject subject, BundleDestinationCriteria criteria);
@@ -540,23 +610,47 @@ public interface BundleManagerRemote {
* viewable by <code>subject</code>. If optionally requesting the relevant Resources
* via <code>BundleResourceDeploymentCriteria.fetchResources(true)</code> the results will be further narrowed to
* the viewable resources.
- *
+ *
* @param subject
* @param criteria
- * @return
+ * @return not null
*/
PageList<BundleResourceDeployment> findBundleResourceDeploymentsByCriteria(Subject subject,
BundleResourceDeploymentCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<BundleFile> findBundleFilesByCriteria(Subject subject, BundleFileCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<BundleVersion> findBundleVersionsByCriteria(Subject subject, BundleVersionCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<BundleWithLatestVersionComposite> findBundlesWithLatestVersionCompositesByCriteria(Subject subject,
BundleCriteria criteria);
+ /**
+ * @param subject
+ * @return not null
+ */
List<BundleType> getAllBundleTypes(Subject subject);
+ /**
+ * @param subject
+ * @param bundleTypeName must exist
+ * @return the bundle type
+ */
BundleType getBundleType(Subject subject, String bundleTypeName);
/**
@@ -568,11 +662,11 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and Global.VIEW_BUNDLES
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param bundleVersionId the BundleVersion being queried
* @param withoutBundleFileOnly if true omit any filenames that already have a corresponding BundleFile for
- * the BundleVersion.
+ * the BundleVersion.
* @return The List of filenames.
* @throws Exception
*/
@@ -588,6 +682,7 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param bundleDestinationId the ID of the destination that is to be purged of bundle content
+ * @throws Exception
*/
void purgeBundleDestination(Subject subject, int bundleDestinationId) throws Exception;
@@ -605,8 +700,8 @@ public interface BundleManagerRemote {
* @param subject user that must have proper permissions
* @param bundleDeploymentId the BundleDeployment being used to guide the deployments
* @param isCleanDeployment if true perform a wipe of the deploy directory prior to the deployment. If false
- * perform as an upgrade to the existing deployment, if any.
- * @return the BundleDeployment record, updated with status and (resource) deployments.
+ * perform as an upgrade to the existing deployment, if any.
+ * @return the BundleDeployment record, updated with status and (resource) deployments.
* @throws Exception
*/
BundleDeployment scheduleBundleDeployment(Subject subject, int bundleDeploymentId, boolean isCleanDeployment)
@@ -616,22 +711,23 @@ public interface BundleManagerRemote {
* For the specified destination, revert from the current live deployment to the deployment it had replaced.
* A revert first rolls back to the previous deployment (bundle version and configuration) and then rolls forward
* by replacing changed files that had been backed up during the most recent (live) deployment.
- * The returned BundleDeployment represents the new live deployment and can be used to track the history of the
+ * The returned BundleDeployment represents the new live deployment and can be used to track the history of the
* individual revert deployments. Note that bundle deployment names are generated by this
* call. This provides useful, uniform naming for display. An optional, custom description can be added.
* <br/><br/>
- * TODO: Add the scheduling capability, currently it's Immediate.
+ * TODO: Add the scheduling capability, currently it's Immediate.
* </pre>
* Required Permissions: Either:
* - Global.DEPLOY_BUNDLES and a view of the relevant bundle and a view of the relevant resource group (may involve multiple roles)
* - Resource.DEPLOY_BUNDLES_TO_GROUP and a view of the relevant bundle and a view of the relevant resource group (may involve multiple roles)
*
* @param subject user that must have proper permissions
+ * @param bundleDestinationId the destination on which the revert should be applied
* @param deploymentDescription an optional longer description describing this deployment. If null defaults
- * to the description of the previous deployment.
+ * to the description of the previous deployment.
* @param isCleanDeployment if true perform a wipe of the deploy directory prior to the revert deployment. Backed up
* files will still be applied. If false perform as an upgrade to the existing deployment.
- * @return the BundleDeployment record, updated with status and (resource) deployments.
+ * @return the BundleDeployment record, updated with status and (resource) deployments.
* @throws Exception
*/
BundleDeployment scheduleRevertBundleDeployment(Subject subject, int bundleDestinationId,
@@ -642,11 +738,11 @@ public interface BundleManagerRemote {
* assigned. Others are ignored.
* <pre>
* Requires VIEW permission for the relevant bundles and one of:
- * - Global.MANAGE_BUNDLE_GROUPS
+ * - Global.MANAGE_BUNDLE_GROUPS
* - Global.DELETE_BUNDLE
* - BundleGroup.UNASSIGN_BUNDLES_FROM_GROUP for the relevant bundle group
* - BundleGroup.DELETE_BUNDLES_FROM_GROUP for the relevant bundle group
- * </pre>
+ * </pre>
* @param subject
* @param bundleGroupIds
* @param bundleIds
@@ -658,7 +754,7 @@ public interface BundleManagerRemote {
* <pre>
* Require Permissions:
* - Global.MANAGE_BUNDLE_GROUPS
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param bundleGroup the updated bundle group
* @return the updated BundleGroup
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java
index cc755e7..7c0ae70 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java
@@ -25,7 +25,6 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.cloud.StorageNode;
import org.rhq.core.domain.cloud.StorageNodeConfigurationComposite;
import org.rhq.core.domain.cloud.StorageNodeLoadComposite;
-import org.rhq.core.domain.cloud.StorageNode.OperationMode;
import org.rhq.core.domain.criteria.StorageNodeCriteria;
import org.rhq.core.domain.util.PageList;
@@ -99,8 +98,9 @@ public interface StorageNodeManagerRemote {
*
* <p>The subject needs to have <code>MANAGE_SETTINGS</code> permissions.</p>
*
- * @param subject user that must have proper permissions
- * @return storage nodes alerts not acknowledged
+ * @param subject user that must have proper permissions
+ * @param storageNode the storage node
+ * @return storage nodes alerts not acknowledged
*/
PageList<Alert> findNotAcknowledgedStorageNodeAlerts(Subject subject, StorageNode storageNode);
@@ -119,8 +119,9 @@ public interface StorageNodeManagerRemote {
*
* <p>The subject needs to have <code>MANAGE_SETTINGS</code> permissions.</p>
*
- * @param subject user that must have proper permissions
- * @return all storage nodes alerts
+ * @param subject user that must have proper permissions
+ * @param storageNode the storage node
+ * @return all storage nodes alerts
*/
PageList<Alert> findAllStorageNodeAlerts(Subject subject, StorageNode storageNode);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index 6c078c6..47c7483 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -2329,9 +2329,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
propertiesQuery.executeUpdate();
}
- /**
- * @deprecated use {@link #findGroupPluginConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria)}
- */
@Override
public GroupPluginConfigurationUpdate getGroupPluginConfigurationUpdate(Subject subject, int configurationUpdateId) {
GroupPluginConfigurationUpdate update = getGroupPluginConfigurationById(configurationUpdateId);
@@ -2347,9 +2344,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
return update;
}
- /**
- * @deprecated use {@link #findGroupResourceConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria)}
- */
@Override
public GroupResourceConfigurationUpdate getGroupResourceConfigurationUpdate(Subject subject,
int configurationUpdateId) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
index 640b17d..7e8e8ef 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
@@ -39,8 +39,6 @@ import org.rhq.core.domain.configuration.definition.ConfigurationTemplate;
import org.rhq.core.domain.configuration.group.AbstractGroupConfigurationUpdate;
import org.rhq.core.domain.configuration.group.GroupPluginConfigurationUpdate;
import org.rhq.core.domain.configuration.group.GroupResourceConfigurationUpdate;
-import org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria;
-import org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.criteria.PluginConfigurationUpdateCriteria;
import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.resource.Resource;
@@ -466,11 +464,7 @@ public interface ConfigurationManagerLocal extends ConfigurationManagerRemote {
PageList<PluginConfigurationUpdate> findPluginConfigurationUpdatesByCriteria(Subject subject,
PluginConfigurationUpdateCriteria criteria);
- PageList<GroupResourceConfigurationUpdate> findGroupResourceConfigurationUpdatesByCriteria(Subject subject,
- GroupResourceConfigurationUpdateCriteria criteria);
- PageList<GroupPluginConfigurationUpdate> findGroupPluginConfigurationUpdatesByCriteria(Subject subject,
- GroupPluginConfigurationUpdateCriteria criteria);
ConfigurationDefinition getOptionsForConfigurationDefinition(Subject subject, int resourceId,
int parentResourceId, ConfigurationDefinition def);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
index affd51e..697f15c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
@@ -23,14 +23,16 @@ import java.util.Map;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.configuration.group.GroupPluginConfigurationUpdate;
import org.rhq.core.domain.configuration.group.GroupResourceConfigurationUpdate;
+import org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria;
+import org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.resource.ResourceNotFoundException;
/**
@@ -43,8 +45,40 @@ import org.rhq.enterprise.server.resource.ResourceNotFoundException;
@Remote
public interface ConfigurationManagerRemote {
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ * @since 4.10
+ */
+ PageList<GroupPluginConfigurationUpdate> findGroupPluginConfigurationUpdatesByCriteria(Subject subject,
+ GroupPluginConfigurationUpdateCriteria criteria);
+
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ * @since 4.10
+ */
+ PageList<GroupResourceConfigurationUpdate> findGroupResourceConfigurationUpdatesByCriteria(Subject subject,
+ GroupResourceConfigurationUpdateCriteria criteria);
+
+ /**
+ * @param subject
+ * @param configurationUpdateId
+ * @return object
+ * @deprecated use {@link #findGroupPluginConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria)}
+ */
+ @Deprecated
GroupPluginConfigurationUpdate getGroupPluginConfigurationUpdate(Subject subject, int configurationUpdateId);
+ /**
+ * @param subject
+ * @param configurationUpdateId
+ * @return object
+ * @deprecated use {@link #findGroupResourceConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria)}
+ */
+ @Deprecated
GroupResourceConfigurationUpdate getGroupResourceConfigurationUpdate(Subject subject, int configurationUpdateId);
/**
@@ -56,7 +90,6 @@ public interface ConfigurationManagerRemote {
*
* @return the current plugin configuration for the {@link Resource} with the given id, or <code>null</code> if the
* resource's configuration is not yet initialized
- * @throws FetchException
*/
Configuration getPluginConfiguration(Subject subject, int resourceId);
@@ -64,15 +97,22 @@ public interface ConfigurationManagerRemote {
* Get the current Resource configuration.
* @param subject The logged in user's subject.
* @param resourceId A resource id.
- * @return The specified configuration.
- *
- * @throws FetchException In case where there was a problem fetching the resource configuration
+ * @return The specified configuration or null
*/
- Configuration getResourceConfiguration(//
- Subject subject, int resourceId);
+ Configuration getResourceConfiguration(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @return the most recent plugin configuration update
+ */
PluginConfigurationUpdate getLatestPluginConfigurationUpdate(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @return the most recent resource configuration update
+ */
ResourceConfigurationUpdate getLatestResourceConfigurationUpdate(Subject subject, int resourceId);
/**
@@ -80,12 +120,22 @@ public interface ConfigurationManagerRemote {
* @param subject The logged in user's subject.
* @param resourceId A resource id.
* @return True if in progress, else False.
- * @throws FetchException
*/
boolean isResourceConfigurationUpdateInProgress(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param resourceGroupId
+ * @return True if in progress, else False
+ */
boolean isGroupResourceConfigurationUpdateInProgress(Subject subject, int resourceGroupId);
+ /**
+ * @param subject
+ * @param compatibleGroupId
+ * @param newResourceConfigurationMap
+ * @return GroupResourceConfigurationUpdate id
+ */
int scheduleGroupResourceConfigurationUpdate(Subject subject, int compatibleGroupId,
Map<Integer, Configuration> newResourceConfigurationMap);
@@ -99,6 +149,7 @@ public interface ConfigurationManagerRemote {
* @param newConfiguration the new plugin configuration
*
* @return the plugin configuration update item corresponding to this request
+ * @throws ResourceNotFoundException
*/
PluginConfigurationUpdate updatePluginConfiguration(Subject subject, int resourceId, Configuration newConfiguration)
throws ResourceNotFoundException;
@@ -108,19 +159,18 @@ public interface ConfigurationManagerRemote {
* the user does not have the proper permissions to change the resource's configuration, an exception is thrown.
*
* <p>This will not wait for the agent to finish the configuration update. This will return after the request is
- * sent. Once the agent finishes with the request, it will send the completed request information to
- * {@link #completedResourceConfigurationUpdate(AbstractResourceConfigurationUpdate)}.</p>
+ * sent.</p>
*
* @param subject The logged in user's subject.
* @param resourceId identifies the resource to be updated
* @param newConfiguration the resource's desired new configuration
*
* @return the resource configuration update item corresponding to this request
+ * @throws ResourceNotFoundException
+ * @throws ConfigurationUpdateStillInProgressException
*/
-
ResourceConfigurationUpdate updateResourceConfiguration(Subject subject, int resourceId,
-
- Configuration newConfiguration) throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException;
+ Configuration newConfiguration) throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException;
/**
* Get the currently live resource configuration for the {@link Resource} with the given id. This actually asks for
@@ -130,7 +180,7 @@ public interface ConfigurationManagerRemote {
* @param subject The logged in user's subject.
* @param resourceId resourceId
* @param pingAgentFirst
- *
+ *
* @return the live configuration
*
* @throws Exception if failed to get the configuration from the agent
@@ -187,6 +237,16 @@ public interface ConfigurationManagerRemote {
*/
ConfigurationDefinition getPackageTypeConfigurationDefinition(Subject subject, int packageTypeId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @param configuration
+ * @param fromStructured
+ * @return the translated configuration
+ * @throws ResourceNotFoundException
+ * @deprecated this feature was never full implemented and will be removed.
+ */
+ @Deprecated
Configuration translateResourceConfiguration(Subject subject, int resourceId, Configuration configuration,
boolean fromStructured) throws ResourceNotFoundException;
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
index 262c30e..7882223 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
@@ -53,6 +53,7 @@ public interface ContentManagerRemote {
* @param packageTypeId identifies the type of package in case the general package needs to be created
* @param version identifies the version to be create
* @param architectureId architecture of the newly created package version. If null then no architecture restriction.
+ * @param packageBytes
*
* @return newly created package version if one did not exist; existing package version that matches these data if
* one was found
@@ -73,7 +74,9 @@ public interface ContentManagerRemote {
* @param packageName parent package name; uniquely identifies the package under which this version goes
* @param packageTypeId identifies the type of package in case the general package needs to be created
* @param version identifies the version to be create
+ * @param displayVersion
* @param architectureId architecture of the newly created package version. If null then no architecture restriction.
+ * @param packageBytes
*
* @return newly created package version if one did not exist; existing package version that matches these data if
* one was found
@@ -87,6 +90,7 @@ public interface ContentManagerRemote {
* @param subject The logged in subject
* @param resourceId identifies the resource from which the packages should be deleted
* @param installedPackageIds identifies all of the packages to be deleted
+ * @param requestNotes
*/
void deletePackages(Subject subject, int resourceId, int[] installedPackageIds, String requestNotes);
@@ -95,11 +99,10 @@ public interface ContentManagerRemote {
* deleted. If it is referenced by a content source, repo or installed package it must be removed via the
* higher level construct and this call will have no effect.
*
- * @param subject The logged in subject
- * @param packageVersionId The PackageVersion to delete.
+ * @param subject The logged in subject
+ * @param packageVersionId The package version to delete
*/
- public void deletePackageVersion(//
- Subject subject, int resourceId);
+ public void deletePackageVersion(Subject subject, int packageVersionId);
/**
* Deploys packages on the specified resources. Each installed package entry should be populated with the <code>
@@ -109,6 +112,7 @@ public interface ContentManagerRemote {
* @param subject The logged in subject
* @param resourceIds identifies the resources against which the package will be deployed
* @param packageVersionIds packageVersions we want to install
+ * @deprecated
*/
@Deprecated
void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds);
@@ -139,34 +143,35 @@ public interface ContentManagerRemote {
*
* @param subject The logged in subject
* @param resourceTypeName The resource type in question
+ * @param pluginName
*
* @return The requested list of package types. Can be empty.
+ * @throws ResourceTypeNotFoundException
*/
List<PackageType> findPackageTypes(Subject subject, String resourceTypeName, String pluginName)
throws ResourceTypeNotFoundException;
/**
- * This re tries to find a package type of given name defined by the resource type
- * provided.
+ * This re tries to find a package type of given name defined by the resource type provided.
* <p>
- * The resource type id can be null, in which case only the serverside defined package types
+ * The resource type id can be null, in which case only the server-side defined package types
* are searched for.
- *
+ *
* @param subject the authenticated user
- * @param resourceTypeId the id of the resource type associated with the package type or null if only server-side package types should be searched for
+ * @param resourceTypeId the id of the resource type associated with the package type or null if only server-side package types should be searched for
* @param packageTypeName the name of the package type to find
- * @return
+ * @return the package type or null if not found
*/
PackageType findPackageType(Subject subject, Integer resourceTypeId, String packageTypeName);
/**
* Similar to {@link #findPackageType(Subject, Integer, String)} but
* returns the package type along with the version format specification.
- *
+ *
* @param subject
* @param resourceTypeId
* @param packageTypeName
- * @return
+ * @return the composite or null if not found
*/
PackageTypeAndVersionFormatComposite findPackageTypeWithVersionFormat(Subject subject, Integer resourceTypeId,
String packageTypeName);
@@ -179,10 +184,10 @@ public interface ContentManagerRemote {
PageList<InstalledPackage> findInstalledPackagesByCriteria(Subject subject, InstalledPackageCriteria criteria);
/**
- * If a resourceId filter is not set via {@link PackageVersionCriteria.addFilterResourceId()} then
+ * If a resourceId filter is not set via {@link PackageVersionCriteria#addFilterResourceId(Integer)} then
* this method requires InventoryManager permissions. When set the user must have permission to view
* the resource.
- *
+ *
* @param subject
* @param criteria
* @return Installed PackageVersions for the resource
@@ -191,13 +196,13 @@ public interface ContentManagerRemote {
PageList<PackageVersion> findPackageVersionsByCriteria(Subject subject, PackageVersionCriteria criteria);
/**
- * If the criteria object filters on repo id, the subject needs to be able to
- * access that repo. If there is no filter on repos, the subject needs to have
+ * If the criteria object filters on repo id, the subject needs to be able to
+ * access that repo. If there is no filter on repos, the subject needs to have
* MANAGE_REPOSITORIES permission.
- *
+ *
* @param subject
* @param criteria
- * @return
+ * @return the packages, not null
*/
PageList<Package> findPackagesByCriteria(Subject subject, PackageCriteria criteria);
@@ -206,10 +211,10 @@ public interface ContentManagerRemote {
* determines the latest version of the returned packages.
* <p>
* The provided criteria has to be limited to a specific repo using {@link PackageCriteria#addFilterRepoId(Integer)}.
- *
+ *
* @param subject
* @param criteria
- * @return
+ * @return the composites, not null
* @throws IllegalArgumentException if the criteria doesn't define a repo filter
*/
PageList<PackageAndLatestVersionComposite> findPackagesWithLatestVersion(Subject subject, PackageCriteria criteria);
@@ -218,6 +223,7 @@ public interface ContentManagerRemote {
* For a resource that is content-backed (aka package-backed), this call will return InstalledPackage information
* for the backing content (package).
*
+ * @param subject
* @param resourceId a valid resource
* @return The InstalledPackage object for the content-packed resource. Or null for non-existent or non-package backed resource.
*/
@@ -247,6 +253,8 @@ public interface ContentManagerRemote {
*
* @param temporaryContentHandle temporary file handle
* @param fragment fragment bytes
+ * @param off the offset
+ * @param len
*/
void uploadContentFragment(String temporaryContentHandle, byte[] fragment, int off, int len);
@@ -254,7 +262,7 @@ public interface ContentManagerRemote {
* Creates a new package version in the system with content denoted by the <code>temporaryContentHandle</code>.
*
* Use this method instead of {@link #createPackageVersionWithDisplayVersion(org.rhq.core.domain.auth.Subject, String, int, String, String, Integer, byte[])}
- * to avoid passing content files as byte array paramaters.<br>
+ * to avoid passing content files as byte array parameters.<br>
* <br>
* Sample code:<br>
* <pre>
@@ -264,6 +272,14 @@ public interface ContentManagerRemote {
* }
* PackageVersion pv = contentManager.createPackageVersionWithDisplayVersion(..., temporaryContentHandle);
* </pre>
+ * @param subject
+ * @param packageName
+ * @param packageTypeId
+ * @param version
+ * @param displayVersion
+ * @param architectureId
+ * @param temporaryContentHandle
+ * @return the package version
*
* @see ContentManagerRemote#createPackageVersionWithDisplayVersion(org.rhq.core.domain.auth.Subject, String, int, String, String, Integer, byte[])
*/
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java
index 98db824..fdf697f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java
@@ -32,13 +32,16 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public Repo API.
+ */
@Remote
public interface RepoManagerRemote {
/**
* Associates the package versions (identified by their IDs) to the given repo (also identified by its ID).
*
- * @param subject The logged in user's subject.
+ * @param subject The logged in user's subject.
* @param repoId the ID of the repo
* @param packageVersionIds the list of package version IDs to add to the repo
*/
@@ -52,7 +55,7 @@ public interface RepoManagerRemote {
* @param repo a new repo object.
*
* @return the newly created repo
- * @throws RepoException if a repo already exists with the same name
+ * @throws RepoException if a repo already exists with the same name
*/
Repo createRepo(Subject subject, Repo repo) throws RepoException;
@@ -79,7 +82,7 @@ public interface RepoManagerRemote {
*
* @param subject user making the query
* @param criteria describes how the query should function; may not be <code>null</code>
- * @return any repos that match the given criteria; empty list if none match
+ * @return any repos that match the given criteria; empty list if none match
*/
PageList<Repo> findReposByCriteria(Subject subject, RepoCriteria criteria);
@@ -107,11 +110,11 @@ public interface RepoManagerRemote {
* <li>determine the comparator using the package type behavior if one is setup for the package type
* <li>If no package behavior exists, use {@link PackageVersion#DEFAULT_COMPARATOR}
* </ol>
- *
+ *
* @param subject the authenticated user
* @param packageId the id of the package to find the latest version for.
* @param repoId the repo where to take the package versions of the package from
- * @return
+ * @return the package version or null
*/
PackageVersion getLatestPackageVersion(Subject subject, int packageId, int repoId);
@@ -124,6 +127,7 @@ public interface RepoManagerRemote {
* @param repo to be updated
*
* @return Repo that was updated
+ * @throws RepoException
*/
Repo updateRepo(Subject subject, Repo repo) throws RepoException;
@@ -140,18 +144,18 @@ public interface RepoManagerRemote {
PageList<PackageVersion> findPackageVersionsInRepo(Subject subject, int repoId, String filter, PageControl pc);
/**
- * Deletes package versions from a repo if they are not referenced by
+ * Deletes package versions from a repo if they are not referenced by
* a content source.
* <p>
* The package versions themselves are not deleted until some content source or repository
* is deleted at which point orphans detection is performed.
- *
+ *
* @param subject
* @param repoId
* @param packageVersionIds
* @return true if all the package versions were successfully deleted, false if some references exist.
*/
- boolean deletePackageVersionsFromRepo(Subject subject, int repoId, int[] packageVersionId);
+ boolean deletePackageVersionsFromRepo(Subject subject, int repoId, int[] packageVersionIds);
/**
* Gets all resources that are subscribed to the given repo.
@@ -192,12 +196,18 @@ public interface RepoManagerRemote {
*/
void unsubscribeResourceFromRepos(Subject subject, int resourceId, int[] repoIds);
+ /**
+ * @param subject
+ * @param repoIds
+ * @return number of synchronized repos
+ * @throws Exception
+ */
int synchronizeRepos(Subject subject, int[] repoIds) throws Exception;
/**
- * This method allows for downloading the bytes of an arbitrary package version. This call can be dangerous with
+ * This method allows for downloading the bytes of an arbitrary package version. This call can be dangerous with
* large packages because it will attempt to load the whole package in memory.
- *
+ *
* @param subject
* @param repoId
* @param packageVersionId
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java
index 2e42293..3d6303c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java
@@ -30,14 +30,30 @@ import org.rhq.core.domain.dashboard.Dashboard;
import org.rhq.core.domain.util.PageList;
/**
- * @author Jay Shaughnessy
+ * Public API for working with Dashboards.
*/
@Remote
public interface DashboardManagerRemote {
+ /**
+ * @param subject the subject
+ * @param criteria the criteria
+ * @return not null
+ */
public PageList<Dashboard> findDashboardsByCriteria(Subject subject, DashboardCriteria criteria);
+ /**
+ * Create or update a dashboard.
+ *
+ * @param subject the subject
+ * @param dashboard the dashboard
+ * @return The dashboard
+ */
public Dashboard storeDashboard(Subject subject, Dashboard dashboard);
+ /**
+ * @param subject the subject
+ * @param dashboardId the dashboardId
+ */
public void removeDashboard(Subject subject, int dashboardId);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java
index a39108e..226320d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java
@@ -33,12 +33,15 @@ import org.rhq.core.domain.drift.DriftSnapshotRequest;
import org.rhq.core.domain.drift.FileDiffReport;
import org.rhq.core.domain.util.PageList;
+/**
+ * The public API for Drift Management.
+ */
@Remote
public interface DriftManagerRemote {
/**
* Remove the provided driftDef (identified by name) on the specified entityContext.
- * Agents, if available, will be notified of the change.
+ * Agents, if available, will be notified of the change.
* @param subject
* @param entityContext
* @param driftDefName
@@ -50,10 +53,16 @@ public interface DriftManagerRemote {
* @param subject
* @param criteria
* @return The DriftChangeSets matching the criteria
+ * @throws Exception
*/
PageList<? extends DriftChangeSet<?>> findDriftChangeSetsByCriteria(Subject subject, DriftChangeSetCriteria criteria)
throws Exception;
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<DriftDefinition> findDriftDefinitionsByCriteria(Subject subject, DriftDefinitionCriteria criteria);
/**
@@ -61,6 +70,7 @@ public interface DriftManagerRemote {
* @param subject
* @param criteria
* @return The Drifts matching the criteria
+ * @throws Exception
*/
PageList<? extends Drift<?, ?>> findDriftsByCriteria(Subject subject, DriftCriteria criteria) throws Exception;
@@ -69,6 +79,7 @@ public interface DriftManagerRemote {
* modified file, a Drift object references the current and previous versions of the
* file. This method generates a diff of the two versions.
*
+ * @param subject
* @param drift Specifies the two files that will be compared
* @return A report containing a unified diff of the two versions of the file
* referenced by drift
@@ -80,6 +91,7 @@ public interface DriftManagerRemote {
* specifically, the files referenced by {@link org.rhq.core.domain.drift.Drift#getNewDriftFile()}
* are compared.
*
+ * @param subject
* @param drift1 References the first file to be compared
* @param drift2 References the second file to be compared
* @return A report containing a unified diff of the two files compared
@@ -88,9 +100,9 @@ public interface DriftManagerRemote {
/**
* Generates a unified diff of the two file versions referenced by drift ids.
- *
- * @param drift1Id the "new" version of the first drift
- * @param drift2Id the "new" version of the second drift
+ * @param subject
+ * @param driftId1 the "new" version of the first drift
+ * @param driftId2 the "new" version of the second drift
* @return A report containing a unified diff of the two versions of the file
* referenced by drift
*/
@@ -99,16 +111,22 @@ public interface DriftManagerRemote {
/**
* Returns the content associated with the specified hash as a string
*
+ * @param subject
* @param hash The hash the uniquely identifies the requested content
* @return The content as a string
*/
String getDriftFileBits(Subject subject, String hash);
+ /**
+ * @param subject
+ * @param hash
+ * @return the byteArray, not null
+ */
byte[] getDriftFileAsByteArray(Subject subject, String hash);
/**
* Calculate and return requested Drift Snapshot.
- *
+ *
* @param subject
* @param request
* @return The DriftSnapshot Not null but version is set to -1 if the drift definition does not yet
@@ -117,6 +135,11 @@ public interface DriftManagerRemote {
*/
DriftSnapshot getSnapshot(Subject subject, DriftSnapshotRequest request);
+ /**
+ * @param subject
+ * @param driftDefId
+ * @param snapshotVersion
+ */
void pinSnapshot(Subject subject, int driftDefId, int snapshotVersion);
/**
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java
index 6b48eb6..f18f2d0 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java
@@ -27,18 +27,47 @@ import org.rhq.core.domain.drift.DriftDefinition;
import org.rhq.core.domain.drift.DriftDefinitionTemplate;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for Drift Template Management.
+ */
@Remote
public interface DriftTemplateManagerRemote {
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<DriftDefinitionTemplate> findTemplatesByCriteria(Subject subject,
DriftDefinitionTemplateCriteria criteria);
+ /**
+ * @param subject
+ * @param resourceTypeId
+ * @param isUserDefined
+ * @param definition
+ * @return The new {@link DriftDefinitionTemplate}
+ */
DriftDefinitionTemplate createTemplate(Subject subject, int resourceTypeId, boolean isUserDefined,
DriftDefinition definition);
+ /**
+ * @param subject
+ * @param templateId
+ * @param snapshotDriftDefId
+ * @param snapshotVersion
+ */
void pinTemplate(Subject subject, int templateId, int snapshotDriftDefId, int snapshotVersion);
+ /**
+ * @param subject
+ * @param template
+ */
void updateTemplate(Subject subject, DriftDefinitionTemplate template);
+ /**
+ * @param subject
+ * @param templateId
+ */
void deleteTemplate(Subject subject, int templateId);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
index a93e12b..bbccdce 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
@@ -45,7 +45,7 @@ import org.rhq.core.domain.util.PageList;
*
*/
@Local
-public interface EventManagerLocal {
+public interface EventManagerLocal extends EventManagerRemote {
/**
* Add the passed events to the database
@@ -99,20 +99,4 @@ public interface EventManagerLocal {
EventSeverity[] getSeverityBucketsByContext(Subject subject, EntityContext context, long begin, long end,
int bucketCount);
-
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- PageList<Event> findEventsByCriteria(Subject subject, EventCriteria criteria);
-
- EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets);
-
- EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
- long begin, long end, int numBuckets);
-
- EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int resourceGroupId, long begin, long end,
- int numBuckets);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
index 742e746..9d357c5 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
@@ -26,16 +26,52 @@ import org.rhq.core.domain.event.Event;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for working with Events.
+ */
@Remote
public interface EventManagerRemote {
+ /**
+ * @param subject
+ * @param resourceId
+ * @param begin in millis
+ * @param end in millis
+ * @param numBuckets
+ * @return not null
+ * @deprecated use {@link #findEventsByCriteria(Subject, EventCriteria)}
+ */
EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets);
+ /**
+ * @param subject
+ * @param parentResourceId
+ * @param resourceTypeId
+ * @param begin in millis
+ * @param end in millis
+ * @param numBuckets
+ * @return not null
+ * @deprecated use {@link #findEventsByCriteria(Subject, EventCriteria)}
+ */
EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
long begin, long end, int numBuckets);
+ /**
+ * @param subject
+ * @param resourceGroupId
+ * @param begin in millis
+ * @param end in millis
+ * @param numBuckets
+ * @return not null
+ * @deprecated use {@link #findEventsByCriteria(Subject, EventCriteria)}
+ */
EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int resourceGroupId, long begin, long end,
int numBuckets);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Event> findEventsByCriteria(Subject subject, EventCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
index a1a0442..4569ee4 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
@@ -36,11 +36,10 @@ import org.rhq.core.domain.util.PageList;
public interface AvailabilityManagerRemote {
/**
- * @param subject
- * @param resourceId
- * @param pc
- * @return
- * @throws FetchException
+ * @param subject the subject
+ * @param resourceId the resource
+ * @param pc page control
+ * @return not null
* @Deprecated use {@link #findAvailabilityByCriteria(Subject, AvailabilityCriteria)}
*/
@Deprecated
@@ -49,15 +48,18 @@ public interface AvailabilityManagerRemote {
/**
* Gets the last known Availability for the given resource - which includes whether it is currently up (i.e.
* available) or down and the last time it was known to have changed to that state.
- *
- * @param subject
- * @param resourceId
+ *
+ * @param subject the subject
+ * @param resourceId the resource
*
* @return the full and current status of the resource
- * @throws FetchException TODO
- * @throws FetchException
*/
public Availability getCurrentAvailabilityForResource(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Availability> findAvailabilityByCriteria(Subject subject, AvailabilityCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
index 6e81993..7cb2416 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
@@ -36,12 +36,9 @@ import org.rhq.core.domain.util.PageList;
* The manager for call-time metric data.
*/
@Local
-public interface CallTimeDataManagerLocal {
+public interface CallTimeDataManagerLocal extends CallTimeDataManagerRemote {
void addCallTimeData(Set<CallTimeData> callTimeDataSet);
- PageList<CallTimeDataComposite> findCallTimeDataForResource(Subject subject, int scheduleId, long beginTime,
- long endTime, PageControl pageControl);;
-
PageList<CallTimeDataComposite> findCallTimeDataForCompatibleGroup(Subject subject, int groupId, long beginTime,
long endTime, PageControl pageControl);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java
index 3683529..1c2b967 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java
@@ -25,21 +25,21 @@ import org.rhq.core.domain.measurement.calltime.CallTimeDataComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for CallTime Data.
+ */
@Remote
public interface CallTimeDataManagerRemote {
+ /**
+ * @param subject
+ * @param scheduleId The MeasurementSchedule id
+ * @param beginTime in millis
+ * @param endTime in millis
+ * @param pc
+ * @return not null
+ */
PageList<CallTimeDataComposite> findCallTimeDataForResource(Subject subject, int scheduleId, long beginTime,
long endTime, PageControl pc);
- /* this method was never implemented, and so won't be in the remote api yet
-
- PageList<CallTimeDataComposite> getCallTimeDataForCompatibleGroup(
- Subject subject,
- int groupId,
- int measurementDefinitionId,
- long beginTime,
- long endTime,
- PageControl pageControl)
- throws FetchException;
- */
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java
index 35b8099..0d5685f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java
@@ -24,7 +24,6 @@ import javax.ejb.Local;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.measurement.MeasurementBaseline;
-import org.rhq.core.domain.resource.Resource;
/**
* A manager for {@link MeasurementBaseline}s.
@@ -34,7 +33,7 @@ import org.rhq.core.domain.resource.Resource;
* @author Joseph Marques
*/
@Local
-public interface MeasurementBaselineManagerLocal {
+public interface MeasurementBaselineManagerLocal extends MeasurementBaselineManagerRemote {
/**
* This is the entry point which calls out to all other *calculateAutoBaselines* methods seen
* in this interface. This is the method that should be called on a regular basis by some sort
@@ -137,20 +136,4 @@ public interface MeasurementBaselineManagerLocal {
* @param definitionIds measurement definition IDs
*/
void enableAutoBaselineCalculation(Subject subject, Integer[] resourceIds, Integer[] definitionIds);
-
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- /**
- * Return a list of {@link MeasurementBaseline} objects for the {@link Resource} represented by the given id.
- *
- * @param subject the user request to view the baseline history for the given resource
- * @param resourceId the id of the resource whose baselines are to be returned
- *
- * @return a list of baselines for all measurements scheduled on the given resource
- */
- List<MeasurementBaseline> findBaselinesForResource(Subject subject, int resourceId);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java
index ade80ea..28bb49b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java
@@ -24,9 +24,21 @@ import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.measurement.MeasurementBaseline;
+import org.rhq.core.domain.resource.Resource;
+/**
+ * Public API for measurement baselines.
+ */
@Remote
public interface MeasurementBaselineManagerRemote {
+ /**
+ * Return a list of {@link MeasurementBaseline} objects for the {@link Resource} represented by the given id.
+ *
+ * @param subject the user request to view the baseline history for the given resource
+ * @param resourceId the id of the resource whose baselines are to be returned
+ *
+ * @return a list of baselines for all measurements scheduled on the given resource
+ */
List<MeasurementBaseline> findBaselinesForResource(Subject subject, int resourceId);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
index 1a049c3..4b40783 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
@@ -35,6 +35,9 @@ import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowCo
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for measurement data.
+ */
@Remote
public interface MeasurementDataManagerRemote {
@@ -44,18 +47,18 @@ public interface MeasurementDataManagerRemote {
*
* @param subject the user requesting the aggregate
* @param scheduleId the id of the {@link MeasurementSchedule} for which this aggregate is being requested
- * @param start the start time
- * @param end the end time
+ * @param startTime
+ * @param endTime
*
* @return MeasurementAggregate bean with the data
*
- * @throws FetchException if the schedule does not reference numerical data or if the user is not allowed to view
- * the {@link Resource} corresponding to this scheduleId
* @deprecated class {@link org.rhq.enterprise.server.measurement.MeasurementAggregate} has been deprecated
* since RHQ 4.8, therefore this method was deprecated as well and
* replaced by {@link #getMeasurementAggregate(org.rhq.core.domain.auth.Subject,int,long,long)}
*/
- org.rhq.enterprise.server.measurement.MeasurementAggregate getAggregate(Subject subject, int scheduleId, long startTime, long endTime);
+ @Deprecated
+ org.rhq.enterprise.server.measurement.MeasurementAggregate getAggregate(Subject subject, int scheduleId,
+ long startTime, long endTime);
/**
* Get the aggregate values of the numerical values for a given schedule. This can only provide aggregates for data
@@ -63,19 +66,21 @@ public interface MeasurementDataManagerRemote {
*
* @param subject the user requesting the aggregate
* @param scheduleId the id of the {@link MeasurementSchedule} for which this aggregate is being requested
- * @param start the start time
- * @param end the end time
+ * @param startTime in millis
+ * @param endTime in millis
*
* @return MeasurementAggregate bean with the data
*
- * @throws FetchException if the schedule does not reference numerical data or if the user is not allowed to view
+ * @throws MeasurementException if the schedule does not reference numerical data or if the user is not allowed to view
* the {@link Resource} corresponding to this scheduleId
*/
- MeasurementAggregate getMeasurementAggregate(Subject subject, int scheduleId, long startTime, long endTime);
+ MeasurementAggregate getMeasurementAggregate(Subject subject, int scheduleId, long startTime, long endTime)
+ throws MeasurementException;
/**
* Return all known trait data for the passed schedule, defined by resourceId and definitionId
*
+ * @param subject
* @param resourceId PK of a {@link Resource}
* @param definitionId PK of a {@link MeasurementDefinition}
*
@@ -83,6 +88,12 @@ public interface MeasurementDataManagerRemote {
*/
List<MeasurementDataTrait> findTraits(Subject subject, int resourceId, int definitionId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @param displayType
+ * @return not null
+ */
List<MeasurementDataTrait> findCurrentTraitsForResource(Subject subject, int resourceId, DisplayType displayType);
/**
@@ -98,15 +109,26 @@ public interface MeasurementDataManagerRemote {
// Deprecating this for 4.7, we don't want clients generating live data requests, it's not efficient or reliable
// It will be moved to the Local
/**
- * @deprecated use {@link #findDataForResource(Subject, int, int[], long, long, int)}
+ * @param subject
+ * @param resourceId
+ * @param definitionIds
+ * @return not null
+ * @deprecated use {@link #findDataForResource(Subject, int, int[], long, long, int)}
*/
+ @Deprecated
Set<MeasurementData> findLiveData(Subject subject, int resourceId, int[] definitionIds);
// Deprecating this for 4.7, we don't want clients generating live data requests, it's not efficient or reliable
- // It will be moved to the Local
+ // It will be moved to the Local
/**
- * @deprecated use {@link #findDataForCompatibleGroup(Subject, int, int, long, long, int)}
+ * @param subject
+ * @param groupId
+ * @param resourceIds
+ * @param definitionIds
+ * @return not null
+ * @deprecated use {@link #findDataForCompatibleGroup(Subject, int, int, long, long, int)}
*/
+ @Deprecated
Set<MeasurementData> findLiveDataForGroup(Subject subject, int groupId, int[] resourceIds, int[] definitionIds);
/**
@@ -115,12 +137,12 @@ public interface MeasurementDataManagerRemote {
*
* @param subject
* @param groupId
- * @param definitionId measurement definition id for numeric metric associated with the given compatible group
+ * @param definitionId measurement definition id for numeric metric associated with the given compatible group
* @param beginTime
* @param endTime
* @param numPoints
*
- * @return
+ * @return not null
*/
List<List<MeasurementDataNumericHighLowComposite>> findDataForCompatibleGroup(Subject subject, int groupId,
int definitionId, long beginTime, long endTime, int numPoints);
@@ -136,7 +158,7 @@ public interface MeasurementDataManagerRemote {
* @param endTime
* @param numPoints
*
- * @return
+ * @return not null
*/
List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(Subject subject, int resourceId,
int[] definitionIds, long beginTime, long endTime, int numPoints);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java
index a4bbc8d..f9d6d29 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java
@@ -23,17 +23,15 @@ import java.util.List;
import javax.ejb.Local;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementDefinition;
-import org.rhq.core.domain.util.PageList;
/**
* A manager for {@link MeasurementDefinition}s.
*/
@Local
-public interface MeasurementDefinitionManagerLocal {
+public interface MeasurementDefinitionManagerLocal extends MeasurementDefinitionManagerRemote {
/**
* Remove the given definition with its attached schedules and MeasurementData
@@ -64,23 +62,4 @@ public interface MeasurementDefinitionManagerLocal {
* @return List<MeasurementDefinition> list of definitions found
*/
List<MeasurementDefinition> findMeasurementDefinitionsByIds(Subject subject, Integer[] measurementDefinitionIds);
-
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- /**
- * Returns a MeasurementDefinition by its id or null.
- *
- * @param subject user that is calling this method
- * @param definitionId id of the desired {@link MeasurementDefinition} to fetch
- *
- * @return the MeasurementDefinition or null if not found
- */
- MeasurementDefinition getMeasurementDefinition(Subject subject, int definitionId);
-
- PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(Subject subject,
- MeasurementDefinitionCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java
index c35ed2d..85cb94a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java
@@ -25,11 +25,28 @@ import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for measurement definitions.
+ */
@Remote
public interface MeasurementDefinitionManagerRemote {
+ /**
+ * Returns a MeasurementDefinition by its id or null.
+ *
+ * @param subject user that is calling this method
+ * @param definitionId id of the desired {@link MeasurementDefinition} to fetch
+ *
+ * @return the MeasurementDefinition or null if not found
+ */
MeasurementDefinition getMeasurementDefinition(Subject subject, int definitionId);
- PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(//
- Subject subject, MeasurementDefinitionCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
+ PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(Subject subject,
+ MeasurementDefinitionCriteria criteria);
+
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java
index 85450b0..4716b5b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java
@@ -20,37 +20,10 @@ package org.rhq.enterprise.server.measurement;
import javax.ejb.Local;
-import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.measurement.AvailabilityType;
-import org.rhq.core.domain.resource.composite.ProblemResourceComposite;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.core.domain.util.PageList;
-
/**
* A manager for working with problems such as out-of-bounds measurements.
*/
@Local
-public interface MeasurementProblemManagerLocal {
- /**
- * Returns a list of all "problem resources" where a problem resource has one or more of the following statements
- * true:
- *
- * <ul>
- * <li>it is known to be {@link AvailabilityType#DOWN down}</li>
- * <li>one or more of its alerts were triggered</li>
- * <li>one or more of its measurements were out-of-bounds (compared to their baselines)</li>
- * </ul>
- *
- * If one or more of those are true for any resource, and they became true at or after the given <code>
- * oldestDate</code> time (specified in epoch milliseconds), that resource is returned in the list (assuming the
- * given user has access to view that resource).
- *
- * @param subject the user asking for the data
- * @param oldestDate no problems will be returned that started before this time
- * @param maxResources the maximum number of resources that should be returned
- *
- * @return the problems resources (only those resources visible to the user will be returned)
- */
- PageList<ProblemResourceComposite> findProblemResources(Subject subject, long oldestDate, PageControl pc);
+public interface MeasurementProblemManagerLocal extends MeasurementProblemManagerRemote {
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java
index 9533fcd..0f94d5a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java
@@ -21,13 +21,36 @@ package org.rhq.enterprise.server.measurement;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.composite.ProblemResourceComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public Measurement Problem API. For working with problems such as out-of-bounds measurements.
+ */
@Remote
public interface MeasurementProblemManagerRemote {
- PageList<ProblemResourceComposite> findProblemResources(Subject subject, long oldestDate, PageControl pc);
+ /**
+ * Returns a list of all "problem resources" where a problem resource has one or more of the following statements
+ * true:
+ *
+ * <ul>
+ * <li>it is known to be {@link AvailabilityType#DOWN down}</li>
+ * <li>one or more of its alerts were triggered</li>
+ * <li>one or more of its measurements were out-of-bounds (compared to their baselines)</li>
+ * </ul>
+ *
+ * If one or more of those are true for any resource, and they became true at or after the given <code>
+ * oldestDate</code> time (specified in epoch milliseconds), that resource is returned in the list (assuming the
+ * given user has access to view that resource).
+ *
+ * @param subject the user asking for the data
+ * @param oldestDate no problems will be returned that started before this time
+ * @param pageControl
+ * @return the problems resources (only those resources visible to the user will be returned)
+ */
+ PageList<ProblemResourceComposite> findProblemResources(Subject subject, long oldestDate, PageControl pageControl);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java
index 06041a4..c394d33 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java
@@ -44,12 +44,16 @@ public interface MeasurementScheduleManagerRemote {
/**
* Disable the measurement schedules for the passed definitions for the resources of the passed compatible group.
+ *
+ * @param subject
+ * @param groupId
+ * @param measurementDefinitionIds
*/
void disableSchedulesForCompatibleGroup(Subject subject, int groupId, int[] measurementDefinitionIds);
/**
* Requires MANAGE_SETTINGS global permission.
- *
+ *
* @param subject
* @param measurementDefinitionIds
* @param updateExistingSchedules
@@ -58,8 +62,12 @@ public interface MeasurementScheduleManagerRemote {
boolean updateExistingSchedules);
/**
- * @deprecated use {@link #disableSchedulesForResourceType(Subject, int[], boolean)
+ * @param subject
+ * @param measurementDefinitionIds
+ *
+ * @deprecated use {@link #disableSchedulesForResourceType(Subject, int[], boolean)}
*/
+ @Deprecated
void disableMeasurementTemplates(Subject subject, int[] measurementDefinitionIds);
/**
@@ -72,12 +80,16 @@ public interface MeasurementScheduleManagerRemote {
/**
* Enable the measurement schedules for the passed definitions for the resources of the passed compatible group.
+ *
+ * @param subject
+ * @param groupId
+ * @param measurementDefinitionIds
*/
void enableSchedulesForCompatibleGroup(Subject subject, int groupId, int[] measurementDefinitionIds);
/**
* Requires MANAGE_SETTINGS global permission.
- *
+ *
* @param subject
* @param measurementDefinitionIds
* @param updateExistingSchedules
@@ -85,21 +97,41 @@ public interface MeasurementScheduleManagerRemote {
void enableSchedulesForResourceType(Subject subject, int[] measurementDefinitionIds, boolean updateExistingSchedules);
/**
- * @deprecated use {@link #enableSchedulesForResourceType(Subject, int[], boolean)
+ * @param subject
+ * @param measurementDefinitionIds
+ *
+ * @deprecated use {@link #enableSchedulesForResourceType(Subject, int[], boolean)}
*/
+ @Deprecated
void enableMeasurementTemplates(Subject subject, int[] measurementDefinitionIds);
+ /**
+ * @param subject
+ * @param measurementSchedule
+ */
void updateSchedule(Subject subject, MeasurementSchedule measurementSchedule);
+ /**
+ * @param subject
+ * @param resourceId
+ * @param measurementDefinitionIds
+ * @param collectionInterval
+ */
void updateSchedulesForResource(Subject subject, int resourceId, int[] measurementDefinitionIds,
long collectionInterval);
+ /**
+ * @param subject
+ * @param groupId
+ * @param measurementDefinitionIds
+ * @param collectionInterval
+ */
void updateSchedulesForCompatibleGroup(Subject subject, int groupId, int[] measurementDefinitionIds,
long collectionInterval);
/**
* Requires MANAGE_SETTINGS global permission.
- *
+ *
* @param subject
* @param measurementDefinitionIds
* @param collectionInterval
@@ -109,9 +141,18 @@ public interface MeasurementScheduleManagerRemote {
boolean updateExistingSchedules);
/**
- * @deprecated use {@link #updateSchedulesForResourceType(Subject, int[], boolean)
+ * @param subject
+ * @param measurementDefinitionIds
+ * @param collectionInterval
+ * @deprecated use {@link #updateSchedulesForResourceType(Subject, int[], long, boolean)}
*/
+ @Deprecated
void updateMeasurementTemplates(Subject subject, int[] measurementDefinitionIds, long collectionInterval);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<MeasurementSchedule> findSchedulesByCriteria(Subject subject, MeasurementScheduleCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
index c10bc88..d50ebde 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
@@ -22,8 +22,6 @@ import java.util.List;
import javax.ejb.Remote;
-import org.quartz.SchedulerException;
-
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.criteria.GroupOperationHistoryCriteria;
@@ -38,6 +36,9 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.exception.ScheduleException;
import org.rhq.enterprise.server.exception.UnscheduleException;
+/**
+ * Public Operation Manager remote.
+ */
@Remote
public interface OperationManagerRemote {
@@ -58,7 +59,7 @@ public interface OperationManagerRemote {
*
* @param subject
* The logged in user's subject.
- * @param historyId
+ * @param operationHistoryId
* the ID of the history item identifying the in-progress operation
* @param ignoreAgentErrors
* if <code>true</code> this will still flag the history items in the database as canceled, even if the
@@ -80,7 +81,7 @@ public interface OperationManagerRemote {
*
* @param subject
* The logged in user's subject.
- * @param historyId
+ * @param operationHistoryId
* the ID of the history to be deleted
* @param purgeInProgress
* if <code>true</code>, even if the operation is in progress, the history entity will be deleted. You
@@ -118,7 +119,7 @@ public interface OperationManagerRemote {
ResourceOperationSchedule scheduleResourceOperation(Subject subject, int resourceId, String operationName,
long delay, long repeatInterval, int repeatCount, int timeout, Configuration parameters, String description)
throws ScheduleException;
-
+
/**
* Schedules a Resource operation for execution using the cron expression.
*
@@ -142,23 +143,23 @@ public interface OperationManagerRemote {
* 0 15 10 L * ? Fire at 10:15am on the last day of every month
* 0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
* 0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
- * 0 15 10 ? * 6L 2002-2005 at 10:15am on every last friday of every month during the years
+ * 0 15 10 ? * 6L 2002-2005 at 10:15am on every last Friday of every month during the years
* 0 15 10 ? * 6#3 Fire at 10:15am on the third Friday of every month
* 0 11 11 11 11 ? Fire every November 11th at 11:11am.
* </pre>
* @param timeout the number of seconds before this operation will fail due to timeout. 0 for no timeout.
- * @param parameters the names parameters for the operation.
+ * @param parameters the names parameters for the operation.
* @param description user-entered description of the job to be scheduled
*
* @return the information on the new schedule
*
- * @throws SchedulerException if failed to schedule the operation
+ * @throws ScheduleException if failed to schedule the operation
*/
ResourceOperationSchedule scheduleResourceOperationUsingCron(Subject subject, int resourceId, String operationName,
String cronExpression, int timeout, Configuration parameters, String description) throws ScheduleException;
/**
- * Unschedules the resource operation identified with the given job ID.
+ * Unschedule the resource operation identified with the given job ID.
*
* @param subject
* The logged in user's subject.
@@ -167,7 +168,7 @@ public interface OperationManagerRemote {
* @param resourceId
* the ID of the resource whose operation is getting unscheduled
* @throws UnscheduleException TODO
- * @throws Exception
+ * @throws UnscheduleException
*/
void unscheduleResourceOperation(Subject subject, String jobId, int resourceId) throws UnscheduleException;
@@ -183,7 +184,7 @@ public interface OperationManagerRemote {
* @param repeatCount
* @param timeout
* @param description
- * @return
+ * @return The group operation schedule
* @throws ScheduleException
*/
GroupOperationSchedule scheduleGroupOperation(Subject subject, int groupId, int[] executionOrderResourceIds,
@@ -196,7 +197,7 @@ public interface OperationManagerRemote {
*
* @param subject the user who is asking to schedule the job
* @param groupId the compatible group whose member resources are the target of the operation
- * @param executionOrderResourceIds optional order of exection - if not<code>null</code>, these are group members
+ * @param executionOrderResourceIds optional order of execution - if not<code>null</code>, these are group members
* resource IDs in the order in which the operations are invoked
* @param haltOnFailure if <code>true</code>, the group operation will halt whenever one individual
* resource fails to execute. When executing in order, this means once a failure
@@ -223,7 +224,7 @@ public interface OperationManagerRemote {
* 0 15 10 L * ? Fire at 10:15am on the last day of every month
* 0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
* 0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
- * 0 15 10 ? * 6L 2002-2005 at 10:15am on every last friday of every month during the years
+ * 0 15 10 ? * 6L 2002-2005 at 10:15am on every last Friday of every month during the years
* 0 15 10 ? * 6#3 Fire at 10:15am on the third Friday of every month
* 0 11 11 11 11 ? Fire every November 11th at 11:11am.
* </pre>
@@ -233,29 +234,28 @@ public interface OperationManagerRemote {
*
* @return the information on the new schedule
*
- * @throws SchedulerException if failed to schedule the operation
+ * @throws ScheduleException if failed to schedule the operation
*/
GroupOperationSchedule scheduleGroupOperationUsingCron(Subject subject, int groupId,
int[] executionOrderResourceIds, boolean haltOnFailure, String operationName, Configuration parameters,
String cronExpression, int timeout, String description) throws ScheduleException;
-
+
/**
- * Unschedules the group operation identified with the given job ID.
+ * Unschedule the group operation identified with the given job ID.
*
* @param subject the user who is asking to unschedule the operation
* @param jobId identifies the operation to unschedule
* @param resourceGroupId the ID of the group whose operation is getting unscheduled
* @throws UnscheduleException TODO
*/
- void unscheduleGroupOperation(Subject subject, String jobId, int resourceGroupId)//
- throws UnscheduleException;
+ void unscheduleGroupOperation(Subject subject, String jobId, int resourceGroupId) throws UnscheduleException;
/**
* Returns the list of scheduled operations for the given resource. This only includes scheduled jobs on the
* individual resource - it will not include schedules from groups, even if the resource is a member of a group that
* has scheduled jobs.
*
- * @param user
+ * @param subject
* The logged in user's subject.
* @param resourceId
*
@@ -265,6 +265,18 @@ public interface OperationManagerRemote {
*/
List<ResourceOperationSchedule> findScheduledResourceOperations(Subject subject, int resourceId) throws Exception;
+ /**
+ * Returns the list of scheduled operations for the given resource group. This only includes scheduled jobs on the
+ * individual resource group.
+ *
+ * @param subject
+ * The logged in user's subject.
+ * @param groupId
+ *
+ * @return resource scheduled operations
+ * @throws Exception TODO
+ * @throws Exception
+ */
List<GroupOperationSchedule> findScheduledGroupOperations(Subject subject, int groupId) throws Exception;
/**
@@ -276,9 +288,19 @@ public interface OperationManagerRemote {
*/
List<OperationDefinition> findOperationDefinitionsByCriteria(Subject subject, OperationDefinitionCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<ResourceOperationHistory> findResourceOperationHistoriesByCriteria(Subject subject,
ResourceOperationHistoryCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<GroupOperationHistory> findGroupOperationHistoriesByCriteria(Subject subject,
GroupOperationHistoryCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
index 455b4e6..e95a430 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
@@ -23,7 +23,6 @@ import java.util.List;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.bundle.BundleVersion;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.resource.CreateDeletePolicy;
import org.rhq.core.domain.resource.CreateResourceHistory;
@@ -32,8 +31,8 @@ import org.rhq.core.domain.resource.ResourceCreationDataType;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-/*
- * @author Jay Shaughnessy
+/**
+ * Public ResourceFactory API.
*/
@Remote
public interface ResourceFactoryManagerRemote {
@@ -53,7 +52,8 @@ public interface ResourceFactoryManagerRemote {
* @param resourceName name of the resource being created
* @param pluginConfiguration optional plugin configuration that may be needed in order to create the new resource
* @param resourceConfiguration resource configuration for the new resource
- * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @return the create resource history record
*/
CreateResourceHistory createResource(Subject subject, int parentResourceId, int resourceTypeId,
String resourceName, Configuration pluginConfiguration, Configuration resourceConfiguration, Integer timeout);
@@ -75,10 +75,11 @@ public interface ResourceFactoryManagerRemote {
* resource
* @param packageName name of the package that will be created as a result of this resource create
* @param packageVersion The string version of the package. If null will be set to system timestamp (long)
- * @param architectureId Id of the target architecture of the package, null indicates NoArch (any).
+ * @param architectureId Id of the target architecture of the package, null indicates NoArch (any).
* @param deploymentTimeConfiguration dictates how the package will be deployed
* @param packageBits content of the package to create
- * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @return the create resource history record
*/
CreateResourceHistory createPackageBackedResource(Subject subject, int parentResourceId, int newResourceTypeId,
String newResourceName, Configuration pluginConfiguration, String packageName, String packageVersion,
@@ -88,6 +89,20 @@ public interface ResourceFactoryManagerRemote {
* Like {@link #createPackageBackedResource(org.rhq.core.domain.auth.Subject, int, int, String, org.rhq.core.domain.configuration.Configuration, String, String, Integer, org.rhq.core.domain.configuration.Configuration, byte[], Integer)}
* except that this method takes a <code>temporaryContentHandle</code> as parameter instead of a byte array.
*
+ * @param subject user requesting the creation
+ * @param parentResourceId parent resource under which the new resource should be created
+ * @param newResourceTypeId identifies the type of resource being created
+ * @param newResourceName Ignored, pass null. This is determined from the package.
+ * @param pluginConfiguration optional plugin configuration that may be needed in order to create the new
+ * resource
+ * @param packageName name of the package that will be created as a result of this resource create
+ * @param packageVersion The string version of the package. If null will be set to system timestamp (long)
+ * @param architectureId Id of the target architecture of the package, null indicates NoArch (any).
+ * @param deploymentTimeConfiguration dictates how the package will be deployed
+ * @param temporaryContentHandle content handle of the package to create
+ * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @return the create resource history record
+ *
* @see org.rhq.enterprise.server.content.ContentManagerRemote#createTemporaryContentHandle()
* @see org.rhq.enterprise.server.content.ContentManagerRemote#uploadContentFragment(String, byte[], int, int)
* @see #createPackageBackedResource(org.rhq.core.domain.auth.Subject, int, int, String, org.rhq.core.domain.configuration.Configuration, String, String, Integer, org.rhq.core.domain.configuration.Configuration, byte[], Integer)
@@ -114,7 +129,8 @@ public interface ResourceFactoryManagerRemote {
* resource
* @param deploymentTimeConfiguration dictates how the package will be deployed
* @param packageVersionId An existing package version to back this resource
- * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @return the create resource history record
*/
public CreateResourceHistory createPackageBackedResourceViaPackageVersion(Subject subject, int parentResourceId,
int newResourceTypeId, String newResourceName, Configuration pluginConfiguration,
@@ -127,6 +143,7 @@ public interface ResourceFactoryManagerRemote {
*
* @param subject user requesting the deletion. must have resource delete perm on the resource.
* @param resourceId resource being deleted
+ * @return the delete resource history record
*/
DeleteResourceHistory deleteResource(Subject subject, int resourceId);
@@ -137,6 +154,7 @@ public interface ResourceFactoryManagerRemote {
*
* @param subject user requesting the deletion. must have resource delete perm on the resources.
* @param resourceIds the resources being deleted
+ * @return not null
*/
List<DeleteResourceHistory> deleteResources(Subject subject, int[] resourceIds);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
index 0070a88..58c2d14 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
@@ -24,6 +24,7 @@ import java.util.Map;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.measurement.ResourceAvailability;
@@ -33,11 +34,12 @@ import org.rhq.core.domain.resource.ResourceAncestryFormat;
import org.rhq.core.domain.resource.composite.ResourceAvailabilitySummary;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.server.authz.PermissionException;
/**
- * @author Jay Shaughnessy
+ * @author Jay Shaughnessy
* @author Simeon Pinder
- * @author Asaf Shakarchi
+ * @author Asaf Shakarchi
*/
@Remote
public interface ResourceManagerRemote {
@@ -63,10 +65,7 @@ public interface ResourceManagerRemote {
*
* @return the resource availability - note that if the encapsulated availability type is <code>null</code>,
* the resource availability is UNKNOWN. As of RHQ 4.4 this does not return null but rather
- * {@link AvailabilityType.UNKNOWN}.
- *
- * @throws FetchException if the resource represented by the resourceId parameter does not exist, or if the
- * passed subject does not have permission to view this resource.
+ * {@link AvailabilityType#UNKNOWN}.
*/
ResourceAvailability getLiveResourceAvailability(Subject subject, int resourceId);
@@ -77,10 +76,10 @@ public interface ResourceManagerRemote {
* @param resourceId the id of a {@link Resource} in inventory.
*
* @return the resource
- * @throws FetchException if the resource represented by the resourceId parameter does not exist, or if the
- * passed subject does not have permission to view this resource.
+ * @throws ResourceNotFoundException if the resource represented by the resourceId parameter does not exist.
+ * @throws PermissionException if the user does not have view permission for the resource
*/
- Resource getResource(Subject subject, int resourceId);
+ Resource getResource(Subject subject, int resourceId) throws ResourceNotFoundException, PermissionException;
/**
* Returns the lineage of the Resource with the specified id. The lineage is represented as a List of Resources,
@@ -92,14 +91,15 @@ public interface ResourceManagerRemote {
* @param resourceId the id of a {@link Resource} in inventory
*
* @return the lineage of the Resource with the specified id
- * @throws FetchException on any issue. Wraps ResourceNotFoundException when necessary.
+ * @throws ResourceNotFoundException if the resource represented by the resourceId parameter does not exist.
+ * @throws PermissionException if the user does not have view permission for a resource in the lineage
*/
List<Resource> findResourceLineage(Subject subject, int resourceId);
/**
* Update resource's editable properties (name, description, location).
- *
- * @param user the logged in user
+ *
+ * @param subject the logged in user
* @param resource the resource to update
* @return the updated resource
*/
@@ -126,43 +126,63 @@ public interface ResourceManagerRemote {
* Removes these resources from inventory. The resources may subsequently be rediscovered. Note that for
* each specified resource all children will also be removed, it it not necessary or recommended to
* specify more than one resource in the same ancestry line.
- *
+ *
* @param subject The logged in user's subject.
* @param resourceIds The resources to uninventory.
+ * @return the resource ids of the uninventoried resources
*/
List<Integer> uninventoryResources(Subject subject, int[] resourceIds);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Resource> findResourcesByCriteria(Subject subject, ResourceCriteria criteria);
+ /**
+ * @param subject
+ * @param resourceId
+ * @param pageControl
+ * @return not null
+ */
PageList<Resource> findChildResources(Subject subject, int resourceId, PageControl pageControl);
- Resource getParentResource(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @return the parent resource or null if the resource has no parent
+ * @throws ResourceNotFoundException if the resource does not exist
+ * @throws PermissionException if the user does not have view permission for a resource in the lineage
+ */
+ Resource getParentResource(Subject subject, int resourceId) throws ResourceNotFoundException, PermissionException;
/**
* Resource.ancestry is an encoded value that holds the resource's parental ancestry. It is not suitable for display.
* This method can be used to get decoded and formatted ancestry values for a set of resources. A typical usage
* would a criteria resource fetch, and then a subsequent call to this method for ancestry display, potentially
* for resource disambiguation purposes.
- *
+ *
* @param subject
* @param resourceIds
* @param format
- * @return A Map of ResourceIds to FormattedAncestryStrings, one entry for each unique, valid, resourceId passed in.
+ * @return A Map of ResourceIds to FormattedAncestryStrings, one entry for each unique, valid, resourceId passed in.
*/
Map<Integer, String> getResourcesAncestry(Subject subject, Integer[] resourceIds, ResourceAncestryFormat format);
/**
- * Set these resources to {@link AvailabilityType.DISABLED}. While disabled resource availability reported
+ * Set these resources to {@link AvailabilityType#DISABLED}. While disabled resource availability reported
* from the agent is ignored. This is typically used for resources undergoing scheduled maintenance or
- * whose avail state should be disregarded fo some period.
+ * whose avail state should be disregarded for some period.
* <br/><br/>
- * The calling user must possess {@link Permission.DELETE} permission on all of the provided resources.
+ * The calling user must possess {@link Permission#DELETE_RESOURCE} permission on all of the provided resources.
* <br/><br/>
* Resources already disabled are ignored.
- *
+ *
* @param subject The logged in user's subject.
* @param resourceIds The resources to uninventory.
- *
+ * @return the disabled resource ids, not null
+ *
* @see #enableResources(Subject, int[])
*/
List<Integer> disableResources(Subject subject, int[] resourceIds);
@@ -172,11 +192,12 @@ public interface ResourceManagerRemote {
* until the agent reports a new, live, availability. The agent will be requested to check availability
* for the enabled resources at its earliest convenience.
* <br/><br/>
- * The calling user must possess {@link Permission.DELETE} permission on all of the provided resources.
- *
+ * The calling user must possess {@link Permission#DELETE_RESOURCE} permission on all of the provided resources.
+ *
* @param subject The logged in user's subject.
* @param resourceIds The resources to uninventory.
- *
+ * @return the enable resource ids, not null
+ *
* @see #disableResources(Subject, int[])
*/
List<Integer> enableResources(Subject subject, int[] resourceIds);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java
index fdc7025..8520abb 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java
@@ -25,14 +25,39 @@ import org.rhq.core.domain.criteria.ResourceTypeCriteria;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
+/**
+ * ResourceType remote API.
+ */
@Remote
public interface ResourceTypeManagerRemote {
+ /**
+ * @param subject
+ * @param resourceTypeId
+ * @param ignoreFlag
+ */
void setResourceTypeIgnoreFlagAndUninventoryResources(Subject subject, int resourceTypeId, boolean ignoreFlag);
+ /**
+ * @param subject
+ * @param resourceTypeId
+ * @return the type
+ * @throws ResourceTypeNotFoundException
+ */
ResourceType getResourceTypeById(Subject subject, int resourceTypeId) throws ResourceTypeNotFoundException;
+ /**
+ * @param subject
+ * @param name
+ * @param plugin
+ * @return null if not found
+ */
ResourceType getResourceTypeByNameAndPlugin(Subject subject, String name, String plugin);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<ResourceType> findResourceTypesByCriteria(Subject subject, ResourceTypeCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java
index 11fcb4d..041567a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java
@@ -35,46 +35,59 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ClusterFlyweight;
/**
- * @author Greg Hinkle
+ * Public API for AutoCluster management.
*/
@Remote
public interface ClusterManagerRemote {
/**
* Given a cluster key create a backing group.
+ * @param subject
* @param clusterKey
* @param addResources If true, the new group will be assigned the current resources defined by the clusterKey.
* Otherwise no resources will be assigned to the new group.
+ * @return the backing group
* @throws IllegalArgumentException if a backing group exists for this clusterKey
* @throws IllegalStateException if the cluster group is not a compatible group
+ * @deprecated this method will be moved to private API unless a case is made to keep it public.
*/
+ @Deprecated
ResourceGroup createAutoClusterBackingGroup(Subject subject, ClusterKey clusterKey, boolean addResources);
/**
* Return the backing group for the supplied cluster key. Resource membership will represent the resources
- * last set for the group and may not reflect current membership. See {@link #getAutoClusterResources(String)}
+ * last set for the group and may not reflect current membership. See {@link #getAutoClusterResources(Subject, ClusterKey)}
+ * @param subject
* @param clusterKey
* @return The backing group, or null if the key does not have a backing group.
+ * @deprecated this method will be moved to private API unless a case is made to keep it public.
*/
+ @Deprecated
@Nullable
ResourceGroup getAutoClusterBackingGroup(Subject subject, ClusterKey clusterKey);
/**
* Given a cluster key get the auto cluster resource membership. The membership is always determined
* at call time, regardless of whether a backing group exists. To get the backing group, if it exists,
- * for a cluster key then call {@link #getAutoClusterBackingGroup(String)}.
+ * for a cluster key then call {@link #getAutoClusterBackingGroup(Subject, ClusterKey)}.
+ * @param subject
+ * @param clusterKey
+ * @return not null
+ * @deprecated this method will be moved to private API unless a case is made to keep it public.
*/
+ @Deprecated
List<Resource> getAutoClusterResources(Subject subject, ClusterKey clusterKey);
-
/**
* Load a fully populated tree view of the "cluster nodes" for a cluster group. These are
* summary nodes and do not contain the actual resources in the group.
*
* @param subject
* @param groupId
- * @return
+ * @return the tree
+ * @deprecated this method will be moved to private API unless a case is made to keep it public.
*/
+ @Deprecated
ClusterFlyweight getClusterTree(Subject subject, int groupId);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
index 6e40bb5..81504f7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
@@ -28,11 +28,16 @@ import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
/**
- * @author Jay Shaughnessy
+ * @author Jay Shaughnessy
*/
@Remote
public interface ResourceGroupManagerRemote {
+ /**
+ * @param subject
+ * @param groupId
+ * @param resourceIds
+ */
void addResourcesToGroup(Subject subject, int groupId, int[] resourceIds);
/**
@@ -43,24 +48,75 @@ public interface ResourceGroupManagerRemote {
*/
ResourceGroup createResourceGroup(Subject subject, ResourceGroup resourceGroup);
+ /**
+ * @param subject
+ * @param groupId
+ * @throws ResourceGroupNotFoundException
+ * @throws ResourceGroupDeleteException
+ */
void deleteResourceGroup(Subject subject, int groupId) throws ResourceGroupNotFoundException,
ResourceGroupDeleteException;
+ /**
+ * @param subject
+ * @param groupIds
+ * @throws ResourceGroupNotFoundException
+ * @throws ResourceGroupDeleteException
+ */
void deleteResourceGroups(Subject subject, int[] groupIds) throws ResourceGroupNotFoundException,
ResourceGroupDeleteException;
- ResourceGroup getResourceGroup(Subject subject, int groupId);
+ /**
+ * @param subject
+ * @param groupId
+ * @return the resource group
+ * @throws ResourceGroupNotFoundException
+ */
+ ResourceGroup getResourceGroup(Subject subject, int groupId) throws ResourceGroupNotFoundException;
- ResourceGroupComposite getResourceGroupComposite(Subject subject, int groupId);
+ /**
+ * @param subject
+ * @param groupId
+ * @return the composite
+ * @throws ResourceGroupNotFoundException
+ */
+ ResourceGroupComposite getResourceGroupComposite(Subject subject, int groupId)
+ throws ResourceGroupNotFoundException;
+ /**
+ * @param subject
+ * @param roleId
+ * @param pc
+ * @return not null
+ */
PageList<ResourceGroup> findResourceGroupsForRole(Subject subject, int roleId, PageControl pc);
+ /**
+ * @param subject
+ * @param groupId
+ * @param resourceIds
+ */
void removeResourcesFromGroup(Subject subject, int groupId, int[] resourceIds);
+ /**
+ * @param subject
+ * @param groupId
+ * @param isRecursive
+ */
void setRecursive(Subject subject, int groupId, boolean isRecursive);
+ /**
+ * @param subject
+ * @param newResourceGroup
+ * @return the updated resource group
+ */
ResourceGroup updateResourceGroup(Subject subject, ResourceGroup newResourceGroup);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<ResourceGroup> findResourceGroupsByCriteria(Subject subject, ResourceGroupCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
index b1d0d1d..69f2862 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
@@ -21,53 +21,32 @@ package org.rhq.enterprise.server.resource.group.definition;
import javax.ejb.Local;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
import org.rhq.core.domain.resource.group.GroupDefinition;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.resource.group.ResourceGroupDeleteException;
-import org.rhq.enterprise.server.resource.group.ResourceGroupUpdateException;
-import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionAlreadyExistsException;
-import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionCreateException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionDeleteException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionNotFoundException;
-import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionUpdateException;
import org.rhq.enterprise.server.resource.group.definition.framework.ExpressionEvaluator;
-import org.rhq.core.domain.resource.group.InvalidExpressionException;
@Local
-public interface GroupDefinitionManagerLocal {
+public interface GroupDefinitionManagerLocal extends GroupDefinitionManagerRemote {
void recalculateDynaGroups(Subject subject);
GroupDefinition getById(int groupDefinitionId) throws GroupDefinitionNotFoundException;
- GroupDefinition createGroupDefinition(Subject subject, GroupDefinition newGroupDefinition)
- throws GroupDefinitionAlreadyExistsException, GroupDefinitionCreateException;
-
- GroupDefinition updateGroupDefinition(Subject subject, GroupDefinition updated)
- throws GroupDefinitionAlreadyExistsException, GroupDefinitionUpdateException, InvalidExpressionException,
- ResourceGroupUpdateException;
-
- void calculateGroupMembership(Subject subject, int groupDefinitionId) throws ResourceGroupDeleteException,
- GroupDefinitionDeleteException, GroupDefinitionNotFoundException, InvalidExpressionException;
-
Integer calculateGroupMembership_helper(Subject subject, int groupDefinitionId, ExpressionEvaluator.Result result)
throws ResourceGroupDeleteException, GroupDefinitionNotFoundException, GroupDefinitionNotFoundException;
PageList<GroupDefinition> getGroupDefinitions(Subject subject, PageControl pc);
- PageList<GroupDefinition> findGroupDefinitionsByCriteria(Subject subject, ResourceGroupDefinitionCriteria criteria);
-
int getGroupDefinitionCount(Subject subject);
int getAutoRecalculationGroupDefinitionCount(Subject subject);
int getDynaGroupCount(Subject subject);
- void removeGroupDefinition(Subject subject, Integer groupDefinitionId) throws GroupDefinitionNotFoundException,
- GroupDefinitionDeleteException;
-
void removeManagedResource_helper(Subject subject, int groupDefinitionId, Integer doomedGroupId)
throws GroupDefinitionDeleteException, GroupDefinitionNotFoundException;
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java
index 96dbefe..3def8ac 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java
@@ -39,15 +39,13 @@ public interface SavedSearchManagerRemote {
*
* @param subject the logged in user requesting the {@link SavedSearch} deletion
* @param savedSearch the primary key of the {@link SavedSearch} to be deleted
+ * @return the SavedSearch id
*
* @throws PermissionException if the user is not authorized to create the {@link SavedSearch}. Only inventory
* managers can create global saved searches. Regular users can only create {@link SavedSearch}es against
* their own accounts.
*/
-
- public int createSavedSearch( //
- Subject subject, //
- SavedSearch savedSearch);
+ public int createSavedSearch(Subject subject, SavedSearch savedSearch);
/**
* Saves all changes to the passed {@link SavedSearch} database, correlating it to the record already
@@ -62,9 +60,7 @@ public interface SavedSearchManagerRemote {
* their own accounts.
*/
- public boolean updateSavedSearch( //
- Subject subject, //
- SavedSearch savedSearch);
+ public boolean updateSavedSearch(Subject subject, SavedSearch savedSearch);
/**
* Deletes the {@link SavedSearch} with the given primary key
@@ -77,9 +73,7 @@ public interface SavedSearchManagerRemote {
* their own accounts.
*/
- public void deleteSavedSearch( //
- Subject subject, //
- int savedSearchId);
+ public void deleteSavedSearch(Subject subject, int savedSearchId);
/**
* Returns the {@link SavedSearch} with the given primary key
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java
index 5bbe514..842e1a9 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java
@@ -31,6 +31,8 @@ import org.rhq.core.domain.sync.ImportConfigurationDefinition;
import org.rhq.core.domain.sync.ImportReport;
/**
+ * Public API for synchronization manager.
+ *
* @author Lukas Krejci
*/
@@ -40,7 +42,7 @@ public interface SynchronizationManagerRemote {
/**
* This exports the configuration data of all supported subsystems in RHQ.
* <p>
- * The returned report contains the data bytes themselves as well as a map of
+ * The returned report contains the data bytes themselves as well as a map of
* messages and notes produced by the different subsystem exporters so that
* the caller of this method is able to determine possible problems of the export
* file without needing to deserialize and read it (the same messages are also included
@@ -49,36 +51,43 @@ public interface SynchronizationManagerRemote {
* The export data is a zipped XML.
* <p>
* The export requires the user to have {@link Permission#MANAGE_INVENTORY} permission.
- *
+ *
* @param subject the logged in user
* @return the export report
*/
ExportReport exportAllSubsystems(Subject subject);
-
+
+ /**
+ * @param subject
+ * @param exportFile
+ * @throws ValidationException
+ */
void validate(Subject subject, byte[] exportFile) throws ValidationException;
/**
* Returns the configuration definition of the import for synchronizer of given type.
* @param synchronizerClass
- * @return
+ * @return null if class not found
*/
ImportConfigurationDefinition getImportConfigurationDefinition(String synchronizerClass);
-
+
/**
* Returns the configuration definitions of all known importers.
- * @return
+ * @return not null
*/
List<ImportConfigurationDefinition> getImportConfigurationDefinitionOfAllSynchronizers();
-
+
/**
* Imports everything from the export file.
- *
+ *
* @param subject the authenticated user
* @param exportFile the contents of the export file
* @param importerConfigurations the configurations of individual importers to be used when importing or null
* if the default configurations should be used for all the importers.
- *
+ *
* @return the report describing the result of the import
+ * @throws ValidationException
+ * @throws ImportException
*/
ImportReport importAllSubsystems(Subject subject, byte[] exportFile,
List<ImportConfiguration> importerConfigurations) throws ValidationException, ImportException;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
index e8b8467..eb0b749 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
@@ -34,24 +34,26 @@ import org.rhq.core.domain.common.composite.SystemSettings;
@Remote
public interface SystemManagerRemote {
/**
- * Provides product information suitable for "About" details.
- *
+ * Provides product information suitable for "About" details.
+ *
* @param subject user making the request
- *
+ *
* @return the product info
*/
ProductInfo getProductInfo(Subject subject);
/**
- * Provides details (such as product version) of the server processing the request. Requires MANAGE_SETTINGS.
- *
+ * Provides details (such as product version) of the server processing the request. Requires MANAGE_SETTINGS.
+ *
* @param subject user making the request
- *
+ *
* @return server details
*/
ServerDetails getServerDetails(Subject subject);
/**
+ * @param subject
+ * @return system config
* @deprecated use {@link #getSystemSettings(Subject)} instead
*/
@Deprecated
@@ -71,6 +73,10 @@ public interface SystemManagerRemote {
SystemSettings getSystemSettings(Subject subject);
/**
+ * @param subject
+ * @param properties
+ * @param skipValidation
+ * @throws Exception
* @deprecated use {@link #setSystemSettings(Subject, SystemSettings)} instead
*/
@Deprecated
@@ -82,6 +88,7 @@ public interface SystemManagerRemote {
*
* @param subject the user who wants to change the settings
* @param settings the new system configuration settings
+ * @throws Exception
*/
void setSystemSettings(Subject subject, SystemSettings settings) throws Exception;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java
index 50ecf5f..06d15dd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java
@@ -24,7 +24,6 @@ package org.rhq.enterprise.server.tagging;
import java.util.Set;
-import javax.ejb.Local;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
@@ -39,26 +38,73 @@ import org.rhq.core.domain.util.PageList;
@Remote
public interface TagManagerRemote {
-
+ /**
+ * @param subject
+ * @param tagCriteria
+ * @return not null
+ */
PageList<Tag> findTagsByCriteria(Subject subject, TagCriteria tagCriteria);
+ /**
+ * @param subject
+ * @param tags
+ * @return the added Tags
+ */
Set<Tag> addTags(Subject subject, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param tags
+ */
void removeTags(Subject subject, Set<Tag> tags);
-
+ /**
+ * @param subject
+ * @param resourceId
+ * @param tags
+ */
void updateResourceTags(Subject subject, int resourceId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param resourceGroupId
+ * @param tags
+ */
void updateResourceGroupTags(Subject subject, int resourceGroupId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param bundleId
+ * @param tags
+ */
void updateBundleTags(Subject subject, int bundleId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param bundleVersionId
+ * @param tags
+ */
void updateBundleVersionTags(Subject subject, int bundleVersionId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param bundleDeploymentId
+ * @param tags
+ */
void updateBundleDeploymentTags(Subject subject, int bundleDeploymentId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param bundleDestinationId
+ * @param tags
+ */
void updateBundleDestinationTags(Subject subject, int bundleDestinationId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param tagCriteria
+ * @return not null
+ */
PageList<TagReportComposite> findTagReportCompositesByCriteria(Subject subject, TagCriteria tagCriteria);
}
10 years, 7 months
[rhq] Branch 'bug/1009945' - modules/enterprise
by John Sanda
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java | 2 ++
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java | 10 +---------
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java | 10 +---------
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java | 10 +---------
4 files changed, 5 insertions(+), 27 deletions(-)
New commits:
commit 4f6c737f874f5a1ecc791b24cae780afd2ad91a8
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Oct 22 11:51:22 2013 -0400
set counters for remaining data when we fail to get index entries for 1 and 6 hr data
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
index dad3f8b..d0812e2 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
@@ -203,6 +203,7 @@ public class Aggregator {
log.warn("Failed to retrieve one hour aggregate index entries for time slice [" +
get6HourTimeSlice() + "]. Some six hour aggregates may not get generated.");
state.getOneHourIndexEntriesArrival().abort();
+ state.setRemaining1HourData(new AtomicInteger(0));
}
}, state.getAggregationTasks());
}
@@ -229,6 +230,7 @@ public class Aggregator {
log.warn("Failed to retrieve 6 hour index entries for time slice " +
state.getTwentyFourHourTimeSlice() + ". Some 24 hour aggregates may not get generated.", t);
state.getSixHourIndexEntriesArrival().abort();
+ state.setRemaining6HourData(new AtomicInteger(0));
}
}, state.getAggregationTasks());
}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java
index 92a89be..7146a92 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java
@@ -66,15 +66,7 @@ public class Compute1HourData implements AsyncFunction<List<ResultSet>, List<Res
insertFutures.add(dao.updateMetricsIndex(MetricsTable.SIX_HOUR, aggregate.getScheduleId(),
sixHourTimeSlice.getMillis()));
}
- ListenableFuture<List<ResultSet>> resultSetFutures = Futures.successfulAsList(insertFutures);
-// return Futures.withFallback(resultSetFutures, new FutureFallback<List<ResultSet>>() {
-// @Override
-// public ListenableFuture<List<ResultSet>> create(Throwable t) throws Exception {
-// log.error("An error occurred while inserting one hour data", t);
-// return Futures.immediateFailedFuture(t);
-// }
-// });
- return resultSetFutures;
+ return Futures.successfulAsList(insertFutures);
} finally {
if (log.isDebugEnabled()) {
log.debug("Finished computing and storing 1 hour data for " + rawDataResultSets.size() +
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java
index 951287c..6274bd3 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java
@@ -6,7 +6,6 @@ import java.util.List;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.FutureFallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.RateLimiter;
@@ -56,14 +55,7 @@ public class Compute24HourData implements AsyncFunction<List<ResultSet>, List<Re
insertFutures.add(dao.insertTwentyFourHourDataAsync(aggregate.getScheduleId(), aggregate.getTimestamp(),
AggregateType.AVG, aggregate.getAvg()));
}
- ListenableFuture<List<ResultSet>> resultSetFutures = Futures.allAsList(insertFutures);
- return Futures.withFallback(resultSetFutures, new FutureFallback<List<ResultSet>>() {
- @Override
- public ListenableFuture<List<ResultSet>> create(Throwable t) throws Exception {
- log.error("An error occurred while inserting 24 hour data", t);
- return Futures.immediateFailedFuture(t);
- }
- });
+ return Futures.successfulAsList(insertFutures);
} finally {
if (log.isDebugEnabled()) {
log.debug("Finished computing and storing 24 hour data for " + sixHourDataResultSets.size() +
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java
index 25e692b..a1efab5 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java
@@ -6,7 +6,6 @@ import java.util.List;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.FutureFallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.RateLimiter;
@@ -63,14 +62,7 @@ public class Compute6HourData implements AsyncFunction<List<ResultSet>, List<Res
insertFutures.add(dao.updateMetricsIndex(MetricsTable.TWENTY_FOUR_HOUR, aggregate.getScheduleId(),
twentyFourHourTimeSlice.getMillis()));
}
- ListenableFuture<List<ResultSet>> resultSetFutures = Futures.allAsList(insertFutures);
- return Futures.withFallback(resultSetFutures, new FutureFallback<List<ResultSet>>() {
- @Override
- public ListenableFuture<List<ResultSet>> create(Throwable t) throws Exception {
- log.error("An error occurred while inserting six hour data", t);
- return Futures.immediateFailedFuture(t);
- }
- });
+ return Futures.successfulAsList(insertFutures);
} finally {
if (log.isDebugEnabled()) {
log.debug("Finished computing and storing 6 hour data for " + oneHourDataResultSets.size() +
10 years, 7 months
[rhq] modules/enterprise
by Jay Shaughnessy
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java | 49 +++++++++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java | 10 +-
2 files changed, 50 insertions(+), 9 deletions(-)
New commits:
commit 73b08cfa8377605b1573396a38ebd322490ab26a
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Oct 22 10:48:41 2013 -0400
Test code work for OperationManagerBeanTest
When unscheduling an operation protect against the operation having
already completed.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
index e68b824..9bd6871 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
@@ -381,11 +381,26 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
ensureControlPermission(subject, resource);
- ResourceOperationSchedule schedule = getResourceOperationSchedule(subject, jobId);
+ // while unscheduling, be aware that the job could complete at any time
+ ResourceOperationSchedule schedule = null;
+ try {
+ schedule = getResourceOperationSchedule(subject, jobId);
+ } catch (SchedulerException e) {
+ // The schedule must have completed, so ignore the request to unschedule it.
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Assuming job [" + jobId
+ + "] has completed, ignoring request to unschedule resource operation for resource ["
+ + resourceId + "]");
+ }
+ return;
+ }
+
if (schedule.getParameters() != null) {
Integer configId = schedule.getParameters().getId();
Configuration parameters = configurationManager.getConfigurationById(configId);
- entityManager.remove(parameters);
+ if (null != parameters) {
+ entityManager.remove(parameters);
+ }
}
ScheduleJobId jobIdObject = new ScheduleJobId(jobId);
@@ -413,11 +428,26 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
getCompatibleGroupIfAuthorized(subject, resourceGroupId); // just want to do this to check for permissions
- GroupOperationSchedule schedule = getGroupOperationSchedule(subject, jobId);
+ // while unscheduling, be aware that the job could complete at any time
+ GroupOperationSchedule schedule = null;
+ try {
+ schedule = getGroupOperationSchedule(subject, jobId);
+ } catch (SchedulerException e) {
+ // The schedule must have completed, so ignore the request to unschedule it.
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Assuming job [" + jobId
+ + "] has completed, ignoring request to unschedule group operation for group ["
+ + resourceGroupId + "]");
+ }
+ return;
+ }
+
if (schedule.getParameters() != null) {
Integer configId = schedule.getParameters().getId();
Configuration parameters = configurationManager.getConfigurationById(configId);
- entityManager.remove(parameters);
+ if (null != parameters) {
+ entityManager.remove(parameters);
+ }
}
ScheduleJobId jobIdObject = new ScheduleJobId(jobId);
@@ -534,6 +564,11 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
}
public ResourceOperationSchedule getResourceOperationSchedule(Subject whoami, JobDetail jobDetail) {
+ // if the jobDetail is null assume the job is no longer scheduled
+ if (null == jobDetail) {
+ return null;
+ }
+
JobDataMap jobDataMap = jobDetail.getJobDataMap();
String jobName = jobDetail.getName();
@@ -606,6 +641,7 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
public ResourceOperationSchedule getResourceOperationSchedule(Subject subject, String jobId)
throws SchedulerException {
+
JobId jobIdObject = new JobId(jobId);
JobDetail jobDetail = scheduler.getJobDetail(jobIdObject.getJobName(), jobIdObject.getJobGroup());
ResourceOperationSchedule resourceOperationSchedule = getResourceOperationSchedule(subject, jobDetail);
@@ -616,6 +652,11 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
}
public GroupOperationSchedule getGroupOperationSchedule(Subject subject, JobDetail jobDetail) {
+ // if the jobDetail is null assume the job is no longer scheduled
+ if (null == jobDetail) {
+ return null;
+ }
+
JobDataMap jobDataMap = jobDetail.getJobDataMap();
String description = jobDetail.getDescription();
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
index 1dc0f03..bfb8ca1 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
@@ -294,7 +294,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
ResourceGroupDeleteException {
ResourceGroup group = getResourceGroupById(subject, groupId, null);
- // create a copy of the collection in order to avoid ConcurrentModificationException
+ // create a copy of the collection in order to avoid ConcurrentModificationException
// (as a consequence of iterating and modifying it at once).
Set<Role> roles = new HashSet<Role>(group.getRoles());
for (Role doomedRoleRelationship : roles) {
@@ -337,7 +337,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
* entity anymore because there are now two cases where group constructs need to be destroyed:
*
* 1) compatible group deletion - a group is deleted, all history removed, entity is gone from the system
- * 2) dynagroup recomputation - a group definition is recalculation, a compatible group turns into a mixed
+ * 2) dynagroup recomputation - a group definition is recalculated, a compatible group turns into a mixed
* group, compatible constructs need to be removed, but the entity survives
*
* For now, this implementation should suffice for -- https://bugzilla.redhat.com/show_bug.cgi?id=535671
@@ -1431,7 +1431,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
Query query = entityManager.createQuery(queryString);
query.setParameter("groupId", groupId);
- List<Object[]> results = (List<Object[]>) query.getResultList();
+ List<Object[]> results = query.getResultList();
if (results.size() == 0) {
throw new ResourceGroupNotFoundException(groupId);
@@ -1558,7 +1558,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
+ " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' ) AS explicitCount," // explicit member count
+ " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 0 ) AS explicitDown," // explicit member count with DOWN avail
+ " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 2 ) AS explicitUnknown," // explicit member count with UNKNOWN avail
- + " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 3 ) AS explicitDisabled," // explicit member count with DISABLED avail
+ + " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 3 ) AS explicitDisabled," // explicit member count with DISABLED avail
+ " ( SELECT COUNT(avail) FROM %alias%.implicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' ) AS implicitCount," // implicit member count
+ " ( SELECT COUNT(avail) FROM %alias%.implicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 0 ) AS implicitDown," // implicit member count with DOWN avail
+ " ( SELECT COUNT(avail) FROM %alias%.implicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 2 ) AS implicitUnknown," // implicit member count with UNKNOWN avail
@@ -1572,7 +1572,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
+ " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' ) AS explicitCount," // explicit member count
+ " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 0 ) AS explicitDown," // explicit member count with DOWN avail
+ " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 2 ) AS explicitUnknown," // explicit member count with UNKNOWN avail
- + " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 3 ) AS explicitDisabled," // explicit member count with DISABLED avail
+ + " ( SELECT COUNT(avail) FROM %alias%.explicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 3 ) AS explicitDisabled," // explicit member count with DISABLED avail
+ " ( SELECT COUNT(avail) FROM %alias%.implicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' ) AS implicitCount," // implicit member count
+ " ( SELECT COUNT(avail) FROM %alias%.implicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 0 ) AS implicitDown," // implicit member count with DOWN avail
+ " ( SELECT COUNT(avail) FROM %alias%.implicitResources res JOIN res.currentAvailability avail WHERE res.inventoryStatus = 'COMMITTED' AND avail.availabilityType = 2 ) AS implicitUnknown," // implicit member count with UNKNOWN avail
10 years, 7 months
[rhq] Branch 'bug/1009945' - modules/enterprise
by John Sanda
modules/enterprise/server/server-metrics/pom.xml | 3
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java | 21 -
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsPerfTests.java | 191 ++++++++++
3 files changed, 213 insertions(+), 2 deletions(-)
New commits:
commit 4da4c641bd2b54152699c611b0b919bf0814aa57
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Oct 22 07:30:32 2013 -0400
fix logic for determining if aggregation has finished
We check the respective counters to see if raw, 1 hr, and 6 hr data aggregation
has finished. Prior to checking the counters though, we need to make sure that
they have been initialized. They do not get initialized until the respective
index entries arrive. I have refactored the logic into a new method,
isAggregationFinished. It first waits for the arrival of all the index entries
and then checks the counters.
diff --git a/modules/enterprise/server/server-metrics/pom.xml b/modules/enterprise/server/server-metrics/pom.xml
index 0b4c141..122d7a5 100644
--- a/modules/enterprise/server/server-metrics/pom.xml
+++ b/modules/enterprise/server/server-metrics/pom.xml
@@ -157,6 +157,9 @@
<rhq.storage.cluster.dir>${rhq.storage.cluster.dir}</rhq.storage.cluster.dir>
<rhq.storage.cluster.deploy>${deployCluster}</rhq.storage.cluster.deploy>
</systemPropertyVariables>
+ <excludes>
+ <exclude>**/MetricsPerfTests.java</exclude>
+ </excludes>
</configuration>
</plugin>
</plugins>
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
index 1012fa4..dad3f8b 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
@@ -308,8 +308,7 @@ public class Aggregator {
}
}
- while (remainingIndexEntries.get() > 0 || state.getRemaining1HourData().get() > 0 ||
- state.getRemaining6HourData().get() > 0) {
+ while (!isAggregationFinished()) {
Thread.sleep(50);
}
log.debug("Aggregation is done. There are " + remainingIndexEntries.get() + " remaining index entries");
@@ -331,6 +330,24 @@ public class Aggregator {
}
}
+ private boolean isAggregationFinished() throws InterruptedException {
+ try {
+ rawDataIndexEntriesArrival.await();
+ } catch (AbortedException e) {
+ }
+ try {
+ state.getOneHourIndexEntriesArrival().await();
+ } catch (AbortedException e) {
+
+ }
+ try {
+ state.getSixHourIndexEntriesArrival().await();
+ } catch (AbortedException e) {
+ }
+ return state.getRemainingRawData().get() <= 0 && state.getRemaining1HourData().get() <= 0 &&
+ state.getRemaining6HourData().get() <= 0 && remainingIndexEntries.get() <= 0;
+ }
+
private void deleteIndexEntries(final MetricsTable table) {
DateTime time;
switch (table) {
diff --git a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsPerfTests.java b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsPerfTests.java
new file mode 100644
index 0000000..6e93fec
--- /dev/null
+++ b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsPerfTests.java
@@ -0,0 +1,191 @@
+package org.rhq.server.metrics;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CountDownLatch;
+
+import com.datastax.driver.core.ResultSet;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.RateLimiter;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.joda.time.DateTime;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.measurement.MeasurementDataNumeric;
+import org.rhq.server.metrics.domain.AggregateNumericMetric;
+import org.rhq.server.metrics.domain.RawNumericMetric;
+import org.rhq.server.metrics.domain.RawNumericMetricMapper;
+
+/**
+ * @author John Sanda
+ */
+public class MetricsPerfTests extends MetricsTest {
+
+ private class MetricsServerStub extends MetricsServer {
+
+ DateTime currentHour;
+
+ @Override
+ public DateTime currentHour() {
+ return currentHour;
+ }
+
+ public void setCurrentHour(DateTime currentHour) {
+ this.currentHour = currentHour;
+ }
+ }
+
+ private class DateTimeServiceStub extends DateTimeService {
+
+ DateTime currentHour;
+
+ long startTime;
+
+ public DateTimeServiceStub(DateTime currentHour, long startTime) {
+ this.currentHour = currentHour;
+ this.startTime = startTime;
+ }
+
+ @Override
+ public DateTime now() {
+ return currentHour.plus(System.currentTimeMillis() - startTime);
+ }
+
+ @Override
+ public long nowInMillis() {
+ return now().getMillis();
+ }
+ }
+
+ private final Log log = LogFactory.getLog(MetricsPerfTests.class);
+
+ private MetricsServerStub metricsServer;
+
+ private final int NUM_SCHEDULES = 1000;
+
+ private RateLimiter writePermits;
+ private RateLimiter readPermits;
+
+ @BeforeClass
+ public void setupClass() throws Exception {
+ purgeDB();
+ log.info("Sleeping while table truncation completes...");
+ Thread.sleep(3000);
+ metricsServer = new MetricsServerStub();
+ metricsServer.setConfiguration(configuration);
+ metricsServer.setDAO(dao);
+ metricsServer.setDateTimeService(dateTimeService);
+ writePermits = metricsServer.getWritePermits();
+ readPermits = metricsServer.getReadPermits();
+ }
+
+ private void resetRateLimits() {
+ metricsServer.setWritePermits(writePermits);
+ metricsServer.setReadPermits(readPermits);
+ }
+
+ @Test
+ public void insertRawData() throws Exception {
+ Random random = new Random();
+ DateTime currentHour = hour(3);
+ metricsServer.setWritePermits(RateLimiter.create(3500));
+ metricsServer.setCurrentHour(currentHour);
+ Set<MeasurementDataNumeric> data = new HashSet<MeasurementDataNumeric>();
+ for (int i = 0; i < NUM_SCHEDULES; ++i) {
+ DateTime time = currentHour;
+ for (int j = 0; j < 120; ++j) {
+ data.add(new MeasurementDataNumeric(time.getMillis(), i, random.nextDouble()));
+ time = time.plusSeconds(30);
+ }
+ }
+ WaitForRawInserts waitForRawInserts = new WaitForRawInserts(data.size());
+ metricsServer.addNumericData(data, waitForRawInserts);
+ waitForRawInserts.await("Failed to add raw data");
+ }
+
+ //@Test(dependsOnMethods = "insertRawData")
+ public void queryRawDataAsync() throws Exception {
+ RateLimiter readPermits = RateLimiter.create(50);
+
+ log.info("Running queryRawDataAsync");
+ long start = System.currentTimeMillis();
+
+ DateTime startTime = hour(3).minusHours(1).minusSeconds(1);
+ DateTime endTime = hour(3);
+ final CountDownLatch rawDataArrival = new CountDownLatch(100);
+ final RawNumericMetricMapper mapper = new RawNumericMetricMapper();
+ final Map<Integer, List<RawNumericMetric>> rawDataMap =
+ new ConcurrentHashMap<Integer, List<RawNumericMetric>>(100);
+
+ for (int i = 0; i < NUM_SCHEDULES; ++i) {
+ final int scheduleId = i;
+// readPermits.acquire();
+ StorageResultSetFuture rawDataFuture = dao.findRawMetricsAsync(scheduleId, startTime.getMillis(),
+ endTime.getMillis());
+ Futures.addCallback(rawDataFuture, new FutureCallback<ResultSet>() {
+ @Override
+ public void onSuccess(ResultSet result) {
+ List<RawNumericMetric> rawData = mapper.mapAll(result);
+ rawDataMap.put(scheduleId, rawData);
+ rawDataArrival.countDown();
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ log.warn("Failed to retrieve raw data for schedule id " + scheduleId, t);
+ }
+ });
+ }
+
+ rawDataArrival.await();
+ log.info("Finished raw data aysnc query in " + (System.currentTimeMillis() - start) + " ms");
+ }
+
+ //@Test(dependsOnMethods = "insertRawData")
+ public void queryDataSync() throws Exception {
+ log.info("Running queryDataSync");
+
+ long start = System.currentTimeMillis();
+ DateTime startTime = hour(3).minusHours(1).minusSeconds(1);
+ DateTime endTime = hour(3);
+ RawNumericMetricMapper mapper = new RawNumericMetricMapper();
+ Map<Integer, List<RawNumericMetric>> rawDataMp = new HashMap<Integer, List<RawNumericMetric>>(100);
+
+ for (int i = 0; i < NUM_SCHEDULES; ++i) {
+ ResultSet resultSet = dao.findRawMetricsSync(i, startTime.getMillis(), endTime.getMillis());
+ rawDataMp.put(i, mapper.mapAll(resultSet));
+ }
+
+ log.info("Finished raw data sync query in " + (System.currentTimeMillis() - start) + " ms");
+ }
+
+ @Test(dependsOnMethods = "insertRawData")
+ public void runAggregation() {
+ log.info("Running aggregation");
+
+ resetRateLimits();
+
+ long start = System.currentTimeMillis();
+ DateTime currentHour = hour(4);
+ metricsServer.setCurrentHour(currentHour);
+ metricsServer.setAggregationBatchSize(250);
+ metricsServer.setUseAsyncAggregation(false);
+ metricsServer.setDateTimeService(new DateTimeServiceStub(hour(4), start));
+ Collection<AggregateNumericMetric> oneHourData =
+ (Collection<AggregateNumericMetric>) metricsServer.calculateAggregates();
+
+ log.info("Finished computing " + oneHourData.size() + " one hour aggregates in " +
+ (System.currentTimeMillis() - start) + " ms");
+ }
+
+}
10 years, 7 months
[rhq] Branch 'bug/1009945' - 58 commits - .classpath etc/samples modules/core modules/enterprise modules/helpers modules/plugins .settings/org.eclipse.jdt.ui.prefs
by John Sanda
.classpath | 2
.settings/org.eclipse.jdt.ui.prefs | 236 ++---
etc/samples/provisioning/sample-bundle/src/main/bundle/deploy.xml | 1
modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/inventory/ResourceFactoryServerService.java | 45 -
modules/core/dbutils/pom.xml | 2
modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java | 88 ++
modules/core/dbutils/src/main/scripts/dbsetup/sysconfig-data.xml | 5
modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml | 3
modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java | 26
modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java | 5
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java | 1
modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java | 17
modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java | 149 ++-
modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java | 6
modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java | 12
modules/core/domain/src/main/java/org/rhq/core/domain/resource/CreateResourceHistory.java | 28
modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java | 5
modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java | 3
modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java | 10
modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java | 9
modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java | 8
modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java | 2
modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentDiscoveryRunner.java | 62 -
modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentManager.java | 59 -
modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.conf | 4
modules/enterprise/agent/src/etc/rhq-agent-env.bat | 36
modules/enterprise/agent/src/etc/rhq-agent-env.sh | 28
modules/enterprise/agent/src/etc/rhq-agent-wrapper.bat | 4
modules/enterprise/agent/src/etc/rhq-agent.bat | 51 -
modules/enterprise/agent/src/etc/rhq-agent.sh | 51 -
modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentUpdateThread.java | 14
modules/enterprise/binding/src/main/java/org/rhq/bindings/output/TabularWriter.java | 9
modules/enterprise/gui/agentupdate-war/src/main/java/org/rhq/enterprise/gui/agentupdate/AgentUpdateServlet.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/LoginView.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/admin/storage/StorageNodeAdminView.java | 24
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/alert/AlertFormatUtility.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/AboutModalWindow.java | 135 +--
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/form/DurationItem.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/dashboard/AutoRefreshUtil.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/drift/DriftDefinitionsView.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/help/HelpView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/D3GroupGraphListView.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/ResourceTitleBar.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/AddToDashboardComponent.java | 16
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java | 12
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsViewDataSource.java | 117 ++
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/BundleDistributionFileUploadServlet.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/LdapGWTServiceImpl.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/SystemGWTServiceImpl.java | 2
modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties | 9
modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties | 9
modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties | 9
modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties | 9
modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties | 13
modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties | 9
modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties | 9
modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties | 9
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java | 5
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/ContextUtils.java | 4
modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations-plain.xhtml | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations.xhtml | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/timeline.xhtml | 2
modules/enterprise/gui/rest-examples-war/src/main/webapp/index.html | 4
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat | 70 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.sh | 59 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat | 56 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.sh | 56 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat | 54 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.sh | 48 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat | 55 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat | 54 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.sh | 59 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.bat | 5
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.sh | 7
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server-console.bat | 5
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.bat | 5
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh | 7
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.bat | 5
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.sh | 7
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage.bat | 5
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl | 61 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat | 59 -
modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.conf | 4
modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.conf | 4
modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml | 19
modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy | 1
modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java | 7
modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java | 2
modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerProperties.java | 13
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java | 92 ++
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java | 407 ++++------
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java | 52 +
modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml | 14
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java | 36
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java | 48 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java | 31
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java | 24
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java | 48 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java | 22
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java | 59 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java | 168 +++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java | 125 +--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java | 11
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java | 88 +-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java | 32
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java | 58 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java | 30
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java | 10
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java | 18
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java | 41 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java | 33
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java | 29
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java | 18
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java | 36
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java | 22
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java | 5
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java | 22
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java | 19
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java | 12
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java | 52 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java | 23
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java | 21
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java | 29
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java | 25
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java | 53 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java | 27
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java | 41 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java | 39
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java | 60 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java | 69 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java | 32
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java | 69 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java | 25
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java | 23
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/LdapGroupManagerBean.java | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java | 62 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java | 23
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ContentHandlerBean.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java | 14
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java | 4
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java | 23
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java | 27
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/exporters/SystemSettingsExporter.java | 7
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/importers/SystemSettingsImporter.java | 16
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerBean.java | 285 +++++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java | 39
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java | 22
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java | 52 +
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java | 25
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsImporterTest.java | 47 -
modules/enterprise/server/plugins/alert-operations/pom.xml | 2
modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/RHQControl.java | 94 +-
modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java | 12
modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Start.java | 15
modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Stop.java | 1
modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java | 28
modules/helpers/bundleGen/src/main/resources/deployMain.ftl | 4
modules/plugins/OpenShift-support/pom.xml | 180 ++++
modules/plugins/OpenShift-support/src/main/java/org/rhq/modules/plugins/openshift/OpenshiftComponent.java | 110 ++
modules/plugins/OpenShift-support/src/main/java/org/rhq/modules/plugins/openshift/OpenshiftDiscovery.java | 73 +
modules/plugins/OpenShift-support/src/main/resources/META-INF/rhq-plugin.xml | 27
modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml | 4
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DeploymentComponent.java | 2
modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml | 8
modules/plugins/pom.xml | 1
modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeComponent.java | 15
modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeConfigDelegate.java | 20
198 files changed, 3773 insertions(+), 1967 deletions(-)
New commits:
commit 77a4c491539f1fa43a9738f5a4eb207dee6f82ef
Merge: bc95a3d 2c071f6
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Oct 21 22:01:58 2013 -0400
Merge branch 'master' into bug/1009945
commit 2c071f6ae28624efaa357c7156aefd6d11b93275
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Oct 21 16:07:23 2013 -0400
set execute perms on scripts in bin/internal directory
diff --git a/modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy b/modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy
index 7cdbf9e..f2404ae 100644
--- a/modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy
+++ b/modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy
@@ -137,6 +137,7 @@ def prepareAdditionalStorageInstallations() {
}
log.info "Updating permissions in $basedir/bin"
ant.chmod(dir: "$basedir/bin", perm: "ug+x", includes: "*.sh,rhqctl", verbose: true)
+ ant.chmod(dir: "$basedir/bin/internal", perm: "ug+x", includes: "*.sh,rhqctl", verbose: true)
createRhqctlPropertiesFile(basedir)
createStoragePropertiesFile(basedir, nodeId)
commit 2443d109e9823a31d72ef315562bc8a83bc27001
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Oct 21 18:19:00 2013 -0400
Test code work for OperationManagerBeanTest
- Add some null protection
- Shorten initial sleep time when waiting for a group resource operation history
- handle case where operation history is deleted before it is detected by the group
operation invoker.
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
index d9b03ef..b572ca9 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
@@ -79,7 +79,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class OperationManagerBeanTest extends AbstractEJB3Test {
private static final boolean ENABLE_TESTS = true;
- private static final String PREFIX = OperationManagerBeanTest.class.getSimpleName();
+ private static final String PREFIX = OperationManagerBeanTest.class.getSimpleName() + "_";
private ConfigurationManagerLocal configurationManager;
private OperationManagerLocal operationManager;
@@ -132,8 +132,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
try {
deleteNewResource(newResource);
} finally {
- unprepareForTestAgents();
unprepareScheduler();
+ unprepareForTestAgents();
}
}
@@ -610,10 +610,11 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(SECONDS.toMillis(5));
results = operationManager.findCompletedGroupOperationHistories(overlord(), newGroup.getId(),
PageControl.getUnlimitedInstance());
- testOpComplete = results != null && results.size() == 1;
+ testOpComplete = !results.isEmpty();
} while (!testOpComplete && (nanoTime() - start) < MINUTES.toNanos(2));
assert testOpComplete;
+ assertEquals(1, results.size());
GroupOperationHistory history = results.get(0);
assert history.getId() > 0 : history;
assert history.getJobId() != null : history;
@@ -1974,20 +1975,30 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
em = getEntityManager();
+ ResourceGroup group = null;
Resource res = em.find(Resource.class, resource.getId());
- ResourceGroup group = res.getExplicitGroups().iterator().next();
-
+ if (null != res) {
+ if (res.getExplicitGroups().iterator().hasNext()) {
+ group = res.getExplicitGroups().iterator().next();
+ }
+ }
getTransactionManager().commit();
- // then invoke bulk delete on the resource to remove any dependencies not defined in the hibernate entity model
- // perform in-band and out-of-band work in quick succession
- List<Integer> deletedIds = resourceManager.uninventoryResource(overlord(), resource.getId());
- for (Integer deletedResourceId : deletedIds) {
- resourceManager.uninventoryResourceAsyncWork(overlord(), deletedResourceId);
+ Subject overlord = overlord();
+
+ // delete the group if necessary
+ if (null != group) {
+ resourceGroupManager.deleteResourceGroup(overlord, group.getId());
}
- // then kill the group via the RG manager, it also handles cleanup of non hibernate model info
- resourceGroupManager.deleteResourceGroup(overlord(), group.getId());
+ // invoke bulk delete on the resource to remove any dependencies not defined in the hibernate entity model
+ // perform in-band and out-of-band work in quick succession
+ if (null != res) {
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, res.getId());
+ for (Integer deletedResourceId : deletedIds) {
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
+ }
+ }
// now dispose of other hibernate entities
getTransactionManager().begin();
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
index 0f3eaac..5dbea68 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
@@ -137,7 +137,7 @@ public class GroupOperationJob extends OperationJob {
ResourceOperationSchedule resourceSchedule = createScheduleForResource(schedule, jobDetail.getGroup(),
user, nextResourceToOperateOn);
- // crate the resource-level history entity for the newly created non-quartz schedule entity
+ // create the resource-level history entity for the newly created non-quartz schedule entity
// this method also does the persisting
ResourceOperationHistory resourceHistory = createOperationHistory(resourceSchedule.getJobName(),
resourceSchedule.getJobGroup(), resourceSchedule, groupHistory, operationManager);
@@ -171,11 +171,25 @@ public class GroupOperationJob extends OperationJob {
invokeOperationOnResource(composite, operationManager);
int resourceHistoryId = composite.history.getId();
- OperationHistory updatedOperationHistory;
+ OperationHistory updatedOperationHistory = null;
+ long sleep = 1000L; // quick sleep for fast ops, then slow down
+ long maxSleep = 5000L;
do {
- Thread.sleep(5000);
- updatedOperationHistory = operationManager.getOperationHistoryByHistoryId(
- getUserWithSession(user, true), resourceHistoryId);
+ Thread.sleep(sleep);
+ sleep = (sleep == maxSleep) ? sleep : sleep + 1000L;
+
+ // it's unlikely but possible that a client program could actually query for, process, and
+ // delete the history before this code gets a chance to run. If the record is gone just
+ // assume things were handled externally.
+ try {
+ updatedOperationHistory = operationManager.getOperationHistoryByHistoryId(
+ getUserWithSession(user, true), resourceHistoryId);
+ } catch (IllegalArgumentException e) {
+ if (log.isDebugEnabled()) {
+ log.debug("Failed to find operation history", e);
+ }
+ break;
+ }
// if the duration was ridiculously long, let's break out of here. this will rarely
// be triggered because our operation manager will timeout long running operations for us
@@ -189,7 +203,8 @@ public class GroupOperationJob extends OperationJob {
} while (updatedOperationHistory.getStatus() == OperationRequestStatus.INPROGRESS);
// halt the rest if we got a failure and were told not to go on
- if ((updatedOperationHistory.getStatus() != OperationRequestStatus.SUCCESS)
+ if (null != updatedOperationHistory
+ && (updatedOperationHistory.getStatus() != OperationRequestStatus.SUCCESS)
&& schedule.isHaltOnFailure()) {
hadFailure = true;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
index 6f7b955..e68b824 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
@@ -232,7 +232,8 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
ensureControlPermission(subject, resource);
- OperationDefinition opDef = validateOperationNameAndParameters(resource.getResourceType(), operationName, parameters);
+ OperationDefinition opDef = validateOperationNameAndParameters(resource.getResourceType(), operationName,
+ parameters);
String uniqueJobId = createUniqueJobName(resource, operationName);
@@ -289,7 +290,7 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
// we need a copy to avoid constraint violations upon delete
parameters == null ? null : parameters.deepCopy(false), schedule.getResource(), null);
- updateOperationHistory(subject,history);
+ updateOperationHistory(subject, history);
return newSchedule;
}
@@ -701,7 +702,7 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
OperationHistory history = entityManager.find(OperationHistory.class, historyId);
if (history == null) {
- throw new RuntimeException("Cannot get history - it does not exist: " + historyId);
+ throw new IllegalArgumentException("Cannot get history - it does not exist: " + historyId);
}
if (history.getParameters() != null) {
@@ -905,21 +906,28 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
ensureControlPermission(subject, history);
}
-
// The history item may have been created already, so find it in the database and
// set the new state from our input
- if (history.getId()!=0) {
- OperationHistory existingHistoryItem =entityManager.find(OperationHistory.class,history.getId());
+ if (history.getId() != 0) {
+ OperationHistory existingHistoryItem = entityManager.find(OperationHistory.class, history.getId());
+ if (null == existingHistoryItem) {
+ throw new IllegalArgumentException(
+ "Can not update operation history, history record not found. This call creates a new operation history record only if the supplied history argument has id set to 0. ["
+ + history + "]");
+ }
+
existingHistoryItem.setStatus(history.getStatus());
existingHistoryItem.setErrorMessage(history.getErrorMessage());
- if (existingHistoryItem.getStartedTime()==0) {
+ if (existingHistoryItem.getStartedTime() == 0) {
existingHistoryItem.setStartedTime(history.getStartedTime());
}
if (history instanceof ResourceOperationHistory) {
- ((ResourceOperationHistory)existingHistoryItem).setResults(((ResourceOperationHistory) history).getResults());
+ ((ResourceOperationHistory) existingHistoryItem).setResults(((ResourceOperationHistory) history)
+ .getResults());
}
history = existingHistoryItem;
}
+
// we do not cascade add the param config (we probably can add that but), so let's persist it now if needed
Configuration parameters = history.getParameters();
if ((parameters != null) && (parameters.getId() == 0)) {
@@ -2026,8 +2034,8 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
OperationDefinitionCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
- CriteriaQueryRunner<OperationDefinition> queryRunner = new CriteriaQueryRunner<OperationDefinition>(criteria, generator,
- entityManager);
+ CriteriaQueryRunner<OperationDefinition> queryRunner = new CriteriaQueryRunner<OperationDefinition>(criteria,
+ generator, entityManager);
return queryRunner.execute();
}
@@ -2039,8 +2047,8 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
subject.getId());
}
- CriteriaQueryRunner<ResourceOperationHistory> queryRunner = new CriteriaQueryRunner<ResourceOperationHistory>(criteria, generator,
- entityManager);
+ CriteriaQueryRunner<ResourceOperationHistory> queryRunner = new CriteriaQueryRunner<ResourceOperationHistory>(
+ criteria, generator, entityManager);
return queryRunner.execute();
}
@@ -2052,8 +2060,8 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
subject.getId());
}
- CriteriaQueryRunner<GroupOperationHistory> queryRunner = new CriteriaQueryRunner<GroupOperationHistory>(criteria, generator,
- entityManager);
+ CriteriaQueryRunner<GroupOperationHistory> queryRunner = new CriteriaQueryRunner<GroupOperationHistory>(
+ criteria, generator, entityManager);
return queryRunner.execute();
}
@@ -2170,9 +2178,8 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
return trigger;
}
- private OperationDefinition validateOperationNameAndParameters(ResourceType resourceType,
- String operationName,
- Configuration parameters) {
+ private OperationDefinition validateOperationNameAndParameters(ResourceType resourceType, String operationName,
+ Configuration parameters) {
Set<OperationDefinition> operationDefinitions = resourceType.getOperationDefinitions();
OperationDefinition matchingOperationDefinition = null;
for (OperationDefinition operationDefinition : operationDefinitions) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java
index 2d1ea239..9944aca 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java
@@ -72,8 +72,7 @@ public interface OperationManagerLocal {
* scheduled operation
*/
int scheduleResourceOperation(Subject subject, ResourceOperationSchedule schedule);
-
-
+
/**
* Schedules a Resource operation for execution using the cron expression.
*
@@ -102,7 +101,7 @@ public interface OperationManagerLocal {
* 0 11 11 11 11 ? Fire every November 11th at 11:11am.
* </pre>
* @param timeout the number of seconds before this operation will fail due to timeout. 0 for no timeout.
- * @param parameters the names parameters for the operation.
+ * @param parameters the names parameters for the operation.
* @param description user-entered description of the job to be scheduled
*
* @return the information on the new schedule
@@ -229,7 +228,7 @@ public interface OperationManagerLocal {
/**
* Given a Resource operation job's details, this returns a schedule POJO corresponding to that job.
*
- * @param subject
+ * @param subject
* @param jobDetail
*
* @return the object that encapsulates the resource schedule, or null if the specified job is no longer scheduled
@@ -240,7 +239,7 @@ public interface OperationManagerLocal {
/**
* Given a resource job's id, this returns the schedule for that resource job.
*
- * @param subject
+ * @param subject
* @param jobId
*
* @return the object that encapsulates the resource schedule
@@ -252,7 +251,7 @@ public interface OperationManagerLocal {
/**
* Given a group operation job's details, this returns a schedule POJO corresponding to that job.
*
- * @param subject
+ * @param subject
* @param jobDetail
*
* @return the object that encapsulates the group schedule, , or null if the specified job is no longer scheduled
@@ -263,7 +262,7 @@ public interface OperationManagerLocal {
/**
* Given a group job's id, this returns the schedule for that group job.
*
- * @param subject
+ * @param subject
* @param jobId
*
* @return the object that encapsulates the group schedule
@@ -326,26 +325,26 @@ public interface OperationManagerLocal {
* AlertConditionCacheManager using that corresponding group history element.</p>
*
* @param subject the user that the job is executing under
- * @param history the history with the data to be updated
- *
- * @return the updated history
+ * @param history the history with the data to be updated. The history record will be created if id is set to 0.
+ * Otherwise the record must already exist and will be updated.
+ * @return the updated or newly created history
*/
OperationHistory updateOperationHistory(Subject subject, OperationHistory history);
/**
* This is, for all intents and purposes, and internal method. It should be called just after updating any
* OperationHistory element. To date, this includes two places:
- *
+ *
* a) post-processing hook to updateOperationHistory(Subject whoami, OperationHistory history)
* b) embedded inside the logic for checkForTimedOutOperations(Subject)
- *
+ *
* This method will perform the following logic:
- *
+ *
* 1) checks whether the entity corresponding to the passed id is part of a larger GroupOperationHistory
* 2) if #1 is true, it will further check whether that entity was the last element from the group to complete
* 3) if #2 is true, it will perform the necessary logic to moving the associated GroupOperationHistory entity
* to the appropriate termination state
- *
+ *
* @param historyId the integer id of the OperationHistory entity that needs to be checked
*/
void checkForCompletedGroupOperation(int historyId);
@@ -635,8 +634,7 @@ public interface OperationManagerLocal {
* @return resource scheduled operations
* @throws Exception TODO
*/
- List<ResourceOperationSchedule> findScheduledResourceOperations(Subject subject, int resourceId)
- throws Exception;
+ List<ResourceOperationSchedule> findScheduledResourceOperations(Subject subject, int resourceId) throws Exception;
/**
* Returns the definitions of all the operations supported by the given resource.
@@ -665,9 +663,9 @@ public interface OperationManagerLocal {
* @param operationName the actual operation to invoke
* @param delay the number of milliseconds to delay this operation, 0 for immediate start.
* @param repeatInterval the number of milliseconds after completion to repeat this operation. 0 for no repeat.
- * @param repeatCount the number of times to repeat this operation. -1 infinite, 0 for no repeat.
+ * @param repeatCount the number of times to repeat this operation. -1 infinite, 0 for no repeat.
* @param timeout the number of seconds before this operation will fail due to timeout. 0 for no timeout.
- * @param parameters the names parameters for the operation.
+ * @param parameters the names parameters for the operation.
* @param description user-entered description of the job to be scheduled
*
* @return the information on the new schedule
@@ -676,7 +674,7 @@ public interface OperationManagerLocal {
ResourceOperationSchedule scheduleResourceOperation(Subject subject, int resourceId, String operationName,
long delay, long repeatInterval, int repeatCount, int timeout, Configuration parameters, String description)
throws ScheduleException;
-
+
/**
* Schedules an operation for execution on members of the given group using the cron expression.
*
@@ -740,7 +738,8 @@ public interface OperationManagerLocal {
*/
void unscheduleGroupOperation(Subject subject, String jobId, int resourceGroupId) throws UnscheduleException;
- PageList<OperationDefinition> findOperationDefinitionsByCriteria(Subject subject, OperationDefinitionCriteria criteria);
+ PageList<OperationDefinition> findOperationDefinitionsByCriteria(Subject subject,
+ OperationDefinitionCriteria criteria);
PageList<ResourceOperationHistory> findResourceOperationHistoriesByCriteria(Subject subject,
ResourceOperationHistoryCriteria criteria);
commit 5c7499fd0e887f0608ca8e53b8abd7922d9ded85
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Oct 21 17:26:32 2013 -0400
Test code work for OperationManagerBeanTest
- This change mainy affects test code involving operation execution but
is actually a tweak to overlord session handling in general. Ensure that
when operations execute as overlord they use the shared overlord session.
Furthermore, don't let the shared overlord session be invalidated by a call
to logout, only by session expiration.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
index 07da23e..d6b5177 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
@@ -33,20 +33,20 @@ import org.rhq.enterprise.server.util.LookupUtil;
* purpose is to provide session IDs to logged in {@link Subject}s. It will timeout those sessions regardless of any
* container-provided session-timeout mechanism.
* <p>
- * Because this is a very security-sensitive class, any public method requires the caller to
+ * Because this is a very security-sensitive class, any public method requires the caller to
* have the {@link AllowEjbAccessPermission} as any other calls to the EJB layer. This is so that the
* malicious users can't trick the EJB layer into thinking that some users are logged in or log out other
* users.
* <p>
* Also, for security reasons, this class is final so that malicious code can't subclass it and modify its
* behavior.
- *
+ *
* <p>This object is a {@link #getInstance() singleton}.</p>
*/
public final class SessionManager {
-
+
private static final AllowRhqServerInternalsAccessPermission ACCESS_PERMISSION = new AllowRhqServerInternalsAccessPermission();
-
+
/**
* Our source for random session IDs.
*/
@@ -90,7 +90,7 @@ public final class SessionManager {
/**
* Return the singleton object.
- *
+ *
* @return the {@link SessionManager}
*/
public static SessionManager getInstance() {
@@ -188,6 +188,13 @@ public final class SessionManager {
*/
public synchronized void invalidate(int sessionId) {
checkPermission();
+
+ // we currently use a shared session for overlord. don't log it out as it could affect another caller's use
+ // of the overlord user. The session will expire if unused by any caller for the overlord timeout period.
+ if (overlordSubject != null && (overlordSubject.getSessionId() == sessionId)) {
+ return;
+ }
+
_cache.remove(new Integer(sessionId));
// while we are here, let's go through the entire session cache and remove expired sessions
@@ -292,9 +299,10 @@ public final class SessionManager {
return copy;
}
-
+
private static void checkPermission() {
- SecurityManager sm = System.getSecurityManager();
- if (sm != null) sm.checkPermission(ACCESS_PERMISSION);
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ sm.checkPermission(ACCESS_PERMISSION);
}
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
index 194a5f9..97d91ca 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
@@ -302,7 +302,7 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
* @see org.rhq.enterprise.server.auth.SubjectManagerRemote#getSubjectByName(String)
*/
public Subject getSubjectByName(String username) {
- //TODO: this method needs to be modified to require a Subject and probably MANAGE_SECURITY
+ //TODO: this method needs to be modified to require a Subject and probably MANAGE_SECURITY
// permissions to defend against unrestricted access to subjects.
SubjectCriteria c = new SubjectCriteria();
@@ -430,11 +430,11 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
/**This method is applied to Subject instances that may require LDAP auth/authz processing.
* Called from both SLSB and SubjectGWTServiceImpl and:
* -if Subject passed in has Principal(not LDAP account) then we immediately return Subject as no processing needed.
- * -if Subject for LDAP account
- *
+ * -if Subject for LDAP account
+ *
* @param subject Authenticated subject.
* @return same or new Subject returned from LDAP processing.
- * @throws LoginException
+ * @throws LoginException
*/
public Subject processSubjectForLdap(Subject subject, String subjectPassword) throws LoginException {
if (subject != null) {//null check
@@ -481,7 +481,7 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
// We've verified that this user has valid session, and is using ldap. Safe to elevate search here.
PageList<Subject> subjectsLocated = findSubjectsByCriteria(getOverlord(), subjectCriteria);
//if subject variants located then take the first one with a principal otherwise do nothing
- //To defend against the case where they create an account with the same name but not
+ //To defend against the case where they create an account with the same name but not
//case as an rhq sysadmin or higher perms, then make them relogin with same creds entered.
if ((!subjectsLocated.isEmpty())
&& (!subjectsLocated.get(0).getName().equals(subject.getName()))) {//then case insensitive username matches found. Try to use instead.
@@ -530,7 +530,7 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
+ "] with LDAP groups [" + groupNames + "]...");
ldapManager.assignRolesToLdapSubject(subject.getId(), groupNames);
}
- } else {//ldap not configured. Somehow authenticated for LDAP without ldap being configured. Error. Bail
+ } else {//ldap not configured. Somehow authenticated for LDAP without ldap being configured. Error. Bail
throw new LoginException("You are authenticated for LDAP, but LDAP is not configured.");
}
}
@@ -543,7 +543,7 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
*/
public void logout(Subject subject) {
try {
- // make sure the Subject is valid by pairing the name and sessionId
+ // make sure the Subject is valid by pairing the name and sessionId
Subject s = getSubjectByNameAndSessionId(subject.getName(), subject.getSessionId());
sessionManager.invalidate(s.getSessionId());
} catch (Exception e) {
@@ -640,6 +640,12 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
*/
public Subject loginUnauthenticated(String username) throws LoginException {
+ // we currently use a shared session for overlord. ensure we use the shared session if the overlord user is
+ // requested.
+ if ("admin".equals(username)) {
+ return getOverlord();
+ }
+
Subject subject = getSubjectByName(username);
if (subject == null) {
@@ -650,7 +656,7 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
throw new LoginException("User account has been disabled. [" + username + "]");
}
- // make sure we return the Subject returned from this call, which may differ from the one passed in
+ // make sure we return the Subject returned from this call, which may differ from the one passed in
subject = sessionManager.put(subject, 1000L * 60 * 2); // 2mins only
return subject;
}
@@ -699,7 +705,8 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
if (log.isDebugEnabled()) {
log.error("Error deleting owned group " + Arrays.toString(ownedGroupIds), t);
} else {
- log.error("Error deleting owned group " + Arrays.toString(ownedGroupIds) + ": " + t.getMessage());
+ log.error("Error deleting owned group " + Arrays.toString(ownedGroupIds) + ": "
+ + t.getMessage());
}
}
}
@@ -708,7 +715,8 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
SavedSearchCriteria savedSearchCriteria = new SavedSearchCriteria();
savedSearchCriteria.addFilterSubjectId(doomedSubjectId);
savedSearchCriteria.clearPaging();
- PageList<SavedSearch> savedSearches = savedSearchManager.findSavedSearchesByCriteria(subject, savedSearchCriteria);
+ PageList<SavedSearch> savedSearches = savedSearchManager.findSavedSearchesByCriteria(subject,
+ savedSearchCriteria);
for (SavedSearch savedSearch : savedSearches) {
savedSearchManager.deleteSavedSearch(subject, savedSearch.getId());
}
@@ -863,23 +871,23 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
// http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=servers/...
Map<String, String> ldapUserAttributes = ldapManager.findLdapUserDetails(subject.getName());
- String givenName = (ldapUserAttributes.get("givenName") != null) ?
- ldapUserAttributes.get("givenName") : ldapUserAttributes.get("gn");
+ String givenName = (ldapUserAttributes.get("givenName") != null) ? ldapUserAttributes.get("givenName")
+ : ldapUserAttributes.get("gn");
subject.setFirstName(givenName);
- String surname = (ldapUserAttributes.get("sn") != null) ?
- ldapUserAttributes.get("sn") : ldapUserAttributes.get("surname");
+ String surname = (ldapUserAttributes.get("sn") != null) ? ldapUserAttributes.get("sn") : ldapUserAttributes
+ .get("surname");
subject.setLastName(surname);
String telephoneNumber = ldapUserAttributes.get("telephoneNumber");
subject.setPhoneNumber(telephoneNumber);
- String mail = (ldapUserAttributes.get("mail") != null) ?
- ldapUserAttributes.get("mail") : ldapUserAttributes.get("rfc822Mailbox");
+ String mail = (ldapUserAttributes.get("mail") != null) ? ldapUserAttributes.get("mail") : ldapUserAttributes
+ .get("rfc822Mailbox");
subject.setEmailAddress(mail);
- String organizationalUnit = (ldapUserAttributes.get("ou") != null) ?
- ldapUserAttributes.get("ou") : ldapUserAttributes.get("organizationalUnitName");
+ String organizationalUnit = (ldapUserAttributes.get("ou") != null) ? ldapUserAttributes.get("ou")
+ : ldapUserAttributes.get("organizationalUnitName");
subject.setDepartment(organizationalUnit);
return;
commit 686ba01de5b5b11a1c3ae7a8d61bb2130ff87772
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Oct 21 15:02:25 2013 -0400
Bug 1021675 - drift's new and detect all button should change
Fixed
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/drift/DriftDefinitionsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/drift/DriftDefinitionsView.java
index 7555054..be268af 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/drift/DriftDefinitionsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/drift/DriftDefinitionsView.java
@@ -50,8 +50,8 @@ import org.rhq.coregui.client.util.message.Message;
/**
* A list view that displays a paginated table of {@link org.rhq.core.domain.drift.DriftDefinition}s. It has offers various
* options on the list like filtering (maybe) and sorting, add new/delete. Double-click drills down to the carousel view for
- * inspecting drift for the definition. Also, allows an edit view for the def's underlying Config. This view full respects
- * the user's authorization, and will not allow actions on the drift defs unless the user is either the inventory
+ * inspecting drift for the definition. Also, allows an edit view for the def's underlying Config. This view full respects
+ * the user's authorization, and will not allow actions on the drift defs unless the user is either the inventory
* manager or has MANAGE_DRIFT permission on every resource corresponding to the drift defs being operated on.
*
* @author Jay Shaughnessy
@@ -135,7 +135,7 @@ public class DriftDefinitionsView extends TableSection<DriftDefinitionDataSource
TableActionEnablement detectNowEnablement = hasWriteAccess ? TableActionEnablement.SINGLE
: TableActionEnablement.NEVER;
- addTableAction("New", MSG.common_button_new(), null, new TableAction() {
+ addTableAction(MSG.common_button_new(), null, new TableAction() {
public boolean isEnabled(ListGridRecord[] selection) {
return hasWriteAccess;
}
@@ -164,7 +164,7 @@ public class DriftDefinitionsView extends TableSection<DriftDefinitionDataSource
}
});
- addTableAction("DetectNow", MSG.view_drift_button_detectNow(), null, new AbstractTableAction(
+ addTableAction(MSG.view_drift_button_detectNow(), null, new AbstractTableAction(
detectNowEnablement) {
@Override
public boolean isEnabled(ListGridRecord[] selection) {
@@ -247,7 +247,7 @@ public class DriftDefinitionsView extends TableSection<DriftDefinitionDataSource
@Override
public void renderView(ViewPath viewPath) {
// we have three detail views for drift defs, the carousel, the the config editor, and the initial snapshot.
- // Figure out which one we're dealing with. The default is the carousel.
+ // Figure out which one we're dealing with. The default is the carousel.
this.detailsView = DetailView.Carousel;
if (!viewPath.isEnd() && !viewPath.isNextEnd()) {
commit 08fe551f9040218f73dda72b35e0823cc09cdcec
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Mon Oct 21 11:13:44 2013 -0700
[BZ 961366] - Error on clicking 'Get Live Value' button for a metric on resource->Monitoring->Tables tab. Now Adding Live Values to metrics screen after discussing design with UXD. Removed Live values button as live values have replaced last values.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java
index 1172eb7..61797df 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsTableView.java
@@ -109,18 +109,6 @@ public class MetricsTableView extends Table<MetricsViewDataSource> implements Re
setListGridFields(fields.toArray(new ListGridField[0]));
if (!rendered) {
- addTableAction(MSG.view_measureTable_getLive(), new TableAction() {
- @Override
- public boolean isEnabled(ListGridRecord[] selection) {
- return true;
- }
-
- @Override
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- refresh();
- }
- });
-
addExtraWidget(addToDashboardComponent, false);
addToDashboardComponent.disableAddToDashboardButton();
metricsTableListGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsViewDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsViewDataSource.java
index 0f89b36..e154727 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsViewDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/MetricsViewDataSource.java
@@ -3,11 +3,14 @@ package org.rhq.coregui.client.inventory.resource.detail.monitoring.table;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException;
+import com.google.gwt.user.client.rpc.InvocationException;
import com.smartgwt.client.data.DSRequest;
import com.smartgwt.client.data.DSResponse;
import com.smartgwt.client.data.Record;
@@ -17,8 +20,10 @@ import com.smartgwt.client.widgets.grid.ListGridRecord;
import org.rhq.core.domain.criteria.Criteria;
import org.rhq.core.domain.measurement.DataType;
+import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementSchedule;
+import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import org.rhq.core.domain.measurement.ui.MetricDisplaySummary;
import org.rhq.core.domain.measurement.ui.MetricDisplayValue;
@@ -28,6 +33,7 @@ import org.rhq.coregui.client.UserSessionManager;
import org.rhq.coregui.client.gwt.GWTServiceLookup;
import org.rhq.coregui.client.util.BrowserUtility;
import org.rhq.coregui.client.util.Log;
+import org.rhq.coregui.client.util.MeasurementConverterClient;
import org.rhq.coregui.client.util.MeasurementUtility;
import org.rhq.coregui.client.util.RPCDataSource;
import org.rhq.coregui.client.util.async.Command;
@@ -52,7 +58,7 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
public static final String FIELD_MIN_VALUE = "min";
public static final String FIELD_MAX_VALUE = "max";
public static final String FIELD_AVG_VALUE = "avg";
- public static final String FIELD_LAST_VALUE = "last";
+ public static final String FIELD_LIVE_VALUE = "live";
public static final String FIELD_METRIC_DEF_ID = "defId";
public static final String FIELD_METRIC_SCHED_ID = "schedId";
public static final String FIELD_METRIC_UNITS = "units";
@@ -61,7 +67,10 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
private final Resource resource;
private List<MetricDisplaySummary> metricDisplaySummaries;
private List<List<MeasurementDataNumericHighLowComposite>> metricsDataList;
+ private Set<MeasurementData> liveMeasurementDataSet;
private int[] definitionArrayIds;
+ private int[] scheduleIds;
+ private HashMap<Integer, MeasurementUnits> scheduleToMeasurementUnitMap = new HashMap<Integer, MeasurementUnits>();
private final MeasurementUserPreferences measurementUserPrefs;
public MetricsViewDataSource(Resource resource) {
@@ -112,7 +121,7 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
avgField.setWidth("15%");
fields.add(avgField);
- ListGridField lastField = new ListGridField(FIELD_LAST_VALUE, MSG.view_resource_monitor_table_last());
+ ListGridField lastField = new ListGridField(FIELD_LIVE_VALUE, MSG.view_resource_monitor_table_last());
lastField.setWidth("15%");
fields.add(lastField);
@@ -143,7 +152,7 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
record.setAttribute(FIELD_MIN_VALUE, getMetricStringValue(from.getMinMetric()));
record.setAttribute(FIELD_MAX_VALUE, getMetricStringValue(from.getMaxMetric()));
record.setAttribute(FIELD_AVG_VALUE, getMetricStringValue(from.getAvgMetric()));
- record.setAttribute(FIELD_LAST_VALUE, getMetricStringValue(from.getLastMetric()));
+ record.setAttribute(FIELD_LIVE_VALUE, buildLiveValue(from));
record.setAttribute(FIELD_METRIC_DEF_ID, from.getDefinitionId());
record.setAttribute(FIELD_METRIC_SCHED_ID, from.getScheduleId());
record.setAttribute(FIELD_METRIC_UNITS, from.getUnits());
@@ -152,12 +161,34 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
return record;
}
+ private String buildLiveValue(MetricDisplaySummary from) {
+ StringBuilder sb = new StringBuilder();
+ for (MeasurementData measurementData : liveMeasurementDataSet) {
+ if (from.getScheduleId() == measurementData.getScheduleId()) {
+ double doubleValue;
+ if (measurementData.getValue() instanceof Number) {
+ doubleValue = ((Number) measurementData.getValue()).doubleValue();
+ } else {
+ doubleValue = Double.parseDouble(measurementData.getValue().toString());
+ }
+
+ String value = MeasurementConverterClient.formatToSignificantPrecision(new double[] { doubleValue },
+ MeasurementUnits.valueOf(from.getUnits()), true)[0];
+
+ sb.append(value);
+
+ break;
+ }
+ }
+
+ return sb.toString();
+ }
+
private String getCsvMetricsForSparkline(int definitionId) {
StringBuilder sb = new StringBuilder();
List<MeasurementDataNumericHighLowComposite> selectedMetricsList = getMeasurementsForMeasurementDefId(definitionId);
- for (int i = 0; i < selectedMetricsList.size(); i++) {
- MeasurementDataNumericHighLowComposite measurementData = selectedMetricsList.get(i);
+ for (MeasurementDataNumericHighLowComposite measurementData : selectedMetricsList) {
if (!Double.isNaN(measurementData.getValue())) {
sb.append((int) measurementData.getValue());
sb.append(",");
@@ -170,15 +201,15 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
// handle the case where we have just installed the server so not much history
// and our date range is set such that only one value returns which the
// sparkline graph will not plot anything, so we need at least 2 values
- if(!sb.toString().contains(",")){
+ if (!sb.toString().contains(",")) {
// append another value just so we have 2 values and it will graph
- return "0,"+sb.toString();
+ return "0," + sb.toString();
}
return sb.toString();
}
- List<MeasurementDataNumericHighLowComposite> getMeasurementsForMeasurementDefId(int definitionId) {
+ private List<MeasurementDataNumericHighLowComposite> getMeasurementsForMeasurementDefId(int definitionId) {
int selectedIndex = 0;
// find the ordinal position as specified when querying the metrics
@@ -209,26 +240,23 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
DataType.MEASUREMENT, null, true, new AsyncCallback<ArrayList<MeasurementSchedule>>() {
@Override
public void onSuccess(ArrayList<MeasurementSchedule> measurementSchedules) {
- int[] scheduleIds = new int[measurementSchedules.size()];
+ scheduleIds = new int[measurementSchedules.size()];
int i = 0;
for (MeasurementSchedule measurementSchedule : measurementSchedules) {
scheduleIds[i++] = measurementSchedule.getId();
}
+ // This latch is the last thing that gets executed after we have executed the
+ // 2 queries in Parallel
final CountDownLatch countDownLatch = CountDownLatch.create(2, new Command() {
@Override
public void execute() {
- response.setData(buildRecords(metricDisplaySummaries));
- processResponse(request.getRequestId(), response);
+ // we needed the ResourceMetrics query and Metric Display Summary
+ // to finish before we can query the live metrics and populate the
+ // result response
+ queryLiveMetrics(request, response);
- new Timer() {
-
- @Override
- public void run() {
- BrowserUtility.graphSparkLines();
- }
- }.schedule(150);
}
});
@@ -245,6 +273,46 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
});
}
+ private void queryLiveMetrics(final DSRequest request, final DSResponse response) {
+
+ // actually go out and ask the agents for the data
+ GWTServiceLookup.getMeasurementDataService(60000).findLiveData(resource.getId(), definitionArrayIds,
+ new AsyncCallback<Set<MeasurementData>>() {
+ @Override
+ public void onSuccess(Set<MeasurementData> result) {
+ if (result == null) {
+ result = new HashSet<MeasurementData>(0);
+ }
+ liveMeasurementDataSet = result;
+ response.setData(buildRecords(metricDisplaySummaries));
+ processResponse(request.getRequestId(), response);
+
+ new Timer() {
+
+ @Override
+ public void run() {
+ BrowserUtility.graphSparkLines();
+ }
+ }.schedule(150);
+ }
+
+ /**
+ * Called when an asynchronous call fails to complete normally. {@link IncompatibleRemoteServiceException}s, {@link
+ * InvocationException}s, or checked exceptions thrown by the service method are examples of the type of failures that
+ * can be passed to this method.
+ * <p/>
+ * <p> If <code>caught</code> is an instance of an {@link IncompatibleRemoteServiceException} the application should
+ * try to get into a state where a browser refresh can be safely done. </p>
+ *
+ * @param caught failure encountered while executing a remote procedure call
+ */
+ @Override
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Cannot load metrics", caught);
+ }
+ });
+ }
+
private void queryMetricDisplaySummaries(int[] scheduleIds, Long startTime, Long endTime,
final CountDownLatch countDownLatch) {
GWTServiceLookup.getMeasurementChartsService().getMetricDisplaySummariesForResource(resource.getId(),
@@ -269,10 +337,19 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
this.metricDisplaySummaries = metricDisplaySummaries;
}
- public void queryResourceMetrics(final Resource resource, Long startTime, Long endTime,
+ public void queryResourceMetrics(final Resource resource, final Long startTime, final Long endTime,
final CountDownLatch countDownLatch) {
Set<MeasurementDefinition> definitions = resource.getResourceType().getMetricDefinitions();
+ // create a mapping of schedules ids to MeasurementUnits
+ for (MeasurementDefinition definition : definitions) {
+ if (null != definition.getSchedules()) {
+ for (MeasurementSchedule schedule : definition.getSchedules()) {
+ scheduleToMeasurementUnitMap.put(schedule.getId(), definition.getUnits());
+ }
+ }
+ }
+
//build id mapping for measurementDefinition instances Ex. Free Memory -> MeasurementDefinition[100071]
final HashMap<String, MeasurementDefinition> measurementDefMap = new HashMap<String, MeasurementDefinition>();
for (MeasurementDefinition definition : definitions) {
@@ -311,4 +388,6 @@ public class MetricsViewDataSource extends RPCDataSource<MetricDisplaySummary, C
});
}
+
}
+
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
index b2666e1..1dd8911 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
@@ -2085,7 +2085,7 @@ view_resource_monitor_graphs_lookupFailed = Failed to find resource for graph
view_resource_monitor_graphs_noneAvailable = No graphs available
view_resource_monitor_schedules_title = Resource Metric Collection Schedules
view_resource_monitor_table_avg = Average
-view_resource_monitor_table_last = Last
+view_resource_monitor_table_last = Live Value
view_resource_monitor_table_max = Maximum
view_resource_monitor_table_min = Minimum
view_resource_title_component_errors_cleanup = After addressing the issue, you will need to delete the message below to clear the 'managed component error' icon from the previous screen.
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
index 52538f1..7a305d8 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
@@ -2101,7 +2101,7 @@ view_resource_monitor_graphs_lookupFailed = NepodaÅilo se nalézt zdroj pro gra
view_resource_monitor_graphs_noneAvailable = Ŝádné grafy nejsou dostupné
view_resource_monitor_schedules_title = Rozvrhy sbÄru metrik pro zdroj
view_resource_monitor_table_avg = PrůmÄr
-view_resource_monitor_table_last = PoslednÃ
+##view_resource_monitor_table_last = Live Value
view_resource_monitor_table_max = Maximum
view_resource_monitor_table_min = Minimum
##view_resource_title_component_errors_cleanup = After addressing the issue, you will need to delete the message below to clear the 'managed component error' icon from the previous screen.
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
index dd6d32e..b4c1424 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
@@ -1938,7 +1938,7 @@ view_resource_monitor_calltime_minimum = Minimum
view_resource_monitor_graphs_noneAvailable = Keine Charts verf\u00FCgbar
view_resource_monitor_schedules_title = Zeitplan f\u00FCr das Sammeln von Metriken
view_resource_monitor_table_avg = Durchschnitt
-view_resource_monitor_table_last = Letzter
+##view_resource_monitor_table_last = Live Value
view_resource_monitor_table_max = Maximum
view_resource_monitor_table_min = Minimum
view_resource_title_component_errors_tooltip = Zeigt Fehler der gemanagten Ressource. Klicken fÃŒr Details
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
index 0b75a34..2e2763d 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
@@ -2070,7 +2070,7 @@ view_resource_monitor_graphs_lookupFailed = ã°ã©ãã®ããã®ãªãœãŒã¹ã®
view_resource_monitor_graphs_noneAvailable = å©çšã§ããã°ã©ãã¯ãããŸãã
view_resource_monitor_schedules_title = ãªãœãŒã¹ã¡ããªãã¯åéã¹ã±ãžã¥ãŒã«
view_resource_monitor_table_avg = å¹³å
-view_resource_monitor_table_last = ææ°
+##view_resource_monitor_table_last = Live Value
view_resource_monitor_table_max = æ倧
view_resource_monitor_table_min = æå°
view_resource_title_component_errors_cleanup = åé¡ã«åãçµãã åŸã¯ã以äžã®ã¡ãã»ãŒãžãåé€ããŠå
šç»é¢ã®'管çã³ã³ããŒãã³ããšã©ãŒ'ãã¯ãªã¢ããå¿
èŠããããŸãã
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
index a8f44b4..d640aa9 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
@@ -1769,7 +1769,7 @@ view_resource_monitor_graphs_lookupFailed = ê·žëí륌 ìí 늬ìì€ë¥Œ ì°Ÿ
view_resource_monitor_graphs_noneAvailable = ì íší ê·žëíê° ììµëë€
view_resource_monitor_schedules_title = 늬ìì€ íµê³ ìì§ ìŒì
view_resource_monitor_table_avg = íê·
-view_resource_monitor_table_last = ìµì
+##view_resource_monitor_table_last = Live Value
view_resource_monitor_table_max = ìµë
view_resource_monitor_table_min = ìµì
view_resource_title_component_errors_cleanup = ìŽ ë¬žì 륌 íŽê²° í íìë ìŽì íë©Žìì 'êŽëŠ¬ êµ¬ì± ìì ì€ë¥'ììŽìœì ìì íë €ë©Ž ìëì ë©ìì§ë¥Œ ìì íŽìŒí©ëë€.
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
index dc645ab..c8ab1b8 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
@@ -2183,7 +2183,7 @@ view_resource_monitor_graphs_lookupFailed = Failed to find resource for graph
view_resource_monitor_graphs_noneAvailable = No graphs available
view_resource_monitor_schedules_title = Resource Metric Collection Schedules
view_resource_monitor_table_avg = Average
-view_resource_monitor_table_last = Last
+##view_resource_monitor_table_last = Live Value
view_resource_monitor_table_max = Maximum
view_resource_monitor_table_min = Minimum
##view_resource_title_component_errors_cleanup = After addressing the issue, you will need to delete the message below to clear the 'managed component error' icon from the previous screen.
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
index 7af2d80..fa5d9d4 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
@@ -1947,7 +1947,7 @@
#view_resource_monitor_graphs_noneAvailable = No graphs available
#view_resource_monitor_schedules_title = Resource Metric Collection Schedules
#view_resource_monitor_table_avg = Average
-#view_resource_monitor_table_last = Last
+#view_resource_monitor_table_last = Live Value
#view_resource_monitor_table_max = Maximum
#view_resource_monitor_table_min = Minimum
#view_resource_title_component_errors_cleanup = After addressing the issue, you will need to delete the message below to clear the 'managed component error' icon from the previous screen.
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
index b80027b..ac873e4 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
@@ -2073,7 +2073,7 @@ view_resource_monitor_graphs_lookupFailed = Failed to find resource for graph
view_resource_monitor_graphs_noneAvailable = \u6ca1\u6709\u53ef\u7528\u56fe
view_resource_monitor_schedules_title = Resource Metric Collection Schedules
view_resource_monitor_table_avg = \u5e73\u5747
-view_resource_monitor_table_last = Last
+##view_resource_monitor_table_last = Live Value
view_resource_monitor_table_max = \u6700\u5927
view_resource_monitor_table_min = \u6700\u5c0f
##view_resource_title_component_errors_cleanup = After addressing the issue, you will need to delete the message below to clear the 'managed component error' icon from the previous screen.
commit 74fb2a8a175076e00b59b3ca14f37dfb5530d663
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Oct 21 14:36:22 2013 -0400
remove : - should be "." - otherwise, people might be confused to expect something after the :
diff --git a/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml b/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
index 67eff91..e82a25b 100644
--- a/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
+++ b/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
@@ -540,8 +540,8 @@
# Database Settings
# -----------------
# INSTALLATION ACTION REQUIRED!
-# All properties must be explicitly set for the desired database vendor:
-#
+# All properties must be explicitly set for the desired database vendor.
+#
# These should point to the database that your RHQ Server will use as
# its backend RDBMS storage.
# If you are using Oracle:
commit 1e6238285d93de143c799ca0f2982864916658cb
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Oct 21 20:32:41 2013 +0200
[BZ 743558] - Don't fall over on unset password fields without defaults
in system settings
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
index b2d3513..e48641b 100644
--- a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
@@ -56,6 +56,10 @@ public class SystemSettingsPasswordObfuscationTask implements DatabaseUpgradeTas
String value = (String) row[1];
String defaultValue = (String) row[2];
+ if (value == null && defaultValue == null) {
+ continue;
+ }
+
sql = "UPDATE rhq_system_config SET ";
try {
if (value != null) {
@@ -74,7 +78,11 @@ public class SystemSettingsPasswordObfuscationTask implements DatabaseUpgradeTas
sql += " WHERE id = " + settingId;
- type.executeSql(connection, sql);
+ try {
+ type.executeSql(connection, sql);
+ } catch (SQLException e) {
+ throw new SQLException("Failed to update the password field. The SQL statement was: " + sql, e);
+ }
}
}
}
commit 20922e233af0820acb86d3cb77b64bc019c4cb01
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Oct 21 19:39:57 2013 +0200
[BZ 743558] - Another Oracle-related change to upgrade task.
How much a single character can change!
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
index 5a027a7..b2d3513 100644
--- a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
@@ -72,7 +72,7 @@ public class SystemSettingsPasswordObfuscationTask implements DatabaseUpgradeTas
throw new SQLException("Failed to obfuscate password system settings.", e);
}
- sql += "WHERE id = " + settingId;
+ sql += " WHERE id = " + settingId;
type.executeSql(connection, sql);
}
commit 63166499b7d6f21347023b8f1d3d17b20c5570c7
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Mon Oct 21 18:15:41 2013 +0200
[BZ 967542] - UI shows confusing units when editing Availability Duration alert condition type - with some tricky steps it was possible to get globally uncaught exception. Now the seconds should not be displayed at all.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/alert/AlertFormatUtility.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/alert/AlertFormatUtility.java
index bbedd49..a72dc92 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/alert/AlertFormatUtility.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/alert/AlertFormatUtility.java
@@ -97,8 +97,14 @@ public class AlertFormatUtility {
long longValue = Long.valueOf(condition.getOption());
MeasurementNumericValueAndUnits valueWithUnits;
if (longValue % 3600 == 0) {
- valueWithUnits = MeasurementConverterClient.fit((double) longValue, MeasurementUnits.SECONDS,
+ if (longValue == 3600) {
+ valueWithUnits = new MeasurementNumericValueAndUnits(1.0d, MeasurementUnits.HOURS);
+ } else {
+ valueWithUnits = MeasurementConverterClient.fit((double) longValue, MeasurementUnits.SECONDS,
MeasurementUnits.HOURS, MeasurementUnits.HOURS);
+ }
+ } else if (longValue == 60) {
+ valueWithUnits = new MeasurementNumericValueAndUnits(1.0d, MeasurementUnits.MINUTES);
} else {
valueWithUnits = MeasurementConverterClient.fit((double) longValue, MeasurementUnits.SECONDS,
MeasurementUnits.MINUTES, MeasurementUnits.MINUTES);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/form/DurationItem.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/form/DurationItem.java
index 1691181..c09efe3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/form/DurationItem.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/form/DurationItem.java
@@ -241,8 +241,14 @@ public class DurationItem extends CanvasItem {
} else {
MeasurementNumericValueAndUnits valueWithUnits;
if (longValue % HOUR_IN_MILLIS == 0) {
- valueWithUnits = MeasurementConverterClient.fit((double) longValue, MeasurementUnits.MILLISECONDS,
- MeasurementUnits.HOURS, MeasurementUnits.HOURS);
+ if (longValue == HOUR_IN_MILLIS) {
+ valueWithUnits = new MeasurementNumericValueAndUnits(1.0d, MeasurementUnits.HOURS);
+ } else {
+ valueWithUnits = MeasurementConverterClient.fit((double) longValue, MeasurementUnits.MILLISECONDS,
+ MeasurementUnits.HOURS, MeasurementUnits.HOURS);
+ }
+ } else if (longValue == MINUTE_IN_MILLIS) {
+ valueWithUnits = new MeasurementNumericValueAndUnits(1.0d, MeasurementUnits.MINUTES);
} else {
valueWithUnits = MeasurementConverterClient.fit((double) longValue, MeasurementUnits.MILLISECONDS,
MeasurementUnits.MINUTES, MeasurementUnits.MINUTES);
commit 4d79f9a262dcdfe4b4e6c699a92b1b02ad486605
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Oct 21 17:26:10 2013 +0200
[BZ 743558] - Making the upgrade task Oracle-safe.
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
index edb5569..5a027a7 100644
--- a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
@@ -52,7 +52,7 @@ public class SystemSettingsPasswordObfuscationTask implements DatabaseUpgradeTas
List<Object[]> results = type.executeSelectSql(connection, sql);
for(Object[] row : results) {
- int settingId = (Integer) row[0];
+ Number settingId = (Number) row[0];
String value = (String) row[1];
String defaultValue = (String) row[2];
commit 7652569a57e633470fa325470533aa35769fbeda
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Thu Oct 17 12:32:36 2013 +0200
Bug 1011095 - Give created resources the name supplied by the user even if the managed object has no "name" attribute
Made ResourceFactoryServerService#completeCreateResource synchronous
When merging inventory report, look for a CreateResourceHistory entity if merging a creatable resource.
If it exists, use the user supplied resource name.
Remove unused code in ResourceFactoryManagerBean
Added integration test
diff --git a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/inventory/ResourceFactoryServerService.java b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/inventory/ResourceFactoryServerService.java
index 01930b1..b1bbd31 100644
--- a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/inventory/ResourceFactoryServerService.java
+++ b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/inventory/ResourceFactoryServerService.java
@@ -1,25 +1,21 @@
/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
package org.rhq.core.clientapi.server.inventory;
import org.rhq.core.clientapi.agent.inventory.CreateResourceResponse;
@@ -38,9 +34,12 @@ public interface ResourceFactoryServerService {
* which correlates to the requestId passed into the original agent service call. If the request was successful, the
* resource key of the newly created resource should be returned as well.
*
+ * It needs to be synchronous because we want the server to update the CreateResourceHistory entity
+ * <strong>BEFORE</strong> a new service discovery is started by the PC (the entity will be read when the inventory
+ * report is merged).
+ *
* @param response carries information on the status and results of the create call
*/
- @Asynchronous(guaranteedDelivery = true)
void completeCreateResource(CreateResourceResponse response);
/**
@@ -51,4 +50,4 @@ public interface ResourceFactoryServerService {
*/
@Asynchronous(guaranteedDelivery = true)
void completeDeleteResourceRequest(DeleteResourceResponse response);
-}
\ No newline at end of file
+}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/CreateResourceHistory.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/CreateResourceHistory.java
index e0a345d..ad70e55 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/CreateResourceHistory.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/CreateResourceHistory.java
@@ -1,24 +1,20 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2013 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License and the GNU Lesser General Public License
- * for more details.
+ * GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
package org.rhq.core.domain.resource;
@@ -53,7 +49,7 @@ import org.rhq.core.domain.content.InstalledPackage;
* @author Jason Dobies
*/
@Entity(name = "CreateResourceHistory")
-@NamedQueries( {
+@NamedQueries({
@NamedQuery(name = CreateResourceHistory.QUERY_FIND_WITH_STATUS, query = "SELECT crh FROM CreateResourceHistory AS crh WHERE crh.status = :status"),
@NamedQuery(name = CreateResourceHistory.QUERY_FIND_BY_PARENT_RESOURCE_ID, query = "" //
+ "SELECT crh " //
@@ -62,7 +58,12 @@ import org.rhq.core.domain.content.InstalledPackage;
+ " AND ( crh.ctime > :startTime OR :startTime IS NULL ) " //
+ " AND ( crh.mtime < :endTime OR :endTime IS NULL ) "),
@NamedQuery(name = CreateResourceHistory.QUERY_FIND_BY_ID, query = "SELECT crh FROM CreateResourceHistory AS crh WHERE crh.id = :id"),
- @NamedQuery(name = CreateResourceHistory.QUERY_DELETE_BY_RESOURCES, query = "DELETE FROM CreateResourceHistory crh WHERE crh.parentResource.id IN ( :resourceIds ) )") })
+ @NamedQuery(name = CreateResourceHistory.QUERY_DELETE_BY_RESOURCES, query = "DELETE FROM CreateResourceHistory crh WHERE crh.parentResource.id IN ( :resourceIds ) )"),
+ @NamedQuery(name = CreateResourceHistory.QUERY_FIND_BY_CHILD_RESOURCE_KEY, query = "" //
+ + "SELECT crh " //
+ + " FROM CreateResourceHistory AS crh " //
+ + " WHERE crh.parentResource.id = :parentResourceId " //
+ + " AND crh.newResourceKey = :newResourceKey ") })
@SequenceGenerator(allocationSize = org.rhq.core.domain.util.Constants.ALLOCATION_SIZE, name = "RHQ_CREATE_RES_HIST_ID_SEQ", sequenceName = "RHQ_CREATE_RES_HIST_ID_SEQ")
@Table(name = "RHQ_CREATE_RES_HIST")
public class CreateResourceHistory implements Serializable {
@@ -74,6 +75,7 @@ public class CreateResourceHistory implements Serializable {
public static final String QUERY_FIND_BY_PARENT_RESOURCE_ID = "CreateResourceHistory.findByParentResourceId";
public static final String QUERY_FIND_BY_ID = "CreateResourceHistory.findById";
public static final String QUERY_DELETE_BY_RESOURCES = "CreateResourceHistory.deleteByResources";
+ public static final String QUERY_FIND_BY_CHILD_RESOURCE_KEY = "CreateResourceHistory.findByChildResourceKey";
// Attributes --------------------------------------------
@@ -360,4 +362,4 @@ public class CreateResourceHistory implements Serializable {
return true;
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
index 607966b..920ff07 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
@@ -13,14 +13,16 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
+
package org.rhq.enterprise.server.discovery;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.when;
+import static org.rhq.core.domain.resource.CreateResourceStatus.SUCCESS;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -29,6 +31,7 @@ import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
@@ -37,6 +40,8 @@ import java.util.UUID;
import javax.ejb.EJBException;
import javax.persistence.Query;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
@@ -64,6 +69,7 @@ import org.rhq.core.domain.discovery.MergeInventoryReportResults.ResourceTypeFly
import org.rhq.core.domain.discovery.MergeResourceResponse;
import org.rhq.core.domain.discovery.ResourceSyncInfo;
import org.rhq.core.domain.resource.Agent;
+import org.rhq.core.domain.resource.CreateResourceHistory;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
@@ -75,6 +81,7 @@ import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.test.TestServerCommunicationsService;
+import org.rhq.enterprise.server.test.TransactionCallback;
import org.rhq.enterprise.server.util.LookupUtil;
import org.rhq.enterprise.server.util.ResourceTreeHelper;
@@ -82,6 +89,7 @@ import org.rhq.enterprise.server.util.ResourceTreeHelper;
* A unit test for {@link DiscoveryBossBean}.
*/
public class DiscoveryBossBeanTest extends AbstractEJB3Test {
+ private static final Log LOG = LogFactory.getLog(DiscoveryBossBeanTest.class);
private DiscoveryBossLocal discoveryBoss;
@@ -501,6 +509,70 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
assertEquals(InventoryStatus.COMMITTED, storageNode.getInventoryStatus());
}
+ @Test(groups = "integration.ejb3")
+ public void testPersistUserSuppliedResourceNameOnCreatedResource() throws Exception {
+
+ // First inventory the platform and the server
+ InventoryReport inventoryReport = new InventoryReport(agent);
+
+ Resource platform = new Resource(prefix("userPlatform"), prefix("platform"), platformType);
+ platform.setUuid(String.valueOf(new Random().nextInt()));
+ Resource server = new Resource(prefix("userServer"), prefix("server"), serverType);
+ server.setUuid(String.valueOf(new Random().nextInt()));
+ platform.addChildResource(server);
+
+ inventoryReport.addAddedRoot(platform);
+
+ MergeInventoryReportResults results = discoveryBoss.mergeInventoryReport(serialize(inventoryReport));
+ assertNotNull(results);
+ assertNull("nothing should have been ignored in this test", results.getIgnoredResourceTypes());
+ final ResourceSyncInfo firstDiscoverySyncInfo = results.getResourceSyncInfo();
+ assertNotNull(firstDiscoverySyncInfo);
+
+ // Then simulate a create resource request
+ final String userSuppliedResourceName = prefix("User Supplied Resource Name");
+ final String newResourceKey = prefix("Created Resource Key");
+ ResourceSyncInfo serverSyncInfo = firstDiscoverySyncInfo.getChildSyncInfos().iterator().next();
+ final int serverResourceId = serverSyncInfo.getId();
+
+ executeInTransaction(false, new TransactionCallback() {
+ @Override
+ public void execute() throws Exception {
+ Resource serverResource = getEntityManager().find(Resource.class, serverResourceId);
+ CreateResourceHistory createResourceHistory = new CreateResourceHistory(serverResource, serviceType1,
+ subjectManager.getOverlord().getName(), new Configuration());
+ createResourceHistory.setCreatedResourceName(userSuppliedResourceName);
+ createResourceHistory.setNewResourceKey(newResourceKey);
+ createResourceHistory.setStatus(SUCCESS);
+ getEntityManager().persist(createResourceHistory);
+ serverResource.addCreateChildResourceHistory(createResourceHistory);
+ getEntityManager().flush();
+ }
+ });
+
+ // Eventually inventory the newly discovered service
+
+ inventoryReport = new InventoryReport(agent);
+ Resource service1 = new Resource(newResourceKey, prefix("Plugin Computed Resource Name"), serviceType1);
+ service1.setUuid(String.valueOf(new Random().nextInt()));
+ server.setId(serverResourceId);
+ server.addChildResource(service1);
+ inventoryReport.addAddedRoot(server);
+
+ results = discoveryBoss.mergeInventoryReport(serialize(inventoryReport));
+ assertNotNull(results);
+ assertNull("nothing should have been ignored in this test", results.getIgnoredResourceTypes());
+ ResourceSyncInfo secondDiscoverySyncInfo = results.getResourceSyncInfo();
+ assertNotNull(secondDiscoverySyncInfo);
+
+ // Check that the resource ends with the user supplied name in inventory
+
+ serverSyncInfo = secondDiscoverySyncInfo.getChildSyncInfos().iterator().next();
+ ResourceSyncInfo service1SyncInfo = serverSyncInfo.getChildSyncInfos().iterator().next();
+ Resource service1Resource = getEntityManager().find(Resource.class, service1SyncInfo.getId());
+ assertEquals(userSuppliedResourceName, service1Resource.getName());
+ }
+
/**
* Use this to fake like your remoting objects. Can be used to keep your own copy of objects locally transient.
*
@@ -513,7 +585,9 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
ByteArrayOutputStream baos = new ByteArrayOutputStream(10000);
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
- System.out.println("****** Size of serialized object: " + baos.size());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("****** Size of serialized object: " + baos.size());
+ }
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
Object transfered = ois.readObject();
@@ -559,14 +633,22 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
if (storageNode != null) {
storageNode.setResource(null);
}
- System.out.println("Deleting resource " + res);
+ for (Iterator<CreateResourceHistory> historyIterator = res.getCreateChildResourceRequests().iterator(); historyIterator
+ .hasNext();) {
+ CreateResourceHistory history = historyIterator.next();
+ historyIterator.remove();
+ em.remove(history);
+ }
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Deleting resource " + res);
+ }
ResourceTreeHelper.deleteResource(em, res);
}
em.flush();
getTransactionManager().commit();
} catch (Exception e) {
try {
- System.out.println("CANNOT CLEAN UP TEST: Cause: " + e);
+ LOG.error("CANNOT CLEAN UP TEST: Cause: " + e);
getTransactionManager().rollback();
} catch (Exception ignore) {
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
index 09b6271..ef33810 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
@@ -18,6 +18,10 @@
*/
package org.rhq.enterprise.server.discovery;
+import static org.rhq.core.domain.resource.CreateResourceStatus.SUCCESS;
+import static org.rhq.core.domain.util.PageOrdering.DESC;
+import static org.rhq.core.util.StringUtil.isBlank;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -72,6 +76,7 @@ import org.rhq.core.domain.discovery.ResourceSyncInfo;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.Agent;
import org.rhq.core.domain.resource.CannotConnectToAgentException;
+import org.rhq.core.domain.resource.CreateResourceHistory;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.ProductVersion;
import org.rhq.core.domain.resource.Resource;
@@ -80,6 +85,7 @@ import org.rhq.core.domain.resource.ResourceError;
import org.rhq.core.domain.resource.ResourceErrorType;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.server.PersistenceUtility;
+import org.rhq.core.domain.util.OrderingField;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
@@ -1199,12 +1205,27 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
}
}
+ ResourceType resourceType = resource.getResourceType();
+
+ if (resourceType.isCreatable()) {
+ // If a newly discovered resource is of a creatable type, search for a matching CreateResourceHistory.
+ // If it exists, then this resource comes from the resource creation process and we must give it the name
+ // initially supplied by the user.
+ CreateResourceHistory matchingHistory = findMatchingCreateResourceHistory(parentId,
+ resource.getResourceKey());
+ if (matchingHistory != null) {
+ String userSuppliedResourceName = matchingHistory.getCreatedResourceName();
+ if (!isBlank(userSuppliedResourceName) && !userSuppliedResourceName.equals(resource.getName())) {
+ resource.setName(userSuppliedResourceName);
+ }
+ }
+ }
+
entityManager.persist(resource);
// Add a product version entry for the new resource.
if ((resource.getVersion() != null) && (resource.getVersion().length() > 0)) {
- ResourceType type = resource.getResourceType();
- ProductVersion productVersion = productVersionManager.addProductVersion(type, resource.getVersion());
+ ProductVersion productVersion = productVersionManager.addProductVersion(resourceType, resource.getVersion());
resource.setProductVersion(productVersion);
}
@@ -1222,6 +1243,22 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
}
}
+ private CreateResourceHistory findMatchingCreateResourceHistory(Integer parentId, String resourceKey) {
+ Query query = PersistenceUtility.createQueryWithOrderBy(entityManager,
+ CreateResourceHistory.QUERY_FIND_BY_CHILD_RESOURCE_KEY, new PageControl(0, 1, new OrderingField("mtime",
+ DESC)));
+ query.setParameter("parentResourceId", parentId);
+ query.setParameter("newResourceKey", resourceKey);
+ Iterator iterator = query.getResultList().iterator();
+ if (iterator.hasNext()) {
+ CreateResourceHistory next = (CreateResourceHistory) iterator.next();
+ if (next.getStatus() == SUCCESS) {
+ return next;
+ }
+ }
+ return null;
+ }
+
// Resources are set to either NEW or COMMITTED
// We autocommit in the following scenarios:
// - The parent resource is not a platform and is already committed
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
index 8317730..aef34b2 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
@@ -88,6 +88,8 @@ import org.rhq.enterprise.server.core.AgentManagerLocal;
*/
@Stateless
public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal, ResourceFactoryManagerRemote {
+ private static final Log LOG = LogFactory.getLog(ResourceFactoryManagerBean.class);
+
// Constants --------------------------------------------
/**
@@ -97,8 +99,6 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
// Attributes --------------------------------------------
- private final Log log = LogFactory.getLog(ResourceFactoryManagerBean.class);
-
@PersistenceContext(unitName = RHQConstants.PERSISTENCE_UNIT_NAME)
private EntityManager entityManager;
@@ -124,14 +124,16 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void completeCreateResource(CreateResourceResponse response) {
- log.debug("Received call to complete create resource: " + response);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Received call to complete create resource: " + response);
+ }
// Load the persisted history entry
CreateResourceHistory history = entityManager.find(CreateResourceHistory.class, response.getRequestId());
// There is some inconsistency if we're completing a request that was not in the database
if (history == null) {
- log.error("Attempting to complete a request that was not found in the database: " + response.getRequestId());
+ LOG.error("Attempting to complete a request that was not found in the database: " + response.getRequestId());
return;
}
@@ -144,36 +146,20 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
if (response.getResourceConfiguration() != null) {
entityManager.merge(response.getResourceConfiguration());
}
-
- // RHQ-666 - The resource name will likely come from the plugin. If both the user indicated a name at
- // creation time (which would be in the history item), use that to override what the plugin indicates
- String newResourceName = response.getResourceName();
-
- if (history.getCreatedResourceName() != null) {
- newResourceName = history.getCreatedResourceName();
- }
-
- // If the plugin reports it as successful, create the resource and mark it as committed
- // Currently commented out because of https://jira.jboss.org/jira/browse/JBNADM-3451
- // basically: this prevented getting a version of the resource with correct pluginConfig
- // from autodiscovery back into the inventory
- //
- // if (response.getStatus() == CreateResourceStatus.SUCCESS) {
- // resourceFactoryManager.createInventoryResource(history.getParentResource().getId(), history
- // .getResourceType().getId(), newResourceName, response.getResourceKey());
- // }
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void completeDeleteResourceRequest(DeleteResourceResponse response) {
- log.debug("Received call to complete delete resource: " + response);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Received call to complete delete resource: " + response);
+ }
// Load the persisted history entry
DeleteResourceHistory history = entityManager.find(DeleteResourceHistory.class, response.getRequestId());
// There is some inconsistency if we're completing a request that was not in the database
if (history == null) {
- log.error("Attempting to complete a request that was not found in the database: " + response.getRequestId());
+ LOG.error("Attempting to complete a request that was not found in the database: " + response.getRequestId());
return;
}
@@ -224,8 +210,9 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
// If the duration exceeds the timeout threshold, mark it as timed out
if (duration > REQUEST_TIMEOUT) {
- log.debug("Timing out request after duration: " + duration + " Request: " + request);
-
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Timing out request after duration: " + duration + " Request: " + request);
+ }
request.setErrorMessage("Request with duration " + duration + " exceeded the timeout threshold of "
+ REQUEST_TIMEOUT);
request.setStatus(CreateResourceStatus.TIMED_OUT);
@@ -246,15 +233,16 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
// If the duration exceeds the timeout threshold, mark it as timed out
if (duration > REQUEST_TIMEOUT) {
- log.debug("Timing out request after duration: " + duration + " Request: " + request);
-
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Timing out request after duration: " + duration + " Request: " + request);
+ }
request.setErrorMessage("Request with duration " + duration + " exceeded the timeout threshold of "
+ REQUEST_TIMEOUT);
request.setStatus(DeleteResourceStatus.TIMED_OUT);
}
}
} catch (Throwable e) {
- log.error("Error while processing timed out requests", e);
+ LOG.error("Error while processing timed out requests", e);
}
}
@@ -426,7 +414,7 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
Integer architectureId, Configuration deploymentTimeConfiguration, InputStream packageBitStream,
Map<String, String> packageUploadDetails, Integer timeout) {
- log.info("Received call to create package backed resource under parent [" + parentResourceId + "]");
+ LOG.info("Received call to create package backed resource under parent [" + parentResourceId + "]");
Resource parentResource = entityManager.find(Resource.class, parentResourceId);
@@ -485,8 +473,11 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
public CreateResourceHistory createResource(Subject user, int parentResourceId, int resourceTypeId,
String resourceName, Configuration pluginConfiguration, Configuration resourceConfiguration, Integer timeout) {
- log.debug("Received call to create configuration backed resource under parent: " + parentResourceId
- + " of type: " + resourceTypeId);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Received call to create configuration backed resource under parent: " + parentResourceId
+ + " of type: " + resourceTypeId);
+ }
ResourceType resourceType = entityManager.find(ResourceType.class, resourceTypeId);
Resource parentResource = entityManager.find(Resource.class, parentResourceId);
@@ -524,7 +515,7 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
return persistedHistory;
} catch (Exception e) {
- log.error("Error while sending create resource request to agent service", e);
+ LOG.error("Error while sending create resource request to agent service", e);
// Submit the error as a failure response
String errorMessage = ThrowableUtil.getAllMessages(e);
@@ -648,7 +639,7 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
return null;
//eat the exception. Some of the queries return no results if no package yet exists which is fine.
} catch (CannotConnectException e) {
- log.error("Error while sending create resource request to agent service", e);
+ LOG.error("Error while sending create resource request to agent service", e);
// Submit the error as a failure response
String errorMessage = ThrowableUtil.getAllMessages(e);
@@ -658,7 +649,7 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
throw new CannotConnectToAgentException("Error while sending create resource request to agent service", e);
} catch (Exception e) {
- log.error("Error while sending create resource request to agent service", e);
+ LOG.error("Error while sending create resource request to agent service", e);
// Submit the error as a failure response
String errorMessage = ThrowableUtil.getAllMessages(e);
@@ -684,7 +675,9 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
}
public DeleteResourceHistory deleteResource(Subject subject, int resourceId) {
- log.debug("Received call to delete resource: " + resourceId);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Received call to delete resource: " + resourceId);
+ }
Resource resource = entityManager.find(Resource.class, resourceId);
Agent agent = resource.getAgent();
@@ -708,7 +701,7 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
return persistedHistory;
} catch (CannotConnectException e) {
- log.error("Error while sending delete resource request to agent service", e);
+ LOG.error("Error while sending delete resource request to agent service", e);
// Submit the error as a failure response
String errorMessage = ThrowableUtil.getAllMessages(e);
@@ -718,7 +711,7 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
throw new CannotConnectToAgentException("Error while sending delete resource request to agent service", e);
} catch (Exception e) {
- log.error("Error while sending delete resource request to agent service", e);
+ LOG.error("Error while sending delete resource request to agent service", e);
// Submit the error as a failure response
String errorMessage = ThrowableUtil.getAllMessages(e);
commit 80e3e6859620b178b5b1ce61af69a44ae00e3c8f
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Wed Oct 16 11:43:45 2013 +0200
as7plugin : removed bad copy and paste
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DeploymentComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DeploymentComponent.java
index 0d166b4..9a15a85 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DeploymentComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DeploymentComponent.java
@@ -170,8 +170,6 @@ public class DeploymentComponent extends BaseComponent<ResourceComponent<?>> imp
JsonNode resultNode = uploadResult.get("result");
String hash = resultNode.get("BYTES_VALUE").getTextValue();
- new CreateResourceReport("", resourceType, new Configuration(), new Configuration(), detail);
-
try {
redeployOnServer(detail.getKey().getName(), hash);
response.setOverallRequestResult(ContentResponseResult.SUCCESS);
commit 5d840dbb40d97673bd38f1916a0083fa7404fb7e
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Fri Oct 11 17:15:15 2013 +0200
ContentHandlerBean: no need to pollute the server log
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ContentHandlerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ContentHandlerBean.java
index 41a47be..845c01b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ContentHandlerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ContentHandlerBean.java
@@ -98,8 +98,6 @@ public class ContentHandlerBean extends AbstractRestBean {
String fileHandle = outFile.getName();
StringValue sv = new StringValue(fileHandle);
- System.out.println("Uploaded content to " + outFile.getAbsolutePath());
-
UriBuilder uriBuilder = uriInfo.getBaseUriBuilder();
uriBuilder.path("/content/{handle}");
URI uri = uriBuilder.build(fileHandle);
commit 12b01b2805978019761136ae15dd42043ae6e90f
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Sat Oct 19 11:35:50 2013 -0400
eclipse settings changes
diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs
index 05faab6..0fcf70f 100644
--- a/.settings/org.eclipse.jdt.ui.prefs
+++ b/.settings/org.eclipse.jdt.ui.prefs
@@ -1,118 +1,118 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=false
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=true
-cleanup.remove_unused_private_fields=false
-cleanup.remove_unused_private_members=true
-cleanup.remove_unused_private_methods=false
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_RHQ
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_RHQ
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;com;org;org.jboss;org.rhq;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert
\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n *
${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\
="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${t
odo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomm
ent" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n * RHQ Management Platform\r\n * Copyright 2011, Red Hat Middleware LLC, and individual contributors\r\n * as indicated by the @author tags. See the copyright.txt file in the\r\n * distribution for a full listing of individual contributors.\r\n *\r\n * This program is free software; you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published
by\r\n * the Free Software Foundation version 2 of the License.\r\n *\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n *\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program; if not, write to the Free Software\r\n * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r\n */\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author Jay Shaughnessy\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui
.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" de
scription\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="C
ode in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-ge
nerated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=false
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=true
+cleanup.remove_unused_private_fields=false
+cleanup.remove_unused_private_members=true
+cleanup.remove_unused_private_methods=false
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_RHQ
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_RHQ
+formatter_settings_version=11
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;com;org;org.jboss;org.rhq;
+org.eclipse.jdt.ui.javadoc=false
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert
\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n *
${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\
="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${t
odo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomm
ent" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n * RHQ Management Platform\r\n * Copyright 2011, Red Hat Middleware LLC, and individual contributors\r\n * as indicated by the @author tags. See the copyright.txt file in the\r\n * distribution for a full listing of individual contributors.\r\n *\r\n * This program is free software; you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published
by\r\n * the Free Software Foundation version 2 of the License.\r\n *\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n *\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program; if not, write to the Free Software\r\n * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r\n */\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author Jay Shaughnessy\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui
.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" de
scription\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="C
ode in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-ge
nerated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=false
+sp_cleanup.add_missing_override_annotations_interface_methods=false
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=true
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
commit 2082b3164766ded653d87cb3142b5d169b869f90
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Sat Oct 19 11:34:58 2013 -0400
Bug 880359 - JavaDoc used for Remote API is inconsistent with API
Using Eclipse's validation cleaned up remote api and domain javadoc. The jdoc
could still be a lot better in places, but at least it's no longer invalid.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
index 3445d9e..21d6113 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
@@ -131,15 +131,15 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
+ " FROM Alert a " //
+ " JOIN a.alertDefinition alertDef )"),
@NamedQuery(name = AlertDefinition.QUERY_FIND_ALL_COMPOSITES_ADMIN, query = "" //
- + " SELECT new org.rhq.core.domain.alert.composite.AlertDefinitionComposite" //
+ + " SELECT new org.rhq.core.domain.alert.composite.AlertDefinitionComposite" //
+ " ( ad, parent.id, parent.name ) " //
+ " FROM AlertDefinition ad " //
+ " JOIN ad.resource res " //
+ "LEFT JOIN res.parentResource parent " //
- /*
+ /*
* as much as i want to (for efficiency of the query [namely roundtrips to the db]) i can't use fetching here
- * because, when added, the query parser chokes with "query specified join fetching, but the owner of the
- * fetched association was not present in the select list"...even though it clearly is ;/
+ * because, when added, the query parser chokes with "query specified join fetching, but the owner of the
+ * fetched association was not present in the select list"...even though it clearly is ;/
*/
//+ " JOIN FETCH ad.conditions ac " //
+ " WHERE ad.deleted = false " //
@@ -148,19 +148,19 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
+ " AND (ad.ctime > :startTime OR :startTime IS NULL) " //
+ " AND (ad.ctime < :endTime OR :endTime IS NULL) " //
+ " AND (ad.id IN ( SELECT aad.id FROM AlertDefinition aad " //
- + " JOIN aad.conditions aadc " //
+ + " JOIN aad.conditions aadc " //
+ " WHERE aadc.category = :category ) " //
+ " OR :category IS NULL) "), //
@NamedQuery(name = AlertDefinition.QUERY_FIND_ALL_COMPOSITES, query = "" //
- + " SELECT new org.rhq.core.domain.alert.composite.AlertDefinitionComposite" //
+ + " SELECT new org.rhq.core.domain.alert.composite.AlertDefinitionComposite" //
+ " ( ad, parent.id, parent.name ) " //
+ " FROM AlertDefinition ad " //
+ " JOIN ad.resource res " //
+ "LEFT JOIN res.parentResource parent " //
- /*
+ /*
* as much as i want to (for efficiency of the query [namely roundtrips to the db]) i can't use fetching here
- * because, when added, the query parser chokes with "query specified join fetching, but the owner of the
- * fetched association was not present in the select list"...even though it clearly is ;/
+ * because, when added, the query parser chokes with "query specified join fetching, but the owner of the
+ * fetched association was not present in the select list"...even though it clearly is ;/
*/
//+ " JOIN FETCH ad.conditions ac " //
+ " WHERE ad.deleted = false " //
@@ -172,7 +172,7 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
+ " AND (ad.ctime > :startTime OR :startTime IS NULL) " //
+ " AND (ad.ctime < :endTime OR :endTime IS NULL) " //
+ " AND (ad.id IN ( SELECT aad.id FROM AlertDefinition aad " //
- + " JOIN aad.conditions aadc " //
+ + " JOIN aad.conditions aadc " //
+ " WHERE aadc.category = :category ) " //
+ " OR :category IS NULL) "), //
@NamedQuery(name = AlertDefinition.QUERY_FIND_DEFINITION_ID_BY_CONDITION_ID, query = "" //
@@ -532,15 +532,19 @@ public class AlertDefinition implements Serializable {
}
/**
+ * @return the group
* @deprecated use getGroup()
*/
+ @Deprecated
public ResourceGroup getResourceGroup() {
return group;
}
/**
+ * @param resourceGroup
* @deprecated use setGroup(ResourceGroup)
*/
+ @Deprecated
public void setResourceGroup(ResourceGroup resourceGroup) {
this.group = resourceGroup;
}
@@ -646,7 +650,7 @@ public class AlertDefinition implements Serializable {
* If "read only" is true, then changes to the parent group/template alert definition will not
* change this resource alert def. If read only is false, changes to the parent propagate to the
* child resource alert.
- *
+ *
* @return read only flag
*/
public boolean isReadOnly() {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
index ed72d5f..b54c654 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
@@ -285,6 +285,7 @@ public class Role implements Serializable {
/**
* This *does not* update the inverse relation. You may want {@link BundleGroup#addRole(Role)}
+ * @param bundleGroups
*/
public void setBundleGroups(Set<BundleGroup> bundleGroups) {
this.bundleGroups = bundleGroups;
@@ -292,14 +293,15 @@ public class Role implements Serializable {
/**
* This *does not* update the inverse relation. You may want {@link BundleGroup#addRole(Role)}
+ * @param bundleGroup
*/
-
public void addBundleGroup(BundleGroup bundleGroup) {
getBundleGroups().add(bundleGroup);
}
/**
* This *does not* update the inverse relation. You may want {@link BundleGroup#removeRole(Role)}
+ * @param bundleGroup
*/
public void removeBundleGroup(BundleGroup bundleGroup) {
getBundleGroups().remove(bundleGroup);
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java
index c2f2714..1ce5fc9 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/Bundle.java
@@ -199,7 +199,7 @@ public class Bundle implements Serializable {
/**
* This does not set the inverse relationship. You may want {@link BundleGroup#addBundle(Bundle)}.
- * @param bundleGroups
+ * @param bundleGroup
*/
public void addBundleGroup(BundleGroup bundleGroup) {
getBundleGroups().add(bundleGroup);
@@ -207,7 +207,8 @@ public class Bundle implements Serializable {
/**
* This does not set the inverse relationship. You may want {@link BundleGroup#removeBundle(Bundle)}.
- * @param bundleGroups
+ * @param bundleGroup
+ * @return true if bundle group is removed, otherwise false
*/
public boolean removeBundleGroup(BundleGroup bundleGroup) {
return getBundleGroups().remove(bundleGroup);
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java
index 1507f9a..fe470c5 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleDeployment.java
@@ -267,7 +267,7 @@ public class BundleDeployment implements Serializable {
/**
* The duration of the configuration update request which simply is the difference between the
- * {@link #getCreatedTime()} and the {@link #getModifiedTime()}. If the request hasn't completed yet, this will be
+ * {@link #getCtime()} and the {@link #getMtime()}. If the request hasn't completed yet, this will be
* the difference between the current time and the created time.
*
* @return the duration of time that the request took or is taking to complete
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java
index e290f46..4938660 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/BundleGroup.java
@@ -132,6 +132,7 @@ public class BundleGroup implements Serializable {
/**
* This also updates the inverse relation (remove this bundle group from bundle)
* @param bundle
+ * @return true if bundle was removed, otherwise false
*/
public boolean removeBundle(Bundle bundle) {
boolean result = getBundles().remove(bundle);
@@ -141,7 +142,7 @@ public class BundleGroup implements Serializable {
/**
* This also updates the inverse relations
- * @param bundle
+ * @param bundles
*/
public void setBundles(Set<Bundle> bundles) {
for (Bundle bundle : getBundles()) {
@@ -176,6 +177,7 @@ public class BundleGroup implements Serializable {
/**
* This also updates the inverse relation (remove this bundle group from role)
* @param role
+ * @return true if role was removed, otherwise false
*/
public boolean removeRole(Role role) {
role.removeBundleGroup(this);
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java
index 415383c..f710328 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/bundle/ResourceTypeBundleConfiguration.java
@@ -36,7 +36,7 @@ import org.rhq.core.domain.configuration.PropertySimple;
* the bundle destination base directory definitions (the base locations where bundles can be deployed for resources that
* are of the given type). Rather than expect users of this object to know the internal properties stored in the config, this
* object has strongly-typed methods to extract the properties into more easily consumable POJOs, such as
- * {@link #getBundleDestinationBaseDirectory()} and {@link #addBundleDestinationBaseDirectory(String, String, String, String)}.
+ * {@link #getBundleDestinationBaseDirectories()} and {@link #addBundleDestinationBaseDirectory(String, String, String, String)}.
*
* @author John Mazzitelli
*/
@@ -63,7 +63,7 @@ public class ResourceTypeBundleConfiguration implements Serializable {
/**
* Returns the actual, raw configuration. Callers should rarely want to use this - use the more
- * strongly typed methods such as {@link #getBundleDestinationBaseDirectory()}.
+ * strongly typed methods such as {@link #getBundleDestinationBaseDirectories()}.
*
* @return the raw bundle configuration object
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java b/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java
index 6e04ab6..cfdf228 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/Server.java
@@ -319,6 +319,7 @@ public class Server implements Serializable {
* by the various {@link Status} elements), then that change should be added via this method.
* Periodically, a background job will come along, check the status, and possibly perform
* work on behalf of this server based on the type of change.
+ * @param newStatus
*/
public void addStatus(Status newStatus) {
this.status |= newStatus.mask;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java b/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java
index e00a25c..d1abdb7 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/cloud/StorageNodeLoadComposite.java
@@ -128,7 +128,7 @@ public class StorageNodeLoadComposite implements Serializable {
}
/**
- * @deprecated use {@link #getPartitionDiskUsedPercentage() getPartitionDiskUsedPercentage()} instead
+ * @deprecated use {@link #getDataDiskUsedPercentage() getPartitionDiskUsedPercentage()} instead
*
* @return partitionDiskUsedPercentage
*/
@@ -137,9 +137,9 @@ public class StorageNodeLoadComposite implements Serializable {
}
/**
- * @deprecated use {@link #setPartitionDiskUsedPercentage() setPartitionDiskUsedPercentage()} instead
+ * @deprecated use {@link #setDataDiskUsedPercentage(MeasurementAggregateWithUnits)} instead
*
- * @param partitionDiskUsedPercentage
+ * @param diskUsedPercentage
*/
public void setDiskSpacePercentageUsed(MeasurementAggregateWithUnits diskUsedPercentage) {
setDataDiskUsedPercentage(diskUsedPercentage);
@@ -244,7 +244,6 @@ public class StorageNodeLoadComposite implements Serializable {
return builder.toString();
}
-
public static class MeasurementAggregateWithUnits implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java b/modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java
index b3a8b48..3253f01 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/common/JobTrigger.java
@@ -44,7 +44,7 @@ public class JobTrigger implements Serializable {
private Date startDate;
// Fields used by recurrenceType=REPEAT_INTERVAL triggers
- private Long repeatInterval;
+ private Long repeatInterval;
// endDate and repeatCount are mutually exclusive - only one can have a non-null value;
// if both are null, the repetition is indefinite.
private Date endDate;
@@ -156,6 +156,7 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run now and repeat on interval indefinitely.
*
+ * @param repeatInterval
* @return a trigger that will run now and repeat on interval indefinitely
*/
public static JobTrigger createNowAndRepeatTrigger(long repeatInterval) {
@@ -165,6 +166,8 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run now and repeat on interval until end date/time.
*
+ * @param repeatInterval
+ * @param endDate
* @return a trigger that will run now and repeat on interval until end date/time
*/
public static JobTrigger createNowAndRepeatTrigger(long repeatInterval, Date endDate) {
@@ -174,6 +177,8 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run now and repeat on interval n times.
*
+ * @param repeatInterval
+ * @param repeatCount
* @return a trigger that will run now and repeat on interval n times
*/
public static JobTrigger createNowAndRepeatTrigger(long repeatInterval, int repeatCount) {
@@ -183,6 +188,7 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run at specified date/time, once.
*
+ * @param startDate
* @return a trigger that will run at specified date/time, once
*/
public static JobTrigger createLaterTrigger(Date startDate) {
@@ -192,6 +198,8 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run at specified date/time and then repeat on interval indefinitely.
*
+ * @param startDate
+ * @param repeatInterval
* @return a trigger that will run at specified date/time and then repeat on interval indefinitely
*/
public static JobTrigger createLaterAndRepeatTrigger(Date startDate, long repeatInterval) {
@@ -201,6 +209,9 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run at specified date/time and then repeat on interval until end date/time.
*
+ * @param startDate
+ * @param repeatInterval
+ * @param endDate
* @return a trigger that will run at specified date/time and then repeat on interval until end date/time
*/
public static JobTrigger createLaterAndRepeatTrigger(Date startDate, long repeatInterval, Date endDate) {
@@ -210,6 +221,9 @@ public class JobTrigger implements Serializable {
/**
* Create a trigger that will run at specified date/time and then repeat on interval n times.
*
+ * @param startDate
+ * @param repeatInterval
+ * @param repeatCount
* @return a trigger that will run at specified date/time and then repeat on interval n times
*/
public static JobTrigger createLaterAndRepeatTrigger(Date startDate, long repeatInterval, int repeatCount) {
@@ -221,6 +235,7 @@ public class JobTrigger implements Serializable {
* <a href="http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html">Quartz
* cron expression syntax</a>, which is a bit different than Unix cron expression syntax.
*
+ * @param cronExpression
* @return a trigger that will run on the schedule specified by a cron expression
*/
public static JobTrigger createCronTrigger(String cronExpression) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java b/modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java
index b9637bf..2f8c31e 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/common/ServerDetails.java
@@ -29,9 +29,9 @@ import java.util.HashMap;
/**
* Provides simple strings to describe certain server details, useful for end users that have a need to see
* this data. This is meant to be used as a read-only pojo to be shared to clients.
- *
+ *
* Some of the fields in this pojo may be empty if the user didn't have permissions to see those fields.
- *
+ *
* @author John Mazzitelli
*/
public class ServerDetails implements Serializable {
@@ -46,7 +46,7 @@ public class ServerDetails implements Serializable {
SERVER_TIMEZONE, //
SERVER_LOCAL_TIME, //
SERVER_INSTALL_DIR, // where RHQ is installed, the top directory where everything else is
- SERVER_HOME_DIR, // where the RHQ server's JBossAS deployment is; this is under the install dir
+ SERVER_HOME_DIR, // where the RHQ server's JBossAS deployment is; this is under the install dir
/**
* @deprecated this is no longer used or exposed by the server. The measurements are not stored in the database
@@ -83,6 +83,7 @@ public class ServerDetails implements Serializable {
* Returns details about the server that returned this object. The keys are one of the
* {@link Detail} enums. You are not guaranteed to have all details in the returned map;
* if the user doesn't have the permissions necessary, some details will not be available.
+ * @return HashMap of the details
*/
public HashMap<Detail, String> getDetails() {
return this.details;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java b/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
index 529b037..6a65ba2 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
@@ -198,6 +198,7 @@ public enum SystemSetting {
* Whether or not is this setting present in the publicly accessible. If a property is NOT public, its value
* cannot be obtained remotely and cannot be updated through the SystemManager. Other mechanism must exist in the
* RHQ server to update such settings.
+ * @return true if public, otherwise false
*/
public boolean isPublic() {
return isPublic;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java
index a4bd587..d745b28 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/ConfigurationDefinition.java
@@ -53,8 +53,10 @@ import javax.xml.bind.annotation.XmlSeeAlso;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import org.rhq.core.domain.configuration.Configuration;
+
/**
- * The entire definition for a {@link import javax.persistence.CascadeType.Configuration}. This includes mapped property
+ * The entire definition for a {@link Configuration}. This includes mapped property
* definitions of arbitrary complexity, made up of {@link PropertyDefinitionSimple}s, {@link PropertyDefinitionList}s,
* and {@link PropertyDefinitionMap}s.
*
@@ -168,7 +170,7 @@ public class ConfigurationDefinition implements Serializable {
* Get the properties for this configuration. This is the only method that returns a Collection, where an update
* will be reflected in the database.
*
- * @return
+ * @return the property definitions, not a copy
*/
@NotNull
public Map<String, PropertyDefinition> getPropertyDefinitions() {
@@ -268,7 +270,6 @@ public class ConfigurationDefinition implements Serializable {
*
* @return the set of properties that are not in a group
*
- * @see #propertyDefinitions
* @see #getPropertyDefinitions()
*/
@NotNull
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java
index 636c741..ea4080c 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/definition/PropertyDefinitionSimple.java
@@ -38,7 +38,6 @@ import javax.persistence.OneToMany;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.IndexColumn;
@@ -123,7 +122,7 @@ public class PropertyDefinitionSimple extends PropertyDefinition {
/**
* Return all the constraints on this simple-property no matter how they are grouped together in the XML.
*
- * @return
+ * @return the constraints, not null
*/
@NotNull
public Set<Constraint> getConstraints() {
@@ -146,6 +145,7 @@ public class PropertyDefinitionSimple extends PropertyDefinition {
/**
* Get the <options> within <property-options> for a <simple-property>
+ * @return not null
*/
@NotNull
public List<PropertyDefinitionEnumeration> getEnumeratedValues() {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
index 19c5ac3..4fe8e03 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
@@ -44,7 +44,6 @@ import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlTransient;
-
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.resource.ProductVersion;
import org.rhq.core.domain.util.OSGiVersionComparator;
@@ -70,7 +69,7 @@ import org.rhq.core.domain.util.OSGiVersionComparator;
+ " WHERE pv.generalPackage.name = :packageName " //
+ " AND pv.generalPackage.packageType.name = :packageTypeName " //
+ " AND pv.generalPackage.packageType.resourceType.id = :resourceTypeId " //
- + " AND pv.sha256 = :sha "
+ + " AND pv.sha256 = :sha " //
+ " ORDER BY pv.id DESC "),
@NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH, query = "SELECT pv FROM PackageVersion AS pv "
+ " WHERE pv.generalPackage.name = :name " + " AND pv.generalPackage.packageType.id = :packageTypeId "
@@ -668,7 +667,7 @@ public class PackageVersion implements Serializable {
/**
* Directly assign this package version to the given repo.
*
- * @param packageVersion
+ * @param repo
*
* @return the mapping that was added
*/
@@ -744,7 +743,7 @@ public class PackageVersion implements Serializable {
*
* @return the mapping entities
*
- * @see #getPackageVersions()
+ * @see #getProductVersions()
*/
public Set<ProductVersionPackageVersion> getProductVersionPackageVersions() {
return productVersionPackageVersions;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java
index 2166e4c..07e1fbd 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoGroup.java
@@ -139,7 +139,7 @@ public class RepoGroup implements Serializable {
*
* @return the mapping entities
*
- * @see #getRepoGroup()
+ * @see #getRepos()
*/
public Set<RepoRepoGroup> getRepoRepoGroups() {
return repoRepoGroups;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java
index 6fd6633..37f07ac 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/RepoRelationship.java
@@ -122,7 +122,7 @@ public class RepoRelationship implements Serializable {
*
* @return the mapping entities
*
- * @see #getRepoRelationship()
+ * @see #getRelatedRepos()
*/
public Set<RepoRepoRelationship> getRepoRepoRelationships() {
return repoRepoRelationships;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java
index 0f0e191..cc1f402 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/transfer/SubscribedRepo.java
@@ -39,7 +39,7 @@ public class SubscribedRepo implements Serializable {
}
/**
- * @param repoName the repo name to set
+ * @param name the repo name to set
*/
public void setName(String name) {
this.name = name;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java
index b5dd0e4..d6f8093 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/BundleVersionCriteria.java
@@ -83,7 +83,7 @@ public class BundleVersionCriteria extends TaggedCriteria {
* Unless called by an InventoryManager the deployments will be filtered to those the caller can view, based
* on the resource groups associated with his roles and the destination associated with the deployments.
*
- * @param fetchDestinations
+ * @param fetchBundleDeployments
*/
public void fetchBundleDeployments(boolean fetchBundleDeployments) {
this.fetchBundleDeployments = fetchBundleDeployments;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
index f398020..bd747e2 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
@@ -373,7 +373,7 @@ public abstract class Criteria implements Serializable, BaseCriteria {
* a RuntimeException is thrown, indicating whether no results, or multiple results were found.
*
* @param result
- * @return
+ * @return the single result
* @throws RuntimeException In not exactly one result is found. The message will include either the String
* "NoResultException" or "NonUniqueResultException", appropriately. The JPA exceptions are not used so that there
* is no dependency on a JPA implementation jar for the caller.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java
index 72438fdc..6314f5c 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/DashboardCriteria.java
@@ -68,7 +68,7 @@ public class DashboardCriteria extends Criteria {
}
/**
- * If not set explicitly this defaults to {@link DashboardCategory.INVENTORY}.
+ * If not set explicitly this defaults to {@link DashboardCategory#INVENTORY}.
* @param category
*/
public void addFilterCategory(DashboardCategory category) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java
index c4a3795..d419b9e 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/PackageVersionCriteria.java
@@ -132,7 +132,7 @@ public class PackageVersionCriteria extends Criteria {
/**
* Requires MANAGE_INVENTORY permission.
- * @param fetchInstalledPackages
+ * @param fetchInstalledPackageHistory
*/
public void fetchInstalledPackageHistory(boolean fetchInstalledPackageHistory) {
this.fetchInstalledPackageHistory = fetchInstalledPackageHistory;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
index fc41380..c3970e3 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
@@ -178,7 +178,7 @@ public class ResourceCriteria extends TaggedCriteria {
/**
* Note, setting this filter will set filterInventoryStatus to null since that is a mutually exclusive filter.
*
- * @param filterInventoryStatus
+ * @param filterInventoryStatuses
*/
public void addFilterInventoryStatuses(List<InventoryStatus> filterInventoryStatuses) {
this.filterInventoryStatuses = filterInventoryStatuses;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
index 00b54a2..add0aef 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
@@ -150,7 +150,7 @@ public class ResourceGroupCriteria extends TaggedCriteria {
/**
* Requires MANAGE_INVENTORY. Use addFilterPrivate(true) to filter on the caller's private groups.
- * @param filterSubjectId.
+ * @param filterSubjectId
*/
public void addFilterSubjectId(Integer filterSubjectId) {
this.filterSubjectId = filterSubjectId;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java b/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java
index dbbc9f0..90e08c6 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java
@@ -255,7 +255,7 @@ public class Dashboard implements Serializable {
* This can be used to safely add a portlet without knowing the current portlet positioning on the
* Dashboard. It adds the portlet to the bottom of column with the least portlets.
*
- * @param storedPortlet, MODIFIED with assigned column, index
+ * @param storedPortlet MODIFIED with assigned column, index
*/
public void addPortlet(DashboardPortlet storedPortlet) {
int[] columnCounts = new int[getColumns()];
@@ -280,7 +280,7 @@ public class Dashboard implements Serializable {
/**
* Call this only if you are sure the column and index are valid, not already used and not leaving gaps.
*
- * @param storedPortlet, MODIFIED with assigned column, index
+ * @param storedPortlet MODIFIED with assigned column, index
* @param column
* @param index
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java b/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java
index aa9f84a..3e4a10a 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftChangeSet.java
@@ -84,7 +84,7 @@ public interface DriftChangeSet<D extends Drift<?, ?>> {
void setVersion(int version);
/**
- * Retturns the category that identifies the change set type.
+ * Returns the category that identifies the change set type.
* @return The change set category
* @see DriftChangeSetCategory
*/
@@ -104,7 +104,7 @@ public interface DriftChangeSet<D extends Drift<?, ?>> {
* value must be stored with the change set such that it can be applied consistently when
* handling the associated drift.
*
- * @return The {@link DriftDefinition.DriftHandlingMode} mode
+ * @return The {@link DriftHandlingMode} mode
*/
DriftHandlingMode getDriftHandlingMode();
@@ -114,7 +114,7 @@ public interface DriftChangeSet<D extends Drift<?, ?>> {
* value set on the owning drift definition can change, the value must be stored with
* the change set such that it can be applied consistently when handling the associated drift.
*
- * @param driftHandlingMode The {@link DriftDefinition.DriftHandlingMode} mode
+ * @param driftHandlingMode The {@link DriftHandlingMode} mode
*/
void setDriftHandlingMode(DriftHandlingMode driftHandlingMode);
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java b/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java
index dd3d676..b8f127e 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/drift/DriftSnapshot.java
@@ -89,7 +89,7 @@ public class DriftSnapshot implements Serializable {
/**
* @param changeSet The drifts must be set for the changeSet
- * @return
+ * @return the snapshot
*/
public DriftSnapshot addChangeSet(DriftChangeSet<? extends Drift<?, ?>> changeSet) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java
index cadf0fd..1a52721 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementAggregate.java
@@ -72,9 +72,7 @@ public class MeasurementAggregate implements Serializable {
}
/**
- * Return true if the aggregate has "no real data" I.e. when all values are Not A Number.
- *
- * @return
+ * @return true if the aggregate has "no real data" I.e. when all values are Not A Number.
*/
public boolean isEmpty() {
return min.isNaN() && avg.isNaN() && max.isNaN();
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java
index acf0b23..60f1c11 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/ui/MeasurementSummary.java
@@ -75,8 +75,8 @@ public class MeasurementSummary implements java.io.Serializable {
/**
* @param availUp The availUp to set
*/
- public void setAvailUp(Integer currentConfigured) {
- this.availUp = currentConfigured;
+ public void setAvailUp(Integer availUp) {
+ this.availUp = availUp;
}
/**
@@ -89,8 +89,8 @@ public class MeasurementSummary implements java.io.Serializable {
/**
* @param availDown The availDown to set
*/
- public void setAvailDown(Integer unavailConfigured) {
- this.availDown = unavailConfigured;
+ public void setAvailDown(Integer availDown) {
+ this.availDown = availDown;
}
/**
@@ -104,8 +104,8 @@ public class MeasurementSummary implements java.io.Serializable {
* Sets the availUnknown.
* @param availUnknown The availUnknown to set
*/
- public void setAvailUnknown(Integer totalConfigured) {
- this.availUnknown = totalConfigured;
+ public void setAvailUnknown(Integer availUnknown) {
+ this.availUnknown = availUnknown;
}
/**
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java
index 375c79d..3670e2c 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/InventorySummary.java
@@ -23,9 +23,8 @@ import java.io.Serializable;
/**
* A summary of inventoried {@link org.rhq.core.domain.resource.Resource}s and
* {@link org.rhq.core.domain.resource.group.Group}s that are viewable by the specified user. The summary includes the
- * total number of platforms, servers, services, {@link org.rhq.core.domain.resource.group.CompatibleGroup}s, and
- * {@link org.rhq.core.domain.resource.group.MixedGroup}s. Only Resources with an inventory status of COMMITTED are
- * tallied.
+ * total number of platforms, servers, services, compatible groups, and mixed groups.
+ * Only Resources with an inventory status of COMMITTED are tallied.
*
* @author Ian Springer
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index 8fc65a8..cd09f20 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -1099,7 +1099,7 @@ public class Resource implements Comparable<Resource>, Serializable {
}
/**
- * Constructor that allows the caller to choose what Set impl is used for the {@link #childResources} field.
+ * Constructor that allows the caller to choose what Set implementation is used for the <code>childResources</code> field.
*
* @param childResources the Set that will be used to hold this Resource's child Resources
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java
index 265fc4b..5fbc911 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourcePermission.java
@@ -28,10 +28,11 @@ import java.util.HashSet;
import java.util.Set;
import org.rhq.core.domain.authz.Permission;
+import org.rhq.core.domain.authz.Permission.Target;
/**
* A set of permissions that apply to a particular Resource or ResourceGroup (i.e. {@link Permission}s where
- * {@link Permission#getTarget()} is {@link Permission.Target#RESOURCE}
+ * {@link Permission#getTarget()} is {@link Target#RESOURCE}
*
* @author Joseph Marques
* @author Greg Hinkle
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java
index 2d74bda..f02f2ba 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/FlyweightCache.java
@@ -62,7 +62,7 @@ public class FlyweightCache {
}
/**
- * @see #constructResource(int, String, String, Integer, int, AvailabilityType)
+ * @see #constructResource(int, String, String, String, Integer, int, AvailabilityType)
*
* @param original the resource
* @return the initialized resource flyweight
@@ -140,7 +140,7 @@ public class FlyweightCache {
}
/**
- * @see #constructSubCategory(int, String, Integer, FlyweightCache)
+ * @see #constructSubCategory(int, String, Integer, String)
*
* @param original
* @return a fully initialized resource sub category flyweight
@@ -167,7 +167,6 @@ public class FlyweightCache {
* @param name
* @param parentSubCategoryId
* @param parentSubCategoryName
- * @param cache
* @return a fully initialized resource sub category flyweight
*/
public ResourceSubCategoryFlyweight constructSubCategory(int id, String name, Integer parentSubCategoryId,
@@ -196,7 +195,7 @@ public class FlyweightCache {
}
/**
- * @see #construct(int, String, String, ResourceCategory, Integer, FlyweightCache)
+ * @see #constructResourceType(int, String, String, boolean, ResourceCategory, Integer)
*
* @param original the original resource type
* @return a fully initialized resource type flyweight
@@ -228,8 +227,7 @@ public class FlyweightCache {
* @param singleton true if the resource type is a singleton
* @param category the resource type category
* @param subCategory the id of the resource type sub category or null
- * @param cache the flyweight cache
- * @return
+ * @return the resource type flyweight
*/
public ResourceTypeFlyweight constructResourceType(int id, String name, String plugin, boolean singleton,
ResourceCategory category, Integer subCategory) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java
index c12f554..d0f8b1f 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ClusterKey.java
@@ -57,7 +57,7 @@ public class ClusterKey implements Serializable {
public ClusterKey() {
}
- /** Construct ClusterKey with to-be-defined Hierarcrhy */
+ /** Construct ClusterKey with to-be-defined Hierarchy */
public ClusterKey(int clusterResourceGroupId) {
this.clusterGroupId = clusterResourceGroupId;
this.hierarchy = new ArrayList<ClusterKey.Node>();
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java b/modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java
index c110f4b..0071bfc 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/util/DisambiguationReportRenderer.java
@@ -32,7 +32,7 @@ import org.rhq.core.domain.resource.composite.DisambiguationReport.ResourceType;
* It supports a simple templating mechanism to configure the representation's format.
* <p>
* In the {@link DisambiguationReport}, a resource (either the resource being disambiguated or one of its parents)
- * is represented by an instance of {@link DisambiguationReport.Resource}. The template uses this instance and its
+ * is represented by an instance of {@link org.rhq.core.domain.resource.composite.DisambiguationReport.Resource}. The template uses this instance and its
* properties:
* <ul>
* <li>id - the resource id
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java b/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java
index d66783a..3425f21 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageList.java
@@ -28,8 +28,6 @@ import java.util.Collection;
import javax.xml.bind.annotation.XmlRootElement;
-import org.rhq.core.domain.criteria.Criteria;
-
/**
* Tracks the result set for a paginated data lookup. Includes the data and the total rows that are available.
*
@@ -74,7 +72,7 @@ public class PageList<E> extends ArrayList<E> implements Serializable {
* @param totalSize the total number of records of which this instance contains a subset of
* @param pageControl defines what subset of data is contained in this instance
*
- * @see Criteria.Restriction#COUNT_ONLY
+ * @see org.rhq.core.domain.criteria.Criteria.Restriction#COUNT_ONLY
*/
public PageList(int totalSize, PageControl pageControl) {
super();
@@ -92,7 +90,7 @@ public class PageList<E> extends ArrayList<E> implements Serializable {
* this instance
* @param pageControl defines what subset of the total number of items is present in this instance
*
- * @see Criteria.Restriction#COLLECTION_ONLY
+ * @see org.rhq.core.domain.criteria.Criteria.Restriction#COLLECTION_ONLY
*/
public PageList(Collection<? extends E> collection, PageControl pageControl) {
super(collection);
@@ -147,6 +145,7 @@ public class PageList<E> extends ArrayList<E> implements Serializable {
* Returns the total size of the "master list" that this page is a subset of.
* <p/>
* <b>Note:</b> This method merely returns the size of this list if it is {@link #isUnbounded() unbounded}.
+ * @return the total size
*/
public int getTotalSize() {
return Math.max(this.size(), this.totalSize);
@@ -178,7 +177,7 @@ public class PageList<E> extends ArrayList<E> implements Serializable {
}
/**
- * @see {@link PageControl#isConsistentWith(PageList)}
+ * @see PageControl#isConsistentWith(PageList)
*
* @return true if this page list is consistent with its page control
*/
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java b/modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java
index 3afe0ed..706f741 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/util/serial/HibernateUtil.java
@@ -33,7 +33,7 @@ public class HibernateUtil {
* for ensuring that we don't serialize Hibernate types.
* @param <T>
* @param list
- * @return
+ * @return the safe list
*/
public static <T> List<T> safeList(List<T> list) {
if (null == list) {
@@ -48,7 +48,7 @@ public class HibernateUtil {
* for ensuring that we don't serialize Hibernate types.
* @param <T>
* @param set
- * @return
+ * @return the safe set
*/
public static <T> Set<T> safeSet(Set<T> set) {
if (null == set) {
@@ -63,7 +63,7 @@ public class HibernateUtil {
* for ensuring that we don't serialize Hibernate types.
* @param <T>
* @param collection
- * @return
+ * @return the safe collection
*/
public static <T> Collection<T> safeCollection(Collection<T> collection) {
if (null == collection) {
@@ -79,7 +79,7 @@ public class HibernateUtil {
* @param <K>
* @param <V>
* @param map
- * @return
+ * @return the safe map
*/
public static <K, V> Map<K, V> safeMap(Map<K, V> map) {
if (null == map) {
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java b/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
index b3d7691..a2da64b 100644
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
+++ b/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
@@ -319,7 +319,7 @@ public class QueryAllTest extends AbstractEJB3Test {
*
* @param entity
*
- * @return
+ * @return not null
*/
public List<NamedQuery> getNamedQueriesForEntity(String entity) {
List<NamedQuery> lnq = new ArrayList<NamedQuery>();
diff --git a/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml b/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
index 49d2d21..aec9655 100644
--- a/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
+++ b/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
@@ -78,4 +78,18 @@
<justification>Adding a method to a remote API interface is safe.</justification>
</difference>
+ <difference>
+ <className>org/rhq/enterprise/server/configuration/ConfigurationManagerRemote</className>
+ <differenceType>7012</differenceType> <!-- method added to an interface -->
+ <method>org.rhq.core.domain.util.PageList findGroupPluginConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria)</method>
+ <justification>Adding a method to a remote API interface is safe.</justification>
+ </difference>
+
+ <difference>
+ <className>org/rhq/enterprise/server/configuration/ConfigurationManagerRemote</className>
+ <differenceType>7012</differenceType> <!-- method added to an interface -->
+ <method>org.rhq.core.domain.util.PageList findGroupResourceConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria)</method>
+ <justification>Adding a method to a remote API interface is safe.</justification>
+ </difference>
+
</differences>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
index 5d5711e..676be4a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
@@ -23,10 +23,8 @@ import java.util.List;
import javax.ejb.Local;
import org.rhq.core.domain.alert.AlertDefinition;
-import org.rhq.core.domain.alert.notification.AlertNotification;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.composite.IntegerOptionItem;
-import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
@@ -36,7 +34,7 @@ import org.rhq.core.domain.util.PageList;
* @author Joseph Marques
*/
@Local
-public interface AlertDefinitionManagerLocal {
+public interface AlertDefinitionManagerLocal extends AlertDefinitionManagerRemote {
PageList<AlertDefinition> findAlertDefinitions(Subject subject, int resourceId, PageControl pageControl);
AlertDefinition getAlertDefinitionById(Subject subject, int alertDefinitionId);
@@ -64,9 +62,8 @@ public interface AlertDefinitionManagerLocal {
* @throws InvalidAlertDefinitionException
*/
AlertDefinition createAlertDefinitionInNewTransaction(Subject subject, AlertDefinition alertDefinition,
- Integer resourceId, boolean finalizeNotificationConfiguration)
- throws InvalidAlertDefinitionException;
-
+ Integer resourceId, boolean finalizeNotificationConfiguration) throws InvalidAlertDefinitionException;
+
/**
* This is exactly the same as {@link #createAlertDefinitionInNewTransaction(Subject, AlertDefinition, Integer, boolean)} but
* assumes the resource is part of a group (or has given resource type for templates) for which
@@ -128,32 +125,15 @@ public interface AlertDefinitionManagerLocal {
* @throws InvalidAlertDefinitionException
* @throws AlertDefinitionUpdateException
*/
- AlertDefinition updateDependentAlertDefinition(Subject subject, int alertDefinitionId, AlertDefinition alertDefinition, boolean resetMatching) throws InvalidAlertDefinitionException, AlertDefinitionUpdateException;
+ AlertDefinition updateDependentAlertDefinition(Subject subject, int alertDefinitionId,
+ AlertDefinition alertDefinition, boolean resetMatching) throws InvalidAlertDefinitionException,
+ AlertDefinitionUpdateException;
int purgeUnusedAlertDefinitions();
void purgeInternals(int alertDefinitionId);
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- AlertDefinition getAlertDefinition(Subject subject, int alertDefinitionId);
-
- PageList<AlertDefinition> findAlertDefinitionsByCriteria(Subject subject, AlertDefinitionCriteria criteria);
-
- int enableAlertDefinitions(Subject subject, int[] alertDefinitionIds);
-
- int disableAlertDefinitions(Subject subject, int[] alertDefinitionIds);
-
- int removeAlertDefinitions(Subject subject, int[] alertDefinitionIds);
-
- String[] getAlertNotificationConfigurationPreview(Subject sessionSubject, AlertNotification[] notifications);
-
AlertDefinition updateAlertDefinitionInternal(Subject subject, int alertDefinitionId,
- AlertDefinition alertDefinition, boolean resetMatching,
- boolean checkPerms, boolean finalizeNotifications) throws InvalidAlertDefinitionException,
- AlertDefinitionUpdateException;
+ AlertDefinition alertDefinition, boolean resetMatching, boolean checkPerms, boolean finalizeNotifications)
+ throws InvalidAlertDefinitionException, AlertDefinitionUpdateException;
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java
index 3a6e8bb..2da630e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerRemote.java
@@ -26,24 +26,52 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for Alert Definitions.
+ */
@Remote
public interface AlertDefinitionManagerRemote {
- AlertDefinition getAlertDefinition(//
- Subject subject, int alertDefinitionId);
+ /**
+ * @param subject
+ * @param alertDefinitionId
+ * @return the alert definition or null
+ */
+ AlertDefinition getAlertDefinition(Subject subject, int alertDefinitionId);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<AlertDefinition> findAlertDefinitionsByCriteria(Subject subject, AlertDefinitionCriteria criteria);
- int enableAlertDefinitions(//
- Subject subject, int[] alertDefinitionIds);
+ /**
+ * @param subject
+ * @param alertDefinitionIds
+ * @return number of modified definitions
+ */
+ int enableAlertDefinitions(Subject subject, int[] alertDefinitionIds);
- int disableAlertDefinitions(//
- Subject subject, int[] alertDefinitionIds);
+ /**
+ * @param subject
+ * @param alertDefinitionIds
+ * @return number of modified definitions
+ */
+ int disableAlertDefinitions(Subject subject, int[] alertDefinitionIds);
- int removeAlertDefinitions(//
- Subject subject, int[] alertDefinitionIds);
+ /**
+ * @param subject
+ * @param alertDefinitionIds
+ * @return number of removed definitions
+ */
+ int removeAlertDefinitions(Subject subject, int[] alertDefinitionIds);
- String[] getAlertNotificationConfigurationPreview(//
- Subject subject, AlertNotification[] notifications);
+ /**
+ * @param subject
+ * @param notifications
+ * @return not null
+ */
+ String[] getAlertNotificationConfigurationPreview(Subject subject, AlertNotification[] notifications);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java
index 99637e6..a1a8631 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerRemote.java
@@ -26,17 +26,48 @@ import org.rhq.core.domain.common.EntityContext;
import org.rhq.core.domain.criteria.AlertCriteria;
import org.rhq.core.domain.util.PageList;
+/**
+ * Alert Manager Remote API.
+ */
@Remote
public interface AlertManagerRemote {
+ /**
+ * @param subject
+ * @param criteria
+ * @return no null
+ */
PageList<Alert> findAlertsByCriteria(Subject subject, AlertCriteria criteria);
+ /**
+ * @param subject
+ * @param alertIds
+ * @return number of deleted alerts
+ */
int deleteAlerts(Subject subject, int[] alertIds);
+ // TODO (jshaughn) Should this be deprecated, seems an odd method to expose.
+ /**
+ * Requires Manage Settings permission.
+ *
+ * @param subject
+ * @param context
+ * @return number of deleted alerts
+ */
int deleteAlertsByContext(Subject subject, EntityContext context);
+ /**
+ * @param subject
+ * @param alertIds
+ * @return number of acknowledged alerts
+ */
int acknowledgeAlerts(Subject subject, int[] alertIds);
+ /**
+ * @param subject
+ * @param context
+ * @return number of acknowledged alerts
+ */
int acknowledgeAlertsByContext(Subject subject, EntityContext context);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
index 4470d53..694eb93 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
@@ -27,6 +27,10 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.authz.RoleManagerLocal;
import org.rhq.enterprise.server.exception.LoginException;
+/**
+ * Subject manager remote API. Typically requires <code>MANAGE_SECURITY</code> permission.
+ *
+ */
@Remote
public interface SubjectManagerRemote {
@@ -45,9 +49,8 @@ public interface SubjectManagerRemote {
*
* @param subject The logged in user's subject.
* @param username The username part of the principal
- * @param password The password part ofthe principal
- *
- * @throws Exception if the principal could not be added
+ * @param password The password part of the principal
+ * @throws SubjectException if the principal could not be added
*/
void createPrincipal(Subject subject, String username, String password) throws SubjectException;
@@ -59,6 +62,7 @@ public interface SubjectManagerRemote {
* @param subjectToCreate The subject to be created.
*
* @return the newly persisted {@link Subject}
+ * @throws SubjectException
*/
Subject createSubject(Subject subject, Subject subjectToCreate) throws SubjectException;
@@ -68,8 +72,6 @@ public interface SubjectManagerRemote {
*
* @param subject The logged in user's subject.
* @param subjectIds identifies the subject IDs for all the users that are to be deleted
- *
- * @throws Exception if failed to delete one or more users
*/
void deleteSubjects(Subject subject, int[] subjectIds);
@@ -79,11 +81,12 @@ public interface SubjectManagerRemote {
* @param username the name of the subject to look for
*
* @return the subject that was found or <code>null</code> if not found
- *
+ *
* @deprecated This method should be avoided as it may be removed in
* a future release. Given that multiple sessions may exist for a
* single user the result of this call is non-deterministic.
*/
+ @Deprecated
Subject getSubjectByName(String username);
/**
@@ -93,7 +96,7 @@ public interface SubjectManagerRemote {
* @param sessionId The sessionId of the desired Subject.
*
* @return The Subject that was found
- *
+ *
* @throws Exception if the sessionId is not valid
*/
Subject getSubjectByNameAndSessionId(String username, int sessionId) throws Exception;
@@ -129,5 +132,10 @@ public interface SubjectManagerRemote {
*/
Subject updateSubject(Subject subject, Subject subjectToModify);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Subject> findSubjectsByCriteria(Subject subject, SubjectCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java
index 47a7f55..fb39e3e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerRemote.java
@@ -74,14 +74,22 @@ public interface RoleManagerRemote {
/**
* Get all roles assigned for a certain subject
- *
+ *
* @param subject The logged in user's subject
- * @param subjectId The subject ID to find the associated roles for
+ * @param subjectId The subject ID to find the associated roles for
* @param pc PageControl
* @return A page list of assigned
*/
PageList<Role> findSubjectAssignedRoles(Subject subject, int subjectId, PageControl pc);
+ /**
+ * Get all roles eligible to be assigned to the user.
+ *
+ * @param subject
+ * @param subjectId
+ * @param pc
+ * @return not null
+ */
PageList<Role> findSubjectUnassignedRoles(Subject subject, int subjectId, PageControl pc);
/**
@@ -94,7 +102,7 @@ public interface RoleManagerRemote {
void addRolesToSubject(Subject subject, int subjectId, int[] roleIds);
/**
- * Disassociates particular roles from a subject. Once complete, the subject will no longer be authorized with the
+ * Remove particular roles from a subject. Once complete, the subject will no longer be authorized with the
* given roles.
*
* @param subject The logged in user's subject.
@@ -114,7 +122,7 @@ public interface RoleManagerRemote {
/**
* Dissociate particular subjects from a role.
- *
+ *
* @param subject The logged in user's subject.
* @param roleId The role ID to dissociate the roles from
* @param subjectIds The IDs of the subjects to remove from the specified Role
@@ -147,12 +155,36 @@ public interface RoleManagerRemote {
*/
void addResourceGroupsToRole(Subject subject, int roleId, int[] pendingGroupIds);
+ /**
+ * @param subject
+ * @param bundleGroupId
+ * @param roleIds
+ */
void addRolesToBundleGroup(Subject subject, int bundleGroupId, int[] roleIds);
+ /**
+ * @param subject
+ * @param groupId
+ * @param roleIds
+ */
void addRolesToResourceGroup(Subject subject, int groupId, int[] roleIds);
+ /**
+ * Set the specified bundle groups on the role, replacing the previous set of bundle groups.
+ *
+ * @param subject
+ * @param roleId
+ * @param bundleGroupIds
+ */
void setAssignedBundleGroups(Subject subject, int roleId, int[] bundleGroupIds);
+ /**
+ * Set the specified resource groups on the role, replacing the previous set of resource groups.
+ *
+ * @param subject
+ * @param roleId
+ * @param groupIds
+ */
void setAssignedResourceGroups(Subject subject, int roleId, int[] groupIds);
/**
@@ -173,10 +205,29 @@ public interface RoleManagerRemote {
*/
void removeResourceGroupsFromRole(Subject subject, int roleId, int[] groupIds);
+ /**
+ * Remove the bundle group from the specified roles.
+ *
+ * @param subject
+ * @param bundleGroupId
+ * @param roleIds
+ */
void removeRolesFromBundleGroup(Subject subject, int bundleGroupId, int[] roleIds);
+ /**
+ * Remove the resource group from the specified roles.
+ *
+ * @param subject
+ * @param groupId
+ * @param roleIds
+ */
void removeRolesFromResourceGroup(Subject subject, int groupId, int[] roleIds);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Role> findRolesByCriteria(Subject subject, RoleCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java
index 079fff7..4c694eb 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerRemote.java
@@ -49,7 +49,7 @@ import org.rhq.core.domain.util.PageList;
/**
* Remote interface to the manager responsible for creating and managing bundles.
- *
+ *
* @author John Mazzitelli
* @author Jay Shaughnessy
*/
@@ -60,7 +60,7 @@ public interface BundleManagerRemote {
* Given the ID for a compatible group, this will return the bundle configuration metadata for that group's resource type.
* User interfaces will need to use this method in order to find out if a) the group can be a target for a bundle deployment
* and/or b) what different destination base locations are supported by the group.
- *
+ *
* @param subject the user making the request
* @param compatGroupId the ID for a compatible group whose type's bundle config is to be returned
* @return the bundle configuration for the group's resource type
@@ -79,7 +79,7 @@ public interface BundleManagerRemote {
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
* @param subject user that must have proper permissions
- * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
* @param name name of the BundleFile (and the resulting Package)
* @param version version of the backing package
* @param architecture architecture appropriate for the backing package. Defaults to noarch (i.e. any architecture).
@@ -100,6 +100,14 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param name name of the BundleFile (and the resulting Package)
+ * @param version version of the backing package
+ * @param architecture architecture appropriate for the backing package. Defaults to noarch (i.e. any architecture).
+ * @param fileBytes
+ * @return the new BundleFile
+ * @throws Exception
* @see {@link #addBundleFile(Subject, int, String, String, Architecture, InputStream)}
*/
BundleFile addBundleFileViaByteArray(Subject subject, int bundleVersionId, String name, String version,
@@ -113,6 +121,14 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param name name of the BundleFile (and the resulting Package)
+ * @param version version of the backing package
+ * @param architecture architecture appropriate for the backing package. Defaults to noarch (i.e. any architecture).
+ * @param bundleFileUrl
+ * @return the new BundleFile
+ * @throws Exception
* @see #addBundleFile(Subject, int, String, String, Architecture, InputStream)
*/
BundleFile addBundleFileViaURL(Subject subject, int bundleVersionId, String name, String version,
@@ -127,6 +143,16 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param name name of the BundleFile (and the resulting Package)
+ * @param version version of the backing package
+ * @param architecture architecture appropriate for the backing package. Defaults to noarch (i.e. any architecture).
+ * @param bundleFileUrl
+ * @param userName
+ * @param password
+ * @return the new BundleFile
+ * @throws Exception
* @see #addBundleFileViaURL(Subject, int, String, String, Architecture, String)
*/
BundleFile addBundleFileViaURL(Subject subject, int bundleVersionId, String name, String version,
@@ -140,6 +166,12 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleVersionId id of the BundleVersion incorporating this BundleFile
+ * @param name name of the BundleFile (and the resulting Package)
+ * @param packageVersionId
+ * @return the new BundleFile
+ * @throws Exception
* @see {@link #addBundleFile(Subject, int, String, String, Architecture, InputStream)}
*/
BundleFile addBundleFileViaPackageVersion(Subject subject, int bundleVersionId, String name, int packageVersionId)
@@ -165,7 +197,7 @@ public interface BundleManagerRemote {
* Create a new bundle deployment. Note that bundle deployment names are generated by this
* call. This provides useful, uniform naming for display. An optional, custom description
* can be added. This call defines a deployment. The defined deployment can then be
- * scheduled in a separate call.
+ * scheduled in a separate call.
* <pre>
* Required Permissions: Either:
* - Global.DEPLOY_BUNDLES and a view of the relevant bundle and a view of the relevant resource group (may involve multiple roles)
@@ -174,7 +206,7 @@ public interface BundleManagerRemote {
* @param subject user that must have proper permissions
* @param bundleVersionId the BundleVersion being deployed by this deployment
* @param bundleDestinationId the BundleDestination for the deployment
- * @param description an optional longer description describing this deployment
+ * @param description an optional longer description describing this deployment
* @param configuration a Configuration (pojo) to be associated with this deployment. Although
* it is not enforceable must be that of the associated BundleVersion.
* @return the persisted deployment
@@ -193,13 +225,13 @@ public interface BundleManagerRemote {
* @param subject user must have MANAGE_INVENTORY permission
* @param bundleId the Bundle to be deployed to this Destination
* @param name a name for this destination. not null or empty
- * @param description an optional longer description describing this destination
+ * @param description an optional longer description describing this destination
* @param destBaseDirName The name of the base directory location where the bundle will be deployed.
* <code>deployDir</code> is relative to the directory that this name refers to.
* This name isn't the directory itself, it refers to the named location as
* defined in the agent plugin's descriptor for the resource's type
* @param deployDir the root dir for deployments to this destination
- * @param groupId the target platforms for deployments to this destination
+ * @param groupId the target platforms for deployments to this destination
* @return the persisted destination
* @throws Exception
*/
@@ -211,7 +243,7 @@ public interface BundleManagerRemote {
* <pre>
* Require Permissions:
* - Global.MANAGE_BUNDLE_GROUPS
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param bundleGroup the new bundle group name the unique bundle group name
* @return the persisted BundleGroup
@@ -223,7 +255,7 @@ public interface BundleManagerRemote {
* Creates a bundle version based on single recipe string. The recipe specifies the bundle name,
* version, version name and version description. If this is the initial version for the named
* bundle the bundle will be implicitly created. The bundle type is discovered by the bundle server
- * plugin that can parse the recipe.
+ * plugin that can parse the recipe.
* </p>
* If this bundle version is the initial version of a new bundle that needs to be created, the subject must
* have Global.VIEW_BUNDLES because the new bundle will not be associated with any bundle group.
@@ -237,6 +269,7 @@ public interface BundleManagerRemote {
* @param recipe the recipe that defines the bundle version to be created
* @return the persisted BundleVersion with alot of the internal relationships filled in to help the caller
* understand all that this method did.
+ * @throws Exception
*/
BundleVersion createBundleVersionViaRecipe(Subject subject, String recipe) throws Exception;
@@ -258,6 +291,7 @@ public interface BundleManagerRemote {
* @param recipe the recipe that defines the bundle version to be created
* @return the persisted BundleVersion with alot of the internal relationships filled in to help the caller
* understand all that this method did.
+ * @throws Exception
*/
BundleVersion createInitialBundleVersionViaRecipe(Subject subject, int[] bundleGroupIds, String recipe)
throws Exception;
@@ -267,7 +301,7 @@ public interface BundleManagerRemote {
* contains the recipe for a supported bundle type, along with 0, 1 or more bundle files that will be associated
* with the bundle version. The recipe specifies the bundle name, version, version name and version description.
* If this is the initial version for the named bundle the bundle will be implicitly created. The bundle type
- * is discovered by inspecting the distribution file.
+ * is discovered by inspecting the distribution file.
* </p>
* If this bundle version is the initial version of a new bundle that needs to be created, the subject must
* have Global.VIEW_BUNDLES because the new bundle will not be associated with any bundle group.
@@ -279,14 +313,20 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param distributionFile a local Bundle Distribution file. It must be read accessible by the RHQ server process.
- * @return the persisted BundleVersion with alot of the internal relationships filled in to help the caller
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
* understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
*/
BundleVersion createBundleVersionViaFile(Subject subject, File distributionFile) throws Exception;
/**
* Like {@link #createBundleVersionViaFile(org.rhq.core.domain.auth.Subject, java.io.File)} except that this method
* takes a <code>temporaryContentHandle</code> as parameter instead of a file.
+ * @param subject user that must have proper permissions
+ * @param temporaryContentHandle
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
+ * understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
*
* @see org.rhq.enterprise.server.content.ContentManagerRemote#createTemporaryContentHandle()
* @see org.rhq.enterprise.server.content.ContentManagerRemote#uploadContentFragment(String, byte[], int, int)
@@ -310,7 +350,7 @@ public interface BundleManagerRemote {
* @param bundleGroupIds identifies the bundle groups that the new bundle will be associated with; null or zero
* length to leave unassigned.
* @param distributionFile a local Bundle Distribution file. It must be read accessible by the RHQ server process.
- * @return the persisted BundleVersion with alot of the internal relationships filled in to help the caller
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
* understand all that this method did. Bundle files specifically are returned.
* @throws Exception
*/
@@ -336,6 +376,7 @@ public interface BundleManagerRemote {
* @param fileBytes the file bits that make up the entire bundle distribution file
* @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
* understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
*/
BundleVersion createBundleVersionViaByteArray(Subject subject, byte[] fileBytes) throws Exception;
@@ -350,7 +391,7 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and Global.VIEW_BUNDLES
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param bundleGroupIds identifies the bundle groups that the new bundle will be associated with; null or zero
* length to leave unassigned.
@@ -381,10 +422,11 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param distributionFileUrl a URL String to the Bundle Distribution file. It must be live, resolvable and read accessible
- * by the RHQ server process.
- *
+ * by the RHQ server process.
+ *
* @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
* understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
*/
BundleVersion createBundleVersionViaURL(Subject subject, String distributionFileUrl) throws Exception;
@@ -424,6 +466,13 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param distributionFileUrl
+ * @param username
+ * @param password
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
+ * understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
* @see #createBundleVersionViaURL(org.rhq.core.domain.auth.Subject, String)
*/
BundleVersion createBundleVersionViaURL(Subject subject, String distributionFileUrl, String username,
@@ -441,6 +490,15 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG
* </pre>
+ * @param subject user that must have proper permissions
+ * @param bundleGroupIds identifies the bundle groups that the new bundle will be associated with; null or zero
+ * length to leave unassigned.
+ * @param distributionFileUrl
+ * @param username
+ * @param password
+ * @return the persisted BundleVersion with a lot of the internal relationships filled in to help the caller
+ * understand all that this method did. Bundle files specifically are returned.
+ * @throws Exception
* @see #createBundleVersionViaURL(org.rhq.core.domain.auth.Subject, String)
*/
BundleVersion createInitialBundleVersionViaURL(Subject subject, int[] bundleGroupIds, String distributionFileUrl,
@@ -459,7 +517,7 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param bundleIds IDs of all bundles to be deleted
- * @throws Exception if any part of the removal fails.
+ * @throws Exception if any part of the removal fails.
*/
void deleteBundles(Subject subject, int[] bundleIds) throws Exception;
@@ -476,7 +534,7 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param bundleId the id of the bundle to remove
- * @throws Exception if any part of the removal fails.
+ * @throws Exception if any part of the removal fails.
*/
void deleteBundle(Subject subject, int bundleId) throws Exception;
@@ -485,7 +543,7 @@ public interface BundleManagerRemote {
* <pre>
* Required Permissions:
* - Global.MANAGE_BUNDLE_GROUPS
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param ids the bundle group id
* @throws Exception
@@ -507,31 +565,43 @@ public interface BundleManagerRemote {
* @param bundleVersionId the id of the bundle version to remove
* @param deleteBundleIfEmpty if <code>true</code> and if this method deletes the last bundle version for its
* bundle, then that bundle entity itself will be completely purged
- * @throws Exception if any part of the removal fails.
+ * @throws Exception if any part of the removal fails.
*/
void deleteBundleVersion(Subject subject, int bundleVersionId, boolean deleteBundleIfEmpty) throws Exception;
/**
* Return the <code>Bundles</code> narrowed by the supplied Criteria. The results are implicitly
- * narrowed to those bundles viewable by the <code>subject</code>.
+ * narrowed to those bundles viewable by the <code>subject</code>.
+ * @param subject
+ * @param criteria
+ * @return not null
*/
PageList<Bundle> findBundlesByCriteria(Subject subject, BundleCriteria criteria);
/**
* Return the <code>BundleGroups</code> narrowed by the supplied Criteria. The results are implicitly
- * narrowed to those bundle groups viewable by the <code>subject</code>.
+ * narrowed to those bundle groups viewable by the <code>subject</code>.
+ * @param subject
+ * @param criteria
+ * @return not null
*/
PageList<BundleGroup> findBundleGroupsByCriteria(Subject subject, BundleGroupCriteria criteria);
/**
* Return the <code>BundleDeployments</code> narrowed by the supplied Criteria. The results are implicitly
- * narrowed to those for bundles and destination groups viewable by the <code>subject</code>.
+ * narrowed to those for bundles and destination groups viewable by the <code>subject</code>.
+ * @param subject
+ * @param criteria
+ * @return not null
*/
PageList<BundleDeployment> findBundleDeploymentsByCriteria(Subject subject, BundleDeploymentCriteria criteria);
/**
* Return the <code>BundleDestinations</code> narrowed by the supplied Criteria. The results are implicitly
- * narrowed to those with destination resource groups viewable by the <code>subject</code>.
+ * narrowed to those with destination resource groups viewable by the <code>subject</code>.
+ * @param subject
+ * @param criteria
+ * @return not null
*/
PageList<BundleDestination> findBundleDestinationsByCriteria(Subject subject, BundleDestinationCriteria criteria);
@@ -540,23 +610,47 @@ public interface BundleManagerRemote {
* viewable by <code>subject</code>. If optionally requesting the relevant Resources
* via <code>BundleResourceDeploymentCriteria.fetchResources(true)</code> the results will be further narrowed to
* the viewable resources.
- *
+ *
* @param subject
* @param criteria
- * @return
+ * @return not null
*/
PageList<BundleResourceDeployment> findBundleResourceDeploymentsByCriteria(Subject subject,
BundleResourceDeploymentCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<BundleFile> findBundleFilesByCriteria(Subject subject, BundleFileCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<BundleVersion> findBundleVersionsByCriteria(Subject subject, BundleVersionCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<BundleWithLatestVersionComposite> findBundlesWithLatestVersionCompositesByCriteria(Subject subject,
BundleCriteria criteria);
+ /**
+ * @param subject
+ * @return not null
+ */
List<BundleType> getAllBundleTypes(Subject subject);
+ /**
+ * @param subject
+ * @param bundleTypeName must exist
+ * @return the bundle type
+ */
BundleType getBundleType(Subject subject, String bundleTypeName);
/**
@@ -568,11 +662,11 @@ public interface BundleManagerRemote {
* - Global.CREATE_BUNDLES and Global.VIEW_BUNDLES
* - Global.CREATE_BUNDLES and BundleGroup.VIEW_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
* - BundleGroup.CREATE_BUNDLES_IN_GROUP for bundle group BG and the relevant bundle is assigned to BG
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param bundleVersionId the BundleVersion being queried
* @param withoutBundleFileOnly if true omit any filenames that already have a corresponding BundleFile for
- * the BundleVersion.
+ * the BundleVersion.
* @return The List of filenames.
* @throws Exception
*/
@@ -588,6 +682,7 @@ public interface BundleManagerRemote {
* </pre>
* @param subject user that must have proper permissions
* @param bundleDestinationId the ID of the destination that is to be purged of bundle content
+ * @throws Exception
*/
void purgeBundleDestination(Subject subject, int bundleDestinationId) throws Exception;
@@ -605,8 +700,8 @@ public interface BundleManagerRemote {
* @param subject user that must have proper permissions
* @param bundleDeploymentId the BundleDeployment being used to guide the deployments
* @param isCleanDeployment if true perform a wipe of the deploy directory prior to the deployment. If false
- * perform as an upgrade to the existing deployment, if any.
- * @return the BundleDeployment record, updated with status and (resource) deployments.
+ * perform as an upgrade to the existing deployment, if any.
+ * @return the BundleDeployment record, updated with status and (resource) deployments.
* @throws Exception
*/
BundleDeployment scheduleBundleDeployment(Subject subject, int bundleDeploymentId, boolean isCleanDeployment)
@@ -616,22 +711,23 @@ public interface BundleManagerRemote {
* For the specified destination, revert from the current live deployment to the deployment it had replaced.
* A revert first rolls back to the previous deployment (bundle version and configuration) and then rolls forward
* by replacing changed files that had been backed up during the most recent (live) deployment.
- * The returned BundleDeployment represents the new live deployment and can be used to track the history of the
+ * The returned BundleDeployment represents the new live deployment and can be used to track the history of the
* individual revert deployments. Note that bundle deployment names are generated by this
* call. This provides useful, uniform naming for display. An optional, custom description can be added.
* <br/><br/>
- * TODO: Add the scheduling capability, currently it's Immediate.
+ * TODO: Add the scheduling capability, currently it's Immediate.
* </pre>
* Required Permissions: Either:
* - Global.DEPLOY_BUNDLES and a view of the relevant bundle and a view of the relevant resource group (may involve multiple roles)
* - Resource.DEPLOY_BUNDLES_TO_GROUP and a view of the relevant bundle and a view of the relevant resource group (may involve multiple roles)
*
* @param subject user that must have proper permissions
+ * @param bundleDestinationId the destination on which the revert should be applied
* @param deploymentDescription an optional longer description describing this deployment. If null defaults
- * to the description of the previous deployment.
+ * to the description of the previous deployment.
* @param isCleanDeployment if true perform a wipe of the deploy directory prior to the revert deployment. Backed up
* files will still be applied. If false perform as an upgrade to the existing deployment.
- * @return the BundleDeployment record, updated with status and (resource) deployments.
+ * @return the BundleDeployment record, updated with status and (resource) deployments.
* @throws Exception
*/
BundleDeployment scheduleRevertBundleDeployment(Subject subject, int bundleDestinationId,
@@ -642,11 +738,11 @@ public interface BundleManagerRemote {
* assigned. Others are ignored.
* <pre>
* Requires VIEW permission for the relevant bundles and one of:
- * - Global.MANAGE_BUNDLE_GROUPS
+ * - Global.MANAGE_BUNDLE_GROUPS
* - Global.DELETE_BUNDLE
* - BundleGroup.UNASSIGN_BUNDLES_FROM_GROUP for the relevant bundle group
* - BundleGroup.DELETE_BUNDLES_FROM_GROUP for the relevant bundle group
- * </pre>
+ * </pre>
* @param subject
* @param bundleGroupIds
* @param bundleIds
@@ -658,7 +754,7 @@ public interface BundleManagerRemote {
* <pre>
* Require Permissions:
* - Global.MANAGE_BUNDLE_GROUPS
- * </pre>
+ * </pre>
* @param subject user that must have proper permissions
* @param bundleGroup the updated bundle group
* @return the updated BundleGroup
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java
index cc755e7..7c0ae70 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerRemote.java
@@ -25,7 +25,6 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.cloud.StorageNode;
import org.rhq.core.domain.cloud.StorageNodeConfigurationComposite;
import org.rhq.core.domain.cloud.StorageNodeLoadComposite;
-import org.rhq.core.domain.cloud.StorageNode.OperationMode;
import org.rhq.core.domain.criteria.StorageNodeCriteria;
import org.rhq.core.domain.util.PageList;
@@ -99,8 +98,9 @@ public interface StorageNodeManagerRemote {
*
* <p>The subject needs to have <code>MANAGE_SETTINGS</code> permissions.</p>
*
- * @param subject user that must have proper permissions
- * @return storage nodes alerts not acknowledged
+ * @param subject user that must have proper permissions
+ * @param storageNode the storage node
+ * @return storage nodes alerts not acknowledged
*/
PageList<Alert> findNotAcknowledgedStorageNodeAlerts(Subject subject, StorageNode storageNode);
@@ -119,8 +119,9 @@ public interface StorageNodeManagerRemote {
*
* <p>The subject needs to have <code>MANAGE_SETTINGS</code> permissions.</p>
*
- * @param subject user that must have proper permissions
- * @return all storage nodes alerts
+ * @param subject user that must have proper permissions
+ * @param storageNode the storage node
+ * @return all storage nodes alerts
*/
PageList<Alert> findAllStorageNodeAlerts(Subject subject, StorageNode storageNode);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index 6c078c6..47c7483 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -2329,9 +2329,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
propertiesQuery.executeUpdate();
}
- /**
- * @deprecated use {@link #findGroupPluginConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria)}
- */
@Override
public GroupPluginConfigurationUpdate getGroupPluginConfigurationUpdate(Subject subject, int configurationUpdateId) {
GroupPluginConfigurationUpdate update = getGroupPluginConfigurationById(configurationUpdateId);
@@ -2347,9 +2344,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
return update;
}
- /**
- * @deprecated use {@link #findGroupResourceConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria)}
- */
@Override
public GroupResourceConfigurationUpdate getGroupResourceConfigurationUpdate(Subject subject,
int configurationUpdateId) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
index 640b17d..7e8e8ef 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
@@ -39,8 +39,6 @@ import org.rhq.core.domain.configuration.definition.ConfigurationTemplate;
import org.rhq.core.domain.configuration.group.AbstractGroupConfigurationUpdate;
import org.rhq.core.domain.configuration.group.GroupPluginConfigurationUpdate;
import org.rhq.core.domain.configuration.group.GroupResourceConfigurationUpdate;
-import org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria;
-import org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.criteria.PluginConfigurationUpdateCriteria;
import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.resource.Resource;
@@ -466,11 +464,7 @@ public interface ConfigurationManagerLocal extends ConfigurationManagerRemote {
PageList<PluginConfigurationUpdate> findPluginConfigurationUpdatesByCriteria(Subject subject,
PluginConfigurationUpdateCriteria criteria);
- PageList<GroupResourceConfigurationUpdate> findGroupResourceConfigurationUpdatesByCriteria(Subject subject,
- GroupResourceConfigurationUpdateCriteria criteria);
- PageList<GroupPluginConfigurationUpdate> findGroupPluginConfigurationUpdatesByCriteria(Subject subject,
- GroupPluginConfigurationUpdateCriteria criteria);
ConfigurationDefinition getOptionsForConfigurationDefinition(Subject subject, int resourceId,
int parentResourceId, ConfigurationDefinition def);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
index affd51e..697f15c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
@@ -23,14 +23,16 @@ import java.util.Map;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.configuration.group.GroupPluginConfigurationUpdate;
import org.rhq.core.domain.configuration.group.GroupResourceConfigurationUpdate;
+import org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria;
+import org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.resource.ResourceNotFoundException;
/**
@@ -43,8 +45,40 @@ import org.rhq.enterprise.server.resource.ResourceNotFoundException;
@Remote
public interface ConfigurationManagerRemote {
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ * @since 4.10
+ */
+ PageList<GroupPluginConfigurationUpdate> findGroupPluginConfigurationUpdatesByCriteria(Subject subject,
+ GroupPluginConfigurationUpdateCriteria criteria);
+
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ * @since 4.10
+ */
+ PageList<GroupResourceConfigurationUpdate> findGroupResourceConfigurationUpdatesByCriteria(Subject subject,
+ GroupResourceConfigurationUpdateCriteria criteria);
+
+ /**
+ * @param subject
+ * @param configurationUpdateId
+ * @return object
+ * @deprecated use {@link #findGroupPluginConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupPluginConfigurationUpdateCriteria)}
+ */
+ @Deprecated
GroupPluginConfigurationUpdate getGroupPluginConfigurationUpdate(Subject subject, int configurationUpdateId);
+ /**
+ * @param subject
+ * @param configurationUpdateId
+ * @return object
+ * @deprecated use {@link #findGroupResourceConfigurationUpdatesByCriteria(org.rhq.core.domain.auth.Subject, org.rhq.core.domain.criteria.GroupResourceConfigurationUpdateCriteria)}
+ */
+ @Deprecated
GroupResourceConfigurationUpdate getGroupResourceConfigurationUpdate(Subject subject, int configurationUpdateId);
/**
@@ -56,7 +90,6 @@ public interface ConfigurationManagerRemote {
*
* @return the current plugin configuration for the {@link Resource} with the given id, or <code>null</code> if the
* resource's configuration is not yet initialized
- * @throws FetchException
*/
Configuration getPluginConfiguration(Subject subject, int resourceId);
@@ -64,15 +97,22 @@ public interface ConfigurationManagerRemote {
* Get the current Resource configuration.
* @param subject The logged in user's subject.
* @param resourceId A resource id.
- * @return The specified configuration.
- *
- * @throws FetchException In case where there was a problem fetching the resource configuration
+ * @return The specified configuration or null
*/
- Configuration getResourceConfiguration(//
- Subject subject, int resourceId);
+ Configuration getResourceConfiguration(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @return the most recent plugin configuration update
+ */
PluginConfigurationUpdate getLatestPluginConfigurationUpdate(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @return the most recent resource configuration update
+ */
ResourceConfigurationUpdate getLatestResourceConfigurationUpdate(Subject subject, int resourceId);
/**
@@ -80,12 +120,22 @@ public interface ConfigurationManagerRemote {
* @param subject The logged in user's subject.
* @param resourceId A resource id.
* @return True if in progress, else False.
- * @throws FetchException
*/
boolean isResourceConfigurationUpdateInProgress(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param resourceGroupId
+ * @return True if in progress, else False
+ */
boolean isGroupResourceConfigurationUpdateInProgress(Subject subject, int resourceGroupId);
+ /**
+ * @param subject
+ * @param compatibleGroupId
+ * @param newResourceConfigurationMap
+ * @return GroupResourceConfigurationUpdate id
+ */
int scheduleGroupResourceConfigurationUpdate(Subject subject, int compatibleGroupId,
Map<Integer, Configuration> newResourceConfigurationMap);
@@ -99,6 +149,7 @@ public interface ConfigurationManagerRemote {
* @param newConfiguration the new plugin configuration
*
* @return the plugin configuration update item corresponding to this request
+ * @throws ResourceNotFoundException
*/
PluginConfigurationUpdate updatePluginConfiguration(Subject subject, int resourceId, Configuration newConfiguration)
throws ResourceNotFoundException;
@@ -108,19 +159,18 @@ public interface ConfigurationManagerRemote {
* the user does not have the proper permissions to change the resource's configuration, an exception is thrown.
*
* <p>This will not wait for the agent to finish the configuration update. This will return after the request is
- * sent. Once the agent finishes with the request, it will send the completed request information to
- * {@link #completedResourceConfigurationUpdate(AbstractResourceConfigurationUpdate)}.</p>
+ * sent.</p>
*
* @param subject The logged in user's subject.
* @param resourceId identifies the resource to be updated
* @param newConfiguration the resource's desired new configuration
*
* @return the resource configuration update item corresponding to this request
+ * @throws ResourceNotFoundException
+ * @throws ConfigurationUpdateStillInProgressException
*/
-
ResourceConfigurationUpdate updateResourceConfiguration(Subject subject, int resourceId,
-
- Configuration newConfiguration) throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException;
+ Configuration newConfiguration) throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException;
/**
* Get the currently live resource configuration for the {@link Resource} with the given id. This actually asks for
@@ -130,7 +180,7 @@ public interface ConfigurationManagerRemote {
* @param subject The logged in user's subject.
* @param resourceId resourceId
* @param pingAgentFirst
- *
+ *
* @return the live configuration
*
* @throws Exception if failed to get the configuration from the agent
@@ -187,6 +237,16 @@ public interface ConfigurationManagerRemote {
*/
ConfigurationDefinition getPackageTypeConfigurationDefinition(Subject subject, int packageTypeId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @param configuration
+ * @param fromStructured
+ * @return the translated configuration
+ * @throws ResourceNotFoundException
+ * @deprecated this feature was never full implemented and will be removed.
+ */
+ @Deprecated
Configuration translateResourceConfiguration(Subject subject, int resourceId, Configuration configuration,
boolean fromStructured) throws ResourceNotFoundException;
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
index 262c30e..7882223 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
@@ -53,6 +53,7 @@ public interface ContentManagerRemote {
* @param packageTypeId identifies the type of package in case the general package needs to be created
* @param version identifies the version to be create
* @param architectureId architecture of the newly created package version. If null then no architecture restriction.
+ * @param packageBytes
*
* @return newly created package version if one did not exist; existing package version that matches these data if
* one was found
@@ -73,7 +74,9 @@ public interface ContentManagerRemote {
* @param packageName parent package name; uniquely identifies the package under which this version goes
* @param packageTypeId identifies the type of package in case the general package needs to be created
* @param version identifies the version to be create
+ * @param displayVersion
* @param architectureId architecture of the newly created package version. If null then no architecture restriction.
+ * @param packageBytes
*
* @return newly created package version if one did not exist; existing package version that matches these data if
* one was found
@@ -87,6 +90,7 @@ public interface ContentManagerRemote {
* @param subject The logged in subject
* @param resourceId identifies the resource from which the packages should be deleted
* @param installedPackageIds identifies all of the packages to be deleted
+ * @param requestNotes
*/
void deletePackages(Subject subject, int resourceId, int[] installedPackageIds, String requestNotes);
@@ -95,11 +99,10 @@ public interface ContentManagerRemote {
* deleted. If it is referenced by a content source, repo or installed package it must be removed via the
* higher level construct and this call will have no effect.
*
- * @param subject The logged in subject
- * @param packageVersionId The PackageVersion to delete.
+ * @param subject The logged in subject
+ * @param packageVersionId The package version to delete
*/
- public void deletePackageVersion(//
- Subject subject, int resourceId);
+ public void deletePackageVersion(Subject subject, int packageVersionId);
/**
* Deploys packages on the specified resources. Each installed package entry should be populated with the <code>
@@ -109,6 +112,7 @@ public interface ContentManagerRemote {
* @param subject The logged in subject
* @param resourceIds identifies the resources against which the package will be deployed
* @param packageVersionIds packageVersions we want to install
+ * @deprecated
*/
@Deprecated
void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds);
@@ -139,34 +143,35 @@ public interface ContentManagerRemote {
*
* @param subject The logged in subject
* @param resourceTypeName The resource type in question
+ * @param pluginName
*
* @return The requested list of package types. Can be empty.
+ * @throws ResourceTypeNotFoundException
*/
List<PackageType> findPackageTypes(Subject subject, String resourceTypeName, String pluginName)
throws ResourceTypeNotFoundException;
/**
- * This re tries to find a package type of given name defined by the resource type
- * provided.
+ * This re tries to find a package type of given name defined by the resource type provided.
* <p>
- * The resource type id can be null, in which case only the serverside defined package types
+ * The resource type id can be null, in which case only the server-side defined package types
* are searched for.
- *
+ *
* @param subject the authenticated user
- * @param resourceTypeId the id of the resource type associated with the package type or null if only server-side package types should be searched for
+ * @param resourceTypeId the id of the resource type associated with the package type or null if only server-side package types should be searched for
* @param packageTypeName the name of the package type to find
- * @return
+ * @return the package type or null if not found
*/
PackageType findPackageType(Subject subject, Integer resourceTypeId, String packageTypeName);
/**
* Similar to {@link #findPackageType(Subject, Integer, String)} but
* returns the package type along with the version format specification.
- *
+ *
* @param subject
* @param resourceTypeId
* @param packageTypeName
- * @return
+ * @return the composite or null if not found
*/
PackageTypeAndVersionFormatComposite findPackageTypeWithVersionFormat(Subject subject, Integer resourceTypeId,
String packageTypeName);
@@ -179,10 +184,10 @@ public interface ContentManagerRemote {
PageList<InstalledPackage> findInstalledPackagesByCriteria(Subject subject, InstalledPackageCriteria criteria);
/**
- * If a resourceId filter is not set via {@link PackageVersionCriteria.addFilterResourceId()} then
+ * If a resourceId filter is not set via {@link PackageVersionCriteria#addFilterResourceId(Integer)} then
* this method requires InventoryManager permissions. When set the user must have permission to view
* the resource.
- *
+ *
* @param subject
* @param criteria
* @return Installed PackageVersions for the resource
@@ -191,13 +196,13 @@ public interface ContentManagerRemote {
PageList<PackageVersion> findPackageVersionsByCriteria(Subject subject, PackageVersionCriteria criteria);
/**
- * If the criteria object filters on repo id, the subject needs to be able to
- * access that repo. If there is no filter on repos, the subject needs to have
+ * If the criteria object filters on repo id, the subject needs to be able to
+ * access that repo. If there is no filter on repos, the subject needs to have
* MANAGE_REPOSITORIES permission.
- *
+ *
* @param subject
* @param criteria
- * @return
+ * @return the packages, not null
*/
PageList<Package> findPackagesByCriteria(Subject subject, PackageCriteria criteria);
@@ -206,10 +211,10 @@ public interface ContentManagerRemote {
* determines the latest version of the returned packages.
* <p>
* The provided criteria has to be limited to a specific repo using {@link PackageCriteria#addFilterRepoId(Integer)}.
- *
+ *
* @param subject
* @param criteria
- * @return
+ * @return the composites, not null
* @throws IllegalArgumentException if the criteria doesn't define a repo filter
*/
PageList<PackageAndLatestVersionComposite> findPackagesWithLatestVersion(Subject subject, PackageCriteria criteria);
@@ -218,6 +223,7 @@ public interface ContentManagerRemote {
* For a resource that is content-backed (aka package-backed), this call will return InstalledPackage information
* for the backing content (package).
*
+ * @param subject
* @param resourceId a valid resource
* @return The InstalledPackage object for the content-packed resource. Or null for non-existent or non-package backed resource.
*/
@@ -247,6 +253,8 @@ public interface ContentManagerRemote {
*
* @param temporaryContentHandle temporary file handle
* @param fragment fragment bytes
+ * @param off the offset
+ * @param len
*/
void uploadContentFragment(String temporaryContentHandle, byte[] fragment, int off, int len);
@@ -254,7 +262,7 @@ public interface ContentManagerRemote {
* Creates a new package version in the system with content denoted by the <code>temporaryContentHandle</code>.
*
* Use this method instead of {@link #createPackageVersionWithDisplayVersion(org.rhq.core.domain.auth.Subject, String, int, String, String, Integer, byte[])}
- * to avoid passing content files as byte array paramaters.<br>
+ * to avoid passing content files as byte array parameters.<br>
* <br>
* Sample code:<br>
* <pre>
@@ -264,6 +272,14 @@ public interface ContentManagerRemote {
* }
* PackageVersion pv = contentManager.createPackageVersionWithDisplayVersion(..., temporaryContentHandle);
* </pre>
+ * @param subject
+ * @param packageName
+ * @param packageTypeId
+ * @param version
+ * @param displayVersion
+ * @param architectureId
+ * @param temporaryContentHandle
+ * @return the package version
*
* @see ContentManagerRemote#createPackageVersionWithDisplayVersion(org.rhq.core.domain.auth.Subject, String, int, String, String, Integer, byte[])
*/
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java
index 98db824..fdf697f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/RepoManagerRemote.java
@@ -32,13 +32,16 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public Repo API.
+ */
@Remote
public interface RepoManagerRemote {
/**
* Associates the package versions (identified by their IDs) to the given repo (also identified by its ID).
*
- * @param subject The logged in user's subject.
+ * @param subject The logged in user's subject.
* @param repoId the ID of the repo
* @param packageVersionIds the list of package version IDs to add to the repo
*/
@@ -52,7 +55,7 @@ public interface RepoManagerRemote {
* @param repo a new repo object.
*
* @return the newly created repo
- * @throws RepoException if a repo already exists with the same name
+ * @throws RepoException if a repo already exists with the same name
*/
Repo createRepo(Subject subject, Repo repo) throws RepoException;
@@ -79,7 +82,7 @@ public interface RepoManagerRemote {
*
* @param subject user making the query
* @param criteria describes how the query should function; may not be <code>null</code>
- * @return any repos that match the given criteria; empty list if none match
+ * @return any repos that match the given criteria; empty list if none match
*/
PageList<Repo> findReposByCriteria(Subject subject, RepoCriteria criteria);
@@ -107,11 +110,11 @@ public interface RepoManagerRemote {
* <li>determine the comparator using the package type behavior if one is setup for the package type
* <li>If no package behavior exists, use {@link PackageVersion#DEFAULT_COMPARATOR}
* </ol>
- *
+ *
* @param subject the authenticated user
* @param packageId the id of the package to find the latest version for.
* @param repoId the repo where to take the package versions of the package from
- * @return
+ * @return the package version or null
*/
PackageVersion getLatestPackageVersion(Subject subject, int packageId, int repoId);
@@ -124,6 +127,7 @@ public interface RepoManagerRemote {
* @param repo to be updated
*
* @return Repo that was updated
+ * @throws RepoException
*/
Repo updateRepo(Subject subject, Repo repo) throws RepoException;
@@ -140,18 +144,18 @@ public interface RepoManagerRemote {
PageList<PackageVersion> findPackageVersionsInRepo(Subject subject, int repoId, String filter, PageControl pc);
/**
- * Deletes package versions from a repo if they are not referenced by
+ * Deletes package versions from a repo if they are not referenced by
* a content source.
* <p>
* The package versions themselves are not deleted until some content source or repository
* is deleted at which point orphans detection is performed.
- *
+ *
* @param subject
* @param repoId
* @param packageVersionIds
* @return true if all the package versions were successfully deleted, false if some references exist.
*/
- boolean deletePackageVersionsFromRepo(Subject subject, int repoId, int[] packageVersionId);
+ boolean deletePackageVersionsFromRepo(Subject subject, int repoId, int[] packageVersionIds);
/**
* Gets all resources that are subscribed to the given repo.
@@ -192,12 +196,18 @@ public interface RepoManagerRemote {
*/
void unsubscribeResourceFromRepos(Subject subject, int resourceId, int[] repoIds);
+ /**
+ * @param subject
+ * @param repoIds
+ * @return number of synchronized repos
+ * @throws Exception
+ */
int synchronizeRepos(Subject subject, int[] repoIds) throws Exception;
/**
- * This method allows for downloading the bytes of an arbitrary package version. This call can be dangerous with
+ * This method allows for downloading the bytes of an arbitrary package version. This call can be dangerous with
* large packages because it will attempt to load the whole package in memory.
- *
+ *
* @param subject
* @param repoId
* @param packageVersionId
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java
index 2e42293..3d6303c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java
@@ -30,14 +30,30 @@ import org.rhq.core.domain.dashboard.Dashboard;
import org.rhq.core.domain.util.PageList;
/**
- * @author Jay Shaughnessy
+ * Public API for working with Dashboards.
*/
@Remote
public interface DashboardManagerRemote {
+ /**
+ * @param subject the subject
+ * @param criteria the criteria
+ * @return not null
+ */
public PageList<Dashboard> findDashboardsByCriteria(Subject subject, DashboardCriteria criteria);
+ /**
+ * Create or update a dashboard.
+ *
+ * @param subject the subject
+ * @param dashboard the dashboard
+ * @return The dashboard
+ */
public Dashboard storeDashboard(Subject subject, Dashboard dashboard);
+ /**
+ * @param subject the subject
+ * @param dashboardId the dashboardId
+ */
public void removeDashboard(Subject subject, int dashboardId);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java
index a39108e..226320d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftManagerRemote.java
@@ -33,12 +33,15 @@ import org.rhq.core.domain.drift.DriftSnapshotRequest;
import org.rhq.core.domain.drift.FileDiffReport;
import org.rhq.core.domain.util.PageList;
+/**
+ * The public API for Drift Management.
+ */
@Remote
public interface DriftManagerRemote {
/**
* Remove the provided driftDef (identified by name) on the specified entityContext.
- * Agents, if available, will be notified of the change.
+ * Agents, if available, will be notified of the change.
* @param subject
* @param entityContext
* @param driftDefName
@@ -50,10 +53,16 @@ public interface DriftManagerRemote {
* @param subject
* @param criteria
* @return The DriftChangeSets matching the criteria
+ * @throws Exception
*/
PageList<? extends DriftChangeSet<?>> findDriftChangeSetsByCriteria(Subject subject, DriftChangeSetCriteria criteria)
throws Exception;
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<DriftDefinition> findDriftDefinitionsByCriteria(Subject subject, DriftDefinitionCriteria criteria);
/**
@@ -61,6 +70,7 @@ public interface DriftManagerRemote {
* @param subject
* @param criteria
* @return The Drifts matching the criteria
+ * @throws Exception
*/
PageList<? extends Drift<?, ?>> findDriftsByCriteria(Subject subject, DriftCriteria criteria) throws Exception;
@@ -69,6 +79,7 @@ public interface DriftManagerRemote {
* modified file, a Drift object references the current and previous versions of the
* file. This method generates a diff of the two versions.
*
+ * @param subject
* @param drift Specifies the two files that will be compared
* @return A report containing a unified diff of the two versions of the file
* referenced by drift
@@ -80,6 +91,7 @@ public interface DriftManagerRemote {
* specifically, the files referenced by {@link org.rhq.core.domain.drift.Drift#getNewDriftFile()}
* are compared.
*
+ * @param subject
* @param drift1 References the first file to be compared
* @param drift2 References the second file to be compared
* @return A report containing a unified diff of the two files compared
@@ -88,9 +100,9 @@ public interface DriftManagerRemote {
/**
* Generates a unified diff of the two file versions referenced by drift ids.
- *
- * @param drift1Id the "new" version of the first drift
- * @param drift2Id the "new" version of the second drift
+ * @param subject
+ * @param driftId1 the "new" version of the first drift
+ * @param driftId2 the "new" version of the second drift
* @return A report containing a unified diff of the two versions of the file
* referenced by drift
*/
@@ -99,16 +111,22 @@ public interface DriftManagerRemote {
/**
* Returns the content associated with the specified hash as a string
*
+ * @param subject
* @param hash The hash the uniquely identifies the requested content
* @return The content as a string
*/
String getDriftFileBits(Subject subject, String hash);
+ /**
+ * @param subject
+ * @param hash
+ * @return the byteArray, not null
+ */
byte[] getDriftFileAsByteArray(Subject subject, String hash);
/**
* Calculate and return requested Drift Snapshot.
- *
+ *
* @param subject
* @param request
* @return The DriftSnapshot Not null but version is set to -1 if the drift definition does not yet
@@ -117,6 +135,11 @@ public interface DriftManagerRemote {
*/
DriftSnapshot getSnapshot(Subject subject, DriftSnapshotRequest request);
+ /**
+ * @param subject
+ * @param driftDefId
+ * @param snapshotVersion
+ */
void pinSnapshot(Subject subject, int driftDefId, int snapshotVersion);
/**
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java
index 6b48eb6..f18f2d0 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerRemote.java
@@ -27,18 +27,47 @@ import org.rhq.core.domain.drift.DriftDefinition;
import org.rhq.core.domain.drift.DriftDefinitionTemplate;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for Drift Template Management.
+ */
@Remote
public interface DriftTemplateManagerRemote {
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<DriftDefinitionTemplate> findTemplatesByCriteria(Subject subject,
DriftDefinitionTemplateCriteria criteria);
+ /**
+ * @param subject
+ * @param resourceTypeId
+ * @param isUserDefined
+ * @param definition
+ * @return The new {@link DriftDefinitionTemplate}
+ */
DriftDefinitionTemplate createTemplate(Subject subject, int resourceTypeId, boolean isUserDefined,
DriftDefinition definition);
+ /**
+ * @param subject
+ * @param templateId
+ * @param snapshotDriftDefId
+ * @param snapshotVersion
+ */
void pinTemplate(Subject subject, int templateId, int snapshotDriftDefId, int snapshotVersion);
+ /**
+ * @param subject
+ * @param template
+ */
void updateTemplate(Subject subject, DriftDefinitionTemplate template);
+ /**
+ * @param subject
+ * @param templateId
+ */
void deleteTemplate(Subject subject, int templateId);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
index a93e12b..bbccdce 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
@@ -45,7 +45,7 @@ import org.rhq.core.domain.util.PageList;
*
*/
@Local
-public interface EventManagerLocal {
+public interface EventManagerLocal extends EventManagerRemote {
/**
* Add the passed events to the database
@@ -99,20 +99,4 @@ public interface EventManagerLocal {
EventSeverity[] getSeverityBucketsByContext(Subject subject, EntityContext context, long begin, long end,
int bucketCount);
-
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- PageList<Event> findEventsByCriteria(Subject subject, EventCriteria criteria);
-
- EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets);
-
- EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
- long begin, long end, int numBuckets);
-
- EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int resourceGroupId, long begin, long end,
- int numBuckets);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
index 742e746..9d357c5 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
@@ -26,16 +26,52 @@ import org.rhq.core.domain.event.Event;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for working with Events.
+ */
@Remote
public interface EventManagerRemote {
+ /**
+ * @param subject
+ * @param resourceId
+ * @param begin in millis
+ * @param end in millis
+ * @param numBuckets
+ * @return not null
+ * @deprecated use {@link #findEventsByCriteria(Subject, EventCriteria)}
+ */
EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets);
+ /**
+ * @param subject
+ * @param parentResourceId
+ * @param resourceTypeId
+ * @param begin in millis
+ * @param end in millis
+ * @param numBuckets
+ * @return not null
+ * @deprecated use {@link #findEventsByCriteria(Subject, EventCriteria)}
+ */
EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
long begin, long end, int numBuckets);
+ /**
+ * @param subject
+ * @param resourceGroupId
+ * @param begin in millis
+ * @param end in millis
+ * @param numBuckets
+ * @return not null
+ * @deprecated use {@link #findEventsByCriteria(Subject, EventCriteria)}
+ */
EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int resourceGroupId, long begin, long end,
int numBuckets);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Event> findEventsByCriteria(Subject subject, EventCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
index a1a0442..4569ee4 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
@@ -36,11 +36,10 @@ import org.rhq.core.domain.util.PageList;
public interface AvailabilityManagerRemote {
/**
- * @param subject
- * @param resourceId
- * @param pc
- * @return
- * @throws FetchException
+ * @param subject the subject
+ * @param resourceId the resource
+ * @param pc page control
+ * @return not null
* @Deprecated use {@link #findAvailabilityByCriteria(Subject, AvailabilityCriteria)}
*/
@Deprecated
@@ -49,15 +48,18 @@ public interface AvailabilityManagerRemote {
/**
* Gets the last known Availability for the given resource - which includes whether it is currently up (i.e.
* available) or down and the last time it was known to have changed to that state.
- *
- * @param subject
- * @param resourceId
+ *
+ * @param subject the subject
+ * @param resourceId the resource
*
* @return the full and current status of the resource
- * @throws FetchException TODO
- * @throws FetchException
*/
public Availability getCurrentAvailabilityForResource(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Availability> findAvailabilityByCriteria(Subject subject, AvailabilityCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
index 6e81993..7cb2416 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
@@ -36,12 +36,9 @@ import org.rhq.core.domain.util.PageList;
* The manager for call-time metric data.
*/
@Local
-public interface CallTimeDataManagerLocal {
+public interface CallTimeDataManagerLocal extends CallTimeDataManagerRemote {
void addCallTimeData(Set<CallTimeData> callTimeDataSet);
- PageList<CallTimeDataComposite> findCallTimeDataForResource(Subject subject, int scheduleId, long beginTime,
- long endTime, PageControl pageControl);;
-
PageList<CallTimeDataComposite> findCallTimeDataForCompatibleGroup(Subject subject, int groupId, long beginTime,
long endTime, PageControl pageControl);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java
index 3683529..1c2b967 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerRemote.java
@@ -25,21 +25,21 @@ import org.rhq.core.domain.measurement.calltime.CallTimeDataComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for CallTime Data.
+ */
@Remote
public interface CallTimeDataManagerRemote {
+ /**
+ * @param subject
+ * @param scheduleId The MeasurementSchedule id
+ * @param beginTime in millis
+ * @param endTime in millis
+ * @param pc
+ * @return not null
+ */
PageList<CallTimeDataComposite> findCallTimeDataForResource(Subject subject, int scheduleId, long beginTime,
long endTime, PageControl pc);
- /* this method was never implemented, and so won't be in the remote api yet
-
- PageList<CallTimeDataComposite> getCallTimeDataForCompatibleGroup(
- Subject subject,
- int groupId,
- int measurementDefinitionId,
- long beginTime,
- long endTime,
- PageControl pageControl)
- throws FetchException;
- */
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java
index 35b8099..0d5685f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerLocal.java
@@ -24,7 +24,6 @@ import javax.ejb.Local;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.measurement.MeasurementBaseline;
-import org.rhq.core.domain.resource.Resource;
/**
* A manager for {@link MeasurementBaseline}s.
@@ -34,7 +33,7 @@ import org.rhq.core.domain.resource.Resource;
* @author Joseph Marques
*/
@Local
-public interface MeasurementBaselineManagerLocal {
+public interface MeasurementBaselineManagerLocal extends MeasurementBaselineManagerRemote {
/**
* This is the entry point which calls out to all other *calculateAutoBaselines* methods seen
* in this interface. This is the method that should be called on a regular basis by some sort
@@ -137,20 +136,4 @@ public interface MeasurementBaselineManagerLocal {
* @param definitionIds measurement definition IDs
*/
void enableAutoBaselineCalculation(Subject subject, Integer[] resourceIds, Integer[] definitionIds);
-
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- /**
- * Return a list of {@link MeasurementBaseline} objects for the {@link Resource} represented by the given id.
- *
- * @param subject the user request to view the baseline history for the given resource
- * @param resourceId the id of the resource whose baselines are to be returned
- *
- * @return a list of baselines for all measurements scheduled on the given resource
- */
- List<MeasurementBaseline> findBaselinesForResource(Subject subject, int resourceId);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java
index ade80ea..28bb49b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerRemote.java
@@ -24,9 +24,21 @@ import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.measurement.MeasurementBaseline;
+import org.rhq.core.domain.resource.Resource;
+/**
+ * Public API for measurement baselines.
+ */
@Remote
public interface MeasurementBaselineManagerRemote {
+ /**
+ * Return a list of {@link MeasurementBaseline} objects for the {@link Resource} represented by the given id.
+ *
+ * @param subject the user request to view the baseline history for the given resource
+ * @param resourceId the id of the resource whose baselines are to be returned
+ *
+ * @return a list of baselines for all measurements scheduled on the given resource
+ */
List<MeasurementBaseline> findBaselinesForResource(Subject subject, int resourceId);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
index 1a049c3..4b40783 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
@@ -35,6 +35,9 @@ import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowCo
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for measurement data.
+ */
@Remote
public interface MeasurementDataManagerRemote {
@@ -44,18 +47,18 @@ public interface MeasurementDataManagerRemote {
*
* @param subject the user requesting the aggregate
* @param scheduleId the id of the {@link MeasurementSchedule} for which this aggregate is being requested
- * @param start the start time
- * @param end the end time
+ * @param startTime
+ * @param endTime
*
* @return MeasurementAggregate bean with the data
*
- * @throws FetchException if the schedule does not reference numerical data or if the user is not allowed to view
- * the {@link Resource} corresponding to this scheduleId
* @deprecated class {@link org.rhq.enterprise.server.measurement.MeasurementAggregate} has been deprecated
* since RHQ 4.8, therefore this method was deprecated as well and
* replaced by {@link #getMeasurementAggregate(org.rhq.core.domain.auth.Subject,int,long,long)}
*/
- org.rhq.enterprise.server.measurement.MeasurementAggregate getAggregate(Subject subject, int scheduleId, long startTime, long endTime);
+ @Deprecated
+ org.rhq.enterprise.server.measurement.MeasurementAggregate getAggregate(Subject subject, int scheduleId,
+ long startTime, long endTime);
/**
* Get the aggregate values of the numerical values for a given schedule. This can only provide aggregates for data
@@ -63,19 +66,21 @@ public interface MeasurementDataManagerRemote {
*
* @param subject the user requesting the aggregate
* @param scheduleId the id of the {@link MeasurementSchedule} for which this aggregate is being requested
- * @param start the start time
- * @param end the end time
+ * @param startTime in millis
+ * @param endTime in millis
*
* @return MeasurementAggregate bean with the data
*
- * @throws FetchException if the schedule does not reference numerical data or if the user is not allowed to view
+ * @throws MeasurementException if the schedule does not reference numerical data or if the user is not allowed to view
* the {@link Resource} corresponding to this scheduleId
*/
- MeasurementAggregate getMeasurementAggregate(Subject subject, int scheduleId, long startTime, long endTime);
+ MeasurementAggregate getMeasurementAggregate(Subject subject, int scheduleId, long startTime, long endTime)
+ throws MeasurementException;
/**
* Return all known trait data for the passed schedule, defined by resourceId and definitionId
*
+ * @param subject
* @param resourceId PK of a {@link Resource}
* @param definitionId PK of a {@link MeasurementDefinition}
*
@@ -83,6 +88,12 @@ public interface MeasurementDataManagerRemote {
*/
List<MeasurementDataTrait> findTraits(Subject subject, int resourceId, int definitionId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @param displayType
+ * @return not null
+ */
List<MeasurementDataTrait> findCurrentTraitsForResource(Subject subject, int resourceId, DisplayType displayType);
/**
@@ -98,15 +109,26 @@ public interface MeasurementDataManagerRemote {
// Deprecating this for 4.7, we don't want clients generating live data requests, it's not efficient or reliable
// It will be moved to the Local
/**
- * @deprecated use {@link #findDataForResource(Subject, int, int[], long, long, int)}
+ * @param subject
+ * @param resourceId
+ * @param definitionIds
+ * @return not null
+ * @deprecated use {@link #findDataForResource(Subject, int, int[], long, long, int)}
*/
+ @Deprecated
Set<MeasurementData> findLiveData(Subject subject, int resourceId, int[] definitionIds);
// Deprecating this for 4.7, we don't want clients generating live data requests, it's not efficient or reliable
- // It will be moved to the Local
+ // It will be moved to the Local
/**
- * @deprecated use {@link #findDataForCompatibleGroup(Subject, int, int, long, long, int)}
+ * @param subject
+ * @param groupId
+ * @param resourceIds
+ * @param definitionIds
+ * @return not null
+ * @deprecated use {@link #findDataForCompatibleGroup(Subject, int, int, long, long, int)}
*/
+ @Deprecated
Set<MeasurementData> findLiveDataForGroup(Subject subject, int groupId, int[] resourceIds, int[] definitionIds);
/**
@@ -115,12 +137,12 @@ public interface MeasurementDataManagerRemote {
*
* @param subject
* @param groupId
- * @param definitionId measurement definition id for numeric metric associated with the given compatible group
+ * @param definitionId measurement definition id for numeric metric associated with the given compatible group
* @param beginTime
* @param endTime
* @param numPoints
*
- * @return
+ * @return not null
*/
List<List<MeasurementDataNumericHighLowComposite>> findDataForCompatibleGroup(Subject subject, int groupId,
int definitionId, long beginTime, long endTime, int numPoints);
@@ -136,7 +158,7 @@ public interface MeasurementDataManagerRemote {
* @param endTime
* @param numPoints
*
- * @return
+ * @return not null
*/
List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(Subject subject, int resourceId,
int[] definitionIds, long beginTime, long endTime, int numPoints);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java
index a4bbc8d..f9d6d29 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerLocal.java
@@ -23,17 +23,15 @@ import java.util.List;
import javax.ejb.Local;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementDefinition;
-import org.rhq.core.domain.util.PageList;
/**
* A manager for {@link MeasurementDefinition}s.
*/
@Local
-public interface MeasurementDefinitionManagerLocal {
+public interface MeasurementDefinitionManagerLocal extends MeasurementDefinitionManagerRemote {
/**
* Remove the given definition with its attached schedules and MeasurementData
@@ -64,23 +62,4 @@ public interface MeasurementDefinitionManagerLocal {
* @return List<MeasurementDefinition> list of definitions found
*/
List<MeasurementDefinition> findMeasurementDefinitionsByIds(Subject subject, Integer[] measurementDefinitionIds);
-
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- /**
- * Returns a MeasurementDefinition by its id or null.
- *
- * @param subject user that is calling this method
- * @param definitionId id of the desired {@link MeasurementDefinition} to fetch
- *
- * @return the MeasurementDefinition or null if not found
- */
- MeasurementDefinition getMeasurementDefinition(Subject subject, int definitionId);
-
- PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(Subject subject,
- MeasurementDefinitionCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java
index c35ed2d..85cb94a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerRemote.java
@@ -25,11 +25,28 @@ import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public API for measurement definitions.
+ */
@Remote
public interface MeasurementDefinitionManagerRemote {
+ /**
+ * Returns a MeasurementDefinition by its id or null.
+ *
+ * @param subject user that is calling this method
+ * @param definitionId id of the desired {@link MeasurementDefinition} to fetch
+ *
+ * @return the MeasurementDefinition or null if not found
+ */
MeasurementDefinition getMeasurementDefinition(Subject subject, int definitionId);
- PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(//
- Subject subject, MeasurementDefinitionCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
+ PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(Subject subject,
+ MeasurementDefinitionCriteria criteria);
+
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java
index 85450b0..4716b5b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerLocal.java
@@ -20,37 +20,10 @@ package org.rhq.enterprise.server.measurement;
import javax.ejb.Local;
-import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.measurement.AvailabilityType;
-import org.rhq.core.domain.resource.composite.ProblemResourceComposite;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.core.domain.util.PageList;
-
/**
* A manager for working with problems such as out-of-bounds measurements.
*/
@Local
-public interface MeasurementProblemManagerLocal {
- /**
- * Returns a list of all "problem resources" where a problem resource has one or more of the following statements
- * true:
- *
- * <ul>
- * <li>it is known to be {@link AvailabilityType#DOWN down}</li>
- * <li>one or more of its alerts were triggered</li>
- * <li>one or more of its measurements were out-of-bounds (compared to their baselines)</li>
- * </ul>
- *
- * If one or more of those are true for any resource, and they became true at or after the given <code>
- * oldestDate</code> time (specified in epoch milliseconds), that resource is returned in the list (assuming the
- * given user has access to view that resource).
- *
- * @param subject the user asking for the data
- * @param oldestDate no problems will be returned that started before this time
- * @param maxResources the maximum number of resources that should be returned
- *
- * @return the problems resources (only those resources visible to the user will be returned)
- */
- PageList<ProblemResourceComposite> findProblemResources(Subject subject, long oldestDate, PageControl pc);
+public interface MeasurementProblemManagerLocal extends MeasurementProblemManagerRemote {
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java
index 9533fcd..0f94d5a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementProblemManagerRemote.java
@@ -21,13 +21,36 @@ package org.rhq.enterprise.server.measurement;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.composite.ProblemResourceComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+/**
+ * Public Measurement Problem API. For working with problems such as out-of-bounds measurements.
+ */
@Remote
public interface MeasurementProblemManagerRemote {
- PageList<ProblemResourceComposite> findProblemResources(Subject subject, long oldestDate, PageControl pc);
+ /**
+ * Returns a list of all "problem resources" where a problem resource has one or more of the following statements
+ * true:
+ *
+ * <ul>
+ * <li>it is known to be {@link AvailabilityType#DOWN down}</li>
+ * <li>one or more of its alerts were triggered</li>
+ * <li>one or more of its measurements were out-of-bounds (compared to their baselines)</li>
+ * </ul>
+ *
+ * If one or more of those are true for any resource, and they became true at or after the given <code>
+ * oldestDate</code> time (specified in epoch milliseconds), that resource is returned in the list (assuming the
+ * given user has access to view that resource).
+ *
+ * @param subject the user asking for the data
+ * @param oldestDate no problems will be returned that started before this time
+ * @param pageControl
+ * @return the problems resources (only those resources visible to the user will be returned)
+ */
+ PageList<ProblemResourceComposite> findProblemResources(Subject subject, long oldestDate, PageControl pageControl);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java
index 06041a4..c394d33 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerRemote.java
@@ -44,12 +44,16 @@ public interface MeasurementScheduleManagerRemote {
/**
* Disable the measurement schedules for the passed definitions for the resources of the passed compatible group.
+ *
+ * @param subject
+ * @param groupId
+ * @param measurementDefinitionIds
*/
void disableSchedulesForCompatibleGroup(Subject subject, int groupId, int[] measurementDefinitionIds);
/**
* Requires MANAGE_SETTINGS global permission.
- *
+ *
* @param subject
* @param measurementDefinitionIds
* @param updateExistingSchedules
@@ -58,8 +62,12 @@ public interface MeasurementScheduleManagerRemote {
boolean updateExistingSchedules);
/**
- * @deprecated use {@link #disableSchedulesForResourceType(Subject, int[], boolean)
+ * @param subject
+ * @param measurementDefinitionIds
+ *
+ * @deprecated use {@link #disableSchedulesForResourceType(Subject, int[], boolean)}
*/
+ @Deprecated
void disableMeasurementTemplates(Subject subject, int[] measurementDefinitionIds);
/**
@@ -72,12 +80,16 @@ public interface MeasurementScheduleManagerRemote {
/**
* Enable the measurement schedules for the passed definitions for the resources of the passed compatible group.
+ *
+ * @param subject
+ * @param groupId
+ * @param measurementDefinitionIds
*/
void enableSchedulesForCompatibleGroup(Subject subject, int groupId, int[] measurementDefinitionIds);
/**
* Requires MANAGE_SETTINGS global permission.
- *
+ *
* @param subject
* @param measurementDefinitionIds
* @param updateExistingSchedules
@@ -85,21 +97,41 @@ public interface MeasurementScheduleManagerRemote {
void enableSchedulesForResourceType(Subject subject, int[] measurementDefinitionIds, boolean updateExistingSchedules);
/**
- * @deprecated use {@link #enableSchedulesForResourceType(Subject, int[], boolean)
+ * @param subject
+ * @param measurementDefinitionIds
+ *
+ * @deprecated use {@link #enableSchedulesForResourceType(Subject, int[], boolean)}
*/
+ @Deprecated
void enableMeasurementTemplates(Subject subject, int[] measurementDefinitionIds);
+ /**
+ * @param subject
+ * @param measurementSchedule
+ */
void updateSchedule(Subject subject, MeasurementSchedule measurementSchedule);
+ /**
+ * @param subject
+ * @param resourceId
+ * @param measurementDefinitionIds
+ * @param collectionInterval
+ */
void updateSchedulesForResource(Subject subject, int resourceId, int[] measurementDefinitionIds,
long collectionInterval);
+ /**
+ * @param subject
+ * @param groupId
+ * @param measurementDefinitionIds
+ * @param collectionInterval
+ */
void updateSchedulesForCompatibleGroup(Subject subject, int groupId, int[] measurementDefinitionIds,
long collectionInterval);
/**
* Requires MANAGE_SETTINGS global permission.
- *
+ *
* @param subject
* @param measurementDefinitionIds
* @param collectionInterval
@@ -109,9 +141,18 @@ public interface MeasurementScheduleManagerRemote {
boolean updateExistingSchedules);
/**
- * @deprecated use {@link #updateSchedulesForResourceType(Subject, int[], boolean)
+ * @param subject
+ * @param measurementDefinitionIds
+ * @param collectionInterval
+ * @deprecated use {@link #updateSchedulesForResourceType(Subject, int[], long, boolean)}
*/
+ @Deprecated
void updateMeasurementTemplates(Subject subject, int[] measurementDefinitionIds, long collectionInterval);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<MeasurementSchedule> findSchedulesByCriteria(Subject subject, MeasurementScheduleCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
index c10bc88..d50ebde 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
@@ -22,8 +22,6 @@ import java.util.List;
import javax.ejb.Remote;
-import org.quartz.SchedulerException;
-
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.criteria.GroupOperationHistoryCriteria;
@@ -38,6 +36,9 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.exception.ScheduleException;
import org.rhq.enterprise.server.exception.UnscheduleException;
+/**
+ * Public Operation Manager remote.
+ */
@Remote
public interface OperationManagerRemote {
@@ -58,7 +59,7 @@ public interface OperationManagerRemote {
*
* @param subject
* The logged in user's subject.
- * @param historyId
+ * @param operationHistoryId
* the ID of the history item identifying the in-progress operation
* @param ignoreAgentErrors
* if <code>true</code> this will still flag the history items in the database as canceled, even if the
@@ -80,7 +81,7 @@ public interface OperationManagerRemote {
*
* @param subject
* The logged in user's subject.
- * @param historyId
+ * @param operationHistoryId
* the ID of the history to be deleted
* @param purgeInProgress
* if <code>true</code>, even if the operation is in progress, the history entity will be deleted. You
@@ -118,7 +119,7 @@ public interface OperationManagerRemote {
ResourceOperationSchedule scheduleResourceOperation(Subject subject, int resourceId, String operationName,
long delay, long repeatInterval, int repeatCount, int timeout, Configuration parameters, String description)
throws ScheduleException;
-
+
/**
* Schedules a Resource operation for execution using the cron expression.
*
@@ -142,23 +143,23 @@ public interface OperationManagerRemote {
* 0 15 10 L * ? Fire at 10:15am on the last day of every month
* 0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
* 0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
- * 0 15 10 ? * 6L 2002-2005 at 10:15am on every last friday of every month during the years
+ * 0 15 10 ? * 6L 2002-2005 at 10:15am on every last Friday of every month during the years
* 0 15 10 ? * 6#3 Fire at 10:15am on the third Friday of every month
* 0 11 11 11 11 ? Fire every November 11th at 11:11am.
* </pre>
* @param timeout the number of seconds before this operation will fail due to timeout. 0 for no timeout.
- * @param parameters the names parameters for the operation.
+ * @param parameters the names parameters for the operation.
* @param description user-entered description of the job to be scheduled
*
* @return the information on the new schedule
*
- * @throws SchedulerException if failed to schedule the operation
+ * @throws ScheduleException if failed to schedule the operation
*/
ResourceOperationSchedule scheduleResourceOperationUsingCron(Subject subject, int resourceId, String operationName,
String cronExpression, int timeout, Configuration parameters, String description) throws ScheduleException;
/**
- * Unschedules the resource operation identified with the given job ID.
+ * Unschedule the resource operation identified with the given job ID.
*
* @param subject
* The logged in user's subject.
@@ -167,7 +168,7 @@ public interface OperationManagerRemote {
* @param resourceId
* the ID of the resource whose operation is getting unscheduled
* @throws UnscheduleException TODO
- * @throws Exception
+ * @throws UnscheduleException
*/
void unscheduleResourceOperation(Subject subject, String jobId, int resourceId) throws UnscheduleException;
@@ -183,7 +184,7 @@ public interface OperationManagerRemote {
* @param repeatCount
* @param timeout
* @param description
- * @return
+ * @return The group operation schedule
* @throws ScheduleException
*/
GroupOperationSchedule scheduleGroupOperation(Subject subject, int groupId, int[] executionOrderResourceIds,
@@ -196,7 +197,7 @@ public interface OperationManagerRemote {
*
* @param subject the user who is asking to schedule the job
* @param groupId the compatible group whose member resources are the target of the operation
- * @param executionOrderResourceIds optional order of exection - if not<code>null</code>, these are group members
+ * @param executionOrderResourceIds optional order of execution - if not<code>null</code>, these are group members
* resource IDs in the order in which the operations are invoked
* @param haltOnFailure if <code>true</code>, the group operation will halt whenever one individual
* resource fails to execute. When executing in order, this means once a failure
@@ -223,7 +224,7 @@ public interface OperationManagerRemote {
* 0 15 10 L * ? Fire at 10:15am on the last day of every month
* 0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
* 0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
- * 0 15 10 ? * 6L 2002-2005 at 10:15am on every last friday of every month during the years
+ * 0 15 10 ? * 6L 2002-2005 at 10:15am on every last Friday of every month during the years
* 0 15 10 ? * 6#3 Fire at 10:15am on the third Friday of every month
* 0 11 11 11 11 ? Fire every November 11th at 11:11am.
* </pre>
@@ -233,29 +234,28 @@ public interface OperationManagerRemote {
*
* @return the information on the new schedule
*
- * @throws SchedulerException if failed to schedule the operation
+ * @throws ScheduleException if failed to schedule the operation
*/
GroupOperationSchedule scheduleGroupOperationUsingCron(Subject subject, int groupId,
int[] executionOrderResourceIds, boolean haltOnFailure, String operationName, Configuration parameters,
String cronExpression, int timeout, String description) throws ScheduleException;
-
+
/**
- * Unschedules the group operation identified with the given job ID.
+ * Unschedule the group operation identified with the given job ID.
*
* @param subject the user who is asking to unschedule the operation
* @param jobId identifies the operation to unschedule
* @param resourceGroupId the ID of the group whose operation is getting unscheduled
* @throws UnscheduleException TODO
*/
- void unscheduleGroupOperation(Subject subject, String jobId, int resourceGroupId)//
- throws UnscheduleException;
+ void unscheduleGroupOperation(Subject subject, String jobId, int resourceGroupId) throws UnscheduleException;
/**
* Returns the list of scheduled operations for the given resource. This only includes scheduled jobs on the
* individual resource - it will not include schedules from groups, even if the resource is a member of a group that
* has scheduled jobs.
*
- * @param user
+ * @param subject
* The logged in user's subject.
* @param resourceId
*
@@ -265,6 +265,18 @@ public interface OperationManagerRemote {
*/
List<ResourceOperationSchedule> findScheduledResourceOperations(Subject subject, int resourceId) throws Exception;
+ /**
+ * Returns the list of scheduled operations for the given resource group. This only includes scheduled jobs on the
+ * individual resource group.
+ *
+ * @param subject
+ * The logged in user's subject.
+ * @param groupId
+ *
+ * @return resource scheduled operations
+ * @throws Exception TODO
+ * @throws Exception
+ */
List<GroupOperationSchedule> findScheduledGroupOperations(Subject subject, int groupId) throws Exception;
/**
@@ -276,9 +288,19 @@ public interface OperationManagerRemote {
*/
List<OperationDefinition> findOperationDefinitionsByCriteria(Subject subject, OperationDefinitionCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<ResourceOperationHistory> findResourceOperationHistoriesByCriteria(Subject subject,
ResourceOperationHistoryCriteria criteria);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<GroupOperationHistory> findGroupOperationHistoriesByCriteria(Subject subject,
GroupOperationHistoryCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
index 455b4e6..e95a430 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
@@ -23,7 +23,6 @@ import java.util.List;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.bundle.BundleVersion;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.resource.CreateDeletePolicy;
import org.rhq.core.domain.resource.CreateResourceHistory;
@@ -32,8 +31,8 @@ import org.rhq.core.domain.resource.ResourceCreationDataType;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-/*
- * @author Jay Shaughnessy
+/**
+ * Public ResourceFactory API.
*/
@Remote
public interface ResourceFactoryManagerRemote {
@@ -53,7 +52,8 @@ public interface ResourceFactoryManagerRemote {
* @param resourceName name of the resource being created
* @param pluginConfiguration optional plugin configuration that may be needed in order to create the new resource
* @param resourceConfiguration resource configuration for the new resource
- * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @return the create resource history record
*/
CreateResourceHistory createResource(Subject subject, int parentResourceId, int resourceTypeId,
String resourceName, Configuration pluginConfiguration, Configuration resourceConfiguration, Integer timeout);
@@ -75,10 +75,11 @@ public interface ResourceFactoryManagerRemote {
* resource
* @param packageName name of the package that will be created as a result of this resource create
* @param packageVersion The string version of the package. If null will be set to system timestamp (long)
- * @param architectureId Id of the target architecture of the package, null indicates NoArch (any).
+ * @param architectureId Id of the target architecture of the package, null indicates NoArch (any).
* @param deploymentTimeConfiguration dictates how the package will be deployed
* @param packageBits content of the package to create
- * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @return the create resource history record
*/
CreateResourceHistory createPackageBackedResource(Subject subject, int parentResourceId, int newResourceTypeId,
String newResourceName, Configuration pluginConfiguration, String packageName, String packageVersion,
@@ -88,6 +89,20 @@ public interface ResourceFactoryManagerRemote {
* Like {@link #createPackageBackedResource(org.rhq.core.domain.auth.Subject, int, int, String, org.rhq.core.domain.configuration.Configuration, String, String, Integer, org.rhq.core.domain.configuration.Configuration, byte[], Integer)}
* except that this method takes a <code>temporaryContentHandle</code> as parameter instead of a byte array.
*
+ * @param subject user requesting the creation
+ * @param parentResourceId parent resource under which the new resource should be created
+ * @param newResourceTypeId identifies the type of resource being created
+ * @param newResourceName Ignored, pass null. This is determined from the package.
+ * @param pluginConfiguration optional plugin configuration that may be needed in order to create the new
+ * resource
+ * @param packageName name of the package that will be created as a result of this resource create
+ * @param packageVersion The string version of the package. If null will be set to system timestamp (long)
+ * @param architectureId Id of the target architecture of the package, null indicates NoArch (any).
+ * @param deploymentTimeConfiguration dictates how the package will be deployed
+ * @param temporaryContentHandle content handle of the package to create
+ * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @return the create resource history record
+ *
* @see org.rhq.enterprise.server.content.ContentManagerRemote#createTemporaryContentHandle()
* @see org.rhq.enterprise.server.content.ContentManagerRemote#uploadContentFragment(String, byte[], int, int)
* @see #createPackageBackedResource(org.rhq.core.domain.auth.Subject, int, int, String, org.rhq.core.domain.configuration.Configuration, String, String, Integer, org.rhq.core.domain.configuration.Configuration, byte[], Integer)
@@ -114,7 +129,8 @@ public interface ResourceFactoryManagerRemote {
* resource
* @param deploymentTimeConfiguration dictates how the package will be deployed
* @param packageVersionId An existing package version to back this resource
- * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @param timeout number of milliseconds before the agent suffers a timeout when creating the resource. If null uses default.
+ * @return the create resource history record
*/
public CreateResourceHistory createPackageBackedResourceViaPackageVersion(Subject subject, int parentResourceId,
int newResourceTypeId, String newResourceName, Configuration pluginConfiguration,
@@ -127,6 +143,7 @@ public interface ResourceFactoryManagerRemote {
*
* @param subject user requesting the deletion. must have resource delete perm on the resource.
* @param resourceId resource being deleted
+ * @return the delete resource history record
*/
DeleteResourceHistory deleteResource(Subject subject, int resourceId);
@@ -137,6 +154,7 @@ public interface ResourceFactoryManagerRemote {
*
* @param subject user requesting the deletion. must have resource delete perm on the resources.
* @param resourceIds the resources being deleted
+ * @return not null
*/
List<DeleteResourceHistory> deleteResources(Subject subject, int[] resourceIds);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
index 0070a88..58c2d14 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
@@ -24,6 +24,7 @@ import java.util.Map;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.measurement.ResourceAvailability;
@@ -33,11 +34,12 @@ import org.rhq.core.domain.resource.ResourceAncestryFormat;
import org.rhq.core.domain.resource.composite.ResourceAvailabilitySummary;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.server.authz.PermissionException;
/**
- * @author Jay Shaughnessy
+ * @author Jay Shaughnessy
* @author Simeon Pinder
- * @author Asaf Shakarchi
+ * @author Asaf Shakarchi
*/
@Remote
public interface ResourceManagerRemote {
@@ -63,10 +65,7 @@ public interface ResourceManagerRemote {
*
* @return the resource availability - note that if the encapsulated availability type is <code>null</code>,
* the resource availability is UNKNOWN. As of RHQ 4.4 this does not return null but rather
- * {@link AvailabilityType.UNKNOWN}.
- *
- * @throws FetchException if the resource represented by the resourceId parameter does not exist, or if the
- * passed subject does not have permission to view this resource.
+ * {@link AvailabilityType#UNKNOWN}.
*/
ResourceAvailability getLiveResourceAvailability(Subject subject, int resourceId);
@@ -77,10 +76,10 @@ public interface ResourceManagerRemote {
* @param resourceId the id of a {@link Resource} in inventory.
*
* @return the resource
- * @throws FetchException if the resource represented by the resourceId parameter does not exist, or if the
- * passed subject does not have permission to view this resource.
+ * @throws ResourceNotFoundException if the resource represented by the resourceId parameter does not exist.
+ * @throws PermissionException if the user does not have view permission for the resource
*/
- Resource getResource(Subject subject, int resourceId);
+ Resource getResource(Subject subject, int resourceId) throws ResourceNotFoundException, PermissionException;
/**
* Returns the lineage of the Resource with the specified id. The lineage is represented as a List of Resources,
@@ -92,14 +91,15 @@ public interface ResourceManagerRemote {
* @param resourceId the id of a {@link Resource} in inventory
*
* @return the lineage of the Resource with the specified id
- * @throws FetchException on any issue. Wraps ResourceNotFoundException when necessary.
+ * @throws ResourceNotFoundException if the resource represented by the resourceId parameter does not exist.
+ * @throws PermissionException if the user does not have view permission for a resource in the lineage
*/
List<Resource> findResourceLineage(Subject subject, int resourceId);
/**
* Update resource's editable properties (name, description, location).
- *
- * @param user the logged in user
+ *
+ * @param subject the logged in user
* @param resource the resource to update
* @return the updated resource
*/
@@ -126,43 +126,63 @@ public interface ResourceManagerRemote {
* Removes these resources from inventory. The resources may subsequently be rediscovered. Note that for
* each specified resource all children will also be removed, it it not necessary or recommended to
* specify more than one resource in the same ancestry line.
- *
+ *
* @param subject The logged in user's subject.
* @param resourceIds The resources to uninventory.
+ * @return the resource ids of the uninventoried resources
*/
List<Integer> uninventoryResources(Subject subject, int[] resourceIds);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<Resource> findResourcesByCriteria(Subject subject, ResourceCriteria criteria);
+ /**
+ * @param subject
+ * @param resourceId
+ * @param pageControl
+ * @return not null
+ */
PageList<Resource> findChildResources(Subject subject, int resourceId, PageControl pageControl);
- Resource getParentResource(Subject subject, int resourceId);
+ /**
+ * @param subject
+ * @param resourceId
+ * @return the parent resource or null if the resource has no parent
+ * @throws ResourceNotFoundException if the resource does not exist
+ * @throws PermissionException if the user does not have view permission for a resource in the lineage
+ */
+ Resource getParentResource(Subject subject, int resourceId) throws ResourceNotFoundException, PermissionException;
/**
* Resource.ancestry is an encoded value that holds the resource's parental ancestry. It is not suitable for display.
* This method can be used to get decoded and formatted ancestry values for a set of resources. A typical usage
* would a criteria resource fetch, and then a subsequent call to this method for ancestry display, potentially
* for resource disambiguation purposes.
- *
+ *
* @param subject
* @param resourceIds
* @param format
- * @return A Map of ResourceIds to FormattedAncestryStrings, one entry for each unique, valid, resourceId passed in.
+ * @return A Map of ResourceIds to FormattedAncestryStrings, one entry for each unique, valid, resourceId passed in.
*/
Map<Integer, String> getResourcesAncestry(Subject subject, Integer[] resourceIds, ResourceAncestryFormat format);
/**
- * Set these resources to {@link AvailabilityType.DISABLED}. While disabled resource availability reported
+ * Set these resources to {@link AvailabilityType#DISABLED}. While disabled resource availability reported
* from the agent is ignored. This is typically used for resources undergoing scheduled maintenance or
- * whose avail state should be disregarded fo some period.
+ * whose avail state should be disregarded for some period.
* <br/><br/>
- * The calling user must possess {@link Permission.DELETE} permission on all of the provided resources.
+ * The calling user must possess {@link Permission#DELETE_RESOURCE} permission on all of the provided resources.
* <br/><br/>
* Resources already disabled are ignored.
- *
+ *
* @param subject The logged in user's subject.
* @param resourceIds The resources to uninventory.
- *
+ * @return the disabled resource ids, not null
+ *
* @see #enableResources(Subject, int[])
*/
List<Integer> disableResources(Subject subject, int[] resourceIds);
@@ -172,11 +192,12 @@ public interface ResourceManagerRemote {
* until the agent reports a new, live, availability. The agent will be requested to check availability
* for the enabled resources at its earliest convenience.
* <br/><br/>
- * The calling user must possess {@link Permission.DELETE} permission on all of the provided resources.
- *
+ * The calling user must possess {@link Permission#DELETE_RESOURCE} permission on all of the provided resources.
+ *
* @param subject The logged in user's subject.
* @param resourceIds The resources to uninventory.
- *
+ * @return the enable resource ids, not null
+ *
* @see #disableResources(Subject, int[])
*/
List<Integer> enableResources(Subject subject, int[] resourceIds);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java
index fdc7025..8520abb 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeManagerRemote.java
@@ -25,14 +25,39 @@ import org.rhq.core.domain.criteria.ResourceTypeCriteria;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
+/**
+ * ResourceType remote API.
+ */
@Remote
public interface ResourceTypeManagerRemote {
+ /**
+ * @param subject
+ * @param resourceTypeId
+ * @param ignoreFlag
+ */
void setResourceTypeIgnoreFlagAndUninventoryResources(Subject subject, int resourceTypeId, boolean ignoreFlag);
+ /**
+ * @param subject
+ * @param resourceTypeId
+ * @return the type
+ * @throws ResourceTypeNotFoundException
+ */
ResourceType getResourceTypeById(Subject subject, int resourceTypeId) throws ResourceTypeNotFoundException;
+ /**
+ * @param subject
+ * @param name
+ * @param plugin
+ * @return null if not found
+ */
ResourceType getResourceTypeByNameAndPlugin(Subject subject, String name, String plugin);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<ResourceType> findResourceTypesByCriteria(Subject subject, ResourceTypeCriteria criteria);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java
index 11fcb4d..041567a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/cluster/ClusterManagerRemote.java
@@ -35,46 +35,59 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ClusterFlyweight;
/**
- * @author Greg Hinkle
+ * Public API for AutoCluster management.
*/
@Remote
public interface ClusterManagerRemote {
/**
* Given a cluster key create a backing group.
+ * @param subject
* @param clusterKey
* @param addResources If true, the new group will be assigned the current resources defined by the clusterKey.
* Otherwise no resources will be assigned to the new group.
+ * @return the backing group
* @throws IllegalArgumentException if a backing group exists for this clusterKey
* @throws IllegalStateException if the cluster group is not a compatible group
+ * @deprecated this method will be moved to private API unless a case is made to keep it public.
*/
+ @Deprecated
ResourceGroup createAutoClusterBackingGroup(Subject subject, ClusterKey clusterKey, boolean addResources);
/**
* Return the backing group for the supplied cluster key. Resource membership will represent the resources
- * last set for the group and may not reflect current membership. See {@link #getAutoClusterResources(String)}
+ * last set for the group and may not reflect current membership. See {@link #getAutoClusterResources(Subject, ClusterKey)}
+ * @param subject
* @param clusterKey
* @return The backing group, or null if the key does not have a backing group.
+ * @deprecated this method will be moved to private API unless a case is made to keep it public.
*/
+ @Deprecated
@Nullable
ResourceGroup getAutoClusterBackingGroup(Subject subject, ClusterKey clusterKey);
/**
* Given a cluster key get the auto cluster resource membership. The membership is always determined
* at call time, regardless of whether a backing group exists. To get the backing group, if it exists,
- * for a cluster key then call {@link #getAutoClusterBackingGroup(String)}.
+ * for a cluster key then call {@link #getAutoClusterBackingGroup(Subject, ClusterKey)}.
+ * @param subject
+ * @param clusterKey
+ * @return not null
+ * @deprecated this method will be moved to private API unless a case is made to keep it public.
*/
+ @Deprecated
List<Resource> getAutoClusterResources(Subject subject, ClusterKey clusterKey);
-
/**
* Load a fully populated tree view of the "cluster nodes" for a cluster group. These are
* summary nodes and do not contain the actual resources in the group.
*
* @param subject
* @param groupId
- * @return
+ * @return the tree
+ * @deprecated this method will be moved to private API unless a case is made to keep it public.
*/
+ @Deprecated
ClusterFlyweight getClusterTree(Subject subject, int groupId);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
index 6e40bb5..81504f7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
@@ -28,11 +28,16 @@ import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
/**
- * @author Jay Shaughnessy
+ * @author Jay Shaughnessy
*/
@Remote
public interface ResourceGroupManagerRemote {
+ /**
+ * @param subject
+ * @param groupId
+ * @param resourceIds
+ */
void addResourcesToGroup(Subject subject, int groupId, int[] resourceIds);
/**
@@ -43,24 +48,75 @@ public interface ResourceGroupManagerRemote {
*/
ResourceGroup createResourceGroup(Subject subject, ResourceGroup resourceGroup);
+ /**
+ * @param subject
+ * @param groupId
+ * @throws ResourceGroupNotFoundException
+ * @throws ResourceGroupDeleteException
+ */
void deleteResourceGroup(Subject subject, int groupId) throws ResourceGroupNotFoundException,
ResourceGroupDeleteException;
+ /**
+ * @param subject
+ * @param groupIds
+ * @throws ResourceGroupNotFoundException
+ * @throws ResourceGroupDeleteException
+ */
void deleteResourceGroups(Subject subject, int[] groupIds) throws ResourceGroupNotFoundException,
ResourceGroupDeleteException;
- ResourceGroup getResourceGroup(Subject subject, int groupId);
+ /**
+ * @param subject
+ * @param groupId
+ * @return the resource group
+ * @throws ResourceGroupNotFoundException
+ */
+ ResourceGroup getResourceGroup(Subject subject, int groupId) throws ResourceGroupNotFoundException;
- ResourceGroupComposite getResourceGroupComposite(Subject subject, int groupId);
+ /**
+ * @param subject
+ * @param groupId
+ * @return the composite
+ * @throws ResourceGroupNotFoundException
+ */
+ ResourceGroupComposite getResourceGroupComposite(Subject subject, int groupId)
+ throws ResourceGroupNotFoundException;
+ /**
+ * @param subject
+ * @param roleId
+ * @param pc
+ * @return not null
+ */
PageList<ResourceGroup> findResourceGroupsForRole(Subject subject, int roleId, PageControl pc);
+ /**
+ * @param subject
+ * @param groupId
+ * @param resourceIds
+ */
void removeResourcesFromGroup(Subject subject, int groupId, int[] resourceIds);
+ /**
+ * @param subject
+ * @param groupId
+ * @param isRecursive
+ */
void setRecursive(Subject subject, int groupId, boolean isRecursive);
+ /**
+ * @param subject
+ * @param newResourceGroup
+ * @return the updated resource group
+ */
ResourceGroup updateResourceGroup(Subject subject, ResourceGroup newResourceGroup);
+ /**
+ * @param subject
+ * @param criteria
+ * @return not null
+ */
PageList<ResourceGroup> findResourceGroupsByCriteria(Subject subject, ResourceGroupCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
index b1d0d1d..69f2862 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
@@ -21,53 +21,32 @@ package org.rhq.enterprise.server.resource.group.definition;
import javax.ejb.Local;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
import org.rhq.core.domain.resource.group.GroupDefinition;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.resource.group.ResourceGroupDeleteException;
-import org.rhq.enterprise.server.resource.group.ResourceGroupUpdateException;
-import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionAlreadyExistsException;
-import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionCreateException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionDeleteException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionNotFoundException;
-import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionUpdateException;
import org.rhq.enterprise.server.resource.group.definition.framework.ExpressionEvaluator;
-import org.rhq.core.domain.resource.group.InvalidExpressionException;
@Local
-public interface GroupDefinitionManagerLocal {
+public interface GroupDefinitionManagerLocal extends GroupDefinitionManagerRemote {
void recalculateDynaGroups(Subject subject);
GroupDefinition getById(int groupDefinitionId) throws GroupDefinitionNotFoundException;
- GroupDefinition createGroupDefinition(Subject subject, GroupDefinition newGroupDefinition)
- throws GroupDefinitionAlreadyExistsException, GroupDefinitionCreateException;
-
- GroupDefinition updateGroupDefinition(Subject subject, GroupDefinition updated)
- throws GroupDefinitionAlreadyExistsException, GroupDefinitionUpdateException, InvalidExpressionException,
- ResourceGroupUpdateException;
-
- void calculateGroupMembership(Subject subject, int groupDefinitionId) throws ResourceGroupDeleteException,
- GroupDefinitionDeleteException, GroupDefinitionNotFoundException, InvalidExpressionException;
-
Integer calculateGroupMembership_helper(Subject subject, int groupDefinitionId, ExpressionEvaluator.Result result)
throws ResourceGroupDeleteException, GroupDefinitionNotFoundException, GroupDefinitionNotFoundException;
PageList<GroupDefinition> getGroupDefinitions(Subject subject, PageControl pc);
- PageList<GroupDefinition> findGroupDefinitionsByCriteria(Subject subject, ResourceGroupDefinitionCriteria criteria);
-
int getGroupDefinitionCount(Subject subject);
int getAutoRecalculationGroupDefinitionCount(Subject subject);
int getDynaGroupCount(Subject subject);
- void removeGroupDefinition(Subject subject, Integer groupDefinitionId) throws GroupDefinitionNotFoundException,
- GroupDefinitionDeleteException;
-
void removeManagedResource_helper(Subject subject, int groupDefinitionId, Integer doomedGroupId)
throws GroupDefinitionDeleteException, GroupDefinitionNotFoundException;
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java
index 96dbefe..3def8ac 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/SavedSearchManagerRemote.java
@@ -39,15 +39,13 @@ public interface SavedSearchManagerRemote {
*
* @param subject the logged in user requesting the {@link SavedSearch} deletion
* @param savedSearch the primary key of the {@link SavedSearch} to be deleted
+ * @return the SavedSearch id
*
* @throws PermissionException if the user is not authorized to create the {@link SavedSearch}. Only inventory
* managers can create global saved searches. Regular users can only create {@link SavedSearch}es against
* their own accounts.
*/
-
- public int createSavedSearch( //
- Subject subject, //
- SavedSearch savedSearch);
+ public int createSavedSearch(Subject subject, SavedSearch savedSearch);
/**
* Saves all changes to the passed {@link SavedSearch} database, correlating it to the record already
@@ -62,9 +60,7 @@ public interface SavedSearchManagerRemote {
* their own accounts.
*/
- public boolean updateSavedSearch( //
- Subject subject, //
- SavedSearch savedSearch);
+ public boolean updateSavedSearch(Subject subject, SavedSearch savedSearch);
/**
* Deletes the {@link SavedSearch} with the given primary key
@@ -77,9 +73,7 @@ public interface SavedSearchManagerRemote {
* their own accounts.
*/
- public void deleteSavedSearch( //
- Subject subject, //
- int savedSearchId);
+ public void deleteSavedSearch(Subject subject, int savedSearchId);
/**
* Returns the {@link SavedSearch} with the given primary key
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java
index 5bbe514..842e1a9 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/SynchronizationManagerRemote.java
@@ -31,6 +31,8 @@ import org.rhq.core.domain.sync.ImportConfigurationDefinition;
import org.rhq.core.domain.sync.ImportReport;
/**
+ * Public API for synchronization manager.
+ *
* @author Lukas Krejci
*/
@@ -40,7 +42,7 @@ public interface SynchronizationManagerRemote {
/**
* This exports the configuration data of all supported subsystems in RHQ.
* <p>
- * The returned report contains the data bytes themselves as well as a map of
+ * The returned report contains the data bytes themselves as well as a map of
* messages and notes produced by the different subsystem exporters so that
* the caller of this method is able to determine possible problems of the export
* file without needing to deserialize and read it (the same messages are also included
@@ -49,36 +51,43 @@ public interface SynchronizationManagerRemote {
* The export data is a zipped XML.
* <p>
* The export requires the user to have {@link Permission#MANAGE_INVENTORY} permission.
- *
+ *
* @param subject the logged in user
* @return the export report
*/
ExportReport exportAllSubsystems(Subject subject);
-
+
+ /**
+ * @param subject
+ * @param exportFile
+ * @throws ValidationException
+ */
void validate(Subject subject, byte[] exportFile) throws ValidationException;
/**
* Returns the configuration definition of the import for synchronizer of given type.
* @param synchronizerClass
- * @return
+ * @return null if class not found
*/
ImportConfigurationDefinition getImportConfigurationDefinition(String synchronizerClass);
-
+
/**
* Returns the configuration definitions of all known importers.
- * @return
+ * @return not null
*/
List<ImportConfigurationDefinition> getImportConfigurationDefinitionOfAllSynchronizers();
-
+
/**
* Imports everything from the export file.
- *
+ *
* @param subject the authenticated user
* @param exportFile the contents of the export file
* @param importerConfigurations the configurations of individual importers to be used when importing or null
* if the default configurations should be used for all the importers.
- *
+ *
* @return the report describing the result of the import
+ * @throws ValidationException
+ * @throws ImportException
*/
ImportReport importAllSubsystems(Subject subject, byte[] exportFile,
List<ImportConfiguration> importerConfigurations) throws ValidationException, ImportException;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
index e8b8467..eb0b749 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
@@ -34,24 +34,26 @@ import org.rhq.core.domain.common.composite.SystemSettings;
@Remote
public interface SystemManagerRemote {
/**
- * Provides product information suitable for "About" details.
- *
+ * Provides product information suitable for "About" details.
+ *
* @param subject user making the request
- *
+ *
* @return the product info
*/
ProductInfo getProductInfo(Subject subject);
/**
- * Provides details (such as product version) of the server processing the request. Requires MANAGE_SETTINGS.
- *
+ * Provides details (such as product version) of the server processing the request. Requires MANAGE_SETTINGS.
+ *
* @param subject user making the request
- *
+ *
* @return server details
*/
ServerDetails getServerDetails(Subject subject);
/**
+ * @param subject
+ * @return system config
* @deprecated use {@link #getSystemSettings(Subject)} instead
*/
@Deprecated
@@ -71,6 +73,10 @@ public interface SystemManagerRemote {
SystemSettings getSystemSettings(Subject subject);
/**
+ * @param subject
+ * @param properties
+ * @param skipValidation
+ * @throws Exception
* @deprecated use {@link #setSystemSettings(Subject, SystemSettings)} instead
*/
@Deprecated
@@ -82,6 +88,7 @@ public interface SystemManagerRemote {
*
* @param subject the user who wants to change the settings
* @param settings the new system configuration settings
+ * @throws Exception
*/
void setSystemSettings(Subject subject, SystemSettings settings) throws Exception;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java
index 50ecf5f..06d15dd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/tagging/TagManagerRemote.java
@@ -24,7 +24,6 @@ package org.rhq.enterprise.server.tagging;
import java.util.Set;
-import javax.ejb.Local;
import javax.ejb.Remote;
import org.rhq.core.domain.auth.Subject;
@@ -39,26 +38,73 @@ import org.rhq.core.domain.util.PageList;
@Remote
public interface TagManagerRemote {
-
+ /**
+ * @param subject
+ * @param tagCriteria
+ * @return not null
+ */
PageList<Tag> findTagsByCriteria(Subject subject, TagCriteria tagCriteria);
+ /**
+ * @param subject
+ * @param tags
+ * @return the added Tags
+ */
Set<Tag> addTags(Subject subject, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param tags
+ */
void removeTags(Subject subject, Set<Tag> tags);
-
+ /**
+ * @param subject
+ * @param resourceId
+ * @param tags
+ */
void updateResourceTags(Subject subject, int resourceId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param resourceGroupId
+ * @param tags
+ */
void updateResourceGroupTags(Subject subject, int resourceGroupId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param bundleId
+ * @param tags
+ */
void updateBundleTags(Subject subject, int bundleId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param bundleVersionId
+ * @param tags
+ */
void updateBundleVersionTags(Subject subject, int bundleVersionId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param bundleDeploymentId
+ * @param tags
+ */
void updateBundleDeploymentTags(Subject subject, int bundleDeploymentId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param bundleDestinationId
+ * @param tags
+ */
void updateBundleDestinationTags(Subject subject, int bundleDestinationId, Set<Tag> tags);
+ /**
+ * @param subject
+ * @param tagCriteria
+ * @return not null
+ */
PageList<TagReportComposite> findTagReportCompositesByCriteria(Subject subject, TagCriteria tagCriteria);
}
commit c6dbd5bd8061d58fce8c4f131d21f0d13c8bb8bd
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Oct 17 17:07:47 2013 -0400
updates to possibly avoid some test interation issues.
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
index 56dc275..d9b03ef 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
@@ -79,6 +79,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class OperationManagerBeanTest extends AbstractEJB3Test {
private static final boolean ENABLE_TESTS = true;
+ private static final String PREFIX = OperationManagerBeanTest.class.getSimpleName();
private ConfigurationManagerLocal configurationManager;
private OperationManagerLocal operationManager;
@@ -151,9 +152,10 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 20000L; // the operation timeout is defined at 10 seconds, we'll block it for 20s
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 5000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 5000L));
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
List<ResourceOperationSchedule> schedules;
schedules = operationManager.findScheduledResourceOperations(overlord(), resource.getId());
assert schedules != null;
@@ -196,12 +198,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Sleep = 0L;
// let the trigger not fire until several seconds from now so we can query the schedule itself
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 10000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 10000L));
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(), null,
- true, "testOp", null, trigger, "desc");
+ true, PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -213,8 +216,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getSubject().equals(overlord());
assert returnedSchedule.getGroup().getId() == newGroup.getId();
assert returnedSchedule.getParameters() == null;
- assert returnedSchedule.getOperationName().equals("testOp");
- assert returnedSchedule.getDescription().equals("desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
// let's immediately unschedule it before it triggers
operationManager.unscheduleGroupOperation(overlord(), returnedSchedule.getJobId().toString(), returnedSchedule
@@ -228,8 +231,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// should be no resource histories that belong to it
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
}
@@ -245,12 +247,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
params.put(new PropertySimple("param2", "blah"));
// let the trigger not fire until several seconds from now so we can query the schedule itself
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 3600000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 3600000L));
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(), null,
- true, "testOp", params, trigger, "desc");
+ true, PREFIX + "testOp", params, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() != null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -268,8 +271,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getSubject().equals(overlord());
assert returnedSchedule.getGroup().getId() == newGroup.getId();
assert returnedSchedule.getParameters() != null;
- assert returnedSchedule.getOperationName().equals("testOp");
- assert returnedSchedule.getDescription().equals("desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
PageList<GroupOperationScheduleComposite> list;
list = operationManager.findCurrentlyScheduledGroupOperations(overlord(), PageControl.getUnlimitedInstance());
@@ -293,8 +296,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// should be no resource histories that belong to it
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
@@ -310,12 +312,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Sleep = 0L;
// let the trigger not fire until several seconds from now so we can query the schedule itself
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 5000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 5000L));
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(), null,
- true, "testOp", null, trigger, "desc");
+ true, PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -327,8 +330,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getSubject().equals(overlord());
assert returnedSchedule.getGroup().getId() == newGroup.getId();
assert returnedSchedule.getParameters() == null;
- assert returnedSchedule.getOperationName().equals("testOp");
- assert returnedSchedule.getDescription().equals("desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
Thread.sleep(9000L); // wait for it to be triggered and finish
@@ -346,8 +349,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
@@ -364,9 +366,9 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Sleep = 30000L;
simulatedOperation_CancelResults = new CancelResults(InterruptedState.RUNNING);
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
operationManager.scheduleGroupOperation(overlord(), newGroup.getId(), new int[] { newResource.getId() }, true,
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
PageList<GroupOperationHistory> results = null;
@@ -410,8 +412,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert results.size() == 1;
assert results.get(0).getStatus() == OperationRequestStatus.CANCELED : results.get(0);
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2.size() == 1 : "Should have had 1 resource history result: " + results2;
assert results2.get(0).getStatus() == OperationRequestStatus.CANCELED : results2.get(0);
@@ -432,8 +433,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
}
@@ -451,9 +451,9 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Sleep = 30000L;
simulatedOperation_CancelResults = new CancelResults(InterruptedState.FINISHED);
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
operationManager.scheduleGroupOperation(overlord(), newGroup.getId(), new int[] { newResource.getId() }, true,
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
PageList<GroupOperationHistory> results = null;
@@ -496,8 +496,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// still pending - our operation wasn't really canceled - waiting for the agent to tell us its finished
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2.size() == 0;
results2 = operationManager.findPendingResourceOperationHistories(overlord(), newResource.getId(),
PageControl.getUnlimitedInstance());
@@ -513,8 +512,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
}
@@ -526,12 +524,12 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(),
- new int[] { newResource.getId() }, true, "testOp", null, trigger, "desc");
+ new int[] { newResource.getId() }, true, PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -562,8 +560,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource history from the group
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2.size() == 1 : "Should have had 1 result: " + results2;
ResourceOperationHistory rHistory = results2.get(0);
@@ -583,15 +580,14 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
list = operationManager.findRecentlyCompletedGroupOperations(overlord(), PageControl.getUnlimitedInstance());
assert list.size() == 0;
}
-
+
@Test(enabled = ENABLE_TESTS)
public void testScheduleGroupOperation2() throws Exception {
// make it a success
@@ -600,10 +596,10 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Sleep = 0L;
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(),
- new int[] { newResource.getId() }, true, "testOp", null, 0, 0, 0, 20, "desc");
+ new int[] { newResource.getId() }, true, PREFIX + "testOp", null, 0, 0, 0, 20, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() != null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -613,7 +609,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
do {
Thread.sleep(SECONDS.toMillis(5));
results = operationManager.findCompletedGroupOperationHistories(overlord(), newGroup.getId(),
- PageControl.getUnlimitedInstance());
+ PageControl.getUnlimitedInstance());
testOpComplete = results != null && results.size() == 1;
} while (!testOpComplete && (nanoTime() - start) < MINUTES.toNanos(2));
@@ -638,8 +634,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource history from the group
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2.size() == 1 : "Should have had 1 result: " + results2;
ResourceOperationHistory rHistory = results2.get(0);
@@ -659,15 +654,14 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
list = operationManager.findRecentlyCompletedGroupOperations(overlord(), PageControl.getUnlimitedInstance());
assert list.size() == 0;
}
-
+
@Test(enabled = ENABLE_TESTS)
public void testScheduleGroupOperation3() throws Exception {
// make it a success
@@ -679,22 +673,22 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
newSchedule.setGroup(newGroup);
newSchedule.setExecutionOrder(Arrays.asList(newResource));
newSchedule.setHaltOnFailure(true);
- newSchedule.setOperationName("testOp");
+ newSchedule.setOperationName(PREFIX + "testOp");
newSchedule.setParameters(null);
newSchedule.setJobTrigger(JobTrigger.createNowTrigger());
- newSchedule.setDescription("desc");
-
+ newSchedule.setDescription(PREFIX + "desc");
+
int scheduleId = operationManager.scheduleGroupOperation(overlord(), newSchedule);
List<GroupOperationSchedule> schedules = operationManager.findScheduledGroupOperations(overlord(),
newGroup.getId());
-
+
assert schedules != null;
assert !schedules.isEmpty();
GroupOperationSchedule schedule = schedules.get(0);
assert schedule != null;
assert schedule.getId() == scheduleId;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -725,8 +719,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource history from the group
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2.size() == 1 : "Should have had 1 result: " + results2;
ResourceOperationHistory rHistory = results2.get(0);
@@ -746,8 +739,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
@@ -762,12 +754,12 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", 1, 2000L);
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", 1, 2000L);
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(),
- new int[] { newResource.getId() }, true, "testOp", null, trigger, "desc");
+ new int[] { newResource.getId() }, true, PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -802,8 +794,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource's two history items from the group (resource executed once per group trigger)
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2.size() == 2 : "Should have had 2 results since it was triggered twice: " + results2;
ResourceOperationHistory rHistory0 = results2.get(0);
@@ -838,8 +829,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
}
@@ -851,7 +841,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
Configuration params = new Configuration();
params.put(new PropertySimple("param1", "group-test"));
params.put(new PropertySimple("param2", "blah"));
@@ -861,10 +851,10 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
int[] order = new int[] { newResource.getId(), newResource.getId() };
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(), order,
- true, "testOp", params, trigger, "desc");
+ true, PREFIX + "testOp", params, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() != null;
assert schedule.getParameters().getId() > 0;
assert schedule.getParameters().getNames().size() == 2;
@@ -900,8 +890,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource history from the group
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
ResourceOperationHistory rHistory = results2.get(0);
assert rHistory.getId() > 0 : rHistory;
assert rHistory.getJobId() != null : rHistory;
@@ -928,8 +917,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
}
@@ -940,12 +928,12 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(),
- new int[] { newResource.getId() }, true, "testOp", null, trigger, "desc");
+ new int[] { newResource.getId() }, true, PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -969,8 +957,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource history from the group
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
ResourceOperationHistory rHistory = results2.get(0);
assert rHistory.getId() > 0 : rHistory;
assert rHistory.getJobId() != null : rHistory;
@@ -989,8 +976,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
}
@@ -1001,12 +987,12 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = true;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
GroupOperationSchedule schedule = operationManager.scheduleGroupOperation(overlord(), newGroup.getId(),
- new int[] { newResource.getId() }, true, "testOp", null, trigger, "desc");
+ new int[] { newResource.getId() }, true, PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getGroup().getId() == newGroup.getId();
@@ -1030,8 +1016,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource history from the group
PageList<ResourceOperationHistory> results2;
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
ResourceOperationHistory rHistory = results2.get(0);
assert rHistory.getId() > 0 : rHistory;
assert rHistory.getJobId() != null : rHistory;
@@ -1050,8 +1035,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purging group history purges all resource histories that belong to it
results2 = operationManager.findCompletedResourceOperationHistories(overlord(), newResource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert results2 != null;
assert results2.size() == 0;
}
@@ -1064,12 +1048,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 10000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 10000L));
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getResource().getId() == newResource.getId();
@@ -1081,8 +1066,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getSubject().equals(overlord());
assert returnedSchedule.getResource().getId() == resource.getId();
assert returnedSchedule.getParameters() == null;
- assert returnedSchedule.getOperationName().equals("testOp");
- assert returnedSchedule.getDescription().equals("desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
PageList<ResourceOperationScheduleComposite> list;
list = operationManager
@@ -1094,8 +1079,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// let's immediately unschedule it before it triggers
operationManager.unscheduleResourceOperation(overlord(), returnedSchedule.getJobId().toString(),
- returnedSchedule
- .getResource().getId());
+ returnedSchedule.getResource().getId());
list = operationManager
.findCurrentlyScheduledResourceOperations(overlord(), PageControl.getUnlimitedInstance());
@@ -1121,12 +1105,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
params.put(new PropertySimple("param1", "group-test"));
params.put(new PropertySimple("param2", "blah"));
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 10000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 10000L));
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", params, trigger, "desc");
+ PREFIX + "testOp", params, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() != null;
assert schedule.getResource().getId() == newResource.getId();
@@ -1144,13 +1129,12 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getSubject().equals(overlord());
assert returnedSchedule.getResource().getId() == resource.getId();
assert returnedSchedule.getParameters() != null;
- assert returnedSchedule.getOperationName().equals("testOp");
- assert returnedSchedule.getDescription().equals("desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
// let's immediately unschedule it before it triggers
operationManager.unscheduleResourceOperation(overlord(), returnedSchedule.getJobId().toString(),
- returnedSchedule
- .getResource().getId());
+ returnedSchedule.getResource().getId());
// history should never have existed - we unscheduled faster than its trigger
PageList<ResourceOperationHistory> results;
@@ -1172,12 +1156,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 5000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 5000L));
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getResource().getId() == newResource.getId();
@@ -1189,8 +1174,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getSubject().equals(overlord());
assert returnedSchedule.getResource().getId() == resource.getId();
assert returnedSchedule.getParameters() == null;
- assert returnedSchedule.getOperationName().equals("testOp");
- assert returnedSchedule.getDescription().equals("desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
Thread.sleep(9000L); // wait for it to be triggered and complete
@@ -1203,8 +1188,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
System.out.println("We did not yet get a result -- waiting some more");
Thread.sleep(5000L);
results = operationManager.findCompletedResourceOperationHistories(overlord(), resource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
}
assert results != null : "Results were unexpectedly empty";
@@ -1232,12 +1216,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 5000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 5000L));
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getResource().getId() == newResource.getId();
@@ -1249,8 +1234,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getSubject().equals(overlord());
assert returnedSchedule.getResource().getId() == resource.getId();
assert returnedSchedule.getParameters() == null;
- assert returnedSchedule.getOperationName().equals("testOp");
- assert returnedSchedule.getDescription().equals("desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
Thread.sleep(9000L); // wait for it to be triggered and complete
@@ -1263,8 +1248,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
System.out.println("We did not yet get a result -- waiting some more");
Thread.sleep(5000L);
results = operationManager.findCompletedResourceOperationHistories(overlord(), resource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
}
assert results.size() == 1 : "Did not get 1 result, but " + results.size();
@@ -1290,12 +1274,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = true;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis() + 5000L));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis() + 5000L));
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getResource().getId() == newResource.getId();
@@ -1307,8 +1292,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getSubject().equals(overlord());
assert returnedSchedule.getResource().getId() == resource.getId();
assert returnedSchedule.getParameters() == null;
- assert returnedSchedule.getOperationName().equals("testOp");
- assert returnedSchedule.getDescription().equals("desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
Thread.sleep(9000L); // wait for it to be triggered and complete
@@ -1320,8 +1305,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
System.out.println("We did not yet get a result -- waiting some more");
Thread.sleep(5000L);
results = operationManager.findCompletedResourceOperationHistories(overlord(), resource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
}
assert results.size() == 1 : "Did not get 1 result but " + results.size();
@@ -1348,8 +1332,9 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Sleep = 30000L; // long enough so it doesn't finish before we cancel
simulatedOperation_CancelResults = new CancelResults(InterruptedState.RUNNING);
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
- operationManager.scheduleResourceOperation(overlord(), resource.getId(), "testOp", null, trigger, "desc");
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
+ operationManager.scheduleResourceOperation(overlord(), resource.getId(), PREFIX + "testOp", null, trigger,
+ PREFIX + "desc");
PageList<ResourceOperationHistory> results = null;
@@ -1407,8 +1392,9 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Sleep = 30000L; // long enough so it doesn't notify that it finished before we cancel
simulatedOperation_CancelResults = new CancelResults(InterruptedState.FINISHED); // agent says its finished
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
- operationManager.scheduleResourceOperation(overlord(), resource.getId(), "testOp", null, trigger, "desc");
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
+ operationManager.scheduleResourceOperation(overlord(), resource.getId(), PREFIX + "testOp", null, trigger,
+ PREFIX + "desc");
PageList<ResourceOperationHistory> results = null;
@@ -1464,12 +1450,13 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date(System.currentTimeMillis()));
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date(
+ System.currentTimeMillis()));
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getResource().getId() == newResource.getId();
@@ -1508,7 +1495,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
PageControl.getUnlimitedInstance());
assert list.size() == 0;
}
-
+
@Test(enabled = ENABLE_TESTS)
public void testScheduleResourceOperation2() throws Exception {
Resource resource = newResource;
@@ -1517,27 +1504,27 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Error = null;
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
-
+
ResourceOperationSchedule newSchedule = new ResourceOperationSchedule();
-
+
newSchedule.setJobTrigger(JobTrigger.createNowTrigger());
newSchedule.setResource(resource);
- newSchedule.setOperationName("testOp");
- newSchedule.setDescription("desc");
+ newSchedule.setOperationName(PREFIX + "testOp");
+ newSchedule.setDescription(PREFIX + "desc");
newSchedule.setParameters(null);
newSchedule.setParameters(null);
int scheduleId = operationManager.scheduleResourceOperation(overlord(), newSchedule);
List<ResourceOperationSchedule> schedules = operationManager.findScheduledResourceOperations(overlord(),
resource.getId());
-
+
assert schedules != null;
assert !schedules.isEmpty();
ResourceOperationSchedule schedule = schedules.get(0);
assert schedule != null;
assert schedule.getId() == scheduleId;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getResource().getId() == newResource.getId();
@@ -1586,12 +1573,12 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", 1, 750);
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", 1, 750);
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", null, trigger, "desc");
+ PREFIX + "testOp", null, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() == null;
assert schedule.getResource().getId() == newResource.getId();
@@ -1644,14 +1631,14 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
simulatedOperation_Timeout = false;
simulatedOperation_Sleep = 0L;
- Trigger trigger = new SimpleTrigger("tgrname", "tgrgroup", new Date());
+ Trigger trigger = new SimpleTrigger(PREFIX + "triggername", PREFIX + "triggergroup", new Date());
Configuration params = new Configuration();
params.put(new PropertySimple("param1", "test-value!"));
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperation(overlord(), resource.getId(),
- "testOp", params, trigger, "desc");
+ PREFIX + "testOp", params, trigger, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() != null;
assert schedule.getParameters().getId() > 0;
assert schedule.getParameters().getSimple("param1") != null;
@@ -1700,10 +1687,10 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
List<OperationDefinition> ops;
// need to eager load the definition because .equals compares the resource type objects
- op = operationManager.getSupportedGroupOperation(overlord(), newGroup.getId(), "testOp", true);
+ op = operationManager.getSupportedGroupOperation(overlord(), newGroup.getId(), PREFIX + "testOp", true);
assert op != null;
assert op.getId() > 0;
- assert op.getName().equals("testOp");
+ assert op.getName().equals(PREFIX + "testOp");
assert op.equals(newOperation);
// need to eager load the definition because .equals compares the resource type objects
@@ -1713,14 +1700,14 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
op = ops.iterator().next();
assert op != null;
assert op.getId() > 0;
- assert op.getName().equals("testOp");
+ assert op.getName().equals(PREFIX + "testOp");
assert op.equals(newOperation);
// need to eager load the definition because .equals compares the resource type objects
- op = operationManager.getSupportedResourceOperation(overlord(), newResource.getId(), "testOp", true);
+ op = operationManager.getSupportedResourceOperation(overlord(), newResource.getId(), PREFIX + "testOp", true);
assert op != null;
assert op.getId() > 0;
- assert op.getName().equals("testOp");
+ assert op.getName().equals(PREFIX + "testOp");
assert op.equals(newOperation);
// need to eager load the definition because .equals compares the resource type objects
@@ -1730,7 +1717,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
op = ops.iterator().next();
assert op != null;
assert op.getId() > 0;
- assert op.getName().equals("testOp");
+ assert op.getName().equals(PREFIX + "testOp");
assert op.equals(newOperation);
}
@@ -1748,8 +1735,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
try {
Trigger trigger = new SimpleTrigger();
- operationManager
- .scheduleResourceOperation(noPermSubject, resource.getId(), "testOp", null, trigger, "");
+ operationManager.scheduleResourceOperation(noPermSubject, resource.getId(), PREFIX + "testOp", null,
+ trigger, "");
assert false : "Should not have permission to schedule a new op";
} catch (PermissionException expected) {
}
@@ -1768,7 +1755,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
try {
// do not need to eager load just to test authorization
- operationManager.getSupportedGroupOperation(noPermSubject, newGroup.getId(), "testOp", false);
+ operationManager.getSupportedGroupOperation(noPermSubject, newGroup.getId(), PREFIX + "testOp", false);
assert false : "Should not have permission to do this";
} catch (PermissionException expected) {
}
@@ -1782,7 +1769,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
try {
// do not need to eager load just to test authorization
- operationManager.getSupportedResourceOperation(noPermSubject, newResource.getId(), "testOp", false);
+ operationManager.getSupportedResourceOperation(noPermSubject, newResource.getId(), PREFIX + "testOp",
+ false);
assert false : "Should not have permission to do this";
} catch (PermissionException expected) {
}
@@ -1797,7 +1785,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
LookupUtil.getSubjectManager().deleteUsers(overlord(), new int[] { noPermSubject.getId() });
}
}
-
+
@Test(enabled = ENABLE_TESTS)
public void testCronResourceScheduling() throws Exception {
Resource resource = newResource;
@@ -1805,12 +1793,12 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
calendar.add(Calendar.SECOND, 2);
Subject overlord = overlord();
ResourceOperationSchedule schedule = operationManager.scheduleResourceOperationUsingCron(overlord,
- resource.getId(), "testOp", calendar.get(Calendar.SECOND) + " " + calendar.get(Calendar.MINUTE)
- + " * * * ?", 20, null, "desc");
+ resource.getId(), PREFIX + "testOp", calendar.get(Calendar.SECOND) + " " + calendar.get(Calendar.MINUTE)
+ + " * * * ?", 20, null, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() != null;
assert schedule.getResource().getId() == resource.getId();
@@ -1823,8 +1811,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getJobId() != null : returnedSchedule;
assert returnedSchedule.getJobName() != null : returnedSchedule;
assert returnedSchedule.getJobGroup() != null : returnedSchedule;
- assert returnedSchedule.getDescription().equals("desc");
- assert returnedSchedule.getOperationName().equals("testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
assert returnedSchedule.getParameters() != null;
assert returnedSchedule.getResource().getId() == resource.getId();
@@ -1833,8 +1821,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
PageList<ResourceOperationHistory> resultsHist;
resultsHist = operationManager.findCompletedResourceOperationHistories(overlord(), resource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert resultsHist != null;
assert resultsHist.size() == 1;
ResourceOperationHistory history = resultsHist.get(0);
@@ -1857,8 +1844,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
operationManager.deleteOperationHistory(overlord(), history.getId(), false);
resultsHist = operationManager.findCompletedResourceOperationHistories(overlord(), resource.getId(), null,
- null,
- PageControl.getUnlimitedInstance());
+ null, PageControl.getUnlimitedInstance());
assert resultsHist != null;
assert resultsHist.size() == 0;
@@ -1875,12 +1861,12 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
calendar.add(Calendar.SECOND, 2);
Subject overlord = overlord();
GroupOperationSchedule schedule = operationManager.scheduleGroupOperationUsingCron(overlord, newGroup.getId(),
- new int[] { resource.getId() }, true, "testOp", null,
- calendar.get(Calendar.SECOND) + " " + calendar.get(Calendar.MINUTE) + " * * * ?", 20, "desc");
+ new int[] { resource.getId() }, true, PREFIX + "testOp", null, calendar.get(Calendar.SECOND) + " "
+ + calendar.get(Calendar.MINUTE) + " * * * ?", 20, PREFIX + "desc");
assert schedule != null;
- assert schedule.getDescription().equals("desc");
- assert schedule.getOperationName().equals("testOp");
+ assert schedule.getDescription().equals(PREFIX + "desc");
+ assert schedule.getOperationName().equals(PREFIX + "testOp");
assert schedule.getParameters() != null;
assert schedule.getGroup().getId() == group.getId();
@@ -1893,8 +1879,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert returnedSchedule.getJobId() != null : returnedSchedule;
assert returnedSchedule.getJobName() != null : returnedSchedule;
assert returnedSchedule.getJobGroup() != null : returnedSchedule;
- assert returnedSchedule.getDescription().equals("desc");
- assert returnedSchedule.getOperationName().equals("testOp");
+ assert returnedSchedule.getDescription().equals(PREFIX + "desc");
+ assert returnedSchedule.getOperationName().equals(PREFIX + "testOp");
assert returnedSchedule.getParameters() != null;
assert returnedSchedule.getGroup().getId() == group.getId();
@@ -1941,27 +1927,27 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Resource resource;
try {
- ResourceType resourceType = new ResourceType("plat" + System.currentTimeMillis(), "test",
+ ResourceType resourceType = new ResourceType(PREFIX + "platformType", PREFIX + "plugin",
ResourceCategory.PLATFORM, null);
- OperationDefinition def = new OperationDefinition(resourceType, "testOp");
+ OperationDefinition def = new OperationDefinition(resourceType, PREFIX + "testOp");
def.setTimeout(10);
def.setDisplayName("Test Operation");
resourceType.addOperationDefinition(def);
em.persist(resourceType);
- Agent agent = new Agent("testagent", "testaddress", 1, "", "testtoken");
+ Agent agent = new Agent(PREFIX + "agent", PREFIX + "address", 1, "", PREFIX + "token");
em.persist(agent);
em.flush();
- resource = new Resource("reskey" + System.currentTimeMillis(), "resname", resourceType);
+ resource = new Resource(PREFIX + "reskey", PREFIX + "resname", resourceType);
resource.setUuid("" + new Random().nextInt());
resource.setAgent(agent);
resource.setInventoryStatus(InventoryStatus.COMMITTED);
em.persist(resource);
- ResourceGroup group = new ResourceGroup("testgroupOMB" + System.currentTimeMillis(), resourceType);
+ ResourceGroup group = new ResourceGroup(PREFIX + "groupOMB" + System.currentTimeMillis(), resourceType);
em.persist(group);
group.addExplicitResource(resource);
em.flush();
commit 7899ae2aaaa1334f628c1c6caa5349afd33cc4eb
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Oct 18 10:19:03 2013 -0400
BZ 1004730
diff --git a/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml b/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
index 3614b7f..67eff91 100644
--- a/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
+++ b/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
@@ -348,6 +348,10 @@
<available file="${jboss.conf.dir}/rhq.keystore" type="file" property="rhq.keystore.exists" />
<antcall target="generate-rhq-ssl-key" />
+ <replace file="${jboss.conf.dir}/logging.properties"
+ token="logger.org.jboss.as.config.level=DEBUG"
+ value="logger.org.jboss.as.config.level=INFO"/>
+
<echo>Delete the various working directories if they happen to exist</echo>
<delete dir="${jboss.home}/standalone/data" />
<delete dir="${jboss.home}/standalone/log" />
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 0cc1e7f..751d2b0 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
@@ -184,6 +184,8 @@ public class ServerInstallUtil {
String val = buildExpression(ServerProperties.PROP_LOG_LEVEL, serverProperties, true);
client.setLoggerLevel("org.rhq", val);
LOG.info("Logging category org.rhq set to [" + val + "]");
+
+ client.setLoggerLevel("org.jboss.as.config", "INFO"); // BZ 1004730
}
/**
commit b28a97de1f0aa31d7dc6f391c7bd44f421281e23
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Oct 18 15:19:18 2013 +0200
add the "compliance" attribute.
diff --git a/modules/helpers/bundleGen/src/main/resources/deployMain.ftl b/modules/helpers/bundleGen/src/main/resources/deployMain.ftl
index 21d53f7..7fa0878 100644
--- a/modules/helpers/bundleGen/src/main/resources/deployMain.ftl
+++ b/modules/helpers/bundleGen/src/main/resources/deployMain.ftl
@@ -30,7 +30,9 @@
<rhq:deployment-unit name="fixedForNow"
preinstallTarget="preinstall"
- postinstallTarget="postinstall">
+ postinstallTarget="postinstall"
+ compliance="full"
+ >
<rhq:archive name="${props.bundleFile}">
<#if props.replacePattern??>
commit ea25b0652272f298e947b68b9ac166b026d3c88b
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Oct 18 15:18:21 2013 +0200
BZ 1020889 - rest api is no longer a preview.
diff --git a/modules/enterprise/gui/rest-examples-war/src/main/webapp/index.html b/modules/enterprise/gui/rest-examples-war/src/main/webapp/index.html
index 041dbb7..bbc4902 100644
--- a/modules/enterprise/gui/rest-examples-war/src/main/webapp/index.html
+++ b/modules/enterprise/gui/rest-examples-war/src/main/webapp/index.html
@@ -1,11 +1,7 @@
<html>
<body>
<h2>RHQ Rest API</h2>
-<strong>Please note: the API is not stable at this point. Do not rely on it.</strong><br/>
-Join us in making it great by providing feedback and contributions of code and examples
-that use the api.
-See also <a href="http://rhq-project.org/display/RHQ/Design-REST">the RHQ wiki</a> on REST.
Check out the <a href="https://github.com/rhq-project/samples/tree/master/rest-api">RHQ samples project</a>
for samples in various programming languages and
<a href="https://github.com/pilhuhn/RHQpocket">RHQpocket</a> as an example of a
commit d563712cdff9399e4ce386bbdd6021bc86ba7d44
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Oct 18 08:53:44 2013 -0400
BZ 1013597 - I have no idea why it did this, but eclipse message bundle editor deleted tons of lines in here that I never touched. this reverts the file back to the original but changes the two lines I want changed (values for view_aboutBox_version and view_aboutBox_buildNumber)
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
index 3519b70..0b75a34 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
@@ -59,10 +59,12 @@ common_button_create_child = åãäœæ
common_button_delete = åé€
common_button_delete_all = ãã¹ãŠãåé€
common_button_disable = ç¡å¹
+common_button_dump_sysInfo_to_log = ãã³ãã·ã¹ãã æ
å ±
common_button_edit = ç·šé
common_button_enable = æå¹
common_button_execute = å®è¡
common_button_finish = å®äº
+common_button_fixedWidth = åºå®å¹
common_button_ignore = ç¡èŠ
common_button_import = ã€ã³ããŒã
common_button_new = æ°èŠ
@@ -111,6 +113,8 @@ common_label_day = æ¥
common_label_error = ãšã©ãŒ
common_label_filters = ãã£ã«ã¿ãŒ
common_label_hour = æé
+common_label_item = é
ç®
+common_label_items = é
ç®
common_label_link = ãªã³ã¯
common_label_month = æ
common_label_none = ãªã
@@ -131,12 +135,15 @@ common_msg_deleteConfirm = éžæããã {0} ãåé€ããŠãããããã§
common_msg_deleted = {0} {1} ãåé€ãããŸããã
common_msg_emphasizedNotePrefix = 泚æ:
common_msg_loading = ããŒãäž...
+common_msg_noItemsToShow = 衚瀺ããé
ç®ã¯ãããŸãã
+common_msg_notYetImplemented = å®è£
ãããŠããŸãã
common_msg_see_more = 詳现...
common_msg_step_x_of_y = ã¹ããã {1} äž {0} çªã
##common_msg_typeToFilterResults = å®è£
ãããŠããŸãã
common_severity_debug = ãããã°
common_severity_error = ãšã©ãŒ
common_severity_fatal = èŽåœç
+common_severity_info = æ
å ±
common_severity_warn = èŠå
##common_status_attention = æå
##common_status_avail_disabled = DISABLED
@@ -164,6 +171,7 @@ common_title_add_portlet = ããŒãã¬ããè¿œå
common_title_address = ã¢ãã¬ã¹
common_title_alerts = ã¢ã©ãŒã
common_title_alerts_range = ã¢ã©ãŒãã®ç¯å²
+common_title_ancestry = å
ç¥
common_title_availability = ã¢ãã€ã©ããªãã£
common_title_available_resources = å©çšå¯èœãªãœãŒã¹
common_title_average_metrics = æ¯åã®å¹³åã¡ããªãã¯ã¹
@@ -178,6 +186,7 @@ common_title_compare_metrics = ã¡ããªãã¯ã¹ã®æ¯èŒ
common_title_compatibleGroups = äºæã°ã«ãŒã
common_title_compatibleGroups_total = äºæã°ã«ãŒãã®åèš
common_title_component_errors = ã³ã³ããŒãã³ããšã©ãŒ
+common_title_config_update_status = æŽæ°ç¶æ
common_title_configuration = æ§æ
common_title_count = æ°
common_title_createTime = äœææå»
@@ -200,6 +209,7 @@ common_title_end = çµäº
common_title_generalProp = äžè¬ããããã£
common_title_group = ã°ã«ãŒã
common_title_group_def_total = ã°ã«ãŒãå®çŸ©ã®åèš
+common_title_group_member_health = ã°ã«ãŒãã¡ã³ããŒã®ç¶æ
common_title_groups = ã°ã«ãŒã
##common_title_groupsFound = ã°ã«ãŒã
common_title_help = ãã«ã
@@ -228,6 +238,7 @@ common_title_new_dashboard = æ°èŠããã·ã¥ããŒã
common_title_numeric_metrics = æ°å€ã¡ããªãã¯ã¹
common_title_numeric_type = æ°å€å
common_title_operation = ãªãã¬ãŒã·ã§ã³
+common_title_operation_status = ãªãã¬ãŒã·ã§ã³ã®ç¶æ
common_title_operations = ãªãã¬ãŒã·ã§ã³
common_title_operations_range = ãªãã¬ãŒã·ã§ã³ã®ç¯å²
##common_title_over = Over
@@ -353,6 +364,7 @@ dataSource_configurationHistory_updateType = æŽæ°ã¿ã€ã
dataSource_configurationHistory_updateType_group = ã°ã«ãŒã
dataSource_configurationHistory_updateType_individual = å人
dataSource_definitions_loadFailed = ã¡ããªãã¯å®çŸ©ã®ããŒãã«å€±æããŸãã
+dataSource_measurementOob_error_fetchFailure = ç¯å²å€æ
å ±ã®æž¬å®ã®ããŒãã«å€±æããŸãã
dataSource_measurementOob_field_factor = ç¯å²å€ä¿æ° (%)
dataSource_measurementOob_field_formattedBaseband = ãã³ã
dataSource_measurementOob_field_formattedOutlier = ã¢ãŠãã©ã€ããŒ
@@ -363,6 +375,7 @@ dataSource_operationHistory_error_fetchFailure = ãªãã¬ãŒã·ã§ã³å±¥æŽã®
dataSource_operationHistory_field_createdTime = äœææå»
dataSource_operationHistory_field_operationName = ãªãã¬ãŒã·ã§ã³å
dataSource_operationHistory_field_startedTime = éå§æå»
+dataSource_operationHistory_field_subject = èŠæ±è
dataSource_operationSchedule_field_description = ããŒã
dataSource_operationSchedule_field_id = ã¹ã±ãžã¥ãŒã«ID
dataSource_operationSchedule_field_nextFireTime = 次åã®å®è¡
@@ -392,8 +405,10 @@ dataSource_resources_field_discoveryTime = çºèŠæå»
dataSource_resources_field_importTime = ã€ã³ããŒãæå»
dataSource_resources_field_key = ããŒ
dataSource_resources_field_lastModifiedTime = æçµæŽæ°æå»
+dataSource_resources_field_lastModifier = æçµæŽæ°è
dataSource_resources_field_location = å Žæ
dataSource_rpc_error_transformRequestFailure = {0} ãªã¯ãšã¹ãã®åŠçäžã«ããŒã¿ãœãŒã¹ã§å€±æããŸãã
+dataSource_rpc_error_unsupportedArrayFilterType = ã¿ã€ã {0} ã®é
åãã£ã«ã¿ã®åŒãæž¡ãã¯ãµããŒãããŠããŸãã
dataSource_rpc_error_unsupportedEnumType = RPCDataSource.getEnumArray(Class)ãž enum {0} ã®ããã®é©åãªã³ãŒããããã¯ãè¿œå ããŠãã ãã
dataSource_rpc_no = ããã
dataSource_rpc_yes = ã¯ã
@@ -451,13 +466,18 @@ datasource_templateSchedules_enabled_failed = ID [{2}] ãæã€ãªãœãŒã¹ã¿
datasource_templateSchedules_updated = éžæãããã¡ããªã㯠[{0}] ã®åéééãæŽæ°ããŸãã
datasource_templateSchedules_updated_detail = ID [{2}] ãæã€ãªãœãŒã¹ã¿ã€ãã®ããã«ããã©ã«ãã§ã¡ããªã㯠[{0}] [{1}] ã®åéééã [{3}] ç§ã«èšå®ãããŸãã
datasource_templateSchedules_updated_failed = ID [{2}] ãæã€ãªãœãŒã¹ã¿ã€ãã®ããã«ããã©ã«ãã§ã¡ããªã㯠[{0}] [{1}] ã®åéééã [{3}] ç§ã«èšå®ããã®ã«å€±æããŸãã
+favorites = ãæ°ã«å
¥ã
+favorites_groups = ãæ°ã«å
¥ãã°ã«ãŒã
favorites_recentlyViewed = æè¿é²èŠ§ãã
+favorites_resources = ãæ°ã«å
¥ããªãœãŒã¹
filter_from_date = éå§
filter_to_date = çµäº
##group_tree_groupOfResourceType = Group of [{0}]
group_tree_partialClusterTooltip = {1} ã®äžã® {0} ã°ã«ãŒãã¡ã³ããŒã ''{2}'' ãªãœãŒã¹ãæã£ãŠããŸã
+util_ancestry_parentAncestry = 芪ã®å
ç¥ :
util_disambiguationReportDecorator_pluginSuffix = ({0} ãã©ã°ã€ã³)
util_errorHandler_nullException = äŸå€ã¯ null ã§ãã
+util_monitoringRequestCallback_error_checkServerStatusFailure = ãã°ã€ã³ã®ç¶æ
ã決å®ã§ããŸãã - ãµãŒããŒã®ç¶æ
ã調ã¹ãŠãã ãã
util_rpcManager_activeRequests = {0} ã¢ã¯ãã£ããªã¯ãšã¹ã
##util_userPerm_loadFailBundle = Failed to load your permissions for Bundle with id [{0}] - none granted.
util_userPerm_loadFailGlobal = ã°ããŒãã«ãªæš©éãããŒãããã®ã«å€±æããŸãã - äœãèš±å¯ãããŸãã
@@ -468,6 +488,7 @@ util_userSession_logoutFail = ãã°ã¢ãŠãã«å€±æããŸãã
util_widgetsField_unlimited = ç¡å¶é
view_aboutBox_allRightsReserved = All Rights Reserved.
view_aboutBox_buildNumber = ãã«ãçªå·
+view_aboutBox_failedToLoad = ãããã¯ãæ
å ±ã®ããŒãã«å€±æããŸãã
view_aboutBox_homepage = ããŒã ããŒãž
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = {0}ã«ã€ããŠ
@@ -720,19 +741,27 @@ view_admin_downloads_agentDownload = ãšãŒãžã§ã³ãã®ããŠã³ããŒã
view_admin_downloads_agent_buildNumber = ãšãŒãžã§ã³ããã«ã
view_admin_downloads_agent_help = <p> ãã㯠{0} Agentã®æŽæ°ãã€ããªJARãã¡ã€ã«ã§ãããã®JARãã¡ã€ã«ã®ç®çã¯ãŠãŒã¶ãŒããšãŒãžã§ã³ãããŸã ååšããªããã·ã³äžã«æ°ãããšãŒãžã§ã³ããã€ã³ã¹ããŒã«ã§ããããã«ããããšãšããã§ã«ã€ã³ã¹ããŒã«æžã¿ã®ãšãŒãžã§ã³ããæŽæ°ã§ããããã«ããããã§ãã詳现ã¯ããã®ãšãŒãžã§ã³ãããŠã³ããŒãJARã§æ¬¡ã®ããã«--helpã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãã€ããŠå®è¡ããŠãã ããã<br/> <b>java -jar <agent-download.jar> --help</b> </p> <h3>ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«</h3> <p> <b>java -jar <agent-download.jar> --install[=<æ°ãããšãŒãžã§ã³ããã£ã¬ã¯ããª>]</b><br/> ãã®ã³ãã³ãã¯æ°ãããšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããŸããããæ°ãããã£ã¬ã¯ããªãæå®ããªããã°ãããã©ã«ãã¯"."ãšãªããŸãã</p> <h3>ãšãŒãžã§ã³ãã®
æŽæ°</h3> <p> <b>java -jar <agent-download.jar> --update[=<å€ããšãŒãžã§ã³ããã£ã¬ã¯ããª>]</b><br/> ããã¯ãã§ã«ã€ã³ã¹ããŒã«ãããæ¢åã®ãšãŒãžã§ã³ããæŽæ°ããŸããããå€ããæ¢åã®ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããããã£ã¬ã¯ããªãæå®ããªãã£ããªãã"rhq-agent"ãä»®å®ãããŸãã</p>
view_admin_downloads_agent_link_value = ãšãŒãžã§ã³ã {0} ({1}) ã®ããŠã³ããŒã
+view_admin_downloads_agent_loadError = ãšãŒãžã§ã³ãããŒãžã§ã³æ
å ±ãååŸã§ããŸãã
view_admin_downloads_agent_md5 = ãšãŒãžã§ã³ã MD5
view_admin_downloads_agent_version = ãšãŒãžã§ã³ãããŒãžã§ã³
view_admin_downloads_bundleDownload = ãã³ãã«ãããã€ã€ã®ããŠã³ããŒã
+view_admin_downloads_bundle_help = <p> ããã¯ãã³ãã«ãããã€ã€ããŒã«ã§ã{0}ãã³ãã«ã®éçºè
ãšããã±ãŒãžéçºè
ã«ãã£ãŠäœ¿ãããŸãããã®ã¹ã¿ã³ãã¢ãã³ããŒã«ã䜿ããšãã³ãã«ãã³ã³ãœãŒã«ããã®ã¬ã·ãããã¹ãã§ããããã«ããŸãã</p>
view_admin_downloads_bundle_link_value = ãã³ãã«ãããã€ã€ãŒ {0} ãããŠã³ããŒã
+view_admin_downloads_bundle_loadError = ãã³ãã«ãããã€ã€ãŒæ
å ±ãååŸã§ããŸãã
view_admin_downloads_cliAlertScriptsDownload = CLIã¢ã©ãŒãã¹ã¯ãªããã®ããŠã³ããŒã
+view_admin_downloads_cliAlertScripts_help = CLIã¢ã©ãŒãã¹ã¯ãªããã¯ã¹ã¯ãªããåãããã¢ã©ãŒãéç¥ãäœæããããã«äœ¿ãããšãã§ããäœææžã¿ã®ã¹ã¯ãªããã§ããéåžžããã®ã¹ã¯ãªããã¯ç¹å®ã®ã¢ã©ãŒãå®çŸ©ã«ã€ããŠã®éç¥ãšããŠäœ¿ãããã«ã¯åãã£ãŠåŸ®èª¿æŽãããå¿
èŠããããŸãã
view_admin_downloads_cliAlertScripts_loadError = ããŠã³ããŒãããããã«å©çšå¯èœãªCLIã¢ã©ãŒãã¹ã¯ãªããã«ã¢ã¯ã»ã¹ããããšãã§ããŸãã
view_admin_downloads_cliAlertScripts_none = ããŠã³ããŒãããããã«å©çšå¯èœãªCLIã¹ã¯ãªãããäžã€ãååšããŸãã
view_admin_downloads_cliDownload = ã³ãã³ãã©ã€ã³ã¯ã©ã€ã¢ã³ãã®ããŠã³ããŒã
view_admin_downloads_cli_buildNumber = CLIãã«ã
+view_admin_downloads_cli_help = <p> ããã¯ã³ãã³ãã©ã€ã³ããŒã«ã§ãCLIãšããŠç¥ãããŠãããã®ã§ããã³ã³ãœãŒã«ããå®è¡ããã¹ã¿ã³ãã¢ãã³ããŒã«ã§ã{0}ãµãŒããŒã«å¯ŸããŠã³ãã³ãã©ã€ã³ã€ã³ã¿ãã§ãŒã¹ãæäŸããŸããèªååãããã¿ã¹ã¯ãå®è¡ããããã«CLIãrunã¹ã¯ãªãããä»ããŠã³ãã³ããåŒã³åºãããšãå¯èœã§ããCLIã®ã€ã³ã¹ããŒã«æ¹æ³ãšäœ¿ãæ¹ã«ã€ããŠã®è©³çŽ°æ
å ±ã¯ããã¥ã¡ã³ããã芧ãã ããã</p>
view_admin_downloads_cli_link_value = CLI {0} ({1}) ãããŠã³ããŒã
+view_admin_downloads_cli_loadError = CLIããŒãžã§ã³æ
å ±ãååŸã§ããŸãã
view_admin_downloads_cli_md5 = CLI MD5
view_admin_downloads_cli_version = CLIããŒãžã§ã³
view_admin_downloads_connectorsDownload = ã³ãã¯ã¿ã®ããŠã³ããŒã
+view_admin_downloads_connectors_help = ã³ãã¯ã¿ãŒã¯è£œåã{0}ã«ãã£ãŠç®¡çå¯èœã§ããããã«å¿
èŠãšãªããœãããŠã§ã¢ã§ããRHQãšãŒãžã§ã³ããéä¿¡ã§ããããã«ã管ç補åã«ã³ãã¯ã¿ãŒãã€ã³ã¹ããŒã«ããŸãã詳现ã¯ããã¥ã¡ã³ããã芧ãã ããã
+view_admin_downloads_connectors_loadError = ã³ãã¯ã¿ãŒæ
å ±ãååŸã§ããŸãã
view_admin_downloads_connectors_none = ããŠã³ããŒãã®ããã®ã³ãã¯ã¿ãŒãèŠã€ãããŸãã
##view_admin_downloads_scriptModulesDownload = Script Modules Download
##view_admin_downloads_scriptModules_help = <p> Script modules are reusable components provided by RHQ to be used in your scripts (either alert scripts or CLI scripts). You can access them by using the "rhq://downloads/<module-name-without-file-extension>" URI in your scripting language of choice (i.e. in javascript, you would use the "require" function).</p>
@@ -758,6 +787,7 @@ view_admin_plugins_enabledServerPluginsFailure = ãµãŒããŒãã©ã°ã€ã³ã®
view_admin_plugins_hideDeleted = åé€æžã¿ãé ã
view_admin_plugins_hideUndeployed = ã¢ã³ãããã€ãé ã
view_admin_plugins_loadFailure = ãã©ã°ã€ã³ããŒã¿ãããŒãããã®ã«å€±æããŸãã
+view_admin_plugins_purgedAgentPlugins = ãšãŒãžã§ã³ããã©ã°ã€ã³ {0} ãããŒãžããããã®æºåãããŠããŸããããã¯æ°åããããããããŸããããªããªãããã®ãã©ã°ã€ã³ããã®ãã¹ãŠã®ã¿ã€ãå®çŸ©ã¯æåã«ã·ã¹ãã ããããŒãžãããªããã°ãªããªãããã§ãããããã®ãã©ã°ã€ã³ã¯ããŒãžããããŸã§ã®éãã®ããŒãžã§èŠãç¶ããŸããããŒãžãå®è¡äžã¯ãã®ãã©ã°ã€ã³ãåã€ã³ã¹ããŒã«ããŠã¯ãããªãããšã«çæããŠãã ããããããªããã°ã倱æããããšã§ãããããããã£ãŠããã®ããŒãžãå®äºãããŸã§ã·ã¹ãã ãžãã©ã°ã€ã³ã®åã€ã³ã¹ããŒã«ããåŸ
ã¡ãã ããã
view_admin_plugins_purgedAgentPluginsFailure = ãšãŒãžã§ã³ããã©ã°ã€ã³ã®ããŒãžã«å€±æããŸãã
view_admin_plugins_purgedServerPlugins = ããŒãžããããµãŒããŒãã©ã°ã€ã³: {0}.
view_admin_plugins_purgedServerPluginsFailure = ãµãŒããŒãã©ã°ã€ã³ã®ããŒãžã«å€±æããŸãã
@@ -770,9 +800,11 @@ view_admin_plugins_scanComplete = æŽæ°ããããã©ã°ã€ã³ã®ããã®ã¹
view_admin_plugins_scanFailure = æŽæ°ããããã©ã°ã€ã³ã®ããã®ã¹ãã£ã³ã倱æããŸãã
view_admin_plugins_server = ãµãŒããŒ
view_admin_plugins_serverConfig = ãã©ã°ã€ã³æ§æ
+view_admin_plugins_serverConfig_badSettings = æ£ããèšå®ãå
¥åããŠãã ãã
view_admin_plugins_serverConfig_saveFailed = èšå®ã®ä¿åã«å€±æããŸãã
view_admin_plugins_serverConfig_settingsSaved = èšå®ãä¿åãããŸãã
view_admin_plugins_serverControls = ã³ã³ãããŒã«
+view_admin_plugins_serverControls_badParams = æ£ãããã©ã¡ãŒã¿ãŒãå
¥åããŠãã ãã
view_admin_plugins_serverControls_clickForError = ãšã©ãŒã¡ãã»ãŒãžãã¯ãªãã¯ããŠãã ãã
view_admin_plugins_serverControls_invokeFailure = ã³ã³ãããŒã«ã®åŒã³åºãã«å€±æããŸãã
view_admin_plugins_serverControls_name = ã³ã³ãããŒã«
@@ -810,6 +842,7 @@ view_admin_systemSettings_DriftFilePurge_desc = ããã¯ãšã³ãããããŒ
view_admin_systemSettings_DriftFilePurge_name = æªäœ¿çšããªãããã¡ã€ã«ã®åé€
view_admin_systemSettings_EnableAgentAutoUpdate_desc = ãµãŒããŒããšãŒãžã§ã³ããèªåæŽæ°ããããšãèš±ããã©ããã決å®ããŸãããããããç¡å¹ã«ãããŠããã®ã§ããã°ããµãŒããŒãããšãŒãžã§ã³ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãããããšã¯ã§ããŸããã
view_admin_systemSettings_EnableAgentAutoUpdate_name = ãšãŒãžã§ã³ãã®èªåæŽæ°ãæå¹ã«ãã
+view_admin_systemSettings_EnableDebugMode_desc = æå¹ã§ããã°ããµãŒããŒã¯ãããã°ã¢ãŒãã«å
¥ããŸã
view_admin_systemSettings_EnableDebugMode_name = ãããã°ã¢ãŒããæå¹ã«ãã
view_admin_systemSettings_EnableExperimentalFeatures_desc = æå¹ã§ããã°ãçŸåšã®è£œåã«å«ãŸããä»»æã®å®éšçæ©èœãå©çšå¯èœã«ãªããŸã
view_admin_systemSettings_EnableExperimentalFeatures_name = å®éšçæ©èœãæå¹ã«ãã
@@ -819,6 +852,7 @@ view_admin_systemSettings_JAASProvider_desc = ãŠãŒã¶ãŒIDã決å®ããã®
view_admin_systemSettings_JAASProvider_name = LDAPã®æå¹å
view_admin_systemSettings_LDAPBaseDN_desc = ãŠãŒã¶èªèšŒã®éã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããæ€çŽ¢ãããã£ã¬ã¯ããªããªãŒã®ããŒã¹ãäŸ: ou=People,dc=redhat,dc=com
view_admin_systemSettings_LDAPBaseDN_name = ãµãŒãããŒã¹
+view_admin_systemSettings_LDAPBindDN_desc = LDAPãŠãŒã¶ãŒããŒã¿ããŒã¹ã®åãåããæã«LDAPãµãŒããŒã«æ¥ç¶ããããã®ãŠãŒã¶ãŒåãããã¯æ®éã¯ãããŒãžã£ãŒãŠãŒã¶ãŒã®å®å
šãªLDAPèå¥å (DN) ã«ãªããäŸ: cn=Manager,dc=redhat,dc=com
view_admin_systemSettings_LDAPBindDN_name = ãŠãŒã¶ãŒå
view_admin_systemSettings_LDAPBindPW_desc = LDAPãŠãŒã¶ãŒããŒã¿ããŒã¹ã®åãåããæã«LDAPãµãŒããŒã«æ¥ç¶ããããã®ãŠãŒã¶ãŒã®ã¯ã¬ãã³ã·ã£ã«
view_admin_systemSettings_LDAPBindPW_name = ãã¹ã¯ãŒã
@@ -848,6 +882,7 @@ view_admin_systemSettings_fixBeforeSaving = ä¿ååã«ç¡å¹ãªå€ãä¿®æ£ã
view_admin_systemSettings_group_baseline = èªåããŒã¹ã©ã€ã³æ§æããããã£
view_admin_systemSettings_group_dataMgr = ããŒã¿ãããŒãžã£ãŒæ§æããããã£
view_admin_systemSettings_group_drift = ããªãããµãŒããŒæ§æèšå®
+view_admin_systemSettings_group_general = å
šäœæ§æããããã£
view_admin_systemSettings_group_ldap = LDAPæ§æããããã£
view_admin_systemSettings_saveFailure = ã·ã¹ãã èšå®ã®ä¿åã«å€±æããŸãã
view_admin_systemSettings_savedSettings = ã·ã¹ãã ããããã£ã®ä¿åã«æåããŸãã
@@ -866,6 +901,7 @@ view_admin_systemSettings_serverDetails_tz = ãµãŒããŒã¿ã€ã ãŸãŒã³
view_admin_topology = ããããžãŒ
view_alert_common_tab_conditions = æ¡ä»¶
view_alert_common_tab_conditions_expression = ã¢ã©ãŒãçºç«
+view_alert_common_tab_conditions_expression_tooltip = å
šäœã®æ¡ä»¶ãtrueã§ãããšèªããããããã«ãæ¡ä»¶ã®äžéšãŸãã¯ãã¹ãŠãtrueãšè©äŸ¡ãããªããã°ãªããªããã©ãã決å®ããŸã
##view_alert_common_tab_conditions_modalEdit_title = Edit Condition
view_alert_common_tab_conditions_modal_title = æ¡ä»¶è¿œå
view_alert_common_tab_conditions_recovery_disabled = ãã®ã¢ã©ãŒãã¯ãã®ã¢ã©ãŒãå®çŸ©ãç¡å¹åãããåå ãšãªããŸãã
@@ -887,6 +923,7 @@ view_alert_common_tab_conditions_type_metric_calltime_change_verb = å°ãªããš
view_alert_common_tab_conditions_type_metric_calltime_delta_grows = äžæ
view_alert_common_tab_conditions_type_metric_calltime_delta_other = å€å
view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks = çž®å°
+view_alert_common_tab_conditions_type_metric_calltime_destination = åŒã³åºãã®å®å
ãäžèŽ
view_alert_common_tab_conditions_type_metric_calltime_threshold = åŒã³åºãæéã®éŸå€
view_alert_common_tab_conditions_type_metric_change = ã¡ããªãã¯å€ã®å€æ
view_alert_common_tab_conditions_type_metric_range_inside_exclusive = ã¡ããªãã¯å€ã®ç¯å² [{0}] : [{1}] ãš [{2}] ã®é (å¢çå€ãå«ãŸãªã)
@@ -903,6 +940,7 @@ view_alert_common_tab_dampening = æžè¡°
view_alert_common_tab_dampening_category_consecutive_count = é£ç¶
view_alert_common_tab_dampening_category_consecutive_count_tooltip = æ¡ä»¶èšå®ãXåé£ç¶ããŠtrueã§ããã°ã¢ã©ãŒããåŒãèµ·ããããŸãã
view_alert_common_tab_dampening_category_duration_count = æééé
+view_alert_common_tab_dampening_category_duration_count_tooltip = ã¢ã©ãŒãã¯äžããããæéå
ã§æ¡ä»¶èšå®ãtrueã§ããããšãXåçºçãããã³ã«åŒãèµ·ããããŸã
view_alert_common_tab_dampening_category_none = ãªã
view_alert_common_tab_dampening_category_none_tooltip = æžè¡°ã¯ç¡å¹åãããŠããŸãããã®æ¡ä»¶ãtrueã«ãªããã³ã«ãã¢ã©ãŒããåŒãèµ·ããããŸãã
view_alert_common_tab_dampening_category_partial_count = çŽè¿ã®Nåã®è©äŸ¡
@@ -910,6 +948,7 @@ view_alert_common_tab_dampening_category_partial_count_tooltip = ã¢ã©ãŒãã¯
view_alert_common_tab_dampening_consecutive_occurrences_label = çºç
view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip = ã¢ã©ãŒããåŒãèµ·ããããåã«æ¡ä»¶èšå®ãé£ç¶ããŠtrueã§ãªãããã°ãªããªãåæ°
view_alert_common_tab_dampening_duration_occurrences_label = çºç
+view_alert_common_tab_dampening_duration_occurrences_label_tooltip = ã¢ã©ãŒããåŒãèµ·ããããåã«äžããããæéå
ã§æ¡ä»¶èšå®ãé£ç¶ããŠtrueã§ãªãããã°ãªããªãåæ°
view_alert_common_tab_dampening_duration_period_label = æééé
view_alert_common_tab_dampening_duration_period_label_tooltip = äžããããçºçåæ°ãtrueã§ãããã©ããã調ã¹ãããã«æ¡ä»¶èšå®ããã¹ããããã¿ã€ã ã¹ãã³
view_alert_common_tab_dampening_partial_evalatuions_label = è©äŸ¡
@@ -927,6 +966,9 @@ view_alert_common_tab_notifications_status = ã¹ããŒã¿ã¹
view_alert_common_tab_recovery = ãªã«ããª
view_alert_definition_condition_editor_availabilityDuration = ã¢ãã€ã©ããªãã£éé
##view_alert_definition_condition_editor_availabilityDuration_state = Availability State
+view_alert_definition_condition_editor_availabilityDuration_tooltip = ã¢ãã€ã©ããªãã£ã®æ¡ä»¶ãããªã¬ãŒããããã«ä¿åãããŠããªããã°ãªããªãã¢ãã€ã©ããªãã£ç¶æ
ã®å€åãšééãæå®ããŸãããã®ééã¯ååäœã§æå®ãããŸãããšãŒãžã§ã³ããã¢ãã€ã©ããªãã£ç¶æ
ã®å€æŽãæ€åºããŠåé¡ãä¿®æ£ã§ããããã«ããããã«ã¯ããšãŒãžã§ã³ãã«æå®ããæéãšããŠã¯ãæ°åãšããé·ãã§ååã§ãã
+view_alert_definition_condition_editor_availabilityDuration_tooltip_duration = ã¢ãã€ã©ããªãã£ã®æ¡ä»¶ãæºããããã«ãªãœãŒã¹ãæå®ãããã¢ãã€ã©ããªãã£ã«ãªãå¿
èŠãããæéã®é·ãïŒå)ã§ãã
+view_alert_definition_condition_editor_availability_tooltip = æ¡ä»¶ã®ããªã¬ãŒãšãªãã¢ãã€ã©ããªãã£ç¶æ
ã®å€åãæå®ããŸã
view_alert_definition_condition_editor_common_avg = å¹³å
##view_alert_definition_condition_editor_common_baseUnits = Base Units
##view_alert_definition_condition_editor_common_baseUnits_availableUnits = Available units:
@@ -942,11 +984,14 @@ view_alert_definition_condition_editor_drift_pathname_regex_tooltip = ããæ
view_alert_definition_condition_editor_drift_tooltip = ãã®æ¡ä»¶ã¯ããªãããæ€åºããããšããããªã¬ãŒã«ãªããŸãã
view_alert_definition_condition_editor_event_regexTooltip = ããæå®ããããªããããã¯æ£èŠè¡šçŸã§ããããã®æ¡ä»¶ãåŒãèµ·ããããã«åéãããã€ãã³ãã¡ãã»ãŒãžã«äžèŽããªããã°ãªããŸããã
view_alert_definition_condition_editor_event_severity = ã€ãã³ãé倧床
+view_alert_definition_condition_editor_event_tooltip = ãã®æ¡ä»¶ãåŒãèµ·ããããã«ã€ãã³ãã¡ãã»ãŒãžãå ±åãããå¿
èŠãããã€ãã³ãé倧床ãæå®ããŸãããããªãã·ã§ã³ãšãªãæ£èŠè¡šçŸãæå®ãããªããã€ãã³ãã¡ãã»ãŒãžã¯ãã®æ¡ä»¶ãåŒãèµ·ããããããã«ã€ãã³ãã¡ãã»ãŒãžãæ£èŠè¡šçŸã«äžèŽããªããã°ãªããŸããã
view_alert_definition_condition_editor_metric_baseline_percentage = ããŒã¹ã©ã€ã³ããŒã»ã³ããŒãž
view_alert_definition_condition_editor_metric_baseline_percentage_tooltip = éžæãããæ¯èŒæŒç®åã䜿çšããŠéžæãããããŒã¹ã©ã€ã³å€ã®ããŒã»ã³ããŒãžãæ¯èŒãããšãã«åéãããã¡ããªãã¯å€ã¯ãã®æ¡ä»¶ãåŒãèµ·ãããŸãã
+view_alert_definition_condition_editor_metric_baseline_tooltip = æ¡ä»¶ãåŒãèµ·ããããã«éåãããããšãå¿
èŠãšãªãããŒã¹ã©ã€ã³å€ãæå®ããŸããæå®ããå€ã¯ãäžããããããŒã¹ã©ã€ã³å€ã®ããŒã»ã³ããŒãžã«ãªããŸãã
view_alert_definition_condition_editor_metric_baseline_value = ããŒã¹ã©ã€ã³
view_alert_definition_condition_editor_metric_calltime_change_percentage = ããŒã»ã³ããŒãžã®å€å
view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip = å°ãªããšãéžæãããåŒã³åºãæéãªãããå€ã®ããŒã»ã³ããŒãžãšç°ãªããšããåéãããåŒã³åºãæéã¯ãã®æ¡ä»¶ãåŒãèµ·ãããŸã
+view_alert_definition_condition_editor_metric_calltime_change_tooltip = æ¡ä»¶ãåŒãèµ·ãããå°ãªããšãæå®ãããéã®å€åãèµ·ãã£ããšãã®ãåŒã³åºãå€ãæå®ããŸãã(æå°ãæ倧ãå¹³åã®åŒã³åºãæéã®å€)ããã§ãã¯ããããã®åŒã³åºãæéã®ãªãããã®çš®å¥ãšçºçã«å¿
èŠãªå€åã®ããŒã»ã³ããŒãžãæå®ããªããã°ãªããŸããã
view_alert_definition_condition_editor_metric_calltime_common_comparator = ã³ã³ãã¬ãŒã¿
view_alert_definition_condition_editor_metric_calltime_common_comparator_changes = å€å
view_alert_definition_condition_editor_metric_calltime_common_comparator_grows = å¢å€§
@@ -955,14 +1000,19 @@ view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip
view_alert_definition_condition_editor_metric_calltime_common_limit = åŒã³åºãæéå¶é
view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip = äžããããå€ãšæ¯èŒãããã¹ãåŒã³åºãæéãªãããã®å€
view_alert_definition_condition_editor_metric_calltime_common_name = åŒã³åºãæéã¡ããªãã¯
+view_alert_definition_condition_editor_metric_calltime_regexTooltip = ããæå®ããããªããããã¯æ£èŠè¡šçŸã§ãããæ¡ä»¶ãåŒãèµ·ããããã«åŒã³åºãã®å®å
ãšäžèŽããå¿
èŠããããŸã
view_alert_definition_condition_editor_metric_calltime_threshold_tooltip = éåãããšãã«æ¡ä»¶ãåŒãèµ·ããåŒã³åºãæéã®éŸå€ãæå®ããŸããæå®ããå€ã¯ãªãã·ã§ã³ã®åäœã䌎ã絶察å€ã«ãªããŸãã(æå°ãæ倧ãå¹³åã®åŒã³åºãæéã®å€)ãšå€ãæ¯èŒããããåŒã³åºãæéã®ãªãããã®çš®å¥ãæå®ããªããã°ãªããŸããã
view_alert_definition_condition_editor_metric_calltime_threshold_value = åŒã³åºãæéã®å€
view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip = éžæãããæ¯èŒå(comparator)ã䜿ã£ãŠæ¯èŒãããšãæ¡ä»¶ãåŒãèµ·ããããã¡ããªãã¯ã®éŸå€
view_alert_definition_condition_editor_metric_change_tooltip = æ¡ä»¶ãåŒãèµ·ããããã«å€æŽããªããã°ãªããªãå€ãæã€ã¡ããªãã¯ãæå®ããŸã
view_alert_definition_condition_editor_metric_common_definition_not_found = ã¡ããªãã¯å®çŸ©ãèŠã€ããã¹ãã§ã - äœããããããã§ã
+view_alert_definition_condition_editor_metric_nometrics = ãã¹ãŠãé£çµããŠäœ¿ããšããè€æ°æ¡ä»¶å
ã«åãã¡ããªãã¯ã䜿ãããšã¯ã§ããŸããããã®èŠåã¯çŸåšã®æ¡ä»¶å
ã§ã®ãã¹ãŠã®å©çšå¯èœãªã¡ããªãã¯ã¹ã䜿ããŸãã
view_alert_definition_condition_editor_metric_range_comparator = æ¯èŒæŒç®å
+view_alert_definition_condition_editor_metric_range_comparator_inside_exclusive = å
éšã§ãå¢çå€ãå«ãŸãªã
+view_alert_definition_condition_editor_metric_range_comparator_inside_inclusive = å
éšã§ãå¢çå€ãå«ã
view_alert_definition_condition_editor_metric_range_comparator_outside_exclusive = å€éšã§ã å¢çå€ãå«ãŸãªã
view_alert_definition_condition_editor_metric_range_comparator_outside_inclusive = å€éšã§ã å¢çå€ãå«ã
+view_alert_definition_condition_editor_metric_range_comparator_tooltip = ã¡ããªãã¯å€ããç¯å²å
ãç¯å²å€ã®ãšãããã®æ¡ä»¶ã®ããªã¬ãŒã«ãªããã©ããã決å®ããŸãã
view_alert_definition_condition_editor_metric_range_hivalue = é«å€
view_alert_definition_condition_editor_metric_range_hivalue_tooltip = ç¯å²ã§ã®é«å€ã®éŸå€
view_alert_definition_condition_editor_metric_range_lovalue = äœå€
@@ -983,9 +1033,12 @@ view_alert_definition_condition_editor_metric_trait_change_value = ãã¬ã€ã
view_alert_definition_condition_editor_metricswarning = ãã¹ãŠã®é£çµã䜿ããšãã¯åãã¡ããªãã¯ã䜿ãè€æ°ã®æ¡ä»¶ãæå®ããããšã¯ã§ããŸããããã®èŠåå®çŸ©ã¯ãã®ã¡ããªã㯠[{0}] ã䜿ãè€æ°ã®æ¡ä»¶ãæã¡ãŸãã
view_alert_definition_condition_editor_operation_status = ãªãã¬ãŒã·ã§ã³ã¹ããŒã¿ã¹
view_alert_definition_condition_editor_operation_tooltip = æ¡ä»¶ãåŒãèµ·ããããã«éžæããããå®è¡ããããšãçºçããªããã°ãªããªãçµæãæå®ããŸã
+view_alert_definition_condition_editor_operator_availability_durationDown = åæ¢äžã®ç¶æ
+view_alert_definition_condition_editor_operator_availability_durationNotUp = èµ·åããªãç¶æ
view_alert_definition_condition_editor_operator_availability_goesDisabled = ç¡å¹åã«ãªã
view_alert_definition_condition_editor_operator_availability_goesDown = åæ¢ãã
view_alert_definition_condition_editor_operator_availability_goesNotUp = èµ·åããªã
+view_alert_definition_condition_editor_operator_availability_goesUnknown = äžæãªç¶æ
ã«ãªã
view_alert_definition_condition_editor_operator_availability_goesUp = èµ·åãã
view_alert_definition_condition_editor_option_availability = ã¢ãã€ã©ããªãã£ã®å€å
view_alert_definition_condition_editor_option_drift = ããªããã®æ€åº
@@ -1020,7 +1073,12 @@ view_alert_definition_notification_editor_delete_confirm = éžæãããã¢ã©
view_alert_definition_notification_editor_field_configuration = æ§æ
view_alert_definition_notification_editor_field_configuration_loadFailed = éç¥æ§æãã¬ãã¥ãŒã®ååŸã«å€±æããŸãã
view_alert_definition_notification_editor_field_configuration_not_loaded = æªç¥
+view_alert_definition_notification_editor_field_sender = éä¿¡è
+view_alert_definition_notification_editor_loadFailed = ã¢ã©ãŒãéä¿¡è
ãååŸã§ããŸãã
+view_alert_definition_notification_editor_loadFailed_single = ã¢ã©ãŒãéä¿¡è
æ§æå®çŸ©ãååŸã§ããŸãã
+view_alert_definition_notification_editor_none_available = ã¢ã©ãŒãéä¿¡è
ãå©çšã§ããŸãã
view_alert_definition_notification_editor_saveFailed = éç¥ã®æ§æãä¿åã§ããŸãã
+view_alert_definition_notification_editor_sender = éç¥éä¿¡è
view_alert_definition_notification_editor_title_add = éç¥ã®è¿œå
view_alert_definition_notification_editor_title_edit = éç¥ã®ç·šé
view_alert_definition_notification_operation_editor_common_operation = ãªãã¬ãŒã·ã§ã³
@@ -1032,7 +1090,11 @@ view_alert_definition_notification_operation_editor_mode_unknown = æªç¥ã®ãª
view_alert_definition_notification_operation_editor_operations_loadFailed = å©çšå¯èœãªãªãã¬ãŒã·ã§ã³ã®ãªã¹ããããŒãããã®ã«å€±æããŸãã
view_alert_definition_notification_operation_editor_operations_no_parameters = ãã®æäœã¯äžã€ããã©ã¡ãŒã¿ãŒãåããŸãã
view_alert_definition_notification_operation_editor_relative_ancestor = æ€çŽ¢ãéå§
+view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed = ã¿ã€ãã®ç¥å
ãååŸã§ããŸãã
+view_alert_definition_notification_operation_editor_relative_ancestor_root = ã«ãŒãã®ç¥å
ã¿ã€ã
+view_alert_definition_notification_operation_editor_relative_ancestor_tooltip = ã¿ã€ãéå±€ã®ããããéžæããŸããããã¯ã¿ã€ãã«ãããã£ã«ã¿ãŒã®ããã«åå«ã®ããªãŒãæ€çŽ¢ããå
ãšãªããŸã
view_alert_definition_notification_operation_editor_relative_descendant = 次ã«ãããã£ã«ã¿ãŒ
+view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip = éžæããã¿ã€ãã«å¯Ÿå¿ããè€æ°ã®ãªãœãŒã¹ãååšãããšããªãœãŒã¹ããŠããŒã¯ã«èå¥ããå
·äœçãªååãããã¯éžæããã¿ã€ãéå±€ã«ãããŠãã®ãªãœãŒã¹ã¿ã€ãã®å¯äžã®ãªãœãŒã¹ããååšããªãå Žåã¯ãªãã·ã§ã³ã§ãã
view_alert_definition_notification_operation_editor_relative_descendant_loadFailed = ã¿ã€ãã®åå«ãååŸã§ããŸãã
view_alert_definition_notification_operation_editor_relative_descendant_tooltip = æ€çŽ¢ã®éå§ã»ã¯ã·ã§ã³ã§å®çŸ©ãããã«ãŒãã¿ã€ãã®äžã§æ€çŽ¢ãããªãœãŒã¹ã¿ã€ã
view_alert_definition_notification_operation_editor_specific_pick_button = éžæ
@@ -1073,6 +1135,7 @@ view_alert_definitions_update_success = ã¢ã©ãŒãå®çŸ©ã®æŽæ°ã«æåã
view_alert_details_field_ack_at = 次ã®å Žæã§ç¢ºèªæžã¿ã§ã
view_alert_details_field_ack_by = 次ã®äººã«ãã£ãŠç¢ºèªæžã¿ã§ã
##view_alert_details_field_parent_definition = Parent definition
+view_alert_details_field_recovery_info = ãªã«ããªæ
å ±
##view_alert_details_field_resource_ancestry = Resource Ancestry
##view_alert_details_field_watched_resource = Watched Resource
view_alert_details_loadFailed = ã¢ã©ãŒãã®è©³çŽ°ãåãåºãã®ã«å€±æããŸãã
@@ -1102,9 +1165,11 @@ view_alerts_field_enabled = æå¹
view_alerts_field_modified_time = ä¿®æ£æå»
view_alerts_field_name = åå
view_alerts_field_parent = 芪
+view_alerts_field_priority = åªå
床
view_alerts_field_protected = ä¿è·ãããŠãã
view_alerts_field_protected_tooltip = ããtrueãªãããã®å®çŸ©ã¯èŠªå®çŸ©ã«ããå€æŽããä¿è·ãããŠããŸããä»ã®èšèã§èšãã°ããã®èŠªå®çŸ©èšå®ã¯ãã®å®çŸ©ãäžæžãããŸããã
view_alerts_loadFailed = ã¢ã©ãŒãããŒã¿ãåãåºãã®ã«ããŸãã
+view_alerts_table_filter_priority = åªå
床ãã£ã«ã¿ãŒ
view_alerts_table_title_group = ã°ã«ãŒãã¢ã©ãŒãå±¥æŽ
view_alerts_table_title_resource = ãªãœãŒã¹ã¢ã©ãŒãå±¥æŽ
view_autoDiscoveryQ_committed = ã³ãããæžã¿
@@ -1141,16 +1206,21 @@ view_autoDiscoveryQ_uninventoried = ã€ã³ãã³ããªç»é²ãããªã
view_bundleVersion_loadFailure = ãã³ãã«ããŒãžã§ã³ããŒã¿ãããŒãããã®ã«å€±æããŸãã
view_bundle_bundleDeployment = ãã³ãã«ãããã€ã¡ã³ã
view_bundle_bundleDeployments = ãã³ãã«ãããã€ã¡ã³ã
+view_bundle_bundleDestinations = ãã³ãã«å®å
view_bundle_bundleFiles = ãã³ãã«ãã¡ã€ã«
view_bundle_bundleType = ãã³ãã«ã¿ã€ã
view_bundle_bundleVersion = ãã³ãã«ããŒãžã§ã³
view_bundle_bundleVersions = ãã³ãã«ããŒãžã§ã³
+view_bundle_createWizard_bundleDistro = ãã³ãã«é
åž
+view_bundle_createWizard_cancelFailure = ãã³ãã« [{0}], ããŒãžã§ã³ = [{1}] ã®äœæã®å®å
šãªãã£ã³ã»ã«ã«å€±æããŸãã - ãã³ãã«ã¯ããŒã¿ããŒã¹ã«ãŸã æ®ã£ãŠãããããããŸãã
##view_bundle_createWizard_cancelFailurePerm = Failed to fully cancel the creation of bundle [{0}], version = [{1}] because the user has create but not delete permissions. The bundle will likley need to be removed by an administrator.
view_bundle_createWizard_cancelSuccessful = ãã³ãã« [{0}], ããŒãžã§ã³ = [{1}] ã®äœæããã£ã³ã»ã«ããŸãã
view_bundle_createWizard_clickToUploadRecipe = ã¬ã·ããã¡ã€ã«ã®ããŒãããããã«ã¯ãªãã¯ããŠãã ãã
view_bundle_createWizard_createFailure = ãã³ãã«ãäœæããã®ã«å€±æããŸãã
view_bundle_createWizard_createSuccessful = ããŒãžã§ã³ [{1}] ã® [{0}] ãšããååã®ãã³ãã«ã®äœæã«æåããŸãã
view_bundle_createWizard_enterRecipe = æ£ããã¬ã·ããæäŸããŠãã ãã
+view_bundle_createWizard_enterUrl = ãã³ãã«é
åžãã¡ã€ã«ãããŠã³ããŒãã§ããæ£ããURLãå
¥åããŠãã ãã
+view_bundle_createWizard_failedToUploadDistroFile = ãã³ãã«é
åžãã¡ã€ã«ã®ã¢ããããŒãã«å€±æããŸãã
view_bundle_createWizard_failedToUploadFile = ãã³ãã«ãã¡ã€ã«ã®ã¢ããããŒãã«å€±æããŸãã
##view_bundle_createWizard_groupsStep_assign = Assign at least one of the eligible bundle groups:
##view_bundle_createWizard_groupsStep_assigned = The new bundle version is for an existing bundle and inherits its bundle group assignments:
@@ -1163,8 +1233,11 @@ view_bundle_createWizard_failedToUploadFile = ãã³ãã«ãã¡ã€ã«ã®ã¢ã
##view_bundle_createWizard_groupsStep_radioTitle = Initial bundle group assignment for the new bundle
##view_bundle_createWizard_groupsStep_successAssign = You have successfully assigned initial bundle groups to a bundle named [{0}] with a version of [{1}]
##view_bundle_createWizard_groupsStep_unassigned = The new bundle version is for an existing bundle and inherits its bundle group assignments. The bundle is not currently assigned to any bundle groups.
+view_bundle_createWizard_loadBundleFileFailure = ãµãŒããŒãããã³ãã«ãã¡ã€ã«æ
å ±ã®ååŸãã§ããŸãã
+view_bundle_createWizard_noAdditionalFilesNeeded = ãã®ãã³ãã«ã®ããã«ã¢ããããŒããããå¿
èŠãããè¿œå ãã¡ã€ã«ã¯ãããŸãã
view_bundle_createWizard_noBundleTypesAvail = ãã³ãã«ã¿ã€ããå©çšã§ããŸãã
view_bundle_createWizard_noBundleTypesSupported = ãã³ãã«ã¿ã€ãã¯äžã€ããµããŒããããŠããŸãã - ãã³ãã«ãããã€ã¡ã³ãããµããŒãããæ£ãããã©ã°ã€ã³ããããã€ããªããã°ãªããŸãã
+view_bundle_createWizard_provideBundleDistro = ãã³ãã«é
åžã®æäŸ
view_bundle_createWizard_recipeOption = ã¬ã·ã
view_bundle_createWizard_title = ãã³ãã«äœæ
##view_bundle_createWizard_unassigned = unassigned
@@ -1177,28 +1250,47 @@ view_bundle_createWizard_urlOption = URL
##view_bundle_createWizard_urlUserName = User name
view_bundle_createWizard_windowTitle = ãã³ãã«äœæãŠã£ã¶ãŒã
view_bundle_createWizard_youMustChooseOne = ãã³ãã«ãäœæããããã®ãªãã·ã§ã³ãéžæããªããã°ãªããŸãã
+view_bundle_deleteConfirm = ãã®ãã³ãã«ãåé€ããŠãããããã§ãã? ãã®ãã³ãã«ã®ãã¹ãŠã®ããŒãžã§ã³ãå®å
ããããã€ãåé€ãããŸãã
view_bundle_deploy = ãããã€
view_bundle_deployDir = ãããã€ãã£ã¬ã¯ããª
##view_bundle_deployWizard_createGroup_error_1 = The group was not created. Group for deployment cannot be empty.
##view_bundle_deployWizard_createGroup_error_2 = The group was not created. Resulting group must be compatible (members of the same type).
##view_bundle_deployWizard_createGroup_error_3 = The group was not created. The resource type of the resulting group does not support deployments.
+view_bundle_deployWizard_deployStep = å®å
ãã©ãããã©ãŒã ãžã®ãã³ãã«ã®ãããã€
view_bundle_deployWizard_deploying = ãããã€äž...
view_bundle_deployWizard_deploymentCreated = äœæããããããã€ã¡ã³ã...
view_bundle_deployWizard_deploymentCreatedDetail = ãã£ã¹ã¯ãªãã·ã§ã³ [{1}] ã®ä»ãããããã€ã¡ã³ã [{0}] ãäœæããŸãã
view_bundle_deployWizard_deploymentCreatedDetail_concise = ãããã€ã¡ã³ã [{0}] ãäœæããŸãã
view_bundle_deployWizard_deploymentScheduled = ãã³ãã«ãããã€ãã¹ã±ãžã¥ãŒã«ãããŸãã!
+view_bundle_deployWizard_deploymentScheduledDetail = ãã³ãã«ãããã€ã¡ã³ã [{0}] ãå®å
ã°ã«ãŒã [{1}] ã«ã¹ã±ãžã¥ãŒã«ããŸãã
view_bundle_deployWizard_deploymentScheduledDetail_concise = ãã³ãã«ãããã€ã¡ã³ããã¹ã±ãžã¥ãŒã«ãããŸãã
view_bundle_deployWizard_destinationCreatedDetail = ãã£ã¹ã¯ãªãã·ã§ã³ [{1}] ã®ä»ãããããã€ã¡ã³ã [{0}] ãäœæããŸãã
+view_bundle_deployWizard_destinationCreatedDetail_concise = å®å
[{0}] ãäœæããŸãã
view_bundle_deployWizard_error_1 = ãã£ã³ã»ã«ã«ã€ããŠã®æ°ãããããã€ã¡ã³ãã®åé€ã«å€±æããŸãã
+view_bundle_deployWizard_error_10 = å®å
ã®äœæã«å€±æããŸãããããã¯ãã§ã«ååšãããããããŸããã (泚æïŒå®å
ãã¥ãŒããæ¢åã®å®å
ãããã€ã®ãã)
view_bundle_deployWizard_error_11 = å®çŸ©æžã¿ãããã€ã¡ã³ãã®æ€çŽ¢ã«å€±æããŸãã
view_bundle_deployWizard_error_12 = å®çŸ©æžã¿ãã³ãã«ã®æ€çŽ¢ã«å€±æããŸãã
+view_bundle_deployWizard_error_2 = ãã£ã³ã»ã«ã«ã€ããŠã®æ°ããå®å
ã®åé€ã«å€±æããŸãã
view_bundle_deployWizard_error_3 = ãããã€ã¡ã³ãã®ã¹ã±ãžã¥ãŒã«ã«å€±æããŸãã!
view_bundle_deployWizard_error_4 = ãããã€ã¡ã³ãã®ã¹ã±ãžã¥ãŒã«ã«å€±æããŸãã: {0}
view_bundle_deployWizard_error_5 = ãããã€ã¡ã³ãã®äœæã«å€±æããŸãã!
view_bundle_deployWizard_error_6 = ãããã€ã¡ã³ãã®äœæã«å€±æããŸãã: {0}
view_bundle_deployWizard_error_7 = ãããã€ã¡ã³ãåã®ååŸã«å€±æããŸãã
view_bundle_deployWizard_error_8 = ããããããŠã³ããæ£ãããªãœãŒã¹ã°ã«ãŒããéžæããªããã°ãªããŸãã
+view_bundle_deployWizard_error_9 = 次ããŒãžã§ã®æ°ããå®å
ã®åé€ã«å€±æããŸãã
+view_bundle_deployWizard_error_noBundleConfig = ãã³ãã«ã¿ãŒã²ããæ
å ±ã®ååŸã«å€±æããŸãããéžæããã°ã«ãŒãã¯ãã³ãã«ãããã€ã¡ã³ãã®ã¿ãŒã²ããã«æãåŸãæ£åœãªäºæã°ã«ãŒãã§ãã?
+view_bundle_deployWizard_getConfigSkip = ãã®ãã³ãã«ããŒãžã§ã³ã«ã¯æ§æã¯å¿
èŠãããŸãã
view_bundle_deployWizard_getConfigStep = ãããã€ã¡ã³ãæ§æã®èšå®
+view_bundle_deployWizard_getDestStep = æ°ããå®å
+view_bundle_deployWizard_getDest_deployDir = ã«ãŒããããã€ãã£ã¬ã¯ã㪠(å®å
ãã©ãããã©ãŒã äžã§ã®)
+view_bundle_deployWizard_getDest_deployDir_help = ãã®ãã³ãã«ããããã€ããããã£ã¬ã¯ããªããã®ãã£ã¬ã¯ããªã¯ãã¹ãŠã®ãªãœãŒã¹ã«é¢ãããã¹ãŠã®ãããã€çšãšããŠåããã®ã䜿ãããŸãããå®å
ã®åºæ¬ãã£ã¬ã¯ããªã®å Žæã«å¯Ÿããçžå¯Ÿãã£ã¬ã¯ããªã«ãªããŸãããã®ããšã¯ãç°ãªãã¿ãŒã²ãããªãœãŒã¹ã«ã€ããŠåºæ¬ãã£ã¬ã¯ããªã®é
眮ãã©ãã«ããããšããããšã«äŸåããŠããã®çµ¶å¯Ÿãã£ã¬ã¯ããªã¯ç°ãªãã¿ãŒã²ãããªãœãŒã¹ã«ãã£ãŠç°ãªããã¹ã«ãªãå¯èœæ§ãããããšãæå³ããŠããŸãã
+view_bundle_deployWizard_getDest_desc = å®å
ã®èª¬æ
+view_bundle_deployWizard_getDest_destBaseDirName = åºæ¬ã®é
眮
+view_bundle_deployWizard_getDest_group_help = ã¡ã³ããŒããã¹ãŠã®ãã³ãã«ãããã€ã®ããã®å®å
ã¿ãŒã²ãããšãªããããªã°ã«ãŒãããã³ãã«ãããã€ããµããŒããããªãœãŒã¹ãå«ãäºæã°ã«ãŒãã®ã¿ãéžæå¯èœã§ãã
+view_bundle_deployWizard_getDest_name = å®å
å
+view_bundle_deployWizard_getDest_name_help = å®å
åãããã¯ãªãœãŒã¹ã®ç¹å®ã®ã°ã«ãŒããšç¹å®ã®ãã³ãã«ã®ãªãœãŒã¹ã«é¢ããå®å
ãã£ã¬ã¯ããªãèå¥ããŸãã
+view_bundle_deployWizard_getInfoStep = ãããã€æ
å ±ã®æäŸ
+view_bundle_deployWizard_getInfo_clean = ã¯ãªãŒã³ãããã€ã§ãã? (å®å
ãã©ãããã©ãŒã äžã§ã®ãããã€ãã£ã¬ã¯ããªãæé€ãã)
view_bundle_deployWizard_getInfo_deploymentDesc = ãããã€ã®èª¬æ
view_bundle_deployWizard_getInfo_deploymentName = ãããã€å
view_bundle_deployWizard_getOptionsStep = ãããã€ãªãã·ã§ã³
@@ -1213,6 +1305,7 @@ view_bundle_deployWizard_selectVersion_live = åäœããŒãžã§ã³ [{0}]
view_bundle_deployWizard_selectVersion_select = ãªã¹ãããããŒãžã§ã³ãéžæããŠãã ãã:
view_bundle_deployWizard_title = ãã³ãã«ãããã€ã®ãŠã£ã¶ãŒã
view_bundle_deploy_action = ã¢ã¯ã·ã§ã³
+view_bundle_deploy_backButton = å®å
ã«æ»ã
view_bundle_deploy_clickForError = ãšã©ãŒã¡ãã»ãŒãžã®ã¢ã€ã³ã³ãã¯ãªãã¯ããŠãã ãã
view_bundle_deploy_deleteConfirm = ãã®ãã³ãã«ãããã€ãåé€ããŠãããããã§ãã?
view_bundle_deploy_deleteFailure = ãã³ãã«ããã〠[{0}] ã®åé€ã«å€±æããŸãã
@@ -1232,14 +1325,25 @@ view_bundle_deploy_time = ãããã€å
view_bundle_deployed = ãããã€
view_bundle_deployments = ãããã€
view_bundle_dest_backToBundle = ãã³ãã«ãžæ»ã
+view_bundle_dest_baseDirName = åºæ¬ã®é
眮
view_bundle_dest_created = äœæããã
+view_bundle_dest_deleteConfirm = ãã®ãã³ãã«å®å
ãåé€ããŠãããããã§ãã? ããã¯ããŒã¿ããŒã¹ããåé€ããã ãã§ããã€ãŸãããªã¢ãŒããã·ã³ã®ãã®å®å
ã«ãããã€ããããã¹ãŠã®ãã³ãã«ã®å
容ã¯æ®ãç¶ããŸã
+view_bundle_dest_deleteFailure = ãã³ãã«å®å
[{0}] ã®åé€ã«å€±æããŸãã
+view_bundle_dest_deleteSuccessful = ãã³ãã«å®å
[{0}] ã®åé€ã«æåããŸãã
view_bundle_dest_deployDir = ãããã€ãã£ã¬ã¯ããª
view_bundle_dest_group = ã°ã«ãŒã
view_bundle_dest_lastDeployedVersion = æåŸã«ãããã€ãããããŒãžã§ã³
view_bundle_dest_lastDeploymentDate = æåŸã®ãããã€ããããæ¥ä»
view_bundle_dest_lastDeploymentStatus = æåŸã«ãããã€ãããã¹ããŒã¿ã¹
+view_bundle_dest_loadFailure = ãã³ãã«ã®å®å
ãããŒãããã®ã«å€±æããŸãã
+view_bundle_dest_loadFailureVersionInfo = ãããã€ãããããŒãžã§ã³æ
å ±ã®ããŒãã«å€±æããŸãã
view_bundle_dest_purgeConfirm = ãã®æäœã¯ãã¹ãŠã®ãªã¢ãŒããã·ã³ãããã³ãã«ã³ã³ãã³ããé€å»ããŸããããããã§ãã?
+view_bundle_dest_purgeFailure = ãªã¢ãŒããã·ã³ã®äžéšãããã¯ãã¹ãŠããã®ãã³ãã«å®å
[{0}] ã®é€å»ã«å€±æããŸãã
+view_bundle_dest_purgeSuccessful = ãªã¢ãŒããã·ã³ã®äžéšãããã¯ãã¹ãŠããã®ãã³ãã«å®å
[{0}] ã®é€å»ã«æåããŸãã
view_bundle_dest_revertConfirm = ããã¯ãã¹ãŠã®ãªã¢ãŒããã·ã³ã以åã®ãã³ãã«ãããã€ã¡ã³ããžæ»ããŸãããããããŠãããããã§ãã?
+view_bundle_dest_tagUpdateFailure = ãã³ãã«å®å
ã¿ã°ã®æŽæ°ã«å€±æããŸãã
+view_bundle_dest_tagUpdateSuccessful = ãã³ãã«å®å
ã¿ã°ã®æŽæ°ã«æåããŸãã
+view_bundle_destinations = å®å
##view_bundle_fail_existingName = Failed to create [{0}]. The name is already being used. Please try another name.
view_bundle_fileListView_fileSize = ãã¡ã€ã«ãµã€ãº
view_bundle_fileListView_loadFailure = ãã³ãã«ãã¡ã€ã«ããŒã¿ãããŒãããã®ã«å€±æããŸãã
@@ -1253,6 +1357,7 @@ view_bundle_list_deleteFailure = ãã³ãã« [{0}] ã®åé€ã«å€±æããŸã
view_bundle_list_deleteSuccessful = ãã³ãã« [{0}] ã®åé€ã«æåããŸãã
view_bundle_list_deletesFailure = ãã³ãã«ã®åé€ã«å€±æããŸãã
view_bundle_list_deletesSuccessful = ãã³ãã«ã®åé€ã«æåããŸãã
+view_bundle_list_destinationsCount = å®å
æ°
view_bundle_list_error1 = [{0}] ããããã€ããããã®ãã³ãã«ã®ããŒãã«å€±æããŸãã
view_bundle_list_error2 = [{0}] ããããã€ããããã®åäžãã³ãã«ã®ååŸã«å€±æããŸãã
view_bundle_list_error3 = ãã³ãã«ã®ããŒãã«å€±æããŸãã
@@ -1271,14 +1376,18 @@ view_bundle_revertWizard_confirmStep_confirmation = åäœäžã®ãããã€ã
view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment = åäœäžã®ãããã€ãèŠã€ãããŸãããåãæ¶ããã§ããŸããã
view_bundle_revertWizard_confirmStep_liveDeployment = åäœäžã®ãããã€
view_bundle_revertWizard_confirmStep_name = åãæ¶ããããã€ç¢ºèª
+view_bundle_revertWizard_confirmStep_noLiveDeployment = ãã®å®å
[{0}] çšã®åäœäžã®ãããã€ã¯èŠã€ãããŸããã§ãã
+view_bundle_revertWizard_confirmStep_noLiveDeployment_concise = ãã®å®å
çšã®åäœäžã®ãããã€ã¯èŠã€ãããŸããã§ãã
view_bundle_revertWizard_confirmStep_noPriorDeployment = 以åã®ããã〠[{1}] ãååšããªãã®ã§åäœäžã®ããã〠[{0}] ã¯åãæ¶ãããšãã§ããŸããã§ãã
view_bundle_revertWizard_confirmStep_noPriorDeployment_concise = 以åã®ãããã€ãååšããªãã®ã§åäœäžã®ãããã€ã¯åãæ¶ãããšãã§ããŸããã§ãã
view_bundle_revertWizard_confirmStep_prevDeployment = 以åã®ãããã€
view_bundle_revertWizard_getInfoStep_cleanDeploy = ãããã€ãåé€ããŸãã? (ããã¯å€ããæ¢åã®ãããã€ãã£ã¬ã¯ããªãåãæ¶ããããã€ãéå§ããåã«åé€ããŸã)
view_bundle_revertWizard_getInfoStep_getNameFailure = åãæ¶ããããã€åã®ååŸã«å€±æããŸãã
+view_bundle_revertWizard_getInfoStep_name = åãæ¶ãæ
å ±ã®æäŸ
view_bundle_revertWizard_getInfoStep_revertDeployDesc = ãããã€èšè¿°ã®åãæ¶ã
view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [åãæ¶ã å] {0} [åãæ¶ã åŸ] {1}
view_bundle_revertWizard_getInfoStep_revertDeployName = ãããã€åã®åãæ¶ã
+view_bundle_revertWizard_revertStep_name = å®å
ãã©ãããã©ãŒã ãžãã³ãã«ããããã€
view_bundle_revertWizard_revertStep_reverting = åãæ¶ãäž...
view_bundle_revertWizard_revertStep_scheduled = ãããã€ã®åãæ¶ãã®ã¹ã±ãžã¥ãŒã«ã«æåããŸããã
view_bundle_revertWizard_revertStep_scheduledDetails = ãªãœãŒã¹ã°ã«ãŒã [{1}] ãããã³ãã«ããã〠[{0}] ã®åãæ¶ãã®ã¹ã±ãžã¥ãŒã«ã«æåããŸãã
@@ -1299,10 +1408,12 @@ view_bundle_versions = ããŒãžã§ã³
##view_charts_time_axis_label = Time
view_configCompare_comparingConfigs = æ§æã®æ¯èŒ
view_configCompare_configCompare = æ§æã®æ¯èŒ
+view_configEdit_addItem = ãªã¹ãã«é
ç®ãè¿œå
view_configEdit_confirm_1 = ãã®éãŸãããéžæãããããããã£ãåé€ããŠãããããã§ãã?
view_configEdit_confirm_2 = ãã®è¡ãåé€ããŠãããããã§ãã?
view_configEdit_confirm_3 = [{1}] ãéžæããã [{0}] ãåé€ããŠãããããã§ãã?
view_configEdit_editRow = è¡ã®ç·šé
+view_configEdit_enterPropName = è¿œå ããããããã£ã®ååãå
¥åããŠãã ãã
view_configEdit_error_1 = æ§æã¯ãã®ãªãœãŒã¹ã§ãµããŒããããŠããŸãã
view_configEdit_error_2 = æ¥ç¶èšå®ã¯ãã®ãªãœãŒã¹ã§ãµããŒããããŠããŸãã
view_configEdit_error_3 = [{0}] ãšããååã®ããããã£ãè¿œå ã§ããŸãããããããã£åã¯ãã®éãŸãã§ãã§ã«äœ¿ãããŠããŸãã
@@ -1427,6 +1538,7 @@ view_drift_wizard_addDef_templatePrompt = ããªããå®çŸ©ãã³ãã¬ãŒã
view_drift_wizard_addDef_title = ã¿ã€ãã®ãªãœãŒã¹ [{0}] ã®ããã®ããªããæ€åºå®çŸ©ãè¿œå ããŠãã ãã
view_drift_wizard_addDef_windowTitle = ããªããæ€åºå®çŸ©ãŠã£ã¶ãŒãã®è¿œå
view_drift_wizard_addTemplate_failure = æ°èŠããªããæ€åºãã³ãã¬ãŒã [{0}] ã®è¿œå ã«å€±æããŸãã
+view_drift_wizard_addTemplate_infoStepHelp = åããªãããã³ãã¬ãŒãã¯æ¢åã®ãã³ãã¬ãŒããã掟çããŠäœæã§ããŸããããã¯æ¢åãã³ãã¬ãŒãã«é¡äŒŒãããã®ãããã©ã°ã€ã³ãå®çŸ©ãããã³ãã¬ãŒãããæ°èŠãã³ãã¬ãŒããæ§ç¯ããçŽ æ©ãæ¹æ³ãæäŸããŸããããªããå®çŸ©ã®ããã«ããã®ãã³ãã¬ãŒãã¯ããªãããç£èŠãå®è¡ããäžåŒã®ãã¡ã€ã«ãèšè¿°ããŸããç¶æ³ã«ãã£ãŠã¯ããã®ãã³ãã¬ãŒãããå°åºãããå®çŸ©ã¯ãã®ãã¡ã€ã«ã»ããã®å€æŽããä»ã®èšå®ã®å€æŽãèš±ããããèš±ããªãã£ããããŸãããã³ãã¬ãŒãåã¯äžã€ã®ãªãœãŒã¹ã¿ã€ãå
ã§ãŠããŒã¯ã§ãªããã°ãªããŸããã
view_drift_wizard_addTemplate_infoStepName = éå§ãã³ãã¬ãŒãã®éžæ
view_drift_wizard_addTemplate_success = æ°èŠããªãããã³ãã¬ãŒã [{0}] ã®è¿œå ã«æåããŸãã
view_drift_wizard_addTemplate_title = ã¿ã€ã [{0}] ã®ããªããå®çŸ©ãã³ãã¬ãŒããè¿œå ããŠãã ãã
@@ -1435,6 +1547,7 @@ view_drift_wizard_pinTemplate_confirmNotPinned = ãã®ãã³ãã¬ãŒãã®ã
view_drift_wizard_pinTemplate_confirmPinned = èŠå! ãã®ãã³ãã¬ãŒãã¯ãã§ã«ãã³çããããŠããŸãããã®ãã³ãã¬ãŒãã¯ãã®æ°èŠã¹ãããã·ã§ããã«å床ãã³çãããããšãå¯èœã§ãããã®ãã³ãã¬ãŒãã®ããã®çŸåšãšå°æ¥ã®åããªããå®çŸ©ããã£ãããã³çãããããšããã®ãã³ãã¬ãŒãã¯åæã¹ãããã·ã§ããããã®ãã³ãã¬ãŒããæã€ãã³çããããã¹ãããã·ã§ãããšããŠèšå®ãããããã«ããŸãããã®ãã³ãã¬ãŒãã®æ¢åå®çŸ©ã¯æ°èŠåæã¹ãããã·ã§ãããžãªã»ããããããã¹ãŠã®æ¢åã¹ãããã·ã§ããã¯åé€ãããŸãããã®æ°èŠã¹ãããã·ã§ãããæã€ãã³ãã¬ãŒãã®ãã³çããç¶ããŸãã?
view_drift_wizard_pinTemplate_failure = ããªãããã³ãã¬ãŒã [{0}] ãžã®ã¹ãããã·ã§ããããã³çãããã®ã«å€±æããŸãã
view_drift_wizard_pinTemplate_infoStepExistingTemplate = çŸåšã®ãã³ãã¬ãŒããžã®ãã³çã
+view_drift_wizard_pinTemplate_infoStepHelp = ãã³çãããããã³ãã¬ãŒããéžæããŠãã ããããã®ãã³ãã¬ãŒãã®ããã®çŸåšãšå°æ¥ã®åããªããå®çŸ©ããã£ãããã³çãããããšããã®ãã³ãã¬ãŒãã¯åæã¹ãããã·ã§ããããã®ãã³ãã¬ãŒããæã€ãã³çããããã¹ãããã·ã§ãããšããŠèšå®ãããæã€ããã«ãªããŸããããã«ããŸãããããŠãã®å®çŸ©èªèº«ã¯ãã³çãããããã®ãšããŠããŒã¯ãããŸããããã¯æåŸ
ããããã¡ã€ã«ã»ããããããªãããæ€åºããã®ã«äœ¿ãããŸãããã®ãã³ãã¬ãŒãã®ããã®æ¢åå®çŸ©ã¯æ°èŠã®åæã¹ãããã·ã§ããã«ãªã»ããããããã¹ãŠã®æ¢åã¹ãããã·ã§ããã¯åé€ãããããšã«æ³šæããŠãã ããã
view_drift_wizard_pinTemplate_infoStepName = ãã³çãããããã³ãã¬ãŒãã®éžæ
view_drift_wizard_pinTemplate_infoStepNewTemplate = æ°èŠãã³ãã¬ãŒããžã®ãã³çã (ã¹ãããã·ã§ããã®ããªããå®çŸ©ããå°åºããããã®)
view_drift_wizard_pinTemplate_infoStepRadioHelp = ãã®ã¹ãããã·ã§ããã¯æ°èŠãŸãã¯æ¢åã®ããªãããã³ãã¬ãŒãã«ãã³çãããããšãå¯èœã§ãããã®''æ°èŠãã³ãã¬ãŒã''ãªãã·ã§ã³ã¯ããŠãŒã¶ãŒã®æã«ãã£ãŠä¿¡é Œããå®çŸ©ãã¹ãããã·ã§ãããããªãœãŒã¹ã¬ãã«ãã¿ã€ãã¬ãã«ã§ããã³ãã¬ãŒãåã§ããããã«ããŸãããã®æ°èŠãã³ãã¬ãŒãã¯ã次ã«ããã®ã¿ã€ãã®ã¡ã³ããŒã«å¯ŸããŠé©çšã§ããŸãããã®æ°èŠãã³ãã¬ãŒãã¯åææã¯ã¹ãããã·ã§ããã®ããªããå®çŸ©ã®ã³ããŒã§ããã次ã®ã¹ãããã§ç·šéããããšãã§ããŸãããã®ååã¯å€æŽãã¹ãã§ããã®ã¿ã€ãã®ãŠããŒã¯ãªããªãããã³ãã¬ãŒãåã§ãªããã°ãªããŸããã''æ¢åãã³ãã¬ãŒã''ãªãã·ã§ã³ã¯ããŠãŒã¶ãŒãéžæããã¹ãããã·ã§ãããæã€æ¢åãã³ãã¬ãŒãã«å¯ŸããŠããã³çã
ãŸãã¯å床ãã³çããã§ããããã«ããŸããæ£ããèšå®ããã«ã¯ããã®æ¢åãã³ãã¬ãŒãã¯åããã£ã¬ã¯ããªããã®ã¹ãããã·ã§ããå®çŸ©ãšããŠç£èŠã§ããªããã°ãªããŸãããã»ã¬ã¯ã·ã§ã³ããã¯ã¹ã¯æ£åœãªæ¢åã®ãã³ãã¬ãŒãã ãã衚瀺ããŸããããæ£åœã§ãªãæ¢åãã³ãã¬ãŒããååšãããšããŠããã®ãªãã·ã§ã³ã§ã¯éžæãããŸããã
@@ -1471,7 +1584,9 @@ view_dynagroup_exprBuilder_expressionType_resourceConfig = ãªãœãŒã¹æ§æ
view_dynagroup_exprBuilder_expressionType_resourceType = ãªãœãŒã¹ã¿ã€ã
view_dynagroup_exprBuilder_expressionType_tooltip = ãã®åŒã®ããããã£ã¯ä»¥äžã®ãã®ã«åãæ¿ãããŸãã<br/> <b>ãªãœãŒã¹</b>: ååãããŒãžã§ã³ãšãã£ããªãœãŒã¹ããããã£<br/> <b>ãªãœãŒã¹ã¿ã€ã</b>: ç¹å®ã¿ã€ãã®ãªãœãŒã¹ã®æ€çŽ¢<br/> <b>ãªãœãŒã¹ã«ããŽãª</b>: ãã©ãããã©ãŒã ããµãŒããŒããµãŒãã¹ãšãã£ãã«ããŽãªã«ãããªãœãŒã¹æ€çŽ¢<br/> <b>ãã¬ã€ã</b>: ã¢ãã¿ããããã¬ã€ãã®ããã«éžæãããå€ãæã€ãªãœãŒã¹<br/> <b>ãã©ã°ã€ã³æ§æ</b>: ã³ã³ããŒãã³ãã®ãã©ã°ã€ã³ã³ã³ããŒãã³ãæ§æèšå®ã«ããæ€çŽ¢<br/> <b>ãªãœãŒã¹æ§æ</b>: 管çãªãœãŒã¹ã®æ§æèšå®ã«ããæ€çŽ¢
view_dynagroup_exprBuilder_expressionType_trait = ãã¬ã€ã
+view_dynagroup_exprBuilder_expression_tooltip = ããã¯ä»¥äžã®ãã©ãŒã å
ã®éžæã«ãã£ãŠè¡šçŸãããå®å
šãªåŒã§ãããã®ããã¹ãã¯ã"åŒã®è¿œå "ãã¿ã³ãã¯ãªãã¯ãããšãã°ã«ãŒãå®çŸ©åŒã®ããã¹ãã«è¿œå ãããŸãã
##view_dynagroup_exprBuilder_groupBy = Group by
+view_dynagroup_exprBuilder_groupBy_tooltip = GroupByã¯ã·ã¹ãã ãå
¥ååŒããã®å€ã«ã€ããŠãããã解æãã§ããããã«ããŸããäŸãã°ãã¯ã©ã¹ã¿ãŒåã«ããGroupByã«ãã£ãŠããã¹ãŠã®ã¯ã©ã¹ã¿ãŒã¡ã³ããŒããã®äžã«å«ããããªã¯ã©ã¹ã¿ã®ã°ã«ãŒããäœæããŸãã
##view_dynagroup_exprBuilder_memberOf = Member of
##view_dynagroup_exprBuilder_memberOf_tooltip = memberof will restrict the dynagroup members to be a subset of the specified resource group. Specifying multiple memberof conditions will restrict the dynagroup members to be a subset of the union of members of the specified groups.
view_dynagroup_exprBuilder_noPlugins = --ãã©ã°ã€ã³ãªã--
@@ -1495,6 +1610,7 @@ view_dynagroup_exprBuilder_resource_tooltip = ãªãœãŒã¹ã®ã¬ãã«ãæã¿
view_dynagroup_exprBuilder_savedExpression = ä¿åãããåŒ
view_dynagroup_exprBuilder_title = åŒãã«ããŒ
view_dynagroup_exprBuilder_unset = èšå®è§£é€
+view_dynagroup_exprBuilder_unset_tooltip = èšå®è§£é€ã¯ããŒã¿ããŒã¹å
ã®nullå€ãæã€å€ãã®ãã¹ãŠãçºèŠããŸããããã¯ããŒã¿ããŒã¹ã¹ãã¢ãšåãåããããŒã¿ã®çç±ã«ãã"="ãªãã¬ãŒã¿ã䜿ãããšã¯å¯èœã§ã¯ãããŸããã
view_dynagroup_exprBuilder_value_tooltip = åãåããåŒã®ããã®æååå€
view_dynagroup_expression = åŒ
view_dynagroup_expressionBuilderIconTooltip = åŒãã«ããŒ...
@@ -1525,6 +1641,8 @@ view_dynagroup_template_jbossas4_hostingApp = JBossAS 4 - ãã¹ãã£ã³ã°ã
view_dynagroup_template_jbossas4_nonsecured = JBossAS 4 - ã»ãã¥ã¢ã§ãªããã¹ãŠ
view_dynagroup_template_jbossas4_uniqueVersions = JBossAS 4 - ãŠããŒã¯ããŒãžã§ã³
view_dynagroup_template_jbossas5_clusters = JBossAS 5/6 - ã¯ã©ã¹ã¿
+view_dynagroup_template_platforms = ã€ã³ãã³ããªå
ã®ãã©ãããã©ãŒã ãªãœãŒã¹
+view_dynagroup_template_uniqueResourceTypes = ã€ã³ãã³ããªå
ã®ãŠããŒã¯ãªãœãŒã¹ã¿ã€ã
view_groupConfigEdit_member = ã¡ã³ããŒ
view_groupConfigEdit_noListProps = ã°ã«ãŒãæ§æã«çŸåšãµããŒããããŠããªãããããã£ã®ãªã¹ã
view_groupConfigEdit_saveReminder = èšå®ãå€æŽãããŠããŸã - ãããã®å€æŽãä¿åããã®ãå¿ããªãã§ãã ããããããªããšå€±ãããŸãã
@@ -1562,6 +1680,7 @@ view_group_operationScheduleDetails_memberResource = ã¡ã³ããŒãªãœãŒã¹
view_group_operationScheduleDetails_value_parallel = 䞊è¡å®è¡
view_group_operationScheduleDetails_value_sequential = 以äžã«ç€ºããé 㧠(ã¡ã³ããŒãªãœãŒã¹ããã©ãã°&ããããããŠé çªãå€æŽ)
view_group_pluginConfig_edit_currentGroupProperties = çŸåšã®ã°ã«ãŒãããããã£
+view_group_pluginConfig_edit_invalid = 次ã®ã³ãã¯ã·ã§ã³èšå®ããããã£ã«ã¯äžæ£ãªå€ãèšå®ãããŠããŸãã®ã§ãã³ãã¯ã·ã§ã³èšå®ãä¿åããããŸãã«ä¿®æ£ãããå¿
èŠããããŸã: [{0}]
view_group_pluginConfig_edit_noperm = ãã®ã°ã«ãŒãã³ãã¯ã·ã§ã³èšå®ãç·šéããæš©éããããŸãã
view_group_pluginConfig_edit_saveFailure = ã°ã«ãŒãå [{1}] ãšäºææ§ã®ãã [{0}] ã®ããã®ã°ã«ãŒãèšå®æŽæ°ã®éå§ã«å€±æããŸãã
view_group_pluginConfig_edit_saveInitiated_concise = ã°ã«ãŒãã³ãã¯ã·ã§ã³èšå®ã®æŽæ°ãéå§ãããŸãã
@@ -1570,6 +1689,7 @@ view_group_pluginConfig_edit_saveTooltip = ãã¹ãŠã®ã°ã«ãŒãã¡ã³ããŒ
view_group_pluginConfig_edit_valid = ãã¹ãŠã®ã³ãã¯ã·ã§ã³èšå®ããããã£ã«ã¯æ£ããå€ãèšå®ãããŠããŸãã®ã§ãã³ãã¯ã·ã§ã³èšå®ã¯ä¿åã§ããŸã
view_group_pluginConfig_members_fetchFailure = ã°ã«ãŒã [{0}] ã®ã¡ã³ããŒã®ããã®ãã©ã°ã€ã³æ§ææŽæ°å±¥æŽã®ååŸã«å€±æããŸãã
view_group_pluginConfig_members_fetchFailureConn = [{0}] ã®ããã®ã¡ã³ããŒã³ãã¯ã·ã§ã³èšå®ã®åãåºãã«å€±æããŸãã
+view_group_pluginConfig_members_fetchFailureConnInProgress = ã°ã«ãŒããã©ã°ã€ã³æ§æã®æŽæ°ã¯çŸåšé²è¡äžã§ããã°ã«ãŒãèšå®ãé²èŠ§ããåã«æŽæ°ãå®äºãããŸã§åŸ
ã£ãŠãã ããã
view_group_pluginConfig_members_statusDetails = ã¹ããŒã¿ã¹ã®è©³çŽ°
view_group_pluginConfig_members_statusFailure = ãã®æ§æã®æŽæ°ã¯æªç¥ã®çç±ã«ãã倱æããŸãã
view_group_pluginConfig_members_statusInprogress = ãã®æ§æã®æŽæ°ã¯ãŸã é²è¡äžã§ã
@@ -1580,6 +1700,7 @@ view_group_pluginConfig_table_clickStatusIcon = 詳现ã¯ã¹ããŒã¿ã¹ã¢ã€
view_group_pluginConfig_table_deleteFailure = ã°ã«ãŒããã©ã°ã€ã³æ§æå±¥æŽã®åé€ã«å€±æããŸãã
view_group_pluginConfig_table_deleteSuccessful = [{0}] ã®å±¥æŽãåé€ããŸãã
view_group_pluginConfig_table_failFetch = ã°ã«ãŒããã©ã°ã€ã³å±¥æŽã®ååŸã«å€±æããŸãã
+view_group_pluginConfig_table_msg1 = åã
ã®ãªãœãŒã¹ã®ã¹ããŒã¿ã¹ã®ããã®ã¡ã³ããŒå±¥æŽãèŠãŠãã ãã
view_group_pluginConfig_table_statusDetails = ã¹ããŒã¿ã¹ã®è©³çŽ°
view_group_pluginConfig_table_statusFailure = ãã®ã°ã«ãŒãæ§æã®æŽæ°ã¯å€±æããŸãã
view_group_pluginConfig_table_statusInprogress = ãã®ã°ã«ãŒãæ§æã®æŽæ°ã¯é²è¡äžã§ã
@@ -1600,6 +1721,7 @@ view_group_resConfig_edit_saveTooltip = ãã¹ãŠã®ã°ã«ãŒãã¡ã³ããŒã®
view_group_resConfig_edit_valid = ãã¹ãŠã®æ§æããããã£ã¯æ£ããå€ã§ãã®ã§ããã®æ§æã¯ä¿åå¯èœã§ã
view_group_resConfig_members_fetchFailure = ã°ã«ãŒã [{0}] ã®ã¡ã³ããŒã®ããã®ãªãœãŒã¹æ§ææŽæ°å±¥æŽã®ååŸã«å€±æããŸãã
view_group_resConfig_members_fetchFailureConfig = [{0}] ã®ããã®ã¡ã³ããŒãªãœãŒã¹æ§æèšå®ã®åãåºãã«å€±æããŸãã
+view_group_resConfig_members_fetchFailureConfigInProgress = ã°ã«ãŒããªãœãŒã¹æ§æã®æŽæ°ãçŸåšé²è¡äžã§ããã°ã«ãŒãèšå®ãé²èŠ§ããåã«æŽæ°ãçµäºããã®ããåŸ
ã¡ãã ãã
view_group_resConfig_members_statusDetails = ã¹ããŒã¿ã¹ã®è©³çŽ°
view_group_resConfig_members_statusFailure = ãã®æ§æã®æŽæ°ã¯æªç¥ã®çç±ã§å€±æããŸããã
view_group_resConfig_members_statusInprogress = ãã®æ§æã®æŽæ°ã¯ãŸã é²è¡äžã§ã
@@ -1610,6 +1732,7 @@ view_group_resConfig_table_clickStatusIcon = 詳现ã¯ã¹ããŒã¿ã¹ã¢ã€ã³
view_group_resConfig_table_deleteFailure = ã°ã«ãŒããªãœãŒã¹æ§æå±¥æŽã®åé€ã«å€±æããŸãã
view_group_resConfig_table_deleteSuccessful = [{0}] ã®å±¥æŽã®åé€ãããŸãã
view_group_resConfig_table_failFetch = ã°ã«ãŒãæ§æå±¥æŽã®ååŸã«å€±æããŸãã
+view_group_resConfig_table_msg1 = åã
ã®ãªãœãŒã¹ã®ã¹ããŒã¿ã¹ã¯ã¡ã³ããŒå±¥æŽãé²èŠ§ããŠãã ãã
view_group_resConfig_table_statusDetails = ã¹ã¿ãŒã¿ã¹ã®è©³çŽ°
view_group_resConfig_table_statusFailure = ãã®ã°ã«ãŒãæ§æã®æŽæ°ã倱æããŸãã
view_group_resConfig_table_statusInprogress = ãã®ã°ã«ãŒãæ§æã®æŽæ°ã¯ãŸã é²è¡äžã§ã
@@ -1632,6 +1755,7 @@ view_group_summary_mixed = æ··åš
view_group_summary_nameUpdateFailure = ID [{0}] ãæã€ãªãœãŒã¹ã°ã«ãŒãåã®å€æŽã«å€±æããŸãã - [{1}] ãã [{2}] ãžã®å€æŽãã§ããŸããã§ãã
view_group_summary_nameUpdateSuccessful = ID [{0}] ãæã€ãªãœãŒã¹ã°ã«ãŒãã [{1}] ãã [{2}] ãžã®å€æŽããŸãã
view_group_summary_recursive = ååž°
+view_helpTop_description = ãã®ã»ã¯ã·ã§ã³ã¯ããã¥ã¡ã³ããŒã·ã§ã³ããã¥ãŒããªã¢ã«ãããŒãžã§ã³ããã®ä»ã®ãã«ãæ
å ±ãæäŸããŸãã
view_help_section_product = ãããã¯ã
view_help_section_product_about = RHQã«ã€ããŠ
view_inventory_adq = ãã£ã¹ã«ããªãã¥ãŒ
@@ -1667,6 +1791,7 @@ view_inventory_resource_loadFailed = ID [{0}] ãæã€ãªãœãŒã¹ã¯ååšã
view_inventory_resources_deleteConfirm = éžæããããªãœãŒã¹ãåé€ãããã§ãã?
view_inventory_resources_deleteFailed = éžæããããªãœãŒã¹ã®åé€ã«å€±æããŸãã
view_inventory_resources_deleteSuccessful = ãã®ãªãœãŒã¹ãåé€ãããªã¯ãšã¹ãã¯(è€æ°ã®)ãšãŒãžã§ã³ãã«æ£ããéä¿¡ãããŸããã
+view_inventory_resources_disableConfirm = æ¬åœã«éžæãããªãœãŒã¹ãç¡å¹ã«ãããã§ãã? ç¡å¹ãªéã«ãšãŒãžã§ã³ãããå ±åãããã¢ãã€ã©ããªãã£ã¯ç¡èŠãããŸããç¡å¹åã¯éåžžæäœãä¿å®ã®äžéšãšããŠåæ¢ããããšãæåŸ
ãããŠãããªãœãŒã¹ã«å¯ŸããŠåœ¹ã«ç«ã¡ãŸãã
view_inventory_resources_disableFailed = éžæããããªãœãŒã¹ãç¡å¹åããã®ã«å€±æããŸããã
view_inventory_resources_disableSuccessful = éžæããããªãœãŒã¹ãšãã®åãšãªã [{0}] ãªãœãŒã¹ãç¡å¹åããã®ã«æåããŸããã
view_inventory_resources_enableConfirm = æ¬åœã«éžæããããªãœãŒã¹ãæå¹ãããã§ãã? æå¹ã®éã¯ãšãŒãžã§ã³ãããªãœãŒã¹ã®ã¢ãã€ã©ããªãã£ãå ±åãããŸã§ã¢ãã€ã©ããªãã£ã¯UNKNOWNã«èšå®ãããŸãããšãŒãžã§ã³ãã¯çŽè¿ã®éœåã®è¯ããšãã«çŸåšã®ã¢ãã€ã©ããªãã£ãå ±åããããã«èŠæ±ãããŸãã
@@ -1705,10 +1830,13 @@ view_login_invalidEmail = äžæ£ãªE-ã¡ãŒã«ã¢ãã¬ã¹
view_login_login = ãã°ã€ã³
view_login_logout = ãã°ã¢ãŠã
view_login_noBackend = ããã¯ãšã³ãããŒã¿ãœãŒã¹ã¯å©çšã§ããŸãã
+view_login_noLdap = 泚æïŒLDAP詳现ã®ä»»æã®åãåºãã¯æåããŸããã§ãããæåã§ã®å
¥åãèŠæ±ãããŸã
+view_login_noUser = å
¥åããããŠãŒã¶ãŒåãŸãã¯ãã¹ã¯ãŒãã¯èšé²ããããã®ãšäžèŽããŸãã
view_login_prompt = ãã°ã€ã³ããŠãã ãã
view_login_registerLater = (ãã£ã³ã»ã« - ç»é²ãåŸã§å®æãããŠãã ãã)
view_login_registerLdapSuccess = æ°ããLDAPãŠãŒã¶ãŒã®ç»é²ã«æåããŸãã
view_login_registerUser = ãŠãŒã¶ã®ç»é²
+view_login_welcomeMsg = {0}ãžãããã! <br/><br/> ç»é²ãå®æãããããã«æ¬¡ã®ãã£ãŒã«ããå
¥å/æŽæ°ããŠãã ããã<br/> "OK"ãã¯ãªãã¯ãããããã°ã€ã³ããŸãã<br/><br/>
view_measureRange_last = æéã®ç¯å² - çŽå
view_measureRange_simple = ã·ã³ãã«...
view_measureRange_start = æéã®ç¯å² - éå§
@@ -1741,6 +1869,7 @@ view_operationHistoryDetails_error_fetchFailure = ãªãã¬ãŒã·ã§ã³å±¥æŽã®
view_operationHistoryDetails_noResults = ãã®ãªãã¬ãŒã·ã§ã³ã¯å€ãè¿ããŸãã
view_operationHistoryDetails_operation = ãªãã¬ãŒã·ã§ã³
view_operationHistoryDetails_parameters = ãã©ã¡ãŒã¿ãŒ
+view_operationHistoryDetails_requestor = èŠæ±è
view_operationHistoryDetails_results = çµæ
view_operationHistoryDetails_status = ã¹ããŒã¿ã¹
view_operationHistoryList_button_forceDelete = 匷å¶åé€
@@ -1754,6 +1883,7 @@ view_operationHistoryList_button_runOperation = ãªãã¬ãŒã·ã§ã³ã®å®è¡
##view_operationHistoryList_deleteSuccess = Deleted [{0}] operation history items.
view_operationHistoryList_notYetStarted = ãŸã éå§ããŠããŸãã
view_operationHistoryList_title = ãªãã¬ãŒã·ã§ã³å±¥æŽ
+view_operationScheduleDetails_enterParametersBelow = 以äžã«ãã©ã¡ãŒã¿ãŒãå
¥åããŠãã ãã...
view_operationScheduleDetails_fieldDefault_description = 説æãèŠããšãããªãã¬ãŒã·ã§ã³ãéžæããŠãã ãã
view_operationScheduleDetails_fieldDefault_parameters = ãã©ã¡ãŒã¿ãŒãèŠãããã«ãªãã¬ãŒã·ã§ã³ãéžæããŠãã ãã
view_operationScheduleDetails_fieldHelp_description = ãã®ã¹ã±ãžã¥ãŒã«ããããªãã¬ãŒã·ã§ã³ã®ããã®ä»»æã®èª¬æ (äŸãå€éä¿å®ã®ããã®ã¢ããªãµãŒããŒåèµ·åïŒ
@@ -1767,7 +1897,9 @@ view_portlet_autodiscovery_setting_platforms = çºèŠããããã©ãããã©
view_portlet_configure_definitionDesc = ããŒãã¬ããã®ããã®æ§æèšå®
view_portlet_configure_definitionTitle = ããŒãã¬ããæ§æ
view_portlet_configure_needed = èšå®ãã¿ã³ãæŒããŠãã®ããŒãã¬ãããæ§æããŠãã ãã
+view_portlet_configure_notNeeded = æ§æã¯ãã®ããŒãã¬ããã«ã¯å¿
èŠãããŸãã
view_portlet_defaultName_autodiscovery = ãã£ã¹ã«ããªãã¥ãŒ
+view_portlet_defaultName_favoriteResources = ãæ°ã«å
¥ããªãœãŒã¹
view_portlet_defaultName_groupMetric = ãªãœãŒã¹ã°ã«ãŒãã¡ããªãã¯ã°ã©ã
view_portlet_defaultName_group_alerts = ã°ã«ãŒã: ã¢ã©ãŒã
view_portlet_defaultName_group_bundles = ã°ã«ãŒã: ãã³ãã«ãããã€
@@ -1801,8 +1933,11 @@ view_portlet_help_autodiscovery = ãã®ããŒãã¬ããã¯æ°èŠã«çºèŠã
view_portlet_help_bundle_deps = ãã®ããŒãã¬ããã¯æ§æããããã£ã¹ãã¬ã€ã¯ã©ã€ããªã¢ãããŒã¹ã«ããé¢é£ãããã³ãã«ãããã€ã衚瀺ããŸã
view_portlet_help_config_updates = ãã®ããŒãã¬ããã¯æ§æèšå®ãšäžèŽããæè¿ã®æ§æå€æŽã衚瀺ããŸã
view_portlet_help_eventcounts = ãã®ããŒãã¬ããã¯æ§æããããã£ã¹ãã¬ã€ã¯ã©ã€ããªã¢ã«äžèŽããã€ãã³ãæ°ã衚瀺ããŸã
+view_portlet_help_favoriteResources = ãã®ããŒãã¬ããã¯çŸåšãŠãŒã¶ãŒã®ãæ°ã«å
¥ããªãœãŒã¹ã衚瀺ããŸã
view_portlet_help_graph = ãã®ããŒãã¬ããã¯ãªãœãŒã¹ã¡ããªãã¯ã°ã©ãã衚瀺ããŸã
view_portlet_help_inventorySummary = ãã®ããŒãã¬ããã¯çŸåšãŠãŒã¶ãŒã®é²èŠ§å¯èœãªã€ã³ãã³ããªãšã¡ããªãã¯åéçã®ã·ã§ãŒããµããªãŒã衚瀺ããŸã
+view_portlet_help_mashup = ãã®ããŒãã¬ããã¯(iframeãä»ããŠ)ãªã¢ãŒãHTTPãªã¯ãšã¹ããè¿ããå
容ã衚瀺ããŸã
+view_portlet_help_message = ãã®ããŒãã¬ããã¯éçãªHTMLã¡ãã»ãŒãžã衚瀺ããŸãã <i>message</i> ããããã£ã®æ§æãå¿
èŠã§ãã
view_portlet_help_metrics = ãã®ããŒãã¬ããã¯æ§æããããã£ã¹ãã¬ã€ã¯ã©ã€ããªã¢ãããŒã¹ã«ããŠé¢é£ããã¡ããªãã¯ããŒã¿ã®ã°ã©ããæããŸã
view_portlet_help_none = ãã®ããŒãã¬ããçšã®ãã«ãã¯å©çšã§ããŸãã
view_portlet_help_oobs = ãã®ããŒãã¬ãã㯠ç¯å²å€ã¡ããªãã¯æ¡ä»¶ã衚瀺ããŸã
@@ -1834,6 +1969,8 @@ view_portlet_problemResources_config_display_range = ããããæ°æéé¡ã£
view_portlet_problemResources_config_display_range2 = {0} ãã {1} ãŸã§
view_portlet_problemResources_maxDisplaySetting = æ倧ãªãœãŒã¹
view_portlet_recentAlerts_config_members = ã¡ã³ããŒã®éžæ
+view_portlet_recentAlerts_config_priority_label = åªå
ã¢ã©ãŒã
+view_portlet_recentAlerts_config_when = 次ã®æé以å
ã§
view_portlet_recentAlerts_fail_msg = ã¢ã©ãŒããã£ã«ã¿ãªã³ã°ã®ããã«å²ãåœãŠããããªãœãŒã¹ãããŒãããã®ã«å€±æããŸãã
view_portlet_recentlyAdded_error1 = æè¿è¿œå ããããªãœãŒã¹ãããŒãããã®ã«å€±æããŸãã
view_portlet_recentlyAdded_setting_addedPlatforms = æè¿è¿œå ããããã©ãããã©ãŒã
@@ -1841,15 +1978,19 @@ view_portlet_results_empty = æå®ãããã¯ã©ã€ããªã¢ã®çµæã¯èŠã€
view_remoteAgentInstall_agentStatus = ãšãŒãžã§ã³ãã®ã¹ããŒã¿ã¹
view_remoteAgentInstall_agentStatusDefault = -ã¹ããŒã¿ã¹ã®æŽæ°ãã¿ã³ãã¯ãªãã¯ããŠãã ãã-
view_remoteAgentInstall_buttonFindAgent = ãšãŒãžã§ã³ãã®çºèŠ
+view_remoteAgentInstall_connInfo = æ¥ç¶æ
å ±
view_remoteAgentInstall_error_1 = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ãã¹ãæ¢ããŠããéã«ãšã©ãŒãçºçããŸãã
+view_remoteAgentInstall_error_2 = å
±éã®å Žæã§æ¢ããŠãããšãã«ãšãŒãžã§ã³ããèŠã€ããããšãã§ããŸããã§ãã
view_remoteAgentInstall_error_3 = [{0}] 以äžã«ã€ã³ã¹ããŒã«ããããšãŒãžã§ã³ãèŠã€ããããšãã§ããŸããã§ãã
view_remoteAgentInstall_error_4 = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ã«å€±æããŸãã
view_remoteAgentInstall_error_5 = ãšãŒãžã§ã³ãã®éå§ã«å€±æããŸãã
view_remoteAgentInstall_error_6 = ãšãŒãžã§ã³ãã®åæ¢ã«å€±æããŸãã
view_remoteAgentInstall_installAgent = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«
+view_remoteAgentInstall_installInfo = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«æ
å ±
view_remoteAgentInstall_installPath = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ãã¹
view_remoteAgentInstall_owner = ãªãŒããŒ
view_remoteAgentInstall_promptHost = ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããŠããããããã¯ããããã€ã³ã¹ããŒã«ããããã¹ã
+view_remoteAgentInstall_promptInstallPath = ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããŠããããããã¯ããããã€ã³ã¹ããŒã«ãããå Žæãã©ãã«ã€ã³ã¹ããŒã«ãããã確信ããªããªãã芪ãã£ã¬ã¯ããªãå
¥åããŠã''ãšãŒãžã§ã³ãã®çºèŠ''ãã¿ã³ãã¯ãªãã¯ããã®ãã£ã¬ã¯ããªä»¥äžãã¹ãã£ã³ããŠãã ããã空ã®ãã¹ãå
¥åãããªãããšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããã¹ãäžã®å
±éã®å Žæãæ¢çŽ¢ãããŸãã
view_remoteAgentInstall_promptPassword = SSHãä»ããŠãã¹ãäžã®ãŠãŒã¶ãŒãèªèšŒããããã«äœ¿ãããã¯ã¬ãã³ã·ã£ã«
view_remoteAgentInstall_promptPort = SSHãµãŒããŒããªã¹ã³ããããŒããæå®ãããªããã°ãããã©ã«ãã¯22ã§ãã
view_remoteAgentInstall_promptUser = SSHãä»ããŠãã¹ãã«æž¡ãããã¯ã¬ãã³ã·ã£ã«ãä¿æãããŠãŒã¶ãŒã®åå
@@ -1874,10 +2015,12 @@ view_reports_subsystems = ãµãã·ã¹ãã
view_resourceResourceGroupList_error_fetchFailure = ãªãœãŒã¹ã®ã°ã«ãŒãã®åãåºãã«å€±æããŸãã
view_resourceResourceGroupList_error_updateFailure = å²ãåœãŠããããªãœãŒã¹ã°ã«ãŒãã®æŽæ°ã«å€±æããŸãã
view_resourceResourceGroupList_message_updateSuccess = [{0}] ã®ããã«æŽæ°ãããã°ã«ãŒãã¡ã³ããŒã·ãã.
+view_resource_inventory_activity_changed_by = æŽæ°è
view_resource_inventory_activity_criteria_no_recent_events = 衚瀺ã¯ã©ã€ããªã¢ã«åºã¥ãã€ãã³ãã¯ãããŸãã
view_resource_inventory_activity_no_recent_alerts = æè¿ã®ã¢ã©ãŒãã¯ãããŸãã
view_resource_inventory_activity_no_recent_bundle_deploy = æè¿ã®ãã³ãã«ãããã€ã¡ã³ãã¯ãããŸãã
view_resource_inventory_activity_no_recent_config_history = æ§æå€æŽå±¥æŽã¯ãããŸãã
+view_resource_inventory_activity_no_recent_events = çŽè¿24æé以å
ã«ã€ãã³ãã¯ãããŸãã
view_resource_inventory_activity_no_recent_metrics = ãã®ãªãœãŒã¹ã«ã¯æè¿ã®ã¡ããªãã¯ã¯ãããŸãã
view_resource_inventory_activity_no_recent_oob = ç¯å²å€ã®æ¡ä»¶ã¯ã¿ã€ãããŸãã
view_resource_inventory_activity_no_recent_operations = æè¿ã®ãªãã¬ãŒã·ã§ã³å±¥æŽã¯ãããŸãã
@@ -1889,20 +2032,30 @@ view_resource_inventory_childhistory_status_invalidArtifact = äžæ£ãªçæç©
view_resource_inventory_childhistory_status_invalidConfig = äžæ£ãªæ§æ
view_resource_monitor_availability_currentAsOf = ãã®ããŒã¿ã¯ {0} ã®çŸåšã®ãã®ã§ãã
view_resource_monitor_availability_currentStatus = çŸåšã®ã¹ããŒã¿ã¹
+view_resource_monitor_availability_currentStatus_value = ãã®ãªãœãŒã¹ã¯ {1} ãã {0} ã®ç¶æ
ã®ãŸãŸã§ã
view_resource_monitor_availability_disabledTime = ç¡å¹åãããæé
+view_resource_monitor_availability_disabledTime_tooltip = ãªãœãŒã¹ãDISABLEDç¶æ
ã§ãã环ç©æé
view_resource_monitor_availability_downtime = åæ¢æé
+view_resource_monitor_availability_downtime_tooltip = ãªãœãŒã¹ãDOWNç¶æ
ã§ãã环ç©æé
view_resource_monitor_availability_loadFailed = ã¢ãã€ã©ããªãã£å±¥æŽã®ããŒãã«å€±æããŸãã
view_resource_monitor_availability_mtbf = MTBF
+view_resource_monitor_availability_mtbf_tooltip = å¹³åæ
éééïŒMean Time Before Failure) - ã€ãŸããããã¯DOWNããåã«UPç¶æ
ã§è²»ããããå¹³åæéãæå³ããŸã
view_resource_monitor_availability_mttr = MTTR
+view_resource_monitor_availability_mttr_tooltip = å¹³å埩æ§æé (Mean Time To Recovery) - ã€ãŸããããã¯å床UPããåã«DOWNç¶æ
ã§è²»ããããå¹³åæéãæå³ããŸã
view_resource_monitor_availability_numDisabled = ç¡å¹ååæ°
+view_resource_monitor_availability_numDisabled_tooltip = ãªãœãŒã¹ãDISABLEDç¶æ
ã«å
¥ã£ãåæ°ã®åèš
view_resource_monitor_availability_numFailures = é害æ°
+view_resource_monitor_availability_numFailures_tooltip = ãªãœãŒã¹ãDOWNç¶æ
ã«å
¥ã£ãåæ°ã®åèš
view_resource_monitor_availability_summaryError = ãªãœãŒã¹ã¢ãã€ã©ããªãã£ã®ãµããªãããŒãããã®ã«å€±æããŸãã
view_resource_monitor_availability_tooltip_disabled = ãªãœãŒã¹ãDISABLEDã§ããæéãèµ·åãåæ¢ã®æéãšæ¯èŒããããŒã»ã³ããŒãž
view_resource_monitor_availability_tooltip_down = ãªãœãŒã¹ãDOWNããŠããæéãèµ·åãç¡å¹åã®æéãšæ¯èŒããããŒã»ã³ããŒãž
##view_resource_monitor_availability_tooltip_up = Percentage of time the resource has been UP compared to the times it was down and disabled
+view_resource_monitor_availability_unknown = ãã®ãªãœãŒã¹ã¯ {0} ã®éã¯æªç¥ã®ç¶æ
ã§ããã
view_resource_monitor_availability_uptime = èµ·åæé
+view_resource_monitor_availability_uptime_tooltip = ãªãœãŒã¹ãUPç¶æ
ã§ãã环ç©æé
view_resource_monitor_calltime_average = å¹³å
view_resource_monitor_calltime_count = æ°
+view_resource_monitor_calltime_destination = åŒã³åºãã®å®å
##view_resource_monitor_calltime_destinationFilter = Destination Filter
view_resource_monitor_calltime_loadFailed = åŒã³åºãæéããŒã¿ãããŒãã§ããŸãã
view_resource_monitor_calltime_maximum = æ倧
@@ -1920,6 +2073,7 @@ view_resource_monitor_table_avg = å¹³å
view_resource_monitor_table_last = ææ°
view_resource_monitor_table_max = æ倧
view_resource_monitor_table_min = æå°
+view_resource_title_component_errors_cleanup = åé¡ã«åãçµãã åŸã¯ã以äžã®ã¡ãã»ãŒãžãåé€ããŠå
šç»é¢ã®'管çã³ã³ããŒãã³ããšã©ãŒ'ãã¯ãªã¢ããå¿
èŠããããŸãã
view_resource_title_component_errors_tooltip = 管çã³ã³ããŒãã³ããšã©ãŒã®è¡šç€ºã詳现ã¯ã¯ãªãã¯ããŠãã ãã
view_resource_title_tagUpdateFailed = ãªãœãŒã¹ã¿ã°ã®æŽæ°ã«å€±æããŸãã
##view_searchBar_buttonTooltip = Click to hide/show the search suggestion list. Also hide the list by hitting Escape when focus is in the search pattern text box.
@@ -1935,6 +2089,8 @@ view_searchBar_savedSearch_namePrompt = ãã¿ãŒã³ãååãä»ããŠãã
view_searchBar_savedSearch_rename = ä¿åæžã¿æ€çŽ¢ã®ååã [{0}] ãžå€æŽããã®ã«æåããŸãã
view_searchBar_savedSearch_save = [{0}] ãšããååã®ä¿åæžã¿æ€çŽ¢ãäœæããã®ã«æåããŸãã
view_searchBar_suggest_failSuggest = ãµãžã§ãã·ã§ã³ã®äœæã«å€±æããŸãããå¯èœæ§ã®ãããšã©ãŒããµãŒããŒãã°ãã調ã¹ãŠãã ããã
+view_searchBar_suggest_noSuggest = äžä»¶ãäžèŽããŸããã§ãããç°ãªããã¿ãŒã³ãå
¥åããŠãã ããã
+view_searchGUI_loginStatus = ãã°ã€ã³ã¹ããŒã¿ã¹ã確å®ã§ããŸããããµãŒããŒã®ç¶æ
ã調ã¹ãŠãã ãã
view_selector_assigned = å²ãåœãŠããã {0}
view_selector_available = å©çšå¯èœãª {0}
view_subTab_error_disabled = ç¡å¹ã«ãªã£ããµãã¿ã [{0}] ãéžæã§ããŸãã
@@ -2003,11 +2159,20 @@ view_tags_error_1 = ã¿ã°ãããŒãããã®ã«å€±æããŸãã
view_tags_tags = ã¿ã°
view_tags_tooltip_1 = ã¯ãªãã¯ãããšãã®ã¿ã°ãåé€ããŸã
view_tags_tooltip_2 = ã¯ãªãã¯ãããšã¿ã°ãç·šéããŸã
+view_tags_tooltip_3 = 次ã®ãã©ãŒãããã§ã¿ã°ãå
¥åããŠãã ãã: (namespace:)(semantic=)tagname (äŸ it:env=QA, or owner=John)
view_testTop_description = ãã®ã»ã¯ã·ã§ã³ã¯ããŸããŸãªGUIã³ã³ããŒãã³ãããã¹ãããããã®ããŒãžãå«ãã§ããŸã
view_testTop_title = ãã¹ã
+view_titleBar_common_addedFav = [{0}] ããæ°ã«å
¥ããšããŠè¿œå ããŸãã
+view_titleBar_common_addedFavFailure = [{0}] ããæ°ã«å
¥ããšããŠè¿œå ããã®ã«å€±æããŸãã
+view_titleBar_common_clickToAddFav = ã¯ãªãã¯ãããšããããæ°ã«å
¥ããšããŠè¿œå ããŸã
+view_titleBar_common_clickToRemoveFav = ã¯ãªãã¯ãããšããããæ°ã«å
¥ãããåé€ããŸã
view_titleBar_common_loadTagsFailure = [{0}] ã®ããã®ã¿ã°ãããŒãããã®ã«å€±æããŸãã
+view_titleBar_common_removedFav = ãæ°ã«å
¥ããã [{0}] ãåé€ããŸãã
+view_titleBar_common_removedFavFailure = ãæ°ã«å
¥ããã [{0}] ãåé€ããã®ã«å€±æããŸãã
view_titleBar_common_updateTagsFailure = [{0}] ã®ã¿ã°ã®æŽæ°ã«å€±æããŸãã
view_titleBar_common_updateTagsSuccessful = [{0}] ã®ã¿ã°ãæŽæ°ãããŸãã
+view_titleBar_group_failInfo = ID [{1}] ãæã€ã°ã«ãŒã [{0}] ã«é¢ããäžè¬æ
å ±ãååŸããã®ã«å€±æããŸãã
+view_titleBar_group_summary_collapsedTooltip = ã¯ãªãã¯ãããšãã®ã°ã«ãŒãã®è©³çŽ°æ
å ±ã衚瀺ããŸã
view_titleBar_group_summary_expandedTooltip = ã¯ãªãã¯ãããšãã®ã°ã«ãŒãã®è©³çŽ°ãé ããŸã
view_tree_common_contextMenu_addChartToDashboard = ããã·ã¥ããŒã [{0}] ãžãã£ãŒããè¿œå ããŸã
view_tree_common_contextMenu_editPluginConfiguration = [{0}] ãã©ã°ã€ã³æ§æãç·šéããŸã
@@ -2042,6 +2207,7 @@ view_type_resourceTypes = ãªãœãŒã¹ã¿ã€ã
view_type_typeTreeLoadFailure = ãªãœãŒã¹ã¿ã€ãã®ããªãŒããŒã¿ãããŒãããã®ã«å€±æããŸãã
view_upload_alreadyUploaded = ãã¡ã€ã«ã¯ãã§ã«æŽæ°ãããŠããŸãã
view_upload_bundleDistFile = åæ£ãã¡ã€ã«
+view_upload_error_bundleDistFile = ãã³ãã«é
åžãã¡ã€ã«ã®ã¢ããããŒããšã©ãŒ
view_upload_error_file = ãã¡ã€ã«ã¢ããããŒããšã©ãŒ
view_upload_error_fileName = ãã¡ã€ã«ã¢ããããŒããšã©ãŒ [{0}]
view_upload_error_fileName_2 = [{0}] ã®ã¢ããããŒããšã©ãŒã§ããäžæ£ãªãã¡ã€ã«ãã¹ã調ã¹ãŠãã ããã
@@ -2057,6 +2223,7 @@ view_upload_tooltip_2 = ãã¡ã€ã«ã¢ããããŒãã¯ä»¥å倱æããŠã
view_upload_upload = ã¢ããããŒã
view_upload_uploadFile = ã¢ããããŒããã¡ã€ã«
widget_colorPicker_tooltip = æ°èŠã«ã©ãŒãéžæããããã«ã¯ãªãã¯ããŠãã ãã
+widget_durationItem_inputUnitLessThanTargetUnit = å
¥ååäœã¯ã¿ãŒã²ããåäœãããå°ããã§ã
widget_durationItem_unitTypeNotSupported = åäœã®ã¿ã€ã [{0}] ã¯ãã® DurationItem ã«ãããµããŒããããŸãã
widget_jobTriggerEditor_fieldHelp_repeatDuration = ãã®ãªãã¬ãŒã·ã§ã³ãäœåãå®è¡ãããããŸãã¯æå®ãããæéãçµäºãããŸã§å®è¡ãç¶ããŸã
widget_jobTriggerEditor_fieldHelp_repeatInterval = ãªãã¬ãŒã·ã§ã³ãå®è¡ãããé »åºŠ
@@ -2083,8 +2250,11 @@ widget_jobTriggerEditor_value_nowAndRepeat = çŸåš & ç¹°ãè¿ã
widget_jobTriggerEditor_value_on = on
widget_jobTriggerEditor_value_until = Until
widget_recordEditor_error_invalidViewPath = ç¡å¹ãªãã¥ãŒãã¹: [{0}]
+widget_recordEditor_error_multipleRecords = è€æ°ã¬ã³ãŒããèŠã€ãããŸãã - 1ã€ã ããæåŸ
ãããŠããŸã
+widget_recordEditor_error_noRecords = ã¬ã³ãŒããäžã€ãèŠã€ãããŸããã§ãã - 1ã€ã ããæåŸ
ãããŠããŸã
widget_recordEditor_error_operation = ãªãã¬ãŒã·ã§ã³ã倱æããŸããããšã©ãŒãçºçããŸããã
widget_recordEditor_error_operationInvalidValues = ãªãã¬ãŒã·ã§ã³ã倱æããŸããã - äžã€ä»¥äžã®ãã£ãŒã«ããç¡å¹ãªå€ãæã£ãŠããŸã
+widget_recordEditor_error_permissionCreate = [{0}] ãæ°èŠäœæããããã«å¿
èŠãªæš©éãæã£ãŠããŸãã
widget_recordEditor_error_unsupportedOperationType = ãµããŒãå€ã®ãªãã¬ãŒã·ã§ã³ ã¿ã€ã: [{0}]
widget_recordEditor_info_recordCreatedConcise = {0} ãäœæãããŸããã
widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] ãäœæãããŸããã
@@ -2102,6 +2272,7 @@ widget_resourceFactoryWizard_contentTemplatePrompt = ãããã€æéæ§æã
widget_resourceFactoryWizard_createWizardTitle = ã¿ã€ã [{0}] ã®æ°èŠãªãœãŒã¹ã®äœæ
widget_resourceFactoryWizard_createWizardWindowTitle = ãªãœãŒã¹äœæãŠã£ã¶ãŒã
widget_resourceFactoryWizard_editConfigStepName = ç·šéã®æ§æ
+widget_resourceFactoryWizard_editConfigStep_nothingToDo = ãã®ãªãœãŒã¹ã®ããã«å®çŸ©ãå¿
èŠãªæ§æã¯ååšããŸãã
widget_resourceFactoryWizard_execute1 = æ°èŠãªãœãŒã¹ã®äœæã«å€±æããŸãã - ããã±ãŒãžããŒãžã§ã³ãååšããŸãã
#widget_resourceFactoryWizard_execute2 = Failed to create a new resource. Cannot connect to the agent. This may indicate that the agent is down.
widget_resourceFactoryWizard_failedToDeleteVersion = ãªãœãŒã¹äœæã®ãã£ã³ã»ã«äžã«ããã±ãŒãžããŒãžã§ã³ã®åé€ã«å€±æããŸãã
@@ -2111,6 +2282,7 @@ widget_resourceFactoryWizard_importFailure = æåã§ã®ãªãœãŒã¹ã®ã€ã³
widget_resourceFactoryWizard_importSubmitted = æ°èŠãªãœãŒã¹ã¿ã€ã [{0}] ã®ã€ã³ããŒããªã¯ãšã¹ããéä¿¡ãããŸãã
widget_resourceFactoryWizard_importWizardTitle = ãªãœãŒã¹ã¿ã€ã [{0}] ãã€ã³ããŒã
widget_resourceFactoryWizard_importWizardWindowTitle = ãªãœãŒã¹ã€ã³ããŒããŠã£ã¶ãŒã
+widget_resourceFactoryWizard_infoStepName = ãªãœãŒã¹æ
å ±
widget_resourceFactoryWizard_infoStep_loadFail = ã¢ãŒããã¯ãã£ãŒãå©çšå¯èœã«ããã®ã«å€±æããŸãã
widget_resourceFactoryWizard_namePrompt = æ°èŠãªãœãŒã¹å
#widget_resourceFactoryWizard_nameComment = Not all management plug-ins or their managed resources allow the agent to set the name for a new resource. This value will only be used by agent plug-ins that support the capability. For plug-ins that do not support the capability, the resource may receive a generic or different name when it is discovered.
@@ -2119,6 +2291,7 @@ widget_resourceFactoryWizard_templatePrompt = ã³ãã¯ã·ã§ã³èšå®ãã³ã
##widget_resourceFactoryWizard_timeoutHelp = A timeout duration that if specified will override the default timeout for child resource creation (on the {0} Agent). The default timeout is set to 60 seconds. A higher value may be useful for particularly long create actions, like deployment of a large application. Usually used if a previous attempt suffered a timeout failure. Note that if there is a timeout failure, it is still possible that the resource deployment succeeded. In the event of a timeout you may want to execute a discovery scan before attempting to redeploy the resource.
widget_resourceFactoryWizard_uploadFailure = ãã¡ã€ã«ã¢ããããŒãã®å€±æ
widget_resourceFactoryWizard_uploadFileStepName = ãªãœãŒã¹ã³ã³ãã³ããã¡ã€ã«ã®ã¢ããããŒã
+widget_resourceFactoryWizard_uploadInProgress = ã¢ããããŒãã¯åŠçäžã§ã... 倧ããªãã¡ã€ã«ãé
åžããã«ã¯æ°åãããããšããããŸãã
widget_resourceFactoryWizard_versionPrompt = ããã±ãŒãžããŒãžã§ã³
widget_resourceSelector_groupCategory = ã°ã«ãŒãã«ããŽãª
widget_resourceSelector_pleaseSelectMultipleResource = äžã€ä»¥äžã®ãªãœãŒã¹ãéžæããŠãã ãã
commit b5aab90cae5a238501935cd0798119c4a180667b
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Oct 17 17:29:13 2013 -0400
BZ 1013597 - fix up the help about box
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/AboutModalWindow.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/AboutModalWindow.java
index 014d531..9e37993 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/AboutModalWindow.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/components/AboutModalWindow.java
@@ -20,20 +20,16 @@ package org.rhq.coregui.client.components;
import com.smartgwt.client.Version;
import com.smartgwt.client.types.Alignment;
-import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.types.VerticalAlignment;
-import com.smartgwt.client.widgets.HTMLPane;
-import com.smartgwt.client.widgets.Window;
-import com.smartgwt.client.widgets.events.ClickEvent;
-import com.smartgwt.client.widgets.events.ClickHandler;
-import com.smartgwt.client.widgets.layout.VLayout;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.LinkItem;
+import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import org.rhq.core.domain.common.ProductInfo;
import org.rhq.coregui.client.CoreGUI;
+import org.rhq.coregui.client.ImageManager;
import org.rhq.coregui.client.Messages;
-import org.rhq.coregui.client.util.enhanced.EnhancedHLayout;
-import org.rhq.coregui.client.util.enhanced.EnhancedIButton;
-import org.rhq.coregui.client.util.enhanced.EnhancedVLayout;
+import org.rhq.coregui.client.PopupWindow;
/**
* The "About RHQ" modal window.
@@ -41,75 +37,70 @@ import org.rhq.coregui.client.util.enhanced.EnhancedVLayout;
* @author Ian Springer
* @author Joseph Marques
*/
-public class AboutModalWindow extends Window {
+public class AboutModalWindow extends PopupWindow {
private static final Messages MSG = CoreGUI.getMessages();
- public AboutModalWindow() {
- super();
-
- setWidth(300);
- setHeight(300);
- setOverflow(Overflow.VISIBLE);
- setShowMinimizeButton(false);
- setIsModal(true);
- setShowModalMask(true);
- setCanDragResize(false);
- setCanDragReposition(false);
- setAlign(VerticalAlignment.TOP);
- centerInPage();
+ public AboutModalWindow(ProductInfo productInfo) {
+ super(buildAboutCanvas(productInfo));
+ setTitle(MSG.view_aboutBox_title(productInfo.getFullName()));
+ setHeight(100);
+ setWidth(100);
+ setAutoSize(true);
}
- @Override
- protected void onInit() {
- ProductInfo productInfo = CoreGUI.get().getProductInfo();
+ private static Canvas buildAboutCanvas(ProductInfo productInfo) {
- setTitle(MSG.view_aboutBox_title(productInfo.getFullName()));
+ DynamicForm form = new DynamicForm();
+ form.setPadding(10);
+
+ StaticTextItem logoItem = new StaticTextItem("logo");
+ logoItem.setValue("<img src=\"" + ImageManager.getFullImagePath("header/rhq_logo_28px.png") + "\"/>");
+ logoItem.setHeight(28);
+ logoItem.setShowTitle(false);
+ logoItem.setColSpan(2);
+ logoItem.setWrap(false);
+ logoItem.setWrapTitle(false);
+ logoItem.setAlign(Alignment.CENTER);
+
+ LinkItem productUrl = new LinkItem("url");
+ productUrl.setValue(productInfo.getUrl());
+ productUrl.setLinkTitle(productInfo.getUrl());
+ productUrl.setTitle(productInfo.getFullName());
+ productUrl.setTarget("_blank");
+ productUrl.setWrap(false);
+ productUrl.setWrapTitle(false);
+
+ StaticTextItem version = new StaticTextItem("version", MSG.view_aboutBox_version());
+ version.setValue(productInfo.getVersion());
+ version.setWrap(false);
+ version.setWrapTitle(false);
+
+ StaticTextItem buildNumber = new StaticTextItem("buildnumber", MSG.view_aboutBox_buildNumber());
+ buildNumber.setValue(productInfo.getBuildNumber());
+ buildNumber.setWrap(false);
+ buildNumber.setWrapTitle(false);
+
+ StaticTextItem gwtVersion = new StaticTextItem("gwtversion", "GWT " + MSG.common_title_version());
+ gwtVersion.setValue(MSG.common_buildInfo_gwtVersion());
+ gwtVersion.setWrap(false);
+ gwtVersion.setWrapTitle(false);
+
+ StaticTextItem smartGwtVersion = new StaticTextItem("smartgwtversion", "SmartGWT " + MSG.common_title_version());
+ smartGwtVersion.setValue(Version.getVersion());
+ smartGwtVersion.setWrap(false);
+ smartGwtVersion.setWrapTitle(false);
+
+ StaticTextItem allRightsReserved = new StaticTextItem();
+ allRightsReserved.setValue(MSG.view_aboutBox_allRightsReserved());
+ allRightsReserved.setShowTitle(false);
+ allRightsReserved.setColSpan(2);
+ allRightsReserved.setWrap(false);
+ allRightsReserved.setWrapTitle(false);
+ allRightsReserved.setAlign(Alignment.CENTER);
- EnhancedVLayout contentPane = new EnhancedVLayout();
- contentPane.setPadding(10);
-
- // TODO (ips, 09/06/11): Convert this raw HTML to SmartGWT widgets.
- HTMLPane htmlPane = new HTMLPane();
- String html = "<span class=\"DisplaySubhead\">\n" + " <a href=\"" + productInfo.getUrl() + "\" title=\""
- + productInfo.getFullName() + " " + productInfo.getUrl() + "\" target=\"_blank\">"
- + productInfo.getFullName() + "</a>\n" + "</span><br/>\n" + "<span class=\"DisplayLabel\">"
- + MSG.view_aboutBox_version() + " " + productInfo.getVersion() + "</span><br/>\n"
- + "<span class=\"DisplayLabel\">" + MSG.view_aboutBox_buildNumber() + " " + productInfo.getBuildNumber()
- + "</span><p/>\n" + "<span class=\"DisplayLabel\">GWT " + MSG.common_title_version() + ": "
- + MSG.common_buildInfo_gwtVersion() + "</span><br/>\n" + "<span class=\"DisplayLabel\">SmartGWT "
- + MSG.common_title_version() + ": " + Version.getVersion() + "</span><br/>\n"
- + "<p><a href=\"http://jboss.org/\" title=\"JBoss " + MSG.view_aboutBox_homepage() + "\">\n"
- + " <img height=\"55\" alt=\"" + MSG.view_aboutBox_jbossByRedHat()
- + "\" src=\"/images/jboss_logo.png\">\n" + "</a></p>\n" + "<div style=\"top-margin: 10px\">"
- + MSG.view_aboutBox_allRightsReserved() + "</div>\n";
- htmlPane.setContents(html);
- htmlPane.setHeight(220);
- contentPane.addMember(htmlPane);
-
- EnhancedHLayout buttonBar = new EnhancedHLayout();
- buttonBar.setHeight(30);
- buttonBar.setAlign(Alignment.RIGHT);
-
- EnhancedIButton closeButton = new EnhancedIButton(MSG.common_button_close());
- closeButton.setShowRollOver(true);
- closeButton.setShowDown(true);
- closeButton.setWidth(60);
- closeButton.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent event) {
- hide();
- }
- });
- buttonBar.addMember(closeButton);
-
- VLayout bottom = new VLayout();
- bottom.setAlign(VerticalAlignment.BOTTOM);
- bottom.addMember(buttonBar);
- contentPane.addMember(bottom);
-
- // NOTE: Since this is a subclass of Window, we MUST use addItem(), rather than addMember() from the
- // Layout class.
- addItem(contentPane);
+ form.setItems(logoItem, productUrl, version, buildNumber, gwtVersion, smartGwtVersion, allRightsReserved);
+ return form;
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/help/HelpView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/help/HelpView.java
index 11b3731..42bc376 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/help/HelpView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/help/HelpView.java
@@ -95,8 +95,7 @@ public class HelpView extends AbstractSectionedLeftNavigationView {
NavigationItem aboutItem = new NavigationItem(new ViewName("AboutBox", MSG.view_help_section_product_about()),
"[SKIN]/../actions/help.png", new ViewFactory() {
public Canvas createView() {
- final AboutModalWindow aboutModalWindow = new AboutModalWindow();
- aboutModalWindow.setTitle(MSG.view_aboutBox_title(productInfo.getFullName()));
+ final AboutModalWindow aboutModalWindow = new AboutModalWindow(productInfo);
aboutModalWindow.show();
return aboutModalWindow;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java
index 6d6fe59..93263d8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java
@@ -36,6 +36,8 @@ import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
+import org.rhq.core.domain.common.ProductInfo;
+import org.rhq.coregui.client.CoreGUI;
import org.rhq.coregui.client.UserSessionManager;
import org.rhq.coregui.client.admin.AdministrationView;
import org.rhq.coregui.client.bundle.BundleTopView;
@@ -98,7 +100,8 @@ public class MenuBarView extends EnhancedVLayout {
}
private Canvas getLogoSection() {
- final AboutModalWindow aboutModalWindow = new AboutModalWindow();
+ final ProductInfo productInfo = CoreGUI.get().getProductInfo();
+ final AboutModalWindow aboutModalWindow = new AboutModalWindow(productInfo);
HLayout logoSection = new HLayout();
logoSection.setOverflow(Overflow.VISIBLE);
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
index 20cf77f..b2666e1 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
@@ -486,12 +486,12 @@ util_userSession_loadFailSubject = UserSessionManager: Failed to load user Subje
util_userSession_logoutFail = Failed to logout.
util_widgetsField_unlimited = Unlimited
view_aboutBox_allRightsReserved = All Rights Reserved.
-view_aboutBox_buildNumber = Build Number:
+view_aboutBox_buildNumber = Build Number
view_aboutBox_failedToLoad = Failed to load product information.
view_aboutBox_homepage = Homepage
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = About {0}
-view_aboutBox_version = Version:
+view_aboutBox_version = Version
view_adminConfig_agentPlugins = Agent Plugins
view_adminConfig_alertDefTemplates = Alert Definition Templates
view_adminConfig_downloads = Downloads
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
index ac09e5e..52538f1 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
@@ -510,12 +510,12 @@ util_userSession_loadFailSubject = UserSessionManager: NepodaÅilo se naÄÃst i
util_userSession_logoutFail = NepodaÅilo se odhlásit.
util_widgetsField_unlimited = NeomezenÄ
view_aboutBox_allRightsReserved = Všechna práva vyhrazena.
-view_aboutBox_buildNumber = ÄÃslo buildu:
+view_aboutBox_buildNumber = ÄÃslo buildu
view_aboutBox_failedToLoad = NepodaÅilo se naÄÃst informace o produktu.
view_aboutBox_homepage = Hlavnà stránka
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = O aplikaci {0}
-view_aboutBox_version = Verze:
+view_aboutBox_version = Verze
view_adminConfig_agentPlugins = Zásuvné moduly agentů
view_adminConfig_alertDefTemplates = Å ablony pro definice vÃœstrah
view_adminConfig_downloads = StaÅŸeno
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
index 8b356bf..dd6d32e 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
@@ -484,12 +484,12 @@ util_userSession_loadFailSubject = UserSessionManager: Konnte das 'Subject' des
util_userSession_logoutFail = Ausloggen fehlgeschlagen
util_widgetsField_unlimited = UnbeschrÀnkt
view_aboutBox_allRightsReserved = Alle Rechte vorbehalten
-view_aboutBox_buildNumber = Build-Nummer:
+view_aboutBox_buildNumber = Build-Nummer
view_aboutBox_failedToLoad = Kann die Produktinformation nicht laden
view_aboutBox_homepage = Homepage
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = Ãber {0}
-view_aboutBox_version = Version:
+view_aboutBox_version = Version
view_adminConfig_agentPlugins = Agent Plugins
view_adminConfig_alertDefTemplates = Vorlagen fÃŒr Alarmdefinitionen
view_adminConfig_downloads = Downloads
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
index 2872500..3519b70 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
@@ -59,12 +59,10 @@ common_button_create_child = åãäœæ
common_button_delete = åé€
common_button_delete_all = ãã¹ãŠãåé€
common_button_disable = ç¡å¹
-common_button_dump_sysInfo_to_log = ãã³ãã·ã¹ãã æ
å ±
common_button_edit = ç·šé
common_button_enable = æå¹
common_button_execute = å®è¡
common_button_finish = å®äº
-common_button_fixedWidth = åºå®å¹
common_button_ignore = ç¡èŠ
common_button_import = ã€ã³ããŒã
common_button_new = æ°èŠ
@@ -113,8 +111,6 @@ common_label_day = æ¥
common_label_error = ãšã©ãŒ
common_label_filters = ãã£ã«ã¿ãŒ
common_label_hour = æé
-common_label_item = é
ç®
-common_label_items = é
ç®
common_label_link = ãªã³ã¯
common_label_month = æ
common_label_none = ãªã
@@ -135,15 +131,12 @@ common_msg_deleteConfirm = éžæããã {0} ãåé€ããŠãããããã§
common_msg_deleted = {0} {1} ãåé€ãããŸããã
common_msg_emphasizedNotePrefix = 泚æ:
common_msg_loading = ããŒãäž...
-common_msg_noItemsToShow = 衚瀺ããé
ç®ã¯ãããŸãã
-common_msg_notYetImplemented = å®è£
ãããŠããŸãã
common_msg_see_more = 詳现...
common_msg_step_x_of_y = ã¹ããã {1} äž {0} çªã
##common_msg_typeToFilterResults = å®è£
ãããŠããŸãã
common_severity_debug = ãããã°
common_severity_error = ãšã©ãŒ
common_severity_fatal = èŽåœç
-common_severity_info = æ
å ±
common_severity_warn = èŠå
##common_status_attention = æå
##common_status_avail_disabled = DISABLED
@@ -171,7 +164,6 @@ common_title_add_portlet = ããŒãã¬ããè¿œå
common_title_address = ã¢ãã¬ã¹
common_title_alerts = ã¢ã©ãŒã
common_title_alerts_range = ã¢ã©ãŒãã®ç¯å²
-common_title_ancestry = å
ç¥
common_title_availability = ã¢ãã€ã©ããªãã£
common_title_available_resources = å©çšå¯èœãªãœãŒã¹
common_title_average_metrics = æ¯åã®å¹³åã¡ããªãã¯ã¹
@@ -186,7 +178,6 @@ common_title_compare_metrics = ã¡ããªãã¯ã¹ã®æ¯èŒ
common_title_compatibleGroups = äºæã°ã«ãŒã
common_title_compatibleGroups_total = äºæã°ã«ãŒãã®åèš
common_title_component_errors = ã³ã³ããŒãã³ããšã©ãŒ
-common_title_config_update_status = æŽæ°ç¶æ
common_title_configuration = æ§æ
common_title_count = æ°
common_title_createTime = äœææå»
@@ -209,7 +200,6 @@ common_title_end = çµäº
common_title_generalProp = äžè¬ããããã£
common_title_group = ã°ã«ãŒã
common_title_group_def_total = ã°ã«ãŒãå®çŸ©ã®åèš
-common_title_group_member_health = ã°ã«ãŒãã¡ã³ããŒã®ç¶æ
common_title_groups = ã°ã«ãŒã
##common_title_groupsFound = ã°ã«ãŒã
common_title_help = ãã«ã
@@ -238,7 +228,6 @@ common_title_new_dashboard = æ°èŠããã·ã¥ããŒã
common_title_numeric_metrics = æ°å€ã¡ããªãã¯ã¹
common_title_numeric_type = æ°å€å
common_title_operation = ãªãã¬ãŒã·ã§ã³
-common_title_operation_status = ãªãã¬ãŒã·ã§ã³ã®ç¶æ
common_title_operations = ãªãã¬ãŒã·ã§ã³
common_title_operations_range = ãªãã¬ãŒã·ã§ã³ã®ç¯å²
##common_title_over = Over
@@ -364,7 +353,6 @@ dataSource_configurationHistory_updateType = æŽæ°ã¿ã€ã
dataSource_configurationHistory_updateType_group = ã°ã«ãŒã
dataSource_configurationHistory_updateType_individual = å人
dataSource_definitions_loadFailed = ã¡ããªãã¯å®çŸ©ã®ããŒãã«å€±æããŸãã
-dataSource_measurementOob_error_fetchFailure = ç¯å²å€æ
å ±ã®æž¬å®ã®ããŒãã«å€±æããŸãã
dataSource_measurementOob_field_factor = ç¯å²å€ä¿æ° (%)
dataSource_measurementOob_field_formattedBaseband = ãã³ã
dataSource_measurementOob_field_formattedOutlier = ã¢ãŠãã©ã€ããŒ
@@ -375,7 +363,6 @@ dataSource_operationHistory_error_fetchFailure = ãªãã¬ãŒã·ã§ã³å±¥æŽã®
dataSource_operationHistory_field_createdTime = äœææå»
dataSource_operationHistory_field_operationName = ãªãã¬ãŒã·ã§ã³å
dataSource_operationHistory_field_startedTime = éå§æå»
-dataSource_operationHistory_field_subject = èŠæ±è
dataSource_operationSchedule_field_description = ããŒã
dataSource_operationSchedule_field_id = ã¹ã±ãžã¥ãŒã«ID
dataSource_operationSchedule_field_nextFireTime = 次åã®å®è¡
@@ -405,10 +392,8 @@ dataSource_resources_field_discoveryTime = çºèŠæå»
dataSource_resources_field_importTime = ã€ã³ããŒãæå»
dataSource_resources_field_key = ããŒ
dataSource_resources_field_lastModifiedTime = æçµæŽæ°æå»
-dataSource_resources_field_lastModifier = æçµæŽæ°è
dataSource_resources_field_location = å Žæ
dataSource_rpc_error_transformRequestFailure = {0} ãªã¯ãšã¹ãã®åŠçäžã«ããŒã¿ãœãŒã¹ã§å€±æããŸãã
-dataSource_rpc_error_unsupportedArrayFilterType = ã¿ã€ã {0} ã®é
åãã£ã«ã¿ã®åŒãæž¡ãã¯ãµããŒãããŠããŸãã
dataSource_rpc_error_unsupportedEnumType = RPCDataSource.getEnumArray(Class)ãž enum {0} ã®ããã®é©åãªã³ãŒããããã¯ãè¿œå ããŠãã ãã
dataSource_rpc_no = ããã
dataSource_rpc_yes = ã¯ã
@@ -466,18 +451,13 @@ datasource_templateSchedules_enabled_failed = ID [{2}] ãæã€ãªãœãŒã¹ã¿
datasource_templateSchedules_updated = éžæãããã¡ããªã㯠[{0}] ã®åéééãæŽæ°ããŸãã
datasource_templateSchedules_updated_detail = ID [{2}] ãæã€ãªãœãŒã¹ã¿ã€ãã®ããã«ããã©ã«ãã§ã¡ããªã㯠[{0}] [{1}] ã®åéééã [{3}] ç§ã«èšå®ãããŸãã
datasource_templateSchedules_updated_failed = ID [{2}] ãæã€ãªãœãŒã¹ã¿ã€ãã®ããã«ããã©ã«ãã§ã¡ããªã㯠[{0}] [{1}] ã®åéééã [{3}] ç§ã«èšå®ããã®ã«å€±æããŸãã
-favorites = ãæ°ã«å
¥ã
-favorites_groups = ãæ°ã«å
¥ãã°ã«ãŒã
favorites_recentlyViewed = æè¿é²èŠ§ãã
-favorites_resources = ãæ°ã«å
¥ããªãœãŒã¹
filter_from_date = éå§
filter_to_date = çµäº
##group_tree_groupOfResourceType = Group of [{0}]
group_tree_partialClusterTooltip = {1} ã®äžã® {0} ã°ã«ãŒãã¡ã³ããŒã ''{2}'' ãªãœãŒã¹ãæã£ãŠããŸã
-util_ancestry_parentAncestry = 芪ã®å
ç¥ :
util_disambiguationReportDecorator_pluginSuffix = ({0} ãã©ã°ã€ã³)
util_errorHandler_nullException = äŸå€ã¯ null ã§ãã
-util_monitoringRequestCallback_error_checkServerStatusFailure = ãã°ã€ã³ã®ç¶æ
ã決å®ã§ããŸãã - ãµãŒããŒã®ç¶æ
ã調ã¹ãŠãã ãã
util_rpcManager_activeRequests = {0} ã¢ã¯ãã£ããªã¯ãšã¹ã
##util_userPerm_loadFailBundle = Failed to load your permissions for Bundle with id [{0}] - none granted.
util_userPerm_loadFailGlobal = ã°ããŒãã«ãªæš©éãããŒãããã®ã«å€±æããŸãã - äœãèš±å¯ãããŸãã
@@ -487,12 +467,11 @@ util_userSession_loadFailSubject = UserSessionManager: ãŠãŒã¶ãŒ Subject ã®
util_userSession_logoutFail = ãã°ã¢ãŠãã«å€±æããŸãã
util_widgetsField_unlimited = ç¡å¶é
view_aboutBox_allRightsReserved = All Rights Reserved.
-view_aboutBox_buildNumber = ãã«ãçªå·:
-view_aboutBox_failedToLoad = ãããã¯ãæ
å ±ã®ããŒãã«å€±æããŸãã
+view_aboutBox_buildNumber = ãã«ãçªå·
view_aboutBox_homepage = ããŒã ããŒãž
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = {0}ã«ã€ããŠ
-view_aboutBox_version = ããŒãžã§ã³:
+view_aboutBox_version = ããŒãžã§ã³
view_adminConfig_agentPlugins = ãšãŒãžã§ã³ããã©ã°ã€ã³
view_adminConfig_alertDefTemplates = ãšãŒãžã§ã³ãå®çŸ©ãã³ãã¬ãŒã
view_adminConfig_downloads = ããŠã³ããŒã
@@ -741,27 +720,19 @@ view_admin_downloads_agentDownload = ãšãŒãžã§ã³ãã®ããŠã³ããŒã
view_admin_downloads_agent_buildNumber = ãšãŒãžã§ã³ããã«ã
view_admin_downloads_agent_help = <p> ãã㯠{0} Agentã®æŽæ°ãã€ããªJARãã¡ã€ã«ã§ãããã®JARãã¡ã€ã«ã®ç®çã¯ãŠãŒã¶ãŒããšãŒãžã§ã³ãããŸã ååšããªããã·ã³äžã«æ°ãããšãŒãžã§ã³ããã€ã³ã¹ããŒã«ã§ããããã«ããããšãšããã§ã«ã€ã³ã¹ããŒã«æžã¿ã®ãšãŒãžã§ã³ããæŽæ°ã§ããããã«ããããã§ãã詳现ã¯ããã®ãšãŒãžã§ã³ãããŠã³ããŒãJARã§æ¬¡ã®ããã«--helpã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãã€ããŠå®è¡ããŠãã ããã<br/> <b>java -jar <agent-download.jar> --help</b> </p> <h3>ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«</h3> <p> <b>java -jar <agent-download.jar> --install[=<æ°ãããšãŒãžã§ã³ããã£ã¬ã¯ããª>]</b><br/> ãã®ã³ãã³ãã¯æ°ãããšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããŸããããæ°ãããã£ã¬ã¯ããªãæå®ããªããã°ãããã©ã«ãã¯"."ãšãªããŸãã</p> <h3>ãšãŒãžã§ã³ãã®
æŽæ°</h3> <p> <b>java -jar <agent-download.jar> --update[=<å€ããšãŒãžã§ã³ããã£ã¬ã¯ããª>]</b><br/> ããã¯ãã§ã«ã€ã³ã¹ããŒã«ãããæ¢åã®ãšãŒãžã§ã³ããæŽæ°ããŸããããå€ããæ¢åã®ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããããã£ã¬ã¯ããªãæå®ããªãã£ããªãã"rhq-agent"ãä»®å®ãããŸãã</p>
view_admin_downloads_agent_link_value = ãšãŒãžã§ã³ã {0} ({1}) ã®ããŠã³ããŒã
-view_admin_downloads_agent_loadError = ãšãŒãžã§ã³ãããŒãžã§ã³æ
å ±ãååŸã§ããŸãã
view_admin_downloads_agent_md5 = ãšãŒãžã§ã³ã MD5
view_admin_downloads_agent_version = ãšãŒãžã§ã³ãããŒãžã§ã³
view_admin_downloads_bundleDownload = ãã³ãã«ãããã€ã€ã®ããŠã³ããŒã
-view_admin_downloads_bundle_help = <p> ããã¯ãã³ãã«ãããã€ã€ããŒã«ã§ã{0}ãã³ãã«ã®éçºè
ãšããã±ãŒãžéçºè
ã«ãã£ãŠäœ¿ãããŸãããã®ã¹ã¿ã³ãã¢ãã³ããŒã«ã䜿ããšãã³ãã«ãã³ã³ãœãŒã«ããã®ã¬ã·ãããã¹ãã§ããããã«ããŸãã</p>
view_admin_downloads_bundle_link_value = ãã³ãã«ãããã€ã€ãŒ {0} ãããŠã³ããŒã
-view_admin_downloads_bundle_loadError = ãã³ãã«ãããã€ã€ãŒæ
å ±ãååŸã§ããŸãã
view_admin_downloads_cliAlertScriptsDownload = CLIã¢ã©ãŒãã¹ã¯ãªããã®ããŠã³ããŒã
-view_admin_downloads_cliAlertScripts_help = CLIã¢ã©ãŒãã¹ã¯ãªããã¯ã¹ã¯ãªããåãããã¢ã©ãŒãéç¥ãäœæããããã«äœ¿ãããšãã§ããäœææžã¿ã®ã¹ã¯ãªããã§ããéåžžããã®ã¹ã¯ãªããã¯ç¹å®ã®ã¢ã©ãŒãå®çŸ©ã«ã€ããŠã®éç¥ãšããŠäœ¿ãããã«ã¯åãã£ãŠåŸ®èª¿æŽãããå¿
èŠããããŸãã
view_admin_downloads_cliAlertScripts_loadError = ããŠã³ããŒãããããã«å©çšå¯èœãªCLIã¢ã©ãŒãã¹ã¯ãªããã«ã¢ã¯ã»ã¹ããããšãã§ããŸãã
view_admin_downloads_cliAlertScripts_none = ããŠã³ããŒãããããã«å©çšå¯èœãªCLIã¹ã¯ãªãããäžã€ãååšããŸãã
view_admin_downloads_cliDownload = ã³ãã³ãã©ã€ã³ã¯ã©ã€ã¢ã³ãã®ããŠã³ããŒã
view_admin_downloads_cli_buildNumber = CLIãã«ã
-view_admin_downloads_cli_help = <p> ããã¯ã³ãã³ãã©ã€ã³ããŒã«ã§ãCLIãšããŠç¥ãããŠãããã®ã§ããã³ã³ãœãŒã«ããå®è¡ããã¹ã¿ã³ãã¢ãã³ããŒã«ã§ã{0}ãµãŒããŒã«å¯ŸããŠã³ãã³ãã©ã€ã³ã€ã³ã¿ãã§ãŒã¹ãæäŸããŸããèªååãããã¿ã¹ã¯ãå®è¡ããããã«CLIãrunã¹ã¯ãªãããä»ããŠã³ãã³ããåŒã³åºãããšãå¯èœã§ããCLIã®ã€ã³ã¹ããŒã«æ¹æ³ãšäœ¿ãæ¹ã«ã€ããŠã®è©³çŽ°æ
å ±ã¯ããã¥ã¡ã³ããã芧ãã ããã</p>
view_admin_downloads_cli_link_value = CLI {0} ({1}) ãããŠã³ããŒã
-view_admin_downloads_cli_loadError = CLIããŒãžã§ã³æ
å ±ãååŸã§ããŸãã
view_admin_downloads_cli_md5 = CLI MD5
view_admin_downloads_cli_version = CLIããŒãžã§ã³
view_admin_downloads_connectorsDownload = ã³ãã¯ã¿ã®ããŠã³ããŒã
-view_admin_downloads_connectors_help = ã³ãã¯ã¿ãŒã¯è£œåã{0}ã«ãã£ãŠç®¡çå¯èœã§ããããã«å¿
èŠãšãªããœãããŠã§ã¢ã§ããRHQãšãŒãžã§ã³ããéä¿¡ã§ããããã«ã管ç補åã«ã³ãã¯ã¿ãŒãã€ã³ã¹ããŒã«ããŸãã詳现ã¯ããã¥ã¡ã³ããã芧ãã ããã
-view_admin_downloads_connectors_loadError = ã³ãã¯ã¿ãŒæ
å ±ãååŸã§ããŸãã
view_admin_downloads_connectors_none = ããŠã³ããŒãã®ããã®ã³ãã¯ã¿ãŒãèŠã€ãããŸãã
##view_admin_downloads_scriptModulesDownload = Script Modules Download
##view_admin_downloads_scriptModules_help = <p> Script modules are reusable components provided by RHQ to be used in your scripts (either alert scripts or CLI scripts). You can access them by using the "rhq://downloads/<module-name-without-file-extension>" URI in your scripting language of choice (i.e. in javascript, you would use the "require" function).</p>
@@ -787,7 +758,6 @@ view_admin_plugins_enabledServerPluginsFailure = ãµãŒããŒãã©ã°ã€ã³ã®
view_admin_plugins_hideDeleted = åé€æžã¿ãé ã
view_admin_plugins_hideUndeployed = ã¢ã³ãããã€ãé ã
view_admin_plugins_loadFailure = ãã©ã°ã€ã³ããŒã¿ãããŒãããã®ã«å€±æããŸãã
-view_admin_plugins_purgedAgentPlugins = ãšãŒãžã§ã³ããã©ã°ã€ã³ {0} ãããŒãžããããã®æºåãããŠããŸããããã¯æ°åããããããããŸããããªããªãããã®ãã©ã°ã€ã³ããã®ãã¹ãŠã®ã¿ã€ãå®çŸ©ã¯æåã«ã·ã¹ãã ããããŒãžãããªããã°ãªããªãããã§ãããããã®ãã©ã°ã€ã³ã¯ããŒãžããããŸã§ã®éãã®ããŒãžã§èŠãç¶ããŸããããŒãžãå®è¡äžã¯ãã®ãã©ã°ã€ã³ãåã€ã³ã¹ããŒã«ããŠã¯ãããªãããšã«çæããŠãã ããããããªããã°ã倱æããããšã§ãããããããã£ãŠããã®ããŒãžãå®äºãããŸã§ã·ã¹ãã ãžãã©ã°ã€ã³ã®åã€ã³ã¹ããŒã«ããåŸ
ã¡ãã ããã
view_admin_plugins_purgedAgentPluginsFailure = ãšãŒãžã§ã³ããã©ã°ã€ã³ã®ããŒãžã«å€±æããŸãã
view_admin_plugins_purgedServerPlugins = ããŒãžããããµãŒããŒãã©ã°ã€ã³: {0}.
view_admin_plugins_purgedServerPluginsFailure = ãµãŒããŒãã©ã°ã€ã³ã®ããŒãžã«å€±æããŸãã
@@ -800,11 +770,9 @@ view_admin_plugins_scanComplete = æŽæ°ããããã©ã°ã€ã³ã®ããã®ã¹
view_admin_plugins_scanFailure = æŽæ°ããããã©ã°ã€ã³ã®ããã®ã¹ãã£ã³ã倱æããŸãã
view_admin_plugins_server = ãµãŒããŒ
view_admin_plugins_serverConfig = ãã©ã°ã€ã³æ§æ
-view_admin_plugins_serverConfig_badSettings = æ£ããèšå®ãå
¥åããŠãã ãã
view_admin_plugins_serverConfig_saveFailed = èšå®ã®ä¿åã«å€±æããŸãã
view_admin_plugins_serverConfig_settingsSaved = èšå®ãä¿åãããŸãã
view_admin_plugins_serverControls = ã³ã³ãããŒã«
-view_admin_plugins_serverControls_badParams = æ£ãããã©ã¡ãŒã¿ãŒãå
¥åããŠãã ãã
view_admin_plugins_serverControls_clickForError = ãšã©ãŒã¡ãã»ãŒãžãã¯ãªãã¯ããŠãã ãã
view_admin_plugins_serverControls_invokeFailure = ã³ã³ãããŒã«ã®åŒã³åºãã«å€±æããŸãã
view_admin_plugins_serverControls_name = ã³ã³ãããŒã«
@@ -842,7 +810,6 @@ view_admin_systemSettings_DriftFilePurge_desc = ããã¯ãšã³ãããããŒ
view_admin_systemSettings_DriftFilePurge_name = æªäœ¿çšããªãããã¡ã€ã«ã®åé€
view_admin_systemSettings_EnableAgentAutoUpdate_desc = ãµãŒããŒããšãŒãžã§ã³ããèªåæŽæ°ããããšãèš±ããã©ããã決å®ããŸãããããããç¡å¹ã«ãããŠããã®ã§ããã°ããµãŒããŒãããšãŒãžã§ã³ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãããããšã¯ã§ããŸããã
view_admin_systemSettings_EnableAgentAutoUpdate_name = ãšãŒãžã§ã³ãã®èªåæŽæ°ãæå¹ã«ãã
-view_admin_systemSettings_EnableDebugMode_desc = æå¹ã§ããã°ããµãŒããŒã¯ãããã°ã¢ãŒãã«å
¥ããŸã
view_admin_systemSettings_EnableDebugMode_name = ãããã°ã¢ãŒããæå¹ã«ãã
view_admin_systemSettings_EnableExperimentalFeatures_desc = æå¹ã§ããã°ãçŸåšã®è£œåã«å«ãŸããä»»æã®å®éšçæ©èœãå©çšå¯èœã«ãªããŸã
view_admin_systemSettings_EnableExperimentalFeatures_name = å®éšçæ©èœãæå¹ã«ãã
@@ -852,7 +819,6 @@ view_admin_systemSettings_JAASProvider_desc = ãŠãŒã¶ãŒIDã決å®ããã®
view_admin_systemSettings_JAASProvider_name = LDAPã®æå¹å
view_admin_systemSettings_LDAPBaseDN_desc = ãŠãŒã¶èªèšŒã®éã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããæ€çŽ¢ãããã£ã¬ã¯ããªããªãŒã®ããŒã¹ãäŸ: ou=People,dc=redhat,dc=com
view_admin_systemSettings_LDAPBaseDN_name = ãµãŒãããŒã¹
-view_admin_systemSettings_LDAPBindDN_desc = LDAPãŠãŒã¶ãŒããŒã¿ããŒã¹ã®åãåããæã«LDAPãµãŒããŒã«æ¥ç¶ããããã®ãŠãŒã¶ãŒåãããã¯æ®éã¯ãããŒãžã£ãŒãŠãŒã¶ãŒã®å®å
šãªLDAPèå¥å (DN) ã«ãªããäŸ: cn=Manager,dc=redhat,dc=com
view_admin_systemSettings_LDAPBindDN_name = ãŠãŒã¶ãŒå
view_admin_systemSettings_LDAPBindPW_desc = LDAPãŠãŒã¶ãŒããŒã¿ããŒã¹ã®åãåããæã«LDAPãµãŒããŒã«æ¥ç¶ããããã®ãŠãŒã¶ãŒã®ã¯ã¬ãã³ã·ã£ã«
view_admin_systemSettings_LDAPBindPW_name = ãã¹ã¯ãŒã
@@ -882,7 +848,6 @@ view_admin_systemSettings_fixBeforeSaving = ä¿ååã«ç¡å¹ãªå€ãä¿®æ£ã
view_admin_systemSettings_group_baseline = èªåããŒã¹ã©ã€ã³æ§æããããã£
view_admin_systemSettings_group_dataMgr = ããŒã¿ãããŒãžã£ãŒæ§æããããã£
view_admin_systemSettings_group_drift = ããªãããµãŒããŒæ§æèšå®
-view_admin_systemSettings_group_general = å
šäœæ§æããããã£
view_admin_systemSettings_group_ldap = LDAPæ§æããããã£
view_admin_systemSettings_saveFailure = ã·ã¹ãã èšå®ã®ä¿åã«å€±æããŸãã
view_admin_systemSettings_savedSettings = ã·ã¹ãã ããããã£ã®ä¿åã«æåããŸãã
@@ -901,7 +866,6 @@ view_admin_systemSettings_serverDetails_tz = ãµãŒããŒã¿ã€ã ãŸãŒã³
view_admin_topology = ããããžãŒ
view_alert_common_tab_conditions = æ¡ä»¶
view_alert_common_tab_conditions_expression = ã¢ã©ãŒãçºç«
-view_alert_common_tab_conditions_expression_tooltip = å
šäœã®æ¡ä»¶ãtrueã§ãããšèªããããããã«ãæ¡ä»¶ã®äžéšãŸãã¯ãã¹ãŠãtrueãšè©äŸ¡ãããªããã°ãªããªããã©ãã決å®ããŸã
##view_alert_common_tab_conditions_modalEdit_title = Edit Condition
view_alert_common_tab_conditions_modal_title = æ¡ä»¶è¿œå
view_alert_common_tab_conditions_recovery_disabled = ãã®ã¢ã©ãŒãã¯ãã®ã¢ã©ãŒãå®çŸ©ãç¡å¹åãããåå ãšãªããŸãã
@@ -923,7 +887,6 @@ view_alert_common_tab_conditions_type_metric_calltime_change_verb = å°ãªããš
view_alert_common_tab_conditions_type_metric_calltime_delta_grows = äžæ
view_alert_common_tab_conditions_type_metric_calltime_delta_other = å€å
view_alert_common_tab_conditions_type_metric_calltime_delta_shrinks = çž®å°
-view_alert_common_tab_conditions_type_metric_calltime_destination = åŒã³åºãã®å®å
ãäžèŽ
view_alert_common_tab_conditions_type_metric_calltime_threshold = åŒã³åºãæéã®éŸå€
view_alert_common_tab_conditions_type_metric_change = ã¡ããªãã¯å€ã®å€æ
view_alert_common_tab_conditions_type_metric_range_inside_exclusive = ã¡ããªãã¯å€ã®ç¯å² [{0}] : [{1}] ãš [{2}] ã®é (å¢çå€ãå«ãŸãªã)
@@ -940,7 +903,6 @@ view_alert_common_tab_dampening = æžè¡°
view_alert_common_tab_dampening_category_consecutive_count = é£ç¶
view_alert_common_tab_dampening_category_consecutive_count_tooltip = æ¡ä»¶èšå®ãXåé£ç¶ããŠtrueã§ããã°ã¢ã©ãŒããåŒãèµ·ããããŸãã
view_alert_common_tab_dampening_category_duration_count = æééé
-view_alert_common_tab_dampening_category_duration_count_tooltip = ã¢ã©ãŒãã¯äžããããæéå
ã§æ¡ä»¶èšå®ãtrueã§ããããšãXåçºçãããã³ã«åŒãèµ·ããããŸã
view_alert_common_tab_dampening_category_none = ãªã
view_alert_common_tab_dampening_category_none_tooltip = æžè¡°ã¯ç¡å¹åãããŠããŸãããã®æ¡ä»¶ãtrueã«ãªããã³ã«ãã¢ã©ãŒããåŒãèµ·ããããŸãã
view_alert_common_tab_dampening_category_partial_count = çŽè¿ã®Nåã®è©äŸ¡
@@ -948,7 +910,6 @@ view_alert_common_tab_dampening_category_partial_count_tooltip = ã¢ã©ãŒãã¯
view_alert_common_tab_dampening_consecutive_occurrences_label = çºç
view_alert_common_tab_dampening_consecutive_occurrences_label_tooltip = ã¢ã©ãŒããåŒãèµ·ããããåã«æ¡ä»¶èšå®ãé£ç¶ããŠtrueã§ãªãããã°ãªããªãåæ°
view_alert_common_tab_dampening_duration_occurrences_label = çºç
-view_alert_common_tab_dampening_duration_occurrences_label_tooltip = ã¢ã©ãŒããåŒãèµ·ããããåã«äžããããæéå
ã§æ¡ä»¶èšå®ãé£ç¶ããŠtrueã§ãªãããã°ãªããªãåæ°
view_alert_common_tab_dampening_duration_period_label = æééé
view_alert_common_tab_dampening_duration_period_label_tooltip = äžããããçºçåæ°ãtrueã§ãããã©ããã調ã¹ãããã«æ¡ä»¶èšå®ããã¹ããããã¿ã€ã ã¹ãã³
view_alert_common_tab_dampening_partial_evalatuions_label = è©äŸ¡
@@ -966,9 +927,6 @@ view_alert_common_tab_notifications_status = ã¹ããŒã¿ã¹
view_alert_common_tab_recovery = ãªã«ããª
view_alert_definition_condition_editor_availabilityDuration = ã¢ãã€ã©ããªãã£éé
##view_alert_definition_condition_editor_availabilityDuration_state = Availability State
-view_alert_definition_condition_editor_availabilityDuration_tooltip = ã¢ãã€ã©ããªãã£ã®æ¡ä»¶ãããªã¬ãŒããããã«ä¿åãããŠããªããã°ãªããªãã¢ãã€ã©ããªãã£ç¶æ
ã®å€åãšééãæå®ããŸãããã®ééã¯ååäœã§æå®ãããŸãããšãŒãžã§ã³ããã¢ãã€ã©ããªãã£ç¶æ
ã®å€æŽãæ€åºããŠåé¡ãä¿®æ£ã§ããããã«ããããã«ã¯ããšãŒãžã§ã³ãã«æå®ããæéãšããŠã¯ãæ°åãšããé·ãã§ååã§ãã
-view_alert_definition_condition_editor_availabilityDuration_tooltip_duration = ã¢ãã€ã©ããªãã£ã®æ¡ä»¶ãæºããããã«ãªãœãŒã¹ãæå®ãããã¢ãã€ã©ããªãã£ã«ãªãå¿
èŠãããæéã®é·ãïŒå)ã§ãã
-view_alert_definition_condition_editor_availability_tooltip = æ¡ä»¶ã®ããªã¬ãŒãšãªãã¢ãã€ã©ããªãã£ç¶æ
ã®å€åãæå®ããŸã
view_alert_definition_condition_editor_common_avg = å¹³å
##view_alert_definition_condition_editor_common_baseUnits = Base Units
##view_alert_definition_condition_editor_common_baseUnits_availableUnits = Available units:
@@ -984,14 +942,11 @@ view_alert_definition_condition_editor_drift_pathname_regex_tooltip = ããæ
view_alert_definition_condition_editor_drift_tooltip = ãã®æ¡ä»¶ã¯ããªãããæ€åºããããšããããªã¬ãŒã«ãªããŸãã
view_alert_definition_condition_editor_event_regexTooltip = ããæå®ããããªããããã¯æ£èŠè¡šçŸã§ããããã®æ¡ä»¶ãåŒãèµ·ããããã«åéãããã€ãã³ãã¡ãã»ãŒãžã«äžèŽããªããã°ãªããŸããã
view_alert_definition_condition_editor_event_severity = ã€ãã³ãé倧床
-view_alert_definition_condition_editor_event_tooltip = ãã®æ¡ä»¶ãåŒãèµ·ããããã«ã€ãã³ãã¡ãã»ãŒãžãå ±åãããå¿
èŠãããã€ãã³ãé倧床ãæå®ããŸãããããªãã·ã§ã³ãšãªãæ£èŠè¡šçŸãæå®ãããªããã€ãã³ãã¡ãã»ãŒãžã¯ãã®æ¡ä»¶ãåŒãèµ·ããããããã«ã€ãã³ãã¡ãã»ãŒãžãæ£èŠè¡šçŸã«äžèŽããªããã°ãªããŸããã
view_alert_definition_condition_editor_metric_baseline_percentage = ããŒã¹ã©ã€ã³ããŒã»ã³ããŒãž
view_alert_definition_condition_editor_metric_baseline_percentage_tooltip = éžæãããæ¯èŒæŒç®åã䜿çšããŠéžæãããããŒã¹ã©ã€ã³å€ã®ããŒã»ã³ããŒãžãæ¯èŒãããšãã«åéãããã¡ããªãã¯å€ã¯ãã®æ¡ä»¶ãåŒãèµ·ãããŸãã
-view_alert_definition_condition_editor_metric_baseline_tooltip = æ¡ä»¶ãåŒãèµ·ããããã«éåãããããšãå¿
èŠãšãªãããŒã¹ã©ã€ã³å€ãæå®ããŸããæå®ããå€ã¯ãäžããããããŒã¹ã©ã€ã³å€ã®ããŒã»ã³ããŒãžã«ãªããŸãã
view_alert_definition_condition_editor_metric_baseline_value = ããŒã¹ã©ã€ã³
view_alert_definition_condition_editor_metric_calltime_change_percentage = ããŒã»ã³ããŒãžã®å€å
view_alert_definition_condition_editor_metric_calltime_change_percentage_tooltip = å°ãªããšãéžæãããåŒã³åºãæéãªãããå€ã®ããŒã»ã³ããŒãžãšç°ãªããšããåéãããåŒã³åºãæéã¯ãã®æ¡ä»¶ãåŒãèµ·ãããŸã
-view_alert_definition_condition_editor_metric_calltime_change_tooltip = æ¡ä»¶ãåŒãèµ·ãããå°ãªããšãæå®ãããéã®å€åãèµ·ãã£ããšãã®ãåŒã³åºãå€ãæå®ããŸãã(æå°ãæ倧ãå¹³åã®åŒã³åºãæéã®å€)ããã§ãã¯ããããã®åŒã³åºãæéã®ãªãããã®çš®å¥ãšçºçã«å¿
èŠãªå€åã®ããŒã»ã³ããŒãžãæå®ããªããã°ãªããŸããã
view_alert_definition_condition_editor_metric_calltime_common_comparator = ã³ã³ãã¬ãŒã¿
view_alert_definition_condition_editor_metric_calltime_common_comparator_changes = å€å
view_alert_definition_condition_editor_metric_calltime_common_comparator_grows = å¢å€§
@@ -1000,19 +955,14 @@ view_alert_definition_condition_editor_metric_calltime_common_comparator_tooltip
view_alert_definition_condition_editor_metric_calltime_common_limit = åŒã³åºãæéå¶é
view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip = äžããããå€ãšæ¯èŒãããã¹ãåŒã³åºãæéãªãããã®å€
view_alert_definition_condition_editor_metric_calltime_common_name = åŒã³åºãæéã¡ããªãã¯
-view_alert_definition_condition_editor_metric_calltime_regexTooltip = ããæå®ããããªããããã¯æ£èŠè¡šçŸã§ãããæ¡ä»¶ãåŒãèµ·ããããã«åŒã³åºãã®å®å
ãšäžèŽããå¿
èŠããããŸã
view_alert_definition_condition_editor_metric_calltime_threshold_tooltip = éåãããšãã«æ¡ä»¶ãåŒãèµ·ããåŒã³åºãæéã®éŸå€ãæå®ããŸããæå®ããå€ã¯ãªãã·ã§ã³ã®åäœã䌎ã絶察å€ã«ãªããŸãã(æå°ãæ倧ãå¹³åã®åŒã³åºãæéã®å€)ãšå€ãæ¯èŒããããåŒã³åºãæéã®ãªãããã®çš®å¥ãæå®ããªããã°ãªããŸããã
view_alert_definition_condition_editor_metric_calltime_threshold_value = åŒã³åºãæéã®å€
view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip = éžæãããæ¯èŒå(comparator)ã䜿ã£ãŠæ¯èŒãããšãæ¡ä»¶ãåŒãèµ·ããããã¡ããªãã¯ã®éŸå€
view_alert_definition_condition_editor_metric_change_tooltip = æ¡ä»¶ãåŒãèµ·ããããã«å€æŽããªããã°ãªããªãå€ãæã€ã¡ããªãã¯ãæå®ããŸã
view_alert_definition_condition_editor_metric_common_definition_not_found = ã¡ããªãã¯å®çŸ©ãèŠã€ããã¹ãã§ã - äœããããããã§ã
-view_alert_definition_condition_editor_metric_nometrics = ãã¹ãŠãé£çµããŠäœ¿ããšããè€æ°æ¡ä»¶å
ã«åãã¡ããªãã¯ã䜿ãããšã¯ã§ããŸããããã®èŠåã¯çŸåšã®æ¡ä»¶å
ã§ã®ãã¹ãŠã®å©çšå¯èœãªã¡ããªãã¯ã¹ã䜿ããŸãã
view_alert_definition_condition_editor_metric_range_comparator = æ¯èŒæŒç®å
-view_alert_definition_condition_editor_metric_range_comparator_inside_exclusive = å
éšã§ãå¢çå€ãå«ãŸãªã
-view_alert_definition_condition_editor_metric_range_comparator_inside_inclusive = å
éšã§ãå¢çå€ãå«ã
view_alert_definition_condition_editor_metric_range_comparator_outside_exclusive = å€éšã§ã å¢çå€ãå«ãŸãªã
view_alert_definition_condition_editor_metric_range_comparator_outside_inclusive = å€éšã§ã å¢çå€ãå«ã
-view_alert_definition_condition_editor_metric_range_comparator_tooltip = ã¡ããªãã¯å€ããç¯å²å
ãç¯å²å€ã®ãšãããã®æ¡ä»¶ã®ããªã¬ãŒã«ãªããã©ããã決å®ããŸãã
view_alert_definition_condition_editor_metric_range_hivalue = é«å€
view_alert_definition_condition_editor_metric_range_hivalue_tooltip = ç¯å²ã§ã®é«å€ã®éŸå€
view_alert_definition_condition_editor_metric_range_lovalue = äœå€
@@ -1033,12 +983,9 @@ view_alert_definition_condition_editor_metric_trait_change_value = ãã¬ã€ã
view_alert_definition_condition_editor_metricswarning = ãã¹ãŠã®é£çµã䜿ããšãã¯åãã¡ããªãã¯ã䜿ãè€æ°ã®æ¡ä»¶ãæå®ããããšã¯ã§ããŸããããã®èŠåå®çŸ©ã¯ãã®ã¡ããªã㯠[{0}] ã䜿ãè€æ°ã®æ¡ä»¶ãæã¡ãŸãã
view_alert_definition_condition_editor_operation_status = ãªãã¬ãŒã·ã§ã³ã¹ããŒã¿ã¹
view_alert_definition_condition_editor_operation_tooltip = æ¡ä»¶ãåŒãèµ·ããããã«éžæããããå®è¡ããããšãçºçããªããã°ãªããªãçµæãæå®ããŸã
-view_alert_definition_condition_editor_operator_availability_durationDown = åæ¢äžã®ç¶æ
-view_alert_definition_condition_editor_operator_availability_durationNotUp = èµ·åããªãç¶æ
view_alert_definition_condition_editor_operator_availability_goesDisabled = ç¡å¹åã«ãªã
view_alert_definition_condition_editor_operator_availability_goesDown = åæ¢ãã
view_alert_definition_condition_editor_operator_availability_goesNotUp = èµ·åããªã
-view_alert_definition_condition_editor_operator_availability_goesUnknown = äžæãªç¶æ
ã«ãªã
view_alert_definition_condition_editor_operator_availability_goesUp = èµ·åãã
view_alert_definition_condition_editor_option_availability = ã¢ãã€ã©ããªãã£ã®å€å
view_alert_definition_condition_editor_option_drift = ããªããã®æ€åº
@@ -1073,12 +1020,7 @@ view_alert_definition_notification_editor_delete_confirm = éžæãããã¢ã©
view_alert_definition_notification_editor_field_configuration = æ§æ
view_alert_definition_notification_editor_field_configuration_loadFailed = éç¥æ§æãã¬ãã¥ãŒã®ååŸã«å€±æããŸãã
view_alert_definition_notification_editor_field_configuration_not_loaded = æªç¥
-view_alert_definition_notification_editor_field_sender = éä¿¡è
-view_alert_definition_notification_editor_loadFailed = ã¢ã©ãŒãéä¿¡è
ãååŸã§ããŸãã
-view_alert_definition_notification_editor_loadFailed_single = ã¢ã©ãŒãéä¿¡è
æ§æå®çŸ©ãååŸã§ããŸãã
-view_alert_definition_notification_editor_none_available = ã¢ã©ãŒãéä¿¡è
ãå©çšã§ããŸãã
view_alert_definition_notification_editor_saveFailed = éç¥ã®æ§æãä¿åã§ããŸãã
-view_alert_definition_notification_editor_sender = éç¥éä¿¡è
view_alert_definition_notification_editor_title_add = éç¥ã®è¿œå
view_alert_definition_notification_editor_title_edit = éç¥ã®ç·šé
view_alert_definition_notification_operation_editor_common_operation = ãªãã¬ãŒã·ã§ã³
@@ -1090,11 +1032,7 @@ view_alert_definition_notification_operation_editor_mode_unknown = æªç¥ã®ãª
view_alert_definition_notification_operation_editor_operations_loadFailed = å©çšå¯èœãªãªãã¬ãŒã·ã§ã³ã®ãªã¹ããããŒãããã®ã«å€±æããŸãã
view_alert_definition_notification_operation_editor_operations_no_parameters = ãã®æäœã¯äžã€ããã©ã¡ãŒã¿ãŒãåããŸãã
view_alert_definition_notification_operation_editor_relative_ancestor = æ€çŽ¢ãéå§
-view_alert_definition_notification_operation_editor_relative_ancestor_loadFailed = ã¿ã€ãã®ç¥å
ãååŸã§ããŸãã
-view_alert_definition_notification_operation_editor_relative_ancestor_root = ã«ãŒãã®ç¥å
ã¿ã€ã
-view_alert_definition_notification_operation_editor_relative_ancestor_tooltip = ã¿ã€ãéå±€ã®ããããéžæããŸããããã¯ã¿ã€ãã«ãããã£ã«ã¿ãŒã®ããã«åå«ã®ããªãŒãæ€çŽ¢ããå
ãšãªããŸã
view_alert_definition_notification_operation_editor_relative_descendant = 次ã«ãããã£ã«ã¿ãŒ
-view_alert_definition_notification_operation_editor_relative_descendant_filter_tooltip = éžæããã¿ã€ãã«å¯Ÿå¿ããè€æ°ã®ãªãœãŒã¹ãååšãããšããªãœãŒã¹ããŠããŒã¯ã«èå¥ããå
·äœçãªååãããã¯éžæããã¿ã€ãéå±€ã«ãããŠãã®ãªãœãŒã¹ã¿ã€ãã®å¯äžã®ãªãœãŒã¹ããååšããªãå Žåã¯ãªãã·ã§ã³ã§ãã
view_alert_definition_notification_operation_editor_relative_descendant_loadFailed = ã¿ã€ãã®åå«ãååŸã§ããŸãã
view_alert_definition_notification_operation_editor_relative_descendant_tooltip = æ€çŽ¢ã®éå§ã»ã¯ã·ã§ã³ã§å®çŸ©ãããã«ãŒãã¿ã€ãã®äžã§æ€çŽ¢ãããªãœãŒã¹ã¿ã€ã
view_alert_definition_notification_operation_editor_specific_pick_button = éžæ
@@ -1135,7 +1073,6 @@ view_alert_definitions_update_success = ã¢ã©ãŒãå®çŸ©ã®æŽæ°ã«æåã
view_alert_details_field_ack_at = 次ã®å Žæã§ç¢ºèªæžã¿ã§ã
view_alert_details_field_ack_by = 次ã®äººã«ãã£ãŠç¢ºèªæžã¿ã§ã
##view_alert_details_field_parent_definition = Parent definition
-view_alert_details_field_recovery_info = ãªã«ããªæ
å ±
##view_alert_details_field_resource_ancestry = Resource Ancestry
##view_alert_details_field_watched_resource = Watched Resource
view_alert_details_loadFailed = ã¢ã©ãŒãã®è©³çŽ°ãåãåºãã®ã«å€±æããŸãã
@@ -1165,11 +1102,9 @@ view_alerts_field_enabled = æå¹
view_alerts_field_modified_time = ä¿®æ£æå»
view_alerts_field_name = åå
view_alerts_field_parent = 芪
-view_alerts_field_priority = åªå
床
view_alerts_field_protected = ä¿è·ãããŠãã
view_alerts_field_protected_tooltip = ããtrueãªãããã®å®çŸ©ã¯èŠªå®çŸ©ã«ããå€æŽããä¿è·ãããŠããŸããä»ã®èšèã§èšãã°ããã®èŠªå®çŸ©èšå®ã¯ãã®å®çŸ©ãäžæžãããŸããã
view_alerts_loadFailed = ã¢ã©ãŒãããŒã¿ãåãåºãã®ã«ããŸãã
-view_alerts_table_filter_priority = åªå
床ãã£ã«ã¿ãŒ
view_alerts_table_title_group = ã°ã«ãŒãã¢ã©ãŒãå±¥æŽ
view_alerts_table_title_resource = ãªãœãŒã¹ã¢ã©ãŒãå±¥æŽ
view_autoDiscoveryQ_committed = ã³ãããæžã¿
@@ -1206,21 +1141,16 @@ view_autoDiscoveryQ_uninventoried = ã€ã³ãã³ããªç»é²ãããªã
view_bundleVersion_loadFailure = ãã³ãã«ããŒãžã§ã³ããŒã¿ãããŒãããã®ã«å€±æããŸãã
view_bundle_bundleDeployment = ãã³ãã«ãããã€ã¡ã³ã
view_bundle_bundleDeployments = ãã³ãã«ãããã€ã¡ã³ã
-view_bundle_bundleDestinations = ãã³ãã«å®å
view_bundle_bundleFiles = ãã³ãã«ãã¡ã€ã«
view_bundle_bundleType = ãã³ãã«ã¿ã€ã
view_bundle_bundleVersion = ãã³ãã«ããŒãžã§ã³
view_bundle_bundleVersions = ãã³ãã«ããŒãžã§ã³
-view_bundle_createWizard_bundleDistro = ãã³ãã«é
åž
-view_bundle_createWizard_cancelFailure = ãã³ãã« [{0}], ããŒãžã§ã³ = [{1}] ã®äœæã®å®å
šãªãã£ã³ã»ã«ã«å€±æããŸãã - ãã³ãã«ã¯ããŒã¿ããŒã¹ã«ãŸã æ®ã£ãŠãããããããŸãã
##view_bundle_createWizard_cancelFailurePerm = Failed to fully cancel the creation of bundle [{0}], version = [{1}] because the user has create but not delete permissions. The bundle will likley need to be removed by an administrator.
view_bundle_createWizard_cancelSuccessful = ãã³ãã« [{0}], ããŒãžã§ã³ = [{1}] ã®äœæããã£ã³ã»ã«ããŸãã
view_bundle_createWizard_clickToUploadRecipe = ã¬ã·ããã¡ã€ã«ã®ããŒãããããã«ã¯ãªãã¯ããŠãã ãã
view_bundle_createWizard_createFailure = ãã³ãã«ãäœæããã®ã«å€±æããŸãã
view_bundle_createWizard_createSuccessful = ããŒãžã§ã³ [{1}] ã® [{0}] ãšããååã®ãã³ãã«ã®äœæã«æåããŸãã
view_bundle_createWizard_enterRecipe = æ£ããã¬ã·ããæäŸããŠãã ãã
-view_bundle_createWizard_enterUrl = ãã³ãã«é
åžãã¡ã€ã«ãããŠã³ããŒãã§ããæ£ããURLãå
¥åããŠãã ãã
-view_bundle_createWizard_failedToUploadDistroFile = ãã³ãã«é
åžãã¡ã€ã«ã®ã¢ããããŒãã«å€±æããŸãã
view_bundle_createWizard_failedToUploadFile = ãã³ãã«ãã¡ã€ã«ã®ã¢ããããŒãã«å€±æããŸãã
##view_bundle_createWizard_groupsStep_assign = Assign at least one of the eligible bundle groups:
##view_bundle_createWizard_groupsStep_assigned = The new bundle version is for an existing bundle and inherits its bundle group assignments:
@@ -1233,11 +1163,8 @@ view_bundle_createWizard_failedToUploadFile = ãã³ãã«ãã¡ã€ã«ã®ã¢ã
##view_bundle_createWizard_groupsStep_radioTitle = Initial bundle group assignment for the new bundle
##view_bundle_createWizard_groupsStep_successAssign = You have successfully assigned initial bundle groups to a bundle named [{0}] with a version of [{1}]
##view_bundle_createWizard_groupsStep_unassigned = The new bundle version is for an existing bundle and inherits its bundle group assignments. The bundle is not currently assigned to any bundle groups.
-view_bundle_createWizard_loadBundleFileFailure = ãµãŒããŒãããã³ãã«ãã¡ã€ã«æ
å ±ã®ååŸãã§ããŸãã
-view_bundle_createWizard_noAdditionalFilesNeeded = ãã®ãã³ãã«ã®ããã«ã¢ããããŒããããå¿
èŠãããè¿œå ãã¡ã€ã«ã¯ãããŸãã
view_bundle_createWizard_noBundleTypesAvail = ãã³ãã«ã¿ã€ããå©çšã§ããŸãã
view_bundle_createWizard_noBundleTypesSupported = ãã³ãã«ã¿ã€ãã¯äžã€ããµããŒããããŠããŸãã - ãã³ãã«ãããã€ã¡ã³ãããµããŒãããæ£ãããã©ã°ã€ã³ããããã€ããªããã°ãªããŸãã
-view_bundle_createWizard_provideBundleDistro = ãã³ãã«é
åžã®æäŸ
view_bundle_createWizard_recipeOption = ã¬ã·ã
view_bundle_createWizard_title = ãã³ãã«äœæ
##view_bundle_createWizard_unassigned = unassigned
@@ -1250,47 +1177,28 @@ view_bundle_createWizard_urlOption = URL
##view_bundle_createWizard_urlUserName = User name
view_bundle_createWizard_windowTitle = ãã³ãã«äœæãŠã£ã¶ãŒã
view_bundle_createWizard_youMustChooseOne = ãã³ãã«ãäœæããããã®ãªãã·ã§ã³ãéžæããªããã°ãªããŸãã
-view_bundle_deleteConfirm = ãã®ãã³ãã«ãåé€ããŠãããããã§ãã? ãã®ãã³ãã«ã®ãã¹ãŠã®ããŒãžã§ã³ãå®å
ããããã€ãåé€ãããŸãã
view_bundle_deploy = ãããã€
view_bundle_deployDir = ãããã€ãã£ã¬ã¯ããª
##view_bundle_deployWizard_createGroup_error_1 = The group was not created. Group for deployment cannot be empty.
##view_bundle_deployWizard_createGroup_error_2 = The group was not created. Resulting group must be compatible (members of the same type).
##view_bundle_deployWizard_createGroup_error_3 = The group was not created. The resource type of the resulting group does not support deployments.
-view_bundle_deployWizard_deployStep = å®å
ãã©ãããã©ãŒã ãžã®ãã³ãã«ã®ãããã€
view_bundle_deployWizard_deploying = ãããã€äž...
view_bundle_deployWizard_deploymentCreated = äœæããããããã€ã¡ã³ã...
view_bundle_deployWizard_deploymentCreatedDetail = ãã£ã¹ã¯ãªãã·ã§ã³ [{1}] ã®ä»ãããããã€ã¡ã³ã [{0}] ãäœæããŸãã
view_bundle_deployWizard_deploymentCreatedDetail_concise = ãããã€ã¡ã³ã [{0}] ãäœæããŸãã
view_bundle_deployWizard_deploymentScheduled = ãã³ãã«ãããã€ãã¹ã±ãžã¥ãŒã«ãããŸãã!
-view_bundle_deployWizard_deploymentScheduledDetail = ãã³ãã«ãããã€ã¡ã³ã [{0}] ãå®å
ã°ã«ãŒã [{1}] ã«ã¹ã±ãžã¥ãŒã«ããŸãã
view_bundle_deployWizard_deploymentScheduledDetail_concise = ãã³ãã«ãããã€ã¡ã³ããã¹ã±ãžã¥ãŒã«ãããŸãã
view_bundle_deployWizard_destinationCreatedDetail = ãã£ã¹ã¯ãªãã·ã§ã³ [{1}] ã®ä»ãããããã€ã¡ã³ã [{0}] ãäœæããŸãã
-view_bundle_deployWizard_destinationCreatedDetail_concise = å®å
[{0}] ãäœæããŸãã
view_bundle_deployWizard_error_1 = ãã£ã³ã»ã«ã«ã€ããŠã®æ°ãããããã€ã¡ã³ãã®åé€ã«å€±æããŸãã
-view_bundle_deployWizard_error_10 = å®å
ã®äœæã«å€±æããŸãããããã¯ãã§ã«ååšãããããããŸããã (泚æïŒå®å
ãã¥ãŒããæ¢åã®å®å
ãããã€ã®ãã)
view_bundle_deployWizard_error_11 = å®çŸ©æžã¿ãããã€ã¡ã³ãã®æ€çŽ¢ã«å€±æããŸãã
view_bundle_deployWizard_error_12 = å®çŸ©æžã¿ãã³ãã«ã®æ€çŽ¢ã«å€±æããŸãã
-view_bundle_deployWizard_error_2 = ãã£ã³ã»ã«ã«ã€ããŠã®æ°ããå®å
ã®åé€ã«å€±æããŸãã
view_bundle_deployWizard_error_3 = ãããã€ã¡ã³ãã®ã¹ã±ãžã¥ãŒã«ã«å€±æããŸãã!
view_bundle_deployWizard_error_4 = ãããã€ã¡ã³ãã®ã¹ã±ãžã¥ãŒã«ã«å€±æããŸãã: {0}
view_bundle_deployWizard_error_5 = ãããã€ã¡ã³ãã®äœæã«å€±æããŸãã!
view_bundle_deployWizard_error_6 = ãããã€ã¡ã³ãã®äœæã«å€±æããŸãã: {0}
view_bundle_deployWizard_error_7 = ãããã€ã¡ã³ãåã®ååŸã«å€±æããŸãã
view_bundle_deployWizard_error_8 = ããããããŠã³ããæ£ãããªãœãŒã¹ã°ã«ãŒããéžæããªããã°ãªããŸãã
-view_bundle_deployWizard_error_9 = 次ããŒãžã§ã®æ°ããå®å
ã®åé€ã«å€±æããŸãã
-view_bundle_deployWizard_error_noBundleConfig = ãã³ãã«ã¿ãŒã²ããæ
å ±ã®ååŸã«å€±æããŸãããéžæããã°ã«ãŒãã¯ãã³ãã«ãããã€ã¡ã³ãã®ã¿ãŒã²ããã«æãåŸãæ£åœãªäºæã°ã«ãŒãã§ãã?
-view_bundle_deployWizard_getConfigSkip = ãã®ãã³ãã«ããŒãžã§ã³ã«ã¯æ§æã¯å¿
èŠãããŸãã
view_bundle_deployWizard_getConfigStep = ãããã€ã¡ã³ãæ§æã®èšå®
-view_bundle_deployWizard_getDestStep = æ°ããå®å
-view_bundle_deployWizard_getDest_deployDir = ã«ãŒããããã€ãã£ã¬ã¯ã㪠(å®å
ãã©ãããã©ãŒã äžã§ã®)
-view_bundle_deployWizard_getDest_deployDir_help = ãã®ãã³ãã«ããããã€ããããã£ã¬ã¯ããªããã®ãã£ã¬ã¯ããªã¯ãã¹ãŠã®ãªãœãŒã¹ã«é¢ãããã¹ãŠã®ãããã€çšãšããŠåããã®ã䜿ãããŸãããå®å
ã®åºæ¬ãã£ã¬ã¯ããªã®å Žæã«å¯Ÿããçžå¯Ÿãã£ã¬ã¯ããªã«ãªããŸãããã®ããšã¯ãç°ãªãã¿ãŒã²ãããªãœãŒã¹ã«ã€ããŠåºæ¬ãã£ã¬ã¯ããªã®é
眮ãã©ãã«ããããšããããšã«äŸåããŠããã®çµ¶å¯Ÿãã£ã¬ã¯ããªã¯ç°ãªãã¿ãŒã²ãããªãœãŒã¹ã«ãã£ãŠç°ãªããã¹ã«ãªãå¯èœæ§ãããããšãæå³ããŠããŸãã
-view_bundle_deployWizard_getDest_desc = å®å
ã®èª¬æ
-view_bundle_deployWizard_getDest_destBaseDirName = åºæ¬ã®é
眮
-view_bundle_deployWizard_getDest_group_help = ã¡ã³ããŒããã¹ãŠã®ãã³ãã«ãããã€ã®ããã®å®å
ã¿ãŒã²ãããšãªããããªã°ã«ãŒãããã³ãã«ãããã€ããµããŒããããªãœãŒã¹ãå«ãäºæã°ã«ãŒãã®ã¿ãéžæå¯èœã§ãã
-view_bundle_deployWizard_getDest_name = å®å
å
-view_bundle_deployWizard_getDest_name_help = å®å
åãããã¯ãªãœãŒã¹ã®ç¹å®ã®ã°ã«ãŒããšç¹å®ã®ãã³ãã«ã®ãªãœãŒã¹ã«é¢ããå®å
ãã£ã¬ã¯ããªãèå¥ããŸãã
-view_bundle_deployWizard_getInfoStep = ãããã€æ
å ±ã®æäŸ
-view_bundle_deployWizard_getInfo_clean = ã¯ãªãŒã³ãããã€ã§ãã? (å®å
ãã©ãããã©ãŒã äžã§ã®ãããã€ãã£ã¬ã¯ããªãæé€ãã)
view_bundle_deployWizard_getInfo_deploymentDesc = ãããã€ã®èª¬æ
view_bundle_deployWizard_getInfo_deploymentName = ãããã€å
view_bundle_deployWizard_getOptionsStep = ãããã€ãªãã·ã§ã³
@@ -1305,7 +1213,6 @@ view_bundle_deployWizard_selectVersion_live = åäœããŒãžã§ã³ [{0}]
view_bundle_deployWizard_selectVersion_select = ãªã¹ãããããŒãžã§ã³ãéžæããŠãã ãã:
view_bundle_deployWizard_title = ãã³ãã«ãããã€ã®ãŠã£ã¶ãŒã
view_bundle_deploy_action = ã¢ã¯ã·ã§ã³
-view_bundle_deploy_backButton = å®å
ã«æ»ã
view_bundle_deploy_clickForError = ãšã©ãŒã¡ãã»ãŒãžã®ã¢ã€ã³ã³ãã¯ãªãã¯ããŠãã ãã
view_bundle_deploy_deleteConfirm = ãã®ãã³ãã«ãããã€ãåé€ããŠãããããã§ãã?
view_bundle_deploy_deleteFailure = ãã³ãã«ããã〠[{0}] ã®åé€ã«å€±æããŸãã
@@ -1325,25 +1232,14 @@ view_bundle_deploy_time = ãããã€å
view_bundle_deployed = ãããã€
view_bundle_deployments = ãããã€
view_bundle_dest_backToBundle = ãã³ãã«ãžæ»ã
-view_bundle_dest_baseDirName = åºæ¬ã®é
眮
view_bundle_dest_created = äœæããã
-view_bundle_dest_deleteConfirm = ãã®ãã³ãã«å®å
ãåé€ããŠãããããã§ãã? ããã¯ããŒã¿ããŒã¹ããåé€ããã ãã§ããã€ãŸãããªã¢ãŒããã·ã³ã®ãã®å®å
ã«ãããã€ããããã¹ãŠã®ãã³ãã«ã®å
容ã¯æ®ãç¶ããŸã
-view_bundle_dest_deleteFailure = ãã³ãã«å®å
[{0}] ã®åé€ã«å€±æããŸãã
-view_bundle_dest_deleteSuccessful = ãã³ãã«å®å
[{0}] ã®åé€ã«æåããŸãã
view_bundle_dest_deployDir = ãããã€ãã£ã¬ã¯ããª
view_bundle_dest_group = ã°ã«ãŒã
view_bundle_dest_lastDeployedVersion = æåŸã«ãããã€ãããããŒãžã§ã³
view_bundle_dest_lastDeploymentDate = æåŸã®ãããã€ããããæ¥ä»
view_bundle_dest_lastDeploymentStatus = æåŸã«ãããã€ãããã¹ããŒã¿ã¹
-view_bundle_dest_loadFailure = ãã³ãã«ã®å®å
ãããŒãããã®ã«å€±æããŸãã
-view_bundle_dest_loadFailureVersionInfo = ãããã€ãããããŒãžã§ã³æ
å ±ã®ããŒãã«å€±æããŸãã
view_bundle_dest_purgeConfirm = ãã®æäœã¯ãã¹ãŠã®ãªã¢ãŒããã·ã³ãããã³ãã«ã³ã³ãã³ããé€å»ããŸããããããã§ãã?
-view_bundle_dest_purgeFailure = ãªã¢ãŒããã·ã³ã®äžéšãããã¯ãã¹ãŠããã®ãã³ãã«å®å
[{0}] ã®é€å»ã«å€±æããŸãã
-view_bundle_dest_purgeSuccessful = ãªã¢ãŒããã·ã³ã®äžéšãããã¯ãã¹ãŠããã®ãã³ãã«å®å
[{0}] ã®é€å»ã«æåããŸãã
view_bundle_dest_revertConfirm = ããã¯ãã¹ãŠã®ãªã¢ãŒããã·ã³ã以åã®ãã³ãã«ãããã€ã¡ã³ããžæ»ããŸãããããããŠãããããã§ãã?
-view_bundle_dest_tagUpdateFailure = ãã³ãã«å®å
ã¿ã°ã®æŽæ°ã«å€±æããŸãã
-view_bundle_dest_tagUpdateSuccessful = ãã³ãã«å®å
ã¿ã°ã®æŽæ°ã«æåããŸãã
-view_bundle_destinations = å®å
##view_bundle_fail_existingName = Failed to create [{0}]. The name is already being used. Please try another name.
view_bundle_fileListView_fileSize = ãã¡ã€ã«ãµã€ãº
view_bundle_fileListView_loadFailure = ãã³ãã«ãã¡ã€ã«ããŒã¿ãããŒãããã®ã«å€±æããŸãã
@@ -1357,7 +1253,6 @@ view_bundle_list_deleteFailure = ãã³ãã« [{0}] ã®åé€ã«å€±æããŸã
view_bundle_list_deleteSuccessful = ãã³ãã« [{0}] ã®åé€ã«æåããŸãã
view_bundle_list_deletesFailure = ãã³ãã«ã®åé€ã«å€±æããŸãã
view_bundle_list_deletesSuccessful = ãã³ãã«ã®åé€ã«æåããŸãã
-view_bundle_list_destinationsCount = å®å
æ°
view_bundle_list_error1 = [{0}] ããããã€ããããã®ãã³ãã«ã®ããŒãã«å€±æããŸãã
view_bundle_list_error2 = [{0}] ããããã€ããããã®åäžãã³ãã«ã®ååŸã«å€±æããŸãã
view_bundle_list_error3 = ãã³ãã«ã®ããŒãã«å€±æããŸãã
@@ -1376,18 +1271,14 @@ view_bundle_revertWizard_confirmStep_confirmation = åäœäžã®ãããã€ã
view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment = åäœäžã®ãããã€ãèŠã€ãããŸãããåãæ¶ããã§ããŸããã
view_bundle_revertWizard_confirmStep_liveDeployment = åäœäžã®ãããã€
view_bundle_revertWizard_confirmStep_name = åãæ¶ããããã€ç¢ºèª
-view_bundle_revertWizard_confirmStep_noLiveDeployment = ãã®å®å
[{0}] çšã®åäœäžã®ãããã€ã¯èŠã€ãããŸããã§ãã
-view_bundle_revertWizard_confirmStep_noLiveDeployment_concise = ãã®å®å
çšã®åäœäžã®ãããã€ã¯èŠã€ãããŸããã§ãã
view_bundle_revertWizard_confirmStep_noPriorDeployment = 以åã®ããã〠[{1}] ãååšããªãã®ã§åäœäžã®ããã〠[{0}] ã¯åãæ¶ãããšãã§ããŸããã§ãã
view_bundle_revertWizard_confirmStep_noPriorDeployment_concise = 以åã®ãããã€ãååšããªãã®ã§åäœäžã®ãããã€ã¯åãæ¶ãããšãã§ããŸããã§ãã
view_bundle_revertWizard_confirmStep_prevDeployment = 以åã®ãããã€
view_bundle_revertWizard_getInfoStep_cleanDeploy = ãããã€ãåé€ããŸãã? (ããã¯å€ããæ¢åã®ãããã€ãã£ã¬ã¯ããªãåãæ¶ããããã€ãéå§ããåã«åé€ããŸã)
view_bundle_revertWizard_getInfoStep_getNameFailure = åãæ¶ããããã€åã®ååŸã«å€±æããŸãã
-view_bundle_revertWizard_getInfoStep_name = åãæ¶ãæ
å ±ã®æäŸ
view_bundle_revertWizard_getInfoStep_revertDeployDesc = ãããã€èšè¿°ã®åãæ¶ã
view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [åãæ¶ã å] {0} [åãæ¶ã åŸ] {1}
view_bundle_revertWizard_getInfoStep_revertDeployName = ãããã€åã®åãæ¶ã
-view_bundle_revertWizard_revertStep_name = å®å
ãã©ãããã©ãŒã ãžãã³ãã«ããããã€
view_bundle_revertWizard_revertStep_reverting = åãæ¶ãäž...
view_bundle_revertWizard_revertStep_scheduled = ãããã€ã®åãæ¶ãã®ã¹ã±ãžã¥ãŒã«ã«æåããŸããã
view_bundle_revertWizard_revertStep_scheduledDetails = ãªãœãŒã¹ã°ã«ãŒã [{1}] ãããã³ãã«ããã〠[{0}] ã®åãæ¶ãã®ã¹ã±ãžã¥ãŒã«ã«æåããŸãã
@@ -1408,12 +1299,10 @@ view_bundle_versions = ããŒãžã§ã³
##view_charts_time_axis_label = Time
view_configCompare_comparingConfigs = æ§æã®æ¯èŒ
view_configCompare_configCompare = æ§æã®æ¯èŒ
-view_configEdit_addItem = ãªã¹ãã«é
ç®ãè¿œå
view_configEdit_confirm_1 = ãã®éãŸãããéžæãããããããã£ãåé€ããŠãããããã§ãã?
view_configEdit_confirm_2 = ãã®è¡ãåé€ããŠãããããã§ãã?
view_configEdit_confirm_3 = [{1}] ãéžæããã [{0}] ãåé€ããŠãããããã§ãã?
view_configEdit_editRow = è¡ã®ç·šé
-view_configEdit_enterPropName = è¿œå ããããããã£ã®ååãå
¥åããŠãã ãã
view_configEdit_error_1 = æ§æã¯ãã®ãªãœãŒã¹ã§ãµããŒããããŠããŸãã
view_configEdit_error_2 = æ¥ç¶èšå®ã¯ãã®ãªãœãŒã¹ã§ãµããŒããããŠããŸãã
view_configEdit_error_3 = [{0}] ãšããååã®ããããã£ãè¿œå ã§ããŸãããããããã£åã¯ãã®éãŸãã§ãã§ã«äœ¿ãããŠããŸãã
@@ -1538,7 +1427,6 @@ view_drift_wizard_addDef_templatePrompt = ããªããå®çŸ©ãã³ãã¬ãŒã
view_drift_wizard_addDef_title = ã¿ã€ãã®ãªãœãŒã¹ [{0}] ã®ããã®ããªããæ€åºå®çŸ©ãè¿œå ããŠãã ãã
view_drift_wizard_addDef_windowTitle = ããªããæ€åºå®çŸ©ãŠã£ã¶ãŒãã®è¿œå
view_drift_wizard_addTemplate_failure = æ°èŠããªããæ€åºãã³ãã¬ãŒã [{0}] ã®è¿œå ã«å€±æããŸãã
-view_drift_wizard_addTemplate_infoStepHelp = åããªãããã³ãã¬ãŒãã¯æ¢åã®ãã³ãã¬ãŒããã掟çããŠäœæã§ããŸããããã¯æ¢åãã³ãã¬ãŒãã«é¡äŒŒãããã®ãããã©ã°ã€ã³ãå®çŸ©ãããã³ãã¬ãŒãããæ°èŠãã³ãã¬ãŒããæ§ç¯ããçŽ æ©ãæ¹æ³ãæäŸããŸããããªããå®çŸ©ã®ããã«ããã®ãã³ãã¬ãŒãã¯ããªãããç£èŠãå®è¡ããäžåŒã®ãã¡ã€ã«ãèšè¿°ããŸããç¶æ³ã«ãã£ãŠã¯ããã®ãã³ãã¬ãŒãããå°åºãããå®çŸ©ã¯ãã®ãã¡ã€ã«ã»ããã®å€æŽããä»ã®èšå®ã®å€æŽãèš±ããããèš±ããªãã£ããããŸãããã³ãã¬ãŒãåã¯äžã€ã®ãªãœãŒã¹ã¿ã€ãå
ã§ãŠããŒã¯ã§ãªããã°ãªããŸããã
view_drift_wizard_addTemplate_infoStepName = éå§ãã³ãã¬ãŒãã®éžæ
view_drift_wizard_addTemplate_success = æ°èŠããªãããã³ãã¬ãŒã [{0}] ã®è¿œå ã«æåããŸãã
view_drift_wizard_addTemplate_title = ã¿ã€ã [{0}] ã®ããªããå®çŸ©ãã³ãã¬ãŒããè¿œå ããŠãã ãã
@@ -1547,7 +1435,6 @@ view_drift_wizard_pinTemplate_confirmNotPinned = ãã®ãã³ãã¬ãŒãã®ã
view_drift_wizard_pinTemplate_confirmPinned = èŠå! ãã®ãã³ãã¬ãŒãã¯ãã§ã«ãã³çããããŠããŸãããã®ãã³ãã¬ãŒãã¯ãã®æ°èŠã¹ãããã·ã§ããã«å床ãã³çãããããšãå¯èœã§ãããã®ãã³ãã¬ãŒãã®ããã®çŸåšãšå°æ¥ã®åããªããå®çŸ©ããã£ãããã³çãããããšããã®ãã³ãã¬ãŒãã¯åæã¹ãããã·ã§ããããã®ãã³ãã¬ãŒããæã€ãã³çããããã¹ãããã·ã§ãããšããŠèšå®ãããããã«ããŸãããã®ãã³ãã¬ãŒãã®æ¢åå®çŸ©ã¯æ°èŠåæã¹ãããã·ã§ãããžãªã»ããããããã¹ãŠã®æ¢åã¹ãããã·ã§ããã¯åé€ãããŸãããã®æ°èŠã¹ãããã·ã§ãããæã€ãã³ãã¬ãŒãã®ãã³çããç¶ããŸãã?
view_drift_wizard_pinTemplate_failure = ããªãããã³ãã¬ãŒã [{0}] ãžã®ã¹ãããã·ã§ããããã³çãããã®ã«å€±æããŸãã
view_drift_wizard_pinTemplate_infoStepExistingTemplate = çŸåšã®ãã³ãã¬ãŒããžã®ãã³çã
-view_drift_wizard_pinTemplate_infoStepHelp = ãã³çãããããã³ãã¬ãŒããéžæããŠãã ããããã®ãã³ãã¬ãŒãã®ããã®çŸåšãšå°æ¥ã®åããªããå®çŸ©ããã£ãããã³çãããããšããã®ãã³ãã¬ãŒãã¯åæã¹ãããã·ã§ããããã®ãã³ãã¬ãŒããæã€ãã³çããããã¹ãããã·ã§ãããšããŠèšå®ãããæã€ããã«ãªããŸããããã«ããŸãããããŠãã®å®çŸ©èªèº«ã¯ãã³çãããããã®ãšããŠããŒã¯ãããŸããããã¯æåŸ
ããããã¡ã€ã«ã»ããããããªãããæ€åºããã®ã«äœ¿ãããŸãããã®ãã³ãã¬ãŒãã®ããã®æ¢åå®çŸ©ã¯æ°èŠã®åæã¹ãããã·ã§ããã«ãªã»ããããããã¹ãŠã®æ¢åã¹ãããã·ã§ããã¯åé€ãããããšã«æ³šæããŠãã ããã
view_drift_wizard_pinTemplate_infoStepName = ãã³çãããããã³ãã¬ãŒãã®éžæ
view_drift_wizard_pinTemplate_infoStepNewTemplate = æ°èŠãã³ãã¬ãŒããžã®ãã³çã (ã¹ãããã·ã§ããã®ããªããå®çŸ©ããå°åºããããã®)
view_drift_wizard_pinTemplate_infoStepRadioHelp = ãã®ã¹ãããã·ã§ããã¯æ°èŠãŸãã¯æ¢åã®ããªãããã³ãã¬ãŒãã«ãã³çãããããšãå¯èœã§ãããã®''æ°èŠãã³ãã¬ãŒã''ãªãã·ã§ã³ã¯ããŠãŒã¶ãŒã®æã«ãã£ãŠä¿¡é Œããå®çŸ©ãã¹ãããã·ã§ãããããªãœãŒã¹ã¬ãã«ãã¿ã€ãã¬ãã«ã§ããã³ãã¬ãŒãåã§ããããã«ããŸãããã®æ°èŠãã³ãã¬ãŒãã¯ã次ã«ããã®ã¿ã€ãã®ã¡ã³ããŒã«å¯ŸããŠé©çšã§ããŸãããã®æ°èŠãã³ãã¬ãŒãã¯åææã¯ã¹ãããã·ã§ããã®ããªããå®çŸ©ã®ã³ããŒã§ããã次ã®ã¹ãããã§ç·šéããããšãã§ããŸãããã®ååã¯å€æŽãã¹ãã§ããã®ã¿ã€ãã®ãŠããŒã¯ãªããªãããã³ãã¬ãŒãåã§ãªããã°ãªããŸããã''æ¢åãã³ãã¬ãŒã''ãªãã·ã§ã³ã¯ããŠãŒã¶ãŒãéžæããã¹ãããã·ã§ãããæã€æ¢åãã³ãã¬ãŒãã«å¯ŸããŠããã³çã
ãŸãã¯å床ãã³çããã§ããããã«ããŸããæ£ããèšå®ããã«ã¯ããã®æ¢åãã³ãã¬ãŒãã¯åããã£ã¬ã¯ããªããã®ã¹ãããã·ã§ããå®çŸ©ãšããŠç£èŠã§ããªããã°ãªããŸãããã»ã¬ã¯ã·ã§ã³ããã¯ã¹ã¯æ£åœãªæ¢åã®ãã³ãã¬ãŒãã ãã衚瀺ããŸããããæ£åœã§ãªãæ¢åãã³ãã¬ãŒããååšãããšããŠããã®ãªãã·ã§ã³ã§ã¯éžæãããŸããã
@@ -1584,9 +1471,7 @@ view_dynagroup_exprBuilder_expressionType_resourceConfig = ãªãœãŒã¹æ§æ
view_dynagroup_exprBuilder_expressionType_resourceType = ãªãœãŒã¹ã¿ã€ã
view_dynagroup_exprBuilder_expressionType_tooltip = ãã®åŒã®ããããã£ã¯ä»¥äžã®ãã®ã«åãæ¿ãããŸãã<br/> <b>ãªãœãŒã¹</b>: ååãããŒãžã§ã³ãšãã£ããªãœãŒã¹ããããã£<br/> <b>ãªãœãŒã¹ã¿ã€ã</b>: ç¹å®ã¿ã€ãã®ãªãœãŒã¹ã®æ€çŽ¢<br/> <b>ãªãœãŒã¹ã«ããŽãª</b>: ãã©ãããã©ãŒã ããµãŒããŒããµãŒãã¹ãšãã£ãã«ããŽãªã«ãããªãœãŒã¹æ€çŽ¢<br/> <b>ãã¬ã€ã</b>: ã¢ãã¿ããããã¬ã€ãã®ããã«éžæãããå€ãæã€ãªãœãŒã¹<br/> <b>ãã©ã°ã€ã³æ§æ</b>: ã³ã³ããŒãã³ãã®ãã©ã°ã€ã³ã³ã³ããŒãã³ãæ§æèšå®ã«ããæ€çŽ¢<br/> <b>ãªãœãŒã¹æ§æ</b>: 管çãªãœãŒã¹ã®æ§æèšå®ã«ããæ€çŽ¢
view_dynagroup_exprBuilder_expressionType_trait = ãã¬ã€ã
-view_dynagroup_exprBuilder_expression_tooltip = ããã¯ä»¥äžã®ãã©ãŒã å
ã®éžæã«ãã£ãŠè¡šçŸãããå®å
šãªåŒã§ãããã®ããã¹ãã¯ã"åŒã®è¿œå "ãã¿ã³ãã¯ãªãã¯ãããšãã°ã«ãŒãå®çŸ©åŒã®ããã¹ãã«è¿œå ãããŸãã
##view_dynagroup_exprBuilder_groupBy = Group by
-view_dynagroup_exprBuilder_groupBy_tooltip = GroupByã¯ã·ã¹ãã ãå
¥ååŒããã®å€ã«ã€ããŠãããã解æãã§ããããã«ããŸããäŸãã°ãã¯ã©ã¹ã¿ãŒåã«ããGroupByã«ãã£ãŠããã¹ãŠã®ã¯ã©ã¹ã¿ãŒã¡ã³ããŒããã®äžã«å«ããããªã¯ã©ã¹ã¿ã®ã°ã«ãŒããäœæããŸãã
##view_dynagroup_exprBuilder_memberOf = Member of
##view_dynagroup_exprBuilder_memberOf_tooltip = memberof will restrict the dynagroup members to be a subset of the specified resource group. Specifying multiple memberof conditions will restrict the dynagroup members to be a subset of the union of members of the specified groups.
view_dynagroup_exprBuilder_noPlugins = --ãã©ã°ã€ã³ãªã--
@@ -1610,7 +1495,6 @@ view_dynagroup_exprBuilder_resource_tooltip = ãªãœãŒã¹ã®ã¬ãã«ãæã¿
view_dynagroup_exprBuilder_savedExpression = ä¿åãããåŒ
view_dynagroup_exprBuilder_title = åŒãã«ããŒ
view_dynagroup_exprBuilder_unset = èšå®è§£é€
-view_dynagroup_exprBuilder_unset_tooltip = èšå®è§£é€ã¯ããŒã¿ããŒã¹å
ã®nullå€ãæã€å€ãã®ãã¹ãŠãçºèŠããŸããããã¯ããŒã¿ããŒã¹ã¹ãã¢ãšåãåããããŒã¿ã®çç±ã«ãã"="ãªãã¬ãŒã¿ã䜿ãããšã¯å¯èœã§ã¯ãããŸããã
view_dynagroup_exprBuilder_value_tooltip = åãåããåŒã®ããã®æååå€
view_dynagroup_expression = åŒ
view_dynagroup_expressionBuilderIconTooltip = åŒãã«ããŒ...
@@ -1641,8 +1525,6 @@ view_dynagroup_template_jbossas4_hostingApp = JBossAS 4 - ãã¹ãã£ã³ã°ã
view_dynagroup_template_jbossas4_nonsecured = JBossAS 4 - ã»ãã¥ã¢ã§ãªããã¹ãŠ
view_dynagroup_template_jbossas4_uniqueVersions = JBossAS 4 - ãŠããŒã¯ããŒãžã§ã³
view_dynagroup_template_jbossas5_clusters = JBossAS 5/6 - ã¯ã©ã¹ã¿
-view_dynagroup_template_platforms = ã€ã³ãã³ããªå
ã®ãã©ãããã©ãŒã ãªãœãŒã¹
-view_dynagroup_template_uniqueResourceTypes = ã€ã³ãã³ããªå
ã®ãŠããŒã¯ãªãœãŒã¹ã¿ã€ã
view_groupConfigEdit_member = ã¡ã³ããŒ
view_groupConfigEdit_noListProps = ã°ã«ãŒãæ§æã«çŸåšãµããŒããããŠããªãããããã£ã®ãªã¹ã
view_groupConfigEdit_saveReminder = èšå®ãå€æŽãããŠããŸã - ãããã®å€æŽãä¿åããã®ãå¿ããªãã§ãã ããããããªããšå€±ãããŸãã
@@ -1680,7 +1562,6 @@ view_group_operationScheduleDetails_memberResource = ã¡ã³ããŒãªãœãŒã¹
view_group_operationScheduleDetails_value_parallel = 䞊è¡å®è¡
view_group_operationScheduleDetails_value_sequential = 以äžã«ç€ºããé 㧠(ã¡ã³ããŒãªãœãŒã¹ããã©ãã°&ããããããŠé çªãå€æŽ)
view_group_pluginConfig_edit_currentGroupProperties = çŸåšã®ã°ã«ãŒãããããã£
-view_group_pluginConfig_edit_invalid = 次ã®ã³ãã¯ã·ã§ã³èšå®ããããã£ã«ã¯äžæ£ãªå€ãèšå®ãããŠããŸãã®ã§ãã³ãã¯ã·ã§ã³èšå®ãä¿åããããŸãã«ä¿®æ£ãããå¿
èŠããããŸã: [{0}]
view_group_pluginConfig_edit_noperm = ãã®ã°ã«ãŒãã³ãã¯ã·ã§ã³èšå®ãç·šéããæš©éããããŸãã
view_group_pluginConfig_edit_saveFailure = ã°ã«ãŒãå [{1}] ãšäºææ§ã®ãã [{0}] ã®ããã®ã°ã«ãŒãèšå®æŽæ°ã®éå§ã«å€±æããŸãã
view_group_pluginConfig_edit_saveInitiated_concise = ã°ã«ãŒãã³ãã¯ã·ã§ã³èšå®ã®æŽæ°ãéå§ãããŸãã
@@ -1689,7 +1570,6 @@ view_group_pluginConfig_edit_saveTooltip = ãã¹ãŠã®ã°ã«ãŒãã¡ã³ããŒ
view_group_pluginConfig_edit_valid = ãã¹ãŠã®ã³ãã¯ã·ã§ã³èšå®ããããã£ã«ã¯æ£ããå€ãèšå®ãããŠããŸãã®ã§ãã³ãã¯ã·ã§ã³èšå®ã¯ä¿åã§ããŸã
view_group_pluginConfig_members_fetchFailure = ã°ã«ãŒã [{0}] ã®ã¡ã³ããŒã®ããã®ãã©ã°ã€ã³æ§ææŽæ°å±¥æŽã®ååŸã«å€±æããŸãã
view_group_pluginConfig_members_fetchFailureConn = [{0}] ã®ããã®ã¡ã³ããŒã³ãã¯ã·ã§ã³èšå®ã®åãåºãã«å€±æããŸãã
-view_group_pluginConfig_members_fetchFailureConnInProgress = ã°ã«ãŒããã©ã°ã€ã³æ§æã®æŽæ°ã¯çŸåšé²è¡äžã§ããã°ã«ãŒãèšå®ãé²èŠ§ããåã«æŽæ°ãå®äºãããŸã§åŸ
ã£ãŠãã ããã
view_group_pluginConfig_members_statusDetails = ã¹ããŒã¿ã¹ã®è©³çŽ°
view_group_pluginConfig_members_statusFailure = ãã®æ§æã®æŽæ°ã¯æªç¥ã®çç±ã«ãã倱æããŸãã
view_group_pluginConfig_members_statusInprogress = ãã®æ§æã®æŽæ°ã¯ãŸã é²è¡äžã§ã
@@ -1700,7 +1580,6 @@ view_group_pluginConfig_table_clickStatusIcon = 詳现ã¯ã¹ããŒã¿ã¹ã¢ã€
view_group_pluginConfig_table_deleteFailure = ã°ã«ãŒããã©ã°ã€ã³æ§æå±¥æŽã®åé€ã«å€±æããŸãã
view_group_pluginConfig_table_deleteSuccessful = [{0}] ã®å±¥æŽãåé€ããŸãã
view_group_pluginConfig_table_failFetch = ã°ã«ãŒããã©ã°ã€ã³å±¥æŽã®ååŸã«å€±æããŸãã
-view_group_pluginConfig_table_msg1 = åã
ã®ãªãœãŒã¹ã®ã¹ããŒã¿ã¹ã®ããã®ã¡ã³ããŒå±¥æŽãèŠãŠãã ãã
view_group_pluginConfig_table_statusDetails = ã¹ããŒã¿ã¹ã®è©³çŽ°
view_group_pluginConfig_table_statusFailure = ãã®ã°ã«ãŒãæ§æã®æŽæ°ã¯å€±æããŸãã
view_group_pluginConfig_table_statusInprogress = ãã®ã°ã«ãŒãæ§æã®æŽæ°ã¯é²è¡äžã§ã
@@ -1721,7 +1600,6 @@ view_group_resConfig_edit_saveTooltip = ãã¹ãŠã®ã°ã«ãŒãã¡ã³ããŒã®
view_group_resConfig_edit_valid = ãã¹ãŠã®æ§æããããã£ã¯æ£ããå€ã§ãã®ã§ããã®æ§æã¯ä¿åå¯èœã§ã
view_group_resConfig_members_fetchFailure = ã°ã«ãŒã [{0}] ã®ã¡ã³ããŒã®ããã®ãªãœãŒã¹æ§ææŽæ°å±¥æŽã®ååŸã«å€±æããŸãã
view_group_resConfig_members_fetchFailureConfig = [{0}] ã®ããã®ã¡ã³ããŒãªãœãŒã¹æ§æèšå®ã®åãåºãã«å€±æããŸãã
-view_group_resConfig_members_fetchFailureConfigInProgress = ã°ã«ãŒããªãœãŒã¹æ§æã®æŽæ°ãçŸåšé²è¡äžã§ããã°ã«ãŒãèšå®ãé²èŠ§ããåã«æŽæ°ãçµäºããã®ããåŸ
ã¡ãã ãã
view_group_resConfig_members_statusDetails = ã¹ããŒã¿ã¹ã®è©³çŽ°
view_group_resConfig_members_statusFailure = ãã®æ§æã®æŽæ°ã¯æªç¥ã®çç±ã§å€±æããŸããã
view_group_resConfig_members_statusInprogress = ãã®æ§æã®æŽæ°ã¯ãŸã é²è¡äžã§ã
@@ -1732,7 +1610,6 @@ view_group_resConfig_table_clickStatusIcon = 詳现ã¯ã¹ããŒã¿ã¹ã¢ã€ã³
view_group_resConfig_table_deleteFailure = ã°ã«ãŒããªãœãŒã¹æ§æå±¥æŽã®åé€ã«å€±æããŸãã
view_group_resConfig_table_deleteSuccessful = [{0}] ã®å±¥æŽã®åé€ãããŸãã
view_group_resConfig_table_failFetch = ã°ã«ãŒãæ§æå±¥æŽã®ååŸã«å€±æããŸãã
-view_group_resConfig_table_msg1 = åã
ã®ãªãœãŒã¹ã®ã¹ããŒã¿ã¹ã¯ã¡ã³ããŒå±¥æŽãé²èŠ§ããŠãã ãã
view_group_resConfig_table_statusDetails = ã¹ã¿ãŒã¿ã¹ã®è©³çŽ°
view_group_resConfig_table_statusFailure = ãã®ã°ã«ãŒãæ§æã®æŽæ°ã倱æããŸãã
view_group_resConfig_table_statusInprogress = ãã®ã°ã«ãŒãæ§æã®æŽæ°ã¯ãŸã é²è¡äžã§ã
@@ -1755,7 +1632,6 @@ view_group_summary_mixed = æ··åš
view_group_summary_nameUpdateFailure = ID [{0}] ãæã€ãªãœãŒã¹ã°ã«ãŒãåã®å€æŽã«å€±æããŸãã - [{1}] ãã [{2}] ãžã®å€æŽãã§ããŸããã§ãã
view_group_summary_nameUpdateSuccessful = ID [{0}] ãæã€ãªãœãŒã¹ã°ã«ãŒãã [{1}] ãã [{2}] ãžã®å€æŽããŸãã
view_group_summary_recursive = ååž°
-view_helpTop_description = ãã®ã»ã¯ã·ã§ã³ã¯ããã¥ã¡ã³ããŒã·ã§ã³ããã¥ãŒããªã¢ã«ãããŒãžã§ã³ããã®ä»ã®ãã«ãæ
å ±ãæäŸããŸãã
view_help_section_product = ãããã¯ã
view_help_section_product_about = RHQã«ã€ããŠ
view_inventory_adq = ãã£ã¹ã«ããªãã¥ãŒ
@@ -1791,7 +1667,6 @@ view_inventory_resource_loadFailed = ID [{0}] ãæã€ãªãœãŒã¹ã¯ååšã
view_inventory_resources_deleteConfirm = éžæããããªãœãŒã¹ãåé€ãããã§ãã?
view_inventory_resources_deleteFailed = éžæããããªãœãŒã¹ã®åé€ã«å€±æããŸãã
view_inventory_resources_deleteSuccessful = ãã®ãªãœãŒã¹ãåé€ãããªã¯ãšã¹ãã¯(è€æ°ã®)ãšãŒãžã§ã³ãã«æ£ããéä¿¡ãããŸããã
-view_inventory_resources_disableConfirm = æ¬åœã«éžæãããªãœãŒã¹ãç¡å¹ã«ãããã§ãã? ç¡å¹ãªéã«ãšãŒãžã§ã³ãããå ±åãããã¢ãã€ã©ããªãã£ã¯ç¡èŠãããŸããç¡å¹åã¯éåžžæäœãä¿å®ã®äžéšãšããŠåæ¢ããããšãæåŸ
ãããŠãããªãœãŒã¹ã«å¯ŸããŠåœ¹ã«ç«ã¡ãŸãã
view_inventory_resources_disableFailed = éžæããããªãœãŒã¹ãç¡å¹åããã®ã«å€±æããŸããã
view_inventory_resources_disableSuccessful = éžæããããªãœãŒã¹ãšãã®åãšãªã [{0}] ãªãœãŒã¹ãç¡å¹åããã®ã«æåããŸããã
view_inventory_resources_enableConfirm = æ¬åœã«éžæããããªãœãŒã¹ãæå¹ãããã§ãã? æå¹ã®éã¯ãšãŒãžã§ã³ãããªãœãŒã¹ã®ã¢ãã€ã©ããªãã£ãå ±åãããŸã§ã¢ãã€ã©ããªãã£ã¯UNKNOWNã«èšå®ãããŸãããšãŒãžã§ã³ãã¯çŽè¿ã®éœåã®è¯ããšãã«çŸåšã®ã¢ãã€ã©ããªãã£ãå ±åããããã«èŠæ±ãããŸãã
@@ -1830,13 +1705,10 @@ view_login_invalidEmail = äžæ£ãªE-ã¡ãŒã«ã¢ãã¬ã¹
view_login_login = ãã°ã€ã³
view_login_logout = ãã°ã¢ãŠã
view_login_noBackend = ããã¯ãšã³ãããŒã¿ãœãŒã¹ã¯å©çšã§ããŸãã
-view_login_noLdap = 泚æïŒLDAP詳现ã®ä»»æã®åãåºãã¯æåããŸããã§ãããæåã§ã®å
¥åãèŠæ±ãããŸã
-view_login_noUser = å
¥åããããŠãŒã¶ãŒåãŸãã¯ãã¹ã¯ãŒãã¯èšé²ããããã®ãšäžèŽããŸãã
view_login_prompt = ãã°ã€ã³ããŠãã ãã
view_login_registerLater = (ãã£ã³ã»ã« - ç»é²ãåŸã§å®æãããŠãã ãã)
view_login_registerLdapSuccess = æ°ããLDAPãŠãŒã¶ãŒã®ç»é²ã«æåããŸãã
view_login_registerUser = ãŠãŒã¶ã®ç»é²
-view_login_welcomeMsg = {0}ãžãããã! <br/><br/> ç»é²ãå®æãããããã«æ¬¡ã®ãã£ãŒã«ããå
¥å/æŽæ°ããŠãã ããã<br/> "OK"ãã¯ãªãã¯ãããããã°ã€ã³ããŸãã<br/><br/>
view_measureRange_last = æéã®ç¯å² - çŽå
view_measureRange_simple = ã·ã³ãã«...
view_measureRange_start = æéã®ç¯å² - éå§
@@ -1869,7 +1741,6 @@ view_operationHistoryDetails_error_fetchFailure = ãªãã¬ãŒã·ã§ã³å±¥æŽã®
view_operationHistoryDetails_noResults = ãã®ãªãã¬ãŒã·ã§ã³ã¯å€ãè¿ããŸãã
view_operationHistoryDetails_operation = ãªãã¬ãŒã·ã§ã³
view_operationHistoryDetails_parameters = ãã©ã¡ãŒã¿ãŒ
-view_operationHistoryDetails_requestor = èŠæ±è
view_operationHistoryDetails_results = çµæ
view_operationHistoryDetails_status = ã¹ããŒã¿ã¹
view_operationHistoryList_button_forceDelete = 匷å¶åé€
@@ -1883,7 +1754,6 @@ view_operationHistoryList_button_runOperation = ãªãã¬ãŒã·ã§ã³ã®å®è¡
##view_operationHistoryList_deleteSuccess = Deleted [{0}] operation history items.
view_operationHistoryList_notYetStarted = ãŸã éå§ããŠããŸãã
view_operationHistoryList_title = ãªãã¬ãŒã·ã§ã³å±¥æŽ
-view_operationScheduleDetails_enterParametersBelow = 以äžã«ãã©ã¡ãŒã¿ãŒãå
¥åããŠãã ãã...
view_operationScheduleDetails_fieldDefault_description = 説æãèŠããšãããªãã¬ãŒã·ã§ã³ãéžæããŠãã ãã
view_operationScheduleDetails_fieldDefault_parameters = ãã©ã¡ãŒã¿ãŒãèŠãããã«ãªãã¬ãŒã·ã§ã³ãéžæããŠãã ãã
view_operationScheduleDetails_fieldHelp_description = ãã®ã¹ã±ãžã¥ãŒã«ããããªãã¬ãŒã·ã§ã³ã®ããã®ä»»æã®èª¬æ (äŸãå€éä¿å®ã®ããã®ã¢ããªãµãŒããŒåèµ·åïŒ
@@ -1897,9 +1767,7 @@ view_portlet_autodiscovery_setting_platforms = çºèŠããããã©ãããã©
view_portlet_configure_definitionDesc = ããŒãã¬ããã®ããã®æ§æèšå®
view_portlet_configure_definitionTitle = ããŒãã¬ããæ§æ
view_portlet_configure_needed = èšå®ãã¿ã³ãæŒããŠãã®ããŒãã¬ãããæ§æããŠãã ãã
-view_portlet_configure_notNeeded = æ§æã¯ãã®ããŒãã¬ããã«ã¯å¿
èŠãããŸãã
view_portlet_defaultName_autodiscovery = ãã£ã¹ã«ããªãã¥ãŒ
-view_portlet_defaultName_favoriteResources = ãæ°ã«å
¥ããªãœãŒã¹
view_portlet_defaultName_groupMetric = ãªãœãŒã¹ã°ã«ãŒãã¡ããªãã¯ã°ã©ã
view_portlet_defaultName_group_alerts = ã°ã«ãŒã: ã¢ã©ãŒã
view_portlet_defaultName_group_bundles = ã°ã«ãŒã: ãã³ãã«ãããã€
@@ -1933,11 +1801,8 @@ view_portlet_help_autodiscovery = ãã®ããŒãã¬ããã¯æ°èŠã«çºèŠã
view_portlet_help_bundle_deps = ãã®ããŒãã¬ããã¯æ§æããããã£ã¹ãã¬ã€ã¯ã©ã€ããªã¢ãããŒã¹ã«ããé¢é£ãããã³ãã«ãããã€ã衚瀺ããŸã
view_portlet_help_config_updates = ãã®ããŒãã¬ããã¯æ§æèšå®ãšäžèŽããæè¿ã®æ§æå€æŽã衚瀺ããŸã
view_portlet_help_eventcounts = ãã®ããŒãã¬ããã¯æ§æããããã£ã¹ãã¬ã€ã¯ã©ã€ããªã¢ã«äžèŽããã€ãã³ãæ°ã衚瀺ããŸã
-view_portlet_help_favoriteResources = ãã®ããŒãã¬ããã¯çŸåšãŠãŒã¶ãŒã®ãæ°ã«å
¥ããªãœãŒã¹ã衚瀺ããŸã
view_portlet_help_graph = ãã®ããŒãã¬ããã¯ãªãœãŒã¹ã¡ããªãã¯ã°ã©ãã衚瀺ããŸã
view_portlet_help_inventorySummary = ãã®ããŒãã¬ããã¯çŸåšãŠãŒã¶ãŒã®é²èŠ§å¯èœãªã€ã³ãã³ããªãšã¡ããªãã¯åéçã®ã·ã§ãŒããµããªãŒã衚瀺ããŸã
-view_portlet_help_mashup = ãã®ããŒãã¬ããã¯(iframeãä»ããŠ)ãªã¢ãŒãHTTPãªã¯ãšã¹ããè¿ããå
容ã衚瀺ããŸã
-view_portlet_help_message = ãã®ããŒãã¬ããã¯éçãªHTMLã¡ãã»ãŒãžã衚瀺ããŸãã <i>message</i> ããããã£ã®æ§æãå¿
èŠã§ãã
view_portlet_help_metrics = ãã®ããŒãã¬ããã¯æ§æããããã£ã¹ãã¬ã€ã¯ã©ã€ããªã¢ãããŒã¹ã«ããŠé¢é£ããã¡ããªãã¯ããŒã¿ã®ã°ã©ããæããŸã
view_portlet_help_none = ãã®ããŒãã¬ããçšã®ãã«ãã¯å©çšã§ããŸãã
view_portlet_help_oobs = ãã®ããŒãã¬ãã㯠ç¯å²å€ã¡ããªãã¯æ¡ä»¶ã衚瀺ããŸã
@@ -1969,8 +1834,6 @@ view_portlet_problemResources_config_display_range = ããããæ°æéé¡ã£
view_portlet_problemResources_config_display_range2 = {0} ãã {1} ãŸã§
view_portlet_problemResources_maxDisplaySetting = æ倧ãªãœãŒã¹
view_portlet_recentAlerts_config_members = ã¡ã³ããŒã®éžæ
-view_portlet_recentAlerts_config_priority_label = åªå
ã¢ã©ãŒã
-view_portlet_recentAlerts_config_when = 次ã®æé以å
ã§
view_portlet_recentAlerts_fail_msg = ã¢ã©ãŒããã£ã«ã¿ãªã³ã°ã®ããã«å²ãåœãŠããããªãœãŒã¹ãããŒãããã®ã«å€±æããŸãã
view_portlet_recentlyAdded_error1 = æè¿è¿œå ããããªãœãŒã¹ãããŒãããã®ã«å€±æããŸãã
view_portlet_recentlyAdded_setting_addedPlatforms = æè¿è¿œå ããããã©ãããã©ãŒã
@@ -1978,19 +1841,15 @@ view_portlet_results_empty = æå®ãããã¯ã©ã€ããªã¢ã®çµæã¯èŠã€
view_remoteAgentInstall_agentStatus = ãšãŒãžã§ã³ãã®ã¹ããŒã¿ã¹
view_remoteAgentInstall_agentStatusDefault = -ã¹ããŒã¿ã¹ã®æŽæ°ãã¿ã³ãã¯ãªãã¯ããŠãã ãã-
view_remoteAgentInstall_buttonFindAgent = ãšãŒãžã§ã³ãã®çºèŠ
-view_remoteAgentInstall_connInfo = æ¥ç¶æ
å ±
view_remoteAgentInstall_error_1 = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ãã¹ãæ¢ããŠããéã«ãšã©ãŒãçºçããŸãã
-view_remoteAgentInstall_error_2 = å
±éã®å Žæã§æ¢ããŠãããšãã«ãšãŒãžã§ã³ããèŠã€ããããšãã§ããŸããã§ãã
view_remoteAgentInstall_error_3 = [{0}] 以äžã«ã€ã³ã¹ããŒã«ããããšãŒãžã§ã³ãèŠã€ããããšãã§ããŸããã§ãã
view_remoteAgentInstall_error_4 = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ã«å€±æããŸãã
view_remoteAgentInstall_error_5 = ãšãŒãžã§ã³ãã®éå§ã«å€±æããŸãã
view_remoteAgentInstall_error_6 = ãšãŒãžã§ã³ãã®åæ¢ã«å€±æããŸãã
view_remoteAgentInstall_installAgent = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«
-view_remoteAgentInstall_installInfo = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«æ
å ±
view_remoteAgentInstall_installPath = ãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ãã¹
view_remoteAgentInstall_owner = ãªãŒããŒ
view_remoteAgentInstall_promptHost = ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããŠããããããã¯ããããã€ã³ã¹ããŒã«ããããã¹ã
-view_remoteAgentInstall_promptInstallPath = ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããŠããããããã¯ããããã€ã³ã¹ããŒã«ãããå Žæãã©ãã«ã€ã³ã¹ããŒã«ãããã確信ããªããªãã芪ãã£ã¬ã¯ããªãå
¥åããŠã''ãšãŒãžã§ã³ãã®çºèŠ''ãã¿ã³ãã¯ãªãã¯ããã®ãã£ã¬ã¯ããªä»¥äžãã¹ãã£ã³ããŠãã ããã空ã®ãã¹ãå
¥åãããªãããšãŒãžã§ã³ããã€ã³ã¹ããŒã«ãããã¹ãäžã®å
±éã®å Žæãæ¢çŽ¢ãããŸãã
view_remoteAgentInstall_promptPassword = SSHãä»ããŠãã¹ãäžã®ãŠãŒã¶ãŒãèªèšŒããããã«äœ¿ãããã¯ã¬ãã³ã·ã£ã«
view_remoteAgentInstall_promptPort = SSHãµãŒããŒããªã¹ã³ããããŒããæå®ãããªããã°ãããã©ã«ãã¯22ã§ãã
view_remoteAgentInstall_promptUser = SSHãä»ããŠãã¹ãã«æž¡ãããã¯ã¬ãã³ã·ã£ã«ãä¿æãããŠãŒã¶ãŒã®åå
@@ -2015,12 +1874,10 @@ view_reports_subsystems = ãµãã·ã¹ãã
view_resourceResourceGroupList_error_fetchFailure = ãªãœãŒã¹ã®ã°ã«ãŒãã®åãåºãã«å€±æããŸãã
view_resourceResourceGroupList_error_updateFailure = å²ãåœãŠããããªãœãŒã¹ã°ã«ãŒãã®æŽæ°ã«å€±æããŸãã
view_resourceResourceGroupList_message_updateSuccess = [{0}] ã®ããã«æŽæ°ãããã°ã«ãŒãã¡ã³ããŒã·ãã.
-view_resource_inventory_activity_changed_by = æŽæ°è
view_resource_inventory_activity_criteria_no_recent_events = 衚瀺ã¯ã©ã€ããªã¢ã«åºã¥ãã€ãã³ãã¯ãããŸãã
view_resource_inventory_activity_no_recent_alerts = æè¿ã®ã¢ã©ãŒãã¯ãããŸãã
view_resource_inventory_activity_no_recent_bundle_deploy = æè¿ã®ãã³ãã«ãããã€ã¡ã³ãã¯ãããŸãã
view_resource_inventory_activity_no_recent_config_history = æ§æå€æŽå±¥æŽã¯ãããŸãã
-view_resource_inventory_activity_no_recent_events = çŽè¿24æé以å
ã«ã€ãã³ãã¯ãããŸãã
view_resource_inventory_activity_no_recent_metrics = ãã®ãªãœãŒã¹ã«ã¯æè¿ã®ã¡ããªãã¯ã¯ãããŸãã
view_resource_inventory_activity_no_recent_oob = ç¯å²å€ã®æ¡ä»¶ã¯ã¿ã€ãããŸãã
view_resource_inventory_activity_no_recent_operations = æè¿ã®ãªãã¬ãŒã·ã§ã³å±¥æŽã¯ãããŸãã
@@ -2032,30 +1889,20 @@ view_resource_inventory_childhistory_status_invalidArtifact = äžæ£ãªçæç©
view_resource_inventory_childhistory_status_invalidConfig = äžæ£ãªæ§æ
view_resource_monitor_availability_currentAsOf = ãã®ããŒã¿ã¯ {0} ã®çŸåšã®ãã®ã§ãã
view_resource_monitor_availability_currentStatus = çŸåšã®ã¹ããŒã¿ã¹
-view_resource_monitor_availability_currentStatus_value = ãã®ãªãœãŒã¹ã¯ {1} ãã {0} ã®ç¶æ
ã®ãŸãŸã§ã
view_resource_monitor_availability_disabledTime = ç¡å¹åãããæé
-view_resource_monitor_availability_disabledTime_tooltip = ãªãœãŒã¹ãDISABLEDç¶æ
ã§ãã环ç©æé
view_resource_monitor_availability_downtime = åæ¢æé
-view_resource_monitor_availability_downtime_tooltip = ãªãœãŒã¹ãDOWNç¶æ
ã§ãã环ç©æé
view_resource_monitor_availability_loadFailed = ã¢ãã€ã©ããªãã£å±¥æŽã®ããŒãã«å€±æããŸãã
view_resource_monitor_availability_mtbf = MTBF
-view_resource_monitor_availability_mtbf_tooltip = å¹³åæ
éééïŒMean Time Before Failure) - ã€ãŸããããã¯DOWNããåã«UPç¶æ
ã§è²»ããããå¹³åæéãæå³ããŸã
view_resource_monitor_availability_mttr = MTTR
-view_resource_monitor_availability_mttr_tooltip = å¹³å埩æ§æé (Mean Time To Recovery) - ã€ãŸããããã¯å床UPããåã«DOWNç¶æ
ã§è²»ããããå¹³åæéãæå³ããŸã
view_resource_monitor_availability_numDisabled = ç¡å¹ååæ°
-view_resource_monitor_availability_numDisabled_tooltip = ãªãœãŒã¹ãDISABLEDç¶æ
ã«å
¥ã£ãåæ°ã®åèš
view_resource_monitor_availability_numFailures = é害æ°
-view_resource_monitor_availability_numFailures_tooltip = ãªãœãŒã¹ãDOWNç¶æ
ã«å
¥ã£ãåæ°ã®åèš
view_resource_monitor_availability_summaryError = ãªãœãŒã¹ã¢ãã€ã©ããªãã£ã®ãµããªãããŒãããã®ã«å€±æããŸãã
view_resource_monitor_availability_tooltip_disabled = ãªãœãŒã¹ãDISABLEDã§ããæéãèµ·åãåæ¢ã®æéãšæ¯èŒããããŒã»ã³ããŒãž
view_resource_monitor_availability_tooltip_down = ãªãœãŒã¹ãDOWNããŠããæéãèµ·åãç¡å¹åã®æéãšæ¯èŒããããŒã»ã³ããŒãž
##view_resource_monitor_availability_tooltip_up = Percentage of time the resource has been UP compared to the times it was down and disabled
-view_resource_monitor_availability_unknown = ãã®ãªãœãŒã¹ã¯ {0} ã®éã¯æªç¥ã®ç¶æ
ã§ããã
view_resource_monitor_availability_uptime = èµ·åæé
-view_resource_monitor_availability_uptime_tooltip = ãªãœãŒã¹ãUPç¶æ
ã§ãã环ç©æé
view_resource_monitor_calltime_average = å¹³å
view_resource_monitor_calltime_count = æ°
-view_resource_monitor_calltime_destination = åŒã³åºãã®å®å
##view_resource_monitor_calltime_destinationFilter = Destination Filter
view_resource_monitor_calltime_loadFailed = åŒã³åºãæéããŒã¿ãããŒãã§ããŸãã
view_resource_monitor_calltime_maximum = æ倧
@@ -2073,7 +1920,6 @@ view_resource_monitor_table_avg = å¹³å
view_resource_monitor_table_last = ææ°
view_resource_monitor_table_max = æ倧
view_resource_monitor_table_min = æå°
-view_resource_title_component_errors_cleanup = åé¡ã«åãçµãã åŸã¯ã以äžã®ã¡ãã»ãŒãžãåé€ããŠå
šç»é¢ã®'管çã³ã³ããŒãã³ããšã©ãŒ'ãã¯ãªã¢ããå¿
èŠããããŸãã
view_resource_title_component_errors_tooltip = 管çã³ã³ããŒãã³ããšã©ãŒã®è¡šç€ºã詳现ã¯ã¯ãªãã¯ããŠãã ãã
view_resource_title_tagUpdateFailed = ãªãœãŒã¹ã¿ã°ã®æŽæ°ã«å€±æããŸãã
##view_searchBar_buttonTooltip = Click to hide/show the search suggestion list. Also hide the list by hitting Escape when focus is in the search pattern text box.
@@ -2089,8 +1935,6 @@ view_searchBar_savedSearch_namePrompt = ãã¿ãŒã³ãååãä»ããŠãã
view_searchBar_savedSearch_rename = ä¿åæžã¿æ€çŽ¢ã®ååã [{0}] ãžå€æŽããã®ã«æåããŸãã
view_searchBar_savedSearch_save = [{0}] ãšããååã®ä¿åæžã¿æ€çŽ¢ãäœæããã®ã«æåããŸãã
view_searchBar_suggest_failSuggest = ãµãžã§ãã·ã§ã³ã®äœæã«å€±æããŸãããå¯èœæ§ã®ãããšã©ãŒããµãŒããŒãã°ãã調ã¹ãŠãã ããã
-view_searchBar_suggest_noSuggest = äžä»¶ãäžèŽããŸããã§ãããç°ãªããã¿ãŒã³ãå
¥åããŠãã ããã
-view_searchGUI_loginStatus = ãã°ã€ã³ã¹ããŒã¿ã¹ã確å®ã§ããŸããããµãŒããŒã®ç¶æ
ã調ã¹ãŠãã ãã
view_selector_assigned = å²ãåœãŠããã {0}
view_selector_available = å©çšå¯èœãª {0}
view_subTab_error_disabled = ç¡å¹ã«ãªã£ããµãã¿ã [{0}] ãéžæã§ããŸãã
@@ -2159,20 +2003,11 @@ view_tags_error_1 = ã¿ã°ãããŒãããã®ã«å€±æããŸãã
view_tags_tags = ã¿ã°
view_tags_tooltip_1 = ã¯ãªãã¯ãããšãã®ã¿ã°ãåé€ããŸã
view_tags_tooltip_2 = ã¯ãªãã¯ãããšã¿ã°ãç·šéããŸã
-view_tags_tooltip_3 = 次ã®ãã©ãŒãããã§ã¿ã°ãå
¥åããŠãã ãã: (namespace:)(semantic=)tagname (äŸ it:env=QA, or owner=John)
view_testTop_description = ãã®ã»ã¯ã·ã§ã³ã¯ããŸããŸãªGUIã³ã³ããŒãã³ãããã¹ãããããã®ããŒãžãå«ãã§ããŸã
view_testTop_title = ãã¹ã
-view_titleBar_common_addedFav = [{0}] ããæ°ã«å
¥ããšããŠè¿œå ããŸãã
-view_titleBar_common_addedFavFailure = [{0}] ããæ°ã«å
¥ããšããŠè¿œå ããã®ã«å€±æããŸãã
-view_titleBar_common_clickToAddFav = ã¯ãªãã¯ãããšããããæ°ã«å
¥ããšããŠè¿œå ããŸã
-view_titleBar_common_clickToRemoveFav = ã¯ãªãã¯ãããšããããæ°ã«å
¥ãããåé€ããŸã
view_titleBar_common_loadTagsFailure = [{0}] ã®ããã®ã¿ã°ãããŒãããã®ã«å€±æããŸãã
-view_titleBar_common_removedFav = ãæ°ã«å
¥ããã [{0}] ãåé€ããŸãã
-view_titleBar_common_removedFavFailure = ãæ°ã«å
¥ããã [{0}] ãåé€ããã®ã«å€±æããŸãã
view_titleBar_common_updateTagsFailure = [{0}] ã®ã¿ã°ã®æŽæ°ã«å€±æããŸãã
view_titleBar_common_updateTagsSuccessful = [{0}] ã®ã¿ã°ãæŽæ°ãããŸãã
-view_titleBar_group_failInfo = ID [{1}] ãæã€ã°ã«ãŒã [{0}] ã«é¢ããäžè¬æ
å ±ãååŸããã®ã«å€±æããŸãã
-view_titleBar_group_summary_collapsedTooltip = ã¯ãªãã¯ãããšãã®ã°ã«ãŒãã®è©³çŽ°æ
å ±ã衚瀺ããŸã
view_titleBar_group_summary_expandedTooltip = ã¯ãªãã¯ãããšãã®ã°ã«ãŒãã®è©³çŽ°ãé ããŸã
view_tree_common_contextMenu_addChartToDashboard = ããã·ã¥ããŒã [{0}] ãžãã£ãŒããè¿œå ããŸã
view_tree_common_contextMenu_editPluginConfiguration = [{0}] ãã©ã°ã€ã³æ§æãç·šéããŸã
@@ -2207,7 +2042,6 @@ view_type_resourceTypes = ãªãœãŒã¹ã¿ã€ã
view_type_typeTreeLoadFailure = ãªãœãŒã¹ã¿ã€ãã®ããªãŒããŒã¿ãããŒãããã®ã«å€±æããŸãã
view_upload_alreadyUploaded = ãã¡ã€ã«ã¯ãã§ã«æŽæ°ãããŠããŸãã
view_upload_bundleDistFile = åæ£ãã¡ã€ã«
-view_upload_error_bundleDistFile = ãã³ãã«é
åžãã¡ã€ã«ã®ã¢ããããŒããšã©ãŒ
view_upload_error_file = ãã¡ã€ã«ã¢ããããŒããšã©ãŒ
view_upload_error_fileName = ãã¡ã€ã«ã¢ããããŒããšã©ãŒ [{0}]
view_upload_error_fileName_2 = [{0}] ã®ã¢ããããŒããšã©ãŒã§ããäžæ£ãªãã¡ã€ã«ãã¹ã調ã¹ãŠãã ããã
@@ -2223,7 +2057,6 @@ view_upload_tooltip_2 = ãã¡ã€ã«ã¢ããããŒãã¯ä»¥å倱æããŠã
view_upload_upload = ã¢ããããŒã
view_upload_uploadFile = ã¢ããããŒããã¡ã€ã«
widget_colorPicker_tooltip = æ°èŠã«ã©ãŒãéžæããããã«ã¯ãªãã¯ããŠãã ãã
-widget_durationItem_inputUnitLessThanTargetUnit = å
¥ååäœã¯ã¿ãŒã²ããåäœãããå°ããã§ã
widget_durationItem_unitTypeNotSupported = åäœã®ã¿ã€ã [{0}] ã¯ãã® DurationItem ã«ãããµããŒããããŸãã
widget_jobTriggerEditor_fieldHelp_repeatDuration = ãã®ãªãã¬ãŒã·ã§ã³ãäœåãå®è¡ãããããŸãã¯æå®ãããæéãçµäºãããŸã§å®è¡ãç¶ããŸã
widget_jobTriggerEditor_fieldHelp_repeatInterval = ãªãã¬ãŒã·ã§ã³ãå®è¡ãããé »åºŠ
@@ -2250,11 +2083,8 @@ widget_jobTriggerEditor_value_nowAndRepeat = çŸåš & ç¹°ãè¿ã
widget_jobTriggerEditor_value_on = on
widget_jobTriggerEditor_value_until = Until
widget_recordEditor_error_invalidViewPath = ç¡å¹ãªãã¥ãŒãã¹: [{0}]
-widget_recordEditor_error_multipleRecords = è€æ°ã¬ã³ãŒããèŠã€ãããŸãã - 1ã€ã ããæåŸ
ãããŠããŸã
-widget_recordEditor_error_noRecords = ã¬ã³ãŒããäžã€ãèŠã€ãããŸããã§ãã - 1ã€ã ããæåŸ
ãããŠããŸã
widget_recordEditor_error_operation = ãªãã¬ãŒã·ã§ã³ã倱æããŸããããšã©ãŒãçºçããŸããã
widget_recordEditor_error_operationInvalidValues = ãªãã¬ãŒã·ã§ã³ã倱æããŸããã - äžã€ä»¥äžã®ãã£ãŒã«ããç¡å¹ãªå€ãæã£ãŠããŸã
-widget_recordEditor_error_permissionCreate = [{0}] ãæ°èŠäœæããããã«å¿
èŠãªæš©éãæã£ãŠããŸãã
widget_recordEditor_error_unsupportedOperationType = ãµããŒãå€ã®ãªãã¬ãŒã·ã§ã³ ã¿ã€ã: [{0}]
widget_recordEditor_info_recordCreatedConcise = {0} ãäœæãããŸããã
widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] ãäœæãããŸããã
@@ -2272,7 +2102,6 @@ widget_resourceFactoryWizard_contentTemplatePrompt = ãããã€æéæ§æã
widget_resourceFactoryWizard_createWizardTitle = ã¿ã€ã [{0}] ã®æ°èŠãªãœãŒã¹ã®äœæ
widget_resourceFactoryWizard_createWizardWindowTitle = ãªãœãŒã¹äœæãŠã£ã¶ãŒã
widget_resourceFactoryWizard_editConfigStepName = ç·šéã®æ§æ
-widget_resourceFactoryWizard_editConfigStep_nothingToDo = ãã®ãªãœãŒã¹ã®ããã«å®çŸ©ãå¿
èŠãªæ§æã¯ååšããŸãã
widget_resourceFactoryWizard_execute1 = æ°èŠãªãœãŒã¹ã®äœæã«å€±æããŸãã - ããã±ãŒãžããŒãžã§ã³ãååšããŸãã
#widget_resourceFactoryWizard_execute2 = Failed to create a new resource. Cannot connect to the agent. This may indicate that the agent is down.
widget_resourceFactoryWizard_failedToDeleteVersion = ãªãœãŒã¹äœæã®ãã£ã³ã»ã«äžã«ããã±ãŒãžããŒãžã§ã³ã®åé€ã«å€±æããŸãã
@@ -2282,7 +2111,6 @@ widget_resourceFactoryWizard_importFailure = æåã§ã®ãªãœãŒã¹ã®ã€ã³
widget_resourceFactoryWizard_importSubmitted = æ°èŠãªãœãŒã¹ã¿ã€ã [{0}] ã®ã€ã³ããŒããªã¯ãšã¹ããéä¿¡ãããŸãã
widget_resourceFactoryWizard_importWizardTitle = ãªãœãŒã¹ã¿ã€ã [{0}] ãã€ã³ããŒã
widget_resourceFactoryWizard_importWizardWindowTitle = ãªãœãŒã¹ã€ã³ããŒããŠã£ã¶ãŒã
-widget_resourceFactoryWizard_infoStepName = ãªãœãŒã¹æ
å ±
widget_resourceFactoryWizard_infoStep_loadFail = ã¢ãŒããã¯ãã£ãŒãå©çšå¯èœã«ããã®ã«å€±æããŸãã
widget_resourceFactoryWizard_namePrompt = æ°èŠãªãœãŒã¹å
#widget_resourceFactoryWizard_nameComment = Not all management plug-ins or their managed resources allow the agent to set the name for a new resource. This value will only be used by agent plug-ins that support the capability. For plug-ins that do not support the capability, the resource may receive a generic or different name when it is discovered.
@@ -2291,7 +2119,6 @@ widget_resourceFactoryWizard_templatePrompt = ã³ãã¯ã·ã§ã³èšå®ãã³ã
##widget_resourceFactoryWizard_timeoutHelp = A timeout duration that if specified will override the default timeout for child resource creation (on the {0} Agent). The default timeout is set to 60 seconds. A higher value may be useful for particularly long create actions, like deployment of a large application. Usually used if a previous attempt suffered a timeout failure. Note that if there is a timeout failure, it is still possible that the resource deployment succeeded. In the event of a timeout you may want to execute a discovery scan before attempting to redeploy the resource.
widget_resourceFactoryWizard_uploadFailure = ãã¡ã€ã«ã¢ããããŒãã®å€±æ
widget_resourceFactoryWizard_uploadFileStepName = ãªãœãŒã¹ã³ã³ãã³ããã¡ã€ã«ã®ã¢ããããŒã
-widget_resourceFactoryWizard_uploadInProgress = ã¢ããããŒãã¯åŠçäžã§ã... 倧ããªãã¡ã€ã«ãé
åžããã«ã¯æ°åãããããšããããŸãã
widget_resourceFactoryWizard_versionPrompt = ããã±ãŒãžããŒãžã§ã³
widget_resourceSelector_groupCategory = ã°ã«ãŒãã«ããŽãª
widget_resourceSelector_pleaseSelectMultipleResource = äžã€ä»¥äžã®ãªãœãŒã¹ãéžæããŠãã ãã
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
index a6c4de1..a8f44b4 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
@@ -443,12 +443,12 @@ util_userSession_loadFailSubject = UserSessionManager: ì¬ì©ì Subject ë¡ë
util_userSession_logoutFail = ë¡ê·žììì ì€íšíìµëë€
util_widgetsField_unlimited = 묎ì í
view_aboutBox_allRightsReserved = All Rights Reserved.
-view_aboutBox_buildNumber = ë¹ë ë²íž:
+view_aboutBox_buildNumber = ë¹ë ë²íž
view_aboutBox_failedToLoad = ì í ì 볎ì ë¡ëì ì€íšíìµëë€..
view_aboutBox_homepage = ííìŽì§
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = {0}ì êŽíì¬
-view_aboutBox_version = ë²ì :
+view_aboutBox_version = ë²ì
view_adminConfig_agentPlugins = ììŽì íž íë¬ê·žìž
view_adminConfig_downloads = ë€ìŽë¡ë
##view_adminConfig_ignoreResourceTypes = Ignored Resource Types
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
index 06c76d1..dc645ab 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
@@ -492,12 +492,12 @@ util_userSession_loadFailSubject = UserSessionManager: Falha ao carregar a crede
util_userSession_logoutFail = Falha durante o logout.
util_widgetsField_unlimited = Ilimitado
view_aboutBox_allRightsReserved = Todos os Direitos Reservados.
-view_aboutBox_buildNumber = N\u00FAmero do Build:
+view_aboutBox_buildNumber = N\u00FAmero do Build
view_aboutBox_failedToLoad = Falha ao carregar informa\u00E7oes do produto.
view_aboutBox_homepage = P\u00E1gina Inicial
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = Sobre {0}
-view_aboutBox_version = Vers\u00E3o:
+view_aboutBox_version = Vers\u00E3o
##view_adminConfig_agentPlugins = Agent Plugins
##view_adminConfig_alertDefTemplates = Alert Definition Templates
view_adminConfig_downloads = Downloads
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
index b181def..7af2d80 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
@@ -2585,12 +2585,12 @@ util_userSession_loadFailSubject = UserSessionManager\: Ме ÑЎалПÑÑ Ð·Ð°
util_userSession_logoutFail = Ðе ÑЎалПÑÑ Ð²ÑйÑО Оз ÑОÑÑеЌÑ.
util_widgetsField_unlimited = ÐеПгÑаМОÑеММÑй
view_aboutBox_allRightsReserved = ÐÑе пÑава заÑОÑеМÑ.
-view_aboutBox_buildNumber = ÐÐŸÐŒÐµÑ ÑбПÑкО\:
+view_aboutBox_buildNumber = ÐÐŸÐŒÐµÑ ÑбПÑкО\
view_aboutBox_failedToLoad = Ðе ÑЎалПÑÑ Ð·Ð°Ð³ÑÑзОÑÑ ÐžÐœÑПÑЌаÑÐžÑ ÐŸ пÑПЎÑкÑе.
view_aboutBox_homepage = ÐПЌаÑÐœÑÑ ÑÑÑаМОÑа
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = Ð {0}
-view_aboutBox_version = ÐеÑÑОÑ\:
+view_aboutBox_version = ÐеÑÑОÑ\
view_adminConfig_downloads = ÐагÑÑзкО
##view_adminConfig_ignoreResourceTypes = Ignored Resource Types
##view_adminConfig_ignoreResourceTypes_changeTitle = Change?
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
index c0da3c3..b80027b 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
@@ -481,12 +481,12 @@ util_userSession_loadFailSubject = UserSessionManager: \u52a0\u8f7d\u7528\u6237\
util_userSession_logoutFail = \u6ce8\u9500\u5931\u8d25.
util_widgetsField_unlimited = \u65e0\u9650\u5236
view_aboutBox_allRightsReserved = All Rights Reserved.
-view_aboutBox_buildNumber = \u4ea7\u54c1\u7f16\u8bd1\u53f7:
+view_aboutBox_buildNumber = \u4ea7\u54c1\u7f16\u8bd1\u53f7
view_aboutBox_failedToLoad = \u52a0\u8f7d\u4ea7\u54c1\u4fe1\u606f\u5931\u8d25.
view_aboutBox_homepage = \u4e3b\u9875
view_aboutBox_jbossByRedHat = JBoss by Red Hat
view_aboutBox_title = \u5173\u4e8e {0}
-view_aboutBox_version = \u7248\u672c:
+view_aboutBox_version = \u7248\u672c
##view_adminConfig_agentPlugins = Agent Plugins
##view_adminConfig_alertDefTemplates = Alert Definition Templates
view_adminConfig_downloads = \u4e0b\u8f7d
commit 25706c31e65c006eb0b2c08ef5686bb70566964a
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Thu Oct 17 19:00:26 2013 +0200
UI: Improvement to auto refreshable views: the refresh() method is not performed if the session has expired. If the user logs in again the refresh() method will be regularly called again.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/LoginView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/LoginView.java
index e219297..921d215 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/LoginView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/LoginView.java
@@ -578,5 +578,13 @@ public class LoginView extends Canvas {
}
loginButton.setDisabled(false);
}
+
+ /**
+ * Call this method to find out if the login dialog is shown
+ * @return true if it is shown
+ */
+ public static boolean isLoginShowing() {
+ return loginShowing;
+ }
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/admin/storage/StorageNodeAdminView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/admin/storage/StorageNodeAdminView.java
index 87738ac..a50fabd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/admin/storage/StorageNodeAdminView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/admin/storage/StorageNodeAdminView.java
@@ -123,9 +123,7 @@ public class StorageNodeAdminView extends EnhancedVLayout implements Bookmarkabl
new AsyncCallback<Map<Integer, Integer>>() {
@Override
public void onFailure(Throwable caught) {
- if (UserSessionManager.isLoggedOut()) {
- stopRefreshing();
- } else {
+ if (!UserSessionManager.isLoggedOut()) {
CoreGUI.getErrorHandler().handleError(
"Unable to render storage node alert view: " + caught.getMessage(), caught);
}
@@ -221,19 +219,17 @@ public class StorageNodeAdminView extends EnhancedVLayout implements Bookmarkabl
isRefreshing = true;
GWTServiceLookup.getStorageService().findNotAcknowledgedStorageNodeAlertsCount(new AsyncCallback<Integer>() {
@Override
- public void onSuccess(Integer result) {
- Log.info("Running the task for fetching the number of ALL unack alerts...");
- alerts.setTitle(StorageNodeAdminView.getAlertsString(alerts.getTitle(), result));
- isRefreshing = false;
- }
+ public void onSuccess(Integer result) {
+ Log.info("Running the task for fetching the number of ALL unack alerts...");
+ alerts.setTitle(StorageNodeAdminView.getAlertsString(alerts.getTitle(), result));
+ isRefreshing = false;
+ }
- @Override
- public void onFailure(Throwable caught) {
- if (UserSessionManager.isLoggedOut()) {
- stopRefreshing();
- }
+ @Override
+ public void onFailure(Throwable caught) {
+ if (!UserSessionManager.isLoggedOut()) {
Log.error("Unable to fetch the unack alerts: " + caught.getMessage());
- isRefreshing = false;
+ }
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/dashboard/AutoRefreshUtil.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/dashboard/AutoRefreshUtil.java
index 2493082..48a48bd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/dashboard/AutoRefreshUtil.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/dashboard/AutoRefreshUtil.java
@@ -22,6 +22,7 @@ package org.rhq.coregui.client.dashboard;
import com.google.gwt.user.client.Timer;
import com.smartgwt.client.widgets.Canvas;
+import org.rhq.coregui.client.LoginView;
import org.rhq.coregui.client.UserSessionManager;
import org.rhq.coregui.client.inventory.AutoRefresh;
import org.rhq.coregui.client.util.MeasurementUtility;
@@ -57,9 +58,10 @@ public class AutoRefreshUtil {
// if the autoRefresh component is already refreshing or is not currently on screen then
// don't bother doing the work. this protects against unnecessary or unwanted db queries
- // being performed in the background.
- if (!autoRefresh.isRefreshing() && autoRefreshCanvas.isDrawn()
- && autoRefreshCanvas.isVisible()) {
+ // being performed in the background. Also, avoid refresh if the session has expired and we're
+ // waiting for the user to login and refresh his session.
+ if (!autoRefresh.isRefreshing() && autoRefreshCanvas.isDrawn() && autoRefreshCanvas.isVisible()
+ && !autoRefreshCanvas.isDisabled() && !LoginView.isLoginShowing()) {
autoRefresh.refresh();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/ResourceTitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/ResourceTitleBar.java
index 87a2bf4..2acf6db 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/ResourceTitleBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/ResourceTitleBar.java
@@ -182,9 +182,7 @@ public class ResourceTitleBar extends EnhancedVLayout {
public void onFailure(Throwable caught) {
pluginErrors.setVisible(false);
- if (UserSessionManager.isLoggedOut()) {
- availAndErrorRefresher.stop();
- } else {
+ if (!UserSessionManager.isLoggedOut()) {
CoreGUI.getErrorHandler().handleError(
MSG.dataSource_resourceErrors_error_fetchFailure(String.valueOf(resourceComposite.getResource()
.getId())), caught);
@@ -219,9 +217,7 @@ public class ResourceTitleBar extends EnhancedVLayout {
public void onFailure(Throwable caught) {
availabilityImage.setSrc(ImageManager.getAvailabilityLargeIconFromAvailType(currentAvail));
- if (UserSessionManager.isLoggedOut()) {
- availAndErrorRefresher.stop();
- } else {
+ if (!UserSessionManager.isLoggedOut()) {
CoreGUI.getErrorHandler().handleError(MSG.view_inventory_resource_loadFailed(String.valueOf(resource.getId())), caught);
}
commit d948f17eeeabdca10282bd913835f5e8dbb43383
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Thu Oct 17 18:53:48 2013 +0200
[BZ 1019100] - Definition of security constrain per Queue/Topic creation shouldn't be enforced - there is no need to require at least two items of "Security Configurations". The security for topics/queues can be set globally somewhere else or turned off.
diff --git a/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
index 9a53a80..e213719 100644
--- a/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
@@ -1886,7 +1886,7 @@
</c:constraint>
</c:simple-property>
- <c:list-property name="securityConfig" max="4" min="2" displayName="Security Configurations"
+ <c:list-property name="securityConfig" max="4" displayName="Security Configurations"
description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
<c:map-property name="role" displayName="Security Configuration Attributes"
description="These are the attributes that define the role name, and if the role is allowed to read, write or create Messages on this Queue">
@@ -2203,7 +2203,7 @@
</c:constraint>
</c:simple-property>
- <c:list-property name="securityConfig" max="4" min="2" displayName="Security Configurations"
+ <c:list-property name="securityConfig" max="4" displayName="Security Configurations"
description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
<c:map-property name="role" displayName="Security Configuration Attributes"
description="These are the attributes that define the role name, and if the role is allowed to read, write or create Messages on this Queue">
diff --git a/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
index 07d0ec6..36bc9fb 100644
--- a/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
@@ -1157,7 +1157,7 @@
</c:group>
<c:group name="securityConf" displayName="Security Role Configurations">
- <c:list-property name="SecurityConf" max="4" min="2"
+ <c:list-property name="SecurityConf" max="4"
displayName="Security Configurations"
description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
<c:map-property name="role"
@@ -1499,7 +1499,7 @@
</c:group>
<c:group name="securityConf" displayName="Security Role Configurations">
- <c:list-property name="SecurityConf" max="4" min="2"
+ <c:list-property name="SecurityConf" max="4"
displayName="Security Configurations"
description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
<c:map-property name="role"
@@ -1722,7 +1722,7 @@
</c:group>
<c:group name="securityConf" displayName="Security Role Configurations">
- <c:list-property name="SecurityConfig" max="4" min="2"
+ <c:list-property name="SecurityConfig" max="4"
displayName="Security Configurations"
description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
<c:map-property name="role"
@@ -1950,7 +1950,7 @@
</c:group>
<c:group name="securityConf" displayName="Security Role Configurations">
- <c:list-property name="SecurityConfig" max="4" min="2"
+ <c:list-property name="SecurityConfig" max="4"
displayName="Security Configurations"
description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
<c:map-property name="role"
commit adef14aa8d5e3e69237ddd7353ea8a51c3dba1af
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Oct 16 17:11:09 2013 -0400
BZ 1019917 add descriptive error message when parsing of recipe fails
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/BundleDistributionFileUploadServlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/BundleDistributionFileUploadServlet.java
index a6ed8aa..b9308f7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/BundleDistributionFileUploadServlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/BundleDistributionFileUploadServlet.java
@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletResponse;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.bundle.BundleNotFoundException;
import org.rhq.core.domain.bundle.BundleVersion;
+import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.enterprise.server.bundle.BundleManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -59,7 +60,8 @@ public class BundleDistributionFileUploadServlet extends FileUploadServlet {
writeExceptionResponse(response, "BundleNotFoundException " + e.getMessage(), e); // clients will look for this string!
return;
} catch (Exception e) {
- writeExceptionResponse(response, "Failed to upload bundle distribution file", e); // clients will look for this string!
+ writeExceptionResponse(response,
+ "Failed to upload bundle distribution file : " + ThrowableUtil.getAllMessages(e), e);
return;
}
commit dd24e958a5b72fd49520faef8714d9713014b656
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Oct 16 15:54:13 2013 -0400
https://bugzilla.redhat.com/show_bug.cgi?id=1019809
Second commit for this bug.
Handle the fact that we were clearing the three relevant properties during
server install on oracle, which then failed a late-stage validation.
diff --git a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java
index e737fc6..6f426b2 100644
--- a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java
+++ b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java
@@ -426,9 +426,10 @@ public class InstallerServiceImpl implements InstallerService {
throw new Exception("Cannot get server, port or db name from connection URL: " + url);
}
} else {
- serverProperties.put(ServerProperties.PROP_DATABASE_SERVER_NAME, "");
- serverProperties.put(ServerProperties.PROP_DATABASE_PORT, "");
- serverProperties.put(ServerProperties.PROP_DATABASE_DB_NAME, "");
+ // these need to be set to "unused" to pass property file validation
+ serverProperties.put(ServerProperties.PROP_DATABASE_SERVER_NAME, "unused");
+ serverProperties.put(ServerProperties.PROP_DATABASE_PORT, "unused");
+ serverProperties.put(ServerProperties.PROP_DATABASE_DB_NAME, "unused");
}
} catch (Exception e) {
throw new Exception("JDBC connection URL seems to be invalid", e);
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
index 27c5829..9c46014 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
@@ -512,6 +512,14 @@ public class Upgrade extends AbstractInstall {
copyReferredFile(commandLine, oldServerProps, "rhq.server.client.security.keystore.file");
copyReferredFile(commandLine, oldServerProps, "rhq.server.client.security.truststore.file");
+ // for oracle, ensure the unused properties are set to unused otherwise prop file validation may fail
+ String dbType = oldServerProps.getProperty("rhq.server.database.type-mapping");
+ if (null != dbType && dbType.toLowerCase().contains("oracle")) {
+ oldServerProps.setProperty("rhq.server.database.server-name", "unused");
+ oldServerProps.setProperty("rhq.server.database.port", "unused");
+ oldServerProps.setProperty("rhq.server.database.db-name", "unused");
+ }
+
// now merge the old settings in with the default properties from the new server install
String newServerPropsFilePath = new File(getBaseDir(), "bin/rhq-server.properties").getAbsolutePath();
PropertiesFileUpdate newServerPropsFile = new PropertiesFileUpdate(newServerPropsFilePath);
commit 79cb0a7f0ab65ea93eb52ce3c7479062148fb610
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Oct 16 15:51:07 2013 -0400
fix .classpath
diff --git a/.classpath b/.classpath
index c40e481..d3f8a13 100644
--- a/.classpath
+++ b/.classpath
@@ -380,7 +380,6 @@
<classpathentry exported="true" kind="var" path="M2_REPO/org/jboss/byteman/byteman-submit/1.5.2/byteman-submit-1.5.2.jar" sourcepath="M2_REPO/org/jboss/byteman/byteman-submit/1.5.2/byteman-submit-1.5.2-sources.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/jboss/byteman/byteman-bmunit/1.5.2/byteman-bmunit-1.5.2.jar" sourcepath="M2_REPO/org/jboss/byteman/byteman-bmunit/1.5.2/byteman-bmunit-1.5.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/cassandra/cassandra-all/1.2.4/cassandra-all-1.2.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/datastax/cassandra/cassandra-driver-core/1.0.2-rhq-1.2.4/cassandra-driver-core-1.0.2-rhq-1.2.4.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/thrift/libthrift/0.7.0/libthrift-0.7.0.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.2/commons-cli-1.2.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/guava/guava/12.0/guava-12.0.jar"/>
@@ -397,5 +396,6 @@
<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.1.1/jackson-databind-2.1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.1.1/jackson-core-2.1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/com/codahale/metrics/metrics-core/3.0.1/metrics-core-3.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/datastax/cassandra/cassandra-driver-core/1.0.2/cassandra-driver-core-1.0.2.jar"/>
<classpathentry kind="output" path="eclipse-classes"/>
</classpath>
commit e7bd44a6b9c8088ed0c56db0f8b2590f6b0d6dfb
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Oct 16 13:32:15 2013 -0400
make sure our sample bundle's recipe has the new, required attribute 'compliance'
diff --git a/etc/samples/provisioning/sample-bundle/src/main/bundle/deploy.xml b/etc/samples/provisioning/sample-bundle/src/main/bundle/deploy.xml
index 8bfec17..a4dbc07 100644
--- a/etc/samples/provisioning/sample-bundle/src/main/bundle/deploy.xml
+++ b/etc/samples/provisioning/sample-bundle/src/main/bundle/deploy.xml
@@ -24,6 +24,7 @@
type="integer"/>
<rhq:deployment-unit name="appserver"
+ compliance="full"
preinstallTarget="appserver-preinstall" postinstallTarget="appserver-postinstall">
<rhq:system-service name="jbossas-petstore" scriptFile="jbossas-init-script"
configFile="jbossas-init-config" overwriteScript="true"
commit e90767fc90dd7e2ca77e9097f5d193479007c06d
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Oct 16 12:14:10 2013 -0400
Bug 1019809 - Unable to install rhq server with oracle db
Handle the unused oracle database properties. Note that the properties
still require values, but the preset "unused" values are now OK. Updated
the comments in rhq-server.properties to hopefully be more clear for
Oracle.
diff --git a/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml b/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
index 924ae67..3614b7f 100644
--- a/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
+++ b/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
@@ -537,15 +537,18 @@
# -----------------
# INSTALLATION ACTION REQUIRED!
# All properties must be explicitly set for the desired database vendor:
-#
-#
+#
# These should point to the database that your RHQ Server will use as
# its backend RDBMS storage.
-# If you are using Oracle, comment out the Postgres settings and
-# uncomment the Oracle settings below, adjusting the values as appropriate.
+# If you are using Oracle:
+# - comment out the Postgres settings
+# - uncomment the Oracle settings below
+# - adjust the values to match your environment
+# - do not edit the three unused properties, leave as "prop=unused"
+#
# NOTE: rhq.server.database.password is not to be set to the actual password
-# but instead should be the password in encoded form as generated by:
-# rhq-encode-password.sh(.bat)
+# but instead should be the encoded password value as generated by:
+# rhq-encode-password.sh(.bat)
#############################################################################
# PostgreSQL database
diff --git a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerProperties.java b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerProperties.java
index b3209f9..c00fb94 100644
--- a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerProperties.java
+++ b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerProperties.java
@@ -202,6 +202,13 @@ public class ServerProperties {
OPTIONAL_PROPERTIES.add(PROP_CONNECTOR_BIND_PORT);
}
+ // this list contains all the non-STRING properties that can be set to "unused" (for oracle support)
+ private static final Set<String> UNUSED_PROPERTIES;
+ static {
+ UNUSED_PROPERTIES = new HashSet<String>();
+ UNUSED_PROPERTIES.add(PROP_DATABASE_PORT);
+ }
+
public static final Set<String> CLIENT_AUTH_MODES;
static {
CLIENT_AUTH_MODES = new HashSet<String>();
@@ -272,6 +279,9 @@ public class ServerProperties {
if (StringUtil.isBlank(val) && OPTIONAL_PROPERTIES.contains(name)) {
continue;
}
+ if ("unused".equalsIgnoreCase(val) && UNUSED_PROPERTIES.contains(name)) {
+ continue;
+ }
if (!("true".equals(val) || "false".equals(val))) {
dataErrors.append("[" + name + "] must exist and be set 'true' or 'false' : [" + val + "]\n");
}
@@ -282,6 +292,9 @@ public class ServerProperties {
if (StringUtil.isBlank(val) && OPTIONAL_PROPERTIES.contains(name)) {
continue;
}
+ if ("unused".equalsIgnoreCase(val) && UNUSED_PROPERTIES.contains(name)) {
+ continue;
+ }
try {
Integer.parseInt(val);
} catch (NumberFormatException e) {
commit 9eb9b7d8837736f0742eacf2151afb700733a2a9
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Oct 15 17:17:29 2013 -0400
Bug 814579 - pretty.print failed to print output in non-interactive mode
Very strange issue. Replace out.print("\n") with out.println() calls
seems to solve the problem.
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/output/TabularWriter.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/output/TabularWriter.java
index 1809e39..4363036 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/output/TabularWriter.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/output/TabularWriter.java
@@ -645,13 +645,13 @@ public class TabularWriter {
}
}
- out.print("\n");
+ out.println("");
for (int i = 1; i < width; i++) {
out.print("-");
}
}
- out.print("\n");
+ out.println("");
}
@@ -669,12 +669,13 @@ public class TabularWriter {
out.print(" ");
}
}
- out.print("\n");
+ out.println("");
}
}
if (!hideRowCount) {
- out.print(data.length + " rows\n");
+ out.print(data.length + " rows");
+ out.println("");
}
}
commit 56ded9a8d30ec45bd5501b8622939b37793c8749
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Oct 15 23:03:21 2013 +0200
[BZ 743558] - fixing unit and integration tests
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
index ffae598..dabe031 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
@@ -100,7 +100,7 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
//These two still co-exist together in the codebase
//so let's make sure the values correspond to each other.
- SystemSettings settings = systemManager.getUnmaskedSystemSettings(true);
+ SystemSettings settings = systemManager.getUnmaskedSystemSettings(false);
Properties config = systemManager.getSystemConfiguration(overlord);
SystemSettings origSettings = new SystemSettings(settings);
@@ -117,7 +117,7 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
systemManager.setSystemSettings(overlord, settings);
- settings = systemManager.getUnmaskedSystemSettings(true);
+ settings = systemManager.getUnmaskedSystemSettings(false);
config = systemManager.getSystemConfiguration(overlord);
checkFormats(settings, config);
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java
index 58faffd..e7b007a 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java
@@ -64,7 +64,7 @@ public class SystemSettingsExporterTest extends JMockTest {
context.checking(new Expectations() {
{
- allowing(systemManager).getObfuscatedSystemSettings(true);
+ allowing(systemManager).getObfuscatedSystemSettings(false);
will(returnValue(getFakeSystemSettings()));
}
});
commit a6f174a14bcc834827f8911adc75355a22f2a851
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Oct 15 17:35:27 2013 +0200
[BZ 743558] support for masking and obfuscating the system config passwords
To remain consistent with how we expose different passwords, a new ability
to set some system settings private was added and the storage-related
settings were marked as such. This is because they are not supposed to be
manipulated through the SystemManager but have different dedicated
public-facing methods.
Also, for technical reasons STORAGE_PASSWORD remained a STRING field even
though it contains a password. This is because we treat this value
specially because it can already come obfuscated from the user input and
we only deobfuscate it at use-sites, not while "in transit".
In summary, the public API methods:
* SystemManagerRemote#getSettings() - does not return any private settings,
masks password fields
* SystemManagerRemote#setSettings() - does not update any private settings,
can update password fields, obfuscating them before persisting them, so
that the DB does not contain them in clear text
3 new methods were added to SystemManagerLocal:
* getUnmaskedSystemSettings(bool includePrivateSettings)
* getObfuscatedSystemSettings(bool includePrivateSettings)
* deobfuscate(SystemSettings)
with the semantics obvious from their signature.
All the previous uses of (get|set)SystemSettings were updated to use an
appropriate local SLSB alternative so that the behavior doesn't change.
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 5c8da9b..894176e 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -17,7 +17,7 @@
<description>Database schema setup, upgrade and other utilities</description>
<properties>
- <db.schema.version>2.141</db.schema.version>
+ <db.schema.version>2.142</db.schema.version>
<rhq.ds.type-mapping>${rhq.test.ds.type-mapping}</rhq.ds.type-mapping>
<rhq.ds.server-name>${rhq.test.ds.server-name}</rhq.ds.server-name>
<rhq.ds.db-name>${rhq.test.ds.db-name}</rhq.ds.db-name>
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
new file mode 100644
index 0000000..edb5569
--- /dev/null
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/SystemSettingsPasswordObfuscationTask.java
@@ -0,0 +1,80 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.core.db.upgrade;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.List;
+
+import org.rhq.core.db.DatabaseType;
+import org.rhq.core.util.obfuscation.Obfuscator;
+
+/**
+ * @author Lukas Krejci
+ * @since 4.10
+ */
+public class SystemSettingsPasswordObfuscationTask implements DatabaseUpgradeTask {
+
+ @Override
+ public void execute(DatabaseType type, Connection connection) throws SQLException {
+ updatePasswordField(type, connection, "CAM_LDAP_BIND_PW", "CAM_HELP_PASSWORD");
+ }
+
+ private void updatePasswordField(DatabaseType type, Connection connection, String... names) throws SQLException {
+ String sql = "SELECT id, property_value, default_property_value FROM rhq_system_config WHERE property_key IN (";
+ for(String name : names) {
+ sql += "'" + name + "', ";
+ }
+
+ if (names.length > 0) {
+ sql = sql.substring(0, sql.length() - 2);
+ }
+
+ sql += ")";
+
+ List<Object[]> results = type.executeSelectSql(connection, sql);
+
+ for(Object[] row : results) {
+ int settingId = (Integer) row[0];
+ String value = (String) row[1];
+ String defaultValue = (String) row[2];
+
+ sql = "UPDATE rhq_system_config SET ";
+ try {
+ if (value != null) {
+ value = Obfuscator.encode(value);
+ sql += "property_value = '" + value + "'";
+ }
+
+ if (defaultValue != null) {
+ defaultValue = Obfuscator.encode(defaultValue);
+
+ sql += (value != null ? ", " : "") + "default_property_value = '" + defaultValue + "'";
+ }
+ } catch (Exception e) {
+ throw new SQLException("Failed to obfuscate password system settings.", e);
+ }
+
+ sql += "WHERE id = " + settingId;
+
+ type.executeSql(connection, sql);
+ }
+ }
+}
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/sysconfig-data.xml b/modules/core/dbutils/src/main/scripts/dbsetup/sysconfig-data.xml
index 7213fc3..7ec1d3a 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup/sysconfig-data.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/sysconfig-data.xml
@@ -17,8 +17,9 @@
DEFAULT_PROPERTY_VALUE="@@@BASEURL@@@" FREAD_ONLY="FALSE"/>
<data ID="9" PROPERTY_KEY="CAM_HELP_USER" PROPERTY_VALUE="web"
DEFAULT_PROPERTY_VALUE="web" FREAD_ONLY="FALSE"/>
- <data ID="10" PROPERTY_KEY="CAM_HELP_PASSWORD" PROPERTY_VALUE="user"
- DEFAULT_PROPERTY_VALUE="user" FREAD_ONLY="FALSE"/>
+ <!-- 4c01cff24a6e9ab7 == obfuscated "user" -->
+ <data ID="10" PROPERTY_KEY="CAM_HELP_PASSWORD" PROPERTY_VALUE="4c01cff24a6e9ab7"
+ DEFAULT_PROPERTY_VALUE="4c01cff24a6e9ab7" FREAD_ONLY="FALSE"/>
<!-- default LDAP configuration options -->
<data ID="11" PROPERTY_KEY="CAM_LDAP_NAMING_FACTORY_INITIAL"
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 713aefe..dc7abfb 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2283,6 +2283,9 @@
</schema-directSQL>
</schemaSpec>
+ <schemaSpec version="2.142">
+ <schema-javaTask className="SystemSettingsPasswordObfuscationTask" />
+ </schemaSpec>
</dbupgrade>
</target>
</project>
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java b/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
index db85e0d..529b037 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/common/composite/SystemSetting.java
@@ -24,76 +24,75 @@ import org.rhq.core.domain.configuration.definition.PropertySimpleType;
public enum SystemSetting {
/** Base URL for the application - (i think this is only used for alert emails) */
- BASE_URL("CAM_BASE_URL", PropertySimpleType.STRING, false, true),
+ BASE_URL("CAM_BASE_URL", PropertySimpleType.STRING, false, true, true),
/** how long can an agent be quiet (i.e. not send an avail report) before we consider it down and backfill it */
- AGENT_MAX_QUIET_TIME_ALLOWED("AGENT_MAX_QUIET_TIME_ALLOWED", PropertySimpleType.LONG, false, true),
+ AGENT_MAX_QUIET_TIME_ALLOWED("AGENT_MAX_QUIET_TIME_ALLOWED", PropertySimpleType.LONG, false, true, true),
/** Are we allowing automatic AgentUpdate binary download */
- AGENT_AUTO_UPDATE_ENABLED("ENABLE_AGENT_AUTO_UPDATE", PropertySimpleType.BOOLEAN, false, true),
+ AGENT_AUTO_UPDATE_ENABLED("ENABLE_AGENT_AUTO_UPDATE", PropertySimpleType.BOOLEAN, false, true, true),
/** Are we rendering a special "debug" menu for administrators? */
- DEBUG_MODE_ENABLED("ENABLE_DEBUG_MODE", PropertySimpleType.BOOLEAN, false, true),
+ DEBUG_MODE_ENABLED("ENABLE_DEBUG_MODE", PropertySimpleType.BOOLEAN, false, true, true),
/** Are we rendering features which are marked as experimental for this installation? */
- EXPERIMENTAL_FEATURES_ENABLED("ENABLE_EXPERIMENTAL_FEATURES", PropertySimpleType.BOOLEAN, false, true),
+ EXPERIMENTAL_FEATURES_ENABLED("ENABLE_EXPERIMENTAL_FEATURES", PropertySimpleType.BOOLEAN, false, true, true),
/** How often to perform database maintenance */
- DATA_MAINTENANCE_PERIOD("CAM_DATA_MAINTENANCE", PropertySimpleType.LONG, false, true),
+ DATA_MAINTENANCE_PERIOD("CAM_DATA_MAINTENANCE", PropertySimpleType.LONG, false, true, true),
/** How long do we keep availability data */
- AVAILABILITY_PURGE_PERIOD("AVAILABILITY_PURGE", PropertySimpleType.LONG, false, true),
+ AVAILABILITY_PURGE_PERIOD("AVAILABILITY_PURGE", PropertySimpleType.LONG, false, true, true),
/** How long do we keep alerts */
- ALERT_PURGE_PERIOD("ALERT_PURGE", PropertySimpleType.LONG, false, true),
+ ALERT_PURGE_PERIOD("ALERT_PURGE", PropertySimpleType.LONG, false, true, true),
/** How long do we keep trait data */
- TRAIT_PURGE_PERIOD("TRAIT_PURGE", PropertySimpleType.LONG, false, true),
+ TRAIT_PURGE_PERIOD("TRAIT_PURGE", PropertySimpleType.LONG, false, true, true),
/** How long do we keep rt data */
- RT_DATA_PURGE_PERIOD("RT_DATA_PURGE", PropertySimpleType.LONG, false, true),
+ RT_DATA_PURGE_PERIOD("RT_DATA_PURGE", PropertySimpleType.LONG, false, true, true),
/** How long do we keep event data */
- EVENT_PURGE_PERIOD("EVENT_PURGE", PropertySimpleType.LONG, false, true),
+ EVENT_PURGE_PERIOD("EVENT_PURGE", PropertySimpleType.LONG, false, true, true),
/** How long do we keep orphaned drift files */
- DRIFT_FILE_PURGE_PERIOD("DRIFT_FILE_PURGE", PropertySimpleType.LONG, false, true),
+ DRIFT_FILE_PURGE_PERIOD("DRIFT_FILE_PURGE", PropertySimpleType.LONG, false, true, true),
/** Whether or not to reindex nightly */
- DATA_REINDEX_NIGHTLY("DATA_REINDEX_NIGHTLY", PropertySimpleType.BOOLEAN, false, true),
+ DATA_REINDEX_NIGHTLY("DATA_REINDEX_NIGHTLY", PropertySimpleType.BOOLEAN, false, true, true),
/**
* Baseline config options
* The frequency to run auto-baselines, if 0, never auto-calculate baselines
*/
- BASE_LINE_FREQUENCY("CAM_BASELINE_FREQUENCY", PropertySimpleType.LONG, false, true),
+ BASE_LINE_FREQUENCY("CAM_BASELINE_FREQUENCY", PropertySimpleType.LONG, false, true, true),
/** How much data to include */
- BASE_LINE_DATASET("CAM_BASELINE_DATASET", PropertySimpleType.LONG, false, true),
-
- LDAP_BASED_JAAS_PROVIDER("CAM_JAAS_PROVIDER", PropertySimpleType.BOOLEAN, false, true),
- LDAP_NAMING_PROVIDER_URL("CAM_LDAP_NAMING_PROVIDER_URL", PropertySimpleType.STRING, false, true),
- USE_SSL_FOR_LDAP("CAM_LDAP_PROTOCOL", PropertySimpleType.BOOLEAN, false, true),
- LDAP_LOGIN_PROPERTY("CAM_LDAP_LOGIN_PROPERTY", PropertySimpleType.STRING, false, false),
- LDAP_FILTER("CAM_LDAP_FILTER", PropertySimpleType.STRING, false, false),
- LDAP_GROUP_FILTER("CAM_LDAP_GROUP_FILTER", PropertySimpleType.STRING, false, false),
- LDAP_GROUP_MEMBER("CAM_LDAP_GROUP_MEMBER", PropertySimpleType.STRING, false, false),
- LDAP_GROUP_PAGING(
- "CAM_LDAP_GROUP_PAGING", PropertySimpleType.BOOLEAN, false, true),
- LDAP_GROUP_QUERY_PAGE_SIZE("CAM_LDAP_GROUP_QUERY_PAGE_SIZE", PropertySimpleType.LONG, false, true),
- LDAP_BASE_DN("CAM_LDAP_BASE_DN", PropertySimpleType.STRING, false, false),
- LDAP_BIND_DN("CAM_LDAP_BIND_DN", PropertySimpleType.STRING, false, false),
- LDAP_BIND_PW("CAM_LDAP_BIND_PW", PropertySimpleType.PASSWORD, false, false),
- LDAP_NAMING_FACTORY("CAM_LDAP_NAMING_FACTORY_INITIAL", PropertySimpleType.STRING, true, true),
- LDAP_GROUP_USE_POSIX("CAM_LDAP_GROUP_USE_POSIX", PropertySimpleType.BOOLEAN, false, true),
-
- ACTIVE_DRIFT_PLUGIN("ACTIVE_DRIFT_PLUGIN", PropertySimpleType.STRING, false, true),
+ BASE_LINE_DATASET("CAM_BASELINE_DATASET", PropertySimpleType.LONG, false, true, true),
+
+ LDAP_BASED_JAAS_PROVIDER("CAM_JAAS_PROVIDER", PropertySimpleType.BOOLEAN, false, true, true),
+ LDAP_NAMING_PROVIDER_URL("CAM_LDAP_NAMING_PROVIDER_URL", PropertySimpleType.STRING, false, true, true),
+ USE_SSL_FOR_LDAP("CAM_LDAP_PROTOCOL", PropertySimpleType.BOOLEAN, false, true, true),
+ LDAP_LOGIN_PROPERTY("CAM_LDAP_LOGIN_PROPERTY", PropertySimpleType.STRING, false, false, true),
+ LDAP_FILTER("CAM_LDAP_FILTER", PropertySimpleType.STRING, false, false, true),
+ LDAP_GROUP_FILTER("CAM_LDAP_GROUP_FILTER", PropertySimpleType.STRING, false, false, true),
+ LDAP_GROUP_MEMBER("CAM_LDAP_GROUP_MEMBER", PropertySimpleType.STRING, false, false, true),
+ LDAP_GROUP_PAGING("CAM_LDAP_GROUP_PAGING", PropertySimpleType.BOOLEAN, false, true, true),
+ LDAP_GROUP_QUERY_PAGE_SIZE("CAM_LDAP_GROUP_QUERY_PAGE_SIZE", PropertySimpleType.LONG, false, true, true),
+ LDAP_BASE_DN("CAM_LDAP_BASE_DN", PropertySimpleType.STRING, false, false, true),
+ LDAP_BIND_DN("CAM_LDAP_BIND_DN", PropertySimpleType.STRING, false, false, true),
+ LDAP_BIND_PW("CAM_LDAP_BIND_PW", PropertySimpleType.PASSWORD, false, false, true),
+ LDAP_NAMING_FACTORY("CAM_LDAP_NAMING_FACTORY_INITIAL", PropertySimpleType.STRING, true, true, true),
+ LDAP_GROUP_USE_POSIX("CAM_LDAP_GROUP_USE_POSIX", PropertySimpleType.BOOLEAN, false, true, true),
+
+ ACTIVE_DRIFT_PLUGIN("ACTIVE_DRIFT_PLUGIN", PropertySimpleType.STRING, false, true, true),
/**
* allow plugin initiated resource name & description upgrades (resource key is always upgradable)
* making this readonly because it is not currently supported by UI code
*/
- ALLOW_RESOURCE_GENERIC_PROPERTIES_UPGRADE("RESOURCE_GENERIC_PROPERTIES_UPGRADE", PropertySimpleType.BOOLEAN, true, true),
+ ALLOW_RESOURCE_GENERIC_PROPERTIES_UPGRADE("RESOURCE_GENERIC_PROPERTIES_UPGRADE", PropertySimpleType.BOOLEAN, true, true, true),
/**
* @deprecated This attribute is no longer maintained and might not reflect the true version of the running server.
@@ -101,60 +100,86 @@ public enum SystemSetting {
* information.
*/
@Deprecated
- SERVER_VERSION("SERVER_VERSION", PropertySimpleType.STRING, true, true),
+ SERVER_VERSION("SERVER_VERSION", PropertySimpleType.STRING, true, true, true),
- DB_SCHEMA_VERSION("DB_SCHEMA_VERSION", PropertySimpleType.STRING, true, true),
+ DB_SCHEMA_VERSION("DB_SCHEMA_VERSION", PropertySimpleType.STRING, true, true, true),
/** @deprecated since RHQ 4.8.0. This is not used anymore */
@Deprecated
- DATA_PURGE_1H_PERIOD("CAM_DATA_PURGE_1H", PropertySimpleType.LONG, true, true),
+ DATA_PURGE_1H_PERIOD("CAM_DATA_PURGE_1H", PropertySimpleType.LONG, true, true, true),
/** @deprecated since RHQ 4.8.0. This is not used anymore */
@Deprecated
- DATA_PURGE_6H_PERIOD("CAM_DATA_PURGE_6H", PropertySimpleType.LONG, true, true),
+ DATA_PURGE_6H_PERIOD("CAM_DATA_PURGE_6H", PropertySimpleType.LONG, true, true, true),
/** @deprecated since RHQ 4.8.0. This is not used anymore */
@Deprecated
- DATA_PURGE_1D_PERIOD("CAM_DATA_PURGE_1D", PropertySimpleType.LONG, true, true),
+ DATA_PURGE_1D_PERIOD("CAM_DATA_PURGE_1D", PropertySimpleType.LONG, true, true, true),
/** The length of CoreGUI inactivity (no call to UserSessionManager.refresh()) before a CoreGUI session timeout, Default: 1 hour */
- RHQ_SESSION_TIMEOUT("RHQ_SESSION_TIMEOUT", PropertySimpleType.LONG, false, true),
+ RHQ_SESSION_TIMEOUT("RHQ_SESSION_TIMEOUT", PropertySimpleType.LONG, false, true, true),
/**
- * The STORAGE settings are all read-only and deal with shared, cluster-wide settings
- * among storage nodes. They are read-only because they should only be updated through
+ * The STORAGE_* settings are all read-only and private and deal with shared, cluster-wide settings
+ * among storage nodes. They are read-only and private because they should only be updated through
* the storage subsystem. The username and password should not be updated at all.
*/
- STORAGE_CQL_PORT("STORAGE_CQL_PORT", PropertySimpleType.INTEGER, true, true),
- STORAGE_GOSSIP_PORT("STORAGE_GOSSIP_PORT", PropertySimpleType.INTEGER, true, true),
- STORAGE_AUTOMATIC_DEPLOYMENT("STORAGE_AUTOMATIC_DEPLOYMENT", PropertySimpleType.BOOLEAN, true, true),
- STORAGE_USERNAME("STORAGE_USERNAME", PropertySimpleType.STRING, true, true),
- STORAGE_PASSWORD("STORAGE_PASSWORD", PropertySimpleType.STRING, true, true),
+ STORAGE_CQL_PORT("STORAGE_CQL_PORT", PropertySimpleType.INTEGER, true, true, false),
+
+ /**
+ * The STORAGE_* settings are all read-only and private and deal with shared, cluster-wide settings
+ * among storage nodes. They are read-only and private because they should only be updated through
+ * the storage subsystem. The username and password should not be updated at all.
+ */
+ STORAGE_GOSSIP_PORT("STORAGE_GOSSIP_PORT", PropertySimpleType.INTEGER, true, true, false),
+
+ /**
+ * The STORAGE_* settings are all read-only and private and deal with shared, cluster-wide settings
+ * among storage nodes. They are read-only and private because they should only be updated through
+ * the storage subsystem. The username and password should not be updated at all.
+ */
+ STORAGE_AUTOMATIC_DEPLOYMENT("STORAGE_AUTOMATIC_DEPLOYMENT", PropertySimpleType.BOOLEAN, true, true, false),
+
+ /**
+ * The STORAGE_* settings are all read-only and private and deal with shared, cluster-wide settings
+ * among storage nodes. They are read-only and private because they should only be updated through
+ * the storage subsystem. The username and password should not be updated at all.
+ */
+ STORAGE_USERNAME("STORAGE_USERNAME", PropertySimpleType.STRING, true, true, false),
+
+ /**
+ * The STORAGE_* settings are all read-only and private and deal with shared, cluster-wide settings
+ * among storage nodes. They are read-only and private because they should only be updated through
+ * the storage subsystem. The username and password should not be updated at all.
+ */
+ STORAGE_PASSWORD("STORAGE_PASSWORD", PropertySimpleType.PASSWORD, true, true, false),
//these seem to be unused yet still present in the database...
@Deprecated
- HELP_USER("CAM_HELP_USER", PropertySimpleType.STRING, true, false),
+ HELP_USER("CAM_HELP_USER", PropertySimpleType.STRING, true, false, true),
@Deprecated
- HELP_PASSWORD("CAM_HELP_PASSWORD", PropertySimpleType.STRING, true, false),
+ HELP_PASSWORD("CAM_HELP_PASSWORD", PropertySimpleType.PASSWORD, true, false, true),
@Deprecated
- SYSLOG_ACTIONS_ENABLED("CAM_SYSLOG_ACTIONS_ENABLED", PropertySimpleType.STRING, true, false),
+ SYSLOG_ACTIONS_ENABLED("CAM_SYSLOG_ACTIONS_ENABLED", PropertySimpleType.STRING, true, false, true),
@Deprecated
- GUIDE_ENABLED("CAM_GUIDE_ENABLED", PropertySimpleType.STRING, true, false),
+ GUIDE_ENABLED("CAM_GUIDE_ENABLED", PropertySimpleType.STRING, true, false, true),
@Deprecated
- RT_COLLECT_IP_ADDRS("CAM_RT_COLLECT_IP_ADDRS", PropertySimpleType.STRING, true, false)
+ RT_COLLECT_IP_ADDRS("CAM_RT_COLLECT_IP_ADDRS", PropertySimpleType.STRING, true, false, true)
;
- private String internalName;
- private PropertySimpleType type;
- private boolean readOnly;
- private boolean requiringValue;
+ private final String internalName;
+ private final PropertySimpleType type;
+ private final boolean readOnly;
+ private final boolean requiringValue;
+ private final boolean isPublic;
- private SystemSetting(String name, PropertySimpleType type, boolean readOnly, boolean valueRequired) {
+ private SystemSetting(String name, PropertySimpleType type, boolean readOnly, boolean valueRequired, boolean isPublic) {
this.internalName = name;
this.type = type;
this.readOnly = readOnly;
this.requiringValue = valueRequired;
+ this.isPublic = isPublic;
}
public String getInternalName() {
@@ -169,6 +194,15 @@ public enum SystemSetting {
return requiringValue;
}
+ /**
+ * Whether or not is this setting present in the publicly accessible. If a property is NOT public, its value
+ * cannot be obtained remotely and cannot be updated through the SystemManager. Other mechanism must exist in the
+ * RHQ server to update such settings.
+ */
+ public boolean isPublic() {
+ return isPublic;
+ }
+
public boolean validateValue(String value) {
if (value == null) {
//null values are not allowed
diff --git a/modules/enterprise/gui/agentupdate-war/src/main/java/org/rhq/enterprise/gui/agentupdate/AgentUpdateServlet.java b/modules/enterprise/gui/agentupdate-war/src/main/java/org/rhq/enterprise/gui/agentupdate/AgentUpdateServlet.java
index a35a9c6..cab3721 100644
--- a/modules/enterprise/gui/agentupdate-war/src/main/java/org/rhq/enterprise/gui/agentupdate/AgentUpdateServlet.java
+++ b/modules/enterprise/gui/agentupdate-war/src/main/java/org/rhq/enterprise/gui/agentupdate/AgentUpdateServlet.java
@@ -195,8 +195,7 @@ public class AgentUpdateServlet extends HttpServlet {
private int getDownloadLimit() {
// if the server cloud was configured to disallow updates, return 0
- SystemSettings systemConfig = LookupUtil.getSystemManager().getSystemSettings(
- LookupUtil.getSubjectManager().getOverlord());
+ SystemSettings systemConfig = LookupUtil.getSystemManager().getUnmaskedSystemSettings(true);
if (!Boolean.parseBoolean(systemConfig.get(SystemSetting.AGENT_AUTO_UPDATE_ENABLED))) {
return 0;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/LdapGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/LdapGWTServiceImpl.java
index 07bd134..4e2807c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/LdapGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/LdapGWTServiceImpl.java
@@ -171,7 +171,7 @@ public class LdapGWTServiceImpl extends AbstractGWTServiceImpl implements LdapGW
*/
public Boolean checkLdapConfiguredStatus() throws RuntimeException {
try {
- SystemSettings systemSettings = systemManager.getSystemSettings(subjectManager.getOverlord());
+ SystemSettings systemSettings = systemManager.getUnmaskedSystemSettings(true);
String value = systemSettings.get(SystemSetting.LDAP_BASED_JAAS_PROVIDER);
boolean result = (value != null) ? Boolean.valueOf(value) : false;
return result;
@@ -190,4 +190,4 @@ public class LdapGWTServiceImpl extends AbstractGWTServiceImpl implements LdapGW
throw getExceptionToThrowToClient(t);
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/SystemGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/SystemGWTServiceImpl.java
index 9020b19..b6f7178 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/SystemGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/server/gwt/SystemGWTServiceImpl.java
@@ -74,7 +74,7 @@ public class SystemGWTServiceImpl extends AbstractGWTServiceImpl implements Syst
@Override
public String getSessionTimeout() throws RuntimeException {
try {
- SystemSettings systemSettings = systemManager.getSystemSettings(subjectManager.getOverlord());
+ SystemSettings systemSettings = systemManager.getUnmaskedSystemSettings(true);
String sessionTimeout = systemSettings.get(SystemSetting.RHQ_SESSION_TIMEOUT);
return sessionTimeout;
} catch (Throwable t) {
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java
index f6dfd49..f461089 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java
@@ -43,7 +43,6 @@ import org.rhq.core.domain.configuration.Configuration;
import org.rhq.enterprise.gui.legacy.Constants;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
-import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -208,11 +207,11 @@ public class AuthenticateUserAction extends TilesAction {
String provider = (String) context.getAttribute(Constants.JAAS_PROVIDER_CTX_ATTR);
if (provider == null) {
- SystemSettings systemSettings = LookupUtil.getSystemManager().getSystemSettings(LookupUtil.getSubjectManager().getOverlord());
+ SystemSettings systemSettings = LookupUtil.getSystemManager().getUnmaskedSystemSettings(true);
provider = systemSettings.get(SystemSetting.LDAP_BASED_JAAS_PROVIDER);
context.setAttribute(Constants.JAAS_PROVIDER_CTX_ATTR, provider);
}
return (provider != null) ? Boolean.valueOf(provider) : false;
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/ContextUtils.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/ContextUtils.java
index 9d5a622..cc35b7a 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/ContextUtils.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/ContextUtils.java
@@ -255,11 +255,11 @@ public class ContextUtils {
String provider = (String) context.getAttribute(Constants.JAAS_PROVIDER_CTX_ATTR);
if (provider == null) {
- SystemSettings systemSettings = LookupUtil.getSystemManager().getSystemSettings(LookupUtil.getSubjectManager().getOverlord());
+ SystemSettings systemSettings = LookupUtil.getSystemManager().getUnmaskedSystemSettings(true);
provider = systemSettings.get(SystemSetting.LDAP_BASED_JAAS_PROVIDER);
context.setAttribute(Constants.JAAS_PROVIDER_CTX_ATTR, provider);
}
return (provider != null) ? Boolean.valueOf(provider) : false;
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
index 3d9e15e..ffae598 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
@@ -26,6 +26,9 @@ import org.rhq.core.db.DatabaseType;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.composite.SystemSetting;
import org.rhq.core.domain.common.composite.SystemSettings;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.configuration.definition.PropertySimpleType;
+import org.rhq.core.util.obfuscation.PicketBoxObfuscator;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.test.TestServerPluginService;
@@ -97,7 +100,7 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
//These two still co-exist together in the codebase
//so let's make sure the values correspond to each other.
- SystemSettings settings = systemManager.getSystemSettings(overlord);
+ SystemSettings settings = systemManager.getUnmaskedSystemSettings(true);
Properties config = systemManager.getSystemConfiguration(overlord);
SystemSettings origSettings = new SystemSettings(settings);
@@ -114,7 +117,7 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
systemManager.setSystemSettings(overlord, settings);
- settings = systemManager.getSystemSettings(overlord);
+ settings = systemManager.getUnmaskedSystemSettings(true);
config = systemManager.getSystemConfiguration(overlord);
checkFormats(settings, config);
@@ -123,6 +126,49 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
}
}
+ public void testPasswordFieldsObfuscation() {
+ SystemSettings masked = systemManager.getSystemSettings(overlord);
+ SystemSettings unmasked = systemManager.getUnmaskedSystemSettings(true);
+ SystemSettings obfuscated = systemManager.getObfuscatedSystemSettings(true);
+
+ for(SystemSetting setting : SystemSetting.values()) {
+ if (setting.getType() == PropertySimpleType.PASSWORD) {
+ if (masked.containsKey(setting) && masked.get(setting) != null) {
+ assertEquals("Unexpected unmasked value", PropertySimple.MASKED_VALUE, masked.get(setting));
+ assertEquals("Unmasked and obfuscated values don't correspond", obfuscated.get(setting), PicketBoxObfuscator.encode(
+ unmasked.get(setting)));
+ }
+ }
+ }
+
+ systemManager.deobfuscate(obfuscated);
+
+ assertEquals(unmasked, obfuscated);
+ }
+
+ public void testPasswordMaskingDoesNotPersistBack() throws Exception {
+ SystemSettings settings = systemManager.getSystemSettings(overlord);
+ SystemSettings copy = (SystemSettings) settings.clone();
+
+ systemManager.setSystemSettings(overlord, settings);
+
+ settings = systemManager.getSystemSettings(overlord);
+
+ assertEquals("Password masking should not modify the database", copy, settings);
+ }
+
+ public void testPersistingDeobfuscatedSettingsDoesNotChangeTheValues() throws Exception {
+ SystemSettings settings = systemManager.getObfuscatedSystemSettings(true);
+ SystemSettings copy = (SystemSettings) settings.clone();
+
+ systemManager.deobfuscate(settings);
+ systemManager.setSystemSettings(overlord, settings);
+
+ settings = systemManager.getObfuscatedSystemSettings(true);
+
+ assertEquals("Password obfuscation should not modify the database if deobfuscated first", copy, settings);
+ }
+
private void checkFormats(SystemSettings settings, Properties config) {
assert settings.size() == config.size() : "The old and new style system settings differ in size";
@@ -159,4 +205,4 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
index f951422..624f672 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
@@ -1176,7 +1176,7 @@ public class AlertManagerBean implements AlertManagerLocal, AlertManagerRemote {
public String prettyPrintAlertURL(Alert alert) {
StringBuilder builder = new StringBuilder();
- String baseUrl = systemManager.getSystemSettings(subjectManager.getOverlord()).get(SystemSetting.BASE_URL);
+ String baseUrl = systemManager.getUnmaskedSystemSettings(true).get(SystemSetting.BASE_URL);
builder.append(baseUrl);
if (!baseUrl.endsWith("/")) {
builder.append("/");
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
index 43d955f..194a5f9 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
@@ -845,13 +845,13 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
}
private boolean isLdapAuthenticationEnabled() {
- SystemSettings systemSettings = systemManager.getSystemSettings(getOverlord());
+ SystemSettings systemSettings = systemManager.getUnmaskedSystemSettings(true);
String value = systemSettings.get(SystemSetting.LDAP_BASED_JAAS_PROVIDER);
return (value != null) ? Boolean.valueOf(value) : false;
}
private boolean isLdapAuthorizationEnabled() {
- SystemSettings systemSettings = systemManager.getSystemSettings(getOverlord());
+ SystemSettings systemSettings = systemManager.getUnmaskedSystemSettings(true);
String groupFilter = systemSettings.get(SystemSetting.LDAP_GROUP_FILTER);
String groupMember = systemSettings.get(SystemSetting.LDAP_GROUP_MEMBER);
return ((groupFilter != null) && (groupFilter.trim().length() > 0))
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
index 759619c..8313ca2 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
@@ -236,7 +236,7 @@ public class AgentManagerBean implements AgentManagerLocal {
long maximumQuietTimeAllowed = 300000L;
try {
- String prop = systemManager.getSystemSettings(subjectManager.getOverlord()).get(
+ String prop = systemManager.getUnmaskedSystemSettings(true).get(
SystemSetting.AGENT_MAX_QUIET_TIME_ALLOWED);
if (prop != null) {
maximumQuietTimeAllowed = Long.parseLong(prop);
@@ -302,7 +302,7 @@ public class AgentManagerBean implements AgentManagerLocal {
agentManager.setAgentBackfilled(agentId, true);
// This marks the top-level platform DOWN since we have not heard from it and all
- // child resources UNKNOWN since they are not reporting and may very well be up
+ // child resources UNKNOWN since they are not reporting and may very well be up
availabilityManager.updateAgentResourceAvailabilities(agentId, AvailabilityType.DOWN,
AvailabilityType.UNKNOWN);
@@ -636,7 +636,7 @@ public class AgentManagerBean implements AgentManagerLocal {
public PingRequest handlePingRequest(PingRequest request) {
// set the ping time without delay, so the return time is as close to the request time as possible,
- // for clock sync reasons.
+ // for clock sync reasons.
long now = System.currentTimeMillis();
if (request.isRequestUpdateAvailability()) {
@@ -653,7 +653,7 @@ public class AgentManagerBean implements AgentManagerLocal {
private void updateLastAvailabilityPing(String agentName, long now) {
/*
- * since we already know we have to update the agent row with the last avail ping time, might as well
+ * since we already know we have to update the agent row with the last avail ping time, might as well
* set the backfilled to false here (as opposed to called agentManager.setBackfilled(agentId, false)
*/
String updateStatement = "" //
@@ -690,7 +690,7 @@ public class AgentManagerBean implements AgentManagerLocal {
return pingResults;
}
-
+
@RequiredPermission(Permission.MANAGE_SETTINGS)
public PageList<Agent> findAgentsByCriteria(Subject subject, AgentCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/LdapGroupManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/LdapGroupManagerBean.java
index 5c8031d..2d71ae3 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/LdapGroupManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/LdapGroupManagerBean.java
@@ -109,7 +109,7 @@ public class LdapGroupManagerBean implements LdapGroupManagerLocal {
}
public Set<Map<String, String>> findAvailableGroups() {
//load current system properties
- Properties systemConfig = populateProperties(systemManager.getSystemSettings(subjectManager.getOverlord()));
+ Properties systemConfig = populateProperties(systemManager.getUnmaskedSystemSettings(true));
//reset group query details
resetGroupQueryDetails();
@@ -154,7 +154,7 @@ public class LdapGroupManagerBean implements LdapGroupManagerLocal {
}
public Set<String> findAvailableGroupsFor(String userName) {
- Properties options = populateProperties(systemManager.getSystemSettings(subjectManager.getOverlord()));
+ Properties options = populateProperties(systemManager.getUnmaskedSystemSettings(true));
String groupFilter = options.getProperty(SystemSetting.LDAP_GROUP_FILTER.name(), "");
String groupMember = options.getProperty(SystemSetting.LDAP_GROUP_MEMBER.name(), "");
String groupUsePosix = options.getProperty(SystemSetting.LDAP_GROUP_USE_POSIX.name(), "false");
@@ -333,7 +333,7 @@ public class LdapGroupManagerBean implements LdapGroupManagerLocal {
public Map<String, String> findLdapUserDetails(String userName) {
// Load our LDAP specific properties
- Properties systemConfig = populateProperties(systemManager.getSystemSettings(subjectManager.getOverlord()));
+ Properties systemConfig = populateProperties(systemManager.getUnmaskedSystemSettings(true));
HashMap<String, String> userDetails = new HashMap<String, String>();
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java
index 9cd7cc3..98d1405 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java
@@ -102,7 +102,9 @@ public class StorageClientManagerBean {
log.info("Initializing storage client subsystem");
// Always get the creds from the DB, system props may not be up to date at install time
- SystemSettings settings = systemManager.getSystemSettings(subjectManager.getOverlord());
+ // the code assumes the passwords to be obfuscated, because they can also come that way from other sources
+ // (like property files). So let's make our lives easy and always use obfuscated passwords.
+ SystemSettings settings = systemManager.getObfuscatedSystemSettings(true);
final String username = settings.get(SystemSetting.STORAGE_USERNAME);
final String password = settings.get(SystemSetting.STORAGE_PASSWORD);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java
index f95c6ad..a00200d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java
@@ -1,7 +1,5 @@
package org.rhq.enterprise.server.storage;
-import java.util.Map;
-
import javax.ejb.EJB;
import javax.ejb.Stateless;
@@ -25,29 +23,28 @@ public class StorageClusterSettingsManagerBean implements StorageClusterSettings
@Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
public StorageClusterSettings getClusterSettings(Subject subject) {
- SystemSettings settings = systemManager.getSystemSettings(subject);
- Map<String, String> settingsMap = settings.toMap();
+ SystemSettings settings = systemManager.getUnmaskedSystemSettings(true);
StorageClusterSettings clusterSettings = new StorageClusterSettings();
- if (!settingsMap.containsKey(SystemSetting.STORAGE_CQL_PORT.getInternalName())) {
+ if (!settings.containsKey(SystemSetting.STORAGE_CQL_PORT)) {
return null;
} else {
- clusterSettings.setCqlPort(Integer.parseInt(settingsMap.get(
- SystemSetting.STORAGE_CQL_PORT.getInternalName())));
+ clusterSettings.setCqlPort(Integer.parseInt(settings.get(
+ SystemSetting.STORAGE_CQL_PORT)));
}
- if (!settingsMap.containsKey(SystemSetting.STORAGE_GOSSIP_PORT.getInternalName())) {
+ if (!settings.containsKey(SystemSetting.STORAGE_GOSSIP_PORT)) {
return null;
} else {
- clusterSettings.setGossipPort(Integer.parseInt(settingsMap.get(
- SystemSetting.STORAGE_GOSSIP_PORT.getInternalName())));
+ clusterSettings.setGossipPort(Integer.parseInt(settings.get(
+ SystemSetting.STORAGE_GOSSIP_PORT)));
}
- if (!settingsMap.containsKey(SystemSetting.STORAGE_AUTOMATIC_DEPLOYMENT.getInternalName())) {
+ if (!settings.containsKey(SystemSetting.STORAGE_AUTOMATIC_DEPLOYMENT)) {
return null;
} else {
- clusterSettings.setAutomaticDeployment(Boolean.parseBoolean(settingsMap
- .get(SystemSetting.STORAGE_AUTOMATIC_DEPLOYMENT.getInternalName())));
+ clusterSettings.setAutomaticDeployment(Boolean.parseBoolean(settings
+ .get(SystemSetting.STORAGE_AUTOMATIC_DEPLOYMENT)));
}
return clusterSettings;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/exporters/SystemSettingsExporter.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/exporters/SystemSettingsExporter.java
index 56b789c..809c3ee 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/exporters/SystemSettingsExporter.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/exporters/SystemSettingsExporter.java
@@ -20,13 +20,12 @@
package org.rhq.enterprise.server.sync.exporters;
import java.util.Collections;
-import java.util.Properties;
+import java.util.Map;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.sync.entity.SystemSettings;
import org.rhq.enterprise.server.sync.NoSingleEntity;
import org.rhq.enterprise.server.system.SystemManagerLocal;
-import org.rhq.enterprise.server.util.LookupUtil;
/**
*
@@ -61,8 +60,8 @@ public class SystemSettingsExporter implements Exporter<NoSingleEntity, SystemSe
@Override
public ExportingIterator<SystemSettings> getExportingIterator() {
- Properties systemProps = systemManager.getSystemConfiguration(subject);
-
+ Map<String, String> systemProps = systemManager.getObfuscatedSystemSettings(false).toMap();
+
SystemSettings settings = new SystemSettings(systemProps);
return new SystemSettingsExportingIterator(settings);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/importers/SystemSettingsImporter.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/importers/SystemSettingsImporter.java
index 089746b..0a8b439 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/importers/SystemSettingsImporter.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/sync/importers/SystemSettingsImporter.java
@@ -22,6 +22,7 @@ package org.rhq.enterprise.server.sync.importers;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
+import java.util.Map;
import java.util.Properties;
import java.util.Set;
@@ -79,7 +80,11 @@ public class SystemSettingsImporter implements Importer<NoSingleEntity, SystemSe
PropertyDefinitionSimple props =
new PropertyDefinitionSimple(
PROPERTIES_TO_IMPORT_PROPERTY,
- "The names of the properties that should be imported. Note that these are the INTERNAL names as used in the RHQ database",
+ "The names of the properties that should be imported. Note that these are the INTERNAL names as used in the RHQ database." +
+ " If you include any property that stores a password (such as CAM_LDAP_BIND_PW)," +
+ " you need to make sure the values are OBFUSCATED. You can obtain an obfuscated value of your" +
+ " password by running the \"rhq-encode-password.(sh|bat)\" script located in the \"bin\" directory" +
+ " of your RHQ server installation.",
true, PropertySimpleType.STRING);
props.setDefaultValue(DEFAULT_IMPORTED_PROPERTIES_LIST);
def.put(props);
@@ -112,7 +117,7 @@ public class SystemSettingsImporter implements Importer<NoSingleEntity, SystemSe
@Override
public void update(NoSingleEntity entity, SystemSettings exportedEntity) throws Exception {
- Properties props = exportedEntity.toProperties();
+ Map<String, String> props = exportedEntity.toMap();
Set<String> propsToImport = getSettingNamesConfiguredForImport(importConfiguration);
@@ -129,7 +134,12 @@ public class SystemSettingsImporter implements Importer<NoSingleEntity, SystemSe
props.remove(p);
}
- systemManager.setSystemConfiguration(subject, props, true);
+ org.rhq.core.domain.common.composite.SystemSettings settings =
+ org.rhq.core.domain.common.composite.SystemSettings.fromMap(props);
+
+ systemManager.deobfuscate(settings);
+
+ systemManager.setSystemSettings(subject, settings);
}
@Override
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerBean.java
index 4c2e4d4..bbef365 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerBean.java
@@ -32,7 +32,7 @@ import java.util.Properties;
import java.util.TimeZone;
import javax.ejb.EJB;
-import javax.ejb.Stateless;
+import javax.ejb.Singleton;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerConfig;
@@ -57,9 +57,11 @@ import org.rhq.core.domain.common.ServerDetails.Detail;
import org.rhq.core.domain.common.SystemConfiguration;
import org.rhq.core.domain.common.composite.SystemSetting;
import org.rhq.core.domain.common.composite.SystemSettings;
+import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.configuration.definition.PropertySimpleType;
import org.rhq.core.domain.server.PersistenceUtility;
import org.rhq.core.util.StopWatch;
+import org.rhq.core.util.obfuscation.PicketBoxObfuscator;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.authz.RequiredPermission;
@@ -73,7 +75,7 @@ import org.rhq.enterprise.server.plugin.pc.drift.DriftServerPluginManager;
import org.rhq.enterprise.server.util.LookupUtil;
import org.rhq.enterprise.server.util.SystemDatabaseInformation;
-@Stateless
+@Singleton
public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemote {
private final String SQL_VACUUM = "VACUUM ANALYZE {0}";
@@ -92,7 +94,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
private final String[] ORA_INDEXES_TO_REBUILD = { "RHQ_MEAS_DATA_1H_ID_TIME_PK", "RHQ_MEAS_DATA_6H_ID_TIME_PK",
"RHQ_MEAS_DATA_1D_ID_TIME_PK", "RHQ_MEAS_BASELINE_CTIME_IDX", "RHQ_MEAS_DATA_TRAIT_ID_TIME_PK" };
- private Log log = LogFactory.getLog(SystemManagerBean.class);
+ private static final Log LOG = LogFactory.getLog(SystemManagerBean.class);
@PersistenceContext(unitName = RHQConstants.PERSISTENCE_UNIT_NAME)
private EntityManager entityManager;
@@ -117,17 +119,18 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
//@IgnoreDependency
private SystemInfoManagerLocal systemInfoManager;
- private static SystemSettings cachedSystemSettings = null;
+ private SystemSettings cachedSystemSettings = null;
+ @Override
public void scheduleConfigCacheReloader() {
// each time the webapp is reloaded, we don't want to create duplicate jobs
Collection<Timer> timers = timerService.getTimers();
for (Timer existingTimer : timers) {
- log.debug("Found timer - attempting to cancel: " + existingTimer.toString());
+ LOG.debug("Found timer - attempting to cancel: " + existingTimer.toString());
try {
existingTimer.cancel();
} catch (Exception e) {
- log.warn("Failed in attempting to cancel timer: " + existingTimer.toString());
+ LOG.warn("Failed in attempting to cancel timer: " + existingTimer.toString());
}
}
@@ -147,10 +150,11 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
// all its rows is really not going to effect performance much.
systemManager.loadSystemConfigurationCacheInNewTx();
} catch (Throwable t) {
- log.error("Failed to reload the system config cache - will try again later. Cause: " + t);
+ LOG.error("Failed to reload the system config cache - will try again later. Cause: " + t);
}
}
+ @Override
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public DatabaseType getDatabaseType() {
Connection conn = null;
@@ -166,45 +170,111 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
try {
conn.close();
} catch (SQLException e) {
- log.warn("Failed to close temporary connection", e);
+ LOG.warn("Failed to close temporary connection", e);
}
}
}
}
- @RequiredPermission(Permission.MANAGE_SETTINGS)
+ @Override
@Deprecated
+ @RequiredPermission(Permission.MANAGE_SETTINGS)
public Properties getSystemConfiguration(Subject subject) {
Properties copy = new Properties();
- SystemSettings settings = getSystemSettings(subject);
+ SystemSettings settings = getUnmaskedSystemSettings(true);
for (Map.Entry<SystemSetting, String> e : settings.entrySet()) {
//transform the value back to the database format, because that's
- //what this method always returned
- String value = transformSystemConfigurationProperty(e.getKey(), e.getValue(), false);
+ //what this method always returned.
+ //Leave the password fields as they are though, because now (as of 4.10)
+ //the passwords are stored obfuscated, but are kept clear in memory.
+ //The legacy behavior was to store the values in clear text, too,
+ //so the expected output of this method is to have passwords in clear.
+
+ if (e.getKey().isPublic()) {
+ String value = e.getValue();
+ if (e.getKey().getType() != PropertySimpleType.PASSWORD) {
+ value = transformSystemConfigurationPropertyToDb(e.getKey(), e.getValue(), e.getValue());
+ }
- copy.put(e.getKey().getInternalName(), value);
+ copy.put(e.getKey().getInternalName(), value);
+ }
}
return copy;
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
public SystemSettings getSystemSettings(Subject subject) {
+ SystemSettings ret = new SystemSettings();
+ SystemSettings unmasked = getUnmaskedSystemSettings(true);
+
+ for(Map.Entry<SystemSetting, String> entry : unmasked.entrySet()) {
+ if (entry.getKey().isPublic()) {
+ if (entry.getKey().getType() == PropertySimpleType.PASSWORD) {
+ entry.setValue(PropertySimple.MASKED_VALUE);
+ }
+
+ ret.put(entry.getKey(), entry.getValue());
+ }
+ }
+
+ return ret;
+ }
+
+ @Override
+ public SystemSettings getUnmaskedSystemSettings(boolean includePrivateSettings) {
if (cachedSystemSettings == null) {
loadSystemConfigurationCache();
}
- return new SystemSettings(cachedSystemSettings);
+ return includePrivateSettings ? new SystemSettings(cachedSystemSettings) :
+ removePrivateSettings(cachedSystemSettings);
}
+ @Override
+ public void deobfuscate(SystemSettings systemSettings) {
+ for(Map.Entry<SystemSetting, String> entry : systemSettings.entrySet()) {
+ String value = entry.getValue();
+ if (value != null && entry.getKey().getType() == PropertySimpleType.PASSWORD) {
+ entry.setValue(PicketBoxObfuscator.decode(value));
+ }
+ }
+ }
+
+ @Override
+ public SystemSettings getObfuscatedSystemSettings(boolean includePrivateSettings) {
+ SystemSettings settings = getUnmaskedSystemSettings(includePrivateSettings);
+
+ for(Map.Entry<SystemSetting, String> entry : settings.entrySet()) {
+ String value = entry.getValue();
+ if (value != null && entry.getKey().getType() == PropertySimpleType.PASSWORD) {
+ entry.setValue(PicketBoxObfuscator.encode(value));
+ }
+ }
+
+ return settings;
+ }
+
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
public void setSystemSettings(Subject subject, SystemSettings settings) {
- setSystemSettings(settings, false, false);
+ setSystemSettings(removePrivateSettings(settings), false, false);
+ }
+
+ private SystemSettings removePrivateSettings(SystemSettings settings) {
+ SystemSettings cleansed = new SystemSettings(settings);
+ for(SystemSetting s : SystemSetting.values()) {
+ if (!s.isPublic()) {
+ cleansed.remove(s);
+ }
+ }
+ return cleansed;
}
- @RequiredPermission(Permission.MANAGE_SETTINGS)
@Override
+ @RequiredPermission(Permission.MANAGE_SETTINGS)
public void setStorageClusterSettings(Subject subject, SystemSettings settings) {
for (SystemSetting setting : settings.keySet()) {
if (!isStorageSetting(setting)) {
@@ -231,15 +301,16 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
// note that if a new setting is the same as the old one, we do nothing - leave the old entity as is
for (Map.Entry<SystemSetting, String> e : settings.entrySet()) {
SystemSetting prop = e.getKey();
+
String value = e.getValue();
- if (skipValidation == false) {
+ if (!skipValidation) {
verifyNewSystemConfigurationProperty(prop, value, settings);
}
SystemConfiguration existingConfig = existingConfigMap.get(prop.getInternalName());
if (existingConfig == null) {
- value = transformSystemConfigurationProperty(prop, value, false);
+ value = transformSystemConfigurationPropertyToDb(prop, value, null);
existingConfig = new SystemConfiguration(prop.getInternalName(), value);
entityManager.persist(existingConfig);
} else {
@@ -252,8 +323,14 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
//them to "false"/"true" and store that value to database. This is a one way operation
//and therefore we need to compare the database-agnostic (i.e. "true"/"false") and
//not database specific.
- String existingValue = transformSystemConfigurationProperty(prop, existingConfig.getPropertyValue(),
- true);
+ //
+ //More importantly though, we store the password fields obfuscated, so we need to compare apples with
+ //apples here.
+ String existingValue = transformSystemConfigurationPropertyFromDb(prop,
+ existingConfig.getPropertyValue(), true);
+ //we need to unmask the new value so that we can compare for changes. only after that can we transform
+ //it into the DB format.
+ value = unmask(prop, value, existingValue);
//also for oracle, treat null and empty string as the same.
if ((isEmpty(existingValue) && !isEmpty(value))
@@ -268,7 +345,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
}
//transform to the database-specific format
- value = transformSystemConfigurationProperty(prop, value, false);
+ value = transformSystemConfigurationPropertyToDb(prop, value, existingValue);
existingConfig.setPropertyValue(value);
entityManager.merge(existingConfig);
@@ -314,7 +391,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
if (prop != null) {
//this is a legacy method that supplies values in the DB-specific format.
//we therefore have to transform the values as if they came from the database.
- String value = transformSystemConfigurationProperty(prop, e.getValue(), true);
+ String value = transformSystemConfigurationPropertyFromDb(prop, e.getValue(), false);
e.setValue(value);
}
}
@@ -336,25 +413,27 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
private DriftServerPluginManager getDriftServerPluginManager() {
MasterServerPluginContainer masterPC = LookupUtil.getServerPluginService().getMasterPluginContainer();
if (masterPC == null) {
- log.warn(MasterServerPluginContainer.class.getSimpleName() + " is not started yet");
+ LOG.warn(MasterServerPluginContainer.class.getSimpleName() + " is not started yet");
return null;
}
DriftServerPluginContainer pc = masterPC.getPluginContainerByClass(DriftServerPluginContainer.class);
if (pc == null) {
- log.warn(DriftServerPluginContainer.class + " has not been loaded by the " + masterPC.getClass() + " yet");
+ LOG.warn(DriftServerPluginContainer.class + " has not been loaded by the " + masterPC.getClass() + " yet");
return null;
}
return (DriftServerPluginManager) pc.getPluginManager();
}
+ @Override
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void loadSystemConfigurationCacheInNewTx() {
// this is used by our timer, so any exceptions coming out here doesn't throw away our timer
loadSystemConfigurationCache();
}
+ @Override
@SuppressWarnings("unchecked")
public void loadSystemConfigurationCache() {
// After this is done, the cachedSystemSettings contains the latest config.
@@ -366,7 +445,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
for (SystemConfiguration config : configs) {
SystemSetting prop = SystemSetting.getByInternalName(config.getPropertyKey());
if (prop == null) {
- log.warn("The database contains unknown system configuration setting [" + config.getPropertyKey()
+ LOG.warn("The database contains unknown system configuration setting [" + config.getPropertyKey()
+ "].");
continue;
}
@@ -375,11 +454,11 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
// for some reason, the configuration is not found in the DB, so fallback to the persisted default.
// if there isn't even a persisted default, just use an empty string.
String defaultValue = config.getDefaultPropertyValue();
- defaultValue = transformSystemConfigurationProperty(prop, defaultValue, true);
+ defaultValue = transformSystemConfigurationPropertyFromDb(prop, defaultValue, true);
settings.put(prop, (defaultValue != null) ? defaultValue : "");
} else {
String value = config.getPropertyValue();
- value = transformSystemConfigurationProperty(prop, value, true);
+ value = transformSystemConfigurationPropertyFromDb(prop, value, true);
settings.put(prop, value);
}
}
@@ -389,8 +468,9 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
cachedSystemSettings = settings;
}
- @RequiredPermission(Permission.MANAGE_SETTINGS)
+ @Override
@Deprecated
+ @RequiredPermission(Permission.MANAGE_SETTINGS)
public void setSystemConfiguration(Subject subject, Properties properties, boolean skipValidation) throws Exception {
Map<String, String> map = toMap(properties);
@@ -401,6 +481,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
setSystemSettings(settings, skipValidation, false);
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
public void validateSystemConfiguration(Subject subject, Properties properties)
throws InvalidSystemConfigurationException {
@@ -419,55 +500,91 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
/**
* Call this to transform a system setting to a more appropriate value.
+ * Importantly, this (de)obfuscates the password fields as they go from and to the DB. We use the
+ * @{link PicketBoxObfuscator} so that people are able encode their passwords in the system settings export files
+ * using the "rhq-encode-password.sh" script.
*/
- private String transformSystemConfigurationProperty(SystemSetting prop, String value, boolean fromDb) {
- if (fromDb) {
- // to support Oracle (whose booleans may be 1 or 0) transform the boolean settings properly
- switch (prop) {
- case LDAP_BASED_JAAS_PROVIDER:
- if (RHQConstants.JDBCJAASProvider.equals(value)) {
- return Boolean.toString(false);
- } else if (RHQConstants.LDAPJAASProvider.equals(value)) {
- return Boolean.toString(true);
+ private String transformSystemConfigurationPropertyFromDb(SystemSetting prop, String value, boolean unobfuscate) {
+ // to support Oracle (whose booleans may be 1 or 0) transform the boolean settings properly
+ switch (prop) {
+ case LDAP_BASED_JAAS_PROVIDER:
+ if (RHQConstants.JDBCJAASProvider.equals(value)) {
+ return Boolean.toString(false);
+ } else if (RHQConstants.LDAPJAASProvider.equals(value)) {
+ return Boolean.toString(true);
+ } else {
+ return value;
+ }
+ case USE_SSL_FOR_LDAP:
+ if (RHQConstants.LDAP_PROTOCOL_SECURED.equals(value)) {
+ return Boolean.toString(true);
+ } else {
+ return Boolean.toString(false);
+ }
+ default:
+ switch(prop.getType()) {
+ case BOOLEAN:
+ if ("0".equals(value)) {
+ return Boolean.FALSE.toString();
+ } else if ("1".equals(value)) {
+ return Boolean.TRUE.toString();
+ } else {
+ return value;
}
- break;
- case USE_SSL_FOR_LDAP:
- if (RHQConstants.LDAP_PROTOCOL_SECURED.equals(value)) {
- return Boolean.toString(true);
+ case PASSWORD:
+ if (unobfuscate && value != null && value.trim().length() > 0) {
+ return PicketBoxObfuscator.decode(value);
} else {
- return Boolean.toString(false);
+ return value;
}
default:
- if (prop.getType() == PropertySimpleType.BOOLEAN) {
- if ("0".equals(value)) {
- return Boolean.FALSE.toString();
- } else if ("1".equals(value)) {
- return Boolean.TRUE.toString();
- }
- }
+ return value;
}
- } else {
- //toDB
- //the 0,1 -> true false scenario is no problem here, because the values are stored
- //as string anyway (so no conversion is done). I assume the above is a historical
- //code that could be safely eliminated.
- switch (prop) {
- case LDAP_BASED_JAAS_PROVIDER:
- if (Boolean.parseBoolean(value)) {
- return RHQConstants.LDAPJAASProvider;
- } else {
- return RHQConstants.JDBCJAASProvider;
- }
- case USE_SSL_FOR_LDAP:
- if (Boolean.parseBoolean(value)) {
- return RHQConstants.LDAP_PROTOCOL_SECURED;
+ }
+ }
+
+ /**
+ * Call this to transform a system setting to a more appropriate value.
+ * Importantly, this (de)obfuscates the password fields as they go from and to the DB. We use the
+ * @{link PicketBoxObfuscator} so that people are able encode their passwords in the system settings export files
+ * using the "rhq-encode-password.sh" script.
+ */
+ private String transformSystemConfigurationPropertyToDb(SystemSetting prop, String newValue, String oldValue) {
+ //the 0,1 -> true false scenario is no problem here, because the values are stored
+ //as string anyway (so no conversion is done). I assume the above is a historical
+ //code that could be safely eliminated.
+ switch (prop) {
+ case LDAP_BASED_JAAS_PROVIDER:
+ if (Boolean.parseBoolean(newValue)) {
+ return RHQConstants.LDAPJAASProvider;
+ } else {
+ return RHQConstants.JDBCJAASProvider;
+ }
+ case USE_SSL_FOR_LDAP:
+ if (Boolean.parseBoolean(newValue)) {
+ return RHQConstants.LDAP_PROTOCOL_SECURED;
+ } else {
+ return RHQConstants.LDAP_PROTOCOL_UNSECURED;
+ }
+ default:
+ if (prop.getType() == PropertySimpleType.PASSWORD && newValue != null) {
+ if (PropertySimple.MASKED_VALUE.equals(newValue)) {
+ return oldValue;
} else {
- return RHQConstants.LDAP_PROTOCOL_UNSECURED;
+ return PicketBoxObfuscator.encode(newValue);
}
+ } else {
+ return newValue;
}
}
+ }
+
+ private String unmask(SystemSetting prop, String newValue, String currentValue) {
+ if (prop.getType() == PropertySimpleType.PASSWORD && PropertySimple.MASKED_VALUE.equals(newValue)) {
+ newValue = currentValue;
+ }
- return value;
+ return newValue;
}
/**
@@ -504,10 +621,12 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
return;
}
+ @Override
public void enableHibernateStatistics() {
PersistenceUtility.enableHibernateStatistics(this.entityManager, ManagementFactory.getPlatformMBeanServer());
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
public void reconfigureSystem(Subject whoami) {
try {
@@ -521,6 +640,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
}
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public long analyze(Subject whoami) {
@@ -536,7 +656,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
long duration = doCommand(dbtype, conn, SQL_ANALYZE, null);
return duration;
} catch (Exception e) {
- log.error("Error analyzing database", e);
+ LOG.error("Error analyzing database", e);
throw new RuntimeException("Error analyzing database", e);
} finally {
if (dbtype != null) {
@@ -545,6 +665,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
}
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public long reindex(Subject whoami) {
@@ -568,7 +689,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
return duration;
} catch (Exception e) {
- log.error("Error reindexing database", e);
+ LOG.error("Error reindexing database", e);
throw new RuntimeException("Error reindexing database", e);
} finally {
if (dbtype != null) {
@@ -577,12 +698,14 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
}
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public long vacuum(Subject whoami) {
return vacuum(whoami, null);
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public long vacuum(Subject whoami, String[] tableNames) {
@@ -608,7 +731,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
return duration;
} catch (Exception e) {
- log.error("Error vacuuming database: " + e.getMessage(), e);
+ LOG.error("Error vacuuming database: " + e.getMessage(), e);
return duration;
} finally {
if (dbtype != null) {
@@ -617,6 +740,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
}
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public long vacuumAppdef(Subject whoami) {
@@ -633,8 +757,8 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
command = command.replace("{0}", table);
- if (log.isDebugEnabled()) {
- log.debug("Execute command: " + command);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Execute command: " + command);
}
try {
@@ -642,7 +766,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
stmt.execute(command);
return watch.getElapsed();
} catch (SQLException e) {
- log.error("Error in command: " + command + ": " + e, e);
+ LOG.error("Error in command: " + command + ": " + e, e);
return watch.getElapsed();
} finally {
dbtype.closeStatement(stmt);
@@ -653,6 +777,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
* Ensures the installer is no longer deployed.
* @deprecated
*/
+ @Override
@Deprecated
public void undeployInstaller() {
// No need for this anymore - the new RHQ installer in AS7 detects it already installed things and will point the user to login screen
@@ -669,10 +794,10 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
return;
}
+ @Override
public boolean isDebugModeEnabled() {
try {
- Subject su = this.subjectManager.getOverlord();
- String setting = getSystemSettings(su).get(SystemSetting.DEBUG_MODE_ENABLED);
+ String setting = getUnmaskedSystemSettings(true).get(SystemSetting.DEBUG_MODE_ENABLED);
if (setting == null) {
setting = "false";
}
@@ -682,10 +807,10 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
}
}
+ @Override
public boolean isExperimentalFeaturesEnabled() {
try {
- Subject su = this.subjectManager.getOverlord();
- String setting = getSystemSettings(su).get(SystemSetting.EXPERIMENTAL_FEATURES_ENABLED);
+ String setting = getUnmaskedSystemSettings(true).get(SystemSetting.EXPERIMENTAL_FEATURES_ENABLED);
if (setting == null) {
setting = "false";
}
@@ -695,9 +820,9 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
}
}
+ @Override
public boolean isLdapAuthorizationEnabled() {
- Subject su = this.subjectManager.getOverlord();
- SystemSettings settings = getSystemSettings(su);
+ SystemSettings settings = getUnmaskedSystemSettings(true);
String ldapAuthValue = settings.get(SystemSetting.LDAP_BASED_JAAS_PROVIDER);
@@ -711,6 +836,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
.trim().length() > 0));
}
+ @Override
@RequiredPermission(Permission.MANAGE_SETTINGS)
public ServerDetails getServerDetails(Subject subject) {
CoreServerMBean coreServerMBean = LookupUtil.getCoreServer();
@@ -739,6 +865,7 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
return serverDetails;
}
+ @Override
public ProductInfo getProductInfo(Subject subject) {
CoreServerMBean coreServer = LookupUtil.getCoreServer();
ProductInfo productInfo = coreServer.getProductInfo();
@@ -749,4 +876,4 @@ public class SystemManagerBean implements SystemManagerLocal, SystemManagerRemot
public void dumpSystemInfo(Subject subject) {
systemInfoManager.dumpToLog(subject);
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java
index 9f48985..3f40cc1 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java
@@ -152,4 +152,41 @@ public interface SystemManagerLocal extends SystemManagerRemote {
*/
void setStorageClusterSettings(Subject subject, SystemSettings settings);
-}
\ No newline at end of file
+ /**
+ * The {@link SystemManagerRemote#getSystemSettings(org.rhq.core.domain.auth.Subject)} returns the system settings
+ * with all the password fields masked so that remote clients cannot get hold of the passwords in it. It also excludes
+ * non-public system settings from the results.
+ * <p/>
+ * If the password or a non-public setting is needed inside some SLSB, use this method to obtain the system settings
+ * with all the fields and the passwords in clear text.
+ * <p />
+ * Note that the returned instance MUST NOT leak out of the RHQ server.
+ *
+ * @return the system settings with the password fields in clear.
+ * @param includePrivateSettings whether or not to include the private system settings (i.e.
+ * {@link org.rhq.core.domain.common.composite.SystemSetting#isPublic()} returns false)
+ */
+ SystemSettings getUnmaskedSystemSettings(boolean includePrivateSettings);
+
+ /**
+ * The {@link #getUnmaskedSystemSettings(boolean)} returns the system settings with all the passwords in clear text.
+ * If you want to obtain an instance where the passwords would neither be clear text, nor would they be masked away,
+ * you can use this method, that will return the system settings with the passwords obfuscated.
+ * <p/>
+ * Note that such instance <b>CANNOT</b> be passed to {@link #setSystemSettings(org.rhq.core.domain.auth.Subject,
+ org.rhq.core.domain.common.composite.SystemSettings)}!!! Storing the obfuscated passwords would obfuscate them
+ * again!!! To be able to persist an instance, you first need to
+ * {@link #deobfuscate(org.rhq.core.domain.common.composite.SystemSettings) deobfuscate} it.
+ * <p />
+ * Note that the returned instance MUST NOT leak out of the RHQ server. It contains the passwords in a decodable
+ * form and also non-public system settings.
+ *
+ * @param includePrivateSettings whether or not to include the private system settings (i.e.
+ * {@link org.rhq.core.domain.common.composite.SystemSetting#isPublic()} returns false)
+ *
+ * @return an instance of system settings with all the passwords obfuscated.
+ */
+ SystemSettings getObfuscatedSystemSettings(boolean includePrivateSettings);
+
+ void deobfuscate(SystemSettings systemSettings);
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
index 7ed7004..e8b8467 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerRemote.java
@@ -60,6 +60,9 @@ public interface SystemManagerRemote {
/**
* Get the server cloud configuration. These are the server configurations that will be
* the same for all servers in the HA server cloud.
+ * <p/>
+ * Note that any password fields in the returned settings will be masked (i.e. will not correspond to the actual
+ * value stored in the database), see {@link org.rhq.core.domain.configuration.PropertySimple#MASKED_VALUE}.
*
* @param subject user making the request
*
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java
index 2837982..58faffd 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsExporterTest.java
@@ -21,16 +21,11 @@ package org.rhq.enterprise.server.sync.test;
import static org.testng.Assert.assertEquals;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.Reader;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
import java.util.Set;
import javax.xml.parsers.DocumentBuilder;
@@ -45,9 +40,8 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.common.composite.SystemSettings;
import org.rhq.core.domain.sync.ExporterMessages;
-import org.rhq.core.domain.sync.entity.SystemSettings;
import org.rhq.enterprise.server.sync.ExportingInputStream;
import org.rhq.enterprise.server.sync.SynchronizationConstants;
import org.rhq.enterprise.server.sync.Synchronizer;
@@ -70,8 +64,8 @@ public class SystemSettingsExporterTest extends JMockTest {
context.checking(new Expectations() {
{
- allowing(systemManager).getSystemConfiguration(with(any(Subject.class)));
- will(returnValue(getFakeSystemConfiguration()));
+ allowing(systemManager).getObfuscatedSystemSettings(true);
+ will(returnValue(getFakeSystemSettings()));
}
});
@@ -94,7 +88,7 @@ public class SystemSettingsExporterTest extends JMockTest {
// <entity>
// <data>
// <systemSettings referencedEntityId="0">
-// <entry key="BaseUrl">herethereandeverywhere</entry>
+// <entry key="CAM_BASE_URL">herethereandeverywhere</entry>
// </systemSettings>
// </data>
// </entity>
@@ -126,8 +120,8 @@ public class SystemSettingsExporterTest extends JMockTest {
Element baseURL = (Element) entries.item(0);
- assertEquals(baseURL.getAttribute("key"), "BaseURL");
- assertEquals(baseURL.getTextContent(), "herethereandeverywhere", "Unexpected value of baseURL");
+ assertEquals(baseURL.getAttribute("key"), "CAM_BASE_URL");
+ assertEquals(baseURL.getTextContent(), "herethereandeverywhere", "Unexpected value of CAM_BASE_URL");
}
}
@@ -156,11 +150,10 @@ public class SystemSettingsExporterTest extends JMockTest {
return null;
}
- private static Properties getFakeSystemConfiguration() {
+ private static SystemSettings getFakeSystemSettings() {
HashMap<String, String> values = new HashMap<String, String>();
- values.put("BaseURL", "herethereandeverywhere");
- SystemSettings settings = new SystemSettings(values);
+ values.put("CAM_BASE_URL", "herethereandeverywhere");
- return settings.toProperties();
+ return SystemSettings.fromMap(values);
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsImporterTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsImporterTest.java
index 7935e5f..e4a5b42 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsImporterTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SystemSettingsImporterTest.java
@@ -22,12 +22,14 @@ package org.rhq.enterprise.server.sync.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
import org.jmock.Expectations;
import org.testng.annotations.Test;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.common.composite.SystemSetting;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.sync.entity.SystemSettings;
@@ -48,23 +50,20 @@ public class SystemSettingsImporterTest extends JMockTest {
SystemSettingsImporter importer = new SystemSettingsImporter(null, systemManager);
final HashMap<String, String> settings = new HashMap<String, String>();
- settings.put("CAM_BASE_URL", "url");
- settings.put("SOME_UNKNOWN_PROPERTY", "asdf");
- String[] importableProps = SystemSettingsImporter.DEFAULT_IMPORTED_PROPERTIES_LIST.split("\\s*,\\s*");
- for (String p : importableProps) {
- settings.put(p, "value");
- }
+ settings.put(SystemSetting.BASE_URL.getInternalName(), "url");
+ addImportableProps(settings);
final SystemSettings importedSettings = new SystemSettings(settings);
context.checking(new Expectations() {
{
- Properties expectedImport = new Properties();
- expectedImport.putAll(settings);
+ org.rhq.core.domain.common.composite.SystemSettings expectedImport = org.rhq.core.domain.common
+ .composite.SystemSettings.fromMap(settings);
+
//base url is not imported by default
- expectedImport.remove("CAM_BASE_URL");
- expectedImport.remove("SOME_UNKNOWN_PROPERTY");
+ expectedImport.remove(SystemSetting.BASE_URL);
- oneOf(systemManager).setSystemConfiguration(with(any(Subject.class)), with(expectedImport), with(true));
+ oneOf(systemManager).deobfuscate(with(any(org.rhq.core.domain.common.composite.SystemSettings.class)));
+ oneOf(systemManager).setSystemSettings(with(any(Subject.class)), with(expectedImport));
}
});
@@ -83,9 +82,7 @@ public class SystemSettingsImporterTest extends JMockTest {
String[] importableProps = SystemSettingsImporter.DEFAULT_IMPORTED_PROPERTIES_LIST.split("\\s*,\\s*");
final HashMap<String, String> settings = new HashMap<String, String>();
- for (String p : importableProps) {
- settings.put(p, "value");
- }
+ addImportableProps(settings);
final SystemSettings importedSettings = new SystemSettings(settings);
final List<String> allowedSettings = new ArrayList<String>();
@@ -97,12 +94,13 @@ public class SystemSettingsImporterTest extends JMockTest {
context.checking(new Expectations() {
{
- Properties expectedImport = new Properties();
+ org.rhq.core.domain.common.composite.SystemSettings expectedImport = new org.rhq.core.domain.common.composite.SystemSettings();
for (String s : allowedSettings) {
- expectedImport.put(s, settings.get(s));
+ expectedImport.put(SystemSetting.getByInternalName(s), settings.get(s));
}
- oneOf(systemManager).setSystemConfiguration(with(any(Subject.class)), with(expectedImport), with(true));
+ oneOf(systemManager).deobfuscate(with(any(org.rhq.core.domain.common.composite.SystemSettings.class)));
+ oneOf(systemManager).setSystemSettings(with(any(Subject.class)), with(expectedImport));
}
});
@@ -116,4 +114,19 @@ public class SystemSettingsImporterTest extends JMockTest {
importer.finishImport();
}
+
+ private void addImportableProps(Map<String, String> settings) {
+ String[] importableProps = SystemSettingsImporter.DEFAULT_IMPORTED_PROPERTIES_LIST.split("\\s*,\\s*");
+ for (String p : importableProps) {
+ String value;
+ switch(SystemSetting.getByInternalName(p).getType()) {
+ case BOOLEAN: value = "true"; break;
+ case INTEGER: case LONG: value = "1"; break;
+ case PASSWORD: value = "password"; break;
+ default:
+ value = "value";
+ }
+ settings.put(p, value);
+ }
+ }
}
commit 85c588d2a7eacd636db4e6b8b75201c10d918d88
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Tue Oct 15 16:35:29 2013 +0200
[BZ 1019331] - Possible database connection leak in org.rhq.enterprise.server.content.ContentManagerBean.writeBlobOutToStream - closing the resultset, prepare statement and connection properly in the finally block.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 6f06267..cdf13f1 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -101,6 +101,7 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.collection.ArrayUtils;
import org.rhq.core.util.exception.ThrowableUtil;
+import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.core.util.stream.StreamUtil;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.agentclient.AgentClient;
@@ -2102,31 +2103,28 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
LOG.warn("PackageBits insufficiently initialized. No data to write out.");
return;
}
+ Connection conn = null;
+ PreparedStatement ps = null;
+ ResultSet results = null;
try {
//open connection
- Connection conn = dataSource.getConnection();
+ conn = dataSource.getConnection();
//prepared statement for retrieval of Blob.bits
- PreparedStatement ps = conn.prepareStatement("SELECT BITS FROM " + PackageBits.TABLE_NAME + " WHERE ID = ?");
- try {
- ps.setInt(1, bits.getId());
- ResultSet results = ps.executeQuery();
- try {
- if (results.next()) {
- //retrieve the Blob
- Blob blob = results.getBlob(1);
- //now copy the contents to the stream passed in
- StreamUtil.copy(blob.getBinaryStream(), stream, closeStreams);
- }
- } finally {
- results.close();
- }
- } finally {
- ps.close();
+ ps = conn.prepareStatement("SELECT BITS FROM " + PackageBits.TABLE_NAME + " WHERE ID = ?");
+ ps.setInt(1, bits.getId());
+ results = ps.executeQuery();
+ if (results.next()) {
+ //retrieve the Blob
+ Blob blob = results.getBlob(1);
+ //now copy the contents to the stream passed in
+ StreamUtil.copy(blob.getBinaryStream(), stream, closeStreams);
}
} catch (Exception ex) {
LOG.error("An error occurred while writing Blob contents out to stream :" + ex.getMessage());
ex.printStackTrace();
+ } finally {
+ JDBCUtil.safeClose(conn, ps, results);
}
}
commit e3655db00a3439a0a17b119eb4ed87b8420e023d
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Oct 14 15:18:33 2013 -0400
Bug 1017988 - rhqctl command help does not work
- Fix issue with validation blocking help commands
- Fix issue with validation of irrelevant component. For example, don't
validate rhq-server.properties for 'rhqctl install --storage'
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/RHQControl.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/RHQControl.java
index 7ad3b62..e4c27f8 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/RHQControl.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/RHQControl.java
@@ -26,6 +26,7 @@ package org.rhq.server.control;
import java.io.Console;
import java.io.File;
+import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
@@ -73,7 +74,7 @@ public class RHQControl {
String commandName = findCommand(commands, args);
command = commands.get(commandName);
- validateInstallCommand(command);
+ validateInstallCommand(command, args);
// in case the installer gets killed, prepare the shutdown hook to try the undo
abortHook.setCommand(command);
@@ -118,57 +119,76 @@ public class RHQControl {
return;
}
- private void validateInstallCommand(ControlCommand command) {
+ private void validateInstallCommand(ControlCommand command, String[] args) {
if (!"install".equalsIgnoreCase(command.getName())) {
return;
}
- // perform any up front validation we can at this point. Not that after this point we
+ // just return if we're asking for help
+ List<String> argsList = Arrays.asList(args);
+ if (argsList.contains("--help")) {
+ return;
+ }
+
+ // don't perform validation for components not involved in the command
+ boolean validateServer = argsList.contains("--server")
+ || (!argsList.contains("--storage") && !argsList.contains("--agent"));
+ boolean validateStorage = argsList.contains("--storage")
+ || (!argsList.contains("--server") && !argsList.contains("--agent"));
+
+ // perform any up front validation we can at this point. Note that after this point we
// lose stdin due to the use of ProcessExecutions.
- File serverPropertiesFile = new File("bin/rhq-server.properties");
- File storagePropertiesFile = new File("bin/rhq-storage.properties");
- if (!serverPropertiesFile.isFile()) {
- throw new RHQControlException(
- "The required rhq-server.properties file can not be found in the expected location ["
- + serverPropertiesFile.getAbsolutePath() + "]. Installation is canceled.");
- }
+ if (validateServer) {
+ File serverPropertiesFile = new File("bin/rhq-server.properties");
- if (!storagePropertiesFile.isFile()) {
- throw new RHQControlException(
- "The required rhq-storage.properties file can not be found in the expected location ["
- + storagePropertiesFile.getAbsolutePath() + "]. Installation is canceled.");
- }
+ if (validateServer && !serverPropertiesFile.isFile()) {
+ throw new RHQControlException(
+ "The required rhq-server.properties file can not be found in the expected location ["
+ + serverPropertiesFile.getAbsolutePath() + "]. Installation is canceled.");
+ }
- // Prompt for critical required values, if not yet set.
- try {
- PropertiesFileUpdate pfu = new PropertiesFileUpdate(serverPropertiesFile);
- Properties props = pfu.loadExistingProperties();
+ // Prompt for critical required values, if not yet set.
+ try {
+ PropertiesFileUpdate pfu = new PropertiesFileUpdate(serverPropertiesFile);
+ Properties props = pfu.loadExistingProperties();
- promptForProperty(pfu, props, serverPropertiesFile.getName(), ServerProperties.PROP_JBOSS_BIND_ADDRESS,
- false);
- promptForProperty(pfu, props, serverPropertiesFile.getName(), ServerProperties.PROP_DATABASE_PASSWORD, true);
+ promptForProperty(pfu, props, serverPropertiesFile.getName(), ServerProperties.PROP_JBOSS_BIND_ADDRESS,
+ false);
+ promptForProperty(pfu, props, serverPropertiesFile.getName(), ServerProperties.PROP_DATABASE_PASSWORD,
+ true);
- } catch (Throwable t) {
- throw new RHQControlException("The rhq-server.properties file is not valid. Installation is canceled: "
- + t.getMessage());
- }
+ } catch (Throwable t) {
+ throw new RHQControlException("The rhq-server.properties file is not valid. Installation is canceled: "
+ + t.getMessage());
+ }
- // Now, validate the property settings
- try {
- ServerProperties.validate(serverPropertiesFile);
+ // Now, validate the property settings
+ try {
+ ServerProperties.validate(serverPropertiesFile);
- } catch (Throwable t) {
- throw new RHQControlException("The rhq-server.properties file is not valid. Installation is canceled: "
- + t.getMessage());
+ } catch (Throwable t) {
+ throw new RHQControlException("The rhq-server.properties file is not valid. Installation is canceled: "
+ + t.getMessage());
+ }
}
- try {
- StorageProperty.validate(storagePropertiesFile);
+ if (validateStorage) {
+ try {
+ File storagePropertiesFile = new File("bin/rhq-storage.properties");
- } catch (Throwable t) {
- throw new RHQControlException("The rhq-storage.properties file is not valid. Installation is canceled: "
- + t.getMessage());
+ if (validateStorage && !storagePropertiesFile.isFile()) {
+ throw new RHQControlException(
+ "The required rhq-storage.properties file can not be found in the expected location ["
+ + storagePropertiesFile.getAbsolutePath() + "]. Installation is canceled.");
+ }
+
+ StorageProperty.validate(storagePropertiesFile);
+
+ } catch (Throwable t) {
+ throw new RHQControlException(
+ "The rhq-storage.properties file is not valid. Installation is canceled: " + t.getMessage());
+ }
}
}
commit 9639c2f8286d5d51732d0a54fddf2e0bc097bd09
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Oct 14 12:39:03 2013 -0400
Bug 1012289 - Upgraded rhq agent is started before the old agent is stopped when upgrading
from JON3.1.2.GA to JON3.2.ER1
- perform an agent kill as opposed to a stop when upgrading or reverting a failed install
- fix placement of a related log message
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
index 6e9e0aa..6502ebc 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
@@ -306,7 +306,7 @@ public abstract class AbstractInstall extends ControlCommand {
// if any errors occur after now, we need to stop the agent
addUndoTask(new ControlCommand.UndoTask("Stopping agent") {
public void performUndoWork() throws Exception {
- stopAgent(agentBasedir);
+ killAgent(agentBasedir);
}
});
@@ -317,7 +317,7 @@ public abstract class AbstractInstall extends ControlCommand {
}
}
- protected void stopAgent(File agentBasedir) throws Exception {
+ protected void killAgent(File agentBasedir) throws Exception {
File agentBinDir = new File(agentBasedir, "bin");
if (!agentBinDir.exists()) {
@@ -329,10 +329,10 @@ public abstract class AbstractInstall extends ControlCommand {
Executor executor = new DefaultExecutor();
executor.setWorkingDirectory(agentBinDir);
executor.setStreamHandler(new PumpStreamHandler());
- org.apache.commons.exec.CommandLine commandLine = getCommandLine("rhq-agent-wrapper", "stop");
if (isWindows()) {
try {
+ org.apache.commons.exec.CommandLine commandLine = getCommandLine("rhq-agent-wrapper", "stop");
executor.execute(commandLine);
} catch (Exception e) {
// Ignore, service may not exist or be running, , script returns 1
@@ -341,6 +341,7 @@ public abstract class AbstractInstall extends ControlCommand {
} else {
String pid = getAgentPid();
if (pid != null) {
+ org.apache.commons.exec.CommandLine commandLine = getCommandLine("rhq-agent-wrapper", "kill");
executor.execute(commandLine);
}
}
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
index 1fd19c6..27c5829 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
@@ -132,10 +132,6 @@ public class Upgrade extends AbstractInstall {
return;
}
- // Attempt to shutdown any running components. A failure to shutdown a component is not a failure as it
- // really shouldn't be running anyway. This is just an attempt to avoid upgrade problems.
- log.info("Stopping any running RHQ components...");
-
// If using non-default agent location then save it so it will be applied to all subsequent rhqctl commands.
boolean hasFromAgentOption = commandLine.hasOption(FROM_AGENT_DIR_OPTION);
if (hasFromAgentOption) {
@@ -150,13 +146,18 @@ public class Upgrade extends AbstractInstall {
return;
}
+ // Attempt to shutdown any running components. A failure to shutdown a component is not a failure as it
+ // really shouldn't be running anyway. This is just an attempt to avoid upgrade problems.
+ log.info("Stopping any running RHQ components...");
+
// Stop the agent, if running.
if (hasFromAgentOption) {
- stopAgent(getFromAgentDir(commandLine)); // this is validate the path as well
+ killAgent(getFromAgentDir(commandLine)); // this validates the path as well
}
- // If rhqctl exists in the old version, use it to stop server and storage node, otherwise, just try and stop the server
- // using the legacy script. If there is no rhqctl, there is no storage node anyway, so we just stop server in that case.
+ // If rhqctl exists in the old version, use it to stop old components, otherwise, just try and stop the
+ // server using the legacy script. If there is no rhqctl, there is no storage node anyway, so we just
+ // stop server in that case.
File fromBinDir = new File(getFromServerDir(commandLine), "bin");
org.apache.commons.exec.CommandLine rhqctlStop = isRhq48OrLater(commandLine) ? getCommandLine(false,
"rhqctl", "stop") : getCommandLine("rhq-server", "stop");
commit 40e612418d0c59cb66b1e1c0ccf137a799833d7a
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Mon Oct 14 16:13:48 2013 +0200
[BZ 1016649] - Clicking ASSOCIATE button to associate content source to repository displays error in UI - removing the "/portal" prefix, because the attribute "template" of the Facelets' element "composition" expects the relative path as a value.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations-plain.xhtml
index 647c5ad..3b2de3d 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations-plain.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations-plain.xhtml
@@ -13,7 +13,7 @@
xmlns:onf="http://jboss.org/on/function"
xmlns:rich="http://richfaces.ajax4jsf.org/rich">
-<ui:composition template="/portal/rhq/resource/layout/main-plain.xhtml">
+<ui:composition template="/rhq/resource/layout/main-plain.xhtml">
<ui:param name="id" value="${param.id}" />
<ui:param name="pageTitle" value="Associate Content Sources to Repository '#{RepoDetailsUIBean.repo.name}'"/>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations.xhtml
index 58924ea..0e01ff1 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoAssociations.xhtml
@@ -13,7 +13,7 @@
xmlns:onf="http://jboss.org/on/function"
xmlns:rich="http://richfaces.ajax4jsf.org/rich">
-<ui:composition template="/portal/rhq/layout/main.xhtml">
+<ui:composition template="/rhq/layout/main.xhtml">
<ui:param name="id" value="${param.id}" />
<ui:param name="pageTitle" value="Associate Content Sources to Repository '#{RepoDetailsUIBean.repo.name}'"/>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
index c59e4a0..7a2f0f7 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
@@ -14,7 +14,7 @@
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
xmlns:rich="http://richfaces.ajax4jsf.org/rich">
-<ui:composition template="/portal/rhq/layout/main.xhtml">
+<ui:composition template="/rhq/layout/main.xhtml">
<ui:param name="id" value="${param.id}" />
<ui:param name="pageTitle" value="Subscribe Resources to Repository '#{RepoDetailsUIBean.repo.name}'"/>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/timeline.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/timeline.xhtml
index d78e20e..b3e0002 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/timeline.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/summary/timeline.xhtml
@@ -14,7 +14,7 @@
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
xmlns:rich="http://richfaces.ajax4jsf.org/rich">
-<ui:composition template="/portal/rhq/resource/layout/main.xhtml">
+<ui:composition template="/rhq/resource/layout/main.xhtml">
<ui:param name="pageTitle" value="#{ResourceUIBean.resourceType.name} '#{ResourceUIBean.name}' - Summary"/>
<ui:param name="selectedTabName" value="Summary.Timeline"/>
commit 10c67f692e3d08537cc4097bf3e4b11f75f4a5f6
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Mon Oct 14 14:40:23 2013 +0200
[BZ 1015194] - Storage node configuration UI shows stale values - The restart is now done in the SLSB layer using the resource operation instead of the agent side, because we don't want to let the common resource configuration updates to cause the restart of the storage node (the restart is done only for those config changes that was done using the admin UI).
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java
index 1755e79..34de8d7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerBean.java
@@ -724,14 +724,17 @@ public class StorageNodeManagerBean implements StorageNodeManagerLocal, StorageN
if (storageNode != null && storageNode.getResource() != null) {
Resource storageNodeResource = storageNode.getResource();
- Configuration storageNodeConfiguration = configurationManager.getResourceConfiguration(subject,
- storageNodeResource.getId());
+ ResourceConfigurationUpdate configurationUpdate = configurationManager
+ .getLatestResourceConfigurationUpdate(subject, storageNodeResource.getId());
+ Configuration storageNodeConfiguration = configurationUpdate.getConfiguration();
+
Configuration storageNodePluginConfiguration = configurationManager.getPluginConfiguration(subject,
storageNodeResource.getId());
-
- configuration.setHeapSize(storageNodeConfiguration.getSimpleValue("maxHeapSize"));
- configuration.setHeapNewSize(storageNodeConfiguration.getSimpleValue("heapNewSize"));
- configuration.setThreadStackSize(storageNodeConfiguration.getSimpleValue("threadStackSize"));
+ if (configurationUpdate != null) {
+ configuration.setHeapSize(storageNodeConfiguration.getSimpleValue("maxHeapSize"));
+ configuration.setHeapNewSize(storageNodeConfiguration.getSimpleValue("heapNewSize"));
+ configuration.setThreadStackSize(storageNodeConfiguration.getSimpleValue("threadStackSize"));
+ }
configuration.setJmxPort(Integer.parseInt(storageNodePluginConfiguration
.getSimpleValue(RHQ_STORAGE_JMX_PORT_PROPERTY)));
}
@@ -757,72 +760,73 @@ public class StorageNodeManagerBean implements StorageNodeManagerLocal, StorageN
// 1. upgrade the resource configuration if there was a change
Resource storageNodeResource = storageNode.getResource();
- Configuration existingStorageNodeResourceConfig = configurationManager.getResourceConfiguration(subject,
+ Configuration storageNodeResourceConfig = configurationManager.getResourceConfiguration(subject,
storageNodeResource.getId());
-
- String existingHeapSize = existingStorageNodeResourceConfig.getSimpleValue("maxHeapSize");
+ String existingHeapSize = storageNodeResourceConfig.getSimpleValue("maxHeapSize");
String newHeapSize = storageNodeConfiguration.getHeapSize();
- String existingHeapNewSize = existingStorageNodeResourceConfig.getSimpleValue("heapNewSize");
+ String existingHeapNewSize = storageNodeResourceConfig.getSimpleValue("heapNewSize");
String newHeapNewSize = storageNodeConfiguration.getHeapNewSize();
- String existingThreadStackSize = existingStorageNodeResourceConfig.getSimpleValue("threadStackSize");
+ String existingThreadStackSize = storageNodeResourceConfig.getSimpleValue("threadStackSize");
String newThreadStackSize = storageNodeConfiguration.getThreadStackSize();
+
+ Configuration storageNodePluginConfig = configurationManager.getPluginConfiguration(subject,
+ storageNodeResource.getId());
+ String existingJMXPort = storageNodePluginConfig.getSimpleValue("jmxPort");
+ String newJMXPort = storageNodeConfiguration.getJmxPort() + "";
+
boolean resourceConfigNeedsUpdate = !existingHeapSize.equals(newHeapSize)
- || !existingHeapNewSize.equals(newHeapNewSize) || !existingThreadStackSize.equals(newThreadStackSize);
+ || !existingHeapNewSize.equals(newHeapNewSize) || !existingThreadStackSize.equals(newThreadStackSize)
+ || !existingJMXPort.equals(newJMXPort);
ResourceConfigurationUpdate resourceUpdate = null;
if (resourceConfigNeedsUpdate) {
- Configuration parameters = new Configuration();
- parameters.setSimpleValue("jmxPort", storageNodeConfiguration.getJmxPort() + "");
+ storageNodeResourceConfig.setSimpleValue("jmxPort", storageNodeConfiguration.getJmxPort() + "");
if (storageNodeConfiguration.getHeapSize() != null) {
- parameters.setSimpleValue("maxHeapSize", newHeapSize + "");
- parameters.setSimpleValue("minHeapSize", newHeapSize + "");
+ storageNodeResourceConfig.setSimpleValue("maxHeapSize", newHeapSize + "");
+ storageNodeResourceConfig.setSimpleValue("minHeapSize", newHeapSize + "");
}
if (storageNodeConfiguration.getHeapNewSize() != null) {
- parameters.setSimpleValue("heapNewSize", newHeapNewSize + "");
+ storageNodeResourceConfig.setSimpleValue("heapNewSize", newHeapNewSize + "");
}
if (storageNodeConfiguration.getThreadStackSize() != null) {
- parameters.setSimpleValue("threadStackSize", newThreadStackSize + "");
+ storageNodeResourceConfig.setSimpleValue("threadStackSize", newThreadStackSize + "");
}
- parameters.setSimpleValue("restartIfRequired", "true");
resourceUpdate = configurationManager.updateResourceConfiguration(subject, storageNodeResource.getId(),
- parameters);
+ storageNodeResourceConfig);
+
+ // initial waiting before the first check
+ try {
+ Thread.sleep(2000L);
+ } catch (InterruptedException e) {
+ // nothing
+ }
+ // wait for the resource config update
+ ResourceConfigurationUpdateCriteria criteria = new ResourceConfigurationUpdateCriteria();
+ criteria.addFilterId(resourceUpdate.getId());
+ criteria.addFilterStartTime(System.currentTimeMillis() - (5 * 60 * 1000));
+ boolean updateSuccess = waitForConfigurationUpdateToFinish(subject, criteria, 10);
+ // restart the storage node and wait for it
+ boolean restartSuccess = runOperationAndWaitForResult(subject, storageNodeResource, RESTART_OPERATION, null,
+ 5000, 15);
+ if (!updateSuccess || !restartSuccess)
+ return false;
}
- Configuration storageNodePluginConfig = configurationManager.getPluginConfiguration(subject,
- storageNodeResource.getId());
-
- String existingJMXPort = storageNodePluginConfig.getSimpleValue("jmxPort");
- String newJMXPort = storageNodeConfiguration.getJmxPort() + "";
-
- if (!existingJMXPort.equals(newJMXPort)) {
- // 2. upgrade the plugin configuration if there was a change
- storageNodePluginConfig.setSimpleValue("jmxPort", newJMXPort);
- String existingConnectionURL = storageNodePluginConfig.getSimpleValue("connectorAddress");
- String newConnectionURL = existingConnectionURL.replace(":" + existingJMXPort + "/", ":"
- + storageNodeConfiguration.getJmxPort() + "/");
- storageNodePluginConfig.setSimpleValue("connectorAddress", newConnectionURL);
-
- if (resourceConfigNeedsUpdate) {
- // wait for storage node to restart
- ResourceConfigurationUpdateCriteria criteria = new ResourceConfigurationUpdateCriteria();
- criteria.addFilterId(resourceUpdate.getId());
- criteria.addFilterStartTime(System.currentTimeMillis() - (5 * 60 * 1000));
- // initial waiting before the first check
- try {
- Thread.sleep(2000L);
- } catch (InterruptedException e) {
- // nothing
- }
- boolean success = waitForConfigurationUpdateToFinish(subject, criteria, 10);
- if (!success)
- return false;
- }
- configurationManager.updatePluginConfiguration(subject, storageNodeResource.getId(),
- storageNodePluginConfig);
- return true;
- } else
+ if (existingJMXPort.equals(newJMXPort)) {
+ // no need for plugin config update, we are done
return true;
+ }
+ // 2. upgrade the plugin configuration if there was a change
+ storageNodePluginConfig.setSimpleValue("jmxPort", newJMXPort);
+ String existingConnectionURL = storageNodePluginConfig.getSimpleValue("connectorAddress");
+ String newConnectionURL = existingConnectionURL.replace(":" + existingJMXPort + "/", ":"
+ + storageNodeConfiguration.getJmxPort() + "/");
+ storageNodePluginConfig.setSimpleValue("connectorAddress", newConnectionURL);
+
+ configurationManager.updatePluginConfiguration(subject, storageNodeResource.getId(),
+ storageNodePluginConfig);
+ return true;
} catch (UnknownHostException e) {
throw new RuntimeException("Failed to resolve address for " + storageNodeConfiguration, e);
}
@@ -837,7 +841,7 @@ public class StorageNodeManagerBean implements StorageNodeManagerLocal, StorageN
.findResourceConfigurationUpdatesByCriteria(subject, criteria);
switch (configUpdates.get(0).getStatus()) {
case INPROGRESS:
- // try it again in 4.5 sec
+ // try it again in 2.5 sec
break;
case FAILURE:
return false;
@@ -845,7 +849,7 @@ public class StorageNodeManagerBean implements StorageNodeManagerLocal, StorageN
return true;
}
try {
- Thread.sleep(4500L);
+ Thread.sleep(2500L);
} catch (InterruptedException e) {
return false;
}
@@ -935,8 +939,15 @@ public class StorageNodeManagerBean implements StorageNodeManagerLocal, StorageN
return filteredData;
}
+
private boolean runOperationAndWaitForResult(Subject subject, Resource storageNodeResource, String operationToRun,
Configuration parameters) {
+ return runOperationAndWaitForResult(subject, storageNodeResource, operationToRun,
+ parameters, OPERATION_QUERY_TIMEOUT, MAX_ITERATIONS);
+ }
+
+ private boolean runOperationAndWaitForResult(Subject subject, Resource storageNodeResource, String operationToRun,
+ Configuration parameters, long operationQueryTimeout, int maxIterations) {
//scheduling the operation
long operationStartTime = System.currentTimeMillis();
@@ -953,7 +964,7 @@ public class StorageNodeManagerBean implements StorageNodeManagerLocal, StorageN
//waiting for the operation result then return it
int iteration = 0;
boolean successResultFound = false;
- while (iteration < MAX_ITERATIONS && !successResultFound) {
+ while (iteration < maxIterations && !successResultFound) {
ResourceOperationHistoryCriteria criteria = new ResourceOperationHistoryCriteria();
criteria.addFilterResourceIds(storageNodeResource.getId());
criteria.addFilterStartTime(operationStartTime);
@@ -972,7 +983,7 @@ public class StorageNodeManagerBean implements StorageNodeManagerLocal, StorageN
break;
} else {
try {
- Thread.sleep(OPERATION_QUERY_TIMEOUT);
+ Thread.sleep(operationQueryTimeout);
} catch (Exception e) {
log.error(e);
}
diff --git a/modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeComponent.java b/modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeComponent.java
index 37ebd79..a16301d 100644
--- a/modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeComponent.java
+++ b/modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeComponent.java
@@ -222,17 +222,26 @@ public class StorageNodeComponent extends CassandraNodeComponent implements Oper
private OperationResult updateConfiguration(Configuration params) {
//update storage node jvm settings only
Configuration config = new Configuration();
+ Configuration.builder().addSimple("jmxPort", params.getSimpleValue("jmxPort"))
+ .addSimple("jmxPort", params.getSimpleValue("jmxPort"))
+ .addSimple("minHeapSize", params.getSimpleValue("heapSize"))
+ .addSimple("maxHeapSize", params.getSimpleValue("heapSize"))
+ .addSimple("heapNewSize", params.getSimpleValue("heapNewSize"))
+ .addSimple("threadStackSize", params.getSimpleValue("threadStackSize"))
+ .addSimple("maxHeapSize", params.getSimpleValue("heapSize")).build();
+
config.put(new PropertySimple("jmxPort", params.getSimpleValue("jmxPort")));
config.put(new PropertySimple("minHeapSize", params.getSimpleValue("heapSize")));
config.put(new PropertySimple("maxHeapSize", params.getSimpleValue("heapSize")));
config.put(new PropertySimple("heapNewSize", params.getSimpleValue("heapNewSize")));
config.put(new PropertySimple("threadStackSize", params.getSimpleValue("threadStackSize")));
- // copy the restartIfRequired flag
- config.put(new PropertySimple("restartIfRequired", params.getSimpleValue("restartIfRequired")));
+ String restartIfRequiredString = params.getSimpleValue("restartIfRequired");
+ boolean restartIfRequired = restartIfRequiredString != null && Boolean.parseBoolean(restartIfRequiredString);
ConfigurationUpdateReport configurationUpdateReport = new ConfigurationUpdateReport(config);
- this.updateResourceConfiguration(configurationUpdateReport);
+ StorageNodeConfigDelegate configDelegate = new StorageNodeConfigDelegate(getBasedir(), this);
+ configDelegate.updateResourceConfigurationAndRestartIfNecessary(configurationUpdateReport, restartIfRequired);
OperationResult result = new OperationResult("Configuration updated.");
if (!configurationUpdateReport.getStatus().equals(ConfigurationUpdateStatus.SUCCESS)) {
result.setErrorMessage(configurationUpdateReport.getErrorMessage());
diff --git a/modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeConfigDelegate.java b/modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeConfigDelegate.java
index 659ef04..f84fd51 100644
--- a/modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeConfigDelegate.java
+++ b/modules/plugins/rhq-storage/src/main/java/org/rhq/plugins/storage/StorageNodeConfigDelegate.java
@@ -150,6 +150,11 @@ public class StorageNodeConfigDelegate implements ConfigurationFacet {
@Override
public void updateResourceConfiguration(ConfigurationUpdateReport configurationUpdateReport) {
+ updateResourceConfigurationAndRestartIfNecessary(configurationUpdateReport, false);
+ }
+
+ public void updateResourceConfigurationAndRestartIfNecessary(ConfigurationUpdateReport configurationUpdateReport,
+ boolean restartIfNecessary) {
try {
Configuration config = configurationUpdateReport.getConfiguration();
@@ -167,7 +172,9 @@ public class StorageNodeConfigDelegate implements ConfigurationFacet {
} catch (ConfigEditorException e) {
configurationUpdateReport.setErrorMessageFromThrowable(e);
}
- restartIfNecessary(configurationUpdateReport);
+ if (restartIfNecessary) {
+ restartIfNecessary(configurationUpdateReport);
+ }
}
private void restartIfNecessary(ConfigurationUpdateReport configurationUpdateReport) {
@@ -180,16 +187,7 @@ public class StorageNodeConfigDelegate implements ConfigurationFacet {
restartIsRequired = true;
}
}
-
- //restart the server if:
- //- requested by the user
- //- the updates done require restart
- boolean restartIfRequiredConfig = false;
- if (params.getSimpleValue("restartIfRequired") != null) {
- restartIfRequiredConfig = Boolean.parseBoolean(params.getSimpleValue("restartIfRequired"));
- }
-
- if (restartIfRequiredConfig && restartIsRequired && invoker != null) {
+ if (restartIsRequired && invoker != null) {
try {
OperationResult restartResult = invoker.invokeOperation("restart", null);
if (restartResult.getErrorMessage() != null) {
commit aba62e15a6387c029839f044b8d95a68f0aa5515
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Oct 11 16:24:36 2013 -0400
Bug 1016609 - storage and agent service is not taking java exec from 'RHQ_SERVER_JAVA_HOME'
Updates to JVM property handling - Part 2, .bat scripts
- Update scripts to use new RHQ_JAVA_HOME and RHQ_JAVA_EXE_FILE_PATH properties.
- Ensure rhqctl and all components (including the embedded cassandra) honor the JVM property settings
- never fall back to PATH
- eliminate references to embedded jre's in our components
- keep back compatibility support for RHQ_SERVER_JAVA_XXX and RHQ_AGENT_XXX properties
- note - new properties, if set, have preference.
Also:
- fixed an issue (there may be more) with installing rhq into a path with spaces
- fixed a deprecated script to have the correct messaging to use rhqctl
diff --git a/modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.conf b/modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.conf
index 1fffe6a..167809d 100644
--- a/modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.conf
+++ b/modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.conf
@@ -23,7 +23,6 @@
#
# set.RHQ_AGENT_HOME - RHQ Agent installation directory
# set.RHQ_AGENT_INSTANCE_NAME - A name to identify the RHQ Agent
-# set.RHQ_AGENT_JAVA_EXE_FILE_PATH - Java executable
# set.RHQ_AGENT_OS_PLATFORM - The operating system platform name
# set.RHQ_AGENT_WRAPPER_LOG_DIR_PATH - The Java Service Wrapper's log file
# (helpful if installing, removing or
@@ -34,6 +33,7 @@
# set.RHQ_AGENT_PASSWORD - the password of the user that is to
# run the service. Only used if
# RHQ_AGENT_PASSWORD_PROMPT is FALSE.
+# set.RHQ_JAVA_EXE_FILE_PATH - Java executable
#*****************************************************************************
# Load in the specific environment for the RHQ agent instance to start
@@ -43,7 +43,7 @@
# Start Properties
#*****************************************************************************
# Java JVM Executable (quotes not needed)
-wrapper.java.command=%RHQ_AGENT_JAVA_EXE_FILE_PATH%
+wrapper.java.command=%RHQ_JAVA_EXE_FILE_PATH%
# Java Main class. This class must implement the WrapperListener interface. (quotes not needed)
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
diff --git a/modules/enterprise/agent/src/etc/rhq-agent-env.bat b/modules/enterprise/agent/src/etc/rhq-agent-env.bat
index be6b6df..bfa2c9a 100644
--- a/modules/enterprise/agent/src/etc/rhq-agent-env.bat
+++ b/modules/enterprise/agent/src/etc/rhq-agent-env.bat
@@ -24,24 +24,24 @@ rem directory of the directory where this script lives.
rem
rem set RHQ_AGENT_HOME=C:\opt\rhq-agent
-rem RHQ_AGENT_JAVA_HOME - The location of the JRE that the agent will
-rem use. This will be ignored if
-rem RHQ_AGENT_JAVA_EXE_FILE_PATH is set.
-rem If this and RHQ_AGENT_JAVA_EXE_FILE_PATH are
-rem not set, the agent's embedded JRE will be used.
-rem
-rem set RHQ_AGENT_JAVA_HOME=C:\opt\java
-
-rem RHQ_AGENT_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-rem executable to use. If this is set,
-rem RHQ_AGENT_JAVA_HOME is ignored.
-rem If this is not set, then
-rem %RHQ_AGENT_JAVA_HOME%\bin\java.exe
-rem is used. If this and
-rem RHQ_AGENT_JAVA_HOME are not set, the
-rem agent's embedded JRE will be used.
-rem
-rem set RHQ_AGENT_JAVA_EXE_FILE_PATH=C:\WINDOWS\system32\java.exe
+rem RHQ_JAVA_HOME - The location of the JRE that the agent will
+rem use. This will be ignored if
+rem RHQ_JAVA_EXE_FILE_PATH is set.
+rem If this and RHQ_JAVA_EXE_FILE_PATH are
+rem not set, JAVA_HOME will be used.
+rem
+rem set RHQ_JAVA_HOME=C:\opt\java
+
+rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java
+rem executable to use. If this is set,
+rem RHQ_JAVA_HOME is ignored.
+rem If this is not set, then
+rem %RHQ_JAVA_HOME%\bin\java.exe
+rem is used. If this and
+rem RHQ_JAVA_HOME are not set, then
+rem JAVA_HOME will be used.
+rem
+rem set RHQ_JAVA_EXE_FILE_PATH=C:\WINDOWS\system32\java.exe
rem ===========================================================================
rem THE FOLLOWING ARE USED SOLELY FOR THE rhq-agent.bat SCRIPT
diff --git a/modules/enterprise/agent/src/etc/rhq-agent-wrapper.bat b/modules/enterprise/agent/src/etc/rhq-agent-wrapper.bat
index 4cea2bf..debbebb 100644
--- a/modules/enterprise/agent/src/etc/rhq-agent-wrapper.bat
+++ b/modules/enterprise/agent/src/etc/rhq-agent-wrapper.bat
@@ -55,7 +55,7 @@ rem agent start script.
rem This script will set up the following environment variables for us:
rem RHQ_AGENT_HOME
rem RHQ_AGENT_BIN_DIR_PATH
-rem RHQ_AGENT_JAVA_EXE_FILE_PATH
+rem RHQ_JAVA_EXE_FILE_PATH
rem Some other RHQ_AGENT_ variables might also be set due to the
rem calling of the custom environment script earlier.
rem ----------------------------------------------------------------------
@@ -127,7 +127,7 @@ if defined RHQ_AGENT_RUN_AS_ME set _WRAPPER_NTSERVICE_ACCOUNT="wrapper.ntservice
if not defined RHQ_AGENT_PASSWORD_PROMPT set RHQ_AGENT_PASSWORD_PROMPT=true
if /i "%1"=="install" (
- "%RHQ_AGENT_WRAPPER_EXE_FILE_PATH%" -i "%RHQ_AGENT_WRAPPER_CONF_FILE_PATH%" "set.RHQ_AGENT_HOME=%RHQ_AGENT_HOME%" "set.RHQ_AGENT_INSTANCE_NAME=%RHQ_AGENT_INSTANCE_NAME%" "set.RHQ_AGENT_JAVA_EXE_FILE_PATH=%RHQ_AGENT_JAVA_EXE_FILE_PATH%" "set.RHQ_AGENT_OS_PLATFORM=%RHQ_AGENT_OS_PLATFORM%" "set.RHQ_AGENT_WRAPPER_LOG_DIR_PATH=%RHQ_AGENT_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
+ "%RHQ_AGENT_WRAPPER_EXE_FILE_PATH%" -i "%RHQ_AGENT_WRAPPER_CONF_FILE_PATH%" "set.RHQ_AGENT_HOME=%RHQ_AGENT_HOME%" "set.RHQ_AGENT_INSTANCE_NAME=%RHQ_AGENT_INSTANCE_NAME%" "set.RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_EXE_FILE_PATH%" "set.RHQ_AGENT_OS_PLATFORM=%RHQ_AGENT_OS_PLATFORM%" "set.RHQ_AGENT_WRAPPER_LOG_DIR_PATH=%RHQ_AGENT_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
if ERRORLEVEL 1 goto error
goto done
)
diff --git a/modules/enterprise/agent/src/etc/rhq-agent.bat b/modules/enterprise/agent/src/etc/rhq-agent.bat
index ee81cc8..59b2e3c 100644
--- a/modules/enterprise/agent/src/etc/rhq-agent.bat
+++ b/modules/enterprise/agent/src/etc/rhq-agent.bat
@@ -73,22 +73,36 @@ if defined RHQ_AGENT_DEBUG echo RHQ_AGENT_HOME: %RHQ_AGENT_HOME%
rem ----------------------------------------------------------------------
rem Find the Java executable and verify we have a VM available
+rem Note that RHQ_AGENT_JAVA_* props are still handled for back compat
rem ----------------------------------------------------------------------
-if not defined RHQ_AGENT_JAVA_EXE_FILE_PATH (
- if not defined RHQ_AGENT_JAVA_HOME call :prepare_embedded_jre
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if defined RHQ_AGENT_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_AGENT_JAVA_EXE_FILE_PATH%
+ )
+)
+if not defined RHQ_JAVA_HOME (
+ if defined RHQ_AGENT_JAVA_HOME (
+ set RHQ_JAVA_HOME=%RHQ_AGENT_JAVA_HOME%
+ )
)
-if not defined RHQ_AGENT_JAVA_EXE_FILE_PATH (
- set RHQ_AGENT_JAVA_EXE_FILE_PATH=%RHQ_AGENT_JAVA_HOME%\bin\java.exe
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if not defined RHQ_JAVA_HOME (
+ if defined RHQ_AGENT_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
+ set RHQ_JAVA_HOME=%JAVA_HOME%
+ )
+)
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
)
-if defined RHQ_AGENT_DEBUG echo RHQ_AGENT_JAVA_HOME: %RHQ_AGENT_JAVA_HOME%
-if defined RHQ_AGENT_DEBUG echo RHQ_AGENT_JAVA_EXE_FILE_PATH: %RHQ_AGENT_JAVA_EXE_FILE_PATH%
+if defined RHQ_AGENT_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
+if defined RHQ_AGENT_DEBUG echo RHQ_JAVA_EXE_FILE_PATH: %RHQ_JAVA_EXE_FILE_PATH%
-if not exist "%RHQ_AGENT_JAVA_EXE_FILE_PATH%" (
+if not exist "%RHQ_JAVA_EXE_FILE_PATH%" (
echo There is no JVM available.
- echo Please set RHQ_AGENT_JAVA_HOME or RHQ_AGENT_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit /B 1
)
@@ -102,7 +116,7 @@ for /R "%RHQ_AGENT_HOME%\lib" %%G in ("*.jar") do (
call :append_classpath "%%G"
if defined RHQ_AGENT_DEBUG echo CLASSPATH entry: %%G
)
-for %%G in ("%RHQ_AGENT_JAVA_HOME%\lib\tools.jar" "%RHQ_AGENT_JAVA_HOME%\..\lib\tools.jar") do (
+for %%G in ("%RHQ_JAVA_HOME%\lib\tools.jar" "%RHQ_JAVA_HOME%\..\lib\tools.jar") do (
if exist "%%G" (
call :append_classpath "%%G"
if defined RHQ_AGENT_DEBUG echo CLASSPATH entry: %%G
@@ -177,8 +191,8 @@ if not defined RHQ_AGENT_MAINCLASS (
rem note - currently not using custom Java Prefs as the default, use commented command line to activate. If installing
rem note - the agent as a windows service, you must also uncomment lines in wrapper/rhq-agent-wrapper.conf.
-rem set CMD="%RHQ_AGENT_JAVA_EXE_FILE_PATH%" %_JAVA_ENDORSED_DIRS_OPT% %_JAVA_LIBRARY_PATH_OPT% %_JAVA_PREFERENCES_FACTORY_OPT% %RHQ_AGENT_JAVA_OPTS% %RHQ_AGENT_ADDITIONAL_JAVA_OPTS% %_LOG_CONFIG% -cp "%CLASSPATH%" %RHQ_AGENT_MAINCLASS% %RHQ_AGENT_CMDLINE_OPTS%
-set CMD="%RHQ_AGENT_JAVA_EXE_FILE_PATH%" %_JAVA_ENDORSED_DIRS_OPT% %_JAVA_LIBRARY_PATH_OPT% %RHQ_AGENT_JAVA_OPTS% %RHQ_AGENT_ADDITIONAL_JAVA_OPTS% %_LOG_CONFIG% -cp "%CLASSPATH%" %RHQ_AGENT_MAINCLASS% %RHQ_AGENT_CMDLINE_OPTS%
+rem set CMD="%RHQ_JAVA_EXE_FILE_PATH%" %_JAVA_ENDORSED_DIRS_OPT% %_JAVA_LIBRARY_PATH_OPT% %_JAVA_PREFERENCES_FACTORY_OPT% %RHQ_AGENT_JAVA_OPTS% %RHQ_AGENT_ADDITIONAL_JAVA_OPTS% %_LOG_CONFIG% -cp "%CLASSPATH%" %RHQ_AGENT_MAINCLASS% %RHQ_AGENT_CMDLINE_OPTS%
+set CMD="%RHQ_AGENT_EXE_FILE_PATH%" %_JAVA_ENDORSED_DIRS_OPT% %_JAVA_LIBRARY_PATH_OPT% %RHQ_AGENT_JAVA_OPTS% %RHQ_AGENT_ADDITIONAL_JAVA_OPTS% %_LOG_CONFIG% -cp "%CLASSPATH%" %RHQ_AGENT_MAINCLASS% %RHQ_AGENT_CMDLINE_OPTS%
if not defined _SETENV_ONLY (
rem log4j 1.2.8 does not create the directory for us (later versions do)
@@ -208,26 +222,13 @@ if not defined CLASSPATH (
goto :eof
rem ----------------------------------------------------------------------
-rem CALL subroutine that prepares to use the embedded JRE
-rem ----------------------------------------------------------------------
-
-:prepare_embedded_jre
-set RHQ_AGENT_JAVA_HOME=%RHQ_AGENT_HOME%\jre
-if defined RHQ_AGENT_DEBUG echo Using the embedded JRE
-if not exist "%RHQ_AGENT_JAVA_HOME%" (
- if defined RHQ_AGENT_DEBUG echo No embedded JRE found - will try to use JAVA_HOME: %JAVA_HOME%
- set RHQ_AGENT_JAVA_HOME=%JAVA_HOME%
-)
-goto :eof
-
-rem ----------------------------------------------------------------------
rem CALL subroutine that exits this script normally
rem ----------------------------------------------------------------------
:done
if defined RHQ_AGENT_DEBUG echo %0 done.
if defined _SETENV_ONLY (
-endlocal & SET "RHQ_AGENT_HOME=%RHQ_AGENT_HOME%" & SET "RHQ_AGENT_JAVA_EXE_FILE_PATH=%RHQ_AGENT_JAVA_EXE_FILE_PATH%" & SET "RHQ_AGENT_JAVA_OPTS=%RHQ_AGENT_JAVA_OPTS%" & SET "RHQ_AGENT_ADDITIONAL_JAVA_OPTS=%RHQ_AGENT_ADDITIONAL_JAVA_OPTS%" & SET "RHQ_AGENT_BIN_DIR_PATH=%RHQ_AGENT_BIN_DIR_PATH%"
+endlocal & SET "RHQ_AGENT_HOME=%RHQ_AGENT_HOME%" & SET "RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_EXE_FILE_PATH%" & SET "RHQ_AGENT_JAVA_OPTS=%RHQ_AGENT_JAVA_OPTS%" & SET "RHQ_AGENT_ADDITIONAL_JAVA_OPTS=%RHQ_AGENT_ADDITIONAL_JAVA_OPTS%" & SET "RHQ_AGENT_BIN_DIR_PATH=%RHQ_AGENT_BIN_DIR_PATH%"
) else (
endlocal
)
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentUpdateThread.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentUpdateThread.java
index 70e8e84..6d4a5ef 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentUpdateThread.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentUpdateThread.java
@@ -18,7 +18,6 @@
*/
package org.rhq.enterprise.agent;
-import java.io.BufferedReader;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -222,14 +221,23 @@ public class AgentUpdateThread extends Thread {
* @throws Exception if the Java executable could not be found
*/
private String findJavaExe() throws Exception {
- final String envName = "RHQ_AGENT_JAVA_EXE_FILE_PATH";
+ // try the expected env var
+ String envName = "RHQ_JAVA_EXE_FILE_PATH";
String envString = System.getenv(envName);
if (envString != null) {
showMessage(AgentI18NResourceKeys.UPDATE_THREAD_USING_JAVA_EXE, envString);
return envString;
}
- // that RHQ environment variable should always be there. But in the odd case where it isn't
+ // try the legacy env var name for back compat
+ envName = "RHQ_AGENT_JAVA_EXE_FILE_PATH";
+ envString = System.getenv(envName);
+ if (envString != null) {
+ showMessage(AgentI18NResourceKeys.UPDATE_THREAD_USING_JAVA_EXE, envString);
+ return envString;
+ }
+
+ // one of the above RHQ environment variables should always be there. But in the odd case where it isn't
// let's try to guess where we can find the Java executable using another method
showMessage(AgentI18NResourceKeys.UPDATE_THREAD_LOOKING_FOR_JAVA_EXE, envName);
String javaExe = "java"; // fallback to this if we can't find it - let's hope its in our path
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat
index 6f19e3c..2b95d74c 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat
@@ -17,20 +17,16 @@ rem If not defined, it will be assumed to be the parent
rem directory of the directory where this script lives.
rem
rem
-rem RHQ_SERVER_JAVA_HOME - The location of the JRE that the Server will
-rem use. This will be ignored if
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-rem If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-rem not set, the Server's embedded JRE will be used.
+rem RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+rem will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+rem If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+rem JAVA_HOME will be used.
rem
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-rem executable to use. If this is set,
-rem RHQ_SERVER_JAVA_HOME is ignored.
-rem If this is not set, then
-rem %RHQ_SERVER_JAVA_HOME%\bin\java.exe
-rem is used. If this and
-rem RHQ_SERVER_JAVA_HOME are not set, the
-rem Server's embedded JRE will be used.
+rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+rem use. If this is set, RHQ_JAVA_HOME is ignored.
+rem If this is not set, then $RHQ_JAVA_HOME/bin/java
+rem is used. If this and RHQ_JAVA_HOME are not set,
+rem then $JAVA_HOME/bin/java will be used.
rem
rem RHQ_SERVER_INSTALLER_JAVA_OPTS - Java VM command line options to be
rem passed into the Java VM. If this is not defined
@@ -78,24 +74,41 @@ set RHQ_SERVER_HOME=%CD%
if defined RHQ_SERVER_DEBUG echo RHQ_SERVER_HOME: %RHQ_SERVER_HOME%
rem ----------------------------------------------------------------------
-rem Find the Java executable and verify we have a VM available.
+rem Find the Java executable and verify we have a VM available
+rem Note that RHQ_SERVER_JAVA_* props are still handled for back compat
rem ----------------------------------------------------------------------
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- if not defined RHQ_SERVER_JAVA_HOME call :prepare_embedded_jre
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+ )
+)
+if not defined RHQ_JAVA_HOME (
+ if defined RHQ_SERVER_JAVA_HOME (
+ set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ )
)
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH set RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_HOME%\bin\java.exe
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if not defined RHQ_JAVA_HOME (
+ if defined RHQ_SERVER_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
+ set RHQ_JAVA_HOME=%JAVA_HOME%
+ )
+)
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+)
-if defined RHQ_SERVER_DEBUG echo RHQ_SERVER_JAVA_HOME: %RHQ_SERVER_JAVA_HOME%
-if defined RHQ_SERVER_DEBUG echo RHQ_SERVER_JAVA_EXE_FILE_PATH: %RHQ_SERVER_JAVA_EXE_FILE_PATH%
+if defined RHQ_SERVER_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
+if defined RHQ_SERVER_DEBUG echo RHQ_JAVA_EXE_FILE_PATH: %RHQ_JAVA_EXE_FILE_PATH%
-if not exist "%RHQ_SERVER_JAVA_EXE_FILE_PATH%" (
+if not exist "%RHQ_JAVA_EXE_FILE_PATH%" (
echo There is no JVM available.
- echo Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit /B 1
)
+
if not exist "%RHQ_SERVER_HOME%\jbossas\jboss-modules.jar" (
echo ERROR! RHQ_SERVER_HOME is not pointing to a valid RHQ instance
echo Missing %RHQ_SERVER_HOME%\jboss-modules.jar
@@ -134,24 +147,11 @@ set _JBOSS_MODULEPATH=%_RHQ_MODULES_PATH%;%_INTERNAL_MODULES_PATH%
if defined RHQ_SERVER_DEBUG echo _JBOSS_MODULEPATH: %_JBOSS_MODULEPATH%
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_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
rem ----------------------------------------------------------------------
-rem CALL subroutine that prepares to use the embedded JRE
-rem ----------------------------------------------------------------------
-
-:prepare_embedded_jre
-set RHQ_SERVER_JAVA_HOME=%RHQ_SERVER_HOME%\jre
-if defined RHQ_SERVER_DEBUG echo Using the embedded JRE
-if not exist "%RHQ_SERVER_JAVA_HOME%" (
- if defined RHQ_SERVER_DEBUG echo No embedded JRE found - will try to use JAVA_HOME: %JAVA_HOME%
- set RHQ_SERVER_JAVA_HOME=%JAVA_HOME%
-)
-goto :eof
-
-rem ----------------------------------------------------------------------
rem CALL subroutine that exits this script normally
rem ----------------------------------------------------------------------
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat
index aa7de4b..a8a70ff 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat
@@ -19,18 +19,16 @@ rem RHQ_SERVER_HOME - Defines where the Server's home install directory is.
rem If not defined, it will be assumed to be the parent
rem directory of the directory where this script lives.
rem
-rem RHQ_SERVER_JAVA_HOME - The location of the JRE that the Server will
-rem use. This will be ignored if
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-rem If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-rem not set, JAVA_HOME will be used.
+rem RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+rem will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+rem If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+rem JAVA_HOME will be used.
rem
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-rem executable to use. If this is set,
-rem RHQ_SERVER_JAVA_HOME is ignored.
-rem If this is not set, then
-rem %RHQ_SERVER_JAVA_HOME%\bin\java.exe
-rem is used.
+rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+rem use. If this is set, RHQ_JAVA_HOME is ignored.
+rem If this is not set, then $RHQ_JAVA_HOME/bin/java
+rem is used. If this and RHQ_JAVA_HOME are not set,
+rem then $JAVA_HOME/bin/java will be used.
rem
rem RHQ_SERVER_INSTANCE_NAME - The name of the Windows Service; it must
rem conform to the Windows Service naming
@@ -88,24 +86,36 @@ if defined RHQ_SERVER_DEBUG echo RHQ_SERVER_HOME: %RHQ_SERVER_HOME%
rem ----------------------------------------------------------------------
rem Find the Java executable and verify we have a VM available
+rem Note that RHQ_SERVER_JAVA_* props are still handled for back compat
rem ----------------------------------------------------------------------
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- if not defined RHQ_SERVER_JAVA_HOME (
- if defined RHQ_STORAGE_DEBUG echo No JRE found - will try to use JAVA_HOME: %JAVA_HOME%
- set RHQ_SERVER_JAVA_HOME=%JAVA_HOME%
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
)
)
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_HOME%\bin\java.exe
+if not defined RHQ_JAVA_HOME (
+ if defined RHQ_SERVER_JAVA_HOME (
+ set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ )
+)
+
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if not defined RHQ_JAVA_HOME (
+ if defined RHQ_SERVER_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
+ set RHQ_JAVA_HOME=%JAVA_HOME%
+ )
+)
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
)
-if defined RHQ_STORAGE_DEBUG echo RHQ_SERVER_JAVA_HOME: %RHQ_SERVER_JAVA_HOME%
-if defined RHQ_STORAGE_DEBUG echo RHQ_SERVER_JAVA_EXE_FILE_PATH: %RHQ_SERVER_JAVA_EXE_FILE_PATH%
+if defined RHQ_SERVER_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
+if defined RHQ_SERVER_DEBUG echo RHQ_JAVA_EXE_FILE_PATH: %RHQ_JAVA_EXE_FILE_PATH%
-if not exist "%RHQ_SERVER_JAVA_EXE_FILE_PATH%" (
+if not exist "%RHQ_JAVA_EXE_FILE_PATH%" (
echo There is no JVM available.
- echo Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit /B 1
)
@@ -176,12 +186,12 @@ if not defined RHQ_SERVER_PASSWORD_PROMPT set RHQ_SERVER_PASSWORD_PROMPT=false
if /i "%1"=="console" (
rem START SERVER
- "%RHQ_SERVER_WRAPPER_EXE_FILE_PATH%" -c "%RHQ_SERVER_WRAPPER_CONF_FILE_PATH%" "set.RHQ_SERVER_HOME=%RHQ_SERVER_HOME%" "set.RHQ_SERVER_INSTANCE_NAME=%RHQ_SERVER_INSTANCE_NAME%" "set.RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%" "set.RHQ_SERVER_OS_PLATFORM=%RHQ_SERVER_OS_PLATFORM%" "set.RHQ_SERVER_WRAPPER_LOG_DIR_PATH=%RHQ_SERVER_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
+ "%RHQ_SERVER_WRAPPER_EXE_FILE_PATH%" -c "%RHQ_SERVER_WRAPPER_CONF_FILE_PATH%" "set.RHQ_SERVER_HOME=%RHQ_SERVER_HOME%" "set.RHQ_SERVER_INSTANCE_NAME=%RHQ_SERVER_INSTANCE_NAME%" "set.RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_EXE_FILE_PATH%" "set.RHQ_SERVER_OS_PLATFORM=%RHQ_SERVER_OS_PLATFORM%" "set.RHQ_SERVER_WRAPPER_LOG_DIR_PATH=%RHQ_SERVER_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
goto done
)
if /i "%1"=="install" (
- "%RHQ_SERVER_WRAPPER_EXE_FILE_PATH%" -i "%RHQ_SERVER_WRAPPER_CONF_FILE_PATH%" "set.RHQ_SERVER_HOME=%RHQ_SERVER_HOME%" "set.RHQ_SERVER_INSTANCE_NAME=%RHQ_SERVER_INSTANCE_NAME%" "set.RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%" "set.RHQ_SERVER_OS_PLATFORM=%RHQ_SERVER_OS_PLATFORM%" "set.RHQ_SERVER_WRAPPER_LOG_DIR_PATH=%RHQ_SERVER_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
+ "%RHQ_SERVER_WRAPPER_EXE_FILE_PATH%" -i "%RHQ_SERVER_WRAPPER_CONF_FILE_PATH%" "set.RHQ_SERVER_HOME=%RHQ_SERVER_HOME%" "set.RHQ_SERVER_INSTANCE_NAME=%RHQ_SERVER_INSTANCE_NAME%" "set.RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_EXE_FILE_PATH%" "set.RHQ_SERVER_OS_PLATFORM=%RHQ_SERVER_OS_PLATFORM%" "set.RHQ_SERVER_WRAPPER_LOG_DIR_PATH=%RHQ_SERVER_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
goto done
)
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat
index 6c6534a..6f97385 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat
@@ -23,18 +23,16 @@ rem set, JBOSS_HOME is used as a fallback. If
rem neither is set, it is assumed the AS bundled
rem under RHQ_SERVER_HOME\jbossas is to be used.
rem
-rem RHQ_SERVER_JAVA_HOME - The location of the JRE that the server will
-rem use. This will be ignored if
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-rem If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-rem not set, JAVA_HOME will be used.
+rem RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+rem will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+rem If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+rem JAVA_HOME will be used.
rem
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-rem executable to use. If this is set,
-rem RHQ_SERVER_JAVA_HOME is ignored.
-rem If this is not set, then
-rem $RHQ_SERVER_JAVA_HOME\bin\java
-rem is used.
+rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+rem use. If this is set, RHQ_JAVA_HOME is ignored.
+rem If this is not set, then $RHQ_JAVA_HOME/bin/java
+rem is used. If this and RHQ_JAVA_HOME are not set,
+rem then $JAVA_HOME/bin/java will be used.
rem
rem RHQ_STORAGE_INSTALLER_JAVA_OPTS - Java VM command line options to be
rem passed into the Java VM. If this is not defined
@@ -132,24 +130,36 @@ if not exist "%_LOG_DIR_PATH%" (
rem ----------------------------------------------------------------------
rem Find the Java executable and verify we have a VM available
+rem Note that RHQ_SERVER_JAVA_* props are still handled for back compat
rem ----------------------------------------------------------------------
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- if not defined RHQ_SERVER_JAVA_HOME (
- if defined RHQ_STORAGE_DEBUG echo No JRE found - will try to use JAVA_HOME: %JAVA_HOME%
- set RHQ_SERVER_JAVA_HOME=%JAVA_HOME%
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
)
)
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_HOME%\bin\java.exe
+if not defined RHQ_JAVA_HOME (
+ if defined RHQ_SERVER_JAVA_HOME (
+ set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ )
+)
+
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if not defined RHQ_JAVA_HOME (
+ if defined RHQ_STORAGE_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
+ set RHQ_JAVA_HOME=%JAVA_HOME%
+ )
+)
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
)
-if defined RHQ_STORAGE_DEBUG echo RHQ_SERVER_JAVA_HOME: %RHQ_SERVER_JAVA_HOME%
-if defined RHQ_STORAGE_DEBUG echo RHQ_SERVER_JAVA_EXE_FILE_PATH: %RHQ_SERVER_JAVA_EXE_FILE_PATH%
+if defined RHQ_STORAGE_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
+if defined RHQ_STORAGE_DEBUG echo RHQ_JAVA_EXE_FILE_PATH: %RHQ_JAVA_EXE_FILE_PATH%
-if not exist "%RHQ_SERVER_JAVA_EXE_FILE_PATH%" (
+if not exist "%RHQ_JAVA_EXE_FILE_PATH%" (
echo There is no JVM available.
- echo Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit /B 1
)
@@ -194,7 +204,7 @@ echo "Starting RHQ Storage Installer ..."
rem start the AS instance with our main installer module
-"%RHQ_SERVER_JAVA_EXE_FILE_PATH%" %RHQ_STORAGE_INSTALLER_JAVA_OPTS% %RHQ_STORAGE_INSTALLER_ADDITIONAL_JAVA_OPTS% -jar "%RHQ_SERVER_JBOSS_HOME%\jboss-modules.jar" -mp "%_JBOSS_MODULEPATH%" org.rhq.rhq-cassandra-installer %*
+"%RHQ_JAVA_EXE_FILE_PATH%" %RHQ_STORAGE_INSTALLER_JAVA_OPTS% %RHQ_STORAGE_INSTALLER_ADDITIONAL_JAVA_OPTS% -jar "%RHQ_SERVER_JBOSS_HOME%\jboss-modules.jar" -mp "%_JBOSS_MODULEPATH%" org.rhq.rhq-cassandra-installer %*
if not errorlevel 1 goto done
exit /B %ERRORLEVEL%
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat
index 70cca6c..7560932 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat
@@ -22,16 +22,16 @@ rem RHQ_STORAGE_HOME - Defines where the Storage Node's home install director
rem is. If not defined, it will be assumed to be
rem %RHQ_SERVER_HOME%\rhq-storage.
rem
-rem RHQ_SERVER_JAVA_HOME - The location of the JRE that the Server will
-rem use. This will be ignored if
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH is set. If this and
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH are not set, JAVA_HOME
-rem will be used.
+rem RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+rem will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+rem If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+rem JAVA_HOME will be used.
rem
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-rem executable to use. If this is set, RHQ_SERVER_JAVA_HOME
-rem is ignored. If this is not set, then
-rem %RHQ_SERVER_JAVA_HOME%\bin\java.exe is used.
+rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+rem use. If this is set, RHQ_JAVA_HOME is ignored.
+rem If this is not set, then $RHQ_JAVA_HOME/bin/java
+rem is used. If this and RHQ_JAVA_HOME are not set,
+rem then $JAVA_HOME/bin/java will be used.
rem
rem RHQ_STORAGE_INSTANCE_NAME - The name of the Windows Service; it must
rem conform to the Windows Service naming conventions. By
@@ -106,25 +106,36 @@ if defined RHQ_STORAGE_DEBUG echo RHQ_STORAGE_HOME: %RHQ_STORAGE_HOME%
rem ----------------------------------------------------------------------
rem Find the Java executable and verify we have a VM available
-
+rem Note that RHQ_SERVER_JAVA_* props are still handled for back compat
rem ----------------------------------------------------------------------
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- if not defined RHQ_SERVER_JAVA_HOME (
- if defined RHQ_STORAGE_DEBUG echo No JRE found - will try to use JAVA_HOME: %JAVA_HOME%
- set RHQ_SERVER_JAVA_HOME=%JAVA_HOME%
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+ )
+)
+if not defined RHQ_JAVA_HOME (
+ if defined RHQ_SERVER_JAVA_HOME (
+ set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ )
+)
+
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if not defined RHQ_JAVA_HOME (
+ if defined RHQ_STORAGE_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
+ set RHQ_JAVA_HOME=%JAVA_HOME%
)
)
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_HOME%\bin\java.exe
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
)
-if defined RHQ_STORAGE_DEBUG echo RHQ_SERVER_JAVA_HOME: %RHQ_SERVER_JAVA_HOME%
-if defined RHQ_STORAGE_DEBUG echo RHQ_SERVER_JAVA_EXE_FILE_PATH: %RHQ_SERVER_JAVA_EXE_FILE_PATH%
+if defined RHQ_STORAGE_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
+if defined RHQ_STORAGE_DEBUG echo RHQ_JAVA_EXE_FILE_PATH: %RHQ_JAVA_EXE_FILE_PATH%
-if not exist "%RHQ_SERVER_JAVA_EXE_FILE_PATH%" (
+if not exist "%RHQ_JAVA_EXE_FILE_PATH%" (
echo There is no JVM available.
- echo Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit /B 1
)
@@ -196,12 +207,12 @@ if not defined RHQ_STORAGE_PASSWORD_PROMPT set RHQ_STORAGE_PASSWORD_PROMPT=false
if /i "%1"=="console" (
rem START STORAGE NODE
- start "%RHQ_STORAGE_WRAPPER_EXE_FILE_PATH%" -c "%RHQ_STORAGE_WRAPPER_CONF_FILE_PATH%" "set.RHQ_SERVER_HOME=%RHQ_SERVER_HOME%" "set.RHQ_STORAGE_HOME=%RHQ_STORAGE_HOME%" "set.RHQ_STORAGE_INSTANCE_NAME=%RHQ_STORAGE_INSTANCE_NAME%" "set.RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%" "set.RHQ_STORAGE_OS_PLATFORM=%RHQ_STORAGE_OS_PLATFORM%" "set.RHQ_STORAGE_WRAPPER_LOG_DIR_PATH=%RHQ_STORAGE_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
+ start "%RHQ_STORAGE_WRAPPER_EXE_FILE_PATH%" -c "%RHQ_STORAGE_WRAPPER_CONF_FILE_PATH%" "set.RHQ_SERVER_HOME=%RHQ_SERVER_HOME%" "set.RHQ_STORAGE_HOME=%RHQ_STORAGE_HOME%" "set.RHQ_STORAGE_INSTANCE_NAME=%RHQ_STORAGE_INSTANCE_NAME%" "set.RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_EXE_FILE_PATH%" "set.RHQ_STORAGE_OS_PLATFORM=%RHQ_STORAGE_OS_PLATFORM%" "set.RHQ_STORAGE_WRAPPER_LOG_DIR_PATH=%RHQ_STORAGE_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
goto done
)
if /i "%1"=="install" (
- "%RHQ_STORAGE_WRAPPER_EXE_FILE_PATH%" -i "%RHQ_STORAGE_WRAPPER_CONF_FILE_PATH%" "set.RHQ_SERVER_HOME=%RHQ_SERVER_HOME%" "set.RHQ_STORAGE_HOME=%RHQ_STORAGE_HOME%" "set.RHQ_STORAGE_INSTANCE_NAME=%RHQ_STORAGE_INSTANCE_NAME%" "set.RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%" "set.RHQ_STORAGE_OS_PLATFORM=%RHQ_STORAGE_OS_PLATFORM%" "set.RHQ_STORAGE_WRAPPER_LOG_DIR_PATH=%RHQ_STORAGE_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
+ "%RHQ_STORAGE_WRAPPER_EXE_FILE_PATH%" -i "%RHQ_STORAGE_WRAPPER_CONF_FILE_PATH%" "set.RHQ_SERVER_HOME=%RHQ_SERVER_HOME%" "set.RHQ_STORAGE_HOME=%RHQ_STORAGE_HOME%" "set.RHQ_STORAGE_INSTANCE_NAME=%RHQ_STORAGE_INSTANCE_NAME%" "set.RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_EXE_FILE_PATH%" "set.RHQ_STORAGE_OS_PLATFORM=%RHQ_STORAGE_OS_PLATFORM%" "set.RHQ_STORAGE_WRAPPER_LOG_DIR_PATH=%RHQ_STORAGE_WRAPPER_LOG_DIR_PATH%" %_WRAPPER_NTSERVICE_ACCOUNT% %_DEBUG_OPTS%
goto done
)
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat
index b168624..844495d 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat
@@ -23,18 +23,16 @@ rem set, JBOSS_HOME is used as a fallback. If
rem neither is set, it is assumed the AS bundled
rem under RHQ_SERVER_HOME\jbossas is to be used.
rem
-rem RHQ_SERVER_JAVA_HOME - The location of the JRE that the server will
-rem use. This will be ignored if
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-rem If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-rem not set, JAVA_HOME will be used.
+rem RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+rem will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+rem If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+rem JAVA_HOME will be used.
rem
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-rem executable to use. If this is set,
-rem RHQ_SERVER_JAVA_HOME is ignored.
-rem If this is not set, then
-rem $RHQ_SERVER_JAVA_HOME\bin\java
-rem is used.
+rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+rem use. If this is set, RHQ_JAVA_HOME is ignored.
+rem If this is not set, then $RHQ_JAVA_HOME/bin/java
+rem is used. If this and RHQ_JAVA_HOME are not set,
+rem then $JAVA_HOME/bin/java will be used.
rem
rem RHQ_DATA_MIGRATION_JAVA_OPTS - Java VM command line options to be
rem passed into the Java VM. If this is not defined
@@ -132,24 +130,36 @@ if not exist "%_LOG_DIR_PATH%" (
rem ----------------------------------------------------------------------
rem Find the Java executable and verify we have a VM available
+rem Note that RHQ_SERVER_JAVA_* props are still handled for back compat
rem ----------------------------------------------------------------------
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- if not defined RHQ_SERVER_JAVA_HOME (
- if defined RHQ_DATA_MIGRATION_DEBUG echo No JRE found - will try to use JAVA_HOME: %JAVA_HOME%
- set RHQ_SERVER_JAVA_HOME=%JAVA_HOME%
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
)
)
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_HOME%\bin\java.exe
+if not defined RHQ_JAVA_HOME (
+ if defined RHQ_SERVER_JAVA_HOME (
+ set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ )
+)
+
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if not defined RHQ_JAVA_HOME (
+ if defined RHQ_DATA_MIGRATION_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
+ set RHQ_JAVA_HOME=%JAVA_HOME%
+ )
+)
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
)
-if defined RHQ_DATA_MIGRATION_DEBUG echo RHQ_SERVER_JAVA_HOME: %RHQ_SERVER_JAVA_HOME%
-if defined RHQ_DATA_MIGRATION_DEBUG echo RHQ_SERVER_JAVA_EXE_FILE_PATH: %RHQ_SERVER_JAVA_EXE_FILE_PATH%
+if defined RHQ_DATA_MIGRATION_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
+if defined RHQ_DATA_MIGRATION_DEBUG echo RHQ_JAVA_EXE_FILE_PATH: %RHQ_JAVA_EXE_FILE_PATH%
-if not exist "%RHQ_SERVER_JAVA_EXE_FILE_PATH%" (
+if not exist "%RHQ_JAVA_EXE_FILE_PATH%" (
echo There is no JVM available.
- echo Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit /B 1
)
@@ -193,7 +203,7 @@ if defined RHQ_DATA_MIGRATION_DEBUG echo _JBOSS_MODULEPATH: %_JBOSS_MODULEPATH%
echo "Starting RHQ Data Migration ..."
rem start the AS instance with our main data migration module
-"%RHQ_SERVER_JAVA_EXE_FILE_PATH%" %RHQ_DATA_MIGRATION_JAVA_OPTS% %RHQ_DATA_MIGRATION_ADDITIONAL_JAVA_OPTS% -jar "%RHQ_SERVER_JBOSS_HOME%\jboss-modules.jar" -mp "%_JBOSS_MODULEPATH%" org.rhq.rhq-data-migration %*
+"%RHQ_JAVA_EXE_FILE_PATH%" %RHQ_DATA_MIGRATION_JAVA_OPTS% %RHQ_DATA_MIGRATION_ADDITIONAL_JAVA_OPTS% -jar "%RHQ_SERVER_JBOSS_HOME%\jboss-modules.jar" -mp "%_JBOSS_MODULEPATH%" org.rhq.rhq-data-migration %*
:done
endlocal
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.bat
index 8ccc2d3..c6342b2 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.bat
@@ -1,3 +1,6 @@
@echo off
-echo This script is obsolete and no longer used. Use rhqctl instead.
+echo ERROR: %0 has been replaced by rhqctl
+echo Please use rhqctl. For help on the new command try:
+echo.
+echo rhqctl --help
exit /B 1
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat
index 43910c1..6a611e4 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat
@@ -22,18 +22,16 @@ rem set, JBOSS_HOME is used as a fallback. If
rem neither is set, it is assumed the AS bundled
rem under RHQ_SERVER_HOME\jbossas is to be used.
-rem RHQ_SERVER_JAVA_HOME - The location of the JRE that the server will
-rem use. This will be ignored if
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-rem If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-rem not set, JAVA_HOME will be used.
-
-rem RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-rem executable to use. If this is set,
-rem RHQ_SERVER_JAVA_HOME is ignored.
-rem If this is not set, then
-rem $RHQ_SERVER_JAVA_HOME\bin\java
-rem is used.
+rem RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+rem will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+rem If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+rem JAVA_HOME will be used.
+
+rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+rem use. If this is set, RHQ_JAVA_HOME is ignored.
+rem If this is not set, then $RHQ_JAVA_HOME/bin/java
+rem is used. If this and RHQ_JAVA_HOME are not set,
+rem then $JAVA_HOME/bin/java will be used.
rem RHQ_CONTROL_JAVA_OPTS - Java VM command line options to be
rem passed into the Java VM. If this is not defined
@@ -131,24 +129,36 @@ if not exist "%_LOG_DIR_PATH%" (
rem ----------------------------------------------------------------------
rem Find the Java executable and verify we have a VM available
+rem Note that RHQ_SERVER_JAVA_* props are still handled for back compat
rem ----------------------------------------------------------------------
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- if not defined RHQ_SERVER_JAVA_HOME (
- if defined RHQ_CONTROL_DEBUG echo No JRE found - will try to use JAVA_HOME: %JAVA_HOME%
- set RHQ_SERVER_JAVA_HOME=%JAVA_HOME%
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
)
)
-if not defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_SERVER_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_HOME%\bin\java.exe
+if not defined RHQ_JAVA_HOME (
+ if defined RHQ_SERVER_JAVA_HOME (
+ set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ )
)
-if defined RHQ_CONTROL_DEBUG echo RHQ_SERVER_JAVA_HOME: %RHQ_SERVER_JAVA_HOME%
-if defined RHQ_CONTROL_DEBUG echo RHQ_SERVER_JAVA_EXE_FILE_PATH: %RHQ_SERVER_JAVA_EXE_FILE_PATH%
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if not defined RHQ_JAVA_HOME (
+ if defined RHQ_CONTROL_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
+ set RHQ_JAVA_HOME=%JAVA_HOME%
+ )
+)
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+)
+
+if defined RHQ_CONTROL_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
+if defined RHQ_CONTROL_DEBUG echo RHQ_JAVA_EXE_FILE_PATH: %RHQ_JAVA_EXE_FILE_PATH%
-if not exist "%RHQ_SERVER_JAVA_EXE_FILE_PATH%" (
+if not exist "%RHQ_JAVA_EXE_FILE_PATH%" (
echo There is no JVM available.
- echo Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit /B 1
)
@@ -169,7 +179,8 @@ if defined RHQ_CONTROL_DEBUG (
)
rem debugging the logging level now for development/testing
-set RHQ_CONTROL_JAVA_OPTS=%RHQ_CONTROL_JAVA_OPTS% -Djava.awt.headless=true -Drhq.server.properties-file=%RHQ_SERVER_HOME%\bin\rhq-server.properties -Drhq.control.logdir=%RHQ_SERVER_HOME%\logs -Drhq.control.loglevel=%_RHQ_LOGLEVEL% -Drhq.server.basedir=%RHQ_SERVER_HOME% -Drhqctl.properties-file=%RHQ_SERVER_HOME%\bin\rhqctl.properties
+rem debugging the logging level now for development/testing
+set RHQ_CONTROL_JAVA_OPTS=%RHQ_CONTROL_JAVA_OPTS% -Djava.awt.headless=true -Drhq.server.properties-file="%RHQ_SERVER_HOME%\bin\rhq-server.properties" -Drhq.control.logdir="%RHQ_SERVER_HOME%\logs" -Drhq.control.loglevel=%_RHQ_LOGLEVEL% -Drhq.server.basedir="%RHQ_SERVER_HOME%" -Drhqctl.properties-file="%RHQ_SERVER_HOME%\bin\rhqctl.properties" -Drhq.java-exe-file-path="%RHQ_JAVA_EXE_FILE_PATH%"
rem Sample JPDA settings for remote socket debugging
rem set RHQ_CONTROL_JAVA_OPTS=%RHQ_CONTROL_JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=8786,server=y,suspend=y
@@ -187,7 +198,7 @@ set _JBOSS_MODULEPATH=%_RHQ_MODULES_PATH%;%_INTERNAL_MODULES_PATH%
if defined RHQ_CONTROL_DEBUG echo _JBOSS_MODULEPATH: %_JBOSS_MODULEPATH%
rem start the AS instance with our main installer module
-"%RHQ_SERVER_JAVA_EXE_FILE_PATH%" %RHQ_CONTROL_JAVA_OPTS% %RHQ_CONTROL_ADDITIONAL_JAVA_OPTS% -jar "%RHQ_SERVER_JBOSS_HOME%\jboss-modules.jar" -mp "%_JBOSS_MODULEPATH%" org.rhq.rhq-server-control %*
+"%RHQ_JAVA_EXE_FILE_PATH%" %RHQ_CONTROL_JAVA_OPTS% %RHQ_CONTROL_ADDITIONAL_JAVA_OPTS% -jar "%RHQ_SERVER_JBOSS_HOME%\jboss-modules.jar" -mp "%_JBOSS_MODULEPATH%" org.rhq.rhq-server-control %*
if not errorlevel 1 goto done
exit /B %ERRORLEVEL%
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.conf b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.conf
index 23e05fc..d7467e9 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.conf
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.conf
@@ -23,7 +23,6 @@
#
# set.RHQ_SERVER_HOME - RHQ Server installation directory
# set.RHQ_SERVER_INSTANCE_NAME - A name to identify the RHQ Server
-# set.RHQ_SERVER_JAVA_EXE_FILE_PATH - Java executable
# set.RHQ_SERVER_OS_PLATFORM - The operating system platform name
# set.RHQ_SERVER_WRAPPER_LOG_DIR_PATH - The Java Service Wrapper's log file (helpful if installing, uninstalling or starting fails)
# set.RHQ_SERVER_PASSWORD_PROMPT - TRUE if password needs to be typed on
@@ -32,6 +31,7 @@
# set.RHQ_SERVER_PASSWORD - the password of the user that is to
# run the service. Only used if
# RHQ_SERVER_PASSWORD_PROMPT is FALSE.
+# set.RHQ_JAVA_EXE_FILE_PATH - Java executable
#*****************************************************************************
# Load in the specific environment for the RHQ Server instance to start
@@ -41,7 +41,7 @@
# Start Properties
#*****************************************************************************
# Java JVM Executable (quotes not needed)
-wrapper.java.command=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+wrapper.java.command=%RHQ_JAVA_EXE_FILE_PATH%
# Java Main class. This class must implement the WrapperListener interface. (quotes not needed)
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.conf b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.conf
index b68846a..88f6011 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.conf
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.conf
@@ -24,7 +24,6 @@
# set.RHQ_SERVER_HOME - RHQ Server installation directory
# set.RHQ_STORAGE_HOME - RHQ Storage Node installation directory
# set.RHQ_STORAGE_INSTANCE_NAME - A name to identify the RHQ Storage Node
-# set.RHQ_SERVER_JAVA_EXE_FILE_PATH - Java executable
# set.RHQ_STORAGE_OS_PLATFORM - The operating system platform name
# set.RHQ_STORAGE_WRAPPER_LOG_DIR_PATH - The Java Service Wrapper's log file (helpful if installing, uninstalling or starting fails)
# set.RHQ_STORAGE_PASSWORD_PROMPT - TRUE if password needs to be typed on
@@ -33,6 +32,7 @@
# set.RHQ_STORAGE_PASSWORD - the password of the user that is to
# run the service. Only used if
# RHQ_STORAGE_PASSWORD_PROMPT is FALSE.
+# set.RHQ_JAVA_EXE_FILE_PATH - Java executable
#*****************************************************************************
# Load in the specific environment for the RHQ Storage Node instance to start
@@ -42,7 +42,7 @@
# Start Properties
#*****************************************************************************
# Java JVM Executable (quotes not needed)
-wrapper.java.command=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+wrapper.java.command=%RHQ_JAVA_EXE_FILE_PATH%
# Java Main class. This class must implement the WrapperListener interface. (quotes not needed)
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
commit bed89999333b8f8d63d6f8433aad3ddcaa17c31e
Merge: 6f106dc b203372
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Oct 11 13:52:25 2013 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 6f106dc26c747ce1dd8fbb0dfff14fa22433f2b0
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Oct 11 13:35:06 2013 -0400
Don't let the module depend on finding Java on the PATH
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index f651099..1f61045 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -38,7 +38,7 @@
<goal>exec</goal>
</goals>
<configuration>
- <executable>java</executable>
+ <executable>${java.home}/bin/java</executable>
<workingDirectory>target</workingDirectory>
<arguments>
<argument>-cp</argument>
commit b20337239eeabc33ba38bfca088395c800cd19f0
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Fri Oct 11 09:29:04 2013 -0700
[BZ 1018309] - Spaces in Login Name cause header to shift down and not look good.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java
index 547eb00..6d6fe59 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/menu/MenuBarView.java
@@ -125,6 +125,7 @@ public class MenuBarView extends EnhancedVLayout {
userLabel = new Label(UserSessionManager.getSessionSubject().getName());
userLabel.setAutoWidth();
+ userLabel.setWrap(false);
Label lineLabel = new Label(" | ");
lineLabel.setWidth("12px");
commit 4a8eee0468588fd4ad6241eba43785436622374d
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Oct 11 11:07:05 2013 -0400
Bug 1016609 - storage and agent service is not taking java exec from 'RHQ_SERVER_JAVA_HOME'
Updates to JVM property handling - Part 1, .sh scripts
- Update scripts to use new RHQ_JAVA_HOME and RHQ_JAVA_EXE_FILE_PATH properties.
- Ensure rhqctl and all components (including the embedded cassandra) honor the JVM property settings
- never fall back to PATH
- eliminate references to embedded jre's in our components
- keep back compatibility support for RHQ_SERVER_JAVA_XXX and RHQ_AGENT_XXX properties
- note - new properties, if set, have preference.
Part 2, .bat file support, pending...
diff --git a/modules/enterprise/agent/src/etc/rhq-agent-env.sh b/modules/enterprise/agent/src/etc/rhq-agent-env.sh
index 512cec6..f81cfa8 100755
--- a/modules/enterprise/agent/src/etc/rhq-agent-env.sh
+++ b/modules/enterprise/agent/src/etc/rhq-agent-env.sh
@@ -24,24 +24,22 @@
#
#RHQ_AGENT_HOME="/opt/rhq-agent"
-# RHQ_AGENT_JAVA_HOME - The location of the JRE that the agent will
-# use. This will be ignored if
-# RHQ_AGENT_JAVA_EXE_FILE_PATH is set.
-# If this and RHQ_AGENT_JAVA_EXE_FILE_PATH are
-# not set, the agent's embedded JRE will be used.
+# RHQ_JAVA_HOME - The location of the JRE that the agent will
+# use. This will be ignored if
+# RHQ_JAVA_EXE_FILE_PATH is set.
+# If this and RHQ_JAVA_EXE_FILE_PATH are
+# not set, JAVA_HOME will be used.
#
-#RHQ_AGENT_JAVA_HOME="/usr/lib/jvm/jre"
+#RHQ_JAVA_HOME="/usr/lib/jvm/jre"
-# RHQ_AGENT_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-# executable to use. If this is set,
-# RHQ_AGENT_JAVA_HOME is ignored.
-# If this is not set, then
-# $RHQ_AGENT_JAVA_HOME/bin/java
-# is used. If this and
-# RHQ_AGENT_JAVA_HOME are not set, the
-# agent's embedded JRE will be used.
+# RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java
+# executable to use. If this is set,
+# RHQ_JAVA_HOME is ignored. If this is
+# not set, then $RHQ_JAVA_HOME/bin/java
+# is used. If this and RHQ_JAVA_HOME are
+# not set, then JAVA_HOME will be used.
#
-#RHQ_AGENT_JAVA_EXE_FILE_PATH="/usr/local/bin/java"
+#RHQ_JAVA_EXE_FILE_PATH="/usr/local/bin/java"
# RHQ_AGENT_JAVA_OPTS - Java VM command line options to be
# passed into the agent's VM. If this is not defined
diff --git a/modules/enterprise/agent/src/etc/rhq-agent.sh b/modules/enterprise/agent/src/etc/rhq-agent.sh
index be30134..5423f79 100755
--- a/modules/enterprise/agent/src/etc/rhq-agent.sh
+++ b/modules/enterprise/agent/src/etc/rhq-agent.sh
@@ -112,32 +112,37 @@ debug_msg "RHQ_AGENT_HOME: $RHQ_AGENT_HOME"
# ----------------------------------------------------------------------
# Find the Java executable and verify we have a VM available
# ----------------------------------------------------------------------
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ ! -z "$RHQ_AGENT_JAVA_EXE_FILE_PATH" ]; then
+ RHQ_JAVA_EXE_FILE_PATH="$RHQ_AGENT_JAVA_EXE_FILE_PATH"
+ fi
+fi
+if [ -z "$RHQ_JAVA_HOME" ]; then
+ if [ ! -z "$RHQ_AGENT_JAVA_HOME" ]; then
+ RHQ_JAVA_HOME="$RHQ_AGENT_JAVA_HOME"
+ fi
+fi
-if [ -z "$RHQ_AGENT_JAVA_EXE_FILE_PATH" ]; then
- if [ -z "$RHQ_AGENT_JAVA_HOME" ]; then
- RHQ_AGENT_JAVA_HOME="${RHQ_AGENT_HOME}/jre"
- if [ -d "$RHQ_AGENT_JAVA_HOME" ]; then
- debug_msg "Using the embedded JRE"
- else
- set_java_home
- debug_msg "No embedded JRE found - will try to use JAVA_HOME: $JAVA_HOME"
- RHQ_AGENT_JAVA_HOME="$JAVA_HOME"
- fi
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ -z "$RHQ_JAVA_HOME" ]; then
+ set_java_home
+ debug_msg "No RHQ JAVA property set, defaulting to JAVA_HOME: $JAVA_HOME"
+ RHQ_JAVA_HOME="$JAVA_HOME"
fi
- debug_msg "RHQ_AGENT_JAVA_HOME: $RHQ_AGENT_JAVA_HOME"
- RHQ_AGENT_JAVA_EXE_FILE_PATH="${RHQ_AGENT_JAVA_HOME}/bin/java"
+ debug_msg "RHQ_JAVA_HOME: $RHQ_JAVA_HOME"
+ RHQ_JAVA_EXE_FILE_PATH="${RHQ_JAVA_HOME}/bin/java"
else
- # Infer RHQ_AGENT_JAVA_HOME from RHQ_AGENT_JAVA_EXE_FILE_PATH
- # RHQ_AGENT_JAVA_HOME will be used later to find JDK's tools.jar if available
- _RHQ_AGENT_JAVA_BIN_DIR=`dirname "$RHQ_AGENT_JAVA_EXE_FILE_PATH"`
- RHQ_AGENT_JAVA_HOME=`dirname "$_RHQ_AGENT_JAVA_BIN_DIR"`
- debug_msg "RHQ_AGENT_JAVA_HOME (inferred from RHQ_AGENT_JAVA_EXE_FILE_PATH): $RHQ_AGENT_JAVA_HOME"
+ # Infer RHQ_JAVA_HOME from RHQ_JAVA_EXE_FILE_PATH
+ # RHQ_JAVA_HOME will be used later to find JDK's tools.jar if available
+ _RHQ_JAVA_BIN_DIR=`dirname "$RHQ_JAVA_EXE_FILE_PATH"`
+ RHQ_JAVA_HOME=`dirname "$_RHQ_JAVA_BIN_DIR"`
+ debug_msg "RHQ_JAVA_HOME (inferred from RHQ_JAVA_EXE_FILE_PATH): $RHQ_JAVA_HOME"
fi
-debug_msg "RHQ_AGENT_JAVA_EXE_FILE_PATH: $RHQ_AGENT_JAVA_EXE_FILE_PATH"
+debug_msg "RHQ_JAVA_EXE_FILE_PATH: $RHQ_JAVA_EXE_FILE_PATH"
-if [ ! -f "$RHQ_AGENT_JAVA_EXE_FILE_PATH" ]; then
+if [ ! -f "$RHQ_JAVA_EXE_FILE_PATH" ]; then
echo There is no JVM available.
- echo Please set RHQ_AGENT_JAVA_HOME or RHQ_AGENT_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit 1
fi
@@ -160,7 +165,7 @@ for _JAR in $_JAR_FILES ; do
fi
debug_msg "CLASSPATH entry: $_JAR"
done
-for _TOOLS_JAR in "${RHQ_AGENT_JAVA_HOME}/lib/tools.jar" "${RHQ_AGENT_JAVA_HOME}/../lib/tools.jar" "${RHQ_AGENT_JAVA_HOME}/Classes/classes.jar" "${RHQ_AGENT_JAVA_HOME}/../Classes/classes.jar"; do
+for _TOOLS_JAR in "${RHQ_JAVA_HOME}/lib/tools.jar" "${RHQ_JAVA_HOME}/../lib/tools.jar" "${RHQ_JAVA_HOME}/Classes/classes.jar" "${RHQ_JAVA_HOME}/../Classes/classes.jar"; do
if [ -f "${_TOOLS_JAR}" ]; then
debug_msg "CLASSPATH entry: ${_TOOLS_JAR}"
CLASSPATH="${CLASSPATH}:${_TOOLS_JAR}"
@@ -286,8 +291,8 @@ fi
# Build the command line that starts the VM
# note - currently not using custom Java Prefs as the default, use commented command line to activate
-# CMD="\"${RHQ_AGENT_JAVA_EXE_FILE_PATH}\" ${_JAVA_ENDORSED_DIRS_OPT} ${_JAVA_LIBRARY_PATH_OPT} ${_JAVA_PREFERENCES_FACTORY_OPT} ${_JNA_LIBRARY_PATH} ${RHQ_AGENT_JAVA_OPTS} ${RHQ_AGENT_ADDITIONAL_JAVA_OPTS} ${_LOG_CONFIG} -cp \"${CLASSPATH}\" ${RHQ_AGENT_MAINCLASS} ${RHQ_AGENT_CMDLINE_OPTS}"
-CMD="\"${RHQ_AGENT_JAVA_EXE_FILE_PATH}\" ${_JAVA_ENDORSED_DIRS_OPT} ${_JAVA_LIBRARY_PATH_OPT} ${_JNA_LIBRARY_PATH} ${RHQ_AGENT_JAVA_OPTS} ${RHQ_AGENT_ADDITIONAL_JAVA_OPTS} ${_LOG_CONFIG} -cp \"${CLASSPATH}\" ${RHQ_AGENT_MAINCLASS} ${RHQ_AGENT_CMDLINE_OPTS}"
+# CMD="\"${RHQ_JAVA_EXE_FILE_PATH}\" ${_JAVA_ENDORSED_DIRS_OPT} ${_JAVA_LIBRARY_PATH_OPT} ${_JAVA_PREFERENCES_FACTORY_OPT} ${_JNA_LIBRARY_PATH} ${RHQ_AGENT_JAVA_OPTS} ${RHQ_AGENT_ADDITIONAL_JAVA_OPTS} ${_LOG_CONFIG} -cp \"${CLASSPATH}\" ${RHQ_AGENT_MAINCLASS} ${RHQ_AGENT_CMDLINE_OPTS}"
+CMD="\"${RHQ_JAVA_EXE_FILE_PATH}\" ${_JAVA_ENDORSED_DIRS_OPT} ${_JAVA_LIBRARY_PATH_OPT} ${_JNA_LIBRARY_PATH} ${RHQ_AGENT_JAVA_OPTS} ${RHQ_AGENT_ADDITIONAL_JAVA_OPTS} ${_LOG_CONFIG} -cp \"${CLASSPATH}\" ${RHQ_AGENT_MAINCLASS} ${RHQ_AGENT_CMDLINE_OPTS}"
debug_msg "Executing the agent with this command line:"
debug_msg "$CMD"
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.sh b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.sh
index 3aa29df..84f4c66 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.sh
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.sh
@@ -23,20 +23,16 @@
# neither is set, it is assumed the AS bundled
# under RHQ_SERVER_HOME/jbossas is to be used.
#
-# RHQ_SERVER_JAVA_HOME - The location of the JRE that the server will
-# use. This will be ignored if
-# RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-# If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-# not set, the Server's embedded JRE will be used.
+# RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+# will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+# If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+# JAVA_HOME will be used.
#
-# RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-# executable to use. If this is set,
-# RHQ_SERVER_JAVA_HOME is ignored.
-# If this is not set, then
-# $RHQ_SERVER_JAVA_HOME/bin/java
-# is used. If this and
-# RHQ_SERVER_JAVA_HOME are not set, the
-# Server's embedded JRE will be used.
+# RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+# use. If this is set, RHQ_JAVA_HOME is ignored.
+# If this is not set, then $RHQ_JAVA_HOME/bin/java
+# is used. If this and RHQ_JAVA_HOME are not set,
+# then $JAVA_HOME/bin/java will be used.
#
# RHQ_SERVER_INSTALLER_JAVA_OPTS - Java VM command line options to be
# passed into the Java VM. If this is not defined
@@ -176,26 +172,33 @@ fi
# ----------------------------------------------------------------------
# Find the Java executable and verify we have a VM available
+# Note that RHQ_SERVER_JAVA_* props are still handled for back compat
# ----------------------------------------------------------------------
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ ! -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+ RHQ_JAVA_EXE_FILE_PATH="$RHQ_SERVER_JAVA_EXE_FILE_PATH"
+ fi
+fi
+if [ -z "$RHQ_JAVA_HOME" ]; then
+ if [ ! -z "$RHQ_SERVER_JAVA_HOME" ]; then
+ RHQ_JAVA_HOME="$RHQ_SERVER_JAVA_HOME"
+ fi
+fi
-if [ -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
- if [ -z "$RHQ_SERVER_JAVA_HOME" ]; then
- RHQ_SERVER_JAVA_HOME="${RHQ_SERVER_HOME}/jre"
- if [ -d "$RHQ_SERVER_JAVA_HOME" ]; then
- debug_msg "Using the embedded JRE"
- else
- debug_msg "No embedded JRE found - will try to use JAVA_HOME: $JAVA_HOME"
- RHQ_SERVER_JAVA_HOME="$JAVA_HOME"
- fi
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ -z "$RHQ_JAVA_HOME" ]; then
+ debug_msg "No RHQ JAVA property set, defaulting to JAVA_HOME: $JAVA_HOME"
+ RHQ_JAVA_HOME="$JAVA_HOME"
fi
- debug_msg "RHQ_SERVER_JAVA_HOME: $RHQ_SERVER_JAVA_HOME"
- RHQ_SERVER_JAVA_EXE_FILE_PATH="${RHQ_SERVER_JAVA_HOME}/bin/java"
+ debug_msg "RHQ_JAVA_HOME: $RHQ_JAVA_HOME"
+ RHQ_JAVA_EXE_FILE_PATH="${RHQ_JAVA_HOME}/bin/java"
fi
-debug_msg "RHQ_SERVER_JAVA_EXE_FILE_PATH: $RHQ_SERVER_JAVA_EXE_FILE_PATH"
-if [ ! -f "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+debug_msg "RHQ_JAVA_EXE_FILE_PATH: $RHQ_JAVA_EXE_FILE_PATH"
+
+if [ ! -f "$RHQ_JAVA_EXE_FILE_PATH" ]; then
echo "There is no JVM available."
- echo "Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately."
+ echo "Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately."
exit 1
fi
@@ -235,7 +238,7 @@ _JBOSS_MODULEPATH="${_RHQ_MODULES_PATH}:${_INTERNAL_MODULES_PATH}"
debug_msg "_JBOSS_MODULEPATH: $_JBOSS_MODULEPATH"
# 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_JBOSS_HOME}/jboss-modules.jar" -mp "$_JBOSS_MODULEPATH" org.rhq.rhq-installer-util "$@"
+"$RHQ_JAVA_EXE_FILE_PATH" ${RHQ_SERVER_INSTALLER_JAVA_OPTS} ${RHQ_SERVER_INSTALLER_ADDITIONAL_JAVA_OPTS} -jar "${RHQ_SERVER_JBOSS_HOME}/jboss-modules.jar" -mp "$_JBOSS_MODULEPATH" org.rhq.rhq-installer-util "$@"
_EXIT_STATUS=$?
exit $_EXIT_STATUS
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.sh b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.sh
index 2b37aac..9856190 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.sh
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.sh
@@ -32,18 +32,16 @@
# neither is set, it is assumed the AS bundled
# under RHQ_SERVER_HOME/jbossas is to be used.
#
-# RHQ_SERVER_JAVA_HOME - The location of the JRE that the server will
-# use. This will be ignored if
-# RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-# If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-# not set, JAVA_HOME will be used.
+# RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+# will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+# If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+# JAVA_HOME will be used.
#
-# RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-# executable to use. If this is set,
-# RHQ_SERVER_JAVA_HOME is ignored.
-# If this is not set, then
-# $RHQ_SERVER_JAVA_HOME/bin/java
-# is used.
+# RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+# use. If this is set, RHQ_JAVA_HOME is ignored.
+# If this is not set, then $RHQ_JAVA_HOME/bin/java
+# is used. If this and RHQ_JAVA_HOME are not set,
+# then $JAVA_HOME/bin/java will be used.
#
# RHQ_SERVER_JAVA_OPTS - Java VM command line options to be
# passed into the Server's VM. If this is not defined
@@ -104,8 +102,8 @@
# RHQ_SERVER_HOME=/path/to/server/home
# RHQ_SERVER_DEBUG=true
-# JAVA_HOME=/path/to/java/installation
-# RHQ_SERVER_JAVA_EXE_FILE_PATH=/path/directly/to/java/executable
+# RHQ_JAVA_HOME=/path/to/java/installation
+# RHQ_JAVA_EXE_FILE_PATH=/path/directly/to/java/executable
# RHQ_SERVER_JAVA_OPTS=VM options
# RHQ_SERVER_ADDITIONAL_JAVA_OPTS=additional VM options
# RHQ_SERVER_CMDLINE_OPTS=standalone.sh options
@@ -343,26 +341,38 @@ fi
# ----------------------------------------------------------------------
# Find the Java executable and verify we have a VM available
+# Note that RHQ_SERVER_JAVA_* props are still handled for back compat
# ----------------------------------------------------------------------
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ ! -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+ RHQ_JAVA_EXE_FILE_PATH="$RHQ_SERVER_JAVA_EXE_FILE_PATH"
+ fi
+fi
+if [ -z "$RHQ_JAVA_HOME" ]; then
+ if [ ! -z "$RHQ_SERVER_JAVA_HOME" ]; then
+ RHQ_JAVA_HOME="$RHQ_SERVER_JAVA_HOME"
+ fi
+fi
-if [ -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
- if [ -z "$RHQ_SERVER_JAVA_HOME" ]; then
- debug_msg "No JRE found - will try to use JAVA_HOME: $JAVA_HOME"
- RHQ_SERVER_JAVA_HOME="$JAVA_HOME"
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ -z "$RHQ_JAVA_HOME" ]; then
+ debug_msg "No RHQ JAVA property set, defaulting to JAVA_HOME: $JAVA_HOME"
+ RHQ_JAVA_HOME="$JAVA_HOME"
fi
- debug_msg "RHQ_SERVER_JAVA_HOME: $RHQ_SERVER_JAVA_HOME"
- RHQ_SERVER_JAVA_EXE_FILE_PATH="${RHQ_SERVER_JAVA_HOME}/bin/java"
+ debug_msg "RHQ_JAVA_HOME: $RHQ_JAVA_HOME"
+ RHQ_JAVA_EXE_FILE_PATH="${RHQ_JAVA_HOME}/bin/java"
fi
-debug_msg "RHQ_SERVER_JAVA_EXE_FILE_PATH: $RHQ_SERVER_JAVA_EXE_FILE_PATH"
-if [ ! -f "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+debug_msg "RHQ_JAVA_EXE_FILE_PATH: $RHQ_JAVA_EXE_FILE_PATH"
+
+if [ ! -f "$RHQ_JAVA_EXE_FILE_PATH" ]; then
echo "There is no JVM available."
- echo "Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately."
+ echo "Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately."
exit 1
fi
# standalone.sh will use JAVA as the full java command
-JAVA="$RHQ_SERVER_JAVA_EXE_FILE_PATH"
+JAVA="$RHQ_JAVA_EXE_FILE_PATH"
export JAVA
# ----------------------------------------------------------------------
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.sh b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.sh
index 8bbc9bb..2797db5 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.sh
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.sh
@@ -23,20 +23,16 @@
# neither is set, it is assumed the AS bundled
# under RHQ_SERVER_HOME/jbossas is to be used.
#
-# RHQ_SERVER_JAVA_HOME - The location of the JRE that the server will
-# use. This will be ignored if
-# RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-# If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-# not set, the Server's embedded JRE will be used.
+# RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+# will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+# If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+# JAVA_HOME will be used.
#
-# RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-# executable to use. If this is set,
-# RHQ_SERVER_JAVA_HOME is ignored.
-# If this is not set, then
-# $RHQ_SERVER_JAVA_HOME/bin/java
-# is used. If this and
-# RHQ_SERVER_JAVA_HOME are not set, the
-# Server's embedded JRE will be used.
+# RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+# use. If this is set, RHQ_JAVA_HOME is ignored.
+# If this is not set, then $RHQ_JAVA_HOME/bin/java
+# is used. If this and RHQ_JAVA_HOME are not set,
+# then $JAVA_HOME/bin/java will be used.
#
# RHQ_STORAGE_INSTALLER_JAVA_OPTS - Java VM command line options to be
# passed into the Java VM. If this is not defined
@@ -177,24 +173,20 @@ fi
# Find the Java executable and verify we have a VM available
# ----------------------------------------------------------------------
-if [ -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
- if [ -z "$RHQ_SERVER_JAVA_HOME" ]; then
- RHQ_SERVER_JAVA_HOME="${RHQ_SERVER_HOME}/jre"
- if [ -d "$RHQ_SERVER_JAVA_HOME" ]; then
- debug_msg "Using the embedded JRE"
- else
- debug_msg "No embedded JRE found - will try to use JAVA_HOME: $JAVA_HOME"
- RHQ_SERVER_JAVA_HOME="$JAVA_HOME"
- fi
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ -z "$RHQ_JAVA_HOME" ]; then
+ debug_msg "No RHQ JAVA property set, defaulting to JAVA_HOME: $JAVA_HOME"
+ RHQ_JAVA_HOME="$JAVA_HOME"
fi
- debug_msg "RHQ_SERVER_JAVA_HOME: $RHQ_SERVER_JAVA_HOME"
- RHQ_SERVER_JAVA_EXE_FILE_PATH="${RHQ_SERVER_JAVA_HOME}/bin/java"
+ debug_msg "RHQ_JAVA_HOME: $RHQ_JAVA_HOME"
+ RHQ_JAVA_EXE_FILE_PATH="${RHQ_JAVA_HOME}/bin/java"
fi
-debug_msg "RHQ_SERVER_JAVA_EXE_FILE_PATH: $RHQ_SERVER_JAVA_EXE_FILE_PATH"
-if [ ! -f "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+debug_msg "RHQ_JAVA_EXE_FILE_PATH: $RHQ_JAVA_EXE_FILE_PATH"
+
+if [ ! -f "$RHQ_JAVA_EXE_FILE_PATH" ]; then
echo "There is no JVM available."
- echo "Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately."
+ echo "Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately."
exit 1
fi
@@ -237,7 +229,7 @@ debug_msg "_JBOSS_MODULEPATH: $_JBOSS_MODULEPATH"
echo "Starting RHQ Storage Installer ..."
# start the AS instance with our main installer module
-"$RHQ_SERVER_JAVA_EXE_FILE_PATH" ${RHQ_STORAGE_INSTALLER_JAVA_OPTS} ${RHQ_STORAGE_INSTALLER_ADDITIONAL_JAVA_OPTS} -jar "${RHQ_SERVER_JBOSS_HOME}/jboss-modules.jar" -mp "$_JBOSS_MODULEPATH" org.rhq.rhq-cassandra-installer "$@"
+"$RHQ_JAVA_EXE_FILE_PATH" ${RHQ_STORAGE_INSTALLER_JAVA_OPTS} ${RHQ_STORAGE_INSTALLER_ADDITIONAL_JAVA_OPTS} -jar "${RHQ_SERVER_JBOSS_HOME}/jboss-modules.jar" -mp "$_JBOSS_MODULEPATH" org.rhq.rhq-cassandra-installer "$@"
_EXIT_STATUS=$?
exit $_EXIT_STATUS
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.sh b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.sh
index 5cc8780..8852604 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.sh
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.sh
@@ -23,20 +23,16 @@
# neither is set, it is assumed the AS bundled
# under RHQ_SERVER_HOME/jbossas is to be used.
#
-# RHQ_SERVER_JAVA_HOME - The location of the JRE that the server will
-# use. This will be ignored if
-# RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-# If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-# not set, the Server's embedded JRE will be used.
+# RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+# will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+# If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+# JAVA_HOME will be used.
#
-# RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-# executable to use. If this is set,
-# RHQ_SERVER_JAVA_HOME is ignored.
-# If this is not set, then
-# $RHQ_SERVER_JAVA_HOME/bin/java
-# is used. If this and
-# RHQ_SERVER_JAVA_HOME are not set, the
-# Server's embedded JRE will be used.
+# RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+# use. If this is set, RHQ_JAVA_HOME is ignored.
+# If this is not set, then $RHQ_JAVA_HOME/bin/java
+# is used. If this and RHQ_JAVA_HOME are not set,
+# then $JAVA_HOME/bin/java will be used.
#
# RHQ_DATA_MIGRATION_JAVA_OPTS - Java VM command line options to be
# passed into the Java VM. If this is not defined
@@ -175,26 +171,33 @@ fi
# ----------------------------------------------------------------------
# Find the Java executable and verify we have a VM available
+# Note that RHQ_SERVER_JAVA_* props are still handled for back compat
# ----------------------------------------------------------------------
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ ! -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+ RHQ_JAVA_EXE_FILE_PATH="$RHQ_SERVER_JAVA_EXE_FILE_PATH"
+ fi
+fi
+if [ -z "$RHQ_JAVA_HOME" ]; then
+ if [ ! -z "$RHQ_SERVER_JAVA_HOME" ]; then
+ RHQ_JAVA_HOME="$RHQ_SERVER_JAVA_HOME"
+ fi
+fi
-if [ -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
- if [ -z "$RHQ_SERVER_JAVA_HOME" ]; then
- RHQ_SERVER_JAVA_HOME="${RHQ_SERVER_HOME}/jre"
- if [ -d "$RHQ_SERVER_JAVA_HOME" ]; then
- debug_msg "Using the embedded JRE"
- else
- debug_msg "No embedded JRE found - will try to use JAVA_HOME: $JAVA_HOME"
- RHQ_SERVER_JAVA_HOME="$JAVA_HOME"
- fi
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ -z "$RHQ_JAVA_HOME" ]; then
+ debug_msg "No RHQ JAVA property set, defaulting to JAVA_HOME: $JAVA_HOME"
+ RHQ_JAVA_HOME="$JAVA_HOME"
fi
- debug_msg "RHQ_SERVER_JAVA_HOME: $RHQ_SERVER_JAVA_HOME"
- RHQ_SERVER_JAVA_EXE_FILE_PATH="${RHQ_SERVER_JAVA_HOME}/bin/java"
+ debug_msg "RHQ_JAVA_HOME: $RHQ_JAVA_HOME"
+ RHQ_JAVA_EXE_FILE_PATH="${RHQ_JAVA_HOME}/bin/java"
fi
-debug_msg "RHQ_SERVER_JAVA_EXE_FILE_PATH: $RHQ_SERVER_JAVA_EXE_FILE_PATH"
-if [ ! -f "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+debug_msg "RHQ_JAVA_EXE_FILE_PATH: $RHQ_JAVA_EXE_FILE_PATH"
+
+if [ ! -f "$RHQ_JAVA_EXE_FILE_PATH" ]; then
echo "There is no JVM available."
- echo "Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately."
+ echo "Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately."
exit 1
fi
@@ -237,7 +240,7 @@ debug_msg "_JBOSS_MODULEPATH: $_JBOSS_MODULEPATH"
echo "Starting RHQ Data Migration ..."
# start the AS instance with our main data migration module
-"$RHQ_SERVER_JAVA_EXE_FILE_PATH" ${RHQ_DATA_MIGRATION_JAVA_OPTS} ${RHQ_DATA_MIGRATION_ADDITIONAL_JAVA_OPTS} -jar "${RHQ_SERVER_JBOSS_HOME}/jboss-modules.jar" -mp "$_JBOSS_MODULEPATH" org.rhq.rhq-data-migration "$@"
+"$RHQ_JAVA_EXE_FILE_PATH" ${RHQ_DATA_MIGRATION_JAVA_OPTS} ${RHQ_DATA_MIGRATION_ADDITIONAL_JAVA_OPTS} -jar "${RHQ_SERVER_JBOSS_HOME}/jboss-modules.jar" -mp "$_JBOSS_MODULEPATH" org.rhq.rhq-data-migration "$@"
_EXIT_STATUS=$?
exit $_EXIT_STATUS
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl
index 73dda06..d977a36 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl
@@ -23,20 +23,16 @@
# neither is set, it is assumed the AS bundled
# under RHQ_SERVER_HOME/jbossas is to be used.
#
-# RHQ_SERVER_JAVA_HOME - The location of the JRE that the server will
-# use. This will be ignored if
-# RHQ_SERVER_JAVA_EXE_FILE_PATH is set.
-# If this and RHQ_SERVER_JAVA_EXE_FILE_PATH are
-# not set, the Server's embedded JRE will be used.
+# RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+# will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+# If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+# JAVA_HOME will be used.
#
-# RHQ_SERVER_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-# executable to use. If this is set,
-# RHQ_SERVER_JAVA_HOME is ignored.
-# If this is not set, then
-# $RHQ_SERVER_JAVA_HOME/bin/java
-# is used. If this and
-# RHQ_SERVER_JAVA_HOME are not set, the
-# Server's embedded JRE will be used.
+# RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+# use. If this is set, RHQ_JAVA_HOME is ignored.
+# If this is not set, then $RHQ_JAVA_HOME/bin/java
+# is used. If this and RHQ_JAVA_HOME are not set,
+# then $JAVA_HOME/bin/java will be used.
#
# RHQ_CONTROL_JAVA_OPTS - Java VM command line options to be
# passed into the Java VM. If this is not defined
@@ -175,26 +171,33 @@ fi
# ----------------------------------------------------------------------
# Find the Java executable and verify we have a VM available
+# Note that RHQ_SERVER_JAVA_* props are still handled for back compat
# ----------------------------------------------------------------------
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ ! -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+ RHQ_JAVA_EXE_FILE_PATH="$RHQ_SERVER_JAVA_EXE_FILE_PATH"
+ fi
+fi
+if [ -z "$RHQ_JAVA_HOME" ]; then
+ if [ ! -z "$RHQ_SERVER_JAVA_HOME" ]; then
+ RHQ_JAVA_HOME="$RHQ_SERVER_JAVA_HOME"
+ fi
+fi
-if [ -z "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
- if [ -z "$RHQ_SERVER_JAVA_HOME" ]; then
- RHQ_SERVER_JAVA_HOME="${RHQ_SERVER_HOME}/jre"
- if [ -d "$RHQ_SERVER_JAVA_HOME" ]; then
- debug_msg "Using the embedded JRE"
- else
- debug_msg "No embedded JRE found - will try to use JAVA_HOME: $JAVA_HOME"
- RHQ_SERVER_JAVA_HOME="$JAVA_HOME"
- fi
+if [ -z "$RHQ_JAVA_EXE_FILE_PATH" ]; then
+ if [ -z "$RHQ_JAVA_HOME" ]; then
+ debug_msg "No RHQ JAVA property set, defaulting to JAVA_HOME: $JAVA_HOME"
+ RHQ_JAVA_HOME="$JAVA_HOME"
fi
- debug_msg "RHQ_SERVER_JAVA_HOME: $RHQ_SERVER_JAVA_HOME"
- RHQ_SERVER_JAVA_EXE_FILE_PATH="${RHQ_SERVER_JAVA_HOME}/bin/java"
+ debug_msg "RHQ_JAVA_HOME: $RHQ_JAVA_HOME"
+ RHQ_JAVA_EXE_FILE_PATH="${RHQ_JAVA_HOME}/bin/java"
fi
-debug_msg "RHQ_SERVER_JAVA_EXE_FILE_PATH: $RHQ_SERVER_JAVA_EXE_FILE_PATH"
-if [ ! -f "$RHQ_SERVER_JAVA_EXE_FILE_PATH" ]; then
+debug_msg "RHQ_JAVA_EXE_FILE_PATH: $RHQ_JAVA_EXE_FILE_PATH"
+
+if [ ! -f "$RHQ_JAVA_EXE_FILE_PATH" ]; then
echo "There is no JVM available."
- echo "Please set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH appropriately."
+ echo "Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately."
exit 1
fi
@@ -214,7 +217,7 @@ else
fi
# debugging the logging level now for development/testing
-RHQ_CONTROL_JAVA_OPTS="${RHQ_CONTROL_JAVA_OPTS} -Djava.awt.headless=true -Drhq.server.properties-file=${RHQ_SERVER_HOME}/bin/rhq-server.properties -Drhq.control.logdir=${RHQ_SERVER_HOME}/logs -Drhq.control.loglevel=${_RHQ_LOGLEVEL} -Drhq.server.basedir=${RHQ_SERVER_HOME} -Drhqctl.properties-file=$RHQ_SERVER_HOME/bin/rhqctl.properties"
+RHQ_CONTROL_JAVA_OPTS="${RHQ_CONTROL_JAVA_OPTS} -Djava.awt.headless=true -Drhq.server.properties-file=${RHQ_SERVER_HOME}/bin/rhq-server.properties -Drhq.control.logdir=${RHQ_SERVER_HOME}/logs -Drhq.control.loglevel=${_RHQ_LOGLEVEL} -Drhq.server.basedir=${RHQ_SERVER_HOME} -Drhqctl.properties-file=$RHQ_SERVER_HOME/bin/rhqctl.properties -Drhq.java-exe-file-path=${RHQ_JAVA_EXE_FILE_PATH}"
# Sample JPDA settings for remote socket debugging
#RHQ_CONTROL_JAVA_OPTS="${RHQ_CONTROL_JAVA_OPTS} -Xrunjdwp:transport=dt_socket,address=8786,server=y,suspend=y"
@@ -235,7 +238,7 @@ _JBOSS_MODULEPATH="${_RHQ_MODULES_PATH}:${_INTERNAL_MODULES_PATH}"
debug_msg "_JBOSS_MODULEPATH: $_JBOSS_MODULEPATH"
# start the AS instance with our main installer module
-"$RHQ_SERVER_JAVA_EXE_FILE_PATH" ${RHQ_CONTROL_JAVA_OPTS} ${RHQ_CONTROL_ADDITIONAL_JAVA_OPTS} -jar "${RHQ_SERVER_JBOSS_HOME}/jboss-modules.jar" -mp "$_JBOSS_MODULEPATH" org.rhq.rhq-server-control "$@"
+"$RHQ_JAVA_EXE_FILE_PATH" ${RHQ_CONTROL_JAVA_OPTS} ${RHQ_CONTROL_ADDITIONAL_JAVA_OPTS} -jar "${RHQ_SERVER_JBOSS_HOME}/jboss-modules.jar" -mp "$_JBOSS_MODULEPATH" org.rhq.rhq-server-control "$@"
_EXIT_STATUS=$?
exit $_EXIT_STATUS
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
index 1e7608d..6e9e0aa 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
@@ -600,7 +600,10 @@ public abstract class AbstractInstall extends ControlCommand {
}
});
- org.apache.commons.exec.CommandLine commandLine = new org.apache.commons.exec.CommandLine("java")
+ // Make sure we use the appropriate java version, don't just fall back to PATH
+ String javaExeFilePath = System.getProperty("rhq.java-exe-file-path");
+
+ org.apache.commons.exec.CommandLine commandLine = new org.apache.commons.exec.CommandLine(javaExeFilePath)
.addArgument("-jar").addArgument(agentInstallerJar.getAbsolutePath())
.addArgument("--install=" + agentBasedir.getParentFile().getAbsolutePath())
.addArgument("--log=" + new File(getLogDir(), "rhq-agent-update.log"));
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Start.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Start.java
index 5d75be4..117f560 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Start.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Start.java
@@ -26,6 +26,8 @@
package org.rhq.server.control.command;
import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Options;
@@ -124,11 +126,20 @@ public class Start extends ControlCommand {
executor.setStreamHandler(new PumpStreamHandler());
org.apache.commons.exec.CommandLine commandLine;
+ // Cassandra looks for JAVA_HOME or then defaults to PATH. We want it to use the Java
+ // defined for RHQ, so make sure JAVA_HOME is set, and set to the RHQ Java for the executor
+ // environment.
+ String javaExeFilePath = System.getProperty("rhq.java-exe-file-path");
+ String javaHome = javaExeFilePath.replace('\\', '/').replace("/bin/java", "");
+
+ Map<String, String> env = new HashMap<String, String>(System.getenv());
+ env.put("JAVA_HOME", javaHome);
+
if (isWindows()) {
executor.setWorkingDirectory(getBinDir());
commandLine = getCommandLine("rhq-storage", "start");
try {
- executor.execute(commandLine);
+ executor.execute(commandLine, env);
} catch (Exception e) {
// Ignore, service may not exist or may already be running, script returns 1
@@ -147,7 +158,7 @@ public class Start extends ControlCommand {
commandLine = getCommandLine(false, "cassandra", "-p", pidFile.getAbsolutePath());
executor.setWorkingDirectory(storageBinDir);
- executor.execute(commandLine);
+ executor.execute(commandLine, env);
}
}
}
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
index f5b1aca..1fd19c6 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Upgrade.java
@@ -621,7 +621,10 @@ public class Upgrade extends AbstractInstall {
final File agentBasedir = getAgentBasedir();
File agentInstallerJar = getFileDownload("rhq-agent", "rhq-enterprise-agent");
- org.apache.commons.exec.CommandLine commandLine = new org.apache.commons.exec.CommandLine("java") //
+ // Make sure we use the appropriate java version, don't just fall back to PATH
+ String javaExeFilePath = System.getProperty("rhq.java-exe-file-path");
+
+ org.apache.commons.exec.CommandLine commandLine = new org.apache.commons.exec.CommandLine(javaExeFilePath) //
.addArgument("-jar").addArgument(agentInstallerJar.getAbsolutePath()) //
.addArgument("--update=" + oldAgentDir.getAbsolutePath()) //
.addArgument("--log=" + new File(getLogDir(), "rhq-agent-update.log")) //
commit 4390d0d7f866a8a86f00ecd26e7f8db5bdde2ca9
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Oct 9 13:10:04 2013 -0400
Fix merge issue
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
index 1a14ffd..1e7608d 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
@@ -594,8 +594,8 @@ public abstract class AbstractInstall extends ControlCommand {
putProperty(RHQ_AGENT_BASEDIR_PROP, agentBasedir.getAbsolutePath());
// if the install fails, we will completely delete any agent that might have been "half" installed
- addUndoTask(new Runnable() {
- public void run() {
+ addUndoTask(new ControlCommand.UndoTask("Removing agent install directory") {
+ public void performUndoWork() {
FileUtil.purge(agentBasedir, true);
}
});
commit 06939280a425a90d894afa2dc1184497010564dd
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Oct 9 10:32:14 2013 -0400
Fix: Upgrade of server without an agent failed
Upgrading to rhq410/jon32 would fail, and revert, if there were no agent
to upgrade. For a server only installation the user would not
specify --from-agent-dir and also there was no rhq-agent dir at the sibling
position to the server install dir. This would cause the failure with
the upgrade complaining there was no agent to upgrade.
Now a new agent will be installed in this situation, as part of the upgrade.
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
index 1e7608d..1a14ffd 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/AbstractInstall.java
@@ -594,8 +594,8 @@ public abstract class AbstractInstall extends ControlCommand {
putProperty(RHQ_AGENT_BASEDIR_PROP, agentBasedir.getAbsolutePath());
// if the install fails, we will completely delete any agent that might have been "half" installed
- addUndoTask(new ControlCommand.UndoTask("Removing agent install directory") {
- public void performUndoWork() {
+ addUndoTask(new Runnable() {
+ public void run() {
FileUtil.purge(agentBasedir, true);
}
});
commit b482c6c2ef860b77de80e9c7b132be4e79aae59d
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Oct 9 14:08:30 2013 +0200
[BZ 1016049] - Avoid requiring MANAGE_SETTINGS for live avail checks.
trying to use AgentManagerLocal.getAgentClient(Agent) does not work in
ResourceManagerBean.getLiveAvailability() because getLiveAvailability()
never runs in a transaction.
Use the original approach taken by BZ 988881, only making sure we pass in
an overlord when requesting the agent client to avoid the failing perm
check if the user requesting the live availability doesn't have
MANAGE_SETTINGS permission.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 0a24e2a..a58bd3c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -2451,7 +2451,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
try {
// first, quickly see if we can even ping the agent, if not, don't bother trying to get the resource avail
- AgentClient client = agentManager.getAgentClient(res.getAgent());
+ AgentClient client = agentManager.getAgentClient(subjectManager.getOverlord(), resourceId);
if (client == null) {
throw new IllegalStateException("No agent is associated with the resource with id [" + resourceId + "]");
}
commit 9fa4dcb5e81db42cf735ca8f06b894332f7f148e
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Mon Oct 7 16:02:34 2013 -0700
Fix bug where hover 'toggle' state can become out of whack, replacing toggle with explicit hide/show. Related to BZ 1015205.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/common/graph/graphtype/StackedBarMetricGraphImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/common/graph/graphtype/StackedBarMetricGraphImpl.java
index 73ce658..f7dd415 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/common/graph/graphtype/StackedBarMetricGraphImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/common/graph/graphtype/StackedBarMetricGraphImpl.java
@@ -29,9 +29,7 @@ import org.rhq.coregui.client.inventory.common.graph.AbstractMetricGraph;
*/
public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
- /**
- * GWT constructor for GWT.create() deferred instantiation.
- */
+
public StackedBarMetricGraphImpl() {
super();
}
@@ -186,11 +184,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
yScale = $wnd.d3.scale.linear()
.clamp(true)
.rangeRound([height, 0])
- .domain([$wnd.d3.min(chartContext.data, function (d) {
- return d.low;
- }), $wnd.d3.max(chartContext.data, function (d) {
- return d.high;
- })]);
+ .domain([$wnd.d3.min(chartContext.data, function(d) {return d.low;}),$wnd.d3.max(chartContext.data, function(d) {return d.high;})]);
yAxis = $wnd.d3.svg.axis()
.scale(yScale)
@@ -222,7 +216,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.attr("transform", "translate(" + margin.left + "," + (+titleHeight + titleSpace + margin.top) + ")");
legendUnDefined = (typeof min === 'undefined') || (typeof avg === 'undefined') || (typeof peak === 'undefined');
- if (!(chartContext.hideLegend && !useSmallCharts())) {
+ if (!(chartContext.hideLegend && !useSmallCharts())) {
createMinAvgPeakSidePanel(chartContext.minChartTitle, min, chartContext.avgChartTitle, avg, chartContext.peakChartTitle, peak, chartContext.yAxisUnits);
}
}
@@ -256,7 +250,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.attr("y", yBase)
.text(highLabel + " - ");
- if (typeof highValue !== 'undefined') {
+ if(typeof highValue !== 'undefined'){
chart.append("text")
.attr("class", "highText")
.attr("x", xValue)
@@ -272,7 +266,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.attr("y", yBase + yInc)
.text(avgLabel + " - ");
- if (typeof avgValue !== 'undefined') {
+ if(typeof avgValue !== 'undefined'){
chart.append("text")
.attr("class", "avgText")
.attr("x", xValue)
@@ -287,7 +281,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.attr("y", yBase + 2 * yInc)
.text(minLabel + " - ");
- if (typeof minValue !== 'undefined') {
+ if(typeof minValue !== 'undefined'){
chart.append("text")
.attr("class", "minText")
.attr("x", xValue)
@@ -320,15 +314,15 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
}
- function showFullMetricBarHover(d) {
+ function showFullMetricBarHover(d){
var timeFormatter = $wnd.d3.time.format(chartContext.chartHoverTimeFormat),
dateFormatter = $wnd.d3.time.format(chartContext.chartHoverDateFormat),
startDate = new Date(+d.x),
- metricGraphTooltipDiv = $wnd.d3.select("#metricGraphTooltip");
+ metricGraphTooltipDiv = $wnd.d3.select("#metricGraphTooltip");
- metricGraphTooltipDiv.style("left", +($wnd.d3.event.pageX) + 15 + "px")
- .style("top", ($wnd.d3.event.pageY) + "px");
+ metricGraphTooltipDiv.style("left", + ($wnd.d3.event.pageX) +15 + "px")
+ .style("top", ($wnd.d3.event.pageY)+"px");
metricGraphTooltipDiv.select("#metricGraphTooltipTimeLabel")
.text(chartContext.timeLabel);
@@ -363,22 +357,18 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
//Show the tooltip
- $wnd.d3.select("#metricGraphTooltip").classed("hidden", false);
-
- setTimeout(function () {
- $wnd.jQuery('#metricGraphTooltip').hide();
- }, 5000);
+ $wnd.jQuery('#metricGraphTooltip').show();
+ setTimeout(function(){$wnd.jQuery('#metricGraphTooltip').hide();},5000);
}
-
- function showNoDataBarHover(d) {
+ function showNoDataBarHover(d){
var timeFormatter = $wnd.d3.time.format(chartContext.chartHoverTimeFormat),
dateFormatter = $wnd.d3.time.format(chartContext.chartHoverDateFormat),
startDate = new Date(+d.x),
- noDataTooltipDiv = $wnd.d3.select("#noDataTooltip");
+ noDataTooltipDiv = $wnd.d3.select("#noDataTooltip");
- noDataTooltipDiv.style("left", +($wnd.d3.event.pageX) + 15 + "px")
- .style("top", ($wnd.d3.event.pageY) + "px");
+ noDataTooltipDiv.style("left", + ($wnd.d3.event.pageX) + 15 + "px")
+ .style("top", ($wnd.d3.event.pageY)+"px");
noDataTooltipDiv.select("#noDataTooltipTimeLabel")
.text(chartContext.timeLabel);
@@ -394,10 +384,8 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.text(chartContext.noDataLabel);
//Show the tooltip
- $wnd.d3.select("#noDataTooltip").classed("hidden", false);
- setTimeout(function () {
- $wnd.jQuery('#noDataTooltip').hide();
- }, 5000);
+ $wnd.jQuery('#noDataTooltip').show();
+ setTimeout(function(){$wnd.jQuery('#noDataTooltip').hide();},5000);
}
@@ -434,7 +422,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
})
.attr("opacity", ".9")
- .attr("fill",function (d) {
+ .attr("fill", function (d) {
if (d.down || d.unknown || d.nodata) {
return "url(#noDataStripes)";
}
@@ -446,23 +434,20 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
showNoDataBarHover(d);
}
else {
- if (+d.high === +d.low) {
+ if(+d.high === +d.low){
showSingleValueMetricBarHover(d);
- }
- else {
+ } else {
showFullMetricBarHover(d);
}
}
}).on("mouseout", function (d) {
if (d.down || d.unknown || d.nodata) {
- $wnd.d3.select("#noDataTooltip").classed("hidden", true);
- }
- else {
- if (+d.high === +d.low) {
- $wnd.d3.select("#singleValueTooltip").classed("hidden", true);
- }
- else {
- $wnd.d3.select("#metricGraphTooltip").classed("hidden", true);
+ $wnd.jQuery('#noDataTooltip').hide();
+ }else {
+ if(+d.high === +d.low){
+ $wnd.jQuery('#singleValueTooltip').hide();
+ } else {
+ $wnd.jQuery('#metricGraphTooltip').hide();
}
}
});
@@ -498,14 +483,14 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
showFullMetricBarHover(d);
}).on("mouseout", function (d) {
if (d.down || d.unknown || d.nodata) {
- $wnd.d3.select("#noDataTooltip").classed("hidden", true);
- }
- else {
- $wnd.d3.select("#metricGraphTooltip").classed("hidden", true);
+ $wnd.jQuery('#noDataTooltip').hide();
+ }else {
+ $wnd.jQuery('#metricGraphTooltip').hide();
}
});
+
// lower portion representing avg to low
svg.selectAll("rect.low")
.data(chartData)
@@ -533,21 +518,20 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
showFullMetricBarHover(d);
}).on("mouseout", function (d) {
if (d.down || d.unknown || d.nodata) {
- $wnd.d3.select("#noDataTooltip").classed("hidden", true);
- }
- else {
- $wnd.d3.select("#metricGraphTooltip").classed("hidden", true);
+ $wnd.jQuery('#noDataTooltip').hide();
+ }else {
+ $wnd.jQuery('#metricGraphTooltip').hide();
}
});
- function showSingleValueMetricBarHover(d) {
+ function showSingleValueMetricBarHover(d){
var timeFormatter = $wnd.d3.time.format(chartContext.chartHoverTimeFormat),
dateFormatter = $wnd.d3.time.format(chartContext.chartHoverDateFormat),
startDate = new Date(+d.x),
- singleValueGraphTooltipDiv = $wnd.d3.select("#singleValueTooltip");
+ singleValueGraphTooltipDiv = $wnd.d3.select("#singleValueTooltip");
- singleValueGraphTooltipDiv.style("left", +($wnd.d3.event.pageX) + 15 + "px")
- .style("top", ($wnd.d3.event.pageY) + "px");
+ singleValueGraphTooltipDiv.style("left", + ($wnd.d3.event.pageX) + 15 + "px")
+ .style("top", ($wnd.d3.event.pageY)+"px");
singleValueGraphTooltipDiv.select("#singleValueTooltipTimeLabel")
.text(chartContext.timeLabel);
@@ -566,10 +550,8 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
//Show the tooltip
- $wnd.d3.select("#singleValueTooltip").classed("hidden", false);
- setTimeout(function () {
- $wnd.jQuery('#singleValueTooltip').hide();
- }, 5000);
+ $wnd.jQuery('#singleValueTooltip').show();
+ setTimeout(function(){$wnd.jQuery('#singleValueTooltip').hide();},5000);
}
@@ -602,7 +584,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
return calcBarWidth();
})
.attr("opacity", 0.9)
- .attr("fill",function (d) {
+ .attr("fill", function (d) {
if (d.low === d.high) {
return "#50505a";
}
@@ -612,7 +594,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
}).on("mouseover",function (d) {
showSingleValueMetricBarHover(d);
}).on("mouseout", function () {
- $wnd.d3.select("#singleValueTooltip").classed("hidden", true);
+ $wnd.jQuery('#singleValueTooltip').hide();
});
}
@@ -726,7 +708,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
}
- function createBrush() {
+ function createBrush(){
var brush = $wnd.d3.svg.brush()
.x(timeScale)
@@ -754,19 +736,19 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
function brushend() {
var s = brush.extent();
var startTime = Math.round(s[0].getTime());
- var endTime = Math.round(s[1].getTime());
+ var endTime = Math.round(s[1].getTime() );
svg.classed("selecting", !$wnd.d3.event.target.empty());
// ignore selections less than 1 minute
- if (endTime - startTime >= 60000) {
+ if(endTime - startTime >= 60000){
global.@org.rhq.coregui.client.inventory.common.graph.AbstractMetricGraph::saveDateRange(DD)(startTime, endTime);
global.@org.rhq.coregui.client.inventory.common.graph.AbstractMetricGraph::redrawGraphs()();
}
}
- function updateDateRangeDisplay(startDate, endDate) {
+ function updateDateRangeDisplay(startDate, endDate ) {
var formattedDateRange = startDate.format(chartContext.buttonBarDateTimeFormat) + ' - ' + endDate.format(chartContext.buttonBarDateTimeFormat);
- var timeRange = endDate.from(startDate, true);
- $wnd.jQuery('.graphDateTimeRangeLabel').text(formattedDateRange + '(' + timeRange + ')');
+ var timeRange = endDate.from(startDate,true);
+ $wnd.jQuery('.graphDateTimeRangeLabel').text(formattedDateRange+'('+timeRange+')');
}
@@ -784,7 +766,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
createHeader(chartContext.chartTitle);
createYAxisGridLines();
- if (!chartContext.isPortalGraph) {
+ if(!chartContext.isPortalGraph){
createBrush();
}
createStackedBars();
@@ -799,10 +781,10 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
}; // end public closure
}();
- if (typeof chartContext.data !== 'undefined' && chartContext.data !== null && chartContext.data.length > 0) {
+ if(typeof chartContext.data !== 'undefined' && chartContext.data !== null && chartContext.data.length > 0){
metricStackedBarGraph.draw(chartContext);
}
- }-*/;
+ }-*/;
-}
+}
\ No newline at end of file
commit 7e4ca3919dd503357deab4a6b253f7d668153378
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Mon Oct 7 15:45:23 2013 -0700
Reformat GWT JSNI javascript method with IntelliJ. Eclipse formatter produces unreadable results.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/common/graph/graphtype/StackedBarMetricGraphImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/common/graph/graphtype/StackedBarMetricGraphImpl.java
index f7dd415..73ce658 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/common/graph/graphtype/StackedBarMetricGraphImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/common/graph/graphtype/StackedBarMetricGraphImpl.java
@@ -29,7 +29,9 @@ import org.rhq.coregui.client.inventory.common.graph.AbstractMetricGraph;
*/
public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
-
+ /**
+ * GWT constructor for GWT.create() deferred instantiation.
+ */
public StackedBarMetricGraphImpl() {
super();
}
@@ -184,7 +186,11 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
yScale = $wnd.d3.scale.linear()
.clamp(true)
.rangeRound([height, 0])
- .domain([$wnd.d3.min(chartContext.data, function(d) {return d.low;}),$wnd.d3.max(chartContext.data, function(d) {return d.high;})]);
+ .domain([$wnd.d3.min(chartContext.data, function (d) {
+ return d.low;
+ }), $wnd.d3.max(chartContext.data, function (d) {
+ return d.high;
+ })]);
yAxis = $wnd.d3.svg.axis()
.scale(yScale)
@@ -216,7 +222,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.attr("transform", "translate(" + margin.left + "," + (+titleHeight + titleSpace + margin.top) + ")");
legendUnDefined = (typeof min === 'undefined') || (typeof avg === 'undefined') || (typeof peak === 'undefined');
- if (!(chartContext.hideLegend && !useSmallCharts())) {
+ if (!(chartContext.hideLegend && !useSmallCharts())) {
createMinAvgPeakSidePanel(chartContext.minChartTitle, min, chartContext.avgChartTitle, avg, chartContext.peakChartTitle, peak, chartContext.yAxisUnits);
}
}
@@ -250,7 +256,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.attr("y", yBase)
.text(highLabel + " - ");
- if(typeof highValue !== 'undefined'){
+ if (typeof highValue !== 'undefined') {
chart.append("text")
.attr("class", "highText")
.attr("x", xValue)
@@ -266,7 +272,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.attr("y", yBase + yInc)
.text(avgLabel + " - ");
- if(typeof avgValue !== 'undefined'){
+ if (typeof avgValue !== 'undefined') {
chart.append("text")
.attr("class", "avgText")
.attr("x", xValue)
@@ -281,7 +287,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.attr("y", yBase + 2 * yInc)
.text(minLabel + " - ");
- if(typeof minValue !== 'undefined'){
+ if (typeof minValue !== 'undefined') {
chart.append("text")
.attr("class", "minText")
.attr("x", xValue)
@@ -314,15 +320,15 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
}
- function showFullMetricBarHover(d){
+ function showFullMetricBarHover(d) {
var timeFormatter = $wnd.d3.time.format(chartContext.chartHoverTimeFormat),
dateFormatter = $wnd.d3.time.format(chartContext.chartHoverDateFormat),
startDate = new Date(+d.x),
- metricGraphTooltipDiv = $wnd.d3.select("#metricGraphTooltip");
+ metricGraphTooltipDiv = $wnd.d3.select("#metricGraphTooltip");
- metricGraphTooltipDiv.style("left", + ($wnd.d3.event.pageX) +15 + "px")
- .style("top", ($wnd.d3.event.pageY)+"px");
+ metricGraphTooltipDiv.style("left", +($wnd.d3.event.pageX) + 15 + "px")
+ .style("top", ($wnd.d3.event.pageY) + "px");
metricGraphTooltipDiv.select("#metricGraphTooltipTimeLabel")
.text(chartContext.timeLabel);
@@ -357,18 +363,22 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
//Show the tooltip
- $wnd.jQuery('#metricGraphTooltip').show();
- setTimeout(function(){$wnd.jQuery('#metricGraphTooltip').hide();},5000);
+ $wnd.d3.select("#metricGraphTooltip").classed("hidden", false);
+
+ setTimeout(function () {
+ $wnd.jQuery('#metricGraphTooltip').hide();
+ }, 5000);
}
- function showNoDataBarHover(d){
+
+ function showNoDataBarHover(d) {
var timeFormatter = $wnd.d3.time.format(chartContext.chartHoverTimeFormat),
dateFormatter = $wnd.d3.time.format(chartContext.chartHoverDateFormat),
startDate = new Date(+d.x),
- noDataTooltipDiv = $wnd.d3.select("#noDataTooltip");
+ noDataTooltipDiv = $wnd.d3.select("#noDataTooltip");
- noDataTooltipDiv.style("left", + ($wnd.d3.event.pageX) + 15 + "px")
- .style("top", ($wnd.d3.event.pageY)+"px");
+ noDataTooltipDiv.style("left", +($wnd.d3.event.pageX) + 15 + "px")
+ .style("top", ($wnd.d3.event.pageY) + "px");
noDataTooltipDiv.select("#noDataTooltipTimeLabel")
.text(chartContext.timeLabel);
@@ -384,8 +394,10 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
.text(chartContext.noDataLabel);
//Show the tooltip
- $wnd.jQuery('#noDataTooltip').show();
- setTimeout(function(){$wnd.jQuery('#noDataTooltip').hide();},5000);
+ $wnd.d3.select("#noDataTooltip").classed("hidden", false);
+ setTimeout(function () {
+ $wnd.jQuery('#noDataTooltip').hide();
+ }, 5000);
}
@@ -422,7 +434,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
})
.attr("opacity", ".9")
- .attr("fill", function (d) {
+ .attr("fill",function (d) {
if (d.down || d.unknown || d.nodata) {
return "url(#noDataStripes)";
}
@@ -434,20 +446,23 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
showNoDataBarHover(d);
}
else {
- if(+d.high === +d.low){
+ if (+d.high === +d.low) {
showSingleValueMetricBarHover(d);
- } else {
+ }
+ else {
showFullMetricBarHover(d);
}
}
}).on("mouseout", function (d) {
if (d.down || d.unknown || d.nodata) {
- $wnd.jQuery('#noDataTooltip').hide();
- }else {
- if(+d.high === +d.low){
- $wnd.jQuery('#singleValueTooltip').hide();
- } else {
- $wnd.jQuery('#metricGraphTooltip').hide();
+ $wnd.d3.select("#noDataTooltip").classed("hidden", true);
+ }
+ else {
+ if (+d.high === +d.low) {
+ $wnd.d3.select("#singleValueTooltip").classed("hidden", true);
+ }
+ else {
+ $wnd.d3.select("#metricGraphTooltip").classed("hidden", true);
}
}
});
@@ -483,14 +498,14 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
showFullMetricBarHover(d);
}).on("mouseout", function (d) {
if (d.down || d.unknown || d.nodata) {
- $wnd.jQuery('#noDataTooltip').hide();
- }else {
- $wnd.jQuery('#metricGraphTooltip').hide();
+ $wnd.d3.select("#noDataTooltip").classed("hidden", true);
+ }
+ else {
+ $wnd.d3.select("#metricGraphTooltip").classed("hidden", true);
}
});
-
// lower portion representing avg to low
svg.selectAll("rect.low")
.data(chartData)
@@ -518,20 +533,21 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
showFullMetricBarHover(d);
}).on("mouseout", function (d) {
if (d.down || d.unknown || d.nodata) {
- $wnd.jQuery('#noDataTooltip').hide();
- }else {
- $wnd.jQuery('#metricGraphTooltip').hide();
+ $wnd.d3.select("#noDataTooltip").classed("hidden", true);
+ }
+ else {
+ $wnd.d3.select("#metricGraphTooltip").classed("hidden", true);
}
});
- function showSingleValueMetricBarHover(d){
+ function showSingleValueMetricBarHover(d) {
var timeFormatter = $wnd.d3.time.format(chartContext.chartHoverTimeFormat),
dateFormatter = $wnd.d3.time.format(chartContext.chartHoverDateFormat),
startDate = new Date(+d.x),
- singleValueGraphTooltipDiv = $wnd.d3.select("#singleValueTooltip");
+ singleValueGraphTooltipDiv = $wnd.d3.select("#singleValueTooltip");
- singleValueGraphTooltipDiv.style("left", + ($wnd.d3.event.pageX) + 15 + "px")
- .style("top", ($wnd.d3.event.pageY)+"px");
+ singleValueGraphTooltipDiv.style("left", +($wnd.d3.event.pageX) + 15 + "px")
+ .style("top", ($wnd.d3.event.pageY) + "px");
singleValueGraphTooltipDiv.select("#singleValueTooltipTimeLabel")
.text(chartContext.timeLabel);
@@ -550,8 +566,10 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
//Show the tooltip
- $wnd.jQuery('#singleValueTooltip').show();
- setTimeout(function(){$wnd.jQuery('#singleValueTooltip').hide();},5000);
+ $wnd.d3.select("#singleValueTooltip").classed("hidden", false);
+ setTimeout(function () {
+ $wnd.jQuery('#singleValueTooltip').hide();
+ }, 5000);
}
@@ -584,7 +602,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
return calcBarWidth();
})
.attr("opacity", 0.9)
- .attr("fill", function (d) {
+ .attr("fill",function (d) {
if (d.low === d.high) {
return "#50505a";
}
@@ -594,7 +612,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
}).on("mouseover",function (d) {
showSingleValueMetricBarHover(d);
}).on("mouseout", function () {
- $wnd.jQuery('#singleValueTooltip').hide();
+ $wnd.d3.select("#singleValueTooltip").classed("hidden", true);
});
}
@@ -708,7 +726,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
}
- function createBrush(){
+ function createBrush() {
var brush = $wnd.d3.svg.brush()
.x(timeScale)
@@ -736,19 +754,19 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
function brushend() {
var s = brush.extent();
var startTime = Math.round(s[0].getTime());
- var endTime = Math.round(s[1].getTime() );
+ var endTime = Math.round(s[1].getTime());
svg.classed("selecting", !$wnd.d3.event.target.empty());
// ignore selections less than 1 minute
- if(endTime - startTime >= 60000){
+ if (endTime - startTime >= 60000) {
global.@org.rhq.coregui.client.inventory.common.graph.AbstractMetricGraph::saveDateRange(DD)(startTime, endTime);
global.@org.rhq.coregui.client.inventory.common.graph.AbstractMetricGraph::redrawGraphs()();
}
}
- function updateDateRangeDisplay(startDate, endDate ) {
+ function updateDateRangeDisplay(startDate, endDate) {
var formattedDateRange = startDate.format(chartContext.buttonBarDateTimeFormat) + ' - ' + endDate.format(chartContext.buttonBarDateTimeFormat);
- var timeRange = endDate.from(startDate,true);
- $wnd.jQuery('.graphDateTimeRangeLabel').text(formattedDateRange+'('+timeRange+')');
+ var timeRange = endDate.from(startDate, true);
+ $wnd.jQuery('.graphDateTimeRangeLabel').text(formattedDateRange + '(' + timeRange + ')');
}
@@ -766,7 +784,7 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
createHeader(chartContext.chartTitle);
createYAxisGridLines();
- if(!chartContext.isPortalGraph){
+ if (!chartContext.isPortalGraph) {
createBrush();
}
createStackedBars();
@@ -781,10 +799,10 @@ public class StackedBarMetricGraphImpl extends AbstractMetricGraph {
}; // end public closure
}();
- if(typeof chartContext.data !== 'undefined' && chartContext.data !== null && chartContext.data.length > 0){
+ if (typeof chartContext.data !== 'undefined' && chartContext.data !== null && chartContext.data.length > 0) {
metricStackedBarGraph.draw(chartContext);
}
- }-*/;
+ }-*/;
-}
\ No newline at end of file
+}
commit 73889fa5b50ed146d5a71813175ef4a7bde3b4d0
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Oct 7 09:25:20 2013 -0400
Add back the war thinning now that animal sniffer ignores the client
classes.
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 042b381..57a242a 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -322,6 +322,37 @@
</executions>
</plugin>
+ <!-- remove unnecessary client .class files to reduce the size of the webapp and avoid long path names on windows -->
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>remove-gwt-client-classes</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ <configuration>
+ <verbose>true</verbose>
+ <excludeDefaultDirectories>true</excludeDefaultDirectories>
+ <filesets>
+ <fileset> <!-- remove the class files of client-only code -->
+ <directory>${project.build.directory}/classes/org/rhq/coregui/client</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <!-- keep the RPC-Service interface, and the entry- point class -->
+ <excludes>
+ <exclude>CoreGUI*.class</exclude>
+ <exclude>gwt/**</exclude>
+ </excludes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
<!-- Override root pom, we don't want to check the client classes because they have been removed after
generating the javascript -->
<plugin>
commit 6dcbd05d4c83f1e346438263c1a040dee42309a6
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Oct 7 09:19:34 2013 -0400
Stop animal sniffer from processing the client-side gwt classes, they
are now thinned from the war (for path shortening and distro size reasons)
and can't be resolved during the check.
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index cf7e057..042b381 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -321,6 +321,33 @@
</execution>
</executions>
</plugin>
+
+ <!-- Override root pom, we don't want to check the client classes because they have been removed after
+ generating the javascript -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>animal-sniffer-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>java-api-check</id>
+ <configuration>
+ <signature>
+ <groupId>${animal.sniffer.java.signature.groupId}</groupId>
+ <artifactId>${animal.sniffer.java.signature.artifactId}</artifactId>
+ <version>${animal.sniffer.java.signature.version}</version>
+ </signature>
+ <ignores>
+ <ignore>org.rhq.coregui.client.*</ignore>
+ </ignores>
+ </configuration>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
</plugins>
</build>
commit 047678e9389a3fdee0114e80c7f4c00149c1d4ef
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Oct 7 14:49:14 2013 +0200
[BZ 1016049] - Avoid requiring MANAGE_SETTINGS for live avail checks.
We were using a method that requires MANAGE_SETTINGS permission, which
is not what we want here. If a user has perms to view a resource (which
is checked for), they should be able to access its availability.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index a58bd3c..0a24e2a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -2451,7 +2451,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
try {
// first, quickly see if we can even ping the agent, if not, don't bother trying to get the resource avail
- AgentClient client = agentManager.getAgentClient(subjectManager.getOverlord(), resourceId);
+ AgentClient client = agentManager.getAgentClient(res.getAgent());
if (client == null) {
throw new IllegalStateException("No agent is associated with the resource with id [" + resourceId + "]");
}
commit adc14a6b9a6bef77e429ff1d8a83e72dc335962d
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Sun Oct 6 19:04:29 2013 -0400
Zip Path shortening - coregui, part 5
- removing gwt client class cleanup as causing compilation failures with new workspaces on linux.
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 57a242a..cf7e057 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -321,64 +321,6 @@
</execution>
</executions>
</plugin>
-
- <!-- remove unnecessary client .class files to reduce the size of the webapp and avoid long path names on windows -->
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- <executions>
- <execution>
- <id>remove-gwt-client-classes</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>clean</goal>
- </goals>
- <configuration>
- <verbose>true</verbose>
- <excludeDefaultDirectories>true</excludeDefaultDirectories>
- <filesets>
- <fileset> <!-- remove the class files of client-only code -->
- <directory>${project.build.directory}/classes/org/rhq/coregui/client</directory>
- <includes>
- <include>**</include>
- </includes>
- <!-- keep the RPC-Service interface, and the entry- point class -->
- <excludes>
- <exclude>CoreGUI*.class</exclude>
- <exclude>gwt/**</exclude>
- </excludes>
- </fileset>
- </filesets>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- Override root pom, we don't want to check the client classes because they have been removed after
- generating the javascript -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>animal-sniffer-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>java-api-check</id>
- <configuration>
- <signature>
- <groupId>${animal.sniffer.java.signature.groupId}</groupId>
- <artifactId>${animal.sniffer.java.signature.artifactId}</artifactId>
- <version>${animal.sniffer.java.signature.version}</version>
- </signature>
- <ignores>
- <ignore>org.rhq.coregui.client.*</ignore>
- </ignores>
- </configuration>
- <phase>verify</phase>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
</plugins>
</build>
commit 180a9806290cd2031e92585ce126c96d5e96c354
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Fri Oct 11 11:45:11 2013 +0200
Bug 856846 - When agent platform has not yet been added to inventory, agent continuously logs WARN Cannot get a resource container for an invalid resource ID=0
Schedule content discovery if resource is synchronized and COMMITED
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentDiscoveryRunner.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentDiscoveryRunner.java
index c834eeb..2830ed8 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentDiscoveryRunner.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentDiscoveryRunner.java
@@ -1,32 +1,28 @@
/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
package org.rhq.core.pc.content;
-import java.util.concurrent.Callable;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+ import org.rhq.core.clientapi.server.content.ContentDiscoveryReport;
-import org.rhq.core.clientapi.server.content.ContentDiscoveryReport;
+ import java.util.concurrent.Callable;
/**
* Thread run by the {@link ContentManager} to perform content discoveries. Much of the logic in these discoveries takes
@@ -36,9 +32,9 @@ import org.rhq.core.clientapi.server.content.ContentDiscoveryReport;
* @author Jason Dobies
*/
public class ContentDiscoveryRunner implements Runnable, Callable<ContentDiscoveryReport> {
- // Attributes --------------------------------------------
+ private static final Log LOG = LogFactory.getLog(ContentDiscoveryRunner.class);
- private final Log log = LogFactory.getLog(ContentDiscoveryRunner.class);
+ // Attributes --------------------------------------------
/**
* If specified, this constrains this instance to running the described discovery. If this is not present, this
@@ -89,7 +85,7 @@ public class ContentDiscoveryRunner implements Runnable, Callable<ContentDiscove
try {
call();
} catch (Exception e) {
- log.error("Content discovery runner failed", e);
+ LOG.error("Content discovery runner failed", e);
}
}
@@ -110,19 +106,21 @@ public class ContentDiscoveryRunner implements Runnable, Callable<ContentDiscove
// Check to see if the discovery is executing too far past its next scheduled discovery
// If it is, skip this discovery and increment its next discovery.
if ((System.currentTimeMillis() - 120000L) > info.getNextDiscovery()) {
- log.debug("Content discovery is falling behind. Missed discovery for " + info + " by: "
+ LOG.debug("Content discovery is falling behind. Missed discovery for " + info + " by: "
+ (System.currentTimeMillis() - info.getNextDiscovery()) + "ms");
}
}
- log.debug("Performing discovery: " + info);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Performing discovery: " + info);
+ }
// Catch any error that may occur on the plugin
ContentDiscoveryReport result = null;
try {
result = contentManager.performContentDiscovery(info.getResourceId(), info.getPackageType());
} catch (Throwable throwable) {
- log.warn("Exception received from component while attempting content retrieval", throwable);
+ LOG.warn("Exception received from component while attempting content retrieval", throwable);
} finally {
// Reschedule after this report has been sent (or failed). Putting this here will delay further discoveries
// if the limited concurrency puts off sending this message for a while.
@@ -133,4 +131,4 @@ public class ContentDiscoveryRunner implements Runnable, Callable<ContentDiscove
return result;
}
-}
\ No newline at end of file
+}
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentManager.java
index 0b9ef6d..853d3b1 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/ContentManager.java
@@ -18,6 +18,8 @@
*/
package org.rhq.core.pc.content;
+import static org.rhq.core.domain.resource.InventoryStatus.COMMITTED;
+
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashSet;
@@ -70,9 +72,9 @@ import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
public class ContentManager extends AgentService implements ContainerService, ContentAgentService, ContentServices {
+ private static final Log LOG = LogFactory.getLog(ContentManager.class);
private static final int FACET_METHOD_TIMEOUT = 60 * 60 * 1000; // 60 minutes
- private final Log log = LogFactory.getLog(ContentManager.class);
/**
* Configuration elements for the running of this manager.
@@ -109,7 +111,7 @@ public class ContentManager extends AgentService implements ContainerService, Co
}
public void initialize() {
- log.info("Initializing Content Manager...");
+ LOG.info("Initializing Content Manager...");
// Determine discovery mode - we only enable discovery if we are inside the agent and the period is positive non-zero
this.scheduledDiscoveriesEnabled = (configuration.getContentDiscoveryPeriod() > 0);
@@ -128,7 +130,7 @@ public class ContentManager extends AgentService implements ContainerService, Co
// When running in scheduled mode, create and schedule the thread pool for discovering content
if (scheduledDiscoveriesEnabled) {
- log.info("Initializing scheduled content discovery...");
+ LOG.info("Initializing scheduled content discovery...");
// Without specifying a particular piece of work, this runner will request the next piece of work from
// the scheduled items queue
@@ -150,11 +152,11 @@ public class ContentManager extends AgentService implements ContainerService, Co
// now ask that the inventory manager tell us about resources that will be activated in the future
im.addInventoryEventListener(inventoryEventListener);
}
- log.info("Content Manager initialized...");
+ LOG.info("Content Manager initialized...");
}
public void shutdown() {
- log.info("Shutting down Content Manager...");
+ LOG.info("Shutting down Content Manager...");
PluginContainer pluginContainer = PluginContainer.getInstance();
pluginContainer.shutdownExecutorService(discoveryThreadPoolExecutor, true);
// pass false, so we don't interrupt a plugin in the middle of a content update
@@ -342,7 +344,7 @@ public class ContentManager extends AgentService implements ContainerService, Co
synchronized void rescheduleDiscovery(ScheduledContentDiscoveryInfo discoveryInfo) {
// Sanity check
if (!scheduledDiscoveriesEnabled) {
- log.warn("An attempt was made to reschedule a content discovery "
+ LOG.warn("An attempt was made to reschedule a content discovery "
+ "while not running in scheduled discovery mode - returning...");
return;
}
@@ -357,20 +359,20 @@ public class ContentManager extends AgentService implements ContainerService, Co
discoveryInfo.getResourceId());
if (resourceContainer != null) {
- boolean debugEnabled = log.isDebugEnabled();
+ boolean debugEnabled = LOG.isDebugEnabled();
if (discoveryInfo.getInterval() > 0) {
if (debugEnabled) {
- log.debug("Rescheduling [" + discoveryInfo + "]...");
+ LOG.debug("Rescheduling [" + discoveryInfo + "]...");
}
discoveryInfo.setNextDiscovery(System.currentTimeMillis() + discoveryInfo.getInterval());
addToQueue(discoveryInfo);
if (debugEnabled) {
- log.debug("Finished rescheduling: " + discoveryInfo);
+ LOG.debug("Finished rescheduling: " + discoveryInfo);
}
} else {
if (debugEnabled) {
- log.debug("Will not reschedule content discovery: " + discoveryInfo);
+ LOG.debug("Will not reschedule content discovery: " + discoveryInfo);
}
}
}
@@ -382,8 +384,8 @@ public class ContentManager extends AgentService implements ContainerService, Co
* @param resource resource whose discoveries to remove; cannot be <code>null</code>
*/
synchronized void unscheduleDiscoveries(Resource resource) {
- if (log.isDebugEnabled()) {
- log.debug("Unscheduling content discoveries for resource id [" + resource + ']');
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Unscheduling content discoveries for resource id [" + resource + ']');
}
// Find all scheduled items for this resource
@@ -418,8 +420,8 @@ public class ContentManager extends AgentService implements ContainerService, Co
Set<ResourcePackageDetails> details = contentFacet.discoverDeployedPackages(type);
- if (log.isDebugEnabled()) {
- log.debug("Discovered [" + ((details != null) ? details.size() : 0) + "] packages of type=" + type);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Discovered [" + ((details != null) ? details.size() : 0) + "] packages of type=" + type);
}
// Process the results
@@ -505,7 +507,7 @@ public class ContentManager extends AgentService implements ContainerService, Co
private synchronized void scheduleDiscoveries(Resource resource) {
// Sanity check
if (!scheduledDiscoveriesEnabled) {
- log.warn("Attempting to schedule a discovery for a resource while not running in scheduled discovery mode");
+ LOG.warn("Attempting to schedule a discovery for a resource while not running in scheduled discovery mode");
return;
}
@@ -522,8 +524,8 @@ public class ContentManager extends AgentService implements ContainerService, Co
while (iterator.hasNext()) {
ScheduledContentDiscoveryInfo contentDiscoveryInfo = iterator.next();
if (contentDiscoveryInfo.getResourceId() == resourceId) {
- if (log.isDebugEnabled()) {
- log.debug("Already found scheduled content discovery for resource id [" + resourceId
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Already found scheduled content discovery for resource id [" + resourceId
+ "], package type=[" + contentDiscoveryInfo.getPackageType()
+ "]. Will reschedule to be triggered soon.");
}
@@ -531,8 +533,8 @@ public class ContentManager extends AgentService implements ContainerService, Co
}
}
- if (log.isDebugEnabled()) {
- log.debug("Scheduling [" + packageTypes.size() + "] content discoveries for resource id [" + resourceId
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Scheduling [" + packageTypes.size() + "] content discoveries for resource id [" + resourceId
+ "]");
}
@@ -560,7 +562,7 @@ public class ContentManager extends AgentService implements ContainerService, Co
if (scheduledDiscoveriesEnabled) {
scheduledDiscoveries.offer(item);
} else {
- log.warn("Attempting to add a scheduled item to the queue when not running in scheduled mode: " + item);
+ LOG.warn("Attempting to add a scheduled item to the queue when not running in scheduled mode: " + item);
}
}
@@ -596,8 +598,8 @@ public class ContentManager extends AgentService implements ContainerService, Co
existingInstalledPackagesSet.retainAll(updatedPackageSet);
int removedPackagesCount = originalPackageCount - existingInstalledPackagesSet.size();
if (removedPackagesCount > 0) {
- if (log.isDebugEnabled()) {
- log.debug("Removed [" + removedPackagesCount + "] obsolete packages for resource id [" + resourceId
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Removed [" + removedPackagesCount + "] obsolete packages for resource id [" + resourceId
+ "]");
}
}
@@ -607,8 +609,8 @@ public class ContentManager extends AgentService implements ContainerService, Co
// Remaining content in updated list are "new" content
if (!updatedPackageSet.isEmpty()) {
- if (log.isDebugEnabled()) {
- log.debug("Found [" + updatedPackageSet.size() + "] new packages for resource id [" + resourceId + "]");
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Found [" + updatedPackageSet.size() + "] new packages for resource id [" + resourceId + "]");
}
}
@@ -628,8 +630,8 @@ public class ContentManager extends AgentService implements ContainerService, Co
// if there are 1+ installed packages to report OR there are 0 but there used to be packages installed,
// then send up the report to be merged
if (!existingInstalledPackagesSet.isEmpty() || originalPackageCount != 0) {
- if (log.isDebugEnabled()) {
- log.debug("Merging [" + existingInstalledPackagesSet.size()
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Merging [" + existingInstalledPackagesSet.size()
+ "] discovered packages for resource id [" + resourceId + "] with Server");
}
contentServerService.mergeDiscoveredPackages(report);
@@ -685,7 +687,10 @@ public class ContentManager extends AgentService implements ContainerService, Co
private class ContentInventoryEventListener implements InventoryEventListener {
public void resourceActivated(Resource resource) {
- ContentManager.this.scheduleDiscoveries(resource);
+ // Schedule content discovery if resource is synchronized and COMMITED
+ if (resource.getId() != 0 && resource.getInventoryStatus() == COMMITTED) {
+ ContentManager.this.scheduleDiscoveries(resource);
+ }
}
public void resourceDeactivated(Resource resource) {
commit 399291d57b2274b57118a6b69f095c061b2329ff
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Oct 11 11:35:43 2013 +0200
Add an OpenShift-support
diff --git a/modules/plugins/OpenShift-support/pom.xml b/modules/plugins/OpenShift-support/pom.xml
new file mode 100644
index 0000000..0a0c2ff
--- /dev/null
+++ b/modules/plugins/OpenShift-support/pom.xml
@@ -0,0 +1,180 @@
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
+ >
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-plugins-parent</artifactId>
+ <version>4.10.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>OpenShift-plugin</artifactId>
+ <packaging>jar</packaging>
+
+ <name>RHQ OpenShift support Plugin</name>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+
+
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>dev</id>
+
+ <properties>
+ <rhq.rootDir>../../..</rhq.rootDir>
+ <rhq.containerDir>${rhq.rootDir}/${rhq.devContainerServerPath}</rhq.containerDir>
+ <rhq.deploymentDir>${rhq.containerDir}/${rhq.agentPluginDir}</rhq.deploymentDir>
+ </properties>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.1</version>
+ <executions>
+
+ <execution>
+ <id>deploy</id>
+ <phase>compile</phase>
+ <configuration>
+ <tasks>
+ <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}"/>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>deploy-jar-meta-inf</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <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>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>undeploy</id>
+ <phase>clean</phase>
+ <configuration>
+ <tasks>
+ <property name="deployment.file"
+ location="${rhq.deploymentDir}/${project.build.finalName}.jar"/>
+ <echo>*** Deleting ${deployment.file}...</echo>
+ <delete file="${deployment.file}"/>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ </profile>
+ </profiles>
+
+
+ <repositories>
+ <repository>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <id>jboss</id>
+ <name>JBoss Repository</name>
+ <url>https://repository.jboss.org/nexus/content/groups/public/</url>
+ </repository>
+ <!-- TODO add your own maven repositories here (if needed) -->
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <id>jboss</id>
+ <name>JBoss Plugin Repository</name>
+ <url>https://repository.jboss.org/nexus/content/groups/public/</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>${commons-logging.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-domain</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-plugin-api</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-native-system</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-jboss-as-7-plugin</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- TODO add your dependencies here -->
+
+ </dependencies>
+</project>
\ No newline at end of file
diff --git a/modules/plugins/OpenShift-support/src/main/java/org/rhq/modules/plugins/openshift/OpenshiftComponent.java b/modules/plugins/OpenShift-support/src/main/java/org/rhq/modules/plugins/openshift/OpenshiftComponent.java
new file mode 100644
index 0000000..1c41363
--- /dev/null
+++ b/modules/plugins/OpenShift-support/src/main/java/org/rhq/modules/plugins/openshift/OpenshiftComponent.java
@@ -0,0 +1,110 @@
+
+package org.rhq.modules.plugins.openshift;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.mapping.Component;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.measurement.MeasurementDataTrait;
+import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.measurement.MeasurementDataNumeric;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.core.pluginapi.operation.OperationContext;
+import org.rhq.core.pluginapi.operation.OperationFacet;
+import org.rhq.core.pluginapi.operation.OperationResult;
+import org.rhq.modules.plugins.jbossas7.ASConnection;
+import org.rhq.modules.plugins.jbossas7.BaseComponent;
+import org.rhq.modules.plugins.jbossas7.StandaloneASComponent;
+import org.rhq.modules.plugins.jbossas7.json.Address;
+import org.rhq.modules.plugins.jbossas7.json.ComplexResult;
+import org.rhq.modules.plugins.jbossas7.json.ReadAttribute;
+
+@SuppressWarnings("unused")
+public class OpenshiftComponent extends StandaloneASComponent<BaseComponent<?>> implements MeasurementFacet
+{
+ private final Log log = LogFactory.getLog(this.getClass());
+
+ private static final int CHANGEME = 1; // TODO remove or change this
+
+ private ResourceContext context;
+ private StandaloneASComponent parent;
+
+ /**
+ * Return availability of this resource
+ * @see org.rhq.core.pluginapi.inventory.ResourceComponent#getAvailability()
+ */
+ public AvailabilityType getAvailability() {
+ // TODO supply real implementation
+ return AvailabilityType.UP;
+ }
+
+
+ /**
+ * Start the resource connection
+ * @see org.rhq.core.pluginapi.inventory.ResourceComponent#start(org.rhq.core.pluginapi.inventory.ResourceContext)
+ */
+ public void start(ResourceContext context) throws InvalidPluginConfigurationException, Exception {
+
+ this.context = context;
+ Configuration conf = context.getPluginConfiguration();
+ parent = (StandaloneASComponent) context.getParentResourceComponent();
+ // TODO add code to start the resource / connection to it
+
+
+ }
+
+
+ /**
+ * Tear down the resource connection
+ * @see org.rhq.core.pluginapi.inventory.ResourceComponent#stop()
+ */
+ public void stop() {
+
+
+ }
+
+
+
+ /**
+ * Gather measurement data
+ * @see org.rhq.core.pluginapi.measurement.MeasurementFacet#getValues(org.rhq.core.domain.measurement.MeasurementReport, java.util.Set)
+ */
+ @Override
+ public void getValues(MeasurementReport report, Set<MeasurementScheduleRequest> metrics) throws Exception {
+
+ for (MeasurementScheduleRequest req : metrics) {
+ if (req.getName().equals("appuid")) {
+
+ Address addr = new Address("core-service=platform-mbean,type=runtime");
+ ReadAttribute op = new ReadAttribute(addr,"system-properties");
+ ASConnection conn = parent.getASConnection();
+ ComplexResult result = conn.executeComplex(op);
+
+ if (result.isSuccess()) {
+ Map<String,Object> data = result.getResult();
+ if (data.containsKey("OPENSHIFT_APP_UUID")) {
+ String uid = (String) data.get("OPENSHIFT_APP_UUID");
+ MeasurementDataTrait res = new MeasurementDataTrait(req,uid);
+ report.addData(res);
+ }
+ }
+ else {
+ log.warn("Operation failed: " + result.getFailureDescription());
+ }
+ }
+ // TODO add more metrics here
+ }
+ }
+
+
+}
diff --git a/modules/plugins/OpenShift-support/src/main/java/org/rhq/modules/plugins/openshift/OpenshiftDiscovery.java b/modules/plugins/OpenShift-support/src/main/java/org/rhq/modules/plugins/openshift/OpenshiftDiscovery.java
new file mode 100644
index 0000000..6968cb8
--- /dev/null
+++ b/modules/plugins/OpenShift-support/src/main/java/org/rhq/modules/plugins/openshift/OpenshiftDiscovery.java
@@ -0,0 +1,73 @@
+package org.rhq.modules.plugins.openshift;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.Property;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
+import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
+import org.rhq.core.pluginapi.inventory.ProcessScanResult;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.modules.plugins.jbossas7.BaseServerComponent;
+import org.rhq.modules.plugins.jbossas7.StandaloneASComponent;
+import org.rhq.modules.plugins.jbossas7.StandaloneASDiscovery;
+
+/**
+ * Discovery class
+ */
+@SuppressWarnings("unused")
+public class OpenshiftDiscovery implements ResourceDiscoveryComponent<StandaloneASComponent<?>>
+
+{
+
+ private final Log log = LogFactory.getLog(this.getClass());
+
+ /**
+ * Run the auto-discovery
+ */
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext discoveryContext) throws Exception {
+ Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>();
+
+ /**
+ * TODO : do your discovery here
+ * A discovered resource must have a unique key, that must
+ * stay the same when the resource is discovered the next
+ * time
+ */
+
+ ResourceComponent parent = discoveryContext.getParentResourceComponent();
+ StandaloneASComponent parentComponent = (StandaloneASComponent) parent;
+ String home = parentComponent.getServerPluginConfiguration().getHomeDir().getAbsolutePath();
+
+ log.info("Home is " + home);
+
+ // only discover if the home path contains /var/lib/openshift
+ if (home.contains("/var/lib/openshift")) {
+
+ DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
+ discoveryContext.getResourceType(), // ResourceType
+ "openshift",
+ "Openshift",
+ "1.0",
+ "OpenShift",
+ discoveryContext.getDefaultPluginConfiguration(),
+ null
+ );
+
+
+ // Add to return values
+ discoveredResources.add(detail);
+ log.info("Discovered new ... OpenShift at " + home);
+ }
+
+ return discoveredResources;
+
+ }
+
+}
\ No newline at end of file
diff --git a/modules/plugins/OpenShift-support/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/OpenShift-support/src/main/resources/META-INF/rhq-plugin.xml
new file mode 100644
index 0000000..7fd3c4e
--- /dev/null
+++ b/modules/plugins/OpenShift-support/src/main/resources/META-INF/rhq-plugin.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<plugin name="RHQ-OpenShift"
+ displayName="RHQ-OpenShiftPlugin"
+ description="PoC for OpenShift"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:xmlns:rhq-plugin"
+ xmlns:c="urn:xmlns:rhq-configuration"
+ package="org.rhq.modules.plugins.openshift"
+ >
+
+ <depends plugin="JBossAS7" useClasses="true"/>
+
+ <service name="OpenShift"
+ class="OpenshiftComponent"
+ discovery="OpenshiftDiscovery"
+ description="OpenShift specific information"
+ singleton="true"
+ >
+ <runs-inside>
+ <parent-resource-type name="JBossAS7 Standalone Server" plugin="JBossAS7"/>
+ </runs-inside>
+
+ <metric property="appuid" dataType="trait" displayType="summary" defaultOn="true" defaultInterval="300000"/>
+
+ </service>
+
+</plugin>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index aa91586..54197c5 100644
--- a/modules/plugins/pom.xml
+++ b/modules/plugins/pom.xml
@@ -217,6 +217,7 @@
<module>kickstart</module>
<module>pattern-generator</module>
<module>cassandra</module>
+ <module>OpenShift-support</module>
</modules>
</profile>
commit 4f3d37e1342170c6ec84b2466570253cb6a0f191
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Thu Oct 10 12:30:45 2013 -0700
UXD Changes to resource metric monitoring Add to Dashboard component.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/AddToDashboardComponent.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/AddToDashboardComponent.java
index 8b0bf66..f8486e8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/AddToDashboardComponent.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/resource/detail/monitoring/table/AddToDashboardComponent.java
@@ -73,14 +73,15 @@ public class AddToDashboardComponent extends EnhancedToolStrip implements Enhanc
}
private void createToolstrip() {
- addSpacer(15);
- addToDashboardButton = new IButton(MSG.view_metric_addToDashboard());
- addToDashboardButton.setWidth(120);
+ addSpacer(10);
+ addToDashboardButton = new IButton(MSG.chart_metrics_add_to_dashboard_button());
+ addToDashboardButton.setWidth(80);
addToDashboardButton.disable();
dashboardSelectItem = new SelectItem();
dashboardSelectItem.setTitle(MSG.chart_metrics_add_to_dashboard_label());
- dashboardSelectItem.setWidth(260);
+ dashboardSelectItem.setWidth(240);
+ dashboardSelectItem.setWrapTitle(false);
populateDashboardMenu();
addFormItem(dashboardSelectItem);
addMember(addToDashboardButton);
@@ -101,7 +102,7 @@ public class AddToDashboardComponent extends EnhancedToolStrip implements Enhanc
.getMetricDefinitions()) {
if (measurementDefinition.getId() == selectedRecord
.getAttributeAsInt(MetricsViewDataSource.FIELD_METRIC_DEF_ID)) {
- Log.info("Add to Dashboard -- Storing: " + measurementDefinition.getDisplayName() + " in "
+ Log.debug("Add to Dashboard -- Storing: " + measurementDefinition.getDisplayName() + " in "
+ selectedDashboard.getName());
storeDashboardMetric(selectedDashboard, resource, measurementDefinition);
break;
@@ -136,8 +137,7 @@ public class AddToDashboardComponent extends EnhancedToolStrip implements Enhanc
public void onSuccess(PageList<Dashboard> dashboards) {
if(dashboards.size() > 0){
for (final Dashboard dashboard : dashboards) {
- dashboardMenuMap.put(String.valueOf(dashboard.getId()),
- MSG.view_tree_common_contextMenu_addChartToDashboard(dashboard.getName()));
+ dashboardMenuMap.put(String.valueOf(dashboard.getId()), dashboard.getName());
dashboardMap.put(dashboard.getId(), dashboard);
}
selectedDashboard = dashboards.get(0);
@@ -158,7 +158,7 @@ public class AddToDashboardComponent extends EnhancedToolStrip implements Enhanc
private void storeDashboardMetric(Dashboard dashboard, Resource resource, MeasurementDefinition definition) {
DashboardPortlet dashboardPortlet = new DashboardPortlet(MSG.view_tree_common_contextMenu_resourceGraph(),
- ResourceD3GraphPortlet.KEY, 250);
+ ResourceD3GraphPortlet.KEY, 200);
dashboardPortlet.getConfiguration().put(
new PropertySimple(ResourceD3GraphPortlet.CFG_RESOURCE_ID, resource.getId()));
dashboardPortlet.getConfiguration().put(
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
index 45de217..20cf77f 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages.properties
@@ -16,7 +16,8 @@ chart_hover_start_label = Start
chart_hover_time_format = %I:%M:%S %p
chart_ie_not_supported = Charting is not available for this browser.
chart_metrics = Metrics
-chart_metrics_add_to_dashboard_label = Dashboards
+chart_metrics_add_to_dashboard_button = Add
+chart_metrics_add_to_dashboard_label = Add to Dashboard
chart_metrics_collapse_tooltip = Click here to see additional tabular availability data.
chart_metrics_expand_tooltip = Click here to collapse additional availability detail.
chart_metrics_sparkline_header = Chart
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
index 2de690f..ac09e5e 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_cs.properties
@@ -49,7 +49,8 @@ chart_hover_date_format = %d.%m.%y
chart_hover_time_format = %H:%M:%S
##chart_ie_not_supported = Charting is not available for this browser.
##chart_metrics = Metrics
-##chart_metrics_add_to_dashboard_label = Dashboards
+##chart_metrics_add_to_dashboard_button = Add
+##chart_metrics_add_to_dashboard_label = Add To Dashboards
##chart_metrics_collapse_tooltip = Click here to see additional tabular availability data.
##chart_metrics_expand_tooltip = Click here to collapse additional availability detail.
##chart_metrics_sparkline_header = Chart
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
index 4886551..8b356bf 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_de.properties
@@ -20,7 +20,8 @@ chart_hover_start_label = Start
chart_hover_time_format = %H:%M:%S
chart_ie_not_supported = Charting ist bei diesem Browser nicht unterstÃŒtzt
chart_metrics = Metriken
-##chart_metrics_add_to_dashboard_label = Dashboards
+##chart_metrics_add_to_dashboard_button = Add
+##chart_metrics_add_to_dashboard_label = Add To Dashboards
##chart_metrics_collapse_tooltip = Click here to see additional tabular availability data.
##chart_metrics_expand_tooltip = Click here to collapse additional availability detail.
##chart_metrics_sparkline_header = Chart
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
index 48ee335..2872500 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ja.properties
@@ -28,7 +28,8 @@
##chart_metrics_collapse_tooltip= Click here to see additional tabular availability data.
##chart_metrics_expand_tooltip= Click here to collapse additional availability detail.
##chart_metrics_sparkline_header= Chart
-##chart_metrics_add_to_dashboard_label= Dashboards
+##chart_metrics_add_to_dashboard_button = Add
+##chart_metrics_add_to_dashboard_label = Add To Dashboards
##chart_no_data_label = No Data
##chart_single_value_label = Value
##chart_slider_button_bar_minute = Min
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
index b575000..a6c4de1 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ko.properties
@@ -26,7 +26,8 @@
##chart_metrics_collapse_tooltip= Click here to see additional tabular availability data.
##chart_metrics_expand_tooltip= Click here to collapse additional availability detail.
##chart_metrics_sparkline_header= Chart
-##chart_metrics_add_to_dashboard_label= Dashboards
+##chart_metrics_add_to_dashboard_button = Add
+##chart_metrics_add_to_dashboard_label = Add To Dashboards
##chart_no_data_label = No Data
##chart_single_value_label = Value
##chart_slider_button_bar_minute = Min
@@ -139,9 +140,9 @@ common_severity_info = ì 볎
common_severity_warn = 겜ê³
##common_status_attention = ì±ê³µ
##common_status_avail_disabled = DISABLED
-common_status_avail_disabled_lower = ë¹íì±í
+common_status_avail_disabled_lower = ë¹íì±ï¿œ
##common_status_avail_down = DOWN
-common_status_avail_down_lower = ì ì§
+common_status_avail_down_lower = ì ï¿œ
##common_status_avail_group_empty = EMPTY
##common_status_avail_group_mixed = MIXED
##common_status_avail_unknown = UNKNOWN
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
index dbf2c54..06c76d1 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_pt.properties
@@ -25,7 +25,8 @@
##chart_metrics_collapse_tooltip= Click here to see additional tabular availability data.
##chart_metrics_expand_tooltip= Click here to collapse additional availability detail.
##chart_metrics_sparkline_header= Chart
-##chart_metrics_add_to_dashboard_label= Dashboards
+##chart_metrics_add_to_dashboard_button = Add
+##chart_metrics_add_to_dashboard_label = Add To Dashboards
##chart_no_data_label = No Data
##chart_single_value_label = Value
##chart_slider_button_bar_minute = Min
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
index 74af988..b181def 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_ru.properties
@@ -25,7 +25,8 @@
##chart_metrics_collapse_tooltip= Click here to see additional tabular availability data.
##chart_metrics_expand_tooltip= Click here to collapse additional availability detail.
##chart_metrics_sparkline_header= Chart
-##chart_metrics_add_to_dashboard_label= Dashboards
+##chart_metrics_add_to_dashboard_button = Add
+##chart_metrics_add_to_dashboard_label = Add To Dashboards
##chart_no_data_label = No Data
##chart_single_value_label = Value
##chart_slider_button_bar_minute = Min
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
index 737e471..c0da3c3 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/coregui/client/Messages_zh.properties
@@ -25,7 +25,8 @@
##chart_metrics_collapse_tooltip= Click here to see additional tabular availability data.
##chart_metrics_expand_tooltip= Click here to collapse additional availability detail.
##chart_metrics_sparkline_header= Chart
-##chart_metrics_add_to_dashboard_label= Dashboards
+##chart_metrics_add_to_dashboard_button = Add
+##chart_metrics_add_to_dashboard_label = Add To Dashboards
##chart_no_data_label = No Data
##chart_single_value_label = Value
##chart_slider_button_bar_minute = Min
commit e3b9020498e792a1f271982c249b27e84848ac4a
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Thu Oct 10 10:35:34 2013 -0700
On Multi-Resource Chart window eliminate the 'MeasurementTableFrame' text from appearing in the chart title along with actual measurement.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableView.java
index 3681bab..e06a9c8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableView.java
@@ -116,7 +116,7 @@ public class GroupMeasurementTableView extends Table<GroupMetricsTableDataSource
public void onCellClick(CellClickEvent event) {
Record record = event.getRecord();
String title = record.getAttribute(GroupMetricsTableDataSource.FIELD_METRIC_LABEL);
- ChartViewWindow window = new ChartViewWindow("MeasurementTableFrame", title);
+ ChartViewWindow window = new ChartViewWindow("", title);
int defId = record.getAttributeAsInt(GroupMetricsTableDataSource.FIELD_METRIC_DEF_ID);
CompositeGroupD3GraphListView graph = new CompositeGroupD3MultiLineGraph(groupId, defId, isAutogroup);
commit 8c44d870c6133503d9f065b62512b1fb0567e9d7
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Thu Oct 10 09:55:36 2013 -0700
[BZ 1017440] Group Metrics Subtab navigation gets confused graph refresh is lost once subtab navigation begins. Added a listener for subtab navigation.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/D3GroupGraphListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/D3GroupGraphListView.java
index 45c4ced..46be440 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/D3GroupGraphListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/D3GroupGraphListView.java
@@ -40,6 +40,7 @@ import org.rhq.coregui.client.CoreGUI;
import org.rhq.coregui.client.gwt.GWTServiceLookup;
import org.rhq.coregui.client.inventory.AutoRefresh;
import org.rhq.coregui.client.inventory.common.AbstractD3GraphListView;
+import org.rhq.coregui.client.inventory.common.detail.AbstractTwoLevelTabSetView;
import org.rhq.coregui.client.inventory.common.graph.MetricGraphData;
import org.rhq.coregui.client.inventory.common.graph.graphtype.AvailabilityOverUnderGraphType;
import org.rhq.coregui.client.inventory.common.graph.graphtype.StackedBarMetricGraphImpl;
@@ -52,7 +53,7 @@ import org.rhq.coregui.client.util.async.CountDownLatch;
* Build the Group version of the View that shows the individual graph views.
* @author Mike Thompson
*/
-public final class D3GroupGraphListView extends AbstractD3GraphListView implements AutoRefresh {
+public final class D3GroupGraphListView extends AbstractD3GraphListView implements AutoRefresh, AbstractTwoLevelTabSetView.ViewRenderedListener {
private final ResourceGroup resourceGroup;
private VLayout graphsVLayout;
@@ -182,6 +183,11 @@ public final class D3GroupGraphListView extends AbstractD3GraphListView implemen
}
+ @Override
+ public void onViewRendered() {
+ refreshData();
+ }
+
private void buildIndividualGraph(MeasurementDefinition measurementDefinition,
List<MeasurementDataNumericHighLowComposite> data) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
index e2186bc..9ddbb77 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
@@ -204,7 +204,12 @@ public class ResourceGroupDetailView extends
@Override
protected D3GroupGraphListView createD3GraphListView() {
+
graphListView = new D3GroupGraphListView(groupComposite.getResourceGroup(), true);
+
+ // this listener handles the subtab navigation
+ addViewRenderedListener(graphListView);
+
return graphListView;
}
commit 836bab5cb6b9b9391bb8448a0e33442904de0cbe
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Oct 10 11:28:55 2013 -0400
Bug 960074 - RHQ Control - rhqctl.bat stop returns "RHQ Storage node has stopped" message
-- removed redundant message
diff --git a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Stop.java b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Stop.java
index cfbb1ff..2a7f301 100644
--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Stop.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Stop.java
@@ -122,7 +122,6 @@ public class Stop extends AbstractInstall {
commandLine = getCommandLine("rhq-storage", "stop");
try {
executor.execute(commandLine);
- System.out.println("RHQ storage node has stopped");
} catch (Exception e) {
// Ignore, service may not exist or be running, script returns 1
commit bf886d871f336211846d4852032f089a54b0b6c7
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Oct 10 11:16:23 2013 -0400
Bug 1006347 - Deprecate rhqserver scripts
- updated scripts with better messaging
- updated .sh scripts with better handling of stderr
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 8ccc2d3..c6342b2 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
@@ -1,3 +1,6 @@
@echo off
-echo This script is obsolete and no longer used. Use rhqctl instead.
+echo ERROR: %0 has been replaced by rhqctl
+echo Please use rhqctl. For help on the new command try:
+echo.
+echo rhqctl --help
exit /B 1
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.sh b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.sh
index 548e1b6..3ba3498 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.sh
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-installer.sh
@@ -1,3 +1,8 @@
#!/bin/sh
-echo "This script is obsolete and no longer used. Use rhqctl instead."
+echo >&2 "ERROR: $0 has been replaced by rhqctl."
+cat <<EOF
+Please use rhqctl. For help on the new command try:
+
+ rhqctl --help
+EOF
exit 1
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server-console.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server-console.bat
index 8ccc2d3..c6342b2 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server-console.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server-console.bat
@@ -1,3 +1,6 @@
@echo off
-echo This script is obsolete and no longer used. Use rhqctl instead.
+echo ERROR: %0 has been replaced by rhqctl
+echo Please use rhqctl. For help on the new command try:
+echo.
+echo rhqctl --help
exit /B 1
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.bat
index 8ccc2d3..c6342b2 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.bat
@@ -1,3 +1,6 @@
@echo off
-echo This script is obsolete and no longer used. Use rhqctl instead.
+echo ERROR: %0 has been replaced by rhqctl
+echo Please use rhqctl. For help on the new command try:
+echo.
+echo rhqctl --help
exit /B 1
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh
index 548e1b6..3ba3498 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh
@@ -1,3 +1,8 @@
#!/bin/sh
-echo "This script is obsolete and no longer used. Use rhqctl instead."
+echo >&2 "ERROR: $0 has been replaced by rhqctl."
+cat <<EOF
+Please use rhqctl. For help on the new command try:
+
+ rhqctl --help
+EOF
exit 1
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.sh b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.sh
index 548e1b6..3ba3498 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.sh
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage-installer.sh
@@ -1,3 +1,8 @@
#!/bin/sh
-echo "This script is obsolete and no longer used. Use rhqctl instead."
+echo >&2 "ERROR: $0 has been replaced by rhqctl."
+cat <<EOF
+Please use rhqctl. For help on the new command try:
+
+ rhqctl --help
+EOF
exit 1
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage.bat
index 8ccc2d3..c6342b2 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-storage.bat
@@ -1,3 +1,6 @@
@echo off
-echo This script is obsolete and no longer used. Use rhqctl instead.
+echo ERROR: %0 has been replaced by rhqctl
+echo Please use rhqctl. For help on the new command try:
+echo.
+echo rhqctl --help
exit /B 1
10 years, 7 months
[rhq] Branch 'bug/1009945' - modules/enterprise
by John Sanda
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java | 11
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate6HourData.java | 66 +++++
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java | 7
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java | 22 -
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java | 125 ++++++----
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java | 99 +++++++
6 files changed, 254 insertions(+), 76 deletions(-)
New commits:
commit bc95a3dabde5899fb6e99fd91baa9f2c702de9e9
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Oct 21 11:06:17 2013 -0400
adding back support for aggregating 6 hour data
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java
index 3b8e72e..c6584ca 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java
@@ -53,24 +53,17 @@ public class Aggregate1HourData implements Runnable {
public void onSuccess(List<ResultSet> result) {
log.debug("Finished aggregating 1 hour data for " + result.size() + " schedules in " +
(System.currentTimeMillis() - start) + " ms");
- update1HourAggregationState();
+ state.getRemaining1HourData().addAndGet(-scheduleIds.size());
}
@Override
public void onFailure(Throwable t) {
log.warn("Failed to aggregate 1 hour data", t);
- update1HourAggregationState();
+ state.getRemaining1HourData().addAndGet(-scheduleIds.size());
}
});
}
- private void update1HourAggregationState() {
- if (state.getRemaining1HourData().addAndGet(-scheduleIds.size()) == 0) {
- log.debug("Finished raw data aggregation");
-// state.getCompletionOf1HourDataAggregation().countDown();
- }
- }
-
private void start6HourDataAggregationIfNecessary() {
if (state.is24HourTimeSliceFinished()) {
// TODO
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate6HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate6HourData.java
new file mode 100644
index 0000000..fc8c0cb
--- /dev/null
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate6HourData.java
@@ -0,0 +1,66 @@
+package org.rhq.server.metrics;
+
+import java.util.List;
+import java.util.Set;
+
+import com.datastax.driver.core.ResultSet;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.FutureFallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author John Sanda
+ */
+public class Aggregate6HourData implements Runnable {
+
+ private final Log log = LogFactory.getLog(Aggregate6HourData.class);
+
+ private MetricsDAO dao;
+
+ private AggregationState state;
+
+ private Set<Integer> scheduleIds;
+
+ private List<StorageResultSetFuture> queryFutures;
+
+ public Aggregate6HourData(MetricsDAO dao, AggregationState state, Set<Integer> scheduleIds,
+ List<StorageResultSetFuture> queryFutures) {
+ this.dao = dao;
+ this.state = state;
+ this.scheduleIds = scheduleIds;
+ this.queryFutures = queryFutures;
+ }
+
+ @Override
+ public void run() {
+ final long start = System.currentTimeMillis();
+ ListenableFuture<List<ResultSet>> queriesFuture = Futures.successfulAsList(queryFutures);
+ Futures.withFallback(queriesFuture, new FutureFallback<List<ResultSet>>() {
+ @Override
+ public ListenableFuture<List<ResultSet>> create(Throwable t) throws Exception {
+ log.error("An error occurred while fetching 6 hour data", t);
+ return Futures.immediateFailedFuture(t);
+ }
+ });
+ ListenableFuture<List<ResultSet>> computeFutures = Futures.transform(queriesFuture,
+ state.getCompute24HourData(), state.getAggregationTasks());
+ Futures.addCallback(computeFutures, new FutureCallback<List<ResultSet>>() {
+ @Override
+ public void onSuccess(List<ResultSet> result) {
+ log.debug("Finished aggregating 6 hour data for " + result.size() + " schedules in " +
+ (System.currentTimeMillis() - start) + " ms");
+ state.getRemaining6HourData().addAndGet(-scheduleIds.size());
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ log.warn("Failed to aggregate 6 hour data", t);
+ state.getRemaining6HourData().addAndGet(-scheduleIds.size());
+ }
+ });
+ }
+}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java
index 3b9c5ca..a7b0695 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java
@@ -70,13 +70,6 @@ public class AggregateRawData implements Runnable {
}, state.getAggregationTasks());
}
-// private void updateRawAggregationState() {
-// if (state.getRemainingRawData().addAndGet(-scheduleIds.size()) == 0) {
-// //state.getCompletionOfRawDataAggregation().countDown();
-// }
-// log.debug("Remaining raw data = " + state.getRemainingRawData());
-// }
-
private void start1HourDataAggregationIfNecessary() {
log.debug("Aggregating 1 hour data for schedule ids " + scheduleIds);
if (state.is6HourTimeSliceFinished()) {
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java
index db3c63e..1b67350 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java
@@ -1,7 +1,6 @@
package org.rhq.server.metrics;
import java.util.Set;
-import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -52,9 +51,7 @@ public class AggregationState {
private Compute6HourData compute6HourData;
- private CountDownLatch completionOfRawDataAggregation;
-
- private CountDownLatch completionOf1HourDataAggregation;
+ private Compute24HourData compute24HourData;
public ListeningExecutorService getAggregationTasks() {
return aggregationTasks;
@@ -227,21 +224,12 @@ public class AggregationState {
return this;
}
- public CountDownLatch getCompletionOfRawDataAggregation() {
- return completionOfRawDataAggregation;
- }
-
- public AggregationState setCompletionOfRawDataAggregation(CountDownLatch completionOfRawDataAggregation) {
- this.completionOfRawDataAggregation = completionOfRawDataAggregation;
- return this;
- }
-
- public CountDownLatch getCompletionOf1HourDataAggregation() {
- return completionOf1HourDataAggregation;
+ public Compute24HourData getCompute24HourData() {
+ return compute24HourData;
}
- public AggregationState setCompletionOf1HourDataAggregation(CountDownLatch completionOf1HourDataAggregation) {
- this.completionOf1HourDataAggregation = completionOf1HourDataAggregation;
+ public AggregationState setCompute24HourData(Compute24HourData compute24HourData) {
+ this.compute24HourData = compute24HourData;
return this;
}
}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
index 32f2e8c..1012fa4 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
@@ -48,7 +48,7 @@ public class Aggregator {
private DateTime startTime;
- private CountDownLatch rawDataIndexEntriesArrival;
+ private SignalingCountDownLatch rawDataIndexEntriesArrival;
private RateLimiter readPermits;
private RateLimiter writePermits;
@@ -72,7 +72,7 @@ public class Aggregator {
this.writePermits = writePermits;
this.batchSize = batchSize;
oneHourData = new ConcurrentSkipListSet<AggregateNumericMetric>(AGGREGATE_COMPARATOR);
- rawDataIndexEntriesArrival = new CountDownLatch(1);
+ rawDataIndexEntriesArrival = new SignalingCountDownLatch(new CountDownLatch(1));
remainingIndexEntries = new AtomicInteger(1);
DateTime sixHourTimeSlice = get6HourTimeSlice();
@@ -87,15 +87,14 @@ public class Aggregator {
.setTwentyFourHourTimeSliceEnd(twentyFourHourTimeSlice.plus(configuration.getSixHourTimeSliceDuration()))
.setCompute1HourData(new Compute1HourData(startTime, sixHourTimeSlice, writePermits, dao, oneHourData))
.setCompute6HourData(new Compute6HourData(sixHourTimeSlice, twentyFourHourTimeSlice, writePermits, dao))
+ .setCompute24HourData(new Compute24HourData(twentyFourHourTimeSlice, writePermits, dao))
.set6HourTimeSliceFinished(hasTimeSliceEnded(sixHourTimeSlice, configuration.getOneHourTimeSliceDuration()))
.set24HourTimeSliceFinished(hasTimeSliceEnded(twentyFourHourTimeSlice,
configuration.getSixHourTimeSliceDuration()))
.setOneHourIndexEntries(new TreeSet<Integer>())
.setSixHourIndexEntries(new TreeSet<Integer>())
.setOneHourIndexEntriesLock(new ReentrantReadWriteLock())
- .setSixHourIndexEntriesLock(new ReentrantReadWriteLock())
- .setCompletionOfRawDataAggregation(new CountDownLatch(1))
- .setCompletionOf1HourDataAggregation(new CountDownLatch(1));
+ .setSixHourIndexEntriesLock(new ReentrantReadWriteLock());
if (state.is6HourTimeSliceFinished()) {
state.setOneHourIndexEntriesArrival(new SignalingCountDownLatch(new CountDownLatch(1)));
@@ -176,7 +175,8 @@ public class Aggregator {
public void onFailure(Throwable t) {
log.warn("Failed to retrieve raw data index entries. Raw data aggregation for time slice [" +
startTime + "] cannot proceed.", t);
- state.getRemainingRawData().getAndSet(0);
+ state.setRemainingRawData(new AtomicInteger(0));
+ rawDataIndexEntriesArrival.abort();
deleteIndexEntries(MetricsTable.ONE_HOUR);
}
}, state.getAggregationTasks());
@@ -184,7 +184,7 @@ public class Aggregator {
if (state.is6HourTimeSliceFinished()) {
log.debug("Fetching 1 hour index entries");
StorageResultSetFuture oneHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.SIX_HOUR,
- get6HourTimeSlice().getMillis());
+ state.getSixHourTimeSlice().getMillis());
Futures.addCallback(oneHourFuture, new FutureCallback<ResultSet>() {
@Override
public void onSuccess(ResultSet resultSet) {
@@ -204,46 +204,46 @@ public class Aggregator {
get6HourTimeSlice() + "]. Some six hour aggregates may not get generated.");
state.getOneHourIndexEntriesArrival().abort();
}
- });
+ }, state.getAggregationTasks());
}
-// if (state.is24HourTimeSliceFinished()) {
-// deleteIndexEntries(MetricsTable.TWENTY_FOUR_HOUR);
-// log.debug("Fetching 6 hour index entries");
-// StorageResultSetFuture sixHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.TWENTY_FOUR_HOUR,
-// get24HourTimeSlice().getMillis());
-// Futures.addCallback(sixHourFuture, new FutureCallback<ResultSet>() {
-// @Override
-// public void onSuccess(ResultSet result) {
-// List<Row> rows = result.all();
-// if (rows.isEmpty()) {
-// deleteIndexEntries(MetricsTable.TWENTY_FOUR_HOUR);
-// } else {
-// MetricsIndexEntryMapper mapper = new MetricsIndexEntryMapper(MetricsTable.TWENTY_FOUR_HOUR);
-//
-// for (Row row : rows) {
-// MetricsIndexEntry indexEntry = mapper.map(row);
-// state.getSixHourIndexEntries().add(indexEntry.getScheduleId());
-// }
-// state.setRemaining6HourData(new AtomicInteger(state.getSixHourIndexEntries().size()));
-// }
-// state.getSixHourIndexEntriesArrival().countDown();
-// log.debug("Finished loading 6 hour index entries");
-// }
-//
-// @Override
-// public void onFailure(Throwable t) {
-// log.warn("Failed to retrieve 6 hour aggregate index entries for time slice [" +
-// get24HourTimeSlice() + "]. Some 24 hour aggregates may not get generated.");
-// state.getSixHourIndexEntriesArrival().abort();
-// deleteIndexEntries(MetricsTable.TWENTY_FOUR_HOUR);
-// }
-// });
-// }
+ if (state.is24HourTimeSliceFinished()) {
+ log.debug("Fetching 6 hour index entries");
+ StorageResultSetFuture sixHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.TWENTY_FOUR_HOUR,
+ state.getTwentyFourHourTimeSlice().getMillis());
+ Futures.addCallback(sixHourFuture, new FutureCallback<ResultSet>() {
+ @Override
+ public void onSuccess(ResultSet resultSet) {
+ for (Row row : resultSet) {
+ // No need to get the write lock here because there won't be concurrent writes until after
+ // state.getSixHourIndexEntriesArrival().countDown() is called
+ state.getSixHourIndexEntries().add(row.getInt(1));
+ }
+ state.setRemaining6HourData(new AtomicInteger(state.getSixHourIndexEntries().size()));
+ state.getSixHourIndexEntriesArrival().countDown();
+ log.debug("Finished loading 6 hour index entrie");
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ log.warn("Failed to retrieve 6 hour index entries for time slice " +
+ state.getTwentyFourHourTimeSlice() + ". Some 24 hour aggregates may not get generated.", t);
+ state.getSixHourIndexEntriesArrival().abort();
+ }
+ }, state.getAggregationTasks());
+ }
try {
if (state.is6HourTimeSliceFinished()) {
- rawDataIndexEntriesArrival.await();
+ // TODO do we need to wait for raw index entries arrival?
+ try {
+ log.debug("Waiting for arrival of raw data index entries");
+ rawDataIndexEntriesArrival.await();
+ } catch (AbortedException e) {
+ log.warn("Failed to load raw data index entries. Proceeding with 1 hour data aggregation.");
+ log.warn("Remaining raw data: " + state.getRemainingRawData());
+ }
+ log.debug("Waiting for raw aggregation to complete");
waitForRawAggregationToComplete();
deleteIndexEntries(MetricsTable.SIX_HOUR);
// Now queue up remaining 1 hour data aggregation
@@ -276,7 +276,40 @@ public class Aggregator {
}
}
- while (remainingIndexEntries.get() > 0 || state.getRemaining1HourData().get() > 0) {
+ if (state.is24HourTimeSliceFinished()) {
+ waitFor1HourAggregationToComplete();
+ deleteIndexEntries(MetricsTable.TWENTY_FOUR_HOUR);
+ try {
+ log.debug("Remaining scheulde ids for 6 hour aggregation: " + state.getSixHourIndexEntries());
+ List<StorageResultSetFuture> queryFutures = new ArrayList<StorageResultSetFuture>(batchSize);
+ Set<Integer> scheduleIds = new TreeSet<Integer>();
+ state.getSixHourIndexEntriesLock().writeLock().lock();
+ for (Integer scheduleId : state.getSixHourIndexEntries()) {
+ queryFutures.add(dao.findSixHourMetricsAsync(scheduleId, state.getTwentyFourHourTimeSlice().getMillis(),
+ state.getTwentyFourHourTimeSliceEnd().getMillis()));
+ scheduleIds.add(scheduleId);
+ if (queryFutures.size() == batchSize) {
+ log.debug("Submitting 6 hour aggregation task for schedule ids " + scheduleIds);
+ state.getAggregationTasks().submit(new Aggregate6HourData(dao, state, scheduleIds,
+ queryFutures));
+ queryFutures = new ArrayList<StorageResultSetFuture>(batchSize);
+ scheduleIds = new TreeSet<Integer>();
+ }
+ }
+ if (!queryFutures.isEmpty()) {
+ log.debug("Submitting 6 hour aggregation task for schedule ids " + scheduleIds);
+ state.getAggregationTasks().submit(new Aggregate6HourData(dao, state, scheduleIds,
+ queryFutures));
+ queryFutures = null;
+ scheduleIds = null;
+ }
+ } finally {
+ state.getSixHourIndexEntriesLock().writeLock().unlock();
+ }
+ }
+
+ while (remainingIndexEntries.get() > 0 || state.getRemaining1HourData().get() > 0 ||
+ state.getRemaining6HourData().get() > 0) {
Thread.sleep(50);
}
log.debug("Aggregation is done. There are " + remainingIndexEntries.get() + " remaining index entries");
@@ -292,6 +325,12 @@ public class Aggregator {
}
}
+ private void waitFor1HourAggregationToComplete() throws InterruptedException {
+ while (state.getRemaining1HourData().get() > 0) {
+ Thread.sleep(50);
+ }
+ }
+
private void deleteIndexEntries(final MetricsTable table) {
DateTime time;
switch (table) {
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java
new file mode 100644
index 0000000..951287c
--- /dev/null
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute24HourData.java
@@ -0,0 +1,99 @@
+package org.rhq.server.metrics;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.Row;
+import com.google.common.util.concurrent.AsyncFunction;
+import com.google.common.util.concurrent.FutureFallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.RateLimiter;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.joda.time.DateTime;
+
+import org.rhq.server.metrics.domain.AggregateNumericMetric;
+import org.rhq.server.metrics.domain.AggregateType;
+
+/**
+ * @author John Sanda
+ */
+public class Compute24HourData implements AsyncFunction<List<ResultSet>, List<ResultSet>> {
+
+ private final Log log = LogFactory.getLog(Compute24HourData.class);
+
+ private DateTime startTime;
+
+ private RateLimiter writePermits;
+
+ private MetricsDAO dao;
+
+ public Compute24HourData(DateTime startTime, RateLimiter writePermits, MetricsDAO dao) {
+ this.startTime = startTime;
+ this.writePermits = writePermits;
+ this.dao = dao;
+ }
+
+ @Override
+ public ListenableFuture<List<ResultSet>> apply(List<ResultSet> sixHourDataResultSets) throws Exception {
+ if (log.isDebugEnabled()) {
+ log.debug("Computing and storing 24 hour data for " + sixHourDataResultSets.size() + " schedules");
+ }
+ long start = System.currentTimeMillis();
+ try {
+ List<StorageResultSetFuture> insertFutures =
+ new ArrayList<StorageResultSetFuture>(sixHourDataResultSets.size());
+ for (ResultSet resultSet : sixHourDataResultSets) {
+ AggregateNumericMetric aggregate = calculateAggregate(resultSet);
+ writePermits.acquire(3);
+ insertFutures.add(dao.insertTwentyFourHourDataAsync(aggregate.getScheduleId(), aggregate.getTimestamp(),
+ AggregateType.MIN, aggregate.getMin()));
+ insertFutures.add(dao.insertTwentyFourHourDataAsync(aggregate.getScheduleId(), aggregate.getTimestamp(),
+ AggregateType.MAX, aggregate.getMax()));
+ insertFutures.add(dao.insertTwentyFourHourDataAsync(aggregate.getScheduleId(), aggregate.getTimestamp(),
+ AggregateType.AVG, aggregate.getAvg()));
+ }
+ ListenableFuture<List<ResultSet>> resultSetFutures = Futures.allAsList(insertFutures);
+ return Futures.withFallback(resultSetFutures, new FutureFallback<List<ResultSet>>() {
+ @Override
+ public ListenableFuture<List<ResultSet>> create(Throwable t) throws Exception {
+ log.error("An error occurred while inserting 24 hour data", t);
+ return Futures.immediateFailedFuture(t);
+ }
+ });
+ } finally {
+ if (log.isDebugEnabled()) {
+ log.debug("Finished computing and storing 24 hour data for " + sixHourDataResultSets.size() +
+ " schedules in " + (System.currentTimeMillis() - start) + " ms");
+ }
+ }
+ }
+
+ private AggregateNumericMetric calculateAggregate(ResultSet resultSet) {
+ double min = Double.NaN;
+ double max = min;
+ ArithmeticMeanCalculator mean = new ArithmeticMeanCalculator();
+ List<Row> rows = resultSet.all();
+
+ for (int i = 0; i < rows.size(); i += 3) {
+ if (i == 0) {
+ min = rows.get(i + 1).getDouble(3);
+ max = rows.get(i).getDouble(3);
+ } else {
+ if (rows.get(i + 1).getDouble(3) < min) {
+ min = rows.get(i + 1).getDouble(3);
+ }
+ if (rows.get(i).getDouble(3) > max) {
+ max = rows.get(i).getDouble(3);
+ }
+ }
+ mean.add(rows.get(i + 2).getDouble(3));
+ }
+ return new AggregateNumericMetric(rows.get(0).getInt(0), mean.getArithmeticMean(), min, max,
+ startTime.getMillis());
+ }
+
+}
10 years, 7 months
[rhq] modules/enterprise
by John Sanda
modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy | 1 +
1 file changed, 1 insertion(+)
New commits:
commit 2c071f6ae28624efaa357c7156aefd6d11b93275
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Oct 21 16:07:23 2013 -0400
set execute perms on scripts in bin/internal directory
diff --git a/modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy b/modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy
index 7cdbf9e..f2404ae 100644
--- a/modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy
+++ b/modules/enterprise/server/appserver/src/main/scripts/storage_setup.groovy
@@ -137,6 +137,7 @@ def prepareAdditionalStorageInstallations() {
}
log.info "Updating permissions in $basedir/bin"
ant.chmod(dir: "$basedir/bin", perm: "ug+x", includes: "*.sh,rhqctl", verbose: true)
+ ant.chmod(dir: "$basedir/bin/internal", perm: "ug+x", includes: "*.sh,rhqctl", verbose: true)
createRhqctlPropertiesFile(basedir)
createStoragePropertiesFile(basedir, nodeId)
10 years, 7 months
[rhq] Branch 'bug/1004050' - modules/common modules/enterprise modules/helpers modules/plugins
by John Sanda
modules/common/cassandra-ccm/cassandra-ccm-arquillian/src/main/java/org/rhq/cassandra/ccm/arquillian/CCMSuiteDeploymentExtension.java | 121 +++++-----
modules/common/cassandra-ccm/cassandra-ccm-testng/src/main/java/org/rhq/cassandra/CCMTestNGListener.java | 12
modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/AbstractManager.java | 41 +--
modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/SchemaManager.java | 25 +-
modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/TopologyManager.java | 25 --
modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/VersionManager.java | 105 ++++----
modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java | 42 ++-
modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/ServerInstallUtil.java | 3
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java | 2
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/CassandraIntegrationTest.java | 2
modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java | 6
modules/plugins/rhq-storage/src/test/java/org/rhq/plugins/storage/StorageNodeComponentITest.java | 36 --
12 files changed, 208 insertions(+), 212 deletions(-)
New commits:
commit 9bf34343fafe7e2c1506cacb4b8de352642d1549
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Oct 21 21:53:00 2013 -0400
[BZ 1004050] This commit includes the bulk of the changes for this bug
diff --git a/modules/common/cassandra-ccm/cassandra-ccm-arquillian/src/main/java/org/rhq/cassandra/ccm/arquillian/CCMSuiteDeploymentExtension.java b/modules/common/cassandra-ccm/cassandra-ccm-arquillian/src/main/java/org/rhq/cassandra/ccm/arquillian/CCMSuiteDeploymentExtension.java
index 50aaab1..9164a81 100644
--- a/modules/common/cassandra-ccm/cassandra-ccm-arquillian/src/main/java/org/rhq/cassandra/ccm/arquillian/CCMSuiteDeploymentExtension.java
+++ b/modules/common/cassandra-ccm/cassandra-ccm-arquillian/src/main/java/org/rhq/cassandra/ccm/arquillian/CCMSuiteDeploymentExtension.java
@@ -103,77 +103,80 @@ public class CCMSuiteDeploymentExtension implements LoadableExtension {
executeInClassScope(new Callable<Void>() {
public Void call() throws Exception {
+ SchemaManager schemaManager = null;
+ try {
+ ClusterInitService clusterInitService = new ClusterInitService();
+
+ String[] nodes = null;
+ int[] jmxPorts = null;
+ int cqlPort = -1;
+
+ if (!Boolean.valueOf(System.getProperty("itest.use-external-storage-node", "false"))) {
+
+ DeploymentOptionsFactory factory = new DeploymentOptionsFactory();
+ DeploymentOptions options = factory.newDeploymentOptions();
+ File basedir = new File("target");
+ File clusterDir = new File(basedir, "cassandra");
+
+ options.setUsername("rhqadmin");
+ options.setPassword("1eeb2f255e832171df8592078de921bc");
+ options.setClusterDir(clusterDir.getAbsolutePath());
+ options.setHeapSize("256M");
+ options.setHeapNewSize("64M");
+ options.setStartRpc(true);
+
+ ccm = new CassandraClusterManager(options);
+ ccm.createCluster();
+
+ nodes = ccm.getNodes();
+ jmxPorts = ccm.getJmxPorts();
+ cqlPort = ccm.getCqlPort();
+
+ ccm.startCluster(false);
+
+ try {
+ clusterInitService.waitForClusterToStart(nodes, jmxPorts, nodes.length, 2000, 20, 10);
+ schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc", nodes,
+ cqlPort);
+ } catch (Exception e) {
+ if (null != ccm) {
+ ccm.shutdownCluster();
+ }
+ throw new RuntimeException("Cassandra cluster initialization failed", e);
+ }
+ } else {
+ try {
+ String nodesString = System.getProperty("rhq.storage.nodes", "127.0.0.1");
+ nodes = nodesString.split(",");
- SchemaManager schemaManager;
- ClusterInitService clusterInitService = new ClusterInitService();
-
- String[] nodes = null;
- int[] jmxPorts = null;
- int cqlPort = -1;
-
- if (!Boolean.valueOf(System.getProperty("itest.use-external-storage-node", "false"))) {
-
- DeploymentOptionsFactory factory = new DeploymentOptionsFactory();
- DeploymentOptions options = factory.newDeploymentOptions();
- File basedir = new File("target");
- File clusterDir = new File(basedir, "cassandra");
-
- options.setUsername("rhqadmin");
- options.setPassword("1eeb2f255e832171df8592078de921bc");
- options.setClusterDir(clusterDir.getAbsolutePath());
- options.setHeapSize("256M");
- options.setHeapNewSize("64M");
- options.setStartRpc(true);
-
- ccm = new CassandraClusterManager(options);
- ccm.createCluster();
+ String cqlPortString = System.getProperty("rhq.storage.cql-port", "9042");
+ cqlPort = Integer.parseInt(cqlPortString);
- nodes = ccm.getNodes();
- jmxPorts = ccm.getJmxPorts();
- cqlPort = ccm.getCqlPort();
+ String jmxPortString = System.getProperty("rhq.storage.jmx-port", "7299");
+ jmxPorts = new int[] { Integer.parseInt(jmxPortString) };
- ccm.startCluster(false);
+ schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc", nodes, cqlPort);
+ } catch (Exception e) {
+ throw new RuntimeException("External Cassandra initialization failed", e);
+ }
+ }
try {
- clusterInitService.waitForClusterToStart(nodes, jmxPorts, nodes.length, 2000, 20, 10);
- schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc", nodes, cqlPort);
-
+ schemaManager.install();
+ clusterInitService.waitForSchemaAgreement(nodes, jmxPorts);
+ schemaManager.updateTopology();
} catch (Exception e) {
if (null != ccm) {
ccm.shutdownCluster();
}
- throw new RuntimeException("Cassandra cluster initialization failed", e);
- }
- } else {
- try {
- String nodesString = System.getProperty("rhq.storage.nodes", "127.0.0.1");
- nodes = nodesString.split(",");
-
- String cqlPortString = System.getProperty("rhq.storage.cql-port", "9042");
- cqlPort = Integer.parseInt(cqlPortString);
-
- String jmxPortString = System.getProperty("rhq.storage.jmx-port", "7299");
- jmxPorts = new int[] { Integer.parseInt(jmxPortString) };
-
- schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc", nodes, cqlPort);
-
- } catch (Exception e) {
- throw new RuntimeException("External Cassandra initialization failed", e);
+ throw new RuntimeException("Cassandra schema initialization failed", e);
}
- }
-
- try {
- schemaManager.install();
- clusterInitService.waitForSchemaAgreement(nodes, jmxPorts);
- schemaManager.updateTopology();
- } catch (Exception e) {
- if (null != ccm) {
- ccm.shutdownCluster();
+ return null;
+ } finally {
+ if (schemaManager != null) {
+ schemaManager.shutdown();
}
- throw new RuntimeException("Cassandra schema initialization failed", e);
}
-
- return null;
}
});
}
diff --git a/modules/common/cassandra-ccm/cassandra-ccm-testng/src/main/java/org/rhq/cassandra/CCMTestNGListener.java b/modules/common/cassandra-ccm/cassandra-ccm-testng/src/main/java/org/rhq/cassandra/CCMTestNGListener.java
index 286a5ff..ae9a980 100644
--- a/modules/common/cassandra-ccm/cassandra-ccm-testng/src/main/java/org/rhq/cassandra/CCMTestNGListener.java
+++ b/modules/common/cassandra-ccm/cassandra-ccm-testng/src/main/java/org/rhq/cassandra/CCMTestNGListener.java
@@ -119,11 +119,15 @@ public class CCMTestNGListener implements IInvokedMethodListener {
SchemaManager schemaManager = new SchemaManager(annotation.username(), annotation.password(), nodes,
ccm.getCqlPort());
- schemaManager.install();
- if (annotation.waitForSchemaAgreement()) {
- clusterInitService.waitForSchemaAgreement(nodes, jmxPorts);
+ try {
+ schemaManager.install();
+ if (annotation.waitForSchemaAgreement()) {
+ clusterInitService.waitForSchemaAgreement(nodes, jmxPorts);
+ }
+ schemaManager.updateTopology();
+ } finally {
+ schemaManager.shutdown();
}
- schemaManager.updateTopology();
}
private void shutdownCluster() throws Exception {
diff --git a/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/AbstractManager.java b/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/AbstractManager.java
index 1c3d51b..07a1de4 100644
--- a/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/AbstractManager.java
+++ b/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/AbstractManager.java
@@ -30,7 +30,6 @@ import java.util.List;
import java.util.Properties;
import com.datastax.driver.core.Cluster;
-import com.datastax.driver.core.ProtocolOptions.Compression;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
@@ -40,7 +39,6 @@ import com.datastax.driver.core.exceptions.NoHostAvailableException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.rhq.cassandra.util.ClusterBuilder;
import org.rhq.core.util.obfuscation.PicketBoxObfuscator;
/**
@@ -65,18 +63,21 @@ abstract class AbstractManager {
private Cluster cluster;
private Session session;
+ private SessionManager sessionManager;
private final String username;
private final String password;
private final int cqlPort;
private final String[] nodes;
private final UpdateFile managementTasks;
- protected AbstractManager(String username, String password, String[] nodes, int cqlPort) {
+ protected AbstractManager(String username, String password, String[] nodes, int cqlPort,
+ SessionManager sessionManager) {
try {
this.username = username;
this.password = password;
this.cqlPort = cqlPort;
this.nodes = nodes;
+ this.sessionManager = sessionManager;
} catch (NoHostAvailableException e) {
throw new RuntimeException("Unable create storage node session.", e);
}
@@ -104,17 +105,7 @@ abstract class AbstractManager {
* @param password
*/
protected void initClusterSession(String username, String password) {
- shutdownClusterConnection();
-
- log.info("Initializing storage node session.");
-
- cluster = new ClusterBuilder().addContactPoints(nodes).withCredentialsObfuscated(username, password)
- .withPort(this.getCqlPort()).withCompression(Compression.NONE).build();
-
- log.info("Cluster connection configured.");
-
- session = cluster.connect("system");
- log.info("Cluster connected.");
+ sessionManager.initSession(username, password, cqlPort, nodes);
}
/**
@@ -122,18 +113,14 @@ abstract class AbstractManager {
*/
protected void shutdownClusterConnection() {
log.info("Shutting down existing cluster connections");
- if (cluster != null) {
- cluster.shutdown();
- }
+ sessionManager.shutdownCluster();
}
/**
- * Get storage cluster size.
- *
- * @return cluster size
+ * @return The actual size of the cluster which includes both specified and discovered nodes
*/
- protected int getClusterSize() {
- return nodes.length;
+ protected int getActualClusterSize() {
+ return sessionManager.getSession().getCluster().getMetadata().getAllHosts().size();
}
/**
@@ -222,9 +209,10 @@ abstract class AbstractManager {
*/
protected int calculateNewReplicationFactor() {
int replicationFactor;
- if (getClusterSize() < 3) {
- replicationFactor = getClusterSize();
- } else if (getClusterSize() < 4) {
+ int actualClusterSize = getActualClusterSize();
+ if (actualClusterSize < 3) {
+ replicationFactor = actualClusterSize;
+ } else if (actualClusterSize < 4) {
replicationFactor = 2;
} else {
replicationFactor = 3;
@@ -362,7 +350,8 @@ abstract class AbstractManager {
* @return result for the query
*/
protected ResultSet execute(String query) {
- return session.execute(query);
+// return session.execute(query);
+ return sessionManager.getSession().execute(query);
}
}
diff --git a/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/SchemaManager.java b/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/SchemaManager.java
index 1e67b1f..31b3137 100644
--- a/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/SchemaManager.java
+++ b/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/SchemaManager.java
@@ -27,6 +27,7 @@ package org.rhq.cassandra.schema;
import java.util.Arrays;
import java.util.List;
+import java.util.Set;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
@@ -60,6 +61,8 @@ public class SchemaManager {
*/
private final int cqlPort;
+ private SessionManager sessionManager;
+
/**
*
* @param username The username RHQ will use to connect to the storage cluster
@@ -73,6 +76,7 @@ public class SchemaManager {
this.password = password;
this.cqlPort = cqlPort;
this.nodes = nodes;
+ sessionManager = new SessionManager();
}
/**
@@ -84,10 +88,7 @@ public class SchemaManager {
* @param cqlPort The native CQL port for the storage cluster
*/
public SchemaManager(String username, String password, List<String> nodes, int cqlPort) {
- this.username = username;
- this.password = password;
- this.cqlPort = cqlPort;
- this.nodes = nodes.toArray(new String[nodes.size()]);
+ this(username, password, nodes.toArray(new String[nodes.size()]), cqlPort);
}
/**
@@ -96,7 +97,7 @@ public class SchemaManager {
* @throws Exception
*/
public void install() throws Exception {
- VersionManager version = new VersionManager(username, password, nodes, cqlPort);
+ VersionManager version = new VersionManager(username, password, nodes, cqlPort, sessionManager);
version.install();
}
@@ -107,7 +108,7 @@ public class SchemaManager {
* @throws Exception
*/
public void checkCompatibility() throws Exception {
- VersionManager version = new VersionManager(username, password, nodes, cqlPort);
+ VersionManager version = new VersionManager(username, password, nodes, cqlPort, sessionManager);
version.checkCompatibility();
}
@@ -117,7 +118,7 @@ public class SchemaManager {
* @throws Exception
*/
public void drop() throws Exception {
- VersionManager version = new VersionManager(username, password, nodes, cqlPort);
+ VersionManager version = new VersionManager(username, password, nodes, cqlPort, sessionManager);
version.drop();
}
@@ -129,10 +130,14 @@ public class SchemaManager {
* @throws Exception
*/
public void updateTopology() throws Exception {
- TopologyManager topology = new TopologyManager(username, password, nodes, cqlPort);
+ TopologyManager topology = new TopologyManager(username, password, nodes, cqlPort, sessionManager);
topology.updateTopology();
}
+ public void shutdown() {
+ sessionManager.shutdownCluster();
+ }
+
/**
* Returns the list of storage nodes.
*
@@ -142,6 +147,10 @@ public class SchemaManager {
return nodes;
}
+ public Set<String> getStorageNodeAddresses() {
+ return sessionManager.getNodeAdresses();
+ }
+
/**
* A main runner used for direct usage of the schema manager.
*
diff --git a/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/TopologyManager.java b/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/TopologyManager.java
index 481c006..f56e3a0 100644
--- a/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/TopologyManager.java
+++ b/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/TopologyManager.java
@@ -52,8 +52,9 @@ class TopologyManager extends AbstractManager {
}
}
- public TopologyManager(String username, String password, String[] nodes, int cqlPort) {
- super(username, password, nodes, cqlPort);
+ public TopologyManager(String username, String password, String[] nodes, int cqlPort,
+ SessionManager sessionManager) {
+ super(username, password, nodes, cqlPort, sessionManager);
}
/**
@@ -64,17 +65,13 @@ class TopologyManager extends AbstractManager {
* @return true if update successful, false otherwise.
*/
public void updateTopology() {
- try {
- initClusterSession();
- if (schemaExists()) {
- log.info("Applying topology updates...");
- updateReplicationFactor();
- updateGCGrace();
- } else {
- log.info("Topology updates cannot be applied because the schema is not installed.");
- }
- } finally {
- shutdownClusterConnection();
+ initClusterSession();
+ if (schemaExists()) {
+ log.info("Applying topology updates...");
+ updateReplicationFactor();
+ updateGCGrace();
+ } else {
+ log.info("Topology updates cannot be applied because the schema is not installed.");
}
}
@@ -106,7 +103,7 @@ class TopologyManager extends AbstractManager {
log.info("Starting to execute " + Task.UpdateGCGrace + " task.");
int gcGraceSeconds = 864000;
- if (getClusterSize() == 1) {
+ if (getActualClusterSize() == 1) {
gcGraceSeconds = 0;
} else {
gcGraceSeconds = 691200; // 8 days
diff --git a/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/VersionManager.java b/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/VersionManager.java
index 4c77b08..2f89df5 100644
--- a/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/VersionManager.java
+++ b/modules/common/cassandra-schema/src/main/java/org/rhq/cassandra/schema/VersionManager.java
@@ -63,8 +63,9 @@ class VersionManager extends AbstractManager {
}
}
- public VersionManager(String username, String password, String[] nodes, int cqlPort) throws Exception {
- super(username, password, nodes, cqlPort);
+ public VersionManager(String username, String password, String[] nodes, int cqlPort, SessionManager sessionManager)
+ throws Exception {
+ super(username, password, nodes, cqlPort, sessionManager);
}
/**
@@ -84,8 +85,9 @@ class VersionManager extends AbstractManager {
} catch (AuthenticationException e) {
log.debug("Authentication exception. Will now attempt to create the storage schema.");
log.debug(e);
- } finally {
shutdownClusterConnection();
+ } finally {
+ //shutdownClusterConnection();
}
if (!clusterSessionInitialized) {
@@ -101,13 +103,8 @@ class VersionManager extends AbstractManager {
* @throws Exception
*/
private void create() throws Exception {
- UpdateFolder updateFolder = new UpdateFolder(Task.Create.getFolder());
-
- Properties properties = new Properties(System.getProperties());
- properties.put("replication_factor", calculateNewReplicationFactor() + "");
- properties.put("cassandra_user_password", UUID.randomUUID() + "");
- properties.put("rhq_admin_username", getUsername());
- properties.put("rhq_admin_password", getPassword());
+ UpdateFolder updateFolder = null;
+ Properties properties = null;
/**
* NOTE: Before applying any schema, we need to create the rhqadmin user. If we have more
@@ -118,6 +115,15 @@ class VersionManager extends AbstractManager {
//1. Execute the creation of RHQ schema, version table, admin user.
try {
initClusterSession(DEFAULT_CASSANDRA_USER, DEFAULT_CASSANDRA_PASSWORD);
+
+ updateFolder = new UpdateFolder(Task.Create.getFolder());
+
+ properties = new Properties(System.getProperties());
+ properties.put("replication_factor", calculateNewReplicationFactor() + "");
+ properties.put("cassandra_user_password", UUID.randomUUID() + "");
+ properties.put("rhq_admin_username", getUsername());
+ properties.put("rhq_admin_password", getPassword());
+
if (!schemaExists()) {
execute(updateFolder.getUpdateFiles().get(0), properties);
} else {
@@ -131,12 +137,8 @@ class VersionManager extends AbstractManager {
}
//2. Change Cassandra default user privileges and password.
- try {
- initClusterSession();
- execute(updateFolder.getUpdateFiles().get(1), properties);
- } finally {
- shutdownClusterConnection();
- }
+ initClusterSession();
+ execute(updateFolder.getUpdateFiles().get(1), properties);
}
/**
@@ -145,52 +147,49 @@ class VersionManager extends AbstractManager {
* @throws Exception
*/
private void update() throws Exception {
- try {
- initClusterSession();
+ initClusterSession();
- if (!schemaExists()) {
- log.error("Storage schema not installed.");
- throw new RuntimeException("Storage schema not installed propertly, cannot apply schema updates.");
- }
+ if (!schemaExists()) {
+ log.error("Storage schema not installed.");
+ throw new RuntimeException("Storage schema not installed propertly, cannot apply schema updates.");
+ }
- UpdateFolder updateFolder = new UpdateFolder(Task.Update.getFolder());
+ UpdateFolder updateFolder = new UpdateFolder(Task.Update.getFolder());
- int installedSchemaVersion = getInstalledSchemaVersion();
- log.info("Installed storage schema version is " + installedSchemaVersion);
+ int installedSchemaVersion = getInstalledSchemaVersion();
+ log.info("Installed storage schema version is " + installedSchemaVersion);
- int requiredSchemaVersion = updateFolder.getLatestVersion();
- log.info("Required storage schema version is " + requiredSchemaVersion);
+ int requiredSchemaVersion = updateFolder.getLatestVersion();
+ log.info("Required storage schema version is " + requiredSchemaVersion);
- if (requiredSchemaVersion == installedSchemaVersion) {
- log.info("Storage schema version is current ( " + installedSchemaVersion + " ). No updates applied.");
- } else if (requiredSchemaVersion < installedSchemaVersion) {
- log.error("Installed storage cluster schema version: " + installedSchemaVersion +
- ". Required schema version: " + requiredSchemaVersion
- + ". Storage cluster schema has been updated beyond the capability of the existing server installation.");
- throw new InstalledSchemaTooAdvancedException();
- } else {
- log.info("Storage schema requires udpates. Updating from version " + installedSchemaVersion
- + " to version " + requiredSchemaVersion + ".");
+ if (requiredSchemaVersion == installedSchemaVersion) {
+ log.info("Storage schema version is current ( " + installedSchemaVersion + " ). No updates applied.");
+ } else if (requiredSchemaVersion < installedSchemaVersion) {
+ log.error("Installed storage cluster schema version: " + installedSchemaVersion +
+ ". Required schema version: " + requiredSchemaVersion
+ +
+ ". Storage cluster schema has been updated beyond the capability of the existing server installation.");
+ throw new InstalledSchemaTooAdvancedException();
+ } else {
+ log.info("Storage schema requires udpates. Updating from version " + installedSchemaVersion
+ + " to version " + requiredSchemaVersion + ".");
- updateFolder.removeAppliedUpdates(installedSchemaVersion);
+ updateFolder.removeAppliedUpdates(installedSchemaVersion);
- if (updateFolder.getUpdateFiles().size() == 0) {
- log.info("Storage schema is current! No updates applied.");
- } else {
- for (UpdateFile updateFile : updateFolder.getUpdateFiles()) {
- execute(updateFile);
+ if (updateFolder.getUpdateFiles().size() == 0) {
+ log.info("Storage schema is current! No updates applied.");
+ } else {
+ for (UpdateFile updateFile : updateFolder.getUpdateFiles()) {
+ execute(updateFile);
- Properties versionProperties = new Properties();
- versionProperties.put("version", updateFile.extractVersion() + "");
- versionProperties.put("time", System.currentTimeMillis() + "");
- executeManagementQuery(Query.INSERT_SCHEMA_VERSION, versionProperties);
+ Properties versionProperties = new Properties();
+ versionProperties.put("version", updateFile.extractVersion() + "");
+ versionProperties.put("time", System.currentTimeMillis() + "");
+ executeManagementQuery(Query.INSERT_SCHEMA_VERSION, versionProperties);
- log.info("Storage schema update " + updateFile + " applied.");
- }
+ log.info("Storage schema update " + updateFile + " applied.");
}
}
- } finally {
- shutdownClusterConnection();
}
}
@@ -246,8 +245,6 @@ class VersionManager extends AbstractManager {
}
} catch (Exception e) {
throw new RuntimeException(e);
- } finally {
- shutdownClusterConnection();
}
}
@@ -292,8 +289,6 @@ class VersionManager extends AbstractManager {
} catch (Exception e3) {
throw new RuntimeException(e3);
} finally {
- shutdownClusterConnection();
-
log.info("Completed storage schema compatibility check.");
}
}
diff --git a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java
index 6f426b2..9dcdbc9 100644
--- a/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java
+++ b/modules/enterprise/server/installer/src/main/java/org/rhq/enterprise/server/installer/InstallerServiceImpl.java
@@ -22,6 +22,8 @@ import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -29,10 +31,12 @@ import java.util.Map;
import java.util.Properties;
import java.util.Random;
import java.util.Set;
+import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.datastax.driver.core.exceptions.AuthenticationException;
+import com.google.common.collect.ImmutableSet;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -536,9 +540,9 @@ public class InstallerServiceImpl implements InstallerService {
}
SchemaManager storageNodeSchemaManager = null;
+ Set<String> storageNodeAddresses = Collections.emptySet();
try {
storageNodeSchemaManager = createStorageNodeSchemaManager(serverProperties);
-
if (ExistingSchemaOption.SKIP != existingSchemaOptionEnum) {
if (ExistingSchemaOption.OVERWRITE == existingSchemaOptionEnum) {
log("Storage cluster schema exists but installer was told to overwrite it - a the existing schema will be "
@@ -552,13 +556,18 @@ public class InstallerServiceImpl implements InstallerService {
log("Install RHQ schema along with updates to storage nodes.");
storageNodeSchemaManager.install();
storageNodeSchemaManager.updateTopology();
+ storageNodeAddresses = storageNodeSchemaManager.getStorageNodeAddresses();
} catch (SchemaNotInstalledException e2) {
log("Install RHQ schema along with updates to storage nodes.");
storageNodeSchemaManager.install();
storageNodeSchemaManager.updateTopology();
+ storageNodeAddresses = storageNodeSchemaManager.getStorageNodeAddresses();
} catch (InstalledSchemaTooOldException e3) {
log("Install RHQ schema updates to storage cluster.");
storageNodeSchemaManager.install();
+ storageNodeAddresses = storageNodeSchemaManager.getStorageNodeAddresses();
+ } finally {
+ storageNodeSchemaManager.shutdown();
}
} else {
log("Ignoring storage cluster schema - installer will assume it exists and is already up-to-date.");
@@ -572,7 +581,7 @@ public class InstallerServiceImpl implements InstallerService {
// ensure the server info is up to date and stored in the DB
ServerInstallUtil.storeServerDetails(serverProperties, clearTextDbPassword, serverDetails);
ServerInstallUtil.persistStorageNodesIfNecessary(serverProperties, clearTextDbPassword,
- parseNodeInformation(serverProperties));
+ parseNodeInformation(serverProperties, storageNodeAddresses));
ServerInstallUtil.persistStorageClusterSettingsIfNecessary(serverProperties, clearTextDbPassword);
// For sanity, make sure the server props file is in sync with the db settings.
@@ -1197,26 +1206,35 @@ public class InstallerServiceImpl implements InstallerService {
}
}
- private List<StorageNode> parseNodeInformation(Map<String, String> serverProps) {
- String[] nodes = serverProps.get(ServerProperties.PROP_STORAGE_NODES).split(",");
- String cqlPort = serverProps.get(ServerProperties.PROP_STORAGE_CQL_PORT);
+ private Set<StorageNode> parseNodeInformation(Map<String, String> serverProps, Set<String> storageNodeAddresses) {
+ int cqlPort = Integer.parseInt(serverProps.get(ServerProperties.PROP_STORAGE_CQL_PORT));
- List<StorageNode> parsedNodes = new ArrayList<StorageNode>();
- for (String node : nodes) {
- StorageNode storageNode = new StorageNode();
- storageNode.setAddress(node);
- storageNode.setCqlPort(Integer.parseInt(cqlPort));
- parsedNodes.add(storageNode);
+ Set<StorageNode> parsedNodes = new TreeSet<StorageNode>(new Comparator<StorageNode>() {
+ @Override
+ public int compare(StorageNode left, StorageNode right) {
+ return left.getAddress().compareTo(right.getAddress());
+ }
+ });
+ for (String address : storageNodeAddresses) {
+ StorageNode node = new StorageNode();
+ node.setAddress(address);
+ node.setCqlPort(cqlPort);
+ parsedNodes.add(node);
}
return parsedNodes;
}
+ private Set<StorageNode> parseNodeInformation(Map<String, String> serverProps) {
+ return parseNodeInformation(serverProps, ImmutableSet.copyOf(serverProps.get(
+ ServerProperties.PROP_STORAGE_NODES).split(",")));
+ }
+
private SchemaManager createStorageNodeSchemaManager(Map<String, String> serverProps) {
String username = serverProps.get(ServerProperties.PROP_STORAGE_USERNAME);
String password = serverProps.get(ServerProperties.PROP_STORAGE_PASSWORD);
- List<StorageNode> storageNodes = this.parseNodeInformation(serverProps);
+ List<StorageNode> storageNodes = new ArrayList<StorageNode>(parseNodeInformation(serverProps));
String[] nodes = new String[storageNodes.size()];
for (int index = 0; index < storageNodes.size(); index++) {
nodes[index] = storageNodes.get(index).getAddress();
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 751d2b0..b4db4e0 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
@@ -36,6 +36,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import javax.security.auth.login.AppConfigurationEntry;
@@ -912,7 +913,7 @@ public class ServerInstallUtil {
* @throws Exception
*/
public static void persistStorageNodesIfNecessary(HashMap<String, String> serverProperties, String password,
- List<StorageNode> storageNodes) throws Exception {
+ Set<StorageNode> storageNodes) throws Exception {
DatabaseType db = null;
Connection connection = null;
Statement queryStatement = null;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java
index 98d1405..c57d7cd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManagerBean.java
@@ -176,6 +176,8 @@ public class StorageClientManagerBean {
throw e;
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
+ } finally {
+ schemaManager.shutdown();
}
}
diff --git a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/CassandraIntegrationTest.java b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/CassandraIntegrationTest.java
index 07bcedb..f7125e5 100644
--- a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/CassandraIntegrationTest.java
+++ b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/CassandraIntegrationTest.java
@@ -75,7 +75,7 @@ public class CassandraIntegrationTest {
dateTimeService = new DateTimeService();
Cluster cluster = new ClusterBuilder()
- .addContactPoints("127.0.0.1", "127.0.0.2")
+ .addContactPoints("127.0.0.1")
.withCredentialsObfuscated(RHQADMIN, RHQADMIN_PASSWORD)
.build();
diff --git a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
index 9744ef2..63bdbea 100644
--- a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
+++ b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
@@ -152,13 +152,15 @@ public class Simulator implements ShutdownManager {
}
private void createSchema(String[] nodes, int cqlPort) {
+ SchemaManager schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc", nodes,
+ cqlPort);
try {
log.info("Creating schema");
- SchemaManager schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc", nodes,
- cqlPort);
schemaManager.install();
} catch (Exception e) {
throw new RuntimeException("Failed to start simulator. An error occurred during schema creation.", e);
+ } finally {
+ schemaManager.shutdown();
}
}
diff --git a/modules/plugins/rhq-storage/src/test/java/org/rhq/plugins/storage/StorageNodeComponentITest.java b/modules/plugins/rhq-storage/src/test/java/org/rhq/plugins/storage/StorageNodeComponentITest.java
index bae3c1d..67fed0c 100644
--- a/modules/plugins/rhq-storage/src/test/java/org/rhq/plugins/storage/StorageNodeComponentITest.java
+++ b/modules/plugins/rhq-storage/src/test/java/org/rhq/plugins/storage/StorageNodeComponentITest.java
@@ -120,34 +120,6 @@ public class StorageNodeComponentITest {
deploymentOptions.setHeapNewSize("64M");
deploymentOptions.load();
-
-// Deployer deployer = new Deployer();
-// deployer.setDeploymentOptions(deploymentOptions);
-//
-// deployer.unzipDistro();
-// deployer.applyConfigChanges();
-// deployer.updateFilePerms();
-// deployer.updateStorageAuthConf(Sets.newHashSet(node1Address, node2Address));
-//
-// File confDir = new File(basedir, "conf");
-// File cassandraJvmPropsFile = new File(confDir, "cassandra-jvm.properties");
-// PropertiesFileUpdate propertiesUpdater = new PropertiesFileUpdate(cassandraJvmPropsFile.getAbsolutePath());
-// Properties properties = propertiesUpdater.loadExistingProperties();
-//
-// String jvmOpts = properties.getProperty("JVM_OPTS");
-// jvmOpts = jvmOpts.substring(0, jvmOpts.lastIndexOf("\""));
-// jvmOpts = jvmOpts + " -Dcassandra.ring_delay_ms=100\"";
-// properties.setProperty("JVM_OPTS", jvmOpts);
-//
-// propertiesUpdater.update(properties);
-//
-// File binDir = new File(basedir, "bin");
-// SystemInfo systemInfo = SystemInfoFactory.createSystemInfo();
-//
-// ProcessExecution processExecution = getProcessExecution(binDir);
-// ProcessExecutionResults results = systemInfo.executeProcess(processExecution);
-//
-// assertEquals(results.getExitCode(), (Integer) 0, "Cassandra failed to start: " + results.getCapturedOutput());
doDeployment(deploymentOptions);
String[] addresses = new String[] {"127.0.0.1"};
@@ -158,8 +130,12 @@ public class StorageNodeComponentITest {
SchemaManager schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc",
addresses, 9142);
- schemaManager.install();
- schemaManager.updateTopology();
+ try {
+ schemaManager.install();
+ schemaManager.updateTopology();
+ } finally {
+ schemaManager.shutdown();
+ }
}
private void doDeployment(DeploymentOptions deploymentOptions) throws Exception {
10 years, 7 months