[rhq] modules/enterprise
by John Sanda
modules/enterprise/server/plugins/drift-mongodb/pom.xml | 4
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAO.java | 8
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java | 9 -
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java | 83 ----------
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java | 73 +++++++-
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java | 42 +++--
6 files changed, 113 insertions(+), 106 deletions(-)
New commits:
commit 414a565741e3f4e842261f03f300489c96bbc6c3
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Sep 23 11:01:22 2011 -0400
Adding more drift criteria query support
diff --git a/modules/enterprise/server/plugins/drift-mongodb/pom.xml b/modules/enterprise/server/plugins/drift-mongodb/pom.xml
index 1f49403..b5eefb7 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/pom.xml
+++ b/modules/enterprise/server/plugins/drift-mongodb/pom.xml
@@ -48,13 +48,13 @@
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
- <version>2.6.3</version>
+ <version>2.6.5</version>
</dependency>
<dependency>
<groupId>com.google.code.morphia</groupId>
<artifactId>morphia</artifactId>
- <version>0.99</version>
+ <version>1.00-SNAPSHOT</version>
</dependency>
<dependency>
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAO.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAO.java
index 7e6e7b8..1f4f96c 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAO.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAO.java
@@ -64,6 +64,14 @@ public class ChangeSetDAO extends BasicDAO<MongoDBChangeSet, ObjectId> {
query.field("files.category").in(asList(criteria.getFilterCategories()));
}
+ if (criteria.getFilterStartTime() != null) {
+ query.field("files.ctime").greaterThanOrEq(criteria.getFilterStartTime());
+ }
+
+ if (criteria.getFilterEndTime() != null) {
+ query.field("files.ctime").lessThanOrEq(criteria.getFilterEndTime());
+ }
+
return query.asList();
}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java
index 869b6b3..33fadf5 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java
@@ -23,6 +23,7 @@ import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
@@ -41,8 +42,12 @@ public class FileDAO {
gridFS = new GridFS(this.db);
}
- public GridFSDBFile findOne(String hash) {
- return gridFS.findOne(new BasicDBObject("_id", hash));
+ public InputStream findOne(String hash) {
+ GridFSDBFile dbFile = gridFS.findOne(new BasicDBObject("_id", hash));
+ if (dbFile == null) {
+ return null;
+ }
+ return dbFile.getInputStream();
}
public void save(File file) throws IOException {
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java
deleted file mode 100644
index da14b84..0000000
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2011 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.enterprise.server.plugins.drift.mongodb;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-
-import com.mongodb.DB;
-import com.mongodb.Mongo;
-import com.mongodb.gridfs.GridFS;
-import com.mongodb.gridfs.GridFSDBFile;
-import com.mongodb.gridfs.GridFSInputFile;
-
-import org.bson.types.ObjectId;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import org.rhq.core.util.stream.StreamUtil;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-public class GridFSTest {
-
- // Tests need to be disabled when committed/pushed to the remote repo until we get
- // mongodb installed on the hudson slave
- static final boolean ENABLED = false;
-
- Mongo connection;
-
- DB db;
-
- @BeforeClass
- public void initDB() throws Exception {
- connection = new Mongo("localhost");
- connection.dropDatabase("rhqtest");
- db = connection.getDB("rhqtest");
-
- }
-
- @Test(enabled = ENABLED)
- public void writeAndReadFile() throws Exception {
- GridFS gridFS = new GridFS(db);
- File file = new File("/home/jsanda/clojure-plugin.tar");
- GridFSInputFile inputFile = gridFS.createFile(new FileInputStream(file), file.getName());
-
- inputFile.save();
-
- FileOutputStream stream = new FileOutputStream("/home/jsanda/gridfs-test.tar");
- GridFSDBFile gridFSDBFile = gridFS.findOne((ObjectId) inputFile.getId());
- gridFSDBFile.writeTo(stream);
-
- GridFSDBFile dbFile = gridFS.findOne(file.getName());
- assertNotNull(dbFile);
-
- File outputFile = new File("/tmp/clojure-plugin.tar");
- outputFile.delete();
-
- StreamUtil.copy(dbFile.getInputStream(), new BufferedOutputStream(new FileOutputStream(outputFile)), true);
-
- assertEquals(outputFile.length(), file.length());
- }
-
-}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
index bfcc480..f95026a 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
@@ -64,7 +64,7 @@ public class ChangeSetDAOTest {
@BeforeClass
public void initDB() throws Exception {
- connection = new Mongo("localhost");
+ connection = new Mongo("127.0.0.1");
morphia = new Morphia()
.map(MongoDBChangeSet.class)
@@ -259,15 +259,68 @@ public class ChangeSetDAOTest {
assertChangeSetMatches("Failed to find change set by drift criteria with id filter.", c1, actual.get(0));
}
-// @Test
-// public void testSlice() throws Exception {
-// MongoDBChangeSet c1 = createChangeSet(DRIFT, 2, 1, 1)
-// .add(new MongoDBChangeSetEntry("c2-1.txt", FILE_ADDED))
-// .add(new MongoDBChangeSetEntry("c1-1.txt", FILE_CHANGED));
-// dao.save(c1);
-//
-// dao.createQuery().filter("files $slice", new Integer(1));
-// }
+ @Test(enabled = ENABLED)
+ public void findDriftCriteriaWithStartTimeFilter() throws Exception {
+ int resourceId = 1;
+
+ MongoDBChangeSet c1 = createChangeSet(COVERAGE, 1, resourceId, 1);
+ MongoDBChangeSetEntry e1 = new MongoDBChangeSetEntry("c1-1.txt", FILE_ADDED);
+ c1.add(e1);
+
+ dao.save(c1);
+
+ long startTime = System.currentTimeMillis();
+ Thread.sleep(10);
+
+ MongoDBChangeSet c2 = createChangeSet(DRIFT, 2, resourceId, 1);
+ MongoDBChangeSetEntry e2 = new MongoDBChangeSetEntry("c1-1.txt", FILE_CHANGED);
+ c2.add(e2);
+
+ dao.save(c2);
+
+ GenericDriftCriteria criteria = new GenericDriftCriteria();
+ criteria.addFilterResourceIds(resourceId);
+ criteria.addFilterStartTime(startTime);
+
+ List<MongoDBChangeSet> actual = dao.findByDriftCriteria(criteria);
+
+ assertEquals("Expected to get back one change set", 1, actual.size());
+ MongoDBChangeSet actualChangeSet = actual.get(0);
+
+ assertChangeSetMatches("Failed to find drift entries by drift criteria with start time filter",
+ c2, actualChangeSet);
+ }
+
+ @Test(enabled = ENABLED)
+ public void findDriftCriteriaWithEndTimeFilter() throws Exception {
+ int resourceId = 1;
+
+ MongoDBChangeSet c1 = createChangeSet(COVERAGE, 1, resourceId, 1);
+ MongoDBChangeSetEntry e1 = new MongoDBChangeSetEntry("c1-1.txt", FILE_ADDED);
+ c1.add(e1);
+
+ dao.save(c1);
+
+ long endTime = System.currentTimeMillis();
+ Thread.sleep(10);
+
+ MongoDBChangeSet c2 = createChangeSet(DRIFT, 2, resourceId, 1);
+ MongoDBChangeSetEntry e2 = new MongoDBChangeSetEntry("c1-1.txt", FILE_CHANGED);
+ c2.add(e2);
+
+ dao.save(c2);
+
+ GenericDriftCriteria criteria = new GenericDriftCriteria();
+ criteria.addFilterEndTime(endTime);
+ criteria.addFilterResourceIds(resourceId);
+
+ List<MongoDBChangeSet> actual = dao.findByDriftCriteria(criteria);
+
+ assertEquals("Expected to get back one change set", 1, actual.size());
+ MongoDBChangeSet actualChangeSet = actual.get(0);
+
+ assertChangeSetMatches("Failed to find drift entries with end time filter", c1, actualChangeSet);
+ }
/**
* This method first checks that the actual change set is not null. It then performs a
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java
index ce2af01..9ad3f6a 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java
@@ -23,6 +23,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.util.Random;
import com.google.code.morphia.Datastore;
@@ -71,7 +72,7 @@ public class FileDAOTest {
@BeforeClass
public void initDB() throws Exception {
- connection = new Mongo("localhost");
+ connection = new Mongo("127.0.0.1");
morphia = new Morphia()
.map(MongoDBChangeSet.class)
@@ -100,33 +101,56 @@ public class FileDAOTest {
@Test(enabled = ENABLED)
public void findFile() throws Exception {
- File file = createRandomFile("findFile.expected");
+ File file = createRandomFile();
String hash = sha256(file);
GridFSInputFile inputFile = gridFS.createFile(new FileInputStream(file));
inputFile.put("_id", hash);
inputFile.save();
- GridFSDBFile dbFile = dao.findOne(hash);
+ InputStream dbInputStream = dao.findOne(hash);
- assertNotNull(dbFile, "Expected to find file with name " + hash);
+ assertNotNull(dbInputStream, "Expected to find file with name " + hash);
File actualFile = new File(dataDir, "findFile.actual");
- StreamUtil.copy(dbFile.getInputStream(), new FileOutputStream(actualFile), true);
+ StreamUtil.copy(dbInputStream, new FileOutputStream(actualFile), true);
- assertTrue(actualFile.exists(), "Expected to file " + actualFile.getPath());
+ assertTrue(actualFile.exists(), "Expected to find file " + actualFile.getPath());
}
- private File createRandomFile(String fileName) throws Exception {
- File file = new File(dataDir, fileName);
- FileOutputStream stream = new FileOutputStream(file);
+ @Test(enabled = ENABLED)
+ public void saveAndFindFile() throws Exception {
+ File file = createRandomFile();
+ String hash = file.getName();
+
+ dao.save(file);
+ InputStream dbInputStream = dao.findOne(hash);
+
+ assertNotNull(dbInputStream, "Expected to find file with name " + hash);
+ File actualFile = new File(dataDir, "saveAndFindFile.actual");
+ StreamUtil.copy(dbInputStream, new FileOutputStream(actualFile), true);
+
+ assertTrue(actualFile.exists(), "Expected to find file " + actualFile.getPath());
+ }
+
+ private File createRandomFile() throws Exception {
byte[] bytes = new byte[32];
random.nextBytes(bytes);
+ File file = new File(dataDir, sha256(bytes));
+ FileOutputStream stream = new FileOutputStream(file);
write(bytes, stream);
stream.close();
return file;
}
+ protected String sha256(byte[] bytes) {
+ try {
+ return digestGenerator.calcDigestString(bytes);
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to calculate SHA-256 hash", e);
+ }
+ }
+
protected String sha256(File file) {
try {
return digestGenerator.calcDigestString(file);
12 years, 9 months
[rhq] Branch 'heiko-rest' - modules/enterprise
by Heiko W. Rupp
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerBean.java | 5 ++++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerLocal.java | 2 ++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/domain/MetricSchedule.java | 8 ++++----
modules/enterprise/server/jar/src/main/resources/rest_templates/metricSchedule.ftl | 2 +-
4 files changed, 11 insertions(+), 6 deletions(-)
New commits:
commit 34e74b6fbb6dc128698d9e3faca008ae5357c793
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Sep 22 11:38:56 2011 -0400
Start support for updating of schedules.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerBean.java
index b6271bb..3ff403d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerBean.java
@@ -154,11 +154,14 @@ public class MetricHandlerBean extends AbstractRestBean implements MetricHandle
if (in==null)
throw new StuffNotFoundException("Input is null"); // TODO other type of exception
+ if (in.getScheduleId()==null)
+ throw new StuffNotFoundException("Invalid input data");
+
MeasurementSchedule schedule = scheduleManager.getScheduleById(caller, scheduleId);
if (schedule==null)
throw new StuffNotFoundException("Schedule with id " + scheduleId);
- schedule.setEnabled(in.isEnabled());
+ schedule.setEnabled(in.getEnabled());
schedule.setInterval(in.getCollectionInterval());
scheduleManager.updateSchedule(caller, schedule);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerLocal.java
index 572f341..572fe5b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/MetricHandlerLocal.java
@@ -21,6 +21,7 @@ package org.rhq.enterprise.server.rest;
import java.util.List;
import javax.ejb.Local;
+import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@@ -75,6 +76,7 @@ public interface MetricHandlerLocal {
@PUT
@Path("/schedule/{id}")
+ @Consumes("application/json")
MetricSchedule updateSchedule(@PathParam("id") int scheduleId, MetricSchedule in);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/domain/MetricSchedule.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/domain/MetricSchedule.java
index 02a1cba..efa6361 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/domain/MetricSchedule.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/domain/MetricSchedule.java
@@ -75,7 +75,7 @@ public class MetricSchedule {
this.scheduleName = scheduleName;
}
- public Boolean isEnabled() {
+ public Boolean getEnabled() {
return enabled;
}
@@ -115,7 +115,7 @@ public class MetricSchedule {
this.type = type;
}
- public String getEnabled() {
- return String.valueOf(enabled);
- }
+// public String getEnabled() {
+// return String.valueOf(enabled);
+// }
}
diff --git a/modules/enterprise/server/jar/src/main/resources/rest_templates/metricSchedule.ftl b/modules/enterprise/server/jar/src/main/resources/rest_templates/metricSchedule.ftl
index 30c8be0..26360e5 100644
--- a/modules/enterprise/server/jar/src/main/resources/rest_templates/metricSchedule.ftl
+++ b/modules/enterprise/server/jar/src/main/resources/rest_templates/metricSchedule.ftl
@@ -37,7 +37,7 @@
<td>Name</td><td>${var.displayName}</td>
</tr>
<tr>
- <td>Enabled</td><td>${var.enabled}</td>
+ <td>Enabled</td><td>${var.enabled?string("Yes","No")}</td>
</tr>
<tr>
<td>Collection interval (ms)</td><td>${var.collectionInterval}</td>
12 years, 9 months
[rhq] modules/enterprise
by John Sanda
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java | 53 ++++++++++
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java | 14 ++
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBChangeSetEntry.java | 22 +++-
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java | 11 ++
4 files changed, 98 insertions(+), 2 deletions(-)
New commits:
commit 7739090a34afd0d618bbdf13794eb1ecc3c13846
Author: John Sanda <jsanda(a)redhat.com>
Date: Sat Sep 17 10:55:32 2011 -0400
Updating MongoDB drift plugin to store file contents.
Now when a change set is reported by the agent, the mongodb plugin
checks the database to see if the content is already there. If it isn't,
it sends a request to the agent for the content. When the agent sends
the content, the plugin saves the bits to the database using GridFS.
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
index b37299a..ceeacfd 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
@@ -24,6 +24,8 @@ import java.io.File;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.zip.ZipEntry;
@@ -40,6 +42,7 @@ import org.rhq.common.drift.ChangeSetReader;
import org.rhq.common.drift.ChangeSetReaderImpl;
import org.rhq.common.drift.FileEntry;
import org.rhq.common.drift.Headers;
+import org.rhq.core.clientapi.agent.drift.DriftAgentService;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.DriftChangeSetCriteria;
import org.rhq.core.domain.criteria.DriftCriteria;
@@ -58,6 +61,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.file.FileUtil;
+import org.rhq.enterprise.server.agentclient.AgentClient;
import org.rhq.enterprise.server.plugin.pc.ServerPluginComponent;
import org.rhq.enterprise.server.plugin.pc.ServerPluginContext;
import org.rhq.enterprise.server.plugin.pc.drift.DriftChangeSetSummary;
@@ -68,6 +72,7 @@ import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBFile;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import static org.rhq.enterprise.server.util.LookupUtil.getAgentManager;
import static org.rhq.enterprise.server.util.LookupUtil.getResourceManager;
public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginComponent {
@@ -117,6 +122,8 @@ public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginC
ChangeSetReader reader = new ChangeSetReaderImpl(new BufferedReader(new InputStreamReader(stream)));
Headers headers = reader.getHeaders();
+ List<DriftFileDTO> missingContent = new LinkedList<DriftFileDTO>();
+
MongoDBChangeSet changeSet = new MongoDBChangeSet();
changeSet.setCategory(headers.getType());
changeSet.setResourceId(resourceId);
@@ -134,6 +141,29 @@ public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginC
MongoDBChangeSetEntry entry = new MongoDBChangeSetEntry();
entry.setCategory(fileEntry.getType());
entry.setPath(path);
+
+ switch (fileEntry.getType()) {
+ case FILE_ADDED:
+ entry.setNewFileHash(fileEntry.getNewSHA());
+ if (fileDAO.findOne(fileEntry.getNewSHA()) == null) {
+ missingContent.add(newDriftFile(fileEntry.getNewSHA()));
+ }
+ break;
+ case FILE_CHANGED:
+ entry.setOldFileHash(fileEntry.getOldSHA());
+ entry.setNewFileHash(fileEntry.getNewSHA());
+ if (fileDAO.findOne(fileEntry.getNewSHA()) == null) {
+ missingContent.add(newDriftFile(fileEntry.getNewSHA()));
+ }
+ if (fileDAO.findOne(fileEntry.getOldSHA()) == null) {
+ missingContent.add(newDriftFile(fileEntry.getNewSHA()));
+ }
+ break;
+ default: // FILE_REMOVED
+ if (fileDAO.findOne(fileEntry.getOldSHA()) == null) {
+ missingContent.add(newDriftFile(fileEntry.getOldSHA()));
+ }
+ }
changeSet.add(entry);
// we are taking advantage of the fact that we know the summary is only used by the server
@@ -146,6 +176,13 @@ public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginC
}
ds.save(changeSet);
+
+ if (!missingContent.isEmpty()) {
+ AgentClient agent = getAgentManager().getAgentClient(subject, resourceId);
+ DriftAgentService driftService = agent.getDriftAgentService();
+ driftService.requestDriftFiles(resourceId, headers, missingContent);
+ }
+
return true;
}
});
@@ -153,8 +190,24 @@ public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginC
return summary;
}
+ private DriftFileDTO newDriftFile(String hash) {
+ DriftFileDTO file = new DriftFileDTO();
+ file.setHashId(hash);
+ return file;
+ }
+
@Override
public void saveChangeSetFiles(final Subject subject, final File changeSetFilesZip) throws Exception {
+ String zipFileName = changeSetFilesZip.getName();
+ File tmpDir = new File(System.getProperty("java.io.tmpdir"));
+ File dir = new File(tmpDir, zipFileName.substring(0, zipFileName.indexOf(".")));
+ dir.mkdir();
+
+ ZipUtil.unzipFile(changeSetFilesZip, dir);
+ for (File file : dir.listFiles()) {
+ fileDAO.save(file);
+ file.delete();
+ }
}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java
index 445c3bb..869b6b3 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java
@@ -19,10 +19,16 @@
package org.rhq.enterprise.server.plugins.drift.mongodb.dao;
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
+import com.mongodb.gridfs.GridFSInputFile;
public class FileDAO {
@@ -35,8 +41,14 @@ public class FileDAO {
gridFS = new GridFS(this.db);
}
- GridFSDBFile findOne(String hash) {
+ public GridFSDBFile findOne(String hash) {
return gridFS.findOne(new BasicDBObject("_id", hash));
}
+ public void save(File file) throws IOException {
+ GridFSInputFile inputFile = gridFS.createFile(new BufferedInputStream(new FileInputStream(file)));
+ inputFile.put("_id", file.getName());
+ inputFile.save();
+ }
+
}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBChangeSetEntry.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBChangeSetEntry.java
index 737d2c1..e236266 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBChangeSetEntry.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBChangeSetEntry.java
@@ -46,6 +46,10 @@ public class MongoDBChangeSetEntry implements Drift<MongoDBChangeSet, MongoDBFil
private MongoDBFile newFile;
+ private String oldFileHash;
+
+ private String newFileHash;
+
public MongoDBChangeSetEntry() {
}
@@ -141,7 +145,23 @@ public class MongoDBChangeSetEntry implements Drift<MongoDBChangeSet, MongoDBFil
this.path = path;
}
- @Override
+ public String getOldFileHash() {
+ return oldFileHash;
+ }
+
+ public void setOldFileHash(String oldFileHash) {
+ this.oldFileHash = oldFileHash;
+ }
+
+ public String getNewFileHash() {
+ return newFileHash;
+ }
+
+ public void setNewFileHash(String newFileHash) {
+ this.newFileHash = newFileHash;
+ }
+
+ @Override
public MongoDBFile getOldDriftFile() {
return oldFile;
}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
index abdf836..a3ecfbc 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
@@ -7,6 +7,10 @@ import com.google.code.morphia.annotations.Embedded;
import org.rhq.core.domain.drift.DriftFile;
import org.rhq.core.domain.drift.DriftFileStatus;
+/**
+ * Note that this class might go away. I am not certain that it is needed. Files are
+ * stored in fs.files collection when using the GridFS API as we are.
+ */
@Embedded
public class MongoDBFile implements Serializable, DriftFile {
@@ -20,6 +24,13 @@ public class MongoDBFile implements Serializable, DriftFile {
private DriftFileStatus status;
+ public MongoDBFile() {
+ }
+
+ public MongoDBFile(String hash) {
+ this.hash = hash;
+ }
+
@Override
public String getHashId() {
return hash;
12 years, 9 months
[rhq] 3 commits - modules/enterprise
by John Sanda
modules/enterprise/server/plugins/drift-mongodb/pom.xml | 7
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java | 18 -
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java | 42 +++
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java | 1
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java | 6
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java | 17 -
modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java | 137 ++++++++++
7 files changed, 212 insertions(+), 16 deletions(-)
New commits:
commit ed114bc67ebcc61a820b4479d90ed1f04447dd77
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Sep 16 22:00:06 2011 -0400
Set the change set version from the headers
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
index 3b56711..b37299a 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
@@ -62,6 +62,7 @@ import org.rhq.enterprise.server.plugin.pc.ServerPluginComponent;
import org.rhq.enterprise.server.plugin.pc.ServerPluginContext;
import org.rhq.enterprise.server.plugin.pc.drift.DriftChangeSetSummary;
import org.rhq.enterprise.server.plugin.pc.drift.DriftServerPluginFacet;
+import org.rhq.enterprise.server.plugins.drift.mongodb.dao.FileDAO;
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet;
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSetEntry;
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBFile;
@@ -79,13 +80,14 @@ public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginC
private Datastore ds;
- static int changeSetVersions = 0;
+ private FileDAO fileDAO;
@Override
public void initialize(ServerPluginContext context) throws Exception {
connection = new Mongo("localhost");
morphia = new Morphia().map(MongoDBChangeSet.class).map(MongoDBChangeSetEntry.class).map(MongoDBFile.class);
ds = morphia.createDatastore(connection, "rhq");
+ fileDAO = new FileDAO(ds.getDB());
}
@Override
@@ -120,7 +122,7 @@ public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginC
changeSet.setResourceId(resourceId);
changeSet.setDriftConfigurationId(headers.getDriftCofigurationId());
changeSet.setDriftHandlingMode(DriftHandlingMode.normal);
- changeSet.setVersion(changeSetVersions++);
+ changeSet.setVersion(headers.getVersion());
summary.setCategory(headers.getType());
summary.setResourceId(resourceId);
commit 9953e04e402f873f5b5f7b0a73a70a51b73dcd85
Merge: 16af52a 3b0218f
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Sep 16 21:28:27 2011 -0400
Merge branch 'mongodb-drift'
commit 3b0218f80107b98a02ed0d97b31fb50cdbc8ec28
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Sep 16 11:50:08 2011 -0400
Initial commit for FileDAO and FileDAO test
The work in this commit mainly involves getting more familiar with the
GridFS which to my pleasant suprise is very easy to use. So far FileDAO
has a finder method for fething a file by id. That may be the only
finder method needed. And FileDAO test not only tests the finder but
also demonstrates writing a file to MongoDB using GridFS.
diff --git a/modules/enterprise/server/plugins/drift-mongodb/pom.xml b/modules/enterprise/server/plugins/drift-mongodb/pom.xml
index 2cb4bbf..1f49403 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/pom.xml
+++ b/modules/enterprise/server/plugins/drift-mongodb/pom.xml
@@ -70,6 +70,13 @@
<version>1.0</version>
<optional>true</optional>
</dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.4</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
index 6c51441..3b56711 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java
@@ -19,8 +19,6 @@
package org.rhq.enterprise.server.plugins.drift.mongodb;
-import static org.rhq.enterprise.server.util.LookupUtil.getResourceManager;
-
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
@@ -50,9 +48,9 @@ import org.rhq.core.domain.drift.Drift;
import org.rhq.core.domain.drift.DriftChangeSet;
import org.rhq.core.domain.drift.DriftChangeSetCategory;
import org.rhq.core.domain.drift.DriftComposite;
+import org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode;
import org.rhq.core.domain.drift.DriftFile;
import org.rhq.core.domain.drift.DriftSnapshot;
-import org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode;
import org.rhq.core.domain.drift.dto.DriftChangeSetDTO;
import org.rhq.core.domain.drift.dto.DriftDTO;
import org.rhq.core.domain.drift.dto.DriftFileDTO;
@@ -69,6 +67,8 @@ import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet
import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBFile;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import static org.rhq.enterprise.server.util.LookupUtil.getResourceManager;
+
public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginComponent {
//private final Log log = LogFactory.getLog(MongoDBDriftServer.class);
@@ -113,14 +113,12 @@ public class MongoDBDriftServer implements DriftServerPluginFacet, ServerPluginC
@Override
public boolean visit(ZipEntry zipEntry, ZipInputStream stream) throws Exception {
ChangeSetReader reader = new ChangeSetReaderImpl(new BufferedReader(new InputStreamReader(stream)));
-
Headers headers = reader.getHeaders();
+
MongoDBChangeSet changeSet = new MongoDBChangeSet();
changeSet.setCategory(headers.getType());
changeSet.setResourceId(resourceId);
- // TODO Figure out how best to handle drift config reference
- changeSet.setDriftConfigurationId(1);
- // TODO Figure out how best to handle drift config drift handling mode
+ changeSet.setDriftConfigurationId(headers.getDriftCofigurationId());
changeSet.setDriftHandlingMode(DriftHandlingMode.normal);
changeSet.setVersion(changeSetVersions++);
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java
new file mode 100644
index 0000000..445c3bb
--- /dev/null
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAO.java
@@ -0,0 +1,42 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2011 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.enterprise.server.plugins.drift.mongodb.dao;
+
+import com.mongodb.BasicDBObject;
+import com.mongodb.DB;
+import com.mongodb.gridfs.GridFS;
+import com.mongodb.gridfs.GridFSDBFile;
+
+public class FileDAO {
+
+ private DB db;
+
+ private GridFS gridFS;
+
+ public FileDAO(DB db) {
+ this.db = db;
+ gridFS = new GridFS(this.db);
+ }
+
+ GridFSDBFile findOne(String hash) {
+ return gridFS.findOne(new BasicDBObject("_id", hash));
+ }
+
+}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
index b771ae3..abdf836 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/entities/MongoDBFile.java
@@ -54,4 +54,5 @@ public class MongoDBFile implements Serializable, DriftFile {
public void setStatus(DriftFileStatus status) {
this.status = status;
}
+
}
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java
index 057dfc5..da14b84 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/GridFSTest.java
@@ -41,6 +41,10 @@ import static org.testng.Assert.assertNotNull;
public class GridFSTest {
+ // Tests need to be disabled when committed/pushed to the remote repo until we get
+ // mongodb installed on the hudson slave
+ static final boolean ENABLED = false;
+
Mongo connection;
DB db;
@@ -53,7 +57,7 @@ public class GridFSTest {
}
- @Test(enabled = false)
+ @Test(enabled = ENABLED)
public void writeAndReadFile() throws Exception {
GridFS gridFS = new GridFS(db);
File file = new File("/home/jsanda/clojure-plugin.tar");
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
index 50b4572..bfcc480 100644
--- a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/ChangeSetDAOTest.java
@@ -42,7 +42,7 @@ import static org.rhq.core.domain.drift.DriftCategory.FILE_CHANGED;
import static org.rhq.core.domain.drift.DriftCategory.FILE_REMOVED;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.DRIFT;
-import static org.rhq.core.domain.drift.DriftFileStatus.EMPTY;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode.normal;
import static org.rhq.test.AssertUtils.assertCollectionMatchesNoOrder;
import static org.rhq.test.AssertUtils.assertPropertiesMatch;
import static org.testng.Assert.assertNotNull;
@@ -89,6 +89,7 @@ public class ChangeSetDAOTest {
expected.setVersion(1);
expected.setDriftConfigurationId(1);
expected.setResourceId(1);
+ expected.setDriftHandlingMode(normal);
dao.save(expected);
MongoDBChangeSet actual = dao.get(expected.getObjectId());
@@ -108,12 +109,16 @@ public class ChangeSetDAOTest {
entry.setCategory(FILE_ADDED);
entry.setPath("foo");
- MongoDBFile file = new MongoDBFile();
- file.setDataSize(1024L);
- file.setHashId("a1b2c3d4");
- file.setStatus(EMPTY);
+ // Adding the file to the change set entry causes the test to fail because the
+ // custom assert uses the equals method when comparing the MongoDBFile objects and
+ // MongoDBFile does not implement equals/hashCode...yet.
- entry.setNewDriftFile(file);
+// MongoDBFile file = new MongoDBFile();
+// file.setDataSize(1024L);
+// file.setHashId("a1b2c3d4");
+// file.setStatus(EMPTY);
+//
+// entry.setNewDriftFile(file);
expected.add(entry);
dao.save(expected);
diff --git a/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java
new file mode 100644
index 0000000..ce2af01
--- /dev/null
+++ b/modules/enterprise/server/plugins/drift-mongodb/src/test/java/org/rhq/enterprise/server/plugins/drift/mongodb/dao/FileDAOTest.java
@@ -0,0 +1,137 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2011 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.enterprise.server.plugins.drift.mongodb.dao;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Random;
+
+import com.google.code.morphia.Datastore;
+import com.google.code.morphia.Morphia;
+import com.mongodb.BasicDBObject;
+import com.mongodb.Mongo;
+import com.mongodb.gridfs.GridFS;
+import com.mongodb.gridfs.GridFSDBFile;
+import com.mongodb.gridfs.GridFSInputFile;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.stream.StreamUtil;
+import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSet;
+import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBChangeSetEntry;
+import org.rhq.enterprise.server.plugins.drift.mongodb.entities.MongoDBFile;
+
+import static org.apache.commons.io.IOUtils.write;
+import static org.rhq.core.util.file.FileUtil.purge;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
+public class FileDAOTest {
+ // Tests need to be disabled when committed/pushed to the remote repo until we get
+ // mongodb installed on the hudson slave
+ static final boolean ENABLED = false;
+
+ Mongo connection;
+
+ Morphia morphia;
+
+ Datastore ds;
+
+ FileDAO dao;
+
+ private File dataDir;
+
+ private GridFS gridFS;
+
+ private Random random;
+
+ private MessageDigestGenerator digestGenerator;
+
+ @BeforeClass
+ public void initDB() throws Exception {
+ connection = new Mongo("localhost");
+
+ morphia = new Morphia()
+ .map(MongoDBChangeSet.class)
+ .map(MongoDBChangeSetEntry.class)
+ .map(MongoDBFile.class);
+
+ ds = morphia.createDatastore(connection, "rhqtest");
+ gridFS = new GridFS(connection.getDB("rhqtest"));
+
+ dataDir = new File("target", getClass().getSimpleName());
+ if (dataDir.exists()) {
+ purge(dataDir, false);
+ }
+ dataDir.mkdirs();
+
+ random = new Random();
+ digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+
+ dao = new FileDAO(connection.getDB("rhqtest"));
+ }
+
+ @BeforeMethod
+ public void clearCollections() {
+ gridFS.remove(new BasicDBObject());
+ }
+
+ @Test(enabled = ENABLED)
+ public void findFile() throws Exception {
+ File file = createRandomFile("findFile.expected");
+ String hash = sha256(file);
+
+ GridFSInputFile inputFile = gridFS.createFile(new FileInputStream(file));
+ inputFile.put("_id", hash);
+ inputFile.save();
+
+ GridFSDBFile dbFile = dao.findOne(hash);
+
+ assertNotNull(dbFile, "Expected to find file with name " + hash);
+ File actualFile = new File(dataDir, "findFile.actual");
+ StreamUtil.copy(dbFile.getInputStream(), new FileOutputStream(actualFile), true);
+
+ assertTrue(actualFile.exists(), "Expected to file " + actualFile.getPath());
+ }
+
+ private File createRandomFile(String fileName) throws Exception {
+ File file = new File(dataDir, fileName);
+ FileOutputStream stream = new FileOutputStream(file);
+ byte[] bytes = new byte[32];
+ random.nextBytes(bytes);
+ write(bytes, stream);
+ stream.close();
+
+ return file;
+ }
+
+ protected String sha256(File file) {
+ try {
+ return digestGenerator.calcDigestString(file);
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to calculate SHA-256 hash for " + file.getPath(), e);
+ }
+ }
+}
12 years, 9 months
[rhq] 2 commits - modules/core modules/enterprise
by John Sanda
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java | 74 ++++++----
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java | 60 ++++++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/JPADriftServerBean.java | 14 +
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java | 2
4 files changed, 108 insertions(+), 42 deletions(-)
New commits:
commit 16af52a8cdbf0f87f8c092c5987e82daa564c78e
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Sep 16 16:10:55 2011 -0400
Updating test to set change set version from headers
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
index b46f003..1e1cc90 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
@@ -145,6 +145,7 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
headers.setDriftConfigurationName("test-1");
headers.setBasedir(rootDir.getAbsolutePath());
headers.setType(COVERAGE);
+ headers.setVersion(0);
String file1Hash = sha256("test-1-file-1");
@@ -176,6 +177,7 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
// the second change set should report drift
String modifiedFile1Hash = sha256("test-2-file-1-modified");
headers.setType(DRIFT);
+ headers.setVersion(1);
File changeSet2 = new File(changeSetsDir, "changeset-2.txt");
writer = new ChangeSetWriterImpl(changeSet2, headers);
commit 2b6b27a9e973264dec03743660da82583e751b4e
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Sep 16 16:03:36 2011 -0400
Have the agent track and store the change set version number
DriftDetector now updates the version header in the snapshot file and in
the drift change set file. The server now gets the change set version
that it stores in the db from the headers.
This change will allow the server to determine whether or not the agent
and server are in sync.
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
index 6bad1b1..0beeb19 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
@@ -22,8 +22,9 @@ package org.rhq.core.pc.drift;
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -42,6 +43,7 @@ import static org.rhq.common.drift.FileEntry.changedFileEntry;
import static org.rhq.common.drift.FileEntry.removedFileEntry;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.DRIFT;
+import static org.rhq.core.util.file.FileUtil.copyFile;
import static org.rhq.core.util.file.FileUtil.forEachFile;
public class DriftDetector implements Runnable {
@@ -102,12 +104,12 @@ public class DriftDetector implements Runnable {
int changes = 0;
try {
- if (changeSetMgr.changeSetExists(schedule.getResourceId(), createHeaders(schedule, COVERAGE))) {
+ if (changeSetMgr.changeSetExists(schedule.getResourceId(), createHeaders(schedule, COVERAGE, 0))) {
changeSetType = DRIFT;
changes = generateDriftChangeSet(schedule);
} else {
changeSetType = COVERAGE;
- generateCoverageChangeSet(schedule);
+ generateSnapshot(schedule);
}
} catch (IOException e) {
// TODO Call ChangeSetManager here to rollback any thing that was written to disk.
@@ -138,17 +140,14 @@ public class DriftDetector implements Runnable {
private int generateDriftChangeSet(final DriftDetectionSchedule schedule) throws IOException {
log.debug("Generating drift change set for " + schedule);
- final File basedir = new File(basedir(schedule.getResourceId(), schedule.getDriftConfiguration()));
- final ChangeSetWriter driftWriter = changeSetMgr.getChangeSetWriter(schedule.getResourceId(), createHeaders(
- schedule, DRIFT));
+ final File basedir = new File(basedir(schedule.getResourceId(), schedule.getDriftConfiguration()));
final ChangeSetReader coverageReader = changeSetMgr.getChangeSetReader(schedule.getResourceId(), schedule
.getDriftConfiguration().getName());
- final ChangeSetWriter coverageWriter = changeSetMgr.getChangeSetWriterForUpdate(schedule.getResourceId(),
- createHeaders(schedule, COVERAGE));
- final AtomicInteger changes = new AtomicInteger(0);
-
final Set<File> processedFiles = new HashSet<File>();
+ final List<FileEntry> snapshotEntries = new LinkedList<FileEntry>();
+ final List<FileEntry> deltaEntries = new LinkedList<FileEntry>();
+ int newVersion = coverageReader.getHeaders().getVersion() + 1;
// First look for files that have either been modified or deleted
for (FileEntry entry : coverageReader) {
@@ -158,26 +157,24 @@ public class DriftDetector implements Runnable {
if (log.isInfoEnabled()) {
log.info("Detected deleted file for " + schedule + " --> " + file.getAbsolutePath());
}
- driftWriter.write(removedFileEntry(entry.getFile(), entry.getNewSHA()));
- changes.incrementAndGet();
+ deltaEntries.add(removedFileEntry(entry.getFile(), entry.getNewSHA()));
} else {
processedFiles.add(file);
String currentSHA = sha256(file);
if (!currentSHA.equals(entry.getNewSHA())) {
- // The file has been updated
if (log.isInfoEnabled()) {
log.info("Detected modified file for " + schedule + " --> " + file.getAbsolutePath());
}
FileEntry modifiedEntry = changedFileEntry(entry.getFile(), entry.getNewSHA(), currentSHA);
- driftWriter.write(modifiedEntry);
- coverageWriter.write(modifiedEntry);
- changes.incrementAndGet();
+ deltaEntries.add(modifiedEntry);
+ snapshotEntries.add(modifiedEntry);
} else {
// The file has not changed
- coverageWriter.write(entry);
+ snapshotEntries.add(entry);
}
}
}
+ coverageReader.close();
// If the basedir is still valid we need to do a directory tree scan to look for newly added files
if (basedir.isDirectory()) {
@@ -195,9 +192,8 @@ public class DriftDetector implements Runnable {
}
FileEntry newEntry = addedFileEntry(relativePath(basedir, file), sha256(file));
- driftWriter.write(newEntry);
- coverageWriter.write(newEntry);
- changes.incrementAndGet();
+ deltaEntries.add(newEntry);
+ snapshotEntries.add(newEntry);
} catch (IOException e) {
log.error("An error occurred while generating a drift change set for " + schedule + ": "
+ e.getMessage());
@@ -208,18 +204,41 @@ public class DriftDetector implements Runnable {
}));
}
- driftWriter.close();
- coverageWriter.close();
- changeSetMgr.updateChangeSet(schedule.getResourceId(), createHeaders(schedule, COVERAGE));
+ if (deltaEntries.isEmpty()) {
+ // If nothing has changed, there is no need to add/update any files
+ return 0;
+ }
+
+ File snapshotFile = changeSetMgr.findChangeSet(schedule.getResourceId(),
+ schedule.getDriftConfiguration().getName(), COVERAGE);
+ File backupSnapshotFile = new File(snapshotFile.getParentFile(), snapshotFile.getName() + ".bak");
+ copyFile(snapshotFile, snapshotFile);
+
+ Headers deltaHeaders = createHeaders(schedule, DRIFT, newVersion);
+ Headers snapshotHeaders = createHeaders(schedule, COVERAGE, newVersion);
+
+ ChangeSetWriter deltaWriter = changeSetMgr.getChangeSetWriter(schedule.getResourceId(), deltaHeaders);
+ ChangeSetWriter snapshotWriter = changeSetMgr.getChangeSetWriter(schedule.getResourceId(), snapshotHeaders);
+
+ for (FileEntry entry : deltaEntries) {
+ deltaWriter.write(entry);
+ }
+ deltaWriter.close();
+
+ for (FileEntry entry : snapshotEntries) {
+ snapshotWriter.write(entry);
+ }
+ snapshotWriter.close();
+ backupSnapshotFile.delete();
- return changes.get();
+ return deltaEntries.size();
}
- private void generateCoverageChangeSet(final DriftDetectionSchedule schedule) throws IOException {
+ private void generateSnapshot(final DriftDetectionSchedule schedule) throws IOException {
log.debug("Generating coverage change set for " + schedule);
final ChangeSetWriter writer = changeSetMgr.getChangeSetWriter(schedule.getResourceId(), createHeaders(
- schedule, COVERAGE));
+ schedule, COVERAGE, 0));
final DriftConfiguration config = schedule.getDriftConfiguration();
final File basedir = new File(basedir(schedule.getResourceId(), config));
if (basedir.isDirectory()) {
@@ -262,13 +281,14 @@ public class DriftDetector implements Runnable {
return driftClient.getAbsoluteBaseDirectory(resourceId, driftConfig).getAbsolutePath();
}
- private Headers createHeaders(DriftDetectionSchedule schedule, DriftChangeSetCategory type) {
+ private Headers createHeaders(DriftDetectionSchedule schedule, DriftChangeSetCategory type, int version) {
Headers headers = new Headers();
headers.setResourceId(schedule.getResourceId());
headers.setDriftCofigurationId(schedule.getDriftConfiguration().getId());
headers.setDriftConfigurationName(schedule.getDriftConfiguration().getName());
headers.setBasedir(basedir(schedule.getResourceId(), schedule.getDriftConfiguration()));
headers.setType(type);
+ headers.setVersion(version);
return headers;
}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
index 5d25e9d..21ec45b 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftDetectorTest.java
@@ -46,6 +46,8 @@ import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.DRIFT;
import static org.rhq.test.AssertUtils.assertCollectionMatchesNoOrder;
import static org.rhq.test.AssertUtils.assertPropertiesMatch;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
public class DriftDetectorTest extends DriftTest {
@@ -163,6 +165,34 @@ public class DriftDetectorTest extends DriftTest {
@SuppressWarnings("unchecked")
@Test
+ public void doNotUpdateSnapshotOrGenerateDriftChangeSetIfNothingChanges() throws Exception {
+ File confDir = mkdir(resourceDir, "conf");
+ File serverConf = createRandomFile(confDir, "server.conf");
+
+ DriftConfiguration config = driftConfiguration("nothing-to-update", resourceDir.getAbsolutePath());
+
+ scheduleQueue.addSchedule(new DriftDetectionSchedule(resourceId(), config));
+ detector.run();
+
+ File changeSet = changeSet(config.getName(), COVERAGE);
+ String originalHash = sha256(changeSet);
+
+ // Run the detector again. Note that nothing has changed so the snapshot should
+ // remain the same and no drift change set file should be generated.
+ detector.run();
+
+ String newHash = sha256(changeSet);
+
+ assertEquals(newHash, originalHash, "The snapshot file should not have changed since there was no drift.");
+
+ File driftChangeSet = changeSet(config.getName(), DRIFT);
+
+ assertFalse(driftChangeSet.exists(), "A drift change set file should not have been generated since there was "
+ + "no drift");
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
public void skipScheduledThatHasConfigDisabled() throws Exception {
detector.setDriftClient(new DriftClientTestStub() {
{
@@ -210,7 +240,7 @@ public class DriftDetectorTest extends DriftTest {
// verify that the drift change set was generated
assertTrue(driftChangeSet.exists(), "Expected to find drift change set " + driftChangeSet.getPath());
- assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT));
+ assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT, 1));
assertFileEntriesMatch("The drift change set does not match the expected values", driftEntries, driftChangeSet);
File coverageChangeSet = changeSet(config.getName(), COVERAGE);
@@ -219,7 +249,7 @@ public class DriftDetectorTest extends DriftTest {
addedFileEntry("conf/server-2.conf", sha256(server2Conf)));
// verify that the coverage change set was updated
- assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE));
+ assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE, 1));
assertFileEntriesMatch("The coverage change set was not updated as expected", coverageEntries,
coverageChangeSet);
}
@@ -250,14 +280,14 @@ public class DriftDetectorTest extends DriftTest {
// verify that the drift change set was generated
assertTrue(driftChangeSet.exists(), "Expected to find drift change set " + driftChangeSet.getPath());
- assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT));
+ assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT, 1));
assertFileEntriesMatch("The drift change set does not match the expected values", driftEntries, driftChangeSet);
File coverageChangeSet = changeSet(config.getName(), COVERAGE);
List<FileEntry> coverageEntries = asList(changedFileEntry("conf/server-1.conf", oldHash, newHash));
// verify that the coverage change set was updated
- assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE));
+ assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE, 1));
assertFileEntriesMatch("The coverage change set was not updated as expected", coverageEntries,
coverageChangeSet);
}
@@ -286,7 +316,7 @@ public class DriftDetectorTest extends DriftTest {
// verify that the drift change set was generated
assertTrue(driftChangeSet.exists(), "Expected to find drift change set " + driftChangeSet.getPath());
- assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT));
+ assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT, 1));
assertFileEntriesMatch("The drift change set does not match the expected values", driftEntries, driftChangeSet);
File coverageChangeSet = changeSet(config.getName(), COVERAGE);
@@ -295,7 +325,7 @@ public class DriftDetectorTest extends DriftTest {
addedFileEntry("conf/subconf/server-2.conf", sha256(server2Conf)));
// verify that the coverage change set was updated
- assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE));
+ assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE, 1));
assertFileEntriesMatch("The coverage change set was not updated as expected", coverageEntries,
coverageChangeSet);
}
@@ -327,20 +357,20 @@ public class DriftDetectorTest extends DriftTest {
// verify that the drift change set was generated
assertTrue(driftChangeSet.exists(), "Expected to find drift change set " + driftChangeSet.getPath());
- assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT));
+ assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT, 1));
assertFileEntriesMatch("The drift change set does not match the expected values", driftEntries, driftChangeSet);
// verify that the coverage change set was updated
File coverageChangeSet = changeSet(config.getName(), COVERAGE);
List<FileEntry> coverageEntries = asList(addedFileEntry("conf/server-1.conf", sha256(server1Conf)));
- assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE));
+ assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE, 1));
assertFileEntriesMatch("The coverage change set was not updated as expected", coverageEntries,
coverageChangeSet);
}
@SuppressWarnings("unchecked")
- @Test(enabled = false)
+ @Test
public void includeFilesInRemovedDirectoryInDriftChangeSet() throws Exception {
DriftConfiguration config = driftConfiguration("dir-removed-test", resourceDir.getAbsolutePath());
@@ -356,19 +386,22 @@ public class DriftDetectorTest extends DriftTest {
server1Conf.delete();
confDir.delete();
+ scheduleQueue.addSchedule(new DriftDetectionSchedule(resourceId(), config));
+ detector.run();
+
File driftChangeSet = changeSet(config.getName(), DRIFT);
List<FileEntry> driftEntries = asList(removedFileEntry("conf/server-1.conf", server1Hash));
// verify that the drift change set was generated
assertTrue(driftChangeSet.exists(), "Expected to find drift change set " + driftChangeSet.getPath());
- assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT));
+ assertHeaderEquals(driftChangeSet, createHeaders(config, DRIFT, 1));
assertFileEntriesMatch("The drift change set does not match the expected values", driftEntries, driftChangeSet);
// verify that the coverage change set was updated
File coverageChangeSet = changeSet(config.getName(), COVERAGE);
List<FileEntry> coverageEntries = emptyList();
- assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE));
+ assertHeaderEquals(coverageChangeSet, createHeaders(config, COVERAGE, 1));
assertFileEntriesMatch("The coverage change set was not updated as expected", coverageEntries,
coverageChangeSet);
}
@@ -392,12 +425,17 @@ public class DriftDetectorTest extends DriftTest {
}
Headers createHeaders(DriftConfiguration driftConfig, DriftChangeSetCategory type) {
+ return createHeaders(driftConfig, type, 0);
+ }
+
+ Headers createHeaders(DriftConfiguration driftConfig, DriftChangeSetCategory type, int version) {
Headers headers = new Headers();
headers.setResourceId(resourceId());
headers.setDriftCofigurationId(driftConfig.getId());
headers.setDriftConfigurationName(driftConfig.getName());
headers.setBasedir(resourceDir.getAbsolutePath());
headers.setType(type);
+ headers.setVersion(version);
return headers;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/JPADriftServerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/JPADriftServerBean.java
index f44000f..03705cd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/JPADriftServerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/JPADriftServerBean.java
@@ -19,9 +19,6 @@
*/
package org.rhq.enterprise.server.drift;
-import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;
-import static org.rhq.core.domain.drift.DriftFileStatus.LOADED;
-
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
@@ -80,6 +77,9 @@ import org.rhq.enterprise.server.plugin.pc.drift.DriftChangeSetSummary;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
+import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;
+import static org.rhq.core.domain.drift.DriftFileStatus.LOADED;
+
/**
* The SLSB method implementation needed to support the JPA (RHQ Default) Drift Server Plugin.
*
@@ -253,7 +253,13 @@ public class JPADriftServerBean implements JPADriftServerLocal {
+ "]. Change set cannot be saved.");
return false;
}
- int version = getChangeSetVersion(resource, config);
+ // Commenting out the following line for now. We want to set the
+ // version to the value specified in the headers, but we also
+ // want to get the latest version we have in the database so that
+ // we can make sure that the agent is in sync with the server.
+ //
+ //int version = getChangeSetVersion(resource, config);
+ int version = reader.getHeaders().getVersion();
DriftChangeSetCategory category = reader.getHeaders().getType();
driftChangeSet = new JPADriftChangeSet(resource, version, category, config);
12 years, 9 months
[rhq] Branch 'drift' - 2 commits - modules/enterprise modules/pom.xml
by Jay Shaughnessy
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java | 16
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/CliNotificationSenderForm.java | 362 +++++-----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java | 28
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/drift/RecentDriftsPortlet.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/AbstractDriftChangeSetsTreeDataSource.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationEditView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDataSource.java | 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDetailsView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeDataSource.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftConfigurationView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizard.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizardInfoStep.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/InventoryView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java | 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/UpdateCollectionIntervalWidget.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryDetailsView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupContextMenu.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java | 14
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationTable.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/MembersView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableDataSource.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ChildHistoryDetails.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/OverviewForm.java | 15
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java | 41 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeDataSource.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MeasurementTableDataSource.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java | 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java | 25
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/resource/ProblemResourcesDataSource.java | 2
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties | 129 +--
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties | 148 +---
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties | 129 +--
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties | 151 +---
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties | 120 +--
modules/pom.xml | 22
61 files changed, 598 insertions(+), 785 deletions(-)
New commits:
commit f3a8cd5cdf7cbd3150bbcb6f0a194da01a784da0
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Sep 16 15:02:57 2011 -0400
Add a drift profile that basically builds the agent, coregui and drift
server plugin. Since maven does not support profile chaining (yet) it's
really a standalone profile that needs updating if either the agent or
coregui modules get updated.
diff --git a/modules/pom.xml b/modules/pom.xml
index 2b45c62..c846655 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -94,7 +94,27 @@
</modules>
</profile>
-
+ <profile>
+ <id>drift</id>
+ <activation>
+ <property>
+ <name>drift</name>
+ </property>
+ </activation>
+ <modules>
+ <!-- agent -->
+ <module>core</module>
+ <module>common/drift</module>
+ <module>enterprise/comm</module>
+ <module>enterprise/agent</module>
+ <module>enterprise/agentupdate</module>
+ <!-- coregui -->
+ <module>enterprise/server/jar</module>
+ <module>enterprise/gui/coregui</module>
+ <!-- server plugin -->
+ <module>enterprise/server/plugins/drift-rhq</module>
+ </modules>
+ </profile>
<profile>
<id>plugins</id>
commit a5ec69141678fbcd4ead329a8d966d5d7eb38984
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Sep 16 14:36:41 2011 -0400
Convert drift I18N properties to use updated terminology. Additionally, made
a pass through the properties files to correct a bunch of issues such as:
- remove some unused properties
- consolidate a lot of properties by making better use of common props
- add many missing props (commented) to various lang packs. Remember,
commented props make it easier for a localizer to see the props that need
translation.
- related, commented out many untranslated props
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
index c5b8f43..82e2d93 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
@@ -138,7 +138,7 @@ public class LoginView extends LocatableCanvas {
user.setRequired(true);
user.setAttribute("autoComplete", "native");
- final PasswordItem password = new PasswordItem("password", MSG.dataSource_users_field_password());
+ final PasswordItem password = new PasswordItem("password", MSG.common_title_password());
password.setRequired(true);
password.setAttribute("autoComplete", "native");
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
index 2285d8e..e462d3e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
@@ -27,7 +27,6 @@ import com.smartgwt.client.widgets.layout.VLayout;
import org.rhq.core.domain.authz.Permission;
import org.rhq.enterprise.gui.coregui.client.ImageManager;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.admin.agent.install.RemoteAgentInstallView;
import org.rhq.enterprise.gui.coregui.client.admin.roles.RolesView;
import org.rhq.enterprise.gui.coregui.client.admin.templates.ResourceTypeTreeView;
@@ -39,7 +38,6 @@ import org.rhq.enterprise.gui.coregui.client.components.view.NavigationItem;
import org.rhq.enterprise.gui.coregui.client.components.view.NavigationSection;
import org.rhq.enterprise.gui.coregui.client.components.view.ViewFactory;
import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
-import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
/**
@@ -72,8 +70,7 @@ public class AdministrationView extends AbstractSectionedLeftNavigationView {
// TODO these iframe page view ids should go away in favor of the gwt view page view_id, when available
private static final ViewName PAGE_CONTENT_SOURCES_VIEW_ID = new ViewName("ContentSources", MSG
.view_adminContent_contentSources());
- private static final ViewName PAGE_REPOS_VIEW_ID = new ViewName("Repositories", MSG
- .view_adminContent_repositories());
+ private static final ViewName PAGE_REPOS_VIEW_ID = new ViewName("Repositories", MSG.common_title_repositories());
public AdministrationView() {
// This is a top level view, so our locator id can simply be our view id.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index 2561dd3..01b107f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -107,20 +107,20 @@ public class RolesDataSource extends RPCDataSource<Role, RoleCriteria> {
100, false);
fields.add(descriptionField);
- DataSourceField resourceGroupsField = new DataSourceField(Field.RESOURCE_GROUPS, FieldType.ANY,
- MSG.datasource_roles_field_resourceGroups());
+ DataSourceField resourceGroupsField = new DataSourceField(Field.RESOURCE_GROUPS, FieldType.ANY, MSG
+ .common_title_resourceGroups());
fields.add(resourceGroupsField);
- DataSourceField permissionsField = new DataSourceField(Field.PERMISSIONS, FieldType.ANY,
- MSG.datasource_roles_field_permissions());
+ DataSourceField permissionsField = new DataSourceField(Field.PERMISSIONS, FieldType.ANY, MSG
+ .common_title_permissions());
fields.add(permissionsField);
- DataSourceField subjectsField = new DataSourceField(Field.SUBJECTS, FieldType.ANY,
- MSG.datasource_roles_field_subjects());
+ DataSourceField subjectsField = new DataSourceField(Field.SUBJECTS, FieldType.ANY, MSG
+ .datasource_roles_field_subjects());
fields.add(subjectsField);
- DataSourceField ldapGroupsField = new DataSourceField(Field.LDAP_GROUPS, FieldType.ANY,
- MSG.datasource_roles_field_ldapGroups());
+ DataSourceField ldapGroupsField = new DataSourceField(Field.LDAP_GROUPS, FieldType.ANY, MSG
+ .datasource_roles_field_ldapGroups());
fields.add(ldapGroupsField);
return fields;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
index bfa9ae6..3c3e91d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesView.java
@@ -48,7 +48,7 @@ import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
*/
public class RolesView extends TableSection<RolesDataSource> implements BookmarkableView {
- public static final ViewName VIEW_ID = new ViewName("Roles", MSG.view_adminSecurity_roles());
+ public static final ViewName VIEW_ID = new ViewName("Roles", MSG.common_title_roles());
public static final String VIEW_PATH = AdministrationView.VIEW_ID + "/"
+ AdministrationView.SECTION_SECURITY_VIEW_ID + "/" + VIEW_ID;
@@ -58,7 +58,7 @@ public class RolesView extends TableSection<RolesDataSource> implements Bookmark
private boolean initialized;
public RolesView(String locatorId) {
- super(locatorId, MSG.view_adminSecurity_roles());
+ super(locatorId, MSG.common_title_roles());
final RolesDataSource datasource = RolesDataSource.getInstance();
setDataSource(datasource);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
index 55b0281..4fadf87 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersDataSource.java
@@ -115,8 +115,8 @@ public class UsersDataSource extends RPCDataSource<Subject, SubjectCriteria> {
ldapField.setCanEdit(false); // read-only
fields.add(ldapField);
- DataSourcePasswordField passwordField = new DataSourcePasswordField(Field.PASSWORD, MSG
- .dataSource_users_field_password(), 100, true);
+ DataSourcePasswordField passwordField = new DataSourcePasswordField(Field.PASSWORD,
+ MSG.common_title_password(), 100, true);
LengthRangeValidator passwordValidator = new LengthRangeValidator();
passwordValidator.setMin(6);
passwordValidator.setMax(100);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
index 58c0912..a8b35fd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UsersView.java
@@ -54,7 +54,7 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message;
*/
public class UsersView extends TableSection<UsersDataSource> {
- public static final ViewName VIEW_ID = new ViewName("Users", MSG.view_adminSecurity_users());
+ public static final ViewName VIEW_ID = new ViewName("Users", MSG.common_title_users());
public static final String VIEW_PATH = AdministrationView.VIEW_ID + "/"
+ AdministrationView.SECTION_SECURITY_VIEW_ID + "/" + VIEW_ID;
@@ -64,7 +64,7 @@ public class UsersView extends TableSection<UsersDataSource> {
private boolean initialized;
public UsersView(String locatorId) {
- super(locatorId, MSG.view_adminSecurity_users());
+ super(locatorId, MSG.common_title_users());
final UsersDataSource dataSource = UsersDataSource.getInstance();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java
index c206db6..af63f11 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertDetailsView.java
@@ -272,7 +272,7 @@ public class AlertDetailsView extends LocatableVLayout implements BookmarkableVi
grid.setData((Record[]) input);
ListGridField condition = new ListGridField("text", MSG.view_alert_common_tab_conditions_text());
condition.setWidth("60%");
- ListGridField value = new ListGridField("value", MSG.view_alert_common_tab_conditions_value());
+ ListGridField value = new ListGridField("value", MSG.common_title_value());
grid.setFields(condition, value);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/CliNotificationSenderForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/CliNotificationSenderForm.java
index 38dbf8b..225c5c5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/CliNotificationSenderForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/CliNotificationSenderForm.java
@@ -82,12 +82,12 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
private static class Config {
List<Repo> allRepos;
Repo selectedRepo;
-
+
List<PackageAndLatestVersionComposite> allPackages;
PackageAndLatestVersionComposite selectedPackage;
-
+
Subject selectedSubject;
-
+
/*
* This is a counter to keep track if all the async
* loading of the above data has finished.
@@ -101,10 +101,10 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
* updated) only in that single thread.
*/
int __handlerCounter = 3;
-
+
public void setSelectedRepo(int repoId) {
if (allRepos != null) {
- for(Repo r : allRepos) {
+ for (Repo r : allRepos) {
if (r.getId() == repoId) {
selectedRepo = r;
break;
@@ -115,7 +115,7 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
public void setSelectedPackage(int packageId) {
if (allPackages != null) {
- for(PackageAndLatestVersionComposite p : allPackages) {
+ for (PackageAndLatestVersionComposite p : allPackages) {
if (p.getGeneralPackage().getId() == packageId) {
selectedPackage = p;
break;
@@ -124,9 +124,9 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
}
}
}
-
+
private static class PackageVersionFileUploadFormWithVersion extends PackageVersionFileUploadForm {
-
+
/**
* @param locatorId
* @param packageTypeId
@@ -138,47 +138,48 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
protected List<FormItem> getOnDrawItems() {
List<FormItem> items = super.getOnDrawItems();
-
- TextItem version = new TextItem("editableVersion", MSG.view_alert_definition_notification_cliScript_editor_newScriptVersion());
+
+ TextItem version = new TextItem("editableVersion", MSG
+ .view_alert_definition_notification_cliScript_editor_newScriptVersion());
version.setColSpan(getNumCols());
version.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
getField("version").setValue(event.getValue());
}
});
-
+
items.add(version);
-
+
return items;
}
}
-
+
private static abstract class ForwardingDynamicFormHandler implements DynamicFormHandler {
private AsyncCallback<Void> callback;
-
+
public AsyncCallback<Void> getCallback() {
return callback;
}
-
+
public void setCallback(AsyncCallback<Void> callback) {
this.callback = callback;
}
};
-
+
private static abstract class ForwardingSubmitFailedHandler implements FormSubmitFailedHandler {
private AsyncCallback<Void> callback;
-
+
public AsyncCallback<Void> getCallback() {
return callback;
}
-
+
public void setCallback(AsyncCallback<Void> callback) {
this.callback = callback;
}
};
-
+
private boolean formBuilt;
-
+
private SelectItem repoSelector;
private RadioGroupWithComponentsItem packageSelector;
private SelectItem existingPackageSelector;
@@ -194,7 +195,7 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
private ForwardingDynamicFormHandler uploadSuccessHandler;
private Config config;
-
+
public CliNotificationSenderForm(String locatorId, AlertNotification notif, String sender) {
super(locatorId, notif, sender);
}
@@ -202,21 +203,21 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
@Override
protected void onInit() {
super.onInit();
-
- if (!formBuilt) {
+
+ if (!formBuilt) {
loadPackageType(new AsyncCallback<PackageTypeAndVersionFormatComposite>() {
public void onFailure(Throwable t) {
- CoreGUI.getErrorHandler().handleError(MSG.view_alert_definition_notification_cliScript_editor_loadFailed(),
- t);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_cliScript_editor_loadFailed(), t);
}
-
+
public void onSuccess(PackageTypeAndVersionFormatComposite result) {
cliScriptPackageType = result;
LocatableDynamicForm form = new LocatableDynamicForm(extendLocatorId("form"));
form.setTitleOrientation(TitleOrientation.TOP);
form.setWidth(500);
-
+
SectionItem repoSection = new SectionItem("repoSection");
repoSection.setDefaultValue(MSG.view_alert_definition_notification_cliScript_editor_repository());
repoSection.setWidth("100%");
@@ -224,62 +225,64 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
packageSection.setDefaultValue(MSG.view_alert_definition_notification_cliScript_editor_script());
SectionItem userSection = new SectionItem("userSection");
userSection.setDefaultValue(MSG.view_alert_definition_notification_cliScript_editor_whichUser());
-
- repoSelector = new SelectItem(extendLocatorId("repoSelector"), MSG.view_alert_definition_notification_cliScript_editor_selectRepo());
+
+ repoSelector = new SelectItem(extendLocatorId("repoSelector"), MSG
+ .view_alert_definition_notification_cliScript_editor_selectRepo());
repoSelector.setDefaultToFirstOption(true);
repoSelector.setWrapTitle(false);
- repoSelector.setWidth(400);
+ repoSelector.setWidth(400);
repoSelector.setValueMap(MSG.common_msg_loading());
repoSelector.setDisabled(true);
LinkedHashMap<String, DynamicForm> packageSelectItems = new LinkedHashMap<String, DynamicForm>();
- packageSelectItems.put(MSG.view_alert_definition_notification_cliScript_editor_existingScript(), createExistingPackageForm());
- packageSelectItems.put(MSG.view_alert_definition_notification_cliScript_editor_uploadNewScript(), createUploadNewScriptForm());
- packageSelector = new RadioGroupWithComponentsItem(extendLocatorId("packageSelector"),
- "", packageSelectItems, form);
+ packageSelectItems.put(MSG.view_alert_definition_notification_cliScript_editor_existingScript(),
+ createExistingPackageForm());
+ packageSelectItems.put(MSG.view_alert_definition_notification_cliScript_editor_uploadNewScript(),
+ createUploadNewScriptForm());
+ packageSelector = new RadioGroupWithComponentsItem(extendLocatorId("packageSelector"), "",
+ packageSelectItems, form);
packageSelector.setWidth("100%");
-
- LinkedHashMap<String, DynamicForm> userSelectItems = new LinkedHashMap<String, DynamicForm>();
- userSelectItems.put(MSG.view_alert_definition_notification_cliScript_editor_thisUser(),
- null);
- userSelectItems.put(MSG.view_alert_definition_notification_cliScript_editor_anotherUser(),
- createAnotherUserForm());
- userSelector = new RadioGroupWithComponentsItem(
- extendLocatorId("userSelector"),
- "", userSelectItems, form);
+
+ LinkedHashMap<String, DynamicForm> userSelectItems = new LinkedHashMap<String, DynamicForm>();
+ userSelectItems.put(MSG.view_alert_definition_notification_cliScript_editor_thisUser(), null);
+ userSelectItems.put(MSG.view_alert_definition_notification_cliScript_editor_anotherUser(),
+ createAnotherUserForm());
+ userSelector = new RadioGroupWithComponentsItem(extendLocatorId("userSelector"), "",
+ userSelectItems, form);
userSelector.setWidth("100%");
userSelector.setShowTitle(false);
-
+
repoSection.setItemIds(extendLocatorId("repoSelector"));
packageSection.setItemIds(extendLocatorId("packageSelector"));
userSection.setItemIds(extendLocatorId("userSelector"));
-
- form.setFields(userSection, userSelector, repoSection, repoSelector, packageSection, packageSelector);
-
+
+ form.setFields(userSection, userSelector, repoSection, repoSelector, packageSection,
+ packageSelector);
+
addMember(form);
-
+
loadConfig(new AsyncCallback<Config>() {
public void onFailure(Throwable t) {
- CoreGUI.getErrorHandler().handleError(MSG.view_alert_definition_notification_cliScript_editor_loadFailed(),
- t);
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_cliScript_editor_loadFailed(), t);
}
-
+
public void onSuccess(Config config) {
CliNotificationSenderForm.this.config = config;
- setupRepoSelector();
- setupPackageSelector();
+ setupRepoSelector();
+ setupPackageSelector();
setupUserSelector();
-
+
formBuilt = true;
-
+
markForRedraw();
}
});
}
- });
+ });
}
}
-
+
private void setupUserSelector() {
if (config.selectedSubject != null && !UserSessionManager.getSessionSubject().equals(config.selectedSubject)) {
userSelector.setSelected(MSG.view_alert_definition_notification_cliScript_editor_anotherUser());
@@ -293,11 +296,11 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
private void setupPackageSelector() {
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
- for(PackageAndLatestVersionComposite p : config.allPackages) {
+ for (PackageAndLatestVersionComposite p : config.allPackages) {
String label = p.getGeneralPackage().getName() + " (" + p.getLatestPackageVersion().getVersion() + ")";
map.put(String.valueOf(p.getGeneralPackage().getId()), label);
}
-
+
existingPackageSelector.setValueMap(map);
if (config.selectedPackage != null) {
existingPackageSelector.setValue(config.selectedPackage.getGeneralPackage().getId());
@@ -305,7 +308,7 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
} else {
packageSelector.setSelected(MSG.view_alert_definition_notification_cliScript_editor_uploadNewScript());
}
-
+
if (!formBuilt) {
existingPackageSelector.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
@@ -314,18 +317,18 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
}
});
}
-
+
existingPackageSelector.setDisabled(false);
-
+
markForRedraw();
}
- private void setupRepoSelector() {
+ private void setupRepoSelector() {
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
- for(Repo r : config.allRepos) {
+ for (Repo r : config.allRepos) {
map.put(String.valueOf(r.getId()), r.getName());
}
-
+
repoSelector.setValueMap(map);
if (config.selectedRepo != null) {
repoSelector.setValue(config.selectedRepo.getId());
@@ -336,41 +339,42 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
packageSelector.setDisabled(true);
uploadForm.setRepoId(null);
}
-
+
if (!formBuilt) {
repoSelector.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent event) {
final Integer repoId = Integer.valueOf(event.getItem().getValue().toString());
config.setSelectedRepo(repoId);
-
+
PackageCriteria pc = new PackageCriteria();
pc.addFilterRepoId(repoId);
pc.addFilterPackageTypeId(cliScriptPackageType.getPackageType().getId());
-
+
packageSelector.setDisabled(false);
existingPackageSelector.setDisabled(true);
existingPackageSelector.setValueMap(MSG.common_msg_loading());
-
- GWTServiceLookup.getContentService().findPackagesWithLatestVersion(pc, new AsyncCallback<PageList<PackageAndLatestVersionComposite>>() {
- public void onSuccess(PageList<PackageAndLatestVersionComposite> result) {
- config.allPackages = result;
- config.selectedPackage = result.isEmpty() ? null : result.get(0); //we're autoselecting the first item
- setupPackageSelector();
-
- uploadForm.setRepoId(repoId);
- }
-
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_alert_definition_notification_cliScript_editor_loadFailed(),
- caught);
- }
- });
+
+ GWTServiceLookup.getContentService().findPackagesWithLatestVersion(pc,
+ new AsyncCallback<PageList<PackageAndLatestVersionComposite>>() {
+ public void onSuccess(PageList<PackageAndLatestVersionComposite> result) {
+ config.allPackages = result;
+ config.selectedPackage = result.isEmpty() ? null : result.get(0); //we're autoselecting the first item
+ setupPackageSelector();
+
+ uploadForm.setRepoId(repoId);
+ }
+
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_alert_definition_notification_cliScript_editor_loadFailed(), caught);
+ }
+ });
}
});
}
-
+
repoSelector.setDisabled(false);
-
+
markForRedraw();
}
@@ -384,23 +388,25 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
public void onFailure(Throwable caught) {
callback.onFailure(caught);
}
-
+
public void onSuccess(Void result) {
getConfiguration().put(new PropertySimple(PROP_USER_ID, config.selectedSubject.getId()));
getConfiguration().put(new PropertySimple(PROP_USER_NAME, anotherUserName.getEnteredValue()));
- getConfiguration().put(new PropertySimple(PROP_USER_PASSWORD, anotherUserPassword.getEnteredValue()));
-
+ getConfiguration().put(
+ new PropertySimple(PROP_USER_PASSWORD, anotherUserPassword.getEnteredValue()));
+
validatePackage(callback);
}
});
- }
+ }
}
-
+
private void validatePackage(final AsyncCallback<Void> callback) {
getConfiguration().put(new PropertySimple(PROP_REPO_ID, config.selectedRepo.getId()));
if (packageSelector.getSelectedIndex() == 0) {
- getConfiguration().put(new PropertySimple(PROP_PACKAGE_ID, config.selectedPackage.getGeneralPackage().getId()));
+ getConfiguration().put(
+ new PropertySimple(PROP_PACKAGE_ID, config.selectedPackage.getGeneralPackage().getId()));
callback.onSuccess(null);
} else {
if (cliScriptPackageType.getVersionFormat() != null) {
@@ -422,6 +428,7 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
public void onFailure(Throwable caught) {
callback.onFailure(null);
};
+
public void onSuccess(Void result) {
getConfiguration().put(new PropertySimple(PROP_PACKAGE_ID, uploadForm.getPackageId()));
callback.onSuccess(null);
@@ -430,7 +437,7 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
uploadForm.submitForm();
}
}
-
+
private void loadConfig(final AsyncCallback<Config> handler) {
final String repoId = getConfiguration().getSimpleValue(PROP_REPO_ID, null);
final String packageId = getConfiguration().getSimpleValue(PROP_PACKAGE_ID, null);
@@ -439,16 +446,16 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
final Config config = new Config();
RepoCriteria rc = new RepoCriteria();
-
+
GWTServiceLookup.getRepoService().findReposByCriteria(rc, new AsyncCallback<PageList<Repo>>() {
public void onSuccess(PageList<Repo> result) {
config.allRepos = result;
-
+
if (repoId != null && repoId.trim().length() > 0) {
final int rid = Integer.parseInt(repoId);
config.setSelectedRepo(rid);
}
-
+
if (--config.__handlerCounter == 0) {
handler.onSuccess(config);
}
@@ -458,66 +465,68 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
handler.onFailure(caught);
}
});
-
+
if (repoId != null && repoId.trim().length() > 0) {
PackageCriteria pc = new PackageCriteria();
pc.addFilterRepoId(Integer.parseInt(repoId));
pc.addFilterPackageTypeId(cliScriptPackageType.getPackageType().getId());
- GWTServiceLookup.getContentService().findPackagesWithLatestVersion(pc, new AsyncCallback<PageList<PackageAndLatestVersionComposite>>() {
- public void onSuccess(PageList<PackageAndLatestVersionComposite> result) {
- config.allPackages = result;
-
- if (packageId != null && packageId.trim().length() > 0) {
- int pid = Integer.parseInt(packageId);
- config.setSelectedPackage(pid);
+ GWTServiceLookup.getContentService().findPackagesWithLatestVersion(pc,
+ new AsyncCallback<PageList<PackageAndLatestVersionComposite>>() {
+ public void onSuccess(PageList<PackageAndLatestVersionComposite> result) {
+ config.allPackages = result;
+
+ if (packageId != null && packageId.trim().length() > 0) {
+ int pid = Integer.parseInt(packageId);
+ config.setSelectedPackage(pid);
+ }
+
+ if (--config.__handlerCounter == 0) {
+ handler.onSuccess(config);
+ }
+ }
+
+ public void onFailure(Throwable caught) {
+ handler.onFailure(caught);
+ }
+ });
+ } else {
+ config.allPackages = Collections.emptyList();
+ --config.__handlerCounter;
+ }
+
+ if (subjectId != null && subjectId.trim().length() > 0) {
+ int sid = Integer.parseInt(subjectId);
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterId(sid);
+
+ GWTServiceLookup.getSubjectService().findSubjectsByCriteria(c, new AsyncCallback<PageList<Subject>>() {
+ public void onSuccess(PageList<Subject> result) {
+ if (result.size() > 0) {
+ config.selectedSubject = result.get(0);
}
if (--config.__handlerCounter == 0) {
handler.onSuccess(config);
}
}
-
+
public void onFailure(Throwable caught) {
handler.onFailure(caught);
}
});
} else {
- config.allPackages = Collections.emptyList();
- --config.__handlerCounter;
- }
-
- if (subjectId != null && subjectId.trim().length() > 0) {
- int sid = Integer.parseInt(subjectId);
- SubjectCriteria c = new SubjectCriteria();
- c.addFilterId(sid);
-
- GWTServiceLookup.getSubjectService().findSubjectsByCriteria(c, new AsyncCallback<PageList<Subject>>() {
- public void onSuccess(PageList<Subject> result) {
- if (result.size() > 0) {
- config.selectedSubject = result.get(0);
- }
-
- if (--config.__handlerCounter == 0) {
- handler.onSuccess(config);
- }
- }
-
- public void onFailure(Throwable caught) {
- handler.onFailure(caught);
- }
- });
- } else {
--config.__handlerCounter;
}
}
-
+
private DynamicForm createAnotherUserForm() {
LocatableDynamicForm form = new LocatableDynamicForm(extendLocatorId("anotherUserForm"));
form.setTitleOrientation(TitleOrientation.TOP);
anotherUserName = new TextItem("userName", MSG.dataSource_users_field_name());
- anotherUserPassword = new PasswordItem("password", MSG.dataSource_users_field_password());
- verifyUserButton = new ButtonItem("verify", MSG.view_alert_definition_notification_cliScript_editor_verifyAuthentication());
-
+ anotherUserPassword = new PasswordItem("password", MSG.common_title_password());
+ verifyUserButton = new ButtonItem("verify", MSG
+ .view_alert_definition_notification_cliScript_editor_verifyAuthentication());
+
successIcon = new FormItemIcon();
successIcon.setSrc(ImageManager.getAvailabilityIcon(Boolean.TRUE));
successIcon.setWidth(16);
@@ -527,16 +536,16 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
failureIcon.setSrc(ImageManager.getAvailabilityIcon(Boolean.FALSE));
failureIcon.setWidth(16);
failureIcon.setHeight(16);
-
+
form.setFields(anotherUserName, anotherUserPassword, verifyUserButton);
-
+
verifyUserButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
//just checking the auth is ok, no other action is needed.
checkAuthenticationAndDo(new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
}
-
+
public void onSuccess(Void result) {
}
});
@@ -544,7 +553,7 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
});
return form;
}
-
+
private DynamicForm createExistingPackageForm() {
LocatableDynamicForm form = new LocatableDynamicForm(extendLocatorId("existingPackageForm"));
form.setTitleOrientation(TitleOrientation.TOP);
@@ -552,16 +561,17 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
existingPackageSelector.setDefaultToFirstOption(true);
existingPackageSelector.setWrapTitle(false);
existingPackageSelector.setRedrawOnChange(true);
- existingPackageSelector.setWidth(300);
+ existingPackageSelector.setWidth(300);
existingPackageSelector.setValueMap(MSG.common_msg_loading());
existingPackageSelector.setDisabled(true);
-
+
form.setFields(existingPackageSelector);
return form;
}
-
+
private DynamicForm createUploadNewScriptForm() {
- uploadForm = new PackageVersionFileUploadFormWithVersion(extendLocatorId("uploadForm"), cliScriptPackageType.getPackageType().getId());
+ uploadForm = new PackageVersionFileUploadFormWithVersion(extendLocatorId("uploadForm"), cliScriptPackageType
+ .getPackageType().getId());
uploadForm.setTitleOrientation(TitleOrientation.TOP);
uploadForm.setPackageTypeId(cliScriptPackageType.getPackageType().getId());
@@ -572,7 +582,7 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
}
}
});
-
+
uploadSuccessHandler = new ForwardingDynamicFormHandler() {
public void onSubmitComplete(DynamicFormSubmitCompleteEvent event) {
if (uploadForm.getPackageId() == 0 || uploadForm.getPackageVersionId() == 0) {
@@ -588,8 +598,8 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
}
};
uploadForm.addFormHandler(uploadSuccessHandler);
-
- uploadForm.addItemChangeHandler(new ItemChangeHandler() {
+
+ uploadForm.addItemChangeHandler(new ItemChangeHandler() {
public void onItemChange(ItemChangeEvent event) {
if (event.getItem() instanceof UploadItem) {
if (event.getNewValue() == null) {
@@ -597,29 +607,28 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
uploadForm.getField("version").setValue("");
return;
}
-
+
String fileName = event.getNewValue().toString();
-
+
if (config.allPackages != null) {
- for(PackageAndLatestVersionComposite plv : config.allPackages) {
+ for (PackageAndLatestVersionComposite plv : config.allPackages) {
if (plv.getGeneralPackage().getName().equals(fileName)) {
try {
String version = plv.getLatestPackageVersion().getVersion();
-
+
PackageVersionFormatDescription format = cliScriptPackageType.getVersionFormat();
if (format == null) {
return;
}
-
+
if (format.getOsgiVersionExtractionRegex() == null) {
return;
}
-
+
String regex = format.getOsgiVersionExtractionRegex();
int group = format.getOsgiVersionGroupIndex();
String oldOsgiVersion = getOsgiVersion(version, regex, group);
-
-
+
OSGiVersion v = new OSGiVersion(oldOsgiVersion);
if (v.getMicroIfDefined() != null) {
v.setMicro(v.getMicro() + 1);
@@ -628,9 +637,9 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
} else {
v.setMajor(v.getMajor() + 1);
}
-
+
String newVersion = version.replace(oldOsgiVersion, v.toString());
-
+
uploadForm.getField("editableVersion").setValue(newVersion);
uploadForm.getField("version").setValue(newVersion);
return;
@@ -640,11 +649,12 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
}
}
}
-
+
//no existing package exists with the same name as the file being uploaded
-
+
String defaultVersion = "";
- if (cliScriptPackageType.getVersionFormat() != null && cliScriptPackageType.getVersionFormat().getOsgiVersionExtractionRegex() != null) {
+ if (cliScriptPackageType.getVersionFormat() != null
+ && cliScriptPackageType.getVersionFormat().getOsgiVersionExtractionRegex() != null) {
//check if the package format understands plain OSGi versioning
if (matches("1.0", cliScriptPackageType.getVersionFormat().getFullFormatRegex())) {
defaultVersion = "1.0";
@@ -652,22 +662,22 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
}
uploadForm.getField("editableVersion").setValue(defaultVersion);
uploadForm.getField("version").setValue(defaultVersion);
- }
+ }
}
}
});
-
+
return uploadForm;
}
-
+
private void loadPackageType(AsyncCallback<PackageTypeAndVersionFormatComposite> handler) {
GWTServiceLookup.getContentService().findPackageType(null, PACKAGE_TYPE_NAME, handler);
}
-
+
private void checkAuthenticationAndDo(final AsyncCallback<Void> action) {
String username = anotherUserName.getEnteredValue();
String password = anotherUserPassword.getEnteredValue();
-
+
GWTServiceLookup.getSubjectService().checkAuthentication(username, password, new AsyncCallback<Subject>() {
public void onFailure(Throwable caught) {
config.selectedSubject = null;
@@ -675,10 +685,10 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
markForRedraw();
action.onFailure(caught);
}
-
+
public void onSuccess(Subject result) {
config.selectedSubject = result;
- verifyUserButton.setIcons(result == null ? failureIcon : successIcon);
+ verifyUserButton.setIcons(result == null ? failureIcon : successIcon);
markForRedraw();
if (result == null) {
action.onFailure(null);
@@ -688,17 +698,17 @@ public class CliNotificationSenderForm extends AbstractNotificationSenderForm {
}
});
}
-
+
private static native String getOsgiVersion(String version, String osgiRegex, int groupIdx) /*-{
- var re = new RegExp(osgiRegex);
- var groupRef = '$' + groupIdx;
- version = version.replace(re, groupRef);
-
- return version;
- }-*/;
-
+ var re = new RegExp(osgiRegex);
+ var groupRef = '$' + groupIdx;
+ version = version.replace(re, groupRef);
+
+ return version;
+ }-*/;
+
private static native boolean matches(String string, String regex) /*-{
- var re = new RegExp(regex);
- return re.test(string);
- }-*/;
-}
+ var re = new RegExp(regex);
+ return re.test(string);
+ }-*/;
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java
index 3527da5..3ba2182 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/DampeningAlertDefinitionForm.java
@@ -578,16 +578,16 @@ public class DampeningAlertDefinitionForm extends LocatableDynamicForm implement
private String getTimeUnitsTitle(AlertDampening.TimeUnits units) {
switch (units) {
case MINUTES: {
- return MSG.common_label_minutes();
+ return MSG.common_unit_minutes();
}
case HOURS: {
- return MSG.common_label_hours();
+ return MSG.common_unit_hours();
}
case DAYS: {
- return MSG.common_label_days();
+ return MSG.common_unit_days();
}
case WEEKS: {
- return MSG.common_label_weeks();
+ return MSG.common_unit_weeks();
}
default: {
throw new IllegalStateException(MSG.view_alert_common_tab_invalid_time_units(units.name())); // should never happen
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
index 04012b1..a887fcc 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java
@@ -700,8 +700,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
ops.put(opDef.getName(), opDef.getDisplayName());
}
- SelectItem opSelection = new SelectItem(OPERATION_NAME_ITEMNAME, MSG
- .view_alert_definition_condition_editor_operation_value());
+ SelectItem opSelection = new SelectItem(OPERATION_NAME_ITEMNAME, MSG.common_title_value());
opSelection.setValueMap(ops);
opSelection.setDefaultValue(ops.keySet().iterator().next()); // just use the first one
opSelection.setWidth("*");
@@ -709,17 +708,12 @@ public class NewConditionEditor extends LocatableDynamicForm {
opSelection.setShowIfCondition(ifFunc);
formItems.add(opSelection);
- SelectItem opResultsSelection = new SelectItem(OPERATION_RESULTS_ITEMNAME, MSG
- .view_alert_definition_condition_editor_operation_status());
+ SelectItem opResultsSelection = new SelectItem(OPERATION_RESULTS_ITEMNAME, MSG.common_title_status());
LinkedHashMap<String, String> operationStatuses = new LinkedHashMap<String, String>(4);
- operationStatuses.put(OperationRequestStatus.INPROGRESS.name(), MSG
- .view_alert_definition_condition_editor_operation_status_inprogress());
- operationStatuses.put(OperationRequestStatus.SUCCESS.name(), MSG
- .view_alert_definition_condition_editor_operation_status_success());
- operationStatuses.put(OperationRequestStatus.FAILURE.name(), MSG
- .view_alert_definition_condition_editor_operation_status_failure());
- operationStatuses.put(OperationRequestStatus.CANCELED.name(), MSG
- .view_alert_definition_condition_editor_operation_status_canceled());
+ operationStatuses.put(OperationRequestStatus.INPROGRESS.name(), MSG.common_status_inprogress());
+ operationStatuses.put(OperationRequestStatus.SUCCESS.name(), MSG.common_status_success());
+ operationStatuses.put(OperationRequestStatus.FAILURE.name(), MSG.common_status_failed());
+ operationStatuses.put(OperationRequestStatus.CANCELED.name(), MSG.common_status_canceled());
opResultsSelection.setValueMap(operationStatuses);
opResultsSelection.setDefaultValue(OperationRequestStatus.FAILURE.name());
opResultsSelection.setWrapTitle(false);
@@ -741,11 +735,11 @@ public class NewConditionEditor extends LocatableDynamicForm {
SelectItem eventSeveritySelection = new SelectItem(EVENT_SEVERITY_ITEMNAME, MSG
.view_alert_definition_condition_editor_event_severity());
LinkedHashMap<String, String> severities = new LinkedHashMap<String, String>(5);
- severities.put(EventSeverity.DEBUG.name(), MSG.view_alert_definition_condition_editor_event_severity_debug());
- severities.put(EventSeverity.INFO.name(), MSG.view_alert_definition_condition_editor_event_severity_info());
- severities.put(EventSeverity.WARN.name(), MSG.view_alert_definition_condition_editor_event_severity_warn());
- severities.put(EventSeverity.ERROR.name(), MSG.view_alert_definition_condition_editor_event_severity_error());
- severities.put(EventSeverity.FATAL.name(), MSG.view_alert_definition_condition_editor_event_severity_fatal());
+ severities.put(EventSeverity.DEBUG.name(), MSG.common_severity_debug());
+ severities.put(EventSeverity.INFO.name(), MSG.common_severity_info());
+ severities.put(EventSeverity.WARN.name(), MSG.common_severity_warn());
+ severities.put(EventSeverity.ERROR.name(), MSG.common_severity_error());
+ severities.put(EventSeverity.FATAL.name(), MSG.common_severity_fatal());
eventSeveritySelection.setValueMap(severities);
eventSeveritySelection.setDefaultValue(EventSeverity.ERROR.name());
eventSeveritySelection.setWrapTitle(false);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
index b2763d9..4f78a16 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentListView.java
@@ -83,8 +83,7 @@ public class BundleDeploymentListView extends Table<BundleDeploymentDataSource>
+ LinkManager.getBundleDeploymentLink(record
.getAttributeAsInt(BundleDeploymentDataSource.FIELD_BUNDLE_ID), record
.getAttributeAsInt(BundleDeploymentDataSource.FIELD_ID)) + "\">"
- + StringUtility.escapeHtml(String.valueOf(value))
- + "</a>";
+ + StringUtility.escapeHtml(String.valueOf(value)) + "</a>";
}
});
} else {
@@ -119,7 +118,7 @@ public class BundleDeploymentListView extends Table<BundleDeploymentDataSource>
String err = event.getRecord().getAttribute(BundleDeploymentDataSource.FIELD_ERROR_MESSAGE);
if (err != null && err.length() > 0) {
err = "<pre>" + err + "</pre>";
- new ErrorMessageWindow(extendLocatorId("errWin"), MSG.common_title_error(), err).show();
+ new ErrorMessageWindow(extendLocatorId("errWin"), MSG.common_severity_error(), err).show();
}
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
index 03484a4..a7b58a2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleDeploymentView.java
@@ -197,8 +197,8 @@ public class BundleDeploymentView extends LocatableVLayout implements Bookmarkab
status.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
- ErrorMessageWindow win = new ErrorMessageWindow(extendLocatorId("errWin"),
- MSG.common_title_error(), "<pre>" + deployment.getErrorMessage() + "</pre>");
+ ErrorMessageWindow win = new ErrorMessageWindow(extendLocatorId("errWin"), MSG
+ .common_severity_error(), "<pre>" + deployment.getErrorMessage() + "</pre>");
win.show();
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
index d1e5a74..749b042 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deployment/BundleResourceDeploymentHistoryListView.java
@@ -97,7 +97,7 @@ public class BundleResourceDeploymentHistoryListView extends LocatableVLayout {
action.setAutoFitWidth(true);
action.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
- ListGridField message = new ListGridField("info", MSG.common_title_info());
+ ListGridField message = new ListGridField("info", MSG.common_severity_info());
message.setWidth("60%");
ListGridField user = new ListGridField("user", MSG.common_title_user());
@@ -163,7 +163,7 @@ public class BundleResourceDeploymentHistoryListView extends LocatableVLayout {
timestamp.setDateFormatter(DateDisplayFormat.TOLOCALESTRING);
StaticTextItem action = new StaticTextItem("action", MSG.view_bundle_deploy_action());
- StaticTextItem info = new StaticTextItem("info", MSG.common_title_info());
+ StaticTextItem info = new StaticTextItem("info", MSG.common_severity_info());
StaticTextItem category = new StaticTextItem("category", MSG.common_title_category());
StaticTextItem message = new StaticTextItem("message", MSG.common_title_message());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
index bddf144..b000631 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/form/AbstractRecordEditor.java
@@ -63,7 +63,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
public abstract class AbstractRecordEditor<DS extends RPCDataSource> extends LocatableVLayout implements
BookmarkableView, DetailsView {
- private static final Label LOADING_LABEL = new Label(MSG.widget_recordEditor_label_loading());
+ private static final Label LOADING_LABEL = new Label(MSG.common_msg_loading());
private static final String FIELD_ID = "id";
private static final String FIELD_NAME = "name";
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java
index 1978665..8bad3dd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/measurement/AbstractMeasurementRangeEditor.java
@@ -74,9 +74,9 @@ public abstract class AbstractMeasurementRangeEditor extends LocatableDynamicFor
static {
lastUnits = new LinkedHashMap<String, String>(3);
- lastUnits.put(String.valueOf(MeasurementUtility.UNIT_MINUTES), MSG.common_label_minutes());
- lastUnits.put(String.valueOf(MeasurementUtility.UNIT_HOURS), MSG.common_label_hours());
- lastUnits.put(String.valueOf(MeasurementUtility.UNIT_DAYS), MSG.common_label_days());
+ lastUnits.put(String.valueOf(MeasurementUtility.UNIT_MINUTES), MSG.common_unit_minutes());
+ lastUnits.put(String.valueOf(MeasurementUtility.UNIT_HOURS), MSG.common_unit_hours());
+ lastUnits.put(String.valueOf(MeasurementUtility.UNIT_DAYS), MSG.common_unit_days());
lastValues = new String[] { "4", "8", "12", "24", "30", "36", "48", "60", "90", "120" };
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/drift/RecentDriftsPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/drift/RecentDriftsPortlet.java
index ebee689..48c7c2f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/drift/RecentDriftsPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/drift/RecentDriftsPortlet.java
@@ -30,7 +30,7 @@ public class RecentDriftsPortlet extends AbstractRecentDriftsPortlet {
// A non-displayed, persisted identifier for the portlet
public static final String KEY = "RecentDrifts";
// A default displayed, persisted name for the portlet
- public static final String NAME = MSG.view_portlet_defaultName_recentDrifts();
+ public static final String NAME = MSG.common_title_recent_drifts();
public RecentDriftsPortlet(String locatorId) {
super(locatorId, EntityContext.forSubsystemView());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
index 0ee9dd1..132f154 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
@@ -183,7 +183,7 @@ public class RecentlyAddedResourcesPortlet extends LocatableVLayout implements C
// second combobox for timeframe for problem resources search.
final SelectItem maximumTimeRecentlyAddedComboBox = new SelectItem(RECENTLY_ADDED_SHOW_HRS);
maximumTimeRecentlyAddedComboBox.setTitle("Over ");
- maximumTimeRecentlyAddedComboBox.setHint("<nobr><b> " + MSG.common_label_hours() + " </b></nobr>");
+ maximumTimeRecentlyAddedComboBox.setHint("<nobr><b> " + MSG.common_unit_hours() + " </b></nobr>");
//spinder 9/3/10: the following is required workaround to disable editability of combobox.
maximumTimeRecentlyAddedComboBox.setType("selection");
//define acceptable values for display amount
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
index 7c91dc1..736b1a8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
@@ -241,7 +241,7 @@ public class ProblemResourcesPortlet extends Table<ProblemResourcesDataSource> i
//------------- Build second combobox for timeframe for problem resources search.
final SelectItem maximumTimeProblemResourcesComboBox = new SelectItem(PROBLEM_RESOURCE_SHOW_HRS);
maximumTimeProblemResourcesComboBox.setTitle(MSG.common_title_over() + " ");
- maximumTimeProblemResourcesComboBox.setHint("<nobr><b> " + MSG.common_label_hours() + " </b></nobr>");
+ maximumTimeProblemResourcesComboBox.setHint("<nobr><b> " + MSG.common_unit_hours() + " </b></nobr>");
//spinder 9/3/10: the following is required workaround to disable editability of combobox.
maximumTimeProblemResourcesComboBox.setType("selection");
//define acceptable values for display amount
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java
index 15cfbf1..8d3e8c2 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java
@@ -40,7 +40,7 @@ public class TagCloudPortlet extends TagCloudView implements Portlet {
// A non-displayed, persisted identifier for the portlet
public static final String KEY = "TagCloud";
// A default displayed, persisted name for the portlet
- public static final String NAME = MSG.view_portlet_defaultName_tagCloud();
+ public static final String NAME = MSG.common_title_tag_cloud();
public TagCloudPortlet(String locatorId) {
super(locatorId);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/AbstractDriftChangeSetsTreeDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/AbstractDriftChangeSetsTreeDataSource.java
index 7d34297..e8fb327 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/AbstractDriftChangeSetsTreeDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/AbstractDriftChangeSetsTreeDataSource.java
@@ -109,7 +109,7 @@ public abstract class AbstractDriftChangeSetsTreeDataSource extends RPCDataSourc
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_drift_changeset_tree_loadFailure(), caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_drift_snapshots_tree_loadFailure(), caught);
response.setStatus(DSResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
@@ -123,7 +123,7 @@ public abstract class AbstractDriftChangeSetsTreeDataSource extends RPCDataSourc
driftService.findDriftsByCriteria(criteria, new AsyncCallback<PageList<? extends Drift>>() {
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_drift_changeset_tree_loadFailure(), caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_drift_snapshots_tree_loadFailure(), caught);
response.setStatus(DSResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationEditView.java
index 375f2af..0ae1f7a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationEditView.java
@@ -150,7 +150,7 @@ public class DriftConfigurationEditView extends LocatableVLayout implements Prop
}
public void onSuccess(Void result) {
- Message message = new Message(MSG.view_drift_success_configurationUpdated(), Message.Severity.Info);
+ Message message = new Message(MSG.view_drift_success_defUpdated(), Message.Severity.Info);
switch (context.getType()) {
case Resource:
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationView.java
index 364d25d..00fa49f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftConfigurationView.java
@@ -58,7 +58,7 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message;
*/
public class DriftConfigurationView extends TableSection<DriftConfigurationDataSource> {
- public static final ViewName SUBSYSTEM_VIEW_ID = new ViewName("DriftConfigs", MSG.common_title_configuration());
+ public static final ViewName SUBSYSTEM_VIEW_ID = new ViewName("DriftDefs", MSG.common_title_definitions());
private static SortSpecifier DEFAULT_SORT_SPECIFIER = new SortSpecifier(DriftConfigurationDataSource.ATTR_NAME,
SortDirection.ASCENDING);
@@ -210,7 +210,7 @@ public class DriftConfigurationView extends TableSection<DriftConfigurationDataS
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_drift_failure_deleteConfigs(), caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_drift_failure_deleteDefs(), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDataSource.java
index d9f89aa..cdb85b7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDataSource.java
@@ -77,9 +77,9 @@ public class DriftDataSource extends RPCDataSource<DriftComposite, GenericDriftC
public static final String ATTR_PATH = "path";
public static final String FILTER_CATEGORIES = "categories";
- public static final String FILTER_CONFIGURATION = "configuration";
- public static final String FILTER_CHANGE_SET = "changeSet";
+ public static final String FILTER_DEFINITION = "definition";
public static final String FILTER_PATH = "path";
+ public static final String FILTER_SNAPSHOT = "snapshot";
private DriftGWTServiceAsync driftService = GWTServiceLookup.getDriftService();
@@ -109,11 +109,10 @@ public class DriftDataSource extends RPCDataSource<DriftComposite, GenericDriftC
ctimeField.setHoverCustomizer(TimestampCellFormatter.getHoverCustomizer(ATTR_CTIME));
fields.add(ctimeField);
- ListGridField changeSetConfigField = new ListGridField(ATTR_CHANGESET_CONFIG, MSG.common_title_configuration());
+ ListGridField changeSetConfigField = new ListGridField(ATTR_CHANGESET_CONFIG, MSG.common_title_definition());
fields.add(changeSetConfigField);
- ListGridField changeSetVersionField = new ListGridField(ATTR_CHANGESET_VERSION, MSG
- .view_drift_table_changeSet());
+ ListGridField changeSetVersionField = new ListGridField(ATTR_CHANGESET_VERSION, MSG.view_drift_table_snapshot());
fields.add(changeSetVersionField);
ListGridField categoryField = new ListGridField(ATTR_CATEGORY, MSG.common_title_category());
@@ -199,7 +198,7 @@ public class DriftDataSource extends RPCDataSource<DriftComposite, GenericDriftC
// only get the desired config names (substring match)
// note - this does not alter the PageList row count, which, I think, makes this
// ok without messing up paging.
- String configFilter = getFilter(request, FILTER_CONFIGURATION, String.class);
+ String configFilter = getFilter(request, FILTER_DEFINITION, String.class);
if (null != configFilter && !configFilter.isEmpty()) {
configFilter = configFilter.toLowerCase();
for (Iterator<DriftComposite> i = result.getValues().iterator(); i.hasNext();) {
@@ -288,7 +287,7 @@ public class DriftDataSource extends RPCDataSource<DriftComposite, GenericDriftC
return null; // user didn't select any priorities - return null to indicate no data should be displayed
}
- String changeSetFilter = getFilter(request, FILTER_CHANGE_SET, String.class);
+ String changeSetFilter = getFilter(request, FILTER_SNAPSHOT, String.class);
String pathFilter = getFilter(request, FILTER_PATH, String.class);
// note, this criteria does not allow for query-time config name filtering. That filter is applied lazily
// to the query results.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDetailsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDetailsView.java
index 1791971..6961071 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDetailsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftDetailsView.java
@@ -98,7 +98,7 @@ public class DriftDetailsView extends LocatableVLayout {
DynamicForm driftForm = new LocatableDynamicForm(extendLocatorId("form"));
driftForm.setIsGroup(true);
- driftForm.setGroupTitle(MSG.view_drift());
+ driftForm.setGroupTitle(MSG.view_tabs_common_drift());
driftForm.setWrapItemTitles(false);
driftForm.setNumCols(4);
@@ -203,7 +203,7 @@ public class DriftDetailsView extends LocatableVLayout {
private DynamicForm createChangeSetForm(Drift<?, ?> drift) {
DynamicForm changeSetForm = new LocatableDynamicForm(extendLocatorId("changeSetForm"));
changeSetForm.setIsGroup(true);
- changeSetForm.setGroupTitle(MSG.view_drift_table_changeSet());
+ changeSetForm.setGroupTitle(MSG.view_drift_table_snapshot());
changeSetForm.setWrapItemTitles(false);
DriftChangeSet<?> changeSet = drift.getChangeSet();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java
index d603dbb..ca5bcb8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java
@@ -122,9 +122,8 @@ public class DriftHistoryView extends StringIDTableSection<DriftDataSource> {
SelectItem categoryFilter = new EnumSelectItem(DriftDataSource.FILTER_CATEGORIES, MSG.common_title_category(),
DriftCategory.class, categories, categoryIcons);
- TextItem configurationFilter = new TextItem(DriftDataSource.FILTER_CONFIGURATION, MSG
- .common_title_configuration());
- TextItem changeSetFilter = new TextItem(DriftDataSource.FILTER_CHANGE_SET, MSG.view_drift_table_changeSet());
+ TextItem configurationFilter = new TextItem(DriftDataSource.FILTER_DEFINITION, MSG.common_title_definition());
+ TextItem changeSetFilter = new TextItem(DriftDataSource.FILTER_SNAPSHOT, MSG.view_drift_table_snapshot());
TextItem pathFilter = new TextItem(DriftDataSource.FILTER_PATH, MSG.common_title_path());
if (isShowFilterForm()) {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeDataSource.java
index 693998b..4da7eac 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeDataSource.java
@@ -67,7 +67,7 @@ public class ResourceDriftChangeSetsTreeDataSource extends AbstractDriftChangeSe
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_drift_changeset_tree_loadFailure(), caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_drift_snapshots_tree_loadFailure(), caught);
response.setStatus(DSResponse.STATUS_FAILURE);
processResponse(request.getRequestId(), response);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeView.java
index 0df6df4..9869a24 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsTreeView.java
@@ -76,7 +76,7 @@ public class ResourceDriftChangeSetsTreeView extends AbstractDriftChangeSetsTree
@Override
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_drift_failure_deleteConfigs(), caught);
+ CoreGUI.getErrorHandler().handleError(MSG.view_drift_failure_deleteDefs(), caught);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsView.java
index ab54e88..5ac7143 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftChangeSetsView.java
@@ -27,7 +27,7 @@ import org.rhq.core.domain.resource.composite.ResourceComposite;
*/
public class ResourceDriftChangeSetsView extends DriftChangeSetsView {
public static ResourceDriftChangeSetsView get(String locatorId, ResourceComposite composite) {
- String tableTitle = MSG.view_drift_changeSets_resourceViewTitle();
+ String tableTitle = MSG.view_drift_snapshots_resourceViewTitle();
EntityContext context = EntityContext.forResource(composite.getResource().getId());
boolean hasWriteAccess = composite.getResourcePermission().isDrift();
return new ResourceDriftChangeSetsView(locatorId, tableTitle, context, hasWriteAccess);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftConfigurationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftConfigurationView.java
index c68ea75..c6163ac 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftConfigurationView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/ResourceDriftConfigurationView.java
@@ -27,7 +27,7 @@ import org.rhq.core.domain.resource.composite.ResourceComposite;
*/
public class ResourceDriftConfigurationView extends DriftConfigurationView {
public static ResourceDriftConfigurationView get(String locatorId, ResourceComposite composite) {
- String tableTitle = MSG.view_drift_table_resourceConfig();
+ String tableTitle = MSG.view_drift_table_resourceDef();
EntityContext context = EntityContext.forResource(composite.getResource().getId());
boolean hasWriteAccess = composite.getResourcePermission().isDrift();
return new ResourceDriftConfigurationView(locatorId, tableTitle, context, hasWriteAccess);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizard.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizard.java
index 0aa7400..5af4465 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizard.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizard.java
@@ -55,11 +55,11 @@ public class DriftAddConfigWizard extends AbstractDriftAddConfigWizard {
}
public String getWindowTitle() {
- return MSG.view_drift_wizard_addConfig_windowTitle();
+ return MSG.view_drift_wizard_addDef_windowTitle();
}
public String getTitle() {
- return MSG.view_drift_wizard_addConfig_title(getType().getName());
+ return MSG.view_drift_wizard_addDef_title(getType().getName());
}
public String getSubtitle() {
@@ -78,7 +78,7 @@ public class DriftAddConfigWizard extends AbstractDriftAddConfigWizard {
new AsyncCallback<Void>() {
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
- new Message(MSG.view_drift_wizard_addConfig_success(getNewDriftConfiguration().getName()),
+ new Message(MSG.view_drift_wizard_addDef_success(getNewDriftConfiguration().getName()),
Message.Severity.Info));
getView().closeDialog();
DriftAddConfigWizard.this.table.refresh();
@@ -86,7 +86,7 @@ public class DriftAddConfigWizard extends AbstractDriftAddConfigWizard {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
- MSG.view_drift_wizard_addConfig_failure(getNewDriftConfiguration().getName()), caught);
+ MSG.view_drift_wizard_addDef_failure(getNewDriftConfiguration().getName()), caught);
getView().closeDialog();
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizardInfoStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizardInfoStep.java
index 3f66b79..6abc7e6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizardInfoStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/wizard/DriftAddConfigWizardInfoStep.java
@@ -63,12 +63,12 @@ public class DriftAddConfigWizardInfoStep extends AbstractWizardStep {
form.setNumCols(1);
List<FormItem> formItems = new ArrayList<FormItem>(2);
- SelectItem templateSelect = new SelectItem("template", MSG.view_drift_wizard_addConfig_templatePrompt());
+ SelectItem templateSelect = new SelectItem("template", MSG.view_drift_wizard_addDef_templatePrompt());
templateSelect.setTitleOrientation(TitleOrientation.TOP);
templateSelect.setAlign(Alignment.LEFT);
templateSelect.setWidth(300);
templateSelect.setRequired(true);
- FormUtility.addContextualHelp(templateSelect, MSG.view_drift_wizard_addConfig_templateHelp());
+ FormUtility.addContextualHelp(templateSelect, MSG.view_drift_wizard_addDef_templateHelp());
Set<ConfigurationTemplate> templates = wizard.getType().getDriftConfigurationTemplates();
final HashMap<String, ConfigurationTemplate> templatesMap = new HashMap<String, ConfigurationTemplate>(
@@ -115,7 +115,7 @@ public class DriftAddConfigWizardInfoStep extends AbstractWizardStep {
}
public String getName() {
- return MSG.view_drift_wizard_addConfig_infoStepName();
+ return MSG.view_drift_wizard_addDef_infoStepName();
}
public Configuration getStartingConfiguration() {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/InventoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/InventoryView.java
index f7b50a3..c733fef 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/InventoryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/InventoryView.java
@@ -59,8 +59,7 @@ public class InventoryView extends AbstractSectionedLeftNavigationView {
public static final ViewName VIEW_ID = new ViewName("Inventory", MSG.common_title_inventory());
// view IDs for Resources section
- private static final ViewName RESOURCES_SECTION_VIEW_ID = new ViewName("Resources", MSG
- .view_inventory_resources_title());
+ private static final ViewName RESOURCES_SECTION_VIEW_ID = new ViewName("Resources", MSG.common_title_resources());
private static final ViewName PAGE_AUTODISCOVERY_QUEUE = new ViewName("AutodiscoveryQueue", MSG
.view_inventory_adq());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java
index 43f130f..67d6556 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/AbstractMeasurementScheduleListView.java
@@ -39,9 +39,8 @@ import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
*/
public abstract class AbstractMeasurementScheduleListView extends Table {
- private static final SortSpecifier[] SORT_SPECIFIERS = new SortSpecifier[] {
- new SortSpecifier(MeasurementScheduleCriteria.SORT_FIELD_DISPLAY_NAME, SortDirection.ASCENDING)
- };
+ private static final SortSpecifier[] SORT_SPECIFIERS = new SortSpecifier[] { new SortSpecifier(
+ MeasurementScheduleCriteria.SORT_FIELD_DISPLAY_NAME, SortDirection.ASCENDING) };
public AbstractMeasurementScheduleListView(String locatorId, String title,
AbstractMeasurementScheduleCompositeDataSource dataSource, Criteria criteria, String[] excludedFieldNames) {
@@ -122,27 +121,27 @@ public abstract class AbstractMeasurementScheduleListView extends Table {
if (minutes > 60) {
long hours = minutes / 60;
minutes = minutes % 60;
- result.append(hours).append(" ").append(MSG.common_label_hours());
+ result.append(hours).append(" ").append(MSG.common_unit_hours());
}
if (minutes != 0) {
if (result.length() != 0) {
result.append(", ");
}
- result.append(minutes).append(" ").append(MSG.common_label_minutes());
+ result.append(minutes).append(" ").append(MSG.common_unit_minutes());
}
}
if (seconds != 0) {
if (result.length() != 0) {
result.append(", ");
}
- result.append(seconds).append(" ").append(MSG.common_label_seconds());
+ result.append(seconds).append(" ").append(MSG.common_unit_seconds());
}
}
if (milliseconds != 0) {
if (result.length() != 0) {
result.append(", ");
}
- result.append(milliseconds).append(" ").append(MSG.common_label_milliseconds());
+ result.append(milliseconds).append(" ").append(MSG.common_unit_milliseconds());
}
return result.toString();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/UpdateCollectionIntervalWidget.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/UpdateCollectionIntervalWidget.java
index 76378f0..dce5a3f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/UpdateCollectionIntervalWidget.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/UpdateCollectionIntervalWidget.java
@@ -55,9 +55,9 @@ public class UpdateCollectionIntervalWidget extends LocatableHLayout implements
// Maps values to labels for the units select list.
private static final LinkedHashMap<String, String> VALUE_MAP = new LinkedHashMap<String, String>();
static {
- VALUE_MAP.put(UNITS_SECONDS, MSG.common_label_seconds());
- VALUE_MAP.put(UNITS_MINUTES, MSG.common_label_minutes());
- VALUE_MAP.put(UNITS_HOURS, MSG.common_label_hours());
+ VALUE_MAP.put(UNITS_SECONDS, MSG.common_unit_seconds());
+ VALUE_MAP.put(UNITS_MINUTES, MSG.common_unit_minutes());
+ VALUE_MAP.put(UNITS_HOURS, MSG.common_unit_hours());
}
private AbstractMeasurementScheduleListView schedulesView;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryDetailsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryDetailsView.java
index ae7a365..3f9279e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryDetailsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/operation/history/AbstractOperationHistoryDetailsView.java
@@ -194,7 +194,7 @@ public abstract class AbstractOperationHistoryDetailsView<T extends OperationHis
statusItem.setTooltip(MSG.common_status_failed());
}
LinkItem errorLinkItem = new LinkItem("errorLink");
- errorLinkItem.setTitle(MSG.common_title_error());
+ errorLinkItem.setTitle(MSG.common_severity_error());
errorLinkItem.setLinkTitle(getShortErrorMessage(operationHistory));
errorLinkItem.addClickHandler(new ClickHandler() {
@Override
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
index 72442eb..bf022a0 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
@@ -65,7 +65,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
*/
public class ResourceGroupListView extends Table<ResourceGroupCompositeDataSource> {
- private static final String DEFAULT_TITLE = MSG.view_inventory_groups_resourceGroups();
+ private static final String DEFAULT_TITLE = MSG.common_title_resourceGroups();
// our static factory method will set this to a non-null resource ID if the user can modify that resource's group membership
private Integer resourceIdToModify = null;
@@ -268,7 +268,7 @@ public class ResourceGroupListView extends Table<ResourceGroupCompositeDataSourc
boolean canModifyMembership) {
ResourceGroupListView view = new ResourceGroupListView(locatorId, new Criteria("explicitResourceId", String
- .valueOf(explicitResourceId)), MSG.view_inventory_groups_resourceGroups());
+ .valueOf(explicitResourceId)), MSG.common_title_resourceGroups());
if (canModifyMembership) {
view.resourceIdToModify = Integer.valueOf(explicitResourceId);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupContextMenu.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupContextMenu.java
index 3d973d5..57c3ced 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupContextMenu.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupContextMenu.java
@@ -208,7 +208,7 @@ public class ResourceGroupContextMenu extends LocatableMenu {
addItem(new MenuItemSeparator());
// Operations Menu
- MenuItem operations = new MenuItem(MSG.view_tree_common_contextMenu_operations());
+ MenuItem operations = new MenuItem(MSG.common_title_operations());
boolean operationsEnabled = (groupComposite.getResourcePermission().isControl()
&& null != resourceType.getOperationDefinitions() && !resourceType.getOperationDefinitions().isEmpty());
operations.setEnabled(operationsEnabled);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
index 7756bc1..103acdd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
@@ -163,7 +163,7 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
List<TwoLevelTab> tabs = new ArrayList<TwoLevelTab>();
summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), new ViewName("Summary", MSG
- .view_tabs_common_summary()), ImageManager.getResourceIcon(ResourceCategory.SERVICE, Boolean.TRUE));
+ .common_title_summary()), ImageManager.getResourceIcon(ResourceCategory.SERVICE, Boolean.TRUE));
summaryActivity = new SubTab(summaryTab.extendLocatorId("Activity"), new ViewName("Activity", MSG
.view_tabs_common_activity()), null);
summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), new ViewName("Timeline", MSG
@@ -183,11 +183,11 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
tabs.add(inventoryTab);
alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), new ViewName("Alerts", MSG
- .view_tabs_common_alerts()), "/images/icons/Alert_grey_16.png");
+ .common_title_alerts()), "/images/icons/Alert_grey_16.png");
this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), new ViewName("History", MSG
.view_tabs_common_history()), null);
this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), new ViewName("Definitions", MSG
- .view_tabs_common_definitions()), null);
+ .common_title_definitions()), null);
alertsTab.registerSubTabs(alertHistory, alertDef);
tabs.add(alertsTab);
@@ -215,7 +215,7 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
tabs.add(eventsTab);
operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), new ViewName("Operations", MSG
- .view_tabs_common_operations()), "/images/icons/Operation_grey_16.png");
+ .common_title_operations()), "/images/icons/Operation_grey_16.png");
this.operationsSchedules = new SubTab(operationsTab.extendLocatorId("Schedules"), new ViewName("Schedules", MSG
.view_tabs_common_schedules()), null);
this.operationsHistory = new SubTab(operationsTab.extendLocatorId("History"), new ViewName("History", MSG
@@ -224,7 +224,7 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
tabs.add(operationsTab);
configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), new ViewName("Configuration",
- MSG.view_tabs_common_configuration()), "/images/icons/Configure_grey_16.png");
+ MSG.common_title_configuration()), "/images/icons/Configure_grey_16.png");
this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), new ViewName("Current", MSG
.view_tabs_common_current()), null);
this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), new ViewName("History", MSG
@@ -236,8 +236,8 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
.view_tabs_common_drift()), "subsystems/drift/Drift_16.png");
this.driftHistory = new SubTab(driftTab.extendLocatorId(DriftSubTab.HISTORY), new ViewName(DriftSubTab.HISTORY,
MSG.view_tabs_common_history()), null);
- this.driftConfig = new SubTab(driftTab.extendLocatorId(DriftSubTab.CONFIGURATION), new ViewName(
- DriftSubTab.CONFIGURATION, MSG.view_tabs_common_configuration()), null);
+ this.driftConfig = new SubTab(driftTab.extendLocatorId(DriftSubTab.DEFINITIONS), new ViewName(
+ DriftSubTab.DEFINITIONS, MSG.common_title_definitions()), null);
driftTab.registerSubTabs(driftHistory, driftConfig);
tabs.add(driftTab);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationTable.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationTable.java
index ae52f4d..399e6a0 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationTable.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/HistoryGroupResourceConfigurationTable.java
@@ -101,7 +101,7 @@ public class HistoryGroupResourceConfigurationTable extends Table<GroupResourceC
fieldStatus.addRecordClickHandler(new RecordClickHandler() {
@Override
public void onRecordClick(RecordClickEvent event) {
- new ErrorMessageWindow("errWin", MSG.common_title_error(), getStatusHtmlString(event.getRecord()))
+ new ErrorMessageWindow("errWin", MSG.common_severity_error(), getStatusHtmlString(event.getRecord()))
.show();
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java
index 483a854..2d6a2cd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/HistoryGroupPluginConfigurationTable.java
@@ -104,7 +104,7 @@ public class HistoryGroupPluginConfigurationTable extends Table<HistoryGroupPlug
fieldStatus.addRecordClickHandler(new RecordClickHandler() {
@Override
public void onRecordClick(RecordClickEvent event) {
- new ErrorMessageWindow("errWin", MSG.common_title_error(), getStatusHtmlString(event.getRecord()))
+ new ErrorMessageWindow("errWin", MSG.common_severity_error(), getStatusHtmlString(event.getRecord()))
.show();
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/MembersView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/MembersView.java
index c483a25..bb6a935 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/MembersView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/inventory/MembersView.java
@@ -46,7 +46,7 @@ public class MembersView extends ResourceSearchView {
public MembersView(String locatorId, int groupId, boolean canModifyMembers) {
super(locatorId, new Criteria(ResourceDatasource.FILTER_GROUP_ID, String.valueOf(groupId)), MSG
- .view_inventory_resources_title_members());
+ .view_inventory_resources_members());
this.canModifyMembers = canModifyMembers;
this.groupId = groupId;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableDataSource.java
index 0511e9a..29c6911 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/monitoring/table/GroupMeasurementTableDataSource.java
@@ -71,7 +71,7 @@ public class GroupMeasurementTableDataSource extends MeasurementTableDataSource
nameField.setWidth("30%");
fields.add(nameField);
- ListGridField alertsField = new ListGridField(FIELD_ALERT_COUNT, MSG.view_resource_monitor_table_alerts());
+ ListGridField alertsField = new ListGridField(FIELD_ALERT_COUNT, MSG.common_title_alerts());
alertsField.setWidth("10%");
fields.add(alertsField);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
index beeb982..c7ddc3f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java
@@ -197,7 +197,7 @@ public class ResourceCompositeSearchView extends ResourceSearchView {
public static ResourceCompositeSearchView getChildrenOf(String locatorId, ResourceComposite parentResourceComposite) {
return new ResourceCompositeSearchView(locatorId, parentResourceComposite, new Criteria("parentId", String
- .valueOf(parentResourceComposite.getResource().getId())), MSG.view_inventory_resources_title_children());
+ .valueOf(parentResourceComposite.getResource().getId())), MSG.view_tabs_common_child_resources());
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index 53d5b18..da3f5e3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@ -81,7 +81,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
@SuppressWarnings("unchecked")
public class ResourceSearchView extends Table {
- private static final String DEFAULT_TITLE = MSG.view_inventory_resources_title();
+ private static final String DEFAULT_TITLE = MSG.common_title_resources();
private List<ResourceSelectListener> selectListeners = new ArrayList<ResourceSelectListener>();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ChildHistoryDetails.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ChildHistoryDetails.java
index 6e8105a..23100fc 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ChildHistoryDetails.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ChildHistoryDetails.java
@@ -126,7 +126,7 @@ public class ChildHistoryDetails extends LocatableVLayout {
createdResourceType.setValue(MSG.common_status_unknown());
}
- TextAreaItem errorMessage = new TextAreaItem("errorMessage", MSG.common_title_error());
+ TextAreaItem errorMessage = new TextAreaItem("errorMessage", MSG.common_severity_error());
errorMessage.setValue(history.getErrorMessage());
errorMessage.setTitleOrientation(TitleOrientation.TOP);
errorMessage.setColSpan(2);
@@ -202,7 +202,7 @@ public class ChildHistoryDetails extends LocatableVLayout {
deletedResourceType.setValue(MSG.common_status_unknown());
}
- TextAreaItem errorMessage = new TextAreaItem("errorMessage", MSG.common_title_error());
+ TextAreaItem errorMessage = new TextAreaItem("errorMessage", MSG.common_severity_error());
errorMessage.setValue(history.getErrorMessage());
errorMessage.setTitleOrientation(TitleOrientation.TOP);
errorMessage.setColSpan(2);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/OverviewForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/OverviewForm.java
index 245ab2c..3db8f68 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/OverviewForm.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/OverviewForm.java
@@ -144,7 +144,7 @@ public class OverviewForm extends EnhancedDynamicForm {
// Type
StaticTextItem typeItem = new StaticTextItem("type", MSG.view_summaryOverviewForm_field_type());
typeItem.setTooltip(MSG.view_summaryOverviewForm_label_plugin() + type.getPlugin() + "\n<br>"
- + MSG.view_summaryOverviewForm_label_type() + type.getName());
+ + MSG.common_title_type() + type.getName());
typeItem.setValue(AncestryUtil.getFormattedType(type));
formItems.add(typeItem);
@@ -152,7 +152,7 @@ public class OverviewForm extends EnhancedDynamicForm {
// Key
StaticTextItem keyItem = new StaticTextItem(ResourceDataSourceField.KEY.propertyName(),
- ResourceDataSourceField.KEY.title());
+ ResourceDataSourceField.KEY.title());
keyItem.setValue(resource.getResourceKey());
formItems.add(keyItem);
@@ -287,32 +287,33 @@ public class OverviewForm extends EnhancedDynamicForm {
// Timestamps
StaticTextItem ctimeItem = new StaticTextItem(ResourceDataSourceField.CTIME.propertyName(),
- ResourceDataSourceField.CTIME.title());
+ ResourceDataSourceField.CTIME.title());
String ctime = TimestampCellFormatter.format(resource.getCtime());
ctimeItem.setValue(ctime);
formItems.add(ctimeItem);
StaticTextItem itimeItem = new StaticTextItem(ResourceDataSourceField.ITIME.propertyName(),
- ResourceDataSourceField.ITIME.title());
+ ResourceDataSourceField.ITIME.title());
String itime = TimestampCellFormatter.format(resource.getItime());
itimeItem.setValue(itime);
formItems.add(itimeItem);
StaticTextItem mtimeItem = new StaticTextItem(ResourceDataSourceField.MTIME.propertyName(),
- ResourceDataSourceField.MTIME.title());
+ ResourceDataSourceField.MTIME.title());
String mtime = TimestampCellFormatter.format(resource.getMtime());
mtimeItem.setValue(mtime);
formItems.add(mtimeItem);
StaticTextItem modifierItem = new StaticTextItem(ResourceDataSourceField.MODIFIER.propertyName(),
- ResourceDataSourceField.MODIFIER.title());
+ ResourceDataSourceField.MODIFIER.title());
modifierItem.setValue(resource.getModifiedBy());
formItems.add(modifierItem);
// Traits
List<MeasurementDefinition> summaryTraitDefs = new ArrayList<MeasurementDefinition>();
for (MeasurementDefinition measurementDef : type.getMetricDefinitions()) {
- if (measurementDef.getDataType() == DataType.TRAIT && measurementDef.getDisplayType() == DisplayType.SUMMARY) {
+ if (measurementDef.getDataType() == DataType.TRAIT
+ && measurementDef.getDisplayType() == DisplayType.SUMMARY) {
summaryTraitDefs.add(measurementDef);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
index b6aa0fb..ae39e50 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
@@ -98,9 +98,9 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
}
public static class DriftSubTab {
- public static final String CONFIGURATION = "Configuration";
public static final String HISTORY = "History";
- public static final String CHANGE_SETS = "ChangeSets";
+ public static final String SNAPSHOTS = "Snapshots";
+ public static final String DEFINITIONS = "Definitions";
}
public static class OperationsSubTab {
@@ -146,8 +146,8 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
private SubTab configHistory;
private SubTab eventHistory;
private SubTab driftHistory;
- private SubTab driftChangeSets;
- private SubTab driftConfig;
+ private SubTab driftSnapshots;
+ private SubTab driftDefinitions;
private SubTab contentDeployed;
private SubTab contentNew;
private SubTab contentSubscrip;
@@ -164,7 +164,7 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
List<TwoLevelTab> tabs = new ArrayList<TwoLevelTab>();
summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), new ViewName("Summary", MSG
- .view_tabs_common_summary()), ImageManager.getResourceIcon(ResourceCategory.SERVICE, Boolean.TRUE));
+ .common_title_summary()), ImageManager.getResourceIcon(ResourceCategory.SERVICE, Boolean.TRUE));
summaryActivity = new SubTab(summaryTab.extendLocatorId("Activity"), new ViewName("Activity", MSG
.view_tabs_common_activity()), null);
summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), new ViewName("Timeline", MSG
@@ -191,11 +191,11 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
tabs.add(inventoryTab);
alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), new ViewName("Alerts", MSG
- .view_tabs_common_alerts()), "subsystems/alert/Alerts_16.png");
+ .common_title_alerts()), "subsystems/alert/Alerts_16.png");
this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), new ViewName("History", MSG
.view_tabs_common_history()), null);
this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), new ViewName("Definitions", MSG
- .view_tabs_common_definitions()), null);
+ .common_title_definitions()), null);
alertsTab.registerSubTabs(alertHistory, alertDef);
tabs.add(alertsTab);
@@ -225,7 +225,7 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
tabs.add(eventsTab);
operationsTab = new TwoLevelTab(getTabSet().extendLocatorId(Tab.OPERATIONS), new ViewName(Tab.OPERATIONS, MSG
- .view_tabs_common_operations()), "subsystems/control/Operation_grey_16.png");
+ .common_title_operations()), "subsystems/control/Operation_grey_16.png");
this.operationsSchedules = new SubTab(operationsTab.extendLocatorId(OperationsSubTab.SCHEDULES), new ViewName(
OperationsSubTab.SCHEDULES, MSG.view_tabs_common_schedules()), null);
this.operationsHistory = new SubTab(operationsTab.extendLocatorId(OperationsSubTab.HISTORY), new ViewName(
@@ -234,7 +234,7 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
tabs.add(operationsTab);
configurationTab = new TwoLevelTab(getTabSet().extendLocatorId(Tab.CONFIGURATION), new ViewName(
- Tab.CONFIGURATION, MSG.view_tabs_common_configuration()), "subsystems/configure/Configure_grey_16.png");
+ Tab.CONFIGURATION, MSG.common_title_configuration()), "subsystems/configure/Configure_grey_16.png");
this.configCurrent = new SubTab(configurationTab.extendLocatorId(ConfigurationSubTab.CURRENT), new ViewName(
ConfigurationSubTab.CURRENT, MSG.view_tabs_common_current()), null);
this.configHistory = new SubTab(configurationTab.extendLocatorId(ConfigurationSubTab.HISTORY), new ViewName(
@@ -244,21 +244,21 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
driftTab = new TwoLevelTab(getTabSet().extendLocatorId(Tab.DRIFT), new ViewName(Tab.DRIFT, MSG
.view_tabs_common_drift()), "subsystems/drift/Drift_16.png");
- this.driftChangeSets = new SubTab(driftTab.extendLocatorId(DriftSubTab.CHANGE_SETS), new ViewName(
- DriftSubTab.CHANGE_SETS, MSG.view_drift_changeSets()), null);
+ this.driftSnapshots = new SubTab(driftTab.extendLocatorId(DriftSubTab.SNAPSHOTS), new ViewName(
+ DriftSubTab.SNAPSHOTS, MSG.view_drift_snapshots()), null);
this.driftHistory = new SubTab(driftTab.extendLocatorId(DriftSubTab.HISTORY), new ViewName(DriftSubTab.HISTORY,
MSG.view_tabs_common_history()), null);
- this.driftConfig = new SubTab(driftTab.extendLocatorId(DriftSubTab.CONFIGURATION), new ViewName(
- DriftSubTab.CONFIGURATION, MSG.view_tabs_common_configuration()), null);
- driftTab.registerSubTabs(driftChangeSets, driftHistory, driftConfig);
+ this.driftDefinitions = new SubTab(driftTab.extendLocatorId(DriftSubTab.DEFINITIONS), new ViewName(
+ DriftSubTab.DEFINITIONS, MSG.common_title_definitions()), null);
+ driftTab.registerSubTabs(driftHistory, driftSnapshots, driftDefinitions);
tabs.add(driftTab);
contentTab = new TwoLevelTab(getTabSet().extendLocatorId("Content"), new ViewName("Content", MSG
.view_tabs_common_content()), "subsystems/content/Content_grey_16.png");
this.contentDeployed = new SubTab(contentTab.extendLocatorId("Deployed"), new ViewName("Deployed", MSG
.view_tabs_common_deployed()), null);
- this.contentNew = new SubTab(contentTab.extendLocatorId("New"),
- new ViewName("New", MSG.view_tabs_common_new()), null);
+ this.contentNew = new SubTab(contentTab.extendLocatorId("New"), new ViewName("New", MSG.common_button_new()),
+ null);
this.contentSubscrip = new SubTab(contentTab.extendLocatorId("Subscriptions"), new ViewName("Subscriptions",
MSG.view_tabs_common_subscriptions()), null);
this.contentHistory = new SubTab(contentTab.extendLocatorId("History"), new ViewName("History", MSG
@@ -523,10 +523,10 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
ResourcePermission resourcePermissions, Set<ResourceTypeFacet> facets) {
if (updateTab(this.driftTab, facets.contains(ResourceTypeFacet.DRIFT), resourcePermissions.isDrift())) {
- updateSubTab(this.driftTab, this.driftChangeSets, true, true, new ViewFactory() {
+ updateSubTab(this.driftTab, this.driftSnapshots, true, true, new ViewFactory() {
@Override
public Canvas createView() {
- return ResourceDriftChangeSetsView.get(driftChangeSets.extendLocatorId("View"), resourceComposite);
+ return ResourceDriftChangeSetsView.get(driftSnapshots.extendLocatorId("View"), resourceComposite);
}
});
@@ -537,10 +537,11 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
}
});
- updateSubTab(this.driftTab, this.driftConfig, true, true, new ViewFactory() {
+ updateSubTab(this.driftTab, this.driftDefinitions, true, true, new ViewFactory() {
@Override
public Canvas createView() {
- return ResourceDriftConfigurationView.get(driftConfig.extendLocatorId("View"), resourceComposite);
+ return ResourceDriftConfigurationView.get(driftDefinitions.extendLocatorId("View"),
+ resourceComposite);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java
index 501d9b2..5d175c7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java
@@ -460,7 +460,7 @@ public class ResourceTreeView extends LocatableVLayout {
resourceContextMenu.addItem(new MenuItemSeparator());
// Operations Menu
- MenuItem operations = new MenuItem(MSG.view_tree_common_contextMenu_operations());
+ MenuItem operations = new MenuItem(MSG.common_title_operations());
boolean operationsEnabled = (resourcePermission.isControl() && (resourceType.getOperationDefinitions() != null) && !resourceType
.getOperationDefinitions().isEmpty());
operations.setEnabled(operationsEnabled);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java
index 9991f9c..03ae86f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/AbstractConfigurationHistoryDataSource.java
@@ -188,7 +188,7 @@ public abstract class AbstractConfigurationHistoryDataSource<T extends AbstractR
String err = event.getRecord().getAttribute(Field.ERROR_MESSAGE);
if (err != null && err.length() > 0) {
err = "<pre>" + err + "</pre>";
- new ErrorMessageWindow("errWin", MSG.common_title_error(), err).show();
+ new ErrorMessageWindow("errWin", MSG.common_severity_error(), err).show();
}
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeDataSource.java
index b6acfa1..550215e 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeDataSource.java
@@ -68,7 +68,7 @@ public class CallTimeDataSource extends RPCDataSource<CallTimeDataComposite, Cri
DataSourceIntegerField maximum = new DataSourceIntegerField("maximum", MSG
.view_resource_monitor_calltime_maximum());
fields.add(maximum);
- DataSourceIntegerField total = new DataSourceIntegerField("total", MSG.view_resource_monitor_calltime_total());
+ DataSourceIntegerField total = new DataSourceIntegerField("total", MSG.common_title_total());
fields.add(total);
return fields;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeView.java
index b13d5ee..894a1b3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/calltime/CallTimeView.java
@@ -131,7 +131,7 @@ public class CallTimeView extends LocatableLayout {
}
});
ListGridField maximum = new ListGridField("maximum", MSG.view_resource_monitor_calltime_maximum(), 70);
- ListGridField total = new ListGridField("total", MSG.view_resource_monitor_calltime_total(), 70);
+ ListGridField total = new ListGridField("total", MSG.common_title_total(), 70);
table.getListGrid().setFields(callDestination, count, minimum, average, maximum, total);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MeasurementTableDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MeasurementTableDataSource.java
index 8913ab7..32975b4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MeasurementTableDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/table/MeasurementTableDataSource.java
@@ -62,7 +62,7 @@ public class MeasurementTableDataSource extends RPCDataSource<MetricDisplaySumma
nameField.setWidth("30%");
fields.add(nameField);
- ListGridField alertsField = new ListGridField(FIELD_ALERT_COUNT, MSG.view_resource_monitor_table_alerts());
+ ListGridField alertsField = new ListGridField(FIELD_ALERT_COUNT, MSG.common_title_alerts());
alertsField.setWidth("10%");
fields.add(alertsField);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java
index cccc08a..931da57 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/AutodiscoveryQueueDataSource.java
@@ -56,12 +56,12 @@ public class AutodiscoveryQueueDataSource extends DataSource {
private static Messages MSG = CoreGUI.getMessages();
- public static final String NEW = MSG.view_autoDiscoveryQ_new();
+ public static final String NEW = MSG.common_button_new();
public static final String IGNORED = MSG.view_autoDiscoveryQ_ignored();
public static final String NEW_AND_IGNORED = MSG.view_autoDiscoveryQ_newAndIgnored();
private static final String NO_MANAGE_INVENTORY_PERMS_EMPTY_MESSAGE = MSG.view_autoDiscoveryQ_noperm();
- private static final String EMPTY_MESSAGE = MSG.view_autoDiscoveryQ_noItems();
+ private static final String EMPTY_MESSAGE = MSG.common_msg_noItemsToShow();
private int unlimited = -1;
private int maximumPlatformsToDisplay = -1;
@@ -86,12 +86,11 @@ public class AutodiscoveryQueueDataSource extends DataSource {
.view_autoDiscoveryQ_field_parentId());
parentIdField.setForeignKey("id");
- DataSourceTextField resourceNameField = new DataSourceTextField("name", MSG.view_autoDiscoveryQ_field_name());
+ DataSourceTextField resourceNameField = new DataSourceTextField("name", MSG.common_title_resource_name());
- DataSourceTextField resourceKeyField = new DataSourceTextField("resourceKey", MSG
- .view_autoDiscoveryQ_field_key());
+ DataSourceTextField resourceKeyField = new DataSourceTextField("resourceKey", MSG.common_title_resource_key());
- DataSourceTextField resourceTypeField = new DataSourceTextField("typeName", MSG.common_title_type());
+ DataSourceTextField resourceTypeField = new DataSourceTextField("typeName", MSG.common_title_resource_type());
DataSourceTextField descriptionField = new DataSourceTextField("description", MSG.common_title_description());
@@ -253,7 +252,7 @@ public class AutodiscoveryQueueDataSource extends DataSource {
setAttribute("status", resource.getInventoryStatus().name());
switch (resource.getInventoryStatus()) {
case NEW:
- setAttribute("statusLabel", MSG.view_autoDiscoveryQ_new());
+ setAttribute("statusLabel", MSG.common_button_new());
break;
case COMMITTED:
setAttribute("statusLabel", MSG.view_autoDiscoveryQ_committed());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
index 9b0cfe3..690ea75 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
@@ -166,8 +166,7 @@ public class ResourceAutodiscoveryView extends LocatableVLayout implements Refre
addMember(footer);
- final IButton importButton = new LocatableIButton(this.extendLocatorId("Import"), MSG
- .view_autoDiscoveryQ_import());
+ final IButton importButton = new LocatableIButton(this.extendLocatorId("Import"), MSG.common_button_import());
final IButton ignoreButton = new LocatableIButton(this.extendLocatorId("Ignore"), MSG
.view_autoDiscoveryQ_ignore());
final IButton unignoreButton = new LocatableIButton(this.extendLocatorId("Unignore"), MSG
@@ -198,11 +197,11 @@ public class ResourceAutodiscoveryView extends LocatableVLayout implements Refre
});
footer.addMember(form);
- final IButton selectAllButton = new LocatableIButton(this.extendLocatorId("SelectAll"),
- MSG.view_autoDiscoveryQ_selectAll());
+ final IButton selectAllButton = new LocatableIButton(this.extendLocatorId("SelectAll"), MSG
+ .view_autoDiscoveryQ_selectAll());
footer.addMember(selectAllButton);
- final IButton deselectAllButton = new LocatableIButton(this.extendLocatorId("DeselectAll"),
- MSG.view_autoDiscoveryQ_deselectAll());
+ final IButton deselectAllButton = new LocatableIButton(this.extendLocatorId("DeselectAll"), MSG
+ .view_autoDiscoveryQ_deselectAll());
deselectAllButton.setDisabled(true);
footer.addMember(deselectAllButton);
@@ -238,7 +237,7 @@ public class ResourceAutodiscoveryView extends LocatableVLayout implements Refre
}
}
updateButtonEnablement(selectAllButton, deselectAllButton, importButton, ignoreButton,
- unignoreButton);
+ unignoreButton);
selectionChangedHandlerDisabled = false;
}
});
@@ -252,7 +251,7 @@ public class ResourceAutodiscoveryView extends LocatableVLayout implements Refre
// platform checkbox remained checked.
treeGrid.redraw();
updateButtonEnablement(selectAllButton, deselectAllButton, importButton, ignoreButton,
- unignoreButton);
+ unignoreButton);
selectionChangedHandlerDisabled = false;
}
} else {
@@ -262,7 +261,7 @@ public class ResourceAutodiscoveryView extends LocatableVLayout implements Refre
}
}
updateButtonEnablement(selectAllButton, deselectAllButton, importButton, ignoreButton,
- unignoreButton);
+ unignoreButton);
selectionChangedHandlerDisabled = false;
}
}
@@ -273,7 +272,7 @@ public class ResourceAutodiscoveryView extends LocatableVLayout implements Refre
public void onDataArrived(DataArrivedEvent dataArrivedEvent) {
if (treeGrid != null) {
updateButtonEnablement(selectAllButton, deselectAllButton, importButton, ignoreButton,
- unignoreButton);
+ unignoreButton);
// NOTE: Due to a SmartGWT bug, the TreeGrid is not automatically redrawn upon data arrival, and
// calling treeGrid.markForRedraw() doesn't redraw it either. The user can mouse over the grid
// to cause it to redraw, but it is obviously not reasonable to expect that. So we must
@@ -304,7 +303,7 @@ public class ResourceAutodiscoveryView extends LocatableVLayout implements Refre
}
treeGrid.markForRedraw();
updateButtonEnablement(selectAllButton, deselectAllButton, importButton, ignoreButton,
- unignoreButton);
+ unignoreButton);
selectionChangedHandlerDisabled = false;
}
});
@@ -389,8 +388,8 @@ public class ResourceAutodiscoveryView extends LocatableVLayout implements Refre
}
- private void updateButtonEnablement(IButton selectAllButton, IButton deselectAllButton,
- IButton importButton, IButton ignoreButton, IButton unignoreButton) {
+ private void updateButtonEnablement(IButton selectAllButton, IButton deselectAllButton, IButton importButton,
+ IButton ignoreButton, IButton unignoreButton) {
if (treeGrid.getSelection().length == 0) {
selectAllButton.setDisabled(false);
deselectAllButton.setDisabled(true);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/resource/ProblemResourcesDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/resource/ProblemResourcesDataSource.java
index 3926fc5..6874d39 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/resource/ProblemResourcesDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/resource/ProblemResourcesDataSource.java
@@ -58,7 +58,7 @@ public class ProblemResourcesDataSource extends RPCDataSource<ProblemResourceCom
public enum Field {
- ALERTS("numAlerts", MSG.dataSource_problemResources_field_alerts()),
+ ALERTS("numAlerts", MSG.common_title_alerts()),
AVAILABILITY("availabilityType", MSG.common_title_availability()),
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
index 8a70316..148c3e6 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
@@ -55,25 +55,19 @@ common_label_ago = ago
common_label_all = ALL
common_label_all_resources = all resources
common_label_day = day
-common_label_days = days
common_label_hour = hour
-common_label_hours = hours
common_label_item = item
common_label_items = items
-common_label_milliseconds = milliseconds
-common_label_minutes = minutes
common_label_month = month
common_label_none = none
common_label_role = role
common_label_roles = roles
common_label_scheduled_operations = scheduled operations
-common_label_seconds = seconds
common_label_selected_resources = selected resources
common_label_unlimited = unlimited
common_label_user = user
common_label_users = users
common_label_week = week
-common_label_weeks = weeks
common_label_yesterday = Yesterday
common_msg_areYouSure = Are You Sure?
common_msg_asyncTimeout = {0}. This occurred because the server is taking a long time to complete this request. Please be aware that the server may still be processing your request and it may complete shortly. You can check the server logs to see if any abnormal errors occurred.
@@ -103,7 +97,8 @@ common_title_add_column = Add Column
common_title_add_graph_to_view = Add Graph to Monitor View
common_title_add_portlet = Add Portlet
common_title_address = Address
-common_title_alert_range = Alert Range
+common_title_alerts = Alerts
+common_title_alerts_range = Alert Range
common_title_ancestry = Ancestry
common_title_availability = Availability
common_title_available_resources = Available Resources
@@ -127,6 +122,8 @@ common_title_dashboard_name = Dashboard Name
common_title_dateCreated = Date Created
common_title_dateRange = Date Range
common_title_default = Default
+common_title_definition = Definition
+common_title_definitions = Definitions
common_title_description = Description
common_title_details = Details
common_title_display = Display
@@ -135,7 +132,6 @@ common_title_duration = Duration
common_title_edit_mode = Edit Mode
common_title_enabled = Enabled?
common_title_end = End
-common_title_error = Error
common_title_generalProp = General Properties
common_title_group = Group
common_title_group_def_total = Group Definition Total
@@ -145,7 +141,6 @@ common_title_help = Help
common_title_host = Host
common_title_id = ID
common_title_id_parent = Parent ID
-common_title_info = Info
common_title_interval = Interval
common_title_inventory = Inventory
common_title_inventorySummary = Inventory Summary
@@ -163,6 +158,7 @@ common_title_name = Name
common_title_new_dashboard = New Dashboard
common_title_numeric_metrics = Numeric Metrics
common_title_numeric_type = Numeric Type
+common_title_operation = Operation
common_title_operation_status = Operation Status
common_title_operations = Operations
common_title_operations_range = Operation Range
@@ -178,7 +174,7 @@ common_title_providers = Providers
common_title_recent_alerts = Recent Alerts
common_title_recent_bundle_deployments = Recent Bundle Deployments
common_title_recent_configuration_updates = Recent Configuration Updates
-common_title_recent_drifts = Recent Drifts
+common_title_recent_drifts = Recent Drift
common_title_recent_event_counts = Recent Event Counts
common_title_recent_measurements = Recent Measurements
common_title_recent_oob_metrics = Recent Out of Bound metrics
@@ -285,14 +281,12 @@ dataSource_platforms_field_cpu = CPU
dataSource_platforms_field_memory = Memory
dataSource_platforms_field_swap = Swap
dataSource_problemResources_error_fetchFailure = Failed to load Resources with alerts/unavailability.
-dataSource_problemResources_field_alerts = Alerts
dataSource_problemResources_field_available = Current Availability
dataSource_recentOperations_error_fetchFailure = Failed to load recently completed operations.
dataSource_recentOperations_field_location = Location
dataSource_recentOperations_field_operation = Operation
dataSource_recentOperations_field_resource = Resource
dataSource_recentOperations_field_status = Status
-dataSource_recentOperations_field_time = Date/Time
dataSource_resourceErrors_clickStatusIcon = Click the icon for more details
dataSource_resourceErrors_deleteFailure = Failed to delete resource errors
dataSource_resourceErrors_deleteSuccess = You have successfully deleted [{0}] resource error messages.
@@ -316,7 +310,6 @@ dataSource_scheduledOperations_error_fetchFailure = Failed to load scheduled ope
dataSource_scheduledOperations_field_location = Location
dataSource_scheduledOperations_field_operation = Operation
dataSource_scheduledOperations_field_resource = Resource
-dataSource_scheduledOperations_field_time = Date/Time
dataSource_schedules_disableFailure_group = Failed to disable the collection of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]
dataSource_schedules_disableFailure_resource = Failed to disable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]
dataSource_schedules_disableSuccessful_concise = You have disabled the collection of [{0}] measurements
@@ -352,14 +345,11 @@ dataSource_users_field_id = ID
dataSource_users_field_lastName = Last Name
dataSource_users_field_ldap = LDAP Login?
dataSource_users_field_name = User Name
-dataSource_users_field_password = Password
dataSource_users_field_passwordVerify = Verify Password
dataSource_users_field_phoneNumber = Phone Number
dataSource_users_invalidEmailAddress = Invalid email address.
dataSource_users_passwordsDoNotMatch = Passwords do not match.
datasource_roles_field_ldapGroups = LDAP Groups
-datasource_roles_field_permissions = Permissions
-datasource_roles_field_resourceGroups = Resource Groups
datasource_roles_field_subjects = Subjects
datasource_templateSchedules_disabled = Disabled collection of selected metric [{0}].
datasource_templateSchedules_disabled_detailed = Disabled collection of metric [{0}] [{1}] by default for ResourceType with id [{2}].
@@ -397,7 +387,6 @@ view_adminConfig_plugins = Plugins
view_adminConfig_systemSettings = System Settings
view_adminConfig_templates = Templates
view_adminContent_contentSources = Content Sources
-view_adminContent_repositories = Repositories
view_adminRoles_assignedGroups = Assigned Resource Groups
view_adminRoles_assignedSubjects = Assigned Subjects
view_adminRoles_failLdap = Failed to determine if LDAP configured - assuming no LDAP.
@@ -407,7 +396,6 @@ view_adminRoles_failRoles = Failed to fetch roles.
view_adminRoles_globalPerms = Global Permissions
view_adminRoles_ldapGroups = LDAP Groups
view_adminRoles_ldapGroupsReadOnly = LDAP group data is read only
-view_adminRoles_noItems = No items to show
view_adminRoles_noLdap = The LDAP security integration is not configured. To configure LDAP, go to <a {0}>{1}</a>.
view_adminRoles_permissions_autoselecting_configureRead_implied = Autodeselected CONFIGURE_WRITE permission, since lack of CONFIGURE_READ implies lack of it...
view_adminRoles_permissions_autoselecting_configureWrite_implied = Autoselected CONFIGURE_READ permission, since CONFIGURE_WRITE implies it...
@@ -432,7 +420,7 @@ view_adminRoles_permissions_permReadDesc_deleteChildResources = (IMPLIED) view c
view_adminRoles_permissions_permReadDesc_inventory = (IMPLIED) view Resource properties (name, description, version, etc.), connection settings, and connection settings history
view_adminRoles_permissions_permReadDesc_manageAlerts = (IMPLIED) view alert definitions and alert history
view_adminRoles_permissions_permReadDesc_manageContent = (IMPLIED) view installed and available packages; view package installation history
-view_adminRoles_permissions_permReadDesc_manageDrift = (IMPLIED) view drift configurations and drift history
+view_adminRoles_permissions_permReadDesc_manageDrift = (IMPLIED) view drift definitions and drift history
view_adminRoles_permissions_permReadDesc_manageEvents = (IMPLIED) view events
view_adminRoles_permissions_permReadDesc_manageMeasurements = (IMPLIED) view metric data and collection schedules
view_adminRoles_permissions_permWriteDesc_configure = update Resource configuration; delete Resource configuration revision history items
@@ -442,7 +430,7 @@ view_adminRoles_permissions_permWriteDesc_deleteChildResources = uninventory res
view_adminRoles_permissions_permWriteDesc_inventory = update Resource name, version, description, and connection settings; delete connection settings history items
view_adminRoles_permissions_permWriteDesc_manageAlerts = create, update, and delete alert definitions; acknowledge and delete alert history items
view_adminRoles_permissions_permWriteDesc_manageContent = subscribe to content sources; install and uninstall packages
-view_adminRoles_permissions_permWriteDesc_manageDrift = create, update, and delete drift configurations; acknowledge and delete drift history items
+view_adminRoles_permissions_permWriteDesc_manageDrift = create, update, and delete drift definitions; and manage drift instances
view_adminRoles_permissions_permWriteDesc_manageEvents = delete events
view_adminRoles_permissions_permWriteDesc_manageMeasurements = update metric collection schedules
view_adminRoles_permissions_perm_configure = Configure
@@ -464,15 +452,12 @@ view_adminRoles_permissions_read = Read:
view_adminRoles_permissions_readAccessImplied = Read access for the {0} permission is implied and cannot be disabled.
view_adminRoles_permissions_resourcePermissions = Resource Permissions
view_adminRoles_permissions_write = Write:
-view_adminRoles_perms = Permissions
view_adminRoles_resourcePerms = Resource Permissions
view_adminRoles_roleAdded = Role [{0}] added.
view_adminRoles_roleDeleteFailed = Failed to delete role [{0}].
view_adminRoles_roleDeleted = Role [{0}] deleted.
view_adminRoles_roleUpdateFailed = Failed to update role [{0}].
view_adminRoles_roleUpdated = Role [{0}] updated.
-view_adminSecurity_roles = Roles
-view_adminSecurity_users = Users
view_adminTemplates_disabledAlertTemplates = Disabled Alert Templates
view_adminTemplates_disabledMetricTemplates = Disabled Metric Templates
view_adminTemplates_editAlertTemplate = Edit Alert Template
@@ -492,8 +477,6 @@ view_adminTopology_partitionEvents = Partition Events
view_adminTopology_remoteAgentInstall = Remote Agent Install
view_adminTopology_servers = Servers
view_adminUsersDetails_dataTypeName = user
-view_adminUsersList_dataTypeName = user
-view_adminUsersList_dataTypeNamePlural = users
view_admin_administration = Administration
view_admin_configuration = Configuration
view_admin_content = Content
@@ -613,8 +596,8 @@ view_alert_common_tab_conditions_type_availability = Availability Change
view_alert_common_tab_conditions_type_availability_down = Went down
view_alert_common_tab_conditions_type_availability_up = Came up
view_alert_common_tab_conditions_type_drift = Drift Detection
-view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift configuration [{1}]
-view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift configuration [{0}]
+view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift definition [{1}]
+view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift definition [{0}]
view_alert_common_tab_conditions_type_drift_onlypaths = Drift Detection for files that match "{0}"
view_alert_common_tab_conditions_type_event = Event Detection
view_alert_common_tab_conditions_type_event_matching = with event source matching
@@ -637,7 +620,6 @@ view_alert_common_tab_conditions_type_metric_trait_change = Trait Change
view_alert_common_tab_conditions_type_operation = Operation Execution
view_alert_common_tab_conditions_type_operation_status = with result status
view_alert_common_tab_conditions_type_resource_configuration = Resource Configuration Change
-view_alert_common_tab_conditions_value = Value
view_alert_common_tab_dampening = Dampening
view_alert_common_tab_dampening_category_consecutive_count = Consecutive
view_alert_common_tab_dampening_category_consecutive_count_tooltip = An alert is triggered once every X occurrences the condition set is true consecutively.
@@ -674,19 +656,14 @@ view_alert_definition_condition_editor_common_avg = Average
view_alert_definition_condition_editor_common_max = Maximum
view_alert_definition_condition_editor_common_min = Minimum
view_alert_definition_condition_editor_delete_confirm = Delete the selected alert condition(s)?
-view_alert_definition_condition_editor_drift_configname_regex = Drift Configuration Name
-view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift configuration name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift configuration names.
+view_alert_definition_condition_editor_drift_configname_regex = Drift Definition Name
+view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift definition name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift definition names.
view_alert_definition_condition_editor_drift_pathname_regex = Pathname Regular Expression
view_alert_definition_condition_editor_drift_pathname_regex_tooltip = If specified, this is a regular expression that must match the pathnames of those files that drifted.
view_alert_definition_condition_editor_drift_tooltip = This condition is triggered when drift has been detected.
view_alert_definition_condition_editor_event_regex = Regular Expression
view_alert_definition_condition_editor_event_regex_tooltip = If specified, this is a regular expression that must match a collected event message in order to trigger the condition.
view_alert_definition_condition_editor_event_severity = Event Severity
-view_alert_definition_condition_editor_event_severity_debug = Debug
-view_alert_definition_condition_editor_event_severity_error = Error
-view_alert_definition_condition_editor_event_severity_fatal = Fatal
-view_alert_definition_condition_editor_event_severity_info = Info
-view_alert_definition_condition_editor_event_severity_warn = Warn
view_alert_definition_condition_editor_event_tooltip = Specify the event severity that an event message must be reported with in order to trigger this condition. If you specify an optional regular expression, the event message must also match that regular expression in order for the condition to trigger.
view_alert_definition_condition_editor_metric_baseline_percentage = Baseline Percentage
view_alert_definition_condition_editor_metric_baseline_percentage_tooltip = A collected metric value will trigger this condition when compared to this percentage of the selected baseline value using the selected comparator
@@ -732,13 +709,7 @@ view_alert_definition_condition_editor_metric_threshold_value = Metric Value
view_alert_definition_condition_editor_metric_threshold_value_tooltip = The threshold value of the metric that will trigger the condition when compared using the selected comparator.
view_alert_definition_condition_editor_metric_trait_change_tooltip = Specify the trait whose value must change to trigger the condition.
view_alert_definition_condition_editor_metric_trait_change_value = Trait
-view_alert_definition_condition_editor_operation_status = Operation Status
-view_alert_definition_condition_editor_operation_status_canceled = Canceled
-view_alert_definition_condition_editor_operation_status_failure = Failure
-view_alert_definition_condition_editor_operation_status_inprogress = In Progress
-view_alert_definition_condition_editor_operation_status_success = Success
view_alert_definition_condition_editor_operation_tooltip = Specify the result that must occur when the selected operation is executed in order to trigger the condition.
-view_alert_definition_condition_editor_operation_value = Operation
view_alert_definition_condition_editor_option_availability = Availability Change
view_alert_definition_condition_editor_option_drift = Drift Detection
view_alert_definition_condition_editor_option_event = Event Detection
@@ -871,22 +842,17 @@ view_autoDiscoveryQ_deleted = Deleted
view_autoDiscoveryQ_deselectAll = Deselect All
view_autoDiscoveryQ_field_discoveryTime = Discovery Time
view_autoDiscoveryQ_field_inventoryStatus = Inventory Status
-view_autoDiscoveryQ_field_key = Resource Key
-view_autoDiscoveryQ_field_name = Resource Name
view_autoDiscoveryQ_field_parentId = Parent ID
view_autoDiscoveryQ_ignore = Ignore
view_autoDiscoveryQ_ignoreFailure = Failed to ignore Resources
view_autoDiscoveryQ_ignoreInProgress = Ignoring the selected Resources...
view_autoDiscoveryQ_ignoreSuccessful = You have successfully ignored the selected Resources.
view_autoDiscoveryQ_ignored = Ignored
-view_autoDiscoveryQ_import = Import
view_autoDiscoveryQ_importFailure = Failed to import Resources
view_autoDiscoveryQ_importInProgress = Importing the selected Resources...
view_autoDiscoveryQ_importSuccessful = You have successfully imported the selected Resources.
view_autoDiscoveryQ_loadFailure = Failed to load the inventory discovery queue
-view_autoDiscoveryQ_new = New
view_autoDiscoveryQ_newAndIgnored = New and Ignored
-view_autoDiscoveryQ_noItems = No items to show
view_autoDiscoveryQ_noperm = (You are not authorized to view the auto-discovery queue)
view_autoDiscoveryQ_selectAll = Select All
view_autoDiscoveryQ_showStatus = Show
@@ -1147,41 +1113,40 @@ view_dashboards_portlets_refresh_one_min = 1 minute
view_dashboards_portlets_refresh_success1 = Updated interval for portlets that auto-refresh
view_dashboards_portlets_refresh_success2 = Stopping reload for portlets that auto-refresh
view_dashboards_title = Dashboard
-view_drift = Drift
view_drift_button_detectNow = Detect Now
view_drift_category_fileAdded = File Added
view_drift_category_fileChanged = File Changed
-view_drift_category_fileNew = New Detection
+view_drift_category_fileNew = Newly Detected
view_drift_category_fileRemoved = File Removed
-view_drift_changeSets = Change Sets
-view_drift_changeSets_resourceViewTitle = Resource Drift Change Sets
-view_drift_changeset_tree_loadConfigFailure = Failed to load drift configuration for change set id [{0}]
-view_drift_changeset_tree_loadFailure = Failed to load drift change set tree.
-view_drift_delete_configConfirm = Delete the selected drift configuration(s)?
-view_drift_delete_configConfirmAll = Delete all drift configurations?
-view_drift_failure_deleteConfigs = Failed to delete some or all drift configurations.
-view_drift_failure_detectNow = Failed to submit drift detection request
-view_drift_failure_load = Failed to fetch drift data
-view_drift_success_configurationUpdated = Drift configuration updated. File coverage will be updated on next detection scan.
-view_drift_success_delete = Successfully deleted {0} drifts
-view_drift_success_deleteConfigs = Successfully deleted {0} drift configurations
-view_drift_success_detectNow = Successfully submitted drift detection request
+view_drift_delete_configConfirm = Delete the selected drift detection definition(s)?
+view_drift_delete_configConfirmAll = Delete all drift detection definition?
+view_drift_failure_deleteDefs = Failed to delete some or all drift detection definitions.
+view_drift_failure_detectNow = Failed to submit drift detection run request
+view_drift_failure_load = Failed to fetch drift instances
+view_drift_snapshots = Snapshots
+view_drift_snapshots_resourceViewTitle = Resource Drift Snapshots
+view_drift_snapshots_tree_loadDefFailure = Failed to load drift detection definition for snapshot id [{0}]
+view_drift_snapshots_tree_loadFailure = Failed to load drift snapshot tree.
+view_drift_success_defUpdated = Drift detection definition updated and will affect the next detection run as applicable.
+view_drift_success_delete = Successfully deleted {0} drift instances
+view_drift_success_deleteConfigs = Successfully deleted {0} drift detection definitions
+view_drift_success_detectNow = Successfully submitted drift detection run request
view_drift_table_baseDir = Base Directory
-view_drift_table_changeSet = Change Set
view_drift_table_driftHandlingMode = Drift Handling
view_drift_table_driftHandlingMode_normal = normal
view_drift_table_driftHandlingMode_plannedChanges = planned changes
view_drift_table_newFile = New File
view_drift_table_oldFile = Old File
-view_drift_table_resourceConfig = Resource Drift Configuration
+view_drift_table_resourceDef = Resource Drift Detection Definition
view_drift_table_resourceHistory = Resource Drift History
-view_drift_wizard_addConfig_failure = Failed to add new drift configuration [{0}]
-view_drift_wizard_addConfig_infoStepName = Provide Drift Detection Information
-view_drift_wizard_addConfig_success = Successfully added new drift configuration [{0}]. Agent(s) will be updated.
-view_drift_wizard_addConfig_templateHelp = Each drift configuration describes a set of files for which drift detection can be performed. The configuration can be enabled and disabled, defines the detection interval, and specifies a base directory and optional file filters. For each resource type offering drift detection there will be one or more predefined templates to use a starting configuration, which can then be edited.
-view_drift_wizard_addConfig_templatePrompt = Drift Configuration Templates
-view_drift_wizard_addConfig_title = Add Drift Configuration for Resource of Type [{0}]
-view_drift_wizard_addConfig_windowTitle = Drift Add Configuration Wizard
+view_drift_table_snapshot = Snapshot
+view_drift_wizard_addDef_failure = Failed to add new drift detection definition [{0}]
+view_drift_wizard_addDef_infoStepName = Provide Drift Detection Information
+view_drift_wizard_addDef_success = Successfully added new drift detection definition [{0}]. Agent(s) will be updated.
+view_drift_wizard_addDef_templateHelp = Each drift detection definition describes a set of files for which drift monitoring will be performed. The definition can be enabled and disabled, defines the detection run interval, and specifies a base directory and optional file filters. For each resource type offering drift detection there will be one or more predefined templates to use as a starting definition, which can then be edited.
+view_drift_wizard_addDef_templatePrompt = Drift Detection Definition Templates
+view_drift_wizard_addDef_title = Add Drift Detection Definition for Resource of Type [{0}]
+view_drift_wizard_addDef_windowTitle = Drift Add Detection Definition Wizard
view_dynagroup_children = DynaGroup Children
view_dynagroup_compatible = Compatible
view_dynagroup_definitionAlreadyExists = A group definition already exists with this name
@@ -1402,7 +1367,6 @@ view_inventory_groups_deleteFailed = Failed to delete the selected resource grou
view_inventory_groups_deleteSuccessful = You have successfully deleted the selected resource groups
view_inventory_groups_descendants = Descendants
view_inventory_groups_loadFailed = Failed to load group composite data
-view_inventory_groups_resourceGroups = Resource Groups
view_inventory_mixed = mixed
view_inventory_platforms = Platforms
view_inventory_problemGroups = Problem Groups
@@ -1411,9 +1375,7 @@ view_inventory_resources_deleteConfirm = Are you sure you want to delete the sel
view_inventory_resources_deleteFailed = Failed to delete the selected resources
view_inventory_resources_deleteSuccessful = A request to perform the resource deletion has been submitted successfully to the agent(s).
view_inventory_resources_loadFailed = Failed to load resource composite data
-view_inventory_resources_title = Resources
-view_inventory_resources_title_children = Child Resources
-view_inventory_resources_title_members = Member Resources
+view_inventory_resources_members = Member Resources
view_inventory_resources_uninventoryConfirm = Are you sure you want to uninventory the selected resources? Note that if a selected resource still exists, then it will get rediscovered during its agent''s next discovery scan.
view_inventory_resources_uninventoryFailed = Failed to uninventory the selected resources
view_inventory_resources_uninventorySuccessful = You have successfully uninventoried the selected resources
@@ -1440,7 +1402,6 @@ view_login_prompt = Please Login
view_login_registerLater = (Cancel - Complete registration later.)
view_login_registerLdapSuccess = Successfully registered the new LDAP User.
view_login_registerUser = Register User
-view_login_welcome = Welcome
view_login_welcomeMsg = Welcome to RHQ! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK", you will be logged in.<br/><br/>
view_measureRange_last = Time Range - Previous
view_measureRange_simple = Simple...
@@ -1510,7 +1471,6 @@ view_portlet_defaultName_operations = Recent Operations
view_portlet_defaultName_platformSummary = Platform Utilization
view_portlet_defaultName_problemResources = Alerted or Unavailable Resources
view_portlet_defaultName_recentAlerts = Recent Alerts
-view_portlet_defaultName_recentDrifts = Recent Drifts
view_portlet_defaultName_recentlyAddedResources = Recently Added Resources
view_portlet_defaultName_resourceMetric = Resource Metric Graph
view_portlet_defaultName_resource_alerts = Resource: Alerts
@@ -1521,7 +1481,6 @@ view_portlet_defaultName_resource_metrics = Resource: Measurements
view_portlet_defaultName_resource_oobs = Resource: OOB Metrics
view_portlet_defaultName_resource_operations = Resource: Operations
view_portlet_defaultName_resource_pkg_hisory = Resource: Package History
-view_portlet_defaultName_tagCloud = Tag Cloud
view_portlet_factory_invalidPortlet = This is an obsolete portlet that is no longer valid. Please delete it.
view_portlet_graph_configure_metricDefinition_graph = The metric definition id to graph
view_portlet_graph_configure_resource_graph = The resource to graph
@@ -1636,7 +1595,6 @@ view_resource_monitor_calltime_lookupFailed = Could not load resource for call t
view_resource_monitor_calltime_maximum = Maximum
view_resource_monitor_calltime_minimum = Minimum
view_resource_monitor_calltime_title = Call Time Data
-view_resource_monitor_calltime_total = Total
view_resource_monitor_detailed_graph_label = Detailed Graph
view_resource_monitor_graph_instructions = Point your mouse to a data point on the chart
view_resource_monitor_graph_live_tooltip = Click for a live graph of current values
@@ -1644,7 +1602,6 @@ view_resource_monitor_graphs_loadFailed = Failed to load graph data
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_alerts = Alerts
view_resource_monitor_table_avg = Average
view_resource_monitor_table_last = Last
view_resource_monitor_table_max = Maximum
@@ -1678,7 +1635,6 @@ view_summaryOverviewForm_field_type = Type
view_summaryOverviewForm_field_version = Version
view_summaryOverviewForm_header_summary = Summary
view_summaryOverviewForm_label_plugin = Plugin:
-view_summaryOverviewForm_label_type = Type:
view_summaryOverviewForm_message_descriptionChangeSuccess = Description of Resource with id {0} was changed from [{1}] to [{2}].
view_summaryOverviewForm_message_locationChangeSuccess = Location of Resource with id {0} was changed from [{1}] to [{2}].
view_summaryOverviewForm_message_nameChangeSuccess = Name of Resource with id {0} was changed from [{1}] to [{2}].
@@ -1694,18 +1650,15 @@ view_table_totalRows = Total Rows: {0} (selected: {1})
view_table_totalRowsUnknown = Total Rows: ?
view_tabs_common_activity = Activity
view_tabs_common_agent = Agent
-view_tabs_common_alerts = Alerts
view_tabs_common_availability = Availability
view_tabs_common_calltime = Calltime
view_tabs_common_child_history = Child History
view_tabs_common_child_resources = Child Resources
-view_tabs_common_configuration = Configuration
view_tabs_common_connectionSettings = Connection Settings
view_tabs_common_connectionSettingsHistory = Connection Settings History
view_tabs_common_content = Content
view_tabs_common_current = Current
view_tabs_common_dashboard = Dashboard
-view_tabs_common_definitions = Definitions
view_tabs_common_deployed = Deployed
view_tabs_common_drift = Drift
view_tabs_common_events = Events
@@ -1717,13 +1670,10 @@ view_tabs_common_history = History
view_tabs_common_inventory = Inventory
view_tabs_common_members = Members
view_tabs_common_monitoring = Monitoring
-view_tabs_common_new = New
-view_tabs_common_operations = Operations
view_tabs_common_overview = Overview
view_tabs_common_schedule = Schedule
view_tabs_common_schedules = Schedules
view_tabs_common_subscriptions = Subscriptions
-view_tabs_common_summary = Summary
view_tabs_common_tables = Tables
view_tabs_common_timeline = Timeline
view_tabs_common_traits = Traits
@@ -1734,8 +1684,7 @@ view_tagCloud_deleteTagFailure = Failed to delete the tag [{0}]
view_tagCloud_deleteTagSuccess = You successfully deleted the tag [{0}]
view_tagCloud_error_fetchFailure = Failed to load tags.
view_tagCloud_error_tagUsedCount = Tag used {0} times.
-view_tagCloud_title = Tag Cloud
-view_taggedResources_title = Resources
+view_taggedResources_title = Tagged Resources
view_tags_error_1 = Failed to load Tags
view_tags_tags = Tags
view_tags_tooltip_1 = Click to remove this Tag
@@ -1764,9 +1713,8 @@ view_tree_common_contextMenu_loadFail_dashboards = Failed to load user dashboard
view_tree_common_contextMenu_loadFail_group = Failed to load group for context menu
view_tree_common_contextMenu_loadFailed_dashboard = Failed to load user dashboards
view_tree_common_contextMenu_loadFailed_manualAddChildren = Failed to load platform manual add children
+view_tree_common_contextMenu_loadFailed_operations = Failure to start wizard for running operations
view_tree_common_contextMenu_measurements = Measurements
-view_tree_common_contextMenu_operations = Operations
-view_tree_common_contextMenu_operations_loadFailed = Failure to start wizard for running operations
view_tree_common_contextMenu_resourceConfiguration = Resource Configuration
view_tree_common_contextMenu_resourceGraph = Resource Metric Graph
view_tree_common_contextMenu_saveChartToDashboardFailure = Failed to save the dashboard
@@ -1844,7 +1792,6 @@ widget_recordEditor_info_recordUpdatedConcise = {0} updated.
widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.
widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.
widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.
-widget_recordEditor_label_loading = Loading...
widget_recordEditor_title_edit = Edit {0} [{1}]
widget_recordEditor_title_new = Create New {0}
widget_recordEditor_title_view = View {0} [{1}]
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
index a952137..ee30876 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_de.properties
@@ -53,30 +53,27 @@ common_calendar_may_short = Mai
common_calendar_november_short = Nov
common_calendar_october_short = Okt
common_calendar_september_short = Sept
+##common_label_ago = ago
common_label_all = ALLE
common_label_all_resources = Alle Ressourcen
common_label_day = Tag
-common_label_days = Tage
common_label_hour = Stunde
-common_label_hours = Stunden
common_label_item = Eintrag
common_label_items = Einträge
-common_label_milliseconds = Millisekunden
-common_label_minutes = Minuten
common_label_month = Monat
common_label_none = keine
common_label_role = Rolle
common_label_roles = Rollen
common_label_scheduled_operations = Geplante Operationen
-common_label_seconds = Sekunden
common_label_selected_resources = Ausgewählte Ressourcen
common_label_unlimited = unbeschränkt
common_label_user = Benutzer
common_label_users = Benutzer
common_label_week = Woche
-common_label_weeks = Wochen
common_label_yesterday = Gestern
common_msg_areYouSure = Sind Sie sicher?
+##common_msg_asyncTimeout = {0}. This occurred because the server is taking a long time to complete this request. Please be aware that the server may still be processing your request and it may complete shortly. You can check the server logs to see if any abnormal errors occurred.
+##common_msg_changeAutoDetected = Change auto-detected
common_msg_deleteConfirm = Are you sure you want to delete the # selected {0}?~
common_msg_emphasizedNotePrefix = Achtung:
common_msg_loading = Laden...
@@ -84,6 +81,11 @@ common_msg_noItemsToShow = Keine Einträge vorhanden
common_msg_notYetImplemented = Noch nicht implementiert
common_msg_see_more = mehr ...
common_msg_step_x_of_y = Schritt {0} von {1}
+##common_severity_debug = Debug
+common_severity_error = Fehler
+##common_severity_fatal = Fatal
+##common_severity_info = Info
+##common_severity_warn = Warn
common_status_canceled = Abgebrochen
common_status_deferred = Verzögert
common_status_failed = Fehlgeschlagen
@@ -95,7 +97,8 @@ common_status_unknown = Unbekannt
common_title_add_column = Spalte hinzufügen
common_title_add_portlet = Portlet hinzufügen
common_title_address = Adresse
-common_title_alert_range = Alert Range~
+common_title_alerts = Alarme
+common_title_alerts_range = Alert Range~
common_title_availability = Verfügbar
common_title_available_resources = Verfügbare Ressourcen
common_title_average_metrics = Durchsch. Anzahl Metriken pro Minute
@@ -117,6 +120,8 @@ common_title_dashboard_name = Dashboard-Name
common_title_dateCreated = Zeitpunkt d. Erzeugung
common_title_dateRange = Zeitraum
common_title_default = Standard
+##common_title_definition = Definition
+common_title_definitions = Definitionen
common_title_description = Beschreibung
common_title_details = Details
common_title_display = Display~
@@ -125,7 +130,6 @@ common_title_duration = Dauer
common_title_edit_mode = Bearbeitungsmodus
common_title_enabled = Aktiviert?
common_title_end = Ende
-common_title_error = Fehler
common_title_generalProp = Allgemeine Eigenschaften
common_title_group = Gruppe
common_title_group_def_total = Anzahl Gruppen-Definitionen
@@ -136,7 +140,6 @@ common_title_host = Rechner
common_title_icon = Ikone
common_title_id = ID
common_title_id_parent = ID des Vaters
-common_title_info = Info
##common_title_interval = Interval
common_title_inventory = Inventar
common_title_inventorySummary = Inventar Zusammenfassung
@@ -154,29 +157,31 @@ common_title_name = Name
common_title_new_dashboard = Neues Dashboard
common_title_numeric_metrics = Numerische Metriken
common_title_numeric_type = Numerischer Typ
-common_title_operation_status = Status der Operation
+common_title_operation = Operation
+common_title_operation_status = Zustand der Operation
common_title_operations = Operationen
-common_title_operations_range = Operation Range~
+##common_title_operations_range = Operation Range
common_title_over = Über
common_title_password = Passwort
common_title_path = Pfad
common_title_permissions = Rechte
common_title_platform = Plattform
common_title_platform_total = Anzahl Platformen
-common_title_plugin = Plugin
-common_title_port = Port
-common_title_providers = Provider
+##common_title_plugin = Plugin
+##common_title_port = Port
+##common_title_providers = Providers
common_title_recent_alerts = Kürzlich ausgelöste Alarme
common_title_recent_bundle_deployments = Kürzliche Bundle-Deployments
common_title_recent_configuration_updates = Frische Konfigurationsaktualisierungen
-##common_title_recent_drifts = Recent Drifts
+##common_title_recent_drifts = Recent Drift
common_title_recent_event_counts = Anzahl frischer Events
common_title_recent_measurements = Frische Messwerte
common_title_recent_oob_metrics = Kürzlich aus dem Ruder gelaufene Metriken
common_title_recent_operations = Kürzlich ausgeführte Operationen
+##common_title_recent_pkg_history = Recent Package History
common_title_recently_added = Kürzlich hinzugefügte Ressourcen
common_title_remove_column = Spalte löschen
-common_title_repositories = Repositories~
+##common_title_repositories = Repositories
common_title_resource = Ressource
common_title_resourceGroups = Ressourcen-Gruppen
common_title_resource_group = Ressourcen-Gruppe
@@ -209,7 +214,7 @@ common_title_summary = Zusammenfassung
common_title_tag_cloud = Tag-Wolke
common_title_the = Die
common_title_timestamp = Zeitpunkt
-common_title_total = Total
+common_title_total = Gesamt
common_title_type = Typ
common_title_units = Einheiten
common_title_user = Benutzer
@@ -271,14 +276,12 @@ dataSource_platforms_field_cpu = CPU
dataSource_platforms_field_memory = Speicher
dataSource_platforms_field_swap = Swap
dataSource_problemResources_error_fetchFailure = Konnte die Liste der Ressourcen mit Alarmen oder unverfügbarkeit nicht laden.
-dataSource_problemResources_field_alerts = Alarme
dataSource_problemResources_field_available = Aktuelle Verfügbarkeit
dataSource_recentOperations_error_fetchFailure = Konnte die Liste der kürzlich vollendeten Operationen nicht laden.
dataSource_recentOperations_field_location = Ort
dataSource_recentOperations_field_operation = Operation
dataSource_recentOperations_field_resource = Ressource
dataSource_recentOperations_field_status = Status
-dataSource_recentOperations_field_time = Zeitpunkt
dataSource_resourceErrors_clickStatusIcon = Für mehr Details auf das Icon klicken
dataSource_resourceErrors_deleteFailure = Konnte die Ressourcen-Fehler nicht löschen
dataSource_resourceErrors_deleteSuccess = Sie haben erfolgreich [{0}] Ressourcen-Fehlermeldungen gelöscht.
@@ -296,7 +299,6 @@ dataSource_scheduledOperations_error_fetchFailure = Konnte die Liste der geplant
dataSource_scheduledOperations_field_location = Ort
dataSource_scheduledOperations_field_operation = Operation
dataSource_scheduledOperations_field_resource = Ressource
-dataSource_scheduledOperations_field_time = Zeitpunkt
dataSource_schedules_disableFailure_group = Failed to disable the collection of [{0}] metrics for resource group with ID [{1}]. The metrics were: [{2}]~
dataSource_schedules_disableFailure_resource = Failed to disable the collection of [{0}] metrics for resource with ID [{1}]. The metrics were: [{2}]~
dataSource_schedules_disableSuccessful_concise = You have disabled the collection of [{0}] measurements~
@@ -332,7 +334,6 @@ dataSource_users_field_id = ID
dataSource_users_field_lastName = Nachname
dataSource_users_field_ldap = LDAP Login?
dataSource_users_field_name = Benutzername
-dataSource_users_field_password = Passwort
dataSource_users_field_passwordVerify = Passwort überprüfen
dataSource_users_field_phoneNumber = Telefonnummer
dataSource_users_invalidEmailAddress = Ungültige E-Mail-Adresse
@@ -381,7 +382,6 @@ view_adminRoles_failRoles = Konnte die Rollen nicht laden.
view_adminRoles_globalPerms = Applikationsweite Rechte
view_adminRoles_ldapGroups = LDAP-Gruppen
view_adminRoles_ldapGroupsReadOnly = LDAP Gruppendaten können nur gelesen werden
-view_adminRoles_noItems = Keine Einträge vorhanden
view_adminRoles_noLdap = Die LDAP-Integration ist nicht konfiguriert. Um LDAP zu konfigurieren, wechseln sie zu <a {0}>{1}</a>.
view_adminRoles_permissions_globalPermissions = Globale Rechte
view_adminRoles_permissions_isAuthorized = Berechtigt?
@@ -398,7 +398,7 @@ view_adminRoles_permissions_permReadDesc_deleteChildResources = (IMPLIZIT) Ansic
view_adminRoles_permissions_permReadDesc_inventory = (IMPLIZIT) Ansehen der Eigenschaft einer Ressource (Name, Beschreibung, Version etc.), Verbindungseinstellungen, Verlauf derselben
view_adminRoles_permissions_permReadDesc_manageAlerts = (IMPLIZIT) Ansehen von Alarm-Definitionen und ausgelösten Alarmen
view_adminRoles_permissions_permReadDesc_manageContent = (IMPLIZIT) Installierte und verfügbare Pakete ansehen; Verlauf der Installation von Paketen ansehen
-##view_adminRoles_permissions_permReadDesc_manageDrift = (IMPLIED) view drift configurations and drift history
+##view_adminRoles_permissions_permReadDesc_manageDrift = (IMPLIED) view drift definitions and drift history
view_adminRoles_permissions_permReadDesc_manageEvents = (IMPLIZIT) Ereignisse ansehen
view_adminRoles_permissions_permReadDesc_manageMeasurements = (IMPLIZIT) Monitoringdaten und -zeitplan ansehen
view_adminRoles_permissions_permWriteDesc_configure = Bearbeiten der Ressourcen-Konfiguration; Löschen einzelner Einträge im Verlauf der Ressourcen-Konfiguration
@@ -408,7 +408,7 @@ view_adminRoles_permissions_permWriteDesc_deleteChildResources = Löschen von Ki
view_adminRoles_permissions_permWriteDesc_inventory = Aktualisieren von Ressourcename, Beschreibung und Verbindungseinstellungen. Löschen einzelner Einträge des Verlaufs der Verbindungseinstellungen.
view_adminRoles_permissions_permWriteDesc_manageAlerts = Anlegen, Bearbeiten und Löschen von Alarm-Definitionen. Bestätigen und Löschen von ausgelösten Alarmen.
view_adminRoles_permissions_permWriteDesc_manageContent = Abonnieren von Content-Quellen; Pakete installieren und deinstallieren
-##view_adminRoles_permissions_permWriteDesc_manageDrift = create, update, and delete alert definitions; acknowledge and delete alert history items
+##view_adminRoles_permissions_permWriteDesc_manageDrift = create, update, and delete drift definitions; and manage drift instances
view_adminRoles_permissions_permWriteDesc_manageEvents = Ereignisse löschen
view_adminRoles_permissions_permWriteDesc_manageMeasurements = Zeitplan für das Monitoring bearbeiten
view_adminRoles_permissions_perm_configure = Konfiguration
@@ -429,15 +429,12 @@ view_adminRoles_permissions_read = Lesen
view_adminRoles_permissions_readAccessImplied = Lesezugriff für das Recht {0} ist implizit und kann nicht abgeschaltet werden.
view_adminRoles_permissions_resourcePermissions = Rechte für Ressourcen
view_adminRoles_permissions_write = Schreiben:
-view_adminRoles_perms = Rechte
view_adminRoles_resourcePerms = Rechte auf Ressourcen
view_adminRoles_roleAdded = Rolle [{0}] hinzugefügt
view_adminRoles_roleDeleteFailed = Konnte die Rolle [{0}] nicht löschen.
view_adminRoles_roleDeleted = Rolle [{0}] gelöscht.
view_adminRoles_roleUpdateFailed = Konnte die Rolle [{0}] nicht aktualisieren.
view_adminRoles_roleUpdated = Rolle [{0}] aktualisiert.
-view_adminSecurity_roles = Rollen
-view_adminSecurity_users = Benutzer
view_adminTemplates_platforms = Platformen
view_adminTemplates_servers = Server
view_adminTopology_affinityGroups = Affinity Groups~
@@ -446,8 +443,6 @@ view_adminTopology_partitionEvents = Partition Events~
view_adminTopology_remoteAgentInstall = Installation entfernter Agenten
view_adminTopology_servers = Server
view_adminUsersDetails_dataTypeName = Benutzer
-view_adminUsersList_dataTypeName = Benutzer
-view_adminUsersList_dataTypeNamePlural = Benutzer
view_admin_administration = Verwaltung
view_admin_configuration = Konfiguration
view_admin_content = Inhalte
@@ -464,6 +459,7 @@ view_admin_systemSettings_AlertPurge_name = Lösche Alarme, die älter sind als
view_admin_systemSettings_AvailabilityPurge_name = Lösche Verfügbarkeitsdaten, die älter sind als
##view_admin_systemSettings_DriftFilePurge_desc = How old unused and orphaned drift files must be before being purged from backend storage. This is specified in days.
##view_admin_systemSettings_DriftFilePurge_name = Delete Unused Drift Files Older Than
+view_admin_systemSettings_LDAPBindPW_name = Passwort
view_admin_systemSettings_TraitPurge_name = Lösche Trait-Daten, die älter sind als
##view_admin_systemSettings_group_drift = Drift Server Configuration Settings
view_admin_systemSettings_saveFailure = Das Speichern der Systemeinstellungen ist fehlgeschlagen
@@ -490,8 +486,8 @@ view_alert_common_tab_conditions_type_availability = Änderung der Verfügbarkei
view_alert_common_tab_conditions_type_availability_down = Wurde unverfügbar
view_alert_common_tab_conditions_type_availability_up = Wurde wieder verfügbar
##view_alert_common_tab_conditions_type_drift = Drift Detection
-##view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift configuration [{1}]
-##view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift configuration [{0}]
+##view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift definition [{1}]
+##view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift definition [{0}]
##view_alert_common_tab_conditions_type_drift_onlypaths = Drift Detection for files that match "{0}"
##view_alert_common_tab_conditions_type_event = Event Detection
view_alert_common_tab_conditions_type_event_matching = with event source matching~
@@ -514,7 +510,6 @@ view_alert_common_tab_conditions_type_metric_trait_change = Trait-Änderung
view_alert_common_tab_conditions_type_operation = Ausführung der Operation
view_alert_common_tab_conditions_type_operation_status = mit Ergebnis-Status
view_alert_common_tab_conditions_type_resource_configuration = Resource Configuration Change~
-view_alert_common_tab_conditions_value = Wert
view_alert_common_tab_dampening = Dämpfung
view_alert_common_tab_dampening_category_consecutive_count = Aufeinanderfolgend
view_alert_common_tab_dampening_category_consecutive_count_tooltip = Ein Alarm wird ausgelöst, wenn bei X aufeinanderfolgenden Werten die Bedingungen zutreffen.
@@ -551,19 +546,14 @@ view_alert_definition_condition_editor_common_avg = Durchschnitt
view_alert_definition_condition_editor_common_max = Maximum
view_alert_definition_condition_editor_common_min = Minimum
view_alert_definition_condition_editor_delete_confirm = Die ausgewählte(n) Alarm-Bedingung(en) löschen?
-##view_alert_definition_condition_editor_drift_configname_regex = Drift Configuration Name
-##view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift configuration name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift configuration names.
+##view_alert_definition_condition_editor_drift_configname_regex = Drift Definition Name
+##view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift definition name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift definition names.
##view_alert_definition_condition_editor_drift_pathname_regex = Pathname Regular Expression
##view_alert_definition_condition_editor_drift_pathname_regex_tooltip = If specified, this is a regular expression that must match the pathnames of those files that drifted.
##view_alert_definition_condition_editor_drift_tooltip = This condition is triggered when drift has been detected.
view_alert_definition_condition_editor_event_regex = Regulärer Ausdruck
view_alert_definition_condition_editor_event_regex_tooltip = If specified, this is a regular expression that must match a collected event message in order to trigger the condition.~
view_alert_definition_condition_editor_event_severity = Schwere des Ereignisses
-view_alert_definition_condition_editor_event_severity_debug = Debug
-view_alert_definition_condition_editor_event_severity_error = Error
-view_alert_definition_condition_editor_event_severity_fatal = Fatal
-view_alert_definition_condition_editor_event_severity_info = Info
-view_alert_definition_condition_editor_event_severity_warn = Warn
view_alert_definition_condition_editor_event_tooltip = Specify the event severity that an event message must be reported with in order to trigger this condition. If you specify an optional regular expression, the event message must also match that regular expression in order for the condition to trigger.~
view_alert_definition_condition_editor_metric_baseline_percentage = Baseline Percentage~
view_alert_definition_condition_editor_metric_baseline_percentage_tooltip = A collected metric value will trigger this condition when compared to this percentage of the selected baseline value using the selected comparator~
@@ -609,13 +599,7 @@ view_alert_definition_condition_editor_metric_threshold_value = Wert der Metrik
view_alert_definition_condition_editor_metric_threshold_value_tooltip = The threshold value of the metric that will trigger the condition when compared using the selected comparator.~
view_alert_definition_condition_editor_metric_trait_change_tooltip = Specify the trait whose value must change to trigger the condition.~
view_alert_definition_condition_editor_metric_trait_change_value = Trait~
-view_alert_definition_condition_editor_operation_status = Zustand der Operation
-view_alert_definition_condition_editor_operation_status_canceled = Abgebrochen
-view_alert_definition_condition_editor_operation_status_failure = Fehler
-view_alert_definition_condition_editor_operation_status_inprogress = In Ausführung
-view_alert_definition_condition_editor_operation_status_success = Erfolg
view_alert_definition_condition_editor_operation_tooltip = Specify the result that must occur when the selected operation is executed in order to trigger the condition.~
-view_alert_definition_condition_editor_operation_value = Operation
view_alert_definition_condition_editor_option_availability = Änderung der Verfügbarkeit
##view_alert_definition_condition_editor_option_drift = Drift Detection
##view_alert_definition_condition_editor_option_event = Event Detection
@@ -738,20 +722,15 @@ view_autoDiscoveryQ_confirmSelect = Sollen auch die Kinder der Platform ausgewä
view_autoDiscoveryQ_deleted = Gelöscht
view_autoDiscoveryQ_field_discoveryTime = Zeitpunkt des Auffindens
view_autoDiscoveryQ_field_inventoryStatus = Inventar-Status
-view_autoDiscoveryQ_field_key = Ressourcen-Schlüssel
-view_autoDiscoveryQ_field_name = Ressourcen-Name
view_autoDiscoveryQ_field_parentId = Eltern-ID
view_autoDiscoveryQ_ignore = Ignorieren
view_autoDiscoveryQ_ignoreFailure = Konnte die Ressourcen nicht ignorieren
view_autoDiscoveryQ_ignoreSuccessful = Sie haben die ausgewählten Ressourcen erfolgreich ignoriert
view_autoDiscoveryQ_ignored = Ignoriert
-view_autoDiscoveryQ_import = Importieren
view_autoDiscoveryQ_importFailure = Konnte die Ressourcen nicht importieren
view_autoDiscoveryQ_importSuccessful = Sie haben die ausgewählten Ressourcen erfolgreich importiert
view_autoDiscoveryQ_loadFailure = Failed to load the inventory discovery queue~
-view_autoDiscoveryQ_new = Neu
view_autoDiscoveryQ_newAndIgnored = Neu und Ignoriert
-view_autoDiscoveryQ_noItems = Keine Einträge gefunden
view_autoDiscoveryQ_noperm = (Die erforderlichen "manage inventory" Rechte fehlen. Kontaktieren Sie den Administrator)
view_autoDiscoveryQ_showStatus = Zeige
view_autoDiscoveryQ_title = Autodiscovery-Warteschlange
@@ -884,6 +863,7 @@ view_bundle_list_singleLoadFailure = Failed to get a single bundle to be deploye
view_bundle_list_tagUpdateFailure = Failed to update bundle tags~
view_bundle_list_tagUpdateSuccessful = You have successfully updated the bundle tags~
view_bundle_list_versionsCount = Versions Count~
+##view_bundle_purge = Purge
view_bundle_recipe = Recipe~
view_bundle_resDeployDS_loadFailure = Failed to load bundle resource deployments~
view_bundle_revert = Revert~
@@ -965,41 +945,40 @@ view_dashboardsManager_error1 = Failed to add new dashboard~
view_dashboardsManager_message_title_details = <h1>Willkommen bei RHQ</h1>\n<p>Das RHQ-Projekt is an abstraction and plug-in based systems management suite that provides extensible and integrated systems management for multiple products and platforms across a set of core features. The project is designed with layered modules that provide a flexible architecture for deployment. It delivers a core user interface that delivers audited and historical management across an entire enterprise. A Server/Agent architecture provides remote management and plugins implement all specific support for managed products.</p>\n <p>This default dashboard can be edited by clicking the (edit mode) button above.</p>~
view_dashboards_confirm1 = Sind Sie sicher, dass Sie löschen möchten
view_dashboards_title = Dashboard
-##view_drift = Drift
##view_drift_button_detectNow = Detect Now
##view_drift_category_fileAdded = File Added
##view_drift_category_fileChanged = File Changed
-##view_drift_category_fileNew = New Detection
+##view_drift_category_fileNew = Newly Detected
##view_drift_category_fileRemoved = File Removed
-##view_drift_changeSets = Change Sets
-##view_drift_changeSets_resourceViewTitle = Resource Drift Change Sets
-##view_drift_changeset_tree_loadConfigFailure = Failed to load drift configuration for change set id [{0}]
-##view_drift_changeset_tree_loadFailure = Failed to load drift change set tree.
-##view_drift_delete_configConfirm = Delete the selected drift configuration(s)?
-##view_drift_delete_configConfirmAll = Delete all drift configurations?
-##view_drift_failure_deleteConfigs = Failed to delete some or all drift configurations.
-##view_drift_failure_detectNow = Failed to submit drift detection request
-##view_drift_failure_load = Failed to fetch drift data
-##view_drift_success_configurationUpdated = Drift configuration updated. File coverage will be updated on next detection scan.
-##view_drift_success_delete = Successfully deleted {0} drifts
-##view_drift_success_deleteConfigs = Successfully deleted {0} drift configurations
-##view_drift_success_detectNow = Successfully submitted drift detection request
+##view_drift_delete_configConfirm = Delete the selected drift detection definition(s)?
+##view_drift_delete_configConfirmAll = Delete all drift detection definition?
+##view_drift_failure_deleteDefs = Failed to delete some or all drift detection definitions.
+##view_drift_failure_detectNow = Failed to submit drift detection run request
+##view_drift_failure_load = Failed to fetch drift instances
+##view_drift_snapshots = Snapshots
+##view_drift_snapshots_resourceViewTitle = Resource Drift Snapshots
+##view_drift_snapshots_tree_loadDefFailure = Failed to load drift detection definition for snapshot id [{0}]
+##view_drift_snapshots_tree_loadFailure = Failed to load drift snapshot tree.
+##view_drift_success_defUpdated = Drift detection definition updated and will affect the next detection run as applicable.
+##view_drift_success_delete = Successfully deleted {0} drift instances
+##view_drift_success_deleteConfigs = Successfully deleted {0} drift detection definitions
+##view_drift_success_detectNow = Successfully submitted drift detection run request
##view_drift_table_baseDir = Base Directory
-##view_drift_table_changeSet = Change Set
##view_drift_table_driftHandlingMode = Drift Handling
##view_drift_table_driftHandlingMode_normal = normal
##view_drift_table_driftHandlingMode_plannedChanges = planned changes
##view_drift_table_newFile = New File
##view_drift_table_oldFile = Old File
-##view_drift_table_resourceConfig = Resource Drift Configuration
+##view_drift_table_resourceDef = Resource Drift Detection Definition
##view_drift_table_resourceHistory = Resource Drift History
-##view_drift_wizard_addConfig_failure = Failed to add new drift configuration [{0}]
-##view_drift_wizard_addConfig_infoStepName = Provide Drift Detection Information
-##view_drift_wizard_addConfig_success = Successfully added new drift configuration [{0}]. Agent(s) will be updated.
-##view_drift_wizard_addConfig_templateHelp = Each drift configuration describes a set of files for which drift detection can be performed. The configuration can be enabled and disabled, defines the detection interval, and specifies a base directory and optional file filters. For each resource type offering drift detection there will be one or more predefined templates to use a starting configuration, which can then be edited.
-##view_drift_wizard_addConfig_templatePrompt = Drift Configuration Templates
-##view_drift_wizard_addConfig_title = Add Drift Configuration for Resource of Type [{0}]
-##view_drift_wizard_addConfig_windowTitle = Drift Add Configuration Wizard
+##view_drift_table_snapshot = Snapshot
+##view_drift_wizard_addDef_failure = Failed to add new drift detection definition [{0}]
+##view_drift_wizard_addDef_infoStepName = Provide Drift Detection Information
+##view_drift_wizard_addDef_success = Successfully added new drift detection definition [{0}]. Agent(s) will be updated.
+##view_drift_wizard_addDef_templateHelp = Each drift detection definition describes a set of files for which drift monitoring will be performed. The definition can be enabled and disabled, defines the detection run interval, and specifies a base directory and optional file filters. For each resource type offering drift detection there will be one or more predefined templates to use as a starting definition, which can then be edited.
+##view_drift_wizard_addDef_templatePrompt = Drift Detection Definition Templates
+##view_drift_wizard_addDef_title = Add Drift Detection Definition for Resource of Type [{0}]
+##view_drift_wizard_addDef_windowTitle = Drift Add Detection Definition Wizard
view_dynagroup_children = DynaGroup Children~
view_dynagroup_compatible = Kompatible
view_dynagroup_definitionAlreadyExists = A group definition already exists with this name~
@@ -1131,7 +1110,6 @@ view_inventory_groups_deleteFailed = Failed to delete the selected resource grou
view_inventory_groups_deleteSuccessful = You have successfully deleted the selected resource groups~
view_inventory_groups_descendants = Descendants~
view_inventory_groups_loadFailed = Failed to load group composite data~
-view_inventory_groups_resourceGroups = Ressource-Gruppen
view_inventory_mixed = gemischt
view_inventory_platforms = Platformen
view_inventory_problemGroups = Gruppen mit Problemen
@@ -1140,9 +1118,7 @@ view_inventory_resources_deleteConfirm = Are you sure you want to delete the sel
view_inventory_resources_deleteFailed = Failed to delete the selected resources~
##view_inventory_resources_deleteSuccessful = A request to perform the resource deletion has been submitted successfully to the agent(s).
view_inventory_resources_loadFailed = Failed to load resource composite data~
-view_inventory_resources_title = Ressourcen
-view_inventory_resources_title_children = Child Resources~
-view_inventory_resources_title_members = Member Resources~
+##view_inventory_resources_members = Member Resources
view_inventory_sectionHelp = In diesem Abschnitt können neu gefundene Ressourcen, sowie Ressourcen und Gruppen im Inventar angesehen und verwaltet werden.
view_inventory_servers = Server
view_inventory_services = Dienste
@@ -1166,7 +1142,6 @@ view_login_prompt = Bitte loggen Sie sich ein
view_login_registerLater = (Logout - Complete registration later.)~
view_login_registerLdapSuccess = Succesfully registered the new LDAP User.~
view_login_registerUser = Benutzer Anlegen
-view_login_welcome = Willkommen
view_login_welcomeMsg = Willkommen bei JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
view_measureRange_last = Letzte
view_measureRange_simple = Einfach...
@@ -1255,7 +1230,6 @@ view_operationScheduleDetails_noParameters = Diese Operation benötigt keine Par
view_portlet_autodiscovery_config_platform_selection = Number of platforms to display~
view_portlet_autodiscovery_help_msg = This portlet offers the ability to import newly discovered resources into the inventory for monitoring and management or to ignore them from further action.~
view_portlet_autodiscovery_title = Discovery-Warteschlange
-##view_portlet_defaultName_recentDrifts = Recent Drifts
view_portlet_favoriteResources_msg = Dieses Potlet zeigt Ihre gemerkten Ressourcen
view_portlet_favoriteResources_title = Gemerkete Resourcen
view_portlet_generic_help = Für dieses Portlet liegt keine Hilfe vor
@@ -1362,7 +1336,6 @@ view_resource_monitor_calltime_lookupFailed = Could not load resource for call t
view_resource_monitor_calltime_maximum = Maximum
view_resource_monitor_calltime_minimum = Minimum
view_resource_monitor_calltime_title = Call Time Data~
-view_resource_monitor_calltime_total = Gesamt
view_resource_monitor_detailed_graph_label = Detailed Graph~
view_resource_monitor_graph_instructions = Point your mouse to a data point on the chart~
view_resource_monitor_graph_live_tooltip = Click for a live graph of current values~
@@ -1370,7 +1343,6 @@ view_resource_monitor_graphs_loadFailed = Failed to load graph data~
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_alerts = Alarme
view_resource_monitor_table_avg = Durchschnitt
view_resource_monitor_table_last = Letzter
view_resource_monitor_table_max = Maximum
@@ -1404,7 +1376,6 @@ view_summaryOverviewForm_field_type = Typ
view_summaryOverviewForm_field_version = Version
view_summaryOverviewForm_header_summary = Zusammenfassung
view_summaryOverviewForm_label_plugin = Plugin:
-view_summaryOverviewForm_label_type = Typ:
view_summaryOverviewForm_message_descriptionChangeSuccess = "Description of Resource with id {0} was changed from [{1}] to [{2}].~
view_summaryOverviewForm_message_locationChangeSuccess = "Location of Resource with id {0} was changed from [{1}] to [{2}].~
view_summaryOverviewForm_message_nameChangeSuccess = "Name of Resource with id {0} was changed from [{1}] to [{2}].~
@@ -1419,18 +1390,15 @@ view_table_matchingRows = Zutreffende Zeilen: {0} (ausgewählt: {1})
view_table_totalRows = Anzahl Einträge: {0} Ausgewählt: {1}
view_tabs_common_activity = Aktivität
view_tabs_common_agent = Agent
-view_tabs_common_alerts = Alarme
view_tabs_common_availability = Verfügbarkeit
view_tabs_common_calltime = Calltime~
view_tabs_common_child_history = Child History~
view_tabs_common_child_resources = Child Resources~
-view_tabs_common_configuration = Konfiguration
view_tabs_common_connectionSettings = Verbindungs-Einstellungen
view_tabs_common_connectionSettingsHistory = Verlauf der Verbindungs-E.
view_tabs_common_content = Inhalte
view_tabs_common_current = Aktuell
view_tabs_common_dashboard = Dashboard
-view_tabs_common_definitions = Definitionen
view_tabs_common_deployed = Installiert
##view_tabs_common_drift = Drift
view_tabs_common_events = Ereignisse
@@ -1442,14 +1410,11 @@ view_tabs_common_history = Verlauf
view_tabs_common_inventory = Inventar
view_tabs_common_members = Mitglieder
view_tabs_common_monitoring = Monitoring
-view_tabs_common_new = Neu
-view_tabs_common_operations = Operationen
view_tabs_common_overview = Übersicht
view_tabs_common_schedule = Zeitplan
view_tabs_common_scheduled = Geplant
view_tabs_common_schedules = Zeitplan
view_tabs_common_subscriptions = Abonnements
-view_tabs_common_summary = Zusammenfassung
view_tabs_common_tables = Tabellen
view_tabs_common_timeline = Zeitstrahl
view_tabs_common_traits = Traits
@@ -1457,7 +1422,6 @@ view_tabs_invalidSubTab = Invalid subtab: {0}~
view_tabs_invalidTab = Ungültiger Reiter: {0}
view_tagCloud_error_fetchFailure = Konnte die Tags nicht laden.
view_tagCloud_error_tagUsedCount = Tag {0} mal verwendet.
-view_tagCloud_title = Tag-Wolke
view_taggedResources_title = Markierte Ressourcen
view_tags_error_1 = Konnte die Tags nicht laden
view_tags_tags = Tags
@@ -1485,9 +1449,8 @@ view_tree_common_contextMenu_groupGraph = Group Metric Graph~
view_tree_common_contextMenu_loadFail_dashboards = Konnte die benutzerspezifischen Dashboards nicht laden
view_tree_common_contextMenu_loadFailed_dashboard = Failed to load user dashboards
view_tree_common_contextMenu_loadFailed_manualAddChildren = Failed to load platform manual add children~
+view_tree_common_contextMenu_loadFailed_operations = Failure to start wizard for running operations~
view_tree_common_contextMenu_measurements = Metriken
-view_tree_common_contextMenu_operations = Operations~
-view_tree_common_contextMenu_operations_loadFailed = Failure to start wizard for running operations~
view_tree_common_contextMenu_pluginConfiguration = Plugin-Konfiguration
view_tree_common_contextMenu_resourceConfiguration = Resource Configuration~
view_tree_common_contextMenu_resourceGraph = Resource Metric Graph~
@@ -1535,7 +1498,6 @@ widget_recordEditor_info_recordUpdatedConcise = {0} aktualisiert.
widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] aktualisiert.
widget_recordEditor_info_recordsDeletedConcise = {0} {1} gelöscht.
widget_recordEditor_info_recordsDeletedDetailed = {0} {1} gelöscht: {2}.
-widget_recordEditor_label_loading = Laden...
widget_recordEditor_title_edit = Bearbeiten {0} [{1}]
widget_recordEditor_title_new = Neue {0} anlegen
widget_recordEditor_title_view = Anzeigen {0} [{1}]
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties
index f323fbc..dbe88f5 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_ja.properties
@@ -57,40 +57,35 @@ common_label_ago = 前
common_label_all = すべての
common_label_all_resources = すべてのリソース
common_label_day = 日
-common_label_days = 日
common_label_hour = 時間
-common_label_hours = 時間
common_label_item = 項目
common_label_items = 項目
-common_label_milliseconds = ミリ秒
-common_label_minutes = 分
common_label_month = 月
common_label_none = なし
common_label_role = ロール
common_label_roles = ロール
common_label_scheduled_operations = スケジュールされた操作
-common_label_seconds = 秒
common_label_selected_resources = 選択されたリソース
common_label_unlimited = 無制限
common_label_user = ユーザー
common_label_users = ユーザー
common_label_week = 週
-common_label_weeks = 週
common_label_yesterday = 昨日
common_msg_areYouSure = よろしいですか?
+##common_msg_asyncTimeout = {0}. This occurred because the server is taking a long time to complete this request. Please be aware that the server may still be processing your request and it may complete shortly. You can check the server logs to see if any abnormal errors occurred.
common_msg_changeAutoDetected = 変更が自動検出されました
common_msg_deleteConfirm = を削除してもよろしいですか # selected {0}?
common_msg_emphasizedNotePrefix = 注意:
common_msg_loading = ロード中...
common_msg_noItemsToShow = 表示する項目はありません
-common_msg_notYetImplemented = Not Yet Implemented
+##common_msg_notYetImplemented = Not Yet Implemented
common_msg_see_more = 詳細...
common_msg_step_x_of_y = ステップ {1} 中 {0} 番め
-common_severity_debug = Debug
-common_severity_error = Error
-common_severity_fatal = Fatal
-common_severity_info = Info
-common_severity_warn = Warn
+##common_severity_debug = Debug
+common_severity_error = エラー
+##common_severity_fatal = Fatal
+common_severity_info = 情報
+##common_severity_warn = Warn
common_status_canceled = キャンセル
common_status_deferred = 延期
common_status_failed = 失敗
@@ -103,7 +98,8 @@ common_status_unknown = 未知
common_title_add_column = カラム追加
common_title_add_portlet = ポートレット追加
common_title_address = アドレス
-common_title_alert_range = アラートの範囲
+common_title_alerts = アラート
+common_title_alerts_range = アラートの範囲
common_title_ancestry = 祖先
common_title_availability = アベイラビリティ
common_title_available_resources = 利用可能リソース
@@ -126,6 +122,8 @@ common_title_dashboard_name = ダッシュボード名
common_title_dateCreated = 作成日
common_title_dateRange = 日付の範囲
common_title_default = デフォルト
+##common_title_definition = Definition
+common_title_definitions = 定義
common_title_description = 説明
common_title_details = 詳細
common_title_display = 表示
@@ -134,7 +132,6 @@ common_title_duration = 期間
common_title_edit_mode = 編集モード
common_title_enabled = 有効?
common_title_end = 終了
-common_title_error = エラー
common_title_generalProp = 一般プロパティ
common_title_group = グループ
common_title_group_def_total = グループ定義の合計
@@ -144,7 +141,6 @@ common_title_help = ヘルプ
common_title_host = ホスト
common_title_id = ID
common_title_id_parent = 親のID
-common_title_info = 情報
common_title_inventory = インベントリ
common_title_inventorySummary = インベントリサマリ
common_title_lastUpdated = 最終更新
@@ -161,6 +157,7 @@ common_title_name = 名前
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 = オペレーションの範囲
@@ -176,6 +173,7 @@ common_title_providers = プロバイダ
common_title_recent_alerts = 最近のアラート
common_title_recent_bundle_deployments = 最近のバンドルのデプロイ
common_title_recent_configuration_updates = 最近の構成の更新
+##common_title_recent_drifts = Recent Drift
common_title_recent_event_counts = 最近のイベント数
common_title_recent_measurements = 最近の測定
common_title_recent_oob_metrics = 最近の境界外のメトリックス
@@ -282,14 +280,12 @@ dataSource_platforms_field_cpu = CPU
dataSource_platforms_field_memory = メモリ
dataSource_platforms_field_swap = スワップ
dataSource_problemResources_error_fetchFailure = アラートを発している、または利用不能のリソースのロードに失敗しました
-dataSource_problemResources_field_alerts = アラート
dataSource_problemResources_field_available = 現在のアベイラビリティ
dataSource_recentOperations_error_fetchFailure = 最近完了したオペレーションのロードに失敗しました
dataSource_recentOperations_field_location = ロケーション
dataSource_recentOperations_field_operation = オペレーション
dataSource_recentOperations_field_resource = リソース
dataSource_recentOperations_field_status = ステータス
-dataSource_recentOperations_field_time = 日付/時刻
dataSource_resourceErrors_clickStatusIcon = 詳細はアイコンをクリックしてください
dataSource_resourceErrors_deleteFailure = リソースエラーの削除に失敗しました
dataSource_resourceErrors_deleteSuccess = [{0}] リソースエラーメッセージを削除するのに失敗しました
@@ -313,7 +309,6 @@ dataSource_scheduledOperations_error_fetchFailure = スケジュールされた
dataSource_scheduledOperations_field_location = 場所
dataSource_scheduledOperations_field_operation = オペレーション
dataSource_scheduledOperations_field_resource = リソース
-dataSource_scheduledOperations_field_time = 日付/時刻
dataSource_schedules_disableFailure_group = ID [{1}] を持つリソースグループの [{0}] メトリックスの収集を無効にするのに失敗しました。有効になったメトリックスは [{2}] です。
dataSource_schedules_disableFailure_resource = ID [{1}] を持つリソースの [{0}] メトリックスの収集を無効にするのに失敗しました。有効になったメトリックスは [{2}] です。
dataSource_schedules_disableSuccessful_concise = [{0}] 測定の収集を無効にしました
@@ -349,14 +344,11 @@ dataSource_users_field_id = ID
dataSource_users_field_lastName = 名字
dataSource_users_field_ldap = LDAPログイン?
dataSource_users_field_name = ユーザー名
-dataSource_users_field_password = パスワード
dataSource_users_field_passwordVerify = パスワードの確認
dataSource_users_field_phoneNumber = 電話番号
dataSource_users_invalidEmailAddress = 無効なEメールアドレス
dataSource_users_passwordsDoNotMatch = パスワードが一致していません
datasource_roles_field_ldapGroups = LDAPグループ
-datasource_roles_field_permissions = パーミッション
-datasource_roles_field_resourceGroups = リソースグループ
datasource_roles_field_subjects = サブジェクト
datasource_templateSchedules_disabled = 選択されたメトリック [{0}] の収集を無効にしました
datasource_templateSchedules_disabled_detailed = ID [{2}] を持つリソースタイプのためにデフォルトでメトリック [{0}] [{1}] の収集を無効にしました
@@ -395,7 +387,6 @@ view_adminConfig_plugins = プラグイン
view_adminConfig_systemSettings = システム設定
view_adminConfig_templates = テンプレート
view_adminContent_contentSources = コンテントソース
-view_adminContent_repositories = リポジトリ
view_adminRoles_assignedGroups = 割り当てられたリソースグループ
view_adminRoles_assignedSubjects = 割り当てられたSubjects
view_adminRoles_failLdap = LDAPが構成されたかどうかの決定に失敗しました - LDAPが無いことを仮定します
@@ -405,7 +396,6 @@ view_adminRoles_failRoles = ロールの取り出しに失敗しました
view_adminRoles_globalPerms = グローバル権限
view_adminRoles_ldapGroups = LDAPグループ
view_adminRoles_ldapGroupsReadOnly = LDAPグループデータは読み出し専用です
-view_adminRoles_noItems = 表示するアイテムはありません
view_adminRoles_noLdap = LDAPセキュリティの統合は構成されていません。LDAPを構成するには、 <a {0}>{1}</a>に行ってください。
view_adminRoles_permissions_autoselecting_configureRead_implied = CONFIGURE_WRITE権限が自動的に選択されました。なぜなら、CONFIGURE_READが無いことがそれを暗示しているからです。
view_adminRoles_permissions_autoselecting_configureWrite_implied = CONFIGURE_READ権限が自動的に選択されました。なぜなら、CONFIGURE_WRITEがそれを暗示しているからです。
@@ -430,6 +420,7 @@ view_adminRoles_permissions_permReadDesc_deleteChildResources = (暗黙的な)
view_adminRoles_permissions_permReadDesc_inventory = リソースプロパティ(名前、説明、バージョンなど)、コネクション設定、コネクション設定履歴の(暗黙的な)閲覧
view_adminRoles_permissions_permReadDesc_manageAlerts = アラート定義とアラート履歴の(暗黙的な)閲覧
view_adminRoles_permissions_permReadDesc_manageContent = (暗黙的な)インストールされて利用可能なパッケージ。パッケージインストール履歴の閲覧。
+##view_adminRoles_permissions_permReadDesc_manageDrift = (IMPLIED) view drift definitions and drift history
view_adminRoles_permissions_permReadDesc_manageEvents = (暗黙的な)イベントの閲覧
view_adminRoles_permissions_permReadDesc_manageMeasurements = メトリックデータと収集スケジュールの(暗黙的な)閲覧
view_adminRoles_permissions_permWriteDesc_configure = リソース構成の更新。リソース構成リビジョン履歴の削除。
@@ -439,6 +430,7 @@ view_adminRoles_permissions_permWriteDesc_deleteChildResources = リソースの
view_adminRoles_permissions_permWriteDesc_inventory = リソースの名前、バージョン、説明、コネクション設定の更新。コネクション設定の履歴の削除。
view_adminRoles_permissions_permWriteDesc_manageAlerts = アラート定義の作成、更新、削除。アラート履歴の確認と削除
view_adminRoles_permissions_permWriteDesc_manageContent = コンテントソースへの登録。パッケージのインストールとアンインストール。
+##view_adminRoles_permissions_permWriteDesc_manageDrift = create, update, and delete drift definitions; and manage drift instances
view_adminRoles_permissions_permWriteDesc_manageEvents = イベントの削除
view_adminRoles_permissions_permWriteDesc_manageMeasurements = メトリック収集スケジュールの更新
view_adminRoles_permissions_perm_configure = 構成
@@ -449,6 +441,7 @@ view_adminRoles_permissions_perm_inventory = インベントリ
view_adminRoles_permissions_perm_manageAlerts = アラートの管理
view_adminRoles_permissions_perm_manageBundles = バンドルの管理
view_adminRoles_permissions_perm_manageContent = コンテント管理
+##view_adminRoles_permissions_perm_manageDrift = Manage Drift
view_adminRoles_permissions_perm_manageEvents = イベント管理
view_adminRoles_permissions_perm_manageInventory = インベントリの管理
view_adminRoles_permissions_perm_manageMeasurements = 測定の管理
@@ -459,15 +452,12 @@ view_adminRoles_permissions_read = Read:
view_adminRoles_permissions_readAccessImplied = [{0}] 権限のための読み取りアクセスを暗示されていて無効にできません
view_adminRoles_permissions_resourcePermissions = リソース権限
view_adminRoles_permissions_write = Write:
-view_adminRoles_perms = 権限
view_adminRoles_resourcePerms = リソース権限
view_adminRoles_roleAdded = ロール [{0}] が追加されました
view_adminRoles_roleDeleteFailed = ロール [{0}] の削除に失敗しました
view_adminRoles_roleDeleted = ロール [{0}] が削除されました
view_adminRoles_roleUpdateFailed = ロール [{0}] の更新に失敗しました.
view_adminRoles_roleUpdated = ロール [{0}] が更新されました
-view_adminSecurity_roles = ロール
-view_adminSecurity_users = ユーザー
view_adminTemplates_disabledAlertTemplates = 無効なアラートテンプレート
view_adminTemplates_disabledMetricTemplates = 無効なメトリックテンプレート
view_adminTemplates_editAlertTemplate = アラートテンプレートの編集
@@ -487,8 +477,6 @@ view_adminTopology_partitionEvents = イベントの分類
view_adminTopology_remoteAgentInstall = リモートエージェントのインストール
view_adminTopology_servers = サーバー
view_adminUsersDetails_dataTypeName = ユーザー
-view_adminUsersList_dataTypeName = ユーザー
-view_adminUsersList_dataTypeNamePlural = ユーザー
view_admin_administration = 管理
view_admin_configuration = 構成
view_admin_content = コンテント
@@ -608,8 +596,8 @@ view_alert_common_tab_conditions_type_availability = アベイラビリティの
view_alert_common_tab_conditions_type_availability_down = 下降
view_alert_common_tab_conditions_type_availability_up = 上昇
##view_alert_common_tab_conditions_type_drift = Drift Detection
-##view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift configuration [{1}]
-##view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift configuration [{0}]
+##view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift definition [{1}]
+##view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift definition [{0}]
##view_alert_common_tab_conditions_type_drift_onlypaths = Drift Detection for files that match "{0}"
view_alert_common_tab_conditions_type_event = イベントの検出
view_alert_common_tab_conditions_type_event_matching = イベントソースが一致
@@ -632,7 +620,6 @@ view_alert_common_tab_conditions_type_metric_trait_change = トレイトの変
view_alert_common_tab_conditions_type_operation = オペレーションの実行
view_alert_common_tab_conditions_type_operation_status = 結果ステータス付
view_alert_common_tab_conditions_type_resource_configuration = リソース構成の変化
-view_alert_common_tab_conditions_value = 値
view_alert_common_tab_dampening = 抑制
view_alert_common_tab_dampening_category_consecutive_count = 連続
view_alert_common_tab_dampening_category_consecutive_count_tooltip = 条件設定がX回連続してtrueであればアラートが引き起こされます。
@@ -669,19 +656,14 @@ view_alert_definition_condition_editor_common_avg = 平均
view_alert_definition_condition_editor_common_max = 最大
view_alert_definition_condition_editor_common_min = 最小
view_alert_definition_condition_editor_delete_confirm = 選択されたアラート定義を削除しますか?
-##view_alert_definition_condition_editor_drift_configname_regex = Drift Configuration Name
-##view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift configuration name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift configuration names.
+##view_alert_definition_condition_editor_drift_configname_regex = Drift Definition Name
+##view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift definition name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift definition names.
##view_alert_definition_condition_editor_drift_pathname_regex = Pathname Regular Expression
##view_alert_definition_condition_editor_drift_pathname_regex_tooltip = If specified, this is a regular expression that must match the pathnames of those files that drifted.
##view_alert_definition_condition_editor_drift_tooltip = This condition is triggered when drift has been detected.
view_alert_definition_condition_editor_event_regex = 正規表現
view_alert_definition_condition_editor_event_regex_tooltip = もし指定されたなら、これは正規表現であり、この条件を引き起こすために収集されたイベントメッセージに一致しなければなりません。
view_alert_definition_condition_editor_event_severity = イベント重大度
-view_alert_definition_condition_editor_event_severity_debug = Debug
-view_alert_definition_condition_editor_event_severity_error = Error
-view_alert_definition_condition_editor_event_severity_fatal = Fatal
-view_alert_definition_condition_editor_event_severity_info = Info
-view_alert_definition_condition_editor_event_severity_warn = Warn
view_alert_definition_condition_editor_event_tooltip = この条件を引き起こすためにイベントメッセージが報告される必要があるイベント重大度を指定します。もしオプションとなる正規表現を指定したなら、イベントメッセージはその条件が引き起こされるためにイベントメッセージも正規表現に一致しなければなりません。
view_alert_definition_condition_editor_metric_baseline_percentage = ベースラインパーセンテージ
view_alert_definition_condition_editor_metric_baseline_percentage_tooltip = 選択された比較子(comparator)を使用して選択されたベースライン値のパーセンテージを比較するときに収集されたメトリック値はこの条件を引き起こします。
@@ -727,13 +709,7 @@ view_alert_definition_condition_editor_metric_threshold_value = メトリック
view_alert_definition_condition_editor_metric_threshold_value_tooltip = メトリックの閾値は、選択されたコンパレータを使って比較されたときの条件のトリガーになります
view_alert_definition_condition_editor_metric_trait_change_tooltip = 条件を引き起こすために変更しなければならない値を持つトレイとを指定します
view_alert_definition_condition_editor_metric_trait_change_value = トレイト
-view_alert_definition_condition_editor_operation_status = オペレーションステータス
-view_alert_definition_condition_editor_operation_status_canceled = キャンセル済
-view_alert_definition_condition_editor_operation_status_failure = 失敗
-view_alert_definition_condition_editor_operation_status_inprogress = 処理中
-view_alert_definition_condition_editor_operation_status_success = 成功
view_alert_definition_condition_editor_operation_tooltip = 条件を引き起こすために選択されたが実行されるとき発生しなければならない結果を指定します
-view_alert_definition_condition_editor_operation_value = オペレーション
view_alert_definition_condition_editor_option_availability = アベイラビリティの変化
##view_alert_definition_condition_editor_option_drift = Drift Detection
view_alert_definition_condition_editor_option_event = イベントの検出
@@ -866,20 +842,15 @@ view_autoDiscoveryQ_confirmSelect = プラットフォームの子も選択し
view_autoDiscoveryQ_deleted = 削除済み
view_autoDiscoveryQ_field_discoveryTime = 発見時刻
view_autoDiscoveryQ_field_inventoryStatus = インベントリステータス
-view_autoDiscoveryQ_field_key = リソースキー
-view_autoDiscoveryQ_field_name = リソース名
view_autoDiscoveryQ_field_parentId = 親ID
view_autoDiscoveryQ_ignore = 無視
view_autoDiscoveryQ_ignoreFailure = リソースを無視するのに失敗しました
view_autoDiscoveryQ_ignoreSuccessful = 選択したリソースを無視するのに成功しました
view_autoDiscoveryQ_ignored = 無視済み
-view_autoDiscoveryQ_import = インポート
view_autoDiscoveryQ_importFailure = リソースのインポートに失敗しました
view_autoDiscoveryQ_importSuccessful = 選択したリソースのインポートに成功しました。
view_autoDiscoveryQ_loadFailure = インベントリディスカバリキューをロードするのに失敗しました
-view_autoDiscoveryQ_new = 新規
view_autoDiscoveryQ_newAndIgnored = 新規かつ無視済み
-view_autoDiscoveryQ_noItems = 表示する項目がありません
view_autoDiscoveryQ_noperm = (自動ディスカバリキューを閲覧する権限がありません)
view_autoDiscoveryQ_showStatus = 表示
view_autoDiscoveryQ_title = 自動リカバリキュー
@@ -1134,24 +1105,40 @@ view_dashboards_portlets_refresh_one_min = 1 分
view_dashboards_portlets_refresh_success1 = ポートレットの自動リフレッシュ間隔を更新しました
view_dashboards_portlets_refresh_success2 = 自動リフレッシュするポートレットのリロードを停止しています
view_dashboards_title = ダッシュボード
-##view_drift = Drift
-##view_drift_category_fileNew = New Detection
-##view_drift_changeSets = Change Sets
-##view_drift_changeSets_resourceViewTitle = Resource Drift Change Sets
-##view_drift_changeset_tree_loadConfigFailure = Failed to load drift configuration for change set id [{0}]
-##view_drift_changeset_tree_loadFailure = Failed to load drift change set tree.
-##view_drift_delete_configConfirm = Delete the selected drift configuration(s)?
-##view_drift_delete_configConfirmAll = Delete all drift configurations?
-##view_drift_failure_deleteConfigs = Failed to delete some or all drift configurations.
+##view_drift_button_detectNow = Detect Now
+##view_drift_category_fileAdded = File Added
+##view_drift_category_fileChanged = File Changed
+##view_drift_category_fileNew = Newly Detected
+##view_drift_category_fileRemoved = File Removed
+##view_drift_delete_configConfirm = Delete the selected drift detection definition(s)?
+##view_drift_delete_configConfirmAll = Delete all drift detection definition?
+##view_drift_failure_deleteDefs = Failed to delete some or all drift detection definitions.
+##view_drift_failure_detectNow = Failed to submit drift detection run request
+##view_drift_failure_load = Failed to fetch drift instances
+##view_drift_snapshots = Snapshots
+##view_drift_snapshots_resourceViewTitle = Resource Drift Snapshots
+##view_drift_snapshots_tree_loadDefFailure = Failed to load drift detection definition for snapshot id [{0}]
+##view_drift_snapshots_tree_loadFailure = Failed to load drift snapshot tree.
+##view_drift_success_defUpdated = Drift detection definition updated and will affect the next detection run as applicable.
+##view_drift_success_delete = Successfully deleted {0} drift instances
+##view_drift_success_deleteConfigs = Successfully deleted {0} drift detection definitions
+##view_drift_success_detectNow = Successfully submitted drift detection run request
##view_drift_table_baseDir = Base Directory
-##view_drift_table_changeSet = Change Set
##view_drift_table_driftHandlingMode = Drift Handling
##view_drift_table_driftHandlingMode_normal = normal
##view_drift_table_driftHandlingMode_plannedChanges = planned changes
##view_drift_table_newFile = New File
##view_drift_table_oldFile = Old File
-##view_drift_table_resourceConfig = Resource Drift Configuration
+##view_drift_table_resourceDef = Resource Drift Detection Definition
##view_drift_table_resourceHistory = Resource Drift History
+##view_drift_table_snapshot = Snapshot
+##view_drift_wizard_addDef_failure = Failed to add new drift detection definition [{0}]
+##view_drift_wizard_addDef_infoStepName = Provide Drift Detection Information
+##view_drift_wizard_addDef_success = Successfully added new drift detection definition [{0}]. Agent(s) will be updated.
+##view_drift_wizard_addDef_templateHelp = Each drift detection definition describes a set of files for which drift monitoring will be performed. The definition can be enabled and disabled, defines the detection run interval, and specifies a base directory and optional file filters. For each resource type offering drift detection there will be one or more predefined templates to use as a starting definition, which can then be edited.
+##view_drift_wizard_addDef_templatePrompt = Drift Detection Definition Templates
+##view_drift_wizard_addDef_title = Add Drift Detection Definition for Resource of Type [{0}]
+##view_drift_wizard_addDef_windowTitle = Drift Add Detection Definition Wizard
view_dynagroup_children = 動的グループの子
view_dynagroup_compatible = Compatible
view_dynagroup_definitionAlreadyExists = すでにこの名前のグループ定義が存在します
@@ -1371,7 +1358,6 @@ view_inventory_groups_deleteFailed = 選択されたリソースグループの
view_inventory_groups_deleteSuccessful = 選択されたリソースグループの削除に成功しました
view_inventory_groups_descendants = 子孫
view_inventory_groups_loadFailed = グループ合成データのロードに失敗しました
-view_inventory_groups_resourceGroups = リソースグループ
view_inventory_mixed = 混成
view_inventory_platforms = プラットフォーム
view_inventory_problemGroups = 問題グループ
@@ -1380,9 +1366,7 @@ view_inventory_resources_deleteConfirm = 選択されたリソースを削除し
view_inventory_resources_deleteFailed = 選択されたリソースの削除に失敗しました
##view_inventory_resources_deleteSuccessful = A request to perform the resource deletion has been submitted successfully to the agent(s).
view_inventory_resources_loadFailed = リソース合成データのロードに失敗しました
-view_inventory_resources_title = リソース
-view_inventory_resources_title_children = 子リソース
-view_inventory_resources_title_members = メンバーリソース
+view_inventory_resources_members = メンバーリソース
view_inventory_resources_uninventoryConfirm = 選択したリソースをアンインベントリしてもよろしいですか? もし選択したリソースがまだ存在しているなら、そのエージェントの次回のディスカバリスキャンの間にそれは再発見されます。
view_inventory_resources_uninventoryFailed = 選択されたリソースのアンインベントリに失敗しました
view_inventory_resources_uninventorySuccessful = 選択されたリソースのアンインベントリに成功しました
@@ -1409,7 +1393,6 @@ view_login_prompt = ログインしてください
view_login_registerLater = (キャンセル - 登録を後で完成させてください)
view_login_registerLdapSuccess = 新しいLDAPユーザーの登録に成功しました
view_login_registerUser = ユーザの登録
-view_login_welcome = ようこそ
view_login_welcomeMsg = RHQへようこそ! <br/><br/> 登録を完成させるために次のフィールドを入力/更新してください。<br/> "OK"をクリックしたら、ログインします。<br/><br/>
view_measureRange_last = 時間の範囲 - 直前
view_measureRange_simple = シンプル...
@@ -1489,7 +1472,6 @@ view_portlet_defaultName_resource_metrics = リソース: 測定
view_portlet_defaultName_resource_oobs = リソース: OOB メトリックス
view_portlet_defaultName_resource_operations = リソース: オペレーション
view_portlet_defaultName_resource_pkg_hisory = リソース: パッケージ履歴
-view_portlet_defaultName_tagCloud = タグ数
view_portlet_factory_invalidPortlet = これは有効ではない古いポートレットです。削除してください。
view_portlet_graph_configure_metricDefinition_graph = グラフを描くためのメトリック定義 ID
view_portlet_graph_configure_resource_graph = グラフ化するリソース
@@ -1603,7 +1585,6 @@ view_resource_monitor_calltime_lookupFailed = 呼び出し時間のためのリ
view_resource_monitor_calltime_maximum = 最大
view_resource_monitor_calltime_minimum = 最小
view_resource_monitor_calltime_title = 呼び出し時間データ
-view_resource_monitor_calltime_total = 合計
view_resource_monitor_detailed_graph_label = 詳細化グラフ
view_resource_monitor_graph_instructions = マウスで図の上のデータを指し示してください
view_resource_monitor_graph_live_tooltip = クリックをすると現在の値の活動中のグラフが表示されます
@@ -1611,7 +1592,6 @@ view_resource_monitor_graphs_loadFailed = グラフデータのロードに失
view_resource_monitor_graphs_lookupFailed = グラフのためのリソースの発見に失敗しました
view_resource_monitor_graphs_noneAvailable = 利用できるグラフはありません
view_resource_monitor_schedules_title = リソースメトリック収集スケジュール
-view_resource_monitor_table_alerts = アラート
view_resource_monitor_table_avg = 平均
view_resource_monitor_table_last = 最後
view_resource_monitor_table_max = 最大
@@ -1645,7 +1625,6 @@ view_summaryOverviewForm_field_type = タイプ
view_summaryOverviewForm_field_version = バージョン
view_summaryOverviewForm_header_summary = サマリ
view_summaryOverviewForm_label_plugin = プラグイン:
-view_summaryOverviewForm_label_type = タイプ:
view_summaryOverviewForm_message_descriptionChangeSuccess = ID {0} を持つリソースの説明を [{1}] から [{2}]に変更するのに失敗しました
view_summaryOverviewForm_message_locationChangeSuccess = ID {0} を持つリソースの位置を [{1}] から [{2}]に変更するのに失敗しました
view_summaryOverviewForm_message_nameChangeSuccess = ID {0} を持つリソースの名前を [{1}] から [{2}]に変更するのに失敗しました
@@ -1660,19 +1639,17 @@ view_table_matchingRows = 一致した行: {0} (選択済み: {1})
view_table_totalRows = 合計行: {0} (選択済み: {1})
view_tabs_common_activity = アクティビティ
view_tabs_common_agent = エージェント
-view_tabs_common_alerts = アラート
view_tabs_common_availability = アベイラビリティ
view_tabs_common_calltime = 呼び出し時間e
view_tabs_common_child_history = 子の履歴
view_tabs_common_child_resources = 子リソース
-view_tabs_common_configuration = 構成
view_tabs_common_connectionSettings = 接続設定
view_tabs_common_connectionSettingsHistory = 接続設定の履歴
view_tabs_common_content = コンテント
view_tabs_common_current = 現在
view_tabs_common_dashboard = ダッシュボード
-view_tabs_common_definitions = 定義
view_tabs_common_deployed = デプロイ済み
+##view_tabs_common_drift = Drift
view_tabs_common_events = イベント
view_tabs_common_graphs = グラフ
view_tabs_common_group_members = グループメンバー
@@ -1682,13 +1659,10 @@ view_tabs_common_history = 履歴
view_tabs_common_inventory = インベントリ
view_tabs_common_members = メンバー
view_tabs_common_monitoring = モニタリング
-view_tabs_common_new = 新規
-view_tabs_common_operations = オペレーション
view_tabs_common_overview = 概要
view_tabs_common_schedule = スケジュール
view_tabs_common_schedules = スケジュール
view_tabs_common_subscriptions = サブスクリプション
-view_tabs_common_summary = サマリ
view_tabs_common_tables = テーブル
view_tabs_common_timeline = タイムライン
view_tabs_common_traits = トレイト
@@ -1699,7 +1673,6 @@ view_tagCloud_deleteTagFailure = タグ [{0}] を削除するのに失敗しま
view_tagCloud_deleteTagSuccess = タグ [{0}] を削除するのに成功しました
view_tagCloud_error_fetchFailure = タグをロードするのに失敗しました
view_tagCloud_error_tagUsedCount = {0} 回使われたタグ
-view_tagCloud_title = タグクラウド
view_taggedResources_title = リソース
view_tags_error_1 = タグをロードするのに失敗しました
view_tags_tags = タグ
@@ -1729,9 +1702,8 @@ view_tree_common_contextMenu_loadFail_dashboards = ユーザーのダッシュ
view_tree_common_contextMenu_loadFail_group = コンテキストメニューのためのグループのロードに失敗しました
view_tree_common_contextMenu_loadFailed_dashboard = ユーザーダッシュボードのロードに失敗しました
view_tree_common_contextMenu_loadFailed_manualAddChildren = 子を手動で追加するためのプラットフォームのロードに失敗しました
+view_tree_common_contextMenu_loadFailed_operations = オペレーションの実行のためにウィザードを開始するのに失敗しました
view_tree_common_contextMenu_measurements = 測定
-view_tree_common_contextMenu_operations = オペレーション
-view_tree_common_contextMenu_operations_loadFailed = オペレーションの実行のためにウィザードを開始するのに失敗しました
view_tree_common_contextMenu_resourceConfiguration = リソース構成
view_tree_common_contextMenu_resourceGraph = リソースメトリックグラフ
view_tree_common_contextMenu_saveChartToDashboardFailure = ダッシュボードを保存するのに失敗しました
@@ -1809,7 +1781,6 @@ widget_recordEditor_info_recordUpdatedConcise = {0} が更新されました。
widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] が更新されました。
widget_recordEditor_info_recordsDeletedConcise = {0} {1} が削除されました。
widget_recordEditor_info_recordsDeletedDetailed = {0} {1} が削除されました: {2}.
-widget_recordEditor_label_loading = ロード中...
widget_recordEditor_title_edit = 編集 {0} [{1}]
widget_recordEditor_title_new = 新規作成 {0}
widget_recordEditor_title_view = 閲覧 {0} [{1}]
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
index b16ca87..522c7d9 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
@@ -51,29 +51,23 @@ common_calendar_may_short = mai
common_calendar_november_short = nov
common_calendar_october_short = out
common_calendar_september_short = set
-common_label_ago = ago
+##common_label_ago = ago
common_label_all = TODOS
common_label_all_resources = todos os recursos
common_label_day = dia
-common_label_days = dias
common_label_hour = hora
-common_label_hours = horas
common_label_item = item
common_label_items = itens
-common_label_milliseconds = milisegundos
-common_label_minutes = minutos
common_label_month = m\u00EAs
common_label_none = nenhum
common_label_role = perfil
common_label_roles = perfis
common_label_scheduled_operations = opera\u00E7\u00F5es agendadas
-common_label_seconds = segundos
common_label_selected_resources = recursos selecionados
common_label_unlimited = ilimitado
common_label_user = usu\u00E1rio
common_label_users = usu\u00E1rios
common_label_week = semana
-common_label_weeks = semanas
common_label_yesterday = Ontem
common_msg_areYouSure = Tem certeza?
common_msg_asyncTimeout = {0}. Isso ocorre porque o servidor est\u00E1 levando muito tempo para atender esta requisi\u00E7\u00E3o. Favor atentar para o fato de que o servidor ainda esteja processando sua requisi\u00E7\u00E3o e pode concluir dentro de mais alguns instantes. Voc\u00EA ainda pode verificar os logs do servidor para identificar se algum erro anormal ocorreu.
@@ -85,11 +79,11 @@ common_msg_noItemsToShow = N\u00E3o existem itens para apresentar
common_msg_notYetImplemented = N\u00E3o implementado ainda
common_msg_see_more = Ver detalhes...
common_msg_step_x_of_y = Passo {0} de {1}
-common_severity_debug = Debug
-common_severity_error = Error
-common_severity_fatal = Fatal
-common_severity_info = Info
-common_severity_warn = Warn
+##common_severity_debug = Debug
+common_severity_error = Erro
+##common_severity_fatal = Fatal
+##common_severity_info = Info
+##common_severity_warn = Warn
common_status_canceled = Cancelado
common_status_deferred = Deferido
common_status_failed = Falha
@@ -103,7 +97,8 @@ common_title_add_column = Adicionar Coluna
common_title_add_graph_to_view = Adicionar Gr\u00E1fico ao Monitor de Vis\u00E3o
common_title_add_portlet = Adicionar Portlet
common_title_address = Endere\u00E7o
-common_title_alert_range = S\u00E9rie de Alertas
+common_title_alerts = Alerts
+common_title_alerts_range = S\u00E9rie de Alertas
common_title_ancestry = Ancestral
common_title_availability = Disponibilidade
common_title_available_resources = Recursos Dispon\u00EDveis
@@ -126,6 +121,8 @@ common_title_dashboard_name = Nome do Painel de Controle
common_title_dateCreated = Data de Cria\u00E7\u00E3o
common_title_dateRange = Intervalo de Data
common_title_default = Padr\u00E3o
+##common_title_definition = Definition
+common_title_definitions = Definitions
common_title_description = Descri\u00E7\u00E3o
common_title_details = Detalhes
common_title_display = Display
@@ -134,7 +131,6 @@ common_title_duration = Dura\u00E7\u00E3o
common_title_edit_mode = Modo Edi\u00E7\u00E3o
common_title_enabled = Habilitado?
common_title_end = Fim
-common_title_error = Erro
common_title_favorites = Favoritos
common_title_generalProp = Propriedades Gerais
common_title_group = Grupo
@@ -146,7 +142,6 @@ common_title_host = Host
common_title_icon = \u00EDcone
common_title_id = ID
common_title_id_parent = ID do Recurso pai
-common_title_info = Info
##common_title_interval = Interval
common_title_inventory = Invent\u00E1rio
common_title_inventorySummary = Sum\u00E1rio do Invent\u00E1rio
@@ -164,6 +159,7 @@ common_title_name = Nome
common_title_new_dashboard = Novo Painel de Controle
common_title_numeric_metrics = M\u00E9tricas Num\u00E9ricas
common_title_numeric_type = Tipo Num\u00E9rico
+common_title_operation = Opera\u00E7\u00E3o
common_title_operation_status = Status da Opera\u00E7\u00E3o
common_title_operations = Opera\u00E7\u00F5es
common_title_operations_range = S\u00E9rie de Opera\u00E7\u00F5es
@@ -173,13 +169,13 @@ common_title_path = Caminho
common_title_permissions = Permiss\u00F5es
common_title_platform = Plataforma
common_title_platform_total = Total de Plataformas
-common_title_plugin = Plugin
+##common_title_plugin = Plugin
common_title_port = Porta
common_title_providers = Provedores
common_title_recent_alerts = Alertas Recentes
common_title_recent_bundle_deployments = Recent Bundle Deployments
common_title_recent_configuration_updates = Configura\u00E7\u00F5es Alteradas Recentemente
-##common_title_recent_drifts = Recent Drifts
+##common_title_recent_drifts = Recent Drift
common_title_recent_event_counts = Totaliza\u00E7\u00E3o de Eventos Recentes
common_title_recent_measurements = M\u00E9tricas Recentes
common_title_recent_oob_metrics = M\u00E9tricas fora dos limites Recentes
@@ -189,7 +185,7 @@ common_title_recently_added = Recursos Adicionados Recentemente
common_title_remove_column = Remover Coluna
common_title_repositories = Reposit\u00F3rios
common_title_resource = Recursos
-common_title_resourceGroups = Resource Groups
+##common_title_resourceGroups = Resource Groups
common_title_resource_group = Grupo de Recursos
common_title_resource_id = ID do Recurso
common_title_resource_inventory = Invent\u00E1rio de Recursos
@@ -217,7 +213,6 @@ common_title_start = Iniciar
common_title_status = Status
common_title_stop = Parar
common_title_summary = Sum\u00E1rio
-common_title_summary_counts = Sum\u00E1rio de Contagem
common_title_tag_cloud = Nuvem de Tags
common_title_the = O
common_title_timestamp = Data/Hora
@@ -292,16 +287,12 @@ dataSource_platforms_field_cpu = CPU
dataSource_platforms_field_memory = Mem\u00F3ria
dataSource_platforms_field_swap = Swap
dataSource_problemResources_error_fetchFailure = Falha com carregar Recursos com alertas/indisponibilidade.
-dataSource_problemResources_field_alerts = Alertas
dataSource_problemResources_field_available = Disponibilidade Atual
-dataSource_problemResources_field_location = Local
-dataSource_problemResources_field_resource = Recurso
dataSource_recentOperations_error_fetchFailure = Falha ao carregar a lista de opera\u00E7\u00F5es finalizadas recentemente.
dataSource_recentOperations_field_location = Localiza\u00E7\u00E3o
dataSource_recentOperations_field_operation = Opera\u00E7\u00E3o
dataSource_recentOperations_field_resource = Recurso
dataSource_recentOperations_field_status = Status
-dataSource_recentOperations_field_time = Data/Hora
dataSource_resourceErrors_clickStatusIcon = Clique no \u00EDcone para mais detalhes
dataSource_resourceErrors_deleteFailure = Falha do excluir mensagens de erros do recurso
dataSource_resourceErrors_deleteSuccess = Mensagens de erro para o recurso [{0}] exclu\u00EDdas com sucesso.
@@ -326,7 +317,6 @@ dataSource_scheduledOperations_error_fetchFailure = Falha ao carregar a lista de
dataSource_scheduledOperations_field_location = Localiza\u00E7\u00E3o
dataSource_scheduledOperations_field_operation = Opera\u00E7\u00E3o
dataSource_scheduledOperations_field_resource = Recurso
-dataSource_scheduledOperations_field_time = Data/Hora
dataSource_schedules_disableFailure_group = Falha ao desabilitar a coleta de m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas eram: [{2}]
dataSource_schedules_disableFailure_resource = Falha ao desabilitar a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas eram: [{2}]
dataSource_schedules_disableSuccessful_concise = Voc\u00EA desabilitou a coleta de m\u00E9tricas de [{0}]
@@ -363,14 +353,11 @@ dataSource_users_field_id = ID
dataSource_users_field_lastName = \u00DAltimo Nome
dataSource_users_field_ldap = LDAP Login?
dataSource_users_field_name = Nome do Usu\u00E1rio
-dataSource_users_field_password = Senha
dataSource_users_field_passwordVerify = Verifique a Senha
dataSource_users_field_phoneNumber = N\u00FAmero de Telefone
dataSource_users_invalidEmailAddress = Endere\u00E7o de email inv\u00E1lido.
dataSource_users_passwordsDoNotMatch = Senhas n\u00E3o conferem.
datasource_roles_field_ldapGroups = Grupos LDAP
-datasource_roles_field_permissions = Permiss\u00F5es
-datasource_roles_field_resourceGroups = Grupos de Recurso
datasource_roles_field_subjects = Subjects
datasource_templateSchedules_disabled = Desabilitar a coleta da m\u00E9trica selecionada [{0}].
datasource_templateSchedules_disabled_detailed = Desabilitar a coleta da m\u00E9trica [{0}] [{1}] para o Tipo de Recurso com id [{2}].
@@ -409,7 +396,6 @@ view_adminConfig_plugins = Plugins
view_adminConfig_systemSettings = Propriedades de Sistema
view_adminConfig_templates = Templates
view_adminContent_contentSources = Fontes de Conte\u00FAdo
-view_adminContent_repositories = Reposit\u00F3rios
view_adminRoles_assignedGroups = Grupos de Recursos Associados
view_adminRoles_assignedSubjects = Perfis Associados
view_adminRoles_failLdap = Falha ao determinar se o LDAP foi configurado - assumindo como LDAP n\u00E3o configurado.
@@ -419,7 +405,6 @@ view_adminRoles_failRoles = Falha ao recuperar perfis.
view_adminRoles_globalPerms = Permiss\u00F5es Globais
view_adminRoles_ldapGroups = Grupos LDAP
view_adminRoles_ldapGroupsReadOnly = Informa\u00E7\u00F5es do grupo LDAP com permiss\u00F5es apenas de leitura
-view_adminRoles_noItems = Sem itens para apresentar
view_adminRoles_noLdap = A integra\u00E7\u00E3o com o LDAP ainda n\u00E3o foi configurada. Para configurar o LDAP acesse <a {0}>{1}</a>.
view_adminRoles_permissions_autoselecting_configureRead_implied = Autodeselected CONFIGURE_WRITE permission, since lack of CONFIGURE_READ implies lack of it...
view_adminRoles_permissions_autoselecting_configureWrite_implied = Autoselected CONFIGURE_READ permission, since CONFIGURE_WRITE implies it...
@@ -454,7 +439,7 @@ view_adminRoles_permissions_permWriteDesc_deleteChildResources = uninventory res
view_adminRoles_permissions_permWriteDesc_inventory = update Resource name, version, description, and connection settings; delete connection settings history items
##view_adminRoles_permissions_permWriteDesc_manageAlerts = create, update, and delete alert definitions; acknowledge and delete alert history items
view_adminRoles_permissions_permWriteDesc_manageContent = subscribe to content sources; install and uninstall packages
-##view_adminRoles_permissions_permWriteDesc_manageDrift = create, update, and delete alert definitions; acknowledge and delete alert history items
+##view_adminRoles_permissions_permWriteDesc_manageDrift = create, update, and delete drift definitions; and manage drift instances
view_adminRoles_permissions_permWriteDesc_manageEvents = delete events
view_adminRoles_permissions_permWriteDesc_manageMeasurements = update metric collection schedules
view_adminRoles_permissions_perm_configure = Configurar
@@ -476,7 +461,6 @@ view_adminRoles_permissions_read = Leitura:
view_adminRoles_permissions_readAccessImplied = Acesso de leitura para a permiss\u00E3o {0} \u00E9 impl\u00EDcita e n\u00E3o pode ser desabilitada.
view_adminRoles_permissions_resourcePermissions = Permiss\u00F5es de Recurso
view_adminRoles_permissions_write = Escrita:
-view_adminRoles_perms = Permiss\u00F5es
view_adminRoles_resourcePerms = Permiss\u00F5es do Recurso
view_adminRoles_roleAdded = Perfil [{0}] adicionado.
view_adminRoles_roleDeleteFailed = Falha ao excluir o perfil [{0}].
@@ -484,8 +468,6 @@ view_adminRoles_roleDeleted = Perfil [{0}] exclu\u00EDdo.
view_adminRoles_roleExists = O perfil com nome [{0}] j\u00E1 existe.
view_adminRoles_roleUpdateFailed = Falha ao atualizar o perfil [{0}].
view_adminRoles_roleUpdated = Perfil [{0}] atualizado.
-view_adminSecurity_roles = Perfis
-view_adminSecurity_users = Usu\u00E1rios
view_adminTemplates_disabledAlertTemplates = Templates de Alerta Desabilitados
view_adminTemplates_disabledMetricTemplates = Templates de M\u00E9trica Desabilitados
view_adminTemplates_editAlertTemplate = Editar Template de Alerta
@@ -505,8 +487,6 @@ view_adminTopology_partitionEvents = Eventos na Parti\u00E7\u00E3o
view_adminTopology_remoteAgentInstall = Instala\u00E7\u00E3o Remota de Agentes
view_adminTopology_servers = Servidores
view_adminUsersDetails_dataTypeName = usu\u00E1rio
-view_adminUsersList_dataTypeName = usu\u00E1rio
-view_adminUsersList_dataTypeNamePlural = usu\u00E1rios
view_admin_administration = Administra\u00E7\u00E3o
view_admin_configuration = Configura\u00E7\u00E3o
view_admin_content = Conte\u00FAdo
@@ -573,7 +553,7 @@ view_admin_systemSettings_LDAPBaseDN_name = Search Base
view_admin_systemSettings_LDAPBindDN_desc = The username to connect to the LDAP server when querying the LDAP user database. This is typically the full LDAP distinguished name (DN) of a manager user, e.g. cn = Manager,dc = redhat,dc = com
view_admin_systemSettings_LDAPBindDN_name = Username
view_admin_systemSettings_LDAPBindPW_desc = The credentials of the user used to connect to the LDAP server when querying the LDAP user database.
-view_admin_systemSettings_LDAPBindPW_name = Password
+view_admin_systemSettings_LDAPBindPW_name = Senha
view_admin_systemSettings_LDAPFilter_desc = Any additional filters to apply when doing the LDAP search. This is useful if the population to authenticate can be identified via a given LDAP property, e.g. RHQUser = true
view_admin_systemSettings_LDAPFilter_name = Search Filter
view_admin_systemSettings_LDAPGroupFilter_desc = LDAP search filter that must return all LDAP groups available for authorization. This is used for LDAP group authorization.
@@ -624,8 +604,8 @@ view_alert_common_tab_conditions_type_availability = Mudan\u00E7a na Disponibili
view_alert_common_tab_conditions_type_availability_down = Indispon\u00EDvel
view_alert_common_tab_conditions_type_availability_up = Dispon\u00EDvel
##view_alert_common_tab_conditions_type_drift = Drift Detection
-##view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift configuration [{1}]
-##view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift configuration [{0}]
+##view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift definition [{1}]
+##view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift definition [{0}]
##view_alert_common_tab_conditions_type_drift_onlypaths = Drift Detection for files that match "{0}"
view_alert_common_tab_conditions_type_event = Detec\u00E7\u00E3o de Envento
view_alert_common_tab_conditions_type_event_matching = combinando com o evento de origem
@@ -648,7 +628,6 @@ view_alert_common_tab_conditions_type_metric_trait_change = Mudan\u00E7a de Cara
view_alert_common_tab_conditions_type_operation = Execu\u00E7\u00E3o de Opera\u00E7\u00E3o
view_alert_common_tab_conditions_type_operation_status = resultado com status
view_alert_common_tab_conditions_type_resource_configuration = Mudan\u00E7a na Configura\u00E7\u00E3o do Recurso
-view_alert_common_tab_conditions_value = Valor
view_alert_common_tab_dampening = Sensibilidade
view_alert_common_tab_dampening_category_consecutive_count = Consecutivos
view_alert_common_tab_dampening_category_consecutive_count_tooltip = Um alerta \u00E9 disparado a cada X ocorr\u00EAncias consecutivas em que o conjunto de condi\u00E7\u1E4Des for satisfeito.
@@ -687,19 +666,14 @@ view_alert_definition_condition_editor_common_avg = M\u00E9dio
view_alert_definition_condition_editor_common_max = M\u00E1ximo
view_alert_definition_condition_editor_common_min = M\u00EDnimo
view_alert_definition_condition_editor_delete_confirm = Delete the selected alert condition(s)?
-##view_alert_definition_condition_editor_drift_configname_regex = Drift Configuration Name
-##view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift configuration name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift configuration names.
+##view_alert_definition_condition_editor_drift_configname_regex = Drift Definition Name
+##view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift definition name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift definition names.
##view_alert_definition_condition_editor_drift_pathname_regex = Pathname Regular Expression
##view_alert_definition_condition_editor_drift_pathname_regex_tooltip = If specified, this is a regular expression that must match the pathnames of those files that drifted.
##view_alert_definition_condition_editor_drift_tooltip = This condition is triggered when drift has been detected.
view_alert_definition_condition_editor_event_regex = Express\u00E3o Regular
view_alert_definition_condition_editor_event_regex_tooltip = Se definida, a condi\u00E7\u00E3o somente ser\u00E1 disparada caso o evento satisfa\u00E7a a express\u00E3o.
view_alert_definition_condition_editor_event_severity = Severidade do Evento
-view_alert_definition_condition_editor_event_severity_debug = Debug
-view_alert_definition_condition_editor_event_severity_error = Error
-view_alert_definition_condition_editor_event_severity_fatal = Fatal
-view_alert_definition_condition_editor_event_severity_info = Info
-view_alert_definition_condition_editor_event_severity_warn = Warn
view_alert_definition_condition_editor_event_tooltip = Define a severeidade do evento para disparar a condi\u00E7\u00E3o. Caso seja definida uma express\u00E3o regular, a condi\u00E7\u00E3o somente ser\u00E1 disparada se o evento satisfazer a express\u00E3o.
view_alert_definition_condition_editor_metric_baseline_percentage = Percentual da linha de base
view_alert_definition_condition_editor_metric_baseline_percentage_tooltip = Valor da m\u00E9trica coletada usada para disparo da condi\u00E7\u00E3o quando comparado ao valor da linha de base selecionada
@@ -745,13 +719,7 @@ view_alert_definition_condition_editor_metric_threshold_value = Valor da M\u00E9
view_alert_definition_condition_editor_metric_threshold_value_tooltip = Limiar (threshold) da m\u00E9trica utilizado na compara\u00E7\u00E3o como condi\u00E7\u00E3o de disparo.
view_alert_definition_condition_editor_metric_trait_change_tooltip = Specify the trait whose value must change to trigger the condition.
view_alert_definition_condition_editor_metric_trait_change_value = Caracter\u00EDstica
-view_alert_definition_condition_editor_operation_status = Status da Opera\u00E7\u00E3o
-view_alert_definition_condition_editor_operation_status_canceled = Cancelada
-view_alert_definition_condition_editor_operation_status_failure = Falha
-view_alert_definition_condition_editor_operation_status_inprogress = Em andamento
-view_alert_definition_condition_editor_operation_status_success = Sucesso
view_alert_definition_condition_editor_operation_tooltip = Define o resultado esperado quando a opera\u00E7\u00E3o selecionada for executada para dispararo da confi\u00E7\u00E3o.
-view_alert_definition_condition_editor_operation_value = Opera\u00E7\u00E3o
view_alert_definition_condition_editor_option_availability = Mudan\u00E7a de Disponibilidade
##view_alert_definition_condition_editor_option_drift = Drift Detection
view_alert_definition_condition_editor_option_event = Detec\u00E7\u00E3o de Evento
@@ -888,22 +856,17 @@ view_autoDiscoveryQ_deleted = Exclu\u00EDdo
view_autoDiscoveryQ_deselectAll = Desmarcar todos
view_autoDiscoveryQ_field_discoveryTime = Data e Hora da Descoberta
view_autoDiscoveryQ_field_inventoryStatus = Status do Invet\u00E1rio
-view_autoDiscoveryQ_field_key = Chave do Recurso
-view_autoDiscoveryQ_field_name = Nome do Recurso
view_autoDiscoveryQ_field_parentId = ID Pai
view_autoDiscoveryQ_ignore = Ignorar
view_autoDiscoveryQ_ignoreFailure = Falha ao ignorar recursos.
view_autoDiscoveryQ_ignoreInProgress = Ignorando recursos selecionados...
view_autoDiscoveryQ_ignoreSuccessful = Os recursos selecionados foram ignorados com sucesso.
view_autoDiscoveryQ_ignored = Ignorado
-view_autoDiscoveryQ_import = Importar
view_autoDiscoveryQ_importFailure = Falha ao importar recursos
view_autoDiscoveryQ_importInProgress = Importando recursos selecionados...
view_autoDiscoveryQ_importSuccessful = Os recursos selecionados foram importados com sucesso.
view_autoDiscoveryQ_loadFailure = Falha ao carregar a fila de descoberta do invent\u00E1rio
-view_autoDiscoveryQ_new = Novo
view_autoDiscoveryQ_newAndIgnored = Novo e Ignorado
-view_autoDiscoveryQ_noItems = N\u00E3o h\u00E1 itens a serem mostrados
view_autoDiscoveryQ_noperm = (Requer permiss\u00E3o para gerenciar o Inevnt\u00E1rio. Contacte o Administrador para realizar a altera\u00E7\u00E3o)
view_autoDiscoveryQ_selectAll = Selecionar todos
view_autoDiscoveryQ_showStatus = Mostrar
@@ -1170,40 +1133,40 @@ view_dashboards_portlets_refresh_one_min = 1 minuto
view_dashboards_portlets_refresh_success1 = Intervalo de atualiza\u00E7\u00E3o dos portlets din\u00E2micos alterado com sucesso
view_dashboards_portlets_refresh_success2 = Parando a atualiza\u00E7\u00E3o autom\u00E1tica dos portlets din\u00E2micos
view_dashboards_title = Dashboard
-##view_drift = Drift
-##view_drift_button_detectNow = Detectar agora
-##view_drift_category_fileAdded = Arquivo adicionado
-##view_drift_category_fileChanged = Arquivo alterado
+view_drift_button_detectNow = Detectar agora
+view_drift_category_fileAdded = Arquivo adicionado
+view_drift_category_fileChanged = Arquivo alterado
+##view_drift_category_fileNew = Newly Detected
##view_drift_category_fileRemoved = Arquivo removido
-##view_drift_changeSets = Change Sets
-##view_drift_changeSets_resourceViewTitle = Resource Drift Change Sets
-##view_drift_delete_configConfirm = Delete the selected drift configuration(s)?
-##view_drift_delete_configConfirmAll = Delete all drift configurations?
-##view_drift_failure_deleteConfigs = Failed to delete some or all drift configurations.
-##view_drift_failure_detectNow = Falha ao submeter a requisi��o de detec��o do drift
-##view_drift_failure_load = Falha ao recuperar os dados do drift
-##view_drift_success_configurationUpdated = Configura��o do drift atualizada. O arquivo de cobertura ser� atualizado na pr�xima varredura de detec��o.
-##view_drift_success_delete = Drifts {0} exclu�dos com sucesso!
-##view_drift_success_deleteConfigs = Configura��es do drift {0} exclu�das com sucesso!
-##view_drift_success_detectNow = Requisi��o de detec��o de drift submetida com sucesso.
+##view_drift_delete_configConfirm = Delete the selected drift detection definition(s)?
+##view_drift_delete_configConfirmAll = Delete all drift detection definition?
+##view_drift_failure_deleteDefs = Failed to delete some or all drift detection definitions.
+view_drift_failure_detectNow = Falha ao submeter a requisi��o de detec��o do drift
+view_drift_failure_load = Falha ao recuperar os dados do drift
+##view_drift_snapshots = Snapshots
+##view_drift_snapshots_resourceViewTitle = Resource Drift Snapshots
+##view_drift_snapshots_tree_loadDefFailure = Failed to load drift detection definition for snapshot id [{0}]
+##view_drift_snapshots_tree_loadFailure = Failed to load drift snapshot tree.
+##view_drift_success_defUpdated = Drift detection definition updated and will affect the next detection run as applicable.
+view_drift_success_delete = Drifts {0} exclu�dos com sucesso!
+##view_drift_success_deleteConfigs = Successfully deleted {0} drift detection definitions
+view_drift_success_detectNow = Requisi��o de detec��o de drift submetida com sucesso.
##view_drift_table_baseDir = Diret�rio Base
-##view_drift_table_changeSet = Change Set
##view_drift_table_driftHandlingMode = Drift Handling
##view_drift_table_driftHandlingMode_normal = normal
##view_drift_table_driftHandlingMode_plannedChanges = planned changes
##view_drift_table_newFile = Novo Arquivo
##view_drift_table_oldFile = Arquivo Antigo
-##view_drift_table_resourceConfig = Configura��o de Drift do Recurso
+##view_drift_table_resourceDef = Resource Drift Detection Definition
##view_drift_table_resourceHistory = Hist�rico de Drift do Recurso
-##view_drift_wizard_addConfig_failure = Falha ao adicionar nova configura��o de drift [{0}]
-##view_drift_wizard_addConfig_infoStepName = Provide Drift Detection Information\nForne�a a informa��o para detec��o do drift
-##view_drift_wizard_addConfig_nameHelp = Um nome que descreve de forma objetiva o prop�sito desta configura��o de drift de detec��o. Nomes de configura��o de drift devem ser �nicos para um determinado recurso.
-##view_drift_wizard_addConfig_namePrompt = Novo nome para configura��o do drift
-##view_drift_wizard_addConfig_success = Nova configura��o de drift inclu�da com sucesso [{0}]. O(s) agente(s) ser�(�o) atualizado(s).
-##view_drift_wizard_addConfig_templateHelp = Cada configura��o de drift define um conjunto de arquivos no qual a detec��o ser� aplicada. A configura��o pode ser habilitada ou desabilitada, define um intervalo de detec��o, e especifica um diret�rio raiz e filtros opcionais. Para cada tipo de recurso com suporte a detec��o de drift existe um ou mais templates pr�-definidos para usar como ponto de partida e que podem ser editados posteriormente.
-##view_drift_wizard_addConfig_templatePrompt = Templates de configura��o de Drift
-##view_drift_wizard_addConfig_title = Incluir Configura��o de Drift para o Tipo de Recurso [{0}]
-##view_drift_wizard_addConfig_windowTitle = Assistente de Configura��o de Drift
+##view_drift_table_snapshot = Snapshot
+##view_drift_wizard_addDef_failure = Failed to add new drift detection definition [{0}]
+view_drift_wizard_addDef_infoStepName = Forne�a a informa��o para detec��o do drift
+##view_drift_wizard_addDef_success = Successfully added new drift detection definition [{0}]. Agent(s) will be updated.
+##view_drift_wizard_addDef_templateHelp = Each drift detection definition describes a set of files for which drift monitoring will be performed. The definition can be enabled and disabled, defines the detection run interval, and specifies a base directory and optional file filters. For each resource type offering drift detection there will be one or more predefined templates to use as a starting definition, which can then be edited.
+##view_drift_wizard_addDef_templatePrompt = Drift Detection Definition Templates
+##view_drift_wizard_addDef_title = Add Drift Detection Definition for Resource of Type [{0}]
+##view_drift_wizard_addDef_windowTitle = Drift Add Detection Definition Wizard
view_dynagroup_children = Grupo Din�mico Filho
view_dynagroup_compatible = Comp�tivel
view_dynagroup_definitionAlreadyExists = J� existe uma defini��o de grupo com este nome
@@ -1426,7 +1389,6 @@ view_inventory_groups_deleteFailed = Failed to delete the selected resource grou
view_inventory_groups_deleteSuccessful = You have successfully deleted the selected resource groups
view_inventory_groups_descendants = Descendants
view_inventory_groups_loadFailed = Failed to load group composite data
-view_inventory_groups_resourceGroups = Resource Groups
view_inventory_mixed = mixed
view_inventory_platforms = Platforms
view_inventory_problemGroups = Problem Groups
@@ -1435,9 +1397,7 @@ view_inventory_resources_deleteConfirm = Are you sure you want to delete the sel
view_inventory_resources_deleteFailed = Failed to delete the selected resources
##view_inventory_resources_deleteSuccessful = A request to perform the resource deletion has been submitted successfully to the agent(s).
view_inventory_resources_loadFailed = Failed to load resource composite data
-view_inventory_resources_title = Recursos membros
-view_inventory_resources_title_children = Child Resources
-view_inventory_resources_title_members = Member Resources
+##view_inventory_resources_members = Member Resources
view_inventory_resources_uninventoryConfirm = Are you sure you want to uninventory the selected resources? Note that if a selected resource still exists, then it will get rediscovered during its agent''s next discovery scan.
view_inventory_resources_uninventoryFailed = Failed to uninventory the selected resources
view_inventory_resources_uninventorySuccessful = You have successfully uninventoried the selected resources
@@ -1464,7 +1424,6 @@ view_login_prompt = Favor efetuar Login
view_login_registerLater = (Sair - Concluir registro mais tarde.)
view_login_registerLdapSuccess = Novo usu\u00E1rios do LDAP registrado com sucesso.
view_login_registerUser = Registrar Usu\u00E1rio
-view_login_welcome = Bem Vindo
view_login_welcomeMsg = Seja Bem Vindo ao JBoss ON! <br/><br/> Informe ou altere os seguintes campos para completar o processo de registro.<br/> Clique em "OK" para acessar o sistema.<br/><br/>
view_measureRange_day = 1 Dia
view_measureRange_days = {0} Dias
@@ -1581,7 +1540,6 @@ view_portlet_defaultName_operations = Recent Operations
view_portlet_defaultName_platformSummary = Platform Utilization
view_portlet_defaultName_problemResources = Alerted or Unavailable Resources
view_portlet_defaultName_recentAlerts = Recent Alerts
-##view_portlet_defaultName_recentDrifts = Recent Drifts
view_portlet_defaultName_recentlyAddedResources = Recently Added Resources
view_portlet_defaultName_resourceMetric = Resource Metric Graph
view_portlet_defaultName_resource_alerts = Resource: Alerts
@@ -1592,7 +1550,6 @@ view_portlet_defaultName_resource_metrics = Resource: Measurements
view_portlet_defaultName_resource_oobs = Resource: OOB Metrics
view_portlet_defaultName_resource_operations = Resource: Operations
view_portlet_defaultName_resource_pkg_hisory = Resource: Package History
-view_portlet_defaultName_tagCloud = Tag Count
view_portlet_factory_invalidPortlet = This is an obsolete portlet that is no longer valid. Please delete it.
view_portlet_favoriteResources_msg = This portlet displays your favorite resources
view_portlet_favoriteResources_title = Favorite Resources
@@ -1745,7 +1702,6 @@ view_resource_monitor_calltime_lookupFailed = Could not load resource for call t
view_resource_monitor_calltime_maximum = Maximum
view_resource_monitor_calltime_minimum = Minimum
view_resource_monitor_calltime_title = Call Time Data
-view_resource_monitor_calltime_total = Total
view_resource_monitor_detailed_graph_label = Detailed Graph
view_resource_monitor_graph_instructions = Point your mouse to a data point on the chart
view_resource_monitor_graph_live_tooltip = Click for a live graph of current values
@@ -1753,7 +1709,6 @@ view_resource_monitor_graphs_loadFailed = Failed to load graph data
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_alerts = Alerts
view_resource_monitor_table_avg = Average
view_resource_monitor_table_last = Last
view_resource_monitor_table_max = Maximum
@@ -1788,7 +1743,6 @@ view_summaryOverviewForm_field_type = Type
view_summaryOverviewForm_field_version = Version
view_summaryOverviewForm_header_summary = Summary
view_summaryOverviewForm_label_plugin = Plugin:
-view_summaryOverviewForm_label_type = Type:
view_summaryOverviewForm_message_descriptionChangeSuccess = Description of Resource with id {0} was changed from [{1}] to [{2}].
view_summaryOverviewForm_message_locationChangeSuccess = Location of Resource with id {0} was changed from [{1}] to [{2}].
view_summaryOverviewForm_message_nameChangeSuccess = Name of Resource with id {0} was changed from [{1}] to [{2}].
@@ -1803,18 +1757,15 @@ view_table_matchingRows = Matching Rows: {0} (selected: {1})
view_table_totalRows = Total de Linhas: {0} (selecionada: {1})
view_tabs_common_activity = Activity
view_tabs_common_agent = Agent
-view_tabs_common_alerts = Alerts
view_tabs_common_availability = Availability
view_tabs_common_calltime = Calltime
view_tabs_common_child_history = Child History
view_tabs_common_child_resources = Child Resources
-view_tabs_common_configuration = Configuration
view_tabs_common_connectionSettings = Connection Settings
view_tabs_common_connectionSettingsHistory = Connection Settings History
view_tabs_common_content = Content
view_tabs_common_current = Current
view_tabs_common_dashboard = Dashboard
-view_tabs_common_definitions = Definitions
view_tabs_common_deployed = Deployed
##view_tabs_common_drift = Drift
view_tabs_common_events = Events
@@ -1826,14 +1777,11 @@ view_tabs_common_history = History
view_tabs_common_inventory = Inventory
view_tabs_common_members = Members
view_tabs_common_monitoring = Monitoring
-view_tabs_common_new = New
-view_tabs_common_operations = Operations
view_tabs_common_overview = Overview
view_tabs_common_schedule = Schedule
view_tabs_common_scheduled = Scheduled
view_tabs_common_schedules = Schedules
view_tabs_common_subscriptions = Subscriptions
-view_tabs_common_summary = Summary
view_tabs_common_tables = Tables
view_tabs_common_timeline = Timeline
view_tabs_common_traits = Traits
@@ -1844,7 +1792,6 @@ view_tagCloud_deleteTagFailure = Failed to delete the tag [{0}]
view_tagCloud_deleteTagSuccess = You successfully deleted the tag [{0}]
view_tagCloud_error_fetchFailure = Falha ao carregar etiquetas (tags).
view_tagCloud_error_tagUsedCount = Etiqueta (tag) usada {0} vezes.
-view_tagCloud_title = Nuvem de Tags
view_taggedResources_title = Recursos Etiquetados
view_tags_error_1 = Failed to load Tags
view_tags_tags = Tags
@@ -1876,9 +1823,8 @@ view_tree_common_contextMenu_loadFail_dashboards = Failed to load user dashboard
view_tree_common_contextMenu_loadFail_group = Failed to load group for context menu
view_tree_common_contextMenu_loadFailed_dashboard = Failed to load user dashboards
view_tree_common_contextMenu_loadFailed_manualAddChildren = Failed to load platform manual add children
+view_tree_common_contextMenu_loadFailed_operations = Failure to start wizard for running operations
view_tree_common_contextMenu_measurements = Measurements
-view_tree_common_contextMenu_operations = Operations
-view_tree_common_contextMenu_operations_loadFailed = Failure to start wizard for running operations
view_tree_common_contextMenu_pluginConfiguration = Plugin Configuration
view_tree_common_contextMenu_resourceConfiguration = Resource Configuration
view_tree_common_contextMenu_resourceGraph = Resource Metric Graph
@@ -1958,7 +1904,6 @@ widget_recordEditor_info_recordUpdatedConcise = {0} atualizado.
widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] atualizado.
widget_recordEditor_info_recordsDeletedConcise = {0} {1} exclu\u00EDdo.
widget_recordEditor_info_recordsDeletedDetailed = {0} {1} exclu\u00EDdo: {2}.
-widget_recordEditor_label_loading = Carregar...
widget_recordEditor_title_edit = Editar {0} [{1}]
widget_recordEditor_title_new = Criar Novo {0}
widget_recordEditor_title_view = Visualizar {0} [{1}]
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
index 48ca5db..0cb70a7 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_zh.properties
@@ -51,33 +51,27 @@ common_calendar_may_short = \u4e94\u6708
common_calendar_november_short = \u5341\u4e00\u6708
common_calendar_october_short = \u5341\u6708
common_calendar_september_short = \u4e5d\u6708
-common_label_ago = ago
+##common_label_ago = ago
common_label_all = \u6240\u6709
common_label_all_resources = \u6240\u6709\u8d44\u6e90
common_label_day = \u5929
-common_label_days = \u5929
common_label_hour = \u5c0f\u65f6
-common_label_hours = \u5c0f\u65f6
common_label_item = \u9879
common_label_items = \u9879
-common_label_milliseconds = \u6beb\u79d2
-common_label_minutes = \u5206\u949f
common_label_month = \u6708
common_label_none = \u65e0
common_label_role = \u89d2\u8272
common_label_roles = \u89d2\u8272
common_label_scheduled_operations = \u8ba1\u5212\u64cd\u4f5c
-common_label_seconds = \u79d2
common_label_selected_resources = \u5df2\u9009\u8d44\u6e90
common_label_unlimited = \u65e0\u9650\u5236
common_label_user = \u7528\u6237
common_label_users = \u7528\u6237
common_label_week = \u5468
-common_label_weeks = \u5468
common_label_yesterday = \u6628\u5929
common_msg_areYouSure = \u4f60\u786e\u5b9a?
common_msg_asyncTimeout = {0}. \u56e0\u4e3a\u670d\u52a1\u5668\u54cd\u5e94\u65f6\u95f4\u592a\u957f. \u8bf7\u6ce8\u610f\u670d\u52a1\u5668\u53ef\u80fd\u4ecd\u5728\u5904\u7406\u60a8\u7684\u8bf7\u6c42\uff0c\u5e76\u53ef\u80fd\u5728\u77ed\u671f\u5185\u5b8c\u6210. \u4f60\u53ef\u4ee5\u68c0\u67e5\u670d\u52a1\u5668\u65e5\u5fd7\uff0c\u67e5\u770b\u662f\u5426\u51fa\u73b0\u4efb\u4f55\u4e0d\u6b63\u5e38\u7684\u9519\u8bef.
-common_msg_changeAutoDetected = Change auto-detected
+##common_msg_changeAutoDetected = Change auto-detected
common_msg_deleteConfirm = \u4f60\u786e\u5b9a\u8981\u5220\u9664# selected {0}?
common_msg_emphasizedNotePrefix = \u6ce8\u610f:
common_msg_loading = \u52a0\u8f7d\u4e2d...
@@ -86,7 +80,7 @@ common_msg_notYetImplemented = \u5c1a\u672a\u5b9e\u73b0
common_msg_see_more = \u67e5\u770b\u66f4\u591a...
common_msg_step_x_of_y = Step {0} of {1}
common_severity_debug = \u8c03\u8bd5
-common_severity_error = \u9519\u8bef
+common_severity_error = Error
common_severity_fatal = \u4e25\u91cd
common_severity_info = \u4fe1\u606f
common_severity_warn = \u8b66\u544a
@@ -103,7 +97,8 @@ common_title_add_column = \u6dfb\u52a0\u5217
common_title_add_graph_to_view = \u6dfb\u52a0\u56fe\u5230\u76d1\u89c6\u89c6\u56fe
common_title_add_portlet = \u6dfb\u52a0Portlet
common_title_address = \u5730\u5740
-common_title_alert_range = \u544a\u8b66\u8303\u56f4
+common_title_alerts = \u544a\u8b66
+common_title_alerts_range = \u544a\u8b66\u8303\u56f4
common_title_ancestry = \u7956\u5148
common_title_availability = \u53ef\u7528\u6027
common_title_available_resources = \u53ef\u7528\u7684\u8d44\u6e90
@@ -126,6 +121,8 @@ common_title_dashboard_name = \u7edf\u8ba1\u8868\u76d8\u540d
common_title_dateCreated = \u521b\u5efa\u65e5\u671f
common_title_dateRange = \u65e5\u671f\u8303\u56f4
common_title_default = \u9ed8\u8ba4
+##common_title_definition = Definition
+common_title_definitions = \u5b9a\u4e49
common_title_description = \u63cf\u8ff0
common_title_details = \u8be6\u7ec6
common_title_display = \u663e\u793a
@@ -134,7 +131,6 @@ common_title_duration = \u95f4\u9694
common_title_edit_mode = \u7f16\u8f91\u6a21\u5f0f
common_title_enabled = \u542f\u7528?
common_title_end = End
-common_title_error = Error
common_title_generalProp = \u57fa\u672c\u5c5e\u6027
common_title_group = \u7ec4
common_title_group_def_total = \u5b9a\u4e49\u7ec4\u603b\u6570
@@ -144,7 +140,6 @@ common_title_help = \u5e2e\u52a9
common_title_host = \u4e3b\u673a
common_title_id = ID
common_title_id_parent = \u7236ID
-common_title_info = \u4fe1\u606f
common_title_inventory = \u6e05\u5355
common_title_inventorySummary = \u6e05\u5355\u6c47\u603b
common_title_lastUpdated = \u6700\u8fd1\u66f4\u65b0
@@ -161,6 +156,7 @@ common_title_name = \u540d\u79f0
common_title_new_dashboard = \u65b0\u5efa\u7edf\u8ba1\u8868\u76d8
common_title_numeric_metrics = \u6570\u5b57\u578b\u6307\u6807
common_title_numeric_type = \u6570\u5b57\u7c7b\u578b
+common_title_operation = \u64cd\u4f5c
common_title_operation_status = \u64cd\u4f5c\u72b6\u6001
common_title_operations = \u64cd\u4f5c
common_title_operations_range = \u64cd\u4f5c\u8303\u56f4
@@ -176,6 +172,7 @@ common_title_providers = \u63d0\u4f9b\u8005
common_title_recent_alerts = \u6700\u8fd1\u544a\u8b66
common_title_recent_bundle_deployments = \u6700\u8fd1\u53d1\u5e03Bundles
common_title_recent_configuration_updates = \u6700\u8fd1\u914d\u7f6e\u66f4\u65b0
+##common_title_recent_drifts = Recent Drift
common_title_recent_event_counts = \u6700\u8fd1\u4e8b\u4ef6\u6570
common_title_recent_measurements = \u6700\u8fd1\u76d1\u6d4b
common_title_recent_oob_metrics = \u6700\u8fd1\u8d85\u6807\u6307\u6807
@@ -282,14 +279,12 @@ dataSource_platforms_field_cpu = CPU
dataSource_platforms_field_memory = \u5185\u5b58
dataSource_platforms_field_swap = \u4ea4\u6362\u533a
dataSource_problemResources_error_fetchFailure = \u52a0\u8f7d\u544a\u8b66/\u4e0d\u53ef\u7528\u8d44\u6e90\u5931\u8d25.
-dataSource_problemResources_field_alerts = \u544a\u8b66
dataSource_problemResources_field_available = \u5f53\u524d\u53ef\u7528\u6027
dataSource_recentOperations_error_fetchFailure = \u52a0\u8f7d\u6700\u8fd1\u64cd\u4f5c\u5931\u8d25.
dataSource_recentOperations_field_location = \u4f4d\u7f6e
dataSource_recentOperations_field_operation = \u64cd\u4f5c
dataSource_recentOperations_field_resource = \u8d44\u6e90
dataSource_recentOperations_field_status = \u72b6\u6001
-dataSource_recentOperations_field_time = \u65e5\u671f/\u65f6\u95f4
dataSource_resourceErrors_clickStatusIcon = \u70b9\u51fb\u56fe\u6807\u67e5\u770b\u8be6\u60c5
dataSource_resourceErrors_deleteFailure = \u5220\u9664\u8d44\u6e90\u9519\u8bef\u5931\u8d25
dataSource_resourceErrors_deleteSuccess = \u6210\u529f\u5220\u9664\u8d44\u6e90[{0}]\u9519\u8bef\u4fe1\u606f.
@@ -313,7 +308,6 @@ dataSource_scheduledOperations_error_fetchFailure = \u65e0\u6cd5\u8f7d\u5165\u8b
dataSource_scheduledOperations_field_location = \u4f4d\u7f6e
dataSource_scheduledOperations_field_operation = \u64cd\u4f5c
dataSource_scheduledOperations_field_resource = \u8d44\u6e90
-dataSource_scheduledOperations_field_time = \u65e5\u671f/\u65f6\u95f4
dataSource_schedules_disableFailure_group = \u7981\u7528\u6307\u6807\u96c6[{0}]\u5931\u8d25 \u4e3a\u8d44\u6e90\u7ec4ID [{1}]. \u6307\u6807\u662f: [{2}]
dataSource_schedules_disableFailure_resource = \u7981\u7528\u6307\u6807\u96c6[{0}]\u5931\u8d25 \u4e3a\u8d44\u6e90ID [{1}]. \u6307\u6807\u662f: [{2}]
dataSource_schedules_disableSuccessful_concise = \u7981\u7528\u76d1\u6d4b\u96c6[{0}]\u6210\u529f
@@ -349,14 +343,11 @@ dataSource_users_field_id = ID
dataSource_users_field_lastName = \u59d3
dataSource_users_field_ldap = LDAP\u767b\u5f55?
dataSource_users_field_name = \u7528\u6237\u540d
-dataSource_users_field_password = \u5bc6\u7801
dataSource_users_field_passwordVerify = \u786e\u8ba4\u5bc6\u7801
dataSource_users_field_phoneNumber = \u7535\u8bdd\u53f7\u7801
dataSource_users_invalidEmailAddress = \u90ae\u7bb1\u5730\u5740\u65e0\u6548.
dataSource_users_passwordsDoNotMatch = \u5bc6\u7801\u4e0d\u5339\u914d.
datasource_roles_field_ldapGroups = LDAP\u7ec4
-datasource_roles_field_permissions = \u6743\u9650
-datasource_roles_field_resourceGroups = \u8d44\u6e90\u7ec4
datasource_roles_field_subjects = Subjects
datasource_templateSchedules_disabled = \u7981\u7528\u9009\u62e9\u7684\u6307\u6807[{0}]\u91c7\u96c6.
datasource_templateSchedules_disabled_detailed = Disabled collection of metric [{0}] [{1}] by default for ResourceType with id [{2}].
@@ -394,7 +385,6 @@ view_adminConfig_plugins = \u63d2\u4ef6
view_adminConfig_systemSettings = \u7cfb\u7edf\u8bbe\u7f6e
view_adminConfig_templates = \u6a21\u677f
view_adminContent_contentSources = Content\u6e90
-view_adminContent_repositories = \u5e93
view_adminRoles_assignedGroups = \u5206\u914d\u7684\u8d44\u6e90\u7ec4
view_adminRoles_assignedSubjects = \u5206\u914d\u7684\u4e3b\u9898
view_adminRoles_failLdap = \u65e0\u6cd5\u786e\u5b9aLDAP - \u5047\u5b9a\u6ca1\u6709LDAP.
@@ -404,7 +394,6 @@ view_adminRoles_failRoles = \u53d6\u5f97\u89d2\u8272\u5931\u8d25.
view_adminRoles_globalPerms = \u5168\u5c40\u6388\u6743
view_adminRoles_ldapGroups = LDAP\u7ec4
view_adminRoles_ldapGroupsReadOnly = LDAP\u7ec4\u6570\u636e\u4e3a\u53ea\u8bfb
-view_adminRoles_noItems = \u6ca1\u6709\u6761\u76ee\u663e\u793a
view_adminRoles_noLdap = \u6ca1\u6709\u96c6\u6210LDAP\u5b89\u5168, \u5230<a {0}>{1}</a>.
view_adminRoles_permissions_autoselecting_configureRead_implied = Autodeselected CONFIGURE_WRITE permission, since lack of CONFIGURE_READ implies lack of it...
view_adminRoles_permissions_autoselecting_configureWrite_implied = Autoselected CONFIGURE_READ permission, since CONFIGURE_WRITE implies it...
@@ -429,6 +418,7 @@ view_adminRoles_permissions_permReadDesc_deleteChildResources = (IMPLIED) \u67e5
view_adminRoles_permissions_permReadDesc_inventory = (IMPLIED) view Resource properties (name, description, version, etc.), connection settings, and connection settings history
view_adminRoles_permissions_permReadDesc_manageAlerts = (IMPLIED) \u67e5\u770b\u544a\u8b66\u5b9a\u4e49\u548c\u544a\u8b66\u5386\u53f2
view_adminRoles_permissions_permReadDesc_manageContent = (IMPLIED) \u67e5\u770b\u5b89\u88c5\u7684\u548c\u53ef\u7528\u7684\u5305; \u67e5\u770b\u5305\u5b89\u88c5\u5386\u53f2
+##view_adminRoles_permissions_permReadDesc_manageDrift = (IMPLIED) view drift definitions and drift history
view_adminRoles_permissions_permReadDesc_manageEvents = (IMPLIED)\u67e5\u770b\u4e8b\u4ef6
view_adminRoles_permissions_permReadDesc_manageMeasurements = (IMPLIED) view metric data and collection schedules
view_adminRoles_permissions_permWriteDesc_configure = \u66f4\u65b0\u8d44\u6e90\u914d\u7f6e; \u5220\u9664\u8d44\u6e90\u914d\u7f6e\u4fee\u8ba2\u7684\u5386\u53f2\u9879
@@ -438,6 +428,7 @@ view_adminRoles_permissions_permWriteDesc_deleteChildResources = uninventory res
view_adminRoles_permissions_permWriteDesc_inventory = \u66f4\u65b0\u8d44\u6e90\u540d, \u7248\u672c,\u63cf\u8ff0, \u548c\u8fde\u63a5\u8bbe\u7f6e; \u5220\u9664\u8fde\u63a5\u8bbe\u7f6e\u5386\u53f2\u9879
view_adminRoles_permissions_permWriteDesc_manageAlerts = \u521b\u5efa, \u66f4\u65b0, \u548c\u5220\u9664\u544a\u8b66\u5b9a\u4e49; \u786e\u8ba4\u548c\u5220\u9664\u5386\u53f2\u544a\u8b66\u9879
view_adminRoles_permissions_permWriteDesc_manageContent = \u8ba2\u9605\u5185\u5bb9\u6e90; \u5b89\u88c5\u5378\u8f7d\u5305
+##view_adminRoles_permissions_permWriteDesc_manageDrift = create, update, and delete drift definitions; and manage drift instances
view_adminRoles_permissions_permWriteDesc_manageEvents = \u5220\u9664\u4e8b\u4ef6
view_adminRoles_permissions_permWriteDesc_manageMeasurements = \u66f4\u65b0\u6307\u6807\u96c6\u8ba1\u5212\u4efb\u52a1
view_adminRoles_permissions_perm_configure = \u914d\u7f6e
@@ -448,6 +439,7 @@ view_adminRoles_permissions_perm_inventory = \u6e05\u5355
view_adminRoles_permissions_perm_manageAlerts = \u7ba1\u7406\u544a\u8b66
view_adminRoles_permissions_perm_manageBundles = \u7ba1\u7406Bundles
view_adminRoles_permissions_perm_manageContent = \u7ba1\u7406\u5185\u5bb9
+##view_adminRoles_permissions_perm_manageDrift = Manage Drift
view_adminRoles_permissions_perm_manageEvents = \u7ba1\u7406\u4e8b\u4ef6
view_adminRoles_permissions_perm_manageInventory = \u7ba1\u7406\u6e05\u5355
view_adminRoles_permissions_perm_manageMeasurements = \u7ba1\u7406\u6307\u6807
@@ -458,15 +450,12 @@ view_adminRoles_permissions_read = \u8bfb:
view_adminRoles_permissions_readAccessImplied = \u9ed8\u8ba4\u6709\u8bbf\u95ee{0}\u7684\u6743\u9650\u800c\u4e14\u65e0\u6cd5\u7981\u7528.
view_adminRoles_permissions_resourcePermissions = \u8d44\u6e90\u6388\u6743
view_adminRoles_permissions_write = \u5199:
-view_adminRoles_perms = \u6743\u9650
view_adminRoles_resourcePerms = \u8d44\u6e90\u6388\u6743
view_adminRoles_roleAdded = \u89d2\u8272[{0}]\u6dfb\u52a0.
view_adminRoles_roleDeleteFailed = \u5220\u9664\u89d2\u8272[{0}]\u5931\u8d25.
view_adminRoles_roleDeleted = \u89d2\u8272[{0}]\u5220\u9664.
view_adminRoles_roleUpdateFailed = \u4fee\u6539\u89d2\u8272[{0}]\u5931\u8d25.
view_adminRoles_roleUpdated = \u89d2\u8272[{0}]\u66f4\u65b0\u4e86.
-view_adminSecurity_roles = \u89d2\u8272
-view_adminSecurity_users = \u7528\u6237
view_adminTemplates_disabledAlertTemplates = \u7981\u7528\u544a\u8b66\u6a21\u677f
view_adminTemplates_disabledMetricTemplates = \u7981\u7528\u6307\u6807\u6a21\u677f
view_adminTemplates_editAlertTemplate = \u7f16\u8f91\u544a\u8b66\u6a21\u677f
@@ -486,8 +475,6 @@ view_adminTopology_partitionEvents = Partition\u4e8b\u4ef6
view_adminTopology_remoteAgentInstall = \u8fdc\u7a0b\u4ee3\u7406\u5b89\u88c5
view_adminTopology_servers = \u670d\u52a1\u5668
view_adminUsersDetails_dataTypeName = user
-view_adminUsersList_dataTypeName = user
-view_adminUsersList_dataTypeNamePlural = users
view_admin_administration = \u7ba1\u7406
view_admin_configuration = \u914d\u7f6e
view_admin_content = Content
@@ -607,8 +594,8 @@ view_alert_common_tab_conditions_type_availability = \u53ef\u7528\u6027\u6539\u5
view_alert_common_tab_conditions_type_availability_down = Went down
view_alert_common_tab_conditions_type_availability_up = Came up
##view_alert_common_tab_conditions_type_drift = Drift Detection
-##view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift configuration [{1}]
-##view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift configuration [{0}]
+##view_alert_common_tab_conditions_type_drift_configpaths = Drift Detection for files that match "{0}" and for drift definition [{1}]
+##view_alert_common_tab_conditions_type_drift_onlyconfig = Drift Detection for drift definition [{0}]
##view_alert_common_tab_conditions_type_drift_onlypaths = Drift Detection for files that match "{0}"
view_alert_common_tab_conditions_type_event = \u4e8b\u4ef6\u68c0\u6d4b
view_alert_common_tab_conditions_type_event_matching = with event source matching
@@ -631,7 +618,6 @@ view_alert_common_tab_conditions_type_metric_trait_change = \u7279\u5f81\u6539\u
view_alert_common_tab_conditions_type_operation = \u64cd\u4f5c\u6267\u884c
view_alert_common_tab_conditions_type_operation_status = with result status
view_alert_common_tab_conditions_type_resource_configuration = \u8d44\u6e90\u914d\u7f6e Change
-view_alert_common_tab_conditions_value = Value
view_alert_common_tab_dampening = Dampening
view_alert_common_tab_dampening_category_consecutive_count = \u8fde\u7eed
view_alert_common_tab_dampening_category_consecutive_count_tooltip = An alert is triggered once every X occurrences the condition set is true consecutively.
@@ -668,19 +654,14 @@ view_alert_definition_condition_editor_common_avg = \u5e73\u5747
view_alert_definition_condition_editor_common_max = \u6700\u5927
view_alert_definition_condition_editor_common_min = \u6700\u5c0f
view_alert_definition_condition_editor_delete_confirm = \u5220\u9664\u9009\u5b9a\u7684\u8b66\u62a5\u6761\u4ef6?
-##view_alert_definition_condition_editor_drift_configname_regex = Drift Configuration Name
-##view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift configuration name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift configuration names.
+##view_alert_definition_condition_editor_drift_configname_regex = Drift Definition Name
+##view_alert_definition_condition_editor_drift_configname_regex_tooltip = If specified, this is the drift definition name that was responsible for the drift that was detected. This can optionally be a regular expression if you wish to match multiple drift definition names.
##view_alert_definition_condition_editor_drift_pathname_regex = Pathname Regular Expression
##view_alert_definition_condition_editor_drift_pathname_regex_tooltip = If specified, this is a regular expression that must match the pathnames of those files that drifted.
##view_alert_definition_condition_editor_drift_tooltip = This condition is triggered when drift has been detected.
view_alert_definition_condition_editor_event_regex = \u6b63\u5219\u8868\u8fbe\u5f0f
view_alert_definition_condition_editor_event_regex_tooltip = If specified, this is a regular expression that must match a collected event message in order to trigger the condition.
view_alert_definition_condition_editor_event_severity = \u4e8b\u4ef6\u4e25\u91cd\u6027
-view_alert_definition_condition_editor_event_severity_debug = \u8c03\u8bd5
-view_alert_definition_condition_editor_event_severity_error = \u9519\u8bef
-view_alert_definition_condition_editor_event_severity_fatal = \u4e25\u91cd
-view_alert_definition_condition_editor_event_severity_info = \u4fe1\u606f
-view_alert_definition_condition_editor_event_severity_warn = \u8b66\u544a
view_alert_definition_condition_editor_event_tooltip = Specify the event severity that an event message must be reported with in order to trigger this condition. If you specify an optional regular expression, the event message must also match that regular expression in order for the condition to trigger.
view_alert_definition_condition_editor_metric_baseline_percentage = Baseline Percentage
view_alert_definition_condition_editor_metric_baseline_percentage_tooltip = A collected metric value will trigger this condition when compared to this percentage of the selected baseline value using the selected comparator
@@ -726,13 +707,7 @@ view_alert_definition_condition_editor_metric_threshold_value = \u6307\u6807\u50
view_alert_definition_condition_editor_metric_threshold_value_tooltip = The threshold value of the metric that will trigger the condition when compared using the selected comparator.
view_alert_definition_condition_editor_metric_trait_change_tooltip = Specify the trait whose value must change to trigger the condition.
view_alert_definition_condition_editor_metric_trait_change_value = \u7279\u5f81
-view_alert_definition_condition_editor_operation_status = \u64cd\u4f5c\u72b6\u6001
-view_alert_definition_condition_editor_operation_status_canceled = Canceled
-view_alert_definition_condition_editor_operation_status_failure = Failure
-view_alert_definition_condition_editor_operation_status_inprogress = \u8fdb\u884c\u4e2d
-view_alert_definition_condition_editor_operation_status_success = Success
view_alert_definition_condition_editor_operation_tooltip = Specify the result that must occur when the selected operation is executed in order to trigger the condition.
-view_alert_definition_condition_editor_operation_value = \u64cd\u4f5c
view_alert_definition_condition_editor_option_availability = \u53ef\u7528\u6027\u6539\u53d8
##view_alert_definition_condition_editor_option_drift = Drift Detection
view_alert_definition_condition_editor_option_event = \u4e8b\u4ef6\u68c0\u6d4b
@@ -867,22 +842,17 @@ view_autoDiscoveryQ_deleted = \u5220\u9664\u7684
view_autoDiscoveryQ_deselectAll = \u53d6\u6d88\u6240\u6709\u7684\u9009\u5b9a
view_autoDiscoveryQ_field_discoveryTime = \u53d1\u73b0\u65f6\u95f4
view_autoDiscoveryQ_field_inventoryStatus = \u6e05\u5355\u72b6\u6001
-view_autoDiscoveryQ_field_key = \u8d44\u6e90Key
-view_autoDiscoveryQ_field_name = \u8d44\u6e90\u540d\u79f0
view_autoDiscoveryQ_field_parentId = \u7236ID
view_autoDiscoveryQ_ignore = \u5ffd\u7565
view_autoDiscoveryQ_ignoreFailure = \u5ffd\u7565\u8d44\u6e90\u5931\u8d25
view_autoDiscoveryQ_ignoreInProgress = \u5ffd\u7565\u9009\u4e2d\u8d44\u6e90...
view_autoDiscoveryQ_ignoreSuccessful = \u6210\u529f\u5ffd\u7565\u9009\u5b9a\u8d44\u6e90.
view_autoDiscoveryQ_ignored = Ignored
-view_autoDiscoveryQ_import = \u5bfc\u5165
view_autoDiscoveryQ_importFailure = \u5bfc\u5165\u8d44\u6e90\u5931\u8d25
view_autoDiscoveryQ_importInProgress = \u5bfc\u5165\u9009\u62e9\u7684\u8d44\u6e90...
view_autoDiscoveryQ_importSuccessful = \u6210\u529f\u5bfc\u5165\u88ab\u9009\u8d44\u6e90.
view_autoDiscoveryQ_loadFailure = \u52a0\u8f7d\u8d44\u6e90\u6e05\u5355\u53d1\u73b0\u961f\u5217\u5931\u8d25
-view_autoDiscoveryQ_new = New
view_autoDiscoveryQ_newAndIgnored = New and Ignored
-view_autoDiscoveryQ_noItems = \u65e0\u6761\u76ee\u663e\u793a
view_autoDiscoveryQ_noperm = (\u60a8\u6ca1\u6709\u6743\u9650\u67e5\u770b\u81ea\u52a8\u53d1\u73b0\u961f\u5217)
view_autoDiscoveryQ_selectAll = \u9009\u62e9\u6240\u6709
view_autoDiscoveryQ_showStatus = \u663e\u793a\u72b6\u6001
@@ -1143,22 +1113,40 @@ view_dashboards_portlets_refresh_one_min = 1 \u5206\u652f
view_dashboards_portlets_refresh_success1 = \u6210\u529f\u4fee\u6539portlets\u81ea\u52a8\u5237\u65b0\u7684\u95f4\u9694\u65f6\u95f4
view_dashboards_portlets_refresh_success2 = \u6210\u529f\u505c\u7528portlets\u81ea\u52a8\u5237\u65b0\u7684\u91cd\u8f7d
view_dashboards_title = \u7edf\u8ba1\u8868\u76d8
-##view_drift = Drift
-##view_drift_changeSets = Change Sets
-##view_drift_changeSets_resourceViewTitle = Resource Drift Change Sets
-##view_drift_changeset_tree_loadFailure = Failed to load drift change set tree.
-##view_drift_delete_configConfirm = Delete the selected drift configuration(s)?
-##view_drift_delete_configConfirmAll = Delete all drift configurations?
-##view_drift_failure_deleteConfigs = Failed to delete some or all drift configurations.
+##view_drift_button_detectNow = Detect Now
+##view_drift_category_fileAdded = File Added
+##view_drift_category_fileChanged = File Changed
+##view_drift_category_fileNew = Newly Detected
+##view_drift_category_fileRemoved = File Removed
+##view_drift_delete_configConfirm = Delete the selected drift detection definition(s)?
+##view_drift_delete_configConfirmAll = Delete all drift detection definition?
+##view_drift_failure_deleteDefs = Failed to delete some or all drift detection definitions.
+##view_drift_failure_detectNow = Failed to submit drift detection run request
+##view_drift_failure_load = Failed to fetch drift instances
+##view_drift_snapshots = Snapshots
+##view_drift_snapshots_resourceViewTitle = Resource Drift Snapshots
+##view_drift_snapshots_tree_loadDefFailure = Failed to load drift detection definition for snapshot id [{0}]
+##view_drift_snapshots_tree_loadFailure = Failed to load drift snapshot tree.
+##view_drift_success_defUpdated = Drift detection definition updated and will affect the next detection run as applicable.
+##view_drift_success_delete = Successfully deleted {0} drift instances
+##view_drift_success_deleteConfigs = Successfully deleted {0} drift detection definitions
+##view_drift_success_detectNow = Successfully submitted drift detection run request
##view_drift_table_baseDir = Base Directory
-##view_drift_table_changeSet = Change Set
##view_drift_table_driftHandlingMode = Drift Handling
##view_drift_table_driftHandlingMode_normal = normal
##view_drift_table_driftHandlingMode_plannedChanges = planned changes
##view_drift_table_newFile = New File
##view_drift_table_oldFile = Old File
-##view_drift_table_resourceConfig = Resource Drift Configuration
+##view_drift_table_resourceDef = Resource Drift Detection Definition
##view_drift_table_resourceHistory = Resource Drift History
+##view_drift_table_snapshot = Snapshot
+##view_drift_wizard_addDef_failure = Failed to add new drift detection definition [{0}]
+##view_drift_wizard_addDef_infoStepName = Provide Drift Detection Information
+##view_drift_wizard_addDef_success = Successfully added new drift detection definition [{0}]. Agent(s) will be updated.
+##view_drift_wizard_addDef_templateHelp = Each drift detection definition describes a set of files for which drift monitoring will be performed. The definition can be enabled and disabled, defines the detection run interval, and specifies a base directory and optional file filters. For each resource type offering drift detection there will be one or more predefined templates to use as a starting definition, which can then be edited.
+##view_drift_wizard_addDef_templatePrompt = Drift Detection Definition Templates
+##view_drift_wizard_addDef_title = Add Drift Detection Definition for Resource of Type [{0}]
+##view_drift_wizard_addDef_windowTitle = Drift Add Detection Definition Wizard
view_dynagroup_children = \u5b50\u52a8\u6001\u7ec4
view_dynagroup_compatible = \u517c\u5bb9\u6027
view_dynagroup_definitionAlreadyExists = \u5df2\u7ecf\u5b58\u5728\u4ee5\u8be5\u540d\u79f0\u547d\u540d\u7684\u7ec4\u5b9a\u4e49
@@ -1379,7 +1367,6 @@ view_inventory_groups_deleteFailed = \u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90\
view_inventory_groups_deleteSuccessful = \u6210\u529f\u7684\u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90\u7ec4
view_inventory_groups_descendants = \u540e\u4ee3\u7ec4
view_inventory_groups_loadFailed = \u52a0\u8f7d\u7ec4\u7ec4\u5408\u6570\u636e\u5931\u8d25
-view_inventory_groups_resourceGroups = \u8d44\u6e90\u7ec4
view_inventory_mixed = \u6df7\u5408
view_inventory_platforms = \u5e73\u53f0
view_inventory_problemGroups = \u95ee\u9898\u7ec4
@@ -1388,9 +1375,7 @@ view_inventory_resources_deleteConfirm = \u786e\u5b9a\u5220\u9664\u9009\u4e2d\u7
view_inventory_resources_deleteFailed = \u5220\u9664\u6307\u5b9a\u7684\u8d44\u6e90\u5931\u8d25
##view_inventory_resources_deleteSuccessful = A request to perform the resource deletion has been submitted successfully to the agent(s).
view_inventory_resources_loadFailed = \u52a0\u8f7d\u8d44\u6e90\u7ec4\u5408\u6570\u636e\u5931\u8d25
-view_inventory_resources_title = \u8d44\u6e90
-view_inventory_resources_title_children = \u5b50\u8d44\u6e90
-view_inventory_resources_title_members = \u6210\u5458\u8d44\u6e90
+view_inventory_resources_members = \u6210\u5458\u8d44\u6e90
view_inventory_resources_uninventoryConfirm = \u786e\u5b9a\u628a\u9009\u4e2d\u7684\u8d44\u6e90\u4ece\u6e05\u5355\u4e2d\u5220\u9664? \u6ce8\u610f\uff1a\u5982\u679c\u67d0\u4e2a\u9009\u4e2d\u7684\u8d44\u6e90\u4f9d\u7136\u5b58\u5728, \u5219\u7cfb\u7edf\u4f1a\u5728\u6b64\u8d44\u6e90\u7684\u5ba2\u6237\u7aef\u7a0b\u5e8f\u4e0b\u6b21\u63a2\u7d22\u626b\u63cf\u65f6\u91cd\u65b0\u52a0\u8f7d\u6b64\u8d44\u6e90.
view_inventory_resources_uninventoryFailed = \u4ece\u6e05\u5355\u4e2d\u5220\u9664\u9009\u4e2d\u7684\u8d44\u6e90\u5931\u8d25
view_inventory_resources_uninventorySuccessful = \u6210\u529f\u4ece\u6e05\u5355\u4e2d\u5220\u9664\u9009\u4e2d\u7684\u8d44\u6e90
@@ -1417,7 +1402,6 @@ view_login_prompt = \u8bf7\u767b\u5f55
view_login_registerLater = (\u53d6\u6d88 - \u7a0d\u540e\u5b8c\u6210\u6ce8\u518c.)
view_login_registerLdapSuccess = \u6210\u529f\u6ce8\u518c\u65b0\u7684LDAP\u7528\u6237.
view_login_registerUser = \u7528\u6237\u6ce8\u518c
-view_login_welcome = \u6b22\u8fce
view_login_welcomeMsg = \u6b22\u8fce\u6765\u5230 RHQ! <br/><br/> \u8f93\u5165\u6216\u8005\u4fee\u6539\u4e0b\u9762\u7684\u4fe1\u606f\uff0c\u4ee5\u5b8c\u6210\u6ce8\u518c<br/> \u70b9\u51fb"OK", \u5c31\u53ef\u4ee5\u767b\u5f55\u7cfb\u7edf.<br/><br/>
view_measureRange_last = \u65f6\u95f4\u8303\u56f4 - \u5148\u524d\u7684
view_measureRange_simple = \u4e00\u822c...
@@ -1497,7 +1481,6 @@ view_portlet_defaultName_resource_metrics = \u8d44\u6e90: \u5c5e\u6027
view_portlet_defaultName_resource_oobs = \u8d44\u6e90: OOB\u6307\u6807
view_portlet_defaultName_resource_operations = \u8d44\u6e90: \u64cd\u4f5c
view_portlet_defaultName_resource_pkg_hisory = \u8d44\u6e90: \u5386\u53f2\u6570\u636e\u5305
-view_portlet_defaultName_tagCloud = \u6807\u7b7e\u4e91
view_portlet_factory_invalidPortlet = \u8fd9\u662f\u4e00\u4e2a\u9648\u65e7\u5e76\u4e14\u5df2\u7ecf\u5931\u6548\u7684portlet. \u8bf7\u5220\u9664.
view_portlet_graph_configure_metricDefinition_graph = The metric definition id to graph
view_portlet_graph_configure_resource_graph = The resource to graph
@@ -1611,7 +1594,6 @@ view_resource_monitor_calltime_lookupFailed = Could not load resource for call t
view_resource_monitor_calltime_maximum = \u6700\u5927
view_resource_monitor_calltime_minimum = \u6700\u5c0f
view_resource_monitor_calltime_title = Call Time Data
-view_resource_monitor_calltime_total = \u6240\u6709
view_resource_monitor_detailed_graph_label = \u8be6\u7ec6\u56fe
view_resource_monitor_graph_instructions = Point your mouse to a data point on the chart
view_resource_monitor_graph_live_tooltip = Click for a live graph of current values
@@ -1619,7 +1601,6 @@ view_resource_monitor_graphs_loadFailed = \u52a0\u8f7d\u7ed8\u56fe\u6570\u636e\u
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_alerts = \u544a\u8b66
view_resource_monitor_table_avg = \u5e73\u5747
view_resource_monitor_table_last = Last
view_resource_monitor_table_max = \u6700\u5927
@@ -1653,7 +1634,6 @@ view_summaryOverviewForm_field_type = \u7c7b\u578b
view_summaryOverviewForm_field_version = \u7248\u672c\u53f7
view_summaryOverviewForm_header_summary = \u7edf\u8ba1
view_summaryOverviewForm_label_plugin = \u63d2\u4ef6\u6807\u7b7e:
-view_summaryOverviewForm_label_type = \u6807\u7b7e\u7c7b\u578b:
view_summaryOverviewForm_message_descriptionChangeSuccess = \u8d44\u6e90{0}\u63cf\u8ff0\u4ece[{1}] \u6539\u4e3a [{2}].
view_summaryOverviewForm_message_locationChangeSuccess = \u8d44\u6e90{0}\u4f4d\u7f6e\u4ece[{1}]\u6539\u4e3a[{2}].
view_summaryOverviewForm_message_nameChangeSuccess = \u8d44\u6e90{0}\u540d\u79f0\u4ece[{1}]\u6539\u4e3a[{2}].
@@ -1668,19 +1648,17 @@ view_table_matchingRows = \u5339\u914d\u7684\u884c: {0} (\u9009\u4e2d: {1})
view_table_totalRows = \u6240\u6709\u7684\u884c: {0} (\u9009\u4e2d: {1})
view_tabs_common_activity = \u6d3b\u52a8
view_tabs_common_agent = \u4ee3\u7406
-view_tabs_common_alerts = \u544a\u8b66
view_tabs_common_availability = \u53ef\u7528\u6027
view_tabs_common_calltime = Calltime
view_tabs_common_child_history = \u5b50\u5386\u53f2
view_tabs_common_child_resources = \u5b50\u8d44\u6e90
-view_tabs_common_configuration = \u914d\u7f6e
view_tabs_common_connectionSettings = \u8fde\u63a5\u8bbe\u7f6e
view_tabs_common_connectionSettingsHistory = \u5386\u53f2\u8fde\u63a5\u8bbe\u7f6e
view_tabs_common_content = \u5185\u5bb9
view_tabs_common_current = \u5f53\u524d
view_tabs_common_dashboard = \u7edf\u8ba1\u8868\u76d8
-view_tabs_common_definitions = \u5b9a\u4e49
view_tabs_common_deployed = \u5df2\u53d1\u5e03
+##view_tabs_common_drift = Drift
view_tabs_common_events = \u4e8b\u4ef6
view_tabs_common_graphs = \u56fe
view_tabs_common_group_members = \u7ec4\u5458
@@ -1690,13 +1668,10 @@ view_tabs_common_history = \u5386\u53f2
view_tabs_common_inventory = \u6e05\u5355
view_tabs_common_members = \u6210\u5458
view_tabs_common_monitoring = \u76d1\u63a7
-view_tabs_common_new = new
-view_tabs_common_operations = \u64cd\u4f5c
view_tabs_common_overview = \u6982\u89c8
view_tabs_common_schedule = \u8c03\u5ea6
view_tabs_common_schedules = \u8ba1\u5212\u4efb\u52a1
view_tabs_common_subscriptions = \u8fd0\u884c\u673a\u5236
-view_tabs_common_summary = \u6982\u8981
view_tabs_common_tables = \u8868\u683c
view_tabs_common_timeline = \u65f6\u95f4\u8f74
view_tabs_common_traits = \u7279\u5f81
@@ -1707,7 +1682,6 @@ view_tagCloud_deleteTagFailure = \u5220\u9664\u6807\u7b7e [{0}] \u5931\u8d25
view_tagCloud_deleteTagSuccess = \u6210\u529f\u7684\u5220\u9664\u4e86\u6807\u7b7e [{0}]
view_tagCloud_error_fetchFailure = \u52a0\u8f7d\u6807\u7b7e\u5931\u8d25.
view_tagCloud_error_tagUsedCount = \u6807\u7b7e\u4f7f\u7528 {0} \u6b21.
-view_tagCloud_title = \u6807\u7b7e\u96c6
view_taggedResources_title = \u8d44\u6e90
view_tags_error_1 = \u52a0\u8f7d\u6807\u7b7e\u5931\u8d25
view_tags_tags = \u6807\u7b7e
@@ -1737,9 +1711,8 @@ view_tree_common_contextMenu_loadFail_dashboards = \u52a0\u8f7d\u7528\u6237\u7ed
view_tree_common_contextMenu_loadFail_group = \u4e0a\u4e0b\u6587\u83dc\u5355\u52a0\u8f7d\u7ec4\u5931\u8d25
view_tree_common_contextMenu_loadFailed_dashboard = \u52a0\u8f7d\u7528\u6237\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
view_tree_common_contextMenu_loadFailed_manualAddChildren = \u52a0\u8f7dplatform manual add children\u5931\u8d25
+view_tree_common_contextMenu_loadFailed_operations = Failure to start wizard for running operations
view_tree_common_contextMenu_measurements = \u76d1\u6d4b
-view_tree_common_contextMenu_operations = \u64cd\u4f5c
-view_tree_common_contextMenu_operations_loadFailed = Failure to start wizard for running operations
view_tree_common_contextMenu_resourceConfiguration = \u8d44\u6e90\u914d\u7f6e
view_tree_common_contextMenu_resourceGraph = \u8d44\u6e90\u6307\u6807\u56fe
view_tree_common_contextMenu_saveChartToDashboardFailure = \u4fdd\u5b58\u7edf\u8ba1\u8868\u76d8\u5931\u8d25
@@ -1816,7 +1789,6 @@ widget_recordEditor_info_recordUpdatedConcise = {0} updated.
widget_recordEditor_info_recordUpdatedDetailed = {0} [{1}] updated.
widget_recordEditor_info_recordsDeletedConcise = {0} {1} deleted.
widget_recordEditor_info_recordsDeletedDetailed = {0} {1} deleted: {2}.
-widget_recordEditor_label_loading = \u52a0\u8f7d\u4e2d...
widget_recordEditor_title_edit = \u7f16\u8f91{0} [{1}]
widget_recordEditor_title_new = \u65b0\u5efa{0}
widget_recordEditor_title_view = \u67e5\u770b{0} [{1}]
12 years, 9 months
[rhq] modules/enterprise
by mazz
modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/safeinvoker/HibernateDetachUtility.java | 47 +++++++++-
1 file changed, 44 insertions(+), 3 deletions(-)
New commits:
commit 74aa8d05d1ca8cc2c0055453ac108e49e640aa20
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Sep 16 14:29:14 2011 -0400
add configurability to the logging of the hibernate detach utility. with this checkin, the following happens:
1. by default, we only log at DEBUG level the number of objects detached and the duration it took IF it took longer than 10s
2. you can have it log a more detailed message at a certain threshold if you set the sysprop "rhq.server.hibernate-detach-utility.dump-stack-thresholds"
you set it to two numbers separated by a :, for example "5000:10000" means a message will be logged at the WARN
level IF the detach took longer that 5000ms OR the number of objects detached was over 10K.
We log the duration, number of objects AND the class of the object being detached (we can't log the object's toString because
that would be very long, especially for very large PageList of compound objects).
We also log the full stack trace so we know where the object came from.
diff --git a/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/safeinvoker/HibernateDetachUtility.java b/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/safeinvoker/HibernateDetachUtility.java
index 23f73ee..08c02e2 100644
--- a/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/safeinvoker/HibernateDetachUtility.java
+++ b/modules/enterprise/server/safe-invoker/src/main/java/org/rhq/enterprise/server/safeinvoker/HibernateDetachUtility.java
@@ -89,6 +89,11 @@ public class HibernateDetachUtility {
private static final String THROW_EXCEPTION_ON_DEPTH_LIMIT_SYSPROP = "rhq.server.hibernate-detach-utility.throw-exception-on-depth-limit";
private static final int depthAllowed;
private static final boolean throwExceptionOnDepthLimit;
+ private static final String DUMP_STACK_THRESHOLDS_SYSPROP = "rhq.server.hibernate-detach-utility.dump-stack-thresholds"; // e.g. "5000:10000" (millis:num-objects)
+ private static final boolean dumpStackOnThresholdLimit;
+ private static final long millisThresholdLimit;
+ private static final int sizeThresholdLimit;
+
static {
int value;
try {
@@ -107,6 +112,32 @@ public class HibernateDetachUtility {
booleanValue = true;
}
throwExceptionOnDepthLimit = booleanValue;
+
+ boolean tmp_dumpStackOnThresholdLimit;
+ long tmp_millisThresholdLimit;
+ int tmp_sizeThresholdLimit;
+ String prop = null;
+ try {
+ prop = System.getProperty(DUMP_STACK_THRESHOLDS_SYSPROP);
+ if (prop != null) {
+ String[] nums = prop.split(":");
+ tmp_dumpStackOnThresholdLimit = true;
+ tmp_millisThresholdLimit = Long.parseLong(nums[0]);
+ tmp_sizeThresholdLimit = Integer.parseInt(nums[1]);
+ } else {
+ tmp_dumpStackOnThresholdLimit = false;
+ tmp_millisThresholdLimit = Long.MAX_VALUE;
+ tmp_sizeThresholdLimit = Integer.MAX_VALUE;
+ }
+ } catch (Throwable t) {
+ LOG.warn("Bad value for [" + DUMP_STACK_THRESHOLDS_SYSPROP + "]=[" + prop + "]: " + t.toString());
+ tmp_dumpStackOnThresholdLimit = true; // they wanted to set it to something, so give them some defaults
+ tmp_millisThresholdLimit = 5000L; // 5 seconds
+ tmp_sizeThresholdLimit = 10000; // 10K objects
+ }
+ dumpStackOnThresholdLimit = tmp_dumpStackOnThresholdLimit;
+ millisThresholdLimit = tmp_millisThresholdLimit;
+ sizeThresholdLimit = tmp_sizeThresholdLimit;
}
public static void nullOutUninitializedFields(Object value, SerializationType serializationType) throws Exception {
@@ -115,11 +146,21 @@ public class HibernateDetachUtility {
Map<Integer, List<Object>> checkedObjectCollisionMap = new HashMap<Integer, List<Object>>();
nullOutUninitializedFields(value, checkedObjectMap, checkedObjectCollisionMap, 0, serializationType);
long duration = System.currentTimeMillis() - start;
- if (duration > 1000) {
- LOG.info("Detached [" + checkedObjectMap.size() + "] objects in [" + duration + "]ms");
+
+ if (dumpStackOnThresholdLimit) {
+ int numObjectsProcessed = checkedObjectMap.size();
+ if (duration > millisThresholdLimit || numObjectsProcessed > sizeThresholdLimit) {
+ String rootObjectString = (value != null) ? value.getClass().toString() : "null";
+ LOG.warn("Detached [" + numObjectsProcessed + "] objects in [" + duration + "]ms from root object ["
+ + rootObjectString + "]", new Throwable("HIBERNATE DETACH UTILITY STACK TRACE"));
+ }
} else {
- LOG.debug("Detached [" + checkedObjectMap.size() + "] objects in [" + duration + "]ms");
+ // 10s is really long, log SOMETHING
+ if (duration > 10000L && LOG.isDebugEnabled()) {
+ LOG.debug("Detached [" + checkedObjectMap.size() + "] objects in [" + duration + "]ms");
+ }
}
+
// help the garbage collector be clearing these before we leave
checkedObjectMap.clear();
checkedObjectCollisionMap.clear();
12 years, 9 months
[rhq] .gitignore
by snegrea
.gitignore | 1 +
1 file changed, 1 insertion(+)
New commits:
commit d14cef63f02799b315e555cc3a7dd0b8d0072a58
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Fri Sep 16 08:16:46 2011 -0500
One more ignore added to git to avoid committing files used only for ci.
diff --git a/.gitignore b/.gitignore
index 93e206d..c72cd95 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ modules/enterprise/gui/coregui/build/classes/*
modules/enterprise/gui/content_http-war/build/classes/*
settings.xml
*rsa
+*_private.sh
12 years, 9 months
[rhq] .gitignore
by snegrea
.gitignore | 2 ++
1 file changed, 2 insertions(+)
New commits:
commit ad51846da80118b42dad40216e6a2ce2d0f7b229
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Sep 15 23:27:00 2011 -0500
Added two ignores required by the release scripts to prevent environment files to get committed to the repo.
diff --git a/.gitignore b/.gitignore
index e4ae4cd..93e206d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,5 @@ gwt-tmp/
modules/enterprise/gui/portal-war/build/classes/*
modules/enterprise/gui/coregui/build/classes/*
modules/enterprise/gui/content_http-war/build/classes/*
+settings.xml
+*rsa
12 years, 9 months
[rhq] 3 commits - modules/enterprise
by mazz
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java | 377 +++++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/i18n/AlertI18NResourceKeys.java | 199 +++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java | 26
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerBeanTest.java | 487 +++++++---
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java | 123 ++
5 files changed, 925 insertions(+), 287 deletions(-)
New commits:
commit eb50b72dad1558e042bfee3d7e4211e40d39cf91
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Sep 15 22:57:51 2011 -0400
[BZ 738614] fix condition pretty printing - this is for email alert messages and other notifications
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 5bffb48..1275e26 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
@@ -60,7 +60,6 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.common.EntityContext;
import org.rhq.core.domain.criteria.AlertCriteria;
-import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.resource.Resource;
@@ -79,7 +78,6 @@ import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RequiredPermission;
import org.rhq.enterprise.server.core.EmailManagerLocal;
import org.rhq.enterprise.server.measurement.instrumentation.MeasurementMonitor;
-import org.rhq.enterprise.server.measurement.util.MeasurementFormatter;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
import org.rhq.enterprise.server.plugin.pc.MasterServerPluginContainer;
import org.rhq.enterprise.server.plugin.pc.alert.AlertSender;
@@ -814,94 +812,269 @@ public class AlertManagerBean implements AlertManagerLocal, AlertManagerRemote {
}
private String prettyPrintAlertCondition(AlertCondition condition, boolean shortVersion) {
- StringBuilder builder = new StringBuilder();
+ StringBuilder str = new StringBuilder();
AlertConditionCategory category = condition.getCategory();
+ switch (category) {
+ case AVAILABILITY: {
+ if ("up".equalsIgnoreCase(condition.getOption())) {
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_AVAILABILITY_UP_SHORT));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_AVAILABILITY_UP));
+ }
+ } else {
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_AVAILABILITY_DOWN_SHORT));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_AVAILABILITY_DOWN));
+ }
+ }
- // first format the LHS of the operator
- if (category == AlertConditionCategory.CONTROL) {
+ break;
+ }
+ case THRESHOLD: {
+ double value = condition.getThreshold();
+ MeasurementUnits units = condition.getMeasurementDefinition().getUnits();
+ String formatted = MeasurementConverter.format(value, units, true);
+
+ if (condition.getOption() == null) {
+ String metricName = condition.getName();
+ String comparator = condition.getComparator();
+ str.append(metricName).append(' ').append(comparator).append(' ').append(formatted);
+ } else {
+ // this is a calltime threshold condition
+ String metricName = "";
+ if (condition.getMeasurementDefinition() != null) {
+ metricName = condition.getMeasurementDefinition().getDisplayName();
+ }
+
+ String limit = condition.getOption(); // MIN, MAX, AVG (never null)
+ String comparator = condition.getComparator(); // <, >, =
+
+ if (condition.getName() != null && condition.getName().length() > 0) {
+ String regex = condition.getName();
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(
+ AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_THRESHOLD_WITH_EXPR_SHORT, metricName, limit,
+ comparator, formatted, regex));
+ } else {
+ str.append(AlertI18NFactory.getMessage(
+ AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_THRESHOLD_WITH_EXPR, metricName, limit,
+ comparator, formatted, regex));
+ }
+ } else {
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(
+ AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_THRESHOLD_SHORT, metricName, limit, comparator,
+ formatted));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_THRESHOLD,
+ metricName, limit, comparator, formatted));
+ }
+ }
+ }
+ break;
+ }
+ case BASELINE: {
+ String metricName = condition.getName();
+ String comparator = condition.getComparator();
+ double value = condition.getThreshold();
+ MeasurementUnits units = MeasurementUnits.PERCENTAGE;
+ String percentage = MeasurementConverter.format(value, units, true);
+ String baselineThreshold = condition.getOption(); // mean, min, max
+
+ if (shortVersion) {
+ if (baselineThreshold.equalsIgnoreCase("min")) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_BASELINE_MIN_SHORT, metricName,
+ comparator, percentage));
+ } else if (baselineThreshold.equalsIgnoreCase("max")) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_BASELINE_MAX_SHORT, metricName,
+ comparator, percentage));
+ } else { // mean
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_BASELINE_MEAN_SHORT, metricName,
+ comparator, percentage));
+ }
+ } else {
+ if (baselineThreshold.equalsIgnoreCase("min")) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_BASELINE_MIN, metricName,
+ comparator, percentage));
+ } else if (baselineThreshold.equalsIgnoreCase("max")) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_BASELINE_MAX, metricName,
+ comparator, percentage));
+ } else { // mean
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_BASELINE_MEAN, metricName,
+ comparator, percentage));
+ }
+ }
+ break;
+ }
+ case CHANGE: {
+ if (condition.getOption() == null) {
+ String metricName = condition.getName();
+ if (shortVersion) {
+ str.append(AlertI18NFactory
+ .getMessage(AlertI18NResourceKeys.ALERT_METRIC_CHANGED_SHORT, metricName));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_METRIC_CHANGED, metricName));
+ }
+ } else {
+ // this is a calltime change condition
+ double value = condition.getThreshold();
+ MeasurementUnits units = MeasurementUnits.PERCENTAGE;
+ String formatted = MeasurementConverter.format(value, units, true);
+
+ String comparator;
+ if ("HI".equalsIgnoreCase(condition.getComparator())) {
+ comparator = AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_CHANGE_GROWS);
+ } else if ("LO".equalsIgnoreCase(condition.getComparator())) {
+ comparator = AlertI18NFactory
+ .getMessage(AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_CHANGE_SHRINKS);
+ } else { // CH
+ comparator = AlertI18NFactory
+ .getMessage(AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_CHANGE_CHANGES);
+ }
+
+ String metricName = "";
+ if (condition.getMeasurementDefinition() != null) {
+ metricName = condition.getMeasurementDefinition().getDisplayName();
+ }
+
+ String limit = condition.getOption(); // MIN, MAX, AVG (never null)
+
+ if (condition.getName() != null && condition.getName().length() > 0) {
+ String regex = condition.getName();
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(
+ AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_CHANGE_WITH_EXPR_SHORT, metricName, limit,
+ comparator, formatted, regex));
+ } else {
+ str.append(AlertI18NFactory.getMessage(
+ AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_CHANGE_WITH_EXPR, metricName, limit,
+ comparator, formatted, regex));
+ }
+ } else {
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(
+ AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_CHANGE_SHORT, metricName, limit, comparator,
+ formatted));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_METRIC_CALLTIME_CHANGE,
+ metricName, limit, comparator, formatted));
+ }
+ }
+ }
+ break;
+ }
+ case TRAIT: {
+ String metricName = condition.getName();
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_METRIC_CHANGED_SHORT, metricName));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_METRIC_CHANGED, metricName));
+ }
+ break;
+ }
+ case CONTROL: {
+ String opName;
try {
Integer resourceTypeId = condition.getAlertDefinition().getResource().getResourceType().getId();
String operationName = condition.getName();
OperationDefinition definition = operationManager.getOperationDefinitionByResourceTypeAndName(
resourceTypeId, operationName, false);
- builder.append(definition.getDisplayName()).append(' ');
+ opName = definition.getDisplayName();
} catch (Exception e) {
- builder.append(condition.getName()).append(' ');
+ opName = condition.getName(); // can't look up the op display name (are we in a test?), just use the op name
}
- } else {
- if (category.getName() != null) // this is null for e.g. availability
- builder.append(condition.getName()).append(' ');
- }
-
- // next format the RHS
- if (category == AlertConditionCategory.CONTROL) {
- builder.append(condition.getOption());
- } else if ((category == AlertConditionCategory.THRESHOLD) || (category == AlertConditionCategory.BASELINE)) {
- builder.append(condition.getComparator());
- builder.append(' ');
-
- MeasurementSchedule schedule = null;
- MeasurementUnits units;
- double value = condition.getThreshold();
- if (category == AlertConditionCategory.THRESHOLD) {
- units = condition.getMeasurementDefinition().getUnits();
- } else // ( category == AlertConditionCategory.BASELINE )
- {
- units = MeasurementUnits.PERCENTAGE;
+ String status = condition.getOption();
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_OPERATION_SHORT, opName, status));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_OPERATION, opName, status));
}
- String formatted = MeasurementConverter.format(value, units, true);
- builder.append(formatted);
-
- if (category == AlertConditionCategory.BASELINE) {
- builder.append(" of ");
- builder.append(MeasurementFormatter.getBaselineText(condition.getOption(), schedule));
+ break;
+ }
+ case RESOURCE_CONFIG: {
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RESOURCECONFIGCHANGE_SHORT));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RESOURCECONFIGCHANGE));
}
- } else if ((category == AlertConditionCategory.RESOURCE_CONFIG) || (category == AlertConditionCategory.CHANGE)
- || (category == AlertConditionCategory.TRAIT)) {
-
- if (shortVersion)
- builder.append(AlertI18NFactory
- .getMessage(AlertI18NResourceKeys.ALERT_CURRENT_LIST_VALUE_CHANGED_SHORT));
- else
- builder.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_CURRENT_LIST_VALUE_CHANGED));
-
- } else if (category == AlertConditionCategory.EVENT) {
- if ((condition.getOption() != null) && (condition.getOption().length() > 0)) {
- String propsCbEventSeverityRegexMatch;
- if (shortVersion)
- propsCbEventSeverityRegexMatch = AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_EVENT_SEVERITY_REGEX_MATCH_SHORT;
- else
- propsCbEventSeverityRegexMatch = AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_EVENT_SEVERITY_REGEX_MATCH;
-
- builder.append(AlertI18NFactory.getMessage(propsCbEventSeverityRegexMatch, condition.getName(),
- condition.getOption()));
+ break;
+ }
+ case EVENT: {
+ String severity = condition.getName();
+ if (condition.getOption() != null && condition.getOption().length() > 0) {
+ String expression = condition.getOption();
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_EVENT_WITH_EXPR_SHORT, severity,
+ expression));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_EVENT_WITH_EXPR, severity,
+ expression));
+ }
} else {
- if (shortVersion)
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_EVENT_SEVERITY_SHORT, condition.getName()));
- else
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_EVENT_SEVERITY, condition.getName()));
+ if (shortVersion) {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_EVENT_SHORT, severity));
+ } else {
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_EVENT, severity));
+ }
}
- } else if (category == AlertConditionCategory.AVAILABILITY) {
- if (shortVersion)
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_AVAILABILITY_SHORT, condition.getOption()));
- else
- builder.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_AVAILABILITY,
- condition.getOption()));
- } else if (category == AlertConditionCategory.DRIFT) {
- if (shortVersion)
- builder.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_DRIFT_SHORT,
- condition.getOption()));
- else
- builder.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_DRIFT, condition
- .getOption()));
- } else if (category == AlertConditionCategory.RANGE) {
+ break;
+ }
+ case DRIFT: {
+ String configNameRegex = condition.getName();
+ String pathNameRegex = condition.getOption();
+ if (shortVersion) {
+ if (configNameRegex == null || configNameRegex.length() == 0) {
+ if (pathNameRegex == null || pathNameRegex.length() == 0) {
+ // neither a config name regex nor path regex was specified
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_DRIFT_SHORT));
+ } else {
+ // a path name regex was specified, but not a config name regex
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_DRIFT_ONLYPATHS_SHORT,
+ pathNameRegex));
+ }
+ } else {
+ if (pathNameRegex == null || pathNameRegex.length() == 0) {
+ // a config name regex was specified, but not a path name regex
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_DRIFT_ONLYCONFIG_SHORT,
+ configNameRegex));
+ } else {
+ // both a config name regex and a path regex was specified
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_DRIFT_CONFIGPATHS_SHORT,
+ pathNameRegex, configNameRegex));
+ }
+ }
+ } else {
+ if (configNameRegex == null || configNameRegex.length() == 0) {
+ if (pathNameRegex == null || pathNameRegex.length() == 0) {
+ // neither a config name regex nor path regex was specified
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_DRIFT));
+ } else {
+ // a path name regex was specified, but not a config name regex
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_DRIFT_ONLYPATHS,
+ pathNameRegex));
+ }
+ } else {
+ if (pathNameRegex == null || pathNameRegex.length() == 0) {
+ // a config name regex was specified, but not a path name regex
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_DRIFT_ONLYCONFIG,
+ configNameRegex));
+ } else {
+ // both a config name regex and a path regex was specified
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_DRIFT_CONFIGPATHS,
+ pathNameRegex, configNameRegex));
+ }
+ }
+ }
+ break;
+ }
+ case RANGE: {
+ String metricName = condition.getName();
Double loValue = condition.getThreshold();
String hiValueStr = condition.getOption();
@@ -920,55 +1093,55 @@ public class AlertManagerBean implements AlertManagerLocal, AlertManagerRemote {
}
}
+ // < means "inside the range", > means "outside the range" - exclusive
+ // <= means "inside the range", >= means "outside the range" - inclusive
+
if ("<".equals(condition.getComparator())) {
if (shortVersion) {
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_INSIDE_EXCL_RANGE_SHORT, loValueFormatted,
- hiValueFormatted));
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RANGE_INSIDE_EXCL_SHORT,
+ metricName, loValueFormatted, hiValueFormatted));
} else {
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_INSIDE_EXCL_RANGE, loValueFormatted,
- hiValueFormatted));
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RANGE_INSIDE_EXCL, metricName,
+ loValueFormatted, hiValueFormatted));
}
} else if (">".equals(condition.getComparator())) {
if (shortVersion) {
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_OUTSIDE_EXCL_RANGE_SHORT, loValueFormatted,
- hiValueFormatted));
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RANGE_OUTSIDE_EXCL_SHORT,
+ metricName, loValueFormatted, hiValueFormatted));
} else {
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_OUTSIDE_EXCL_RANGE, loValueFormatted,
- hiValueFormatted));
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RANGE_OUTSIDE_EXCL, metricName,
+ loValueFormatted, hiValueFormatted));
}
} else if ("<=".equals(condition.getComparator())) {
if (shortVersion) {
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_INSIDE_INCL_RANGE_SHORT, loValueFormatted,
- hiValueFormatted));
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RANGE_INSIDE_INCL_SHORT,
+ metricName, loValueFormatted, hiValueFormatted));
} else {
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_INSIDE_INCL_RANGE, loValueFormatted,
- hiValueFormatted));
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RANGE_INSIDE_INCL, metricName,
+ loValueFormatted, hiValueFormatted));
}
} else if (">=".equals(condition.getComparator())) {
if (shortVersion) {
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_OUTSIDE_INCL_RANGE_SHORT, loValueFormatted,
- hiValueFormatted));
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RANGE_OUTSIDE_INCL_SHORT,
+ metricName, loValueFormatted, hiValueFormatted));
} else {
- builder.append(AlertI18NFactory.getMessage(
- AlertI18NResourceKeys.ALERT_CONFIG_PROPS_CB_OUTSIDE_INCL_RANGE, loValueFormatted,
- hiValueFormatted));
+ str.append(AlertI18NFactory.getMessage(AlertI18NResourceKeys.ALERT_RANGE_OUTSIDE_INCL, metricName,
+ loValueFormatted, hiValueFormatted));
}
} else {
- builder.append("invalid range comparator [" + condition.getComparator() + "] (" + loValueFormatted
- + "," + hiValueFormatted + ")");
+ str.append("invalid range comparator [" + condition.getComparator() + "] (" + loValueFormatted + ","
+ + hiValueFormatted + ")");
}
- } else {
- // do nothing
+
+ break;
+ }
+ default: {
+ str.append("unknown category [" + category.name() + "]");
+ break;
+ }
}
- return builder.toString();
+ return str.toString();
}
public String prettyPrintAlertURL(Alert alert) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/i18n/AlertI18NResourceKeys.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/i18n/AlertI18NResourceKeys.java
index d48f93a..f3ab9a6 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/i18n/AlertI18NResourceKeys.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/i18n/AlertI18NResourceKeys.java
@@ -22,77 +22,172 @@ import mazz.i18n.annotation.I18NMessage;
import mazz.i18n.annotation.I18NMessages;
import mazz.i18n.annotation.I18NResourceBundle;
-/**
- * @author Joseph Marques
- */
-
@I18NResourceBundle(baseName = "alert-messages", defaultLocale = "en")
public interface AlertI18NResourceKeys {
- @I18NMessages( { @I18NMessage("value is between {0} and {1}, inclusive"),
- @I18NMessage(locale = "de", value = "Der Wert zwischen {0} und {1}, pauschal") })
- String ALERT_CONFIG_PROPS_CB_INSIDE_INCL_RANGE = "alert.config.props.CB.InsideRange.incl.";
+ @I18NMessages( { @I18NMessage("Availability goes UP"),
+ @I18NMessage(locale = "de", value = "Verf�gbarkeit wird AUF") })
+ String ALERT_AVAILABILITY_UP = "alert.condition.availability.up";
+
+ @I18NMessages( { @I18NMessage("Avail goes UP"), @I18NMessage(locale = "de", value = "Verf. wird AUF") })
+ String ALERT_AVAILABILITY_UP_SHORT = "alert.condition.availability.up.short";
+
+ @I18NMessages( { @I18NMessage("Availability goes DOWN"),
+ @I18NMessage(locale = "de", value = "Verf�gbarkeit wird NACH UNTEN") })
+ String ALERT_AVAILABILITY_DOWN = "alert.condition.availability.down";
+
+ @I18NMessages( { @I18NMessage("Avail goes DOWN"), @I18NMessage(locale = "de", value = "Verf. wird NACH UNTEN") })
+ String ALERT_AVAILABILITY_DOWN_SHORT = "alert.condition.availability.down.short";
+
+ // Foo Prop > 10.0% of Baseline Mean Value
+ @I18NMessages( { @I18NMessage("{0} {1} {2} of Baseline Mean Value") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_BASELINE_MEAN = "alert.condition.baseline.mean";
+
+ // Foo Prop > 10.0% bl mean
+ @I18NMessages( { @I18NMessage("{0} {1} {2} bl mean") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_BASELINE_MEAN_SHORT = "alert.condition.baseline.mean.short";
+
+ @I18NMessages( { @I18NMessage("{0} {1} {2} of Baseline Minimum Value") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_BASELINE_MIN = "alert.condition.baseline.min";
+
+ @I18NMessages( { @I18NMessage("{0} {1} {2} bl min") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_BASELINE_MIN_SHORT = "alert.condition.baseline.min.short";
+
+ @I18NMessages( { @I18NMessage("{0} {1} {2} of Baseline Maximum Value") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_BASELINE_MAX = "alert.condition.baseline.max";
+
+ @I18NMessages( { @I18NMessage("{0} {1} {2} bl max") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_BASELINE_MAX_SHORT = "alert.condition.baseline.max.short";
+
+ // Calltime Metric Foo MAX > 1.0 with calltime destination matching "*.txt"
+ @I18NMessages( { @I18NMessage("Calltime Metric {0} {1} {2} {3} with calltime destination matching \"{4}\"") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_THRESHOLD_WITH_EXPR = "alert.condition.calltime-threshold-with-expr";
+
+ // Foo MAX > 1.0 matching "*.txt"
+ @I18NMessages( { @I18NMessage("{0} {1} {2} {3} matching \"{4}\"") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_THRESHOLD_WITH_EXPR_SHORT = "alert.condition.calltime-threshold-with-expr.short";
+
+ // Calltime Metric Foo MAX > 1.0
+ @I18NMessages( { @I18NMessage("Calltime Metric {0} {1} {2} {3}") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_THRESHOLD = "alert.condition.calltime-threshold";
+
+ // Foo MAX > 1.0
+ @I18NMessages( { @I18NMessage("{0} {1} {2} {3}") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_THRESHOLD_SHORT = "alert.condition.calltime-threshold.short";
+
+ @I18NMessages( { @I18NMessage("grows") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_CHANGE_GROWS = "alert.condition.calltime-change.grows";
+
+ @I18NMessages( { @I18NMessage("shrinks") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_CHANGE_SHRINKS = "alert.condition.calltime-change.shrinks";
+
+ @I18NMessages( { @I18NMessage("changes") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_CHANGE_CHANGES = "alert.condition.calltime-change.changes";
+
+ // Calltime Metric Foo MAX (grows/shrinks/changes) by at least 1% with calltime destination matching "*.txt"
+ @I18NMessages( { @I18NMessage("Calltime Metric {0} {1} {2} by at least {3} with calltime destination matching \"{4}\"") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_CHANGE_WITH_EXPR = "alert.condition.calltime-change-with-expr";
+
+ // Foo MAX (grows/shrinks/changes) by 1% matching "*.txt"
+ @I18NMessages( { @I18NMessage("{0} {1} {2} by {3} matching \"{4}\"") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_CHANGE_WITH_EXPR_SHORT = "alert.condition.calltime-change-with-expr.short";
+
+ // Calltime Metric Foo MAX (grows/shrinks/changes) by at least 1%
+ @I18NMessages( { @I18NMessage("Calltime Metric {0} {1} {2} by at least {3}") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_CHANGE = "alert.condition.calltime-change";
+
+ // Foo MAX (grows/shrinks/changes) by 1%
+ @I18NMessages( { @I18NMessage("{0} {1} {2} by {3}") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_METRIC_CALLTIME_CHANGE_SHORT = "alert.condition.calltime-change.short";
+
+ // Foo Value Changed
+ @I18NMessages( { @I18NMessage("{0} Value Changed"),
+ @I18NMessage(locale = "de", value = "{0} Der Wert hat sich ge�ndert") })
+ String ALERT_METRIC_CHANGED = "alert.condition.metric.changed";
+
+ @I18NMessages( { @I18NMessage("{0} Val Chg"), @I18NMessage(locale = "de", value = "{0} Wert�nd.") })
+ String ALERT_METRIC_CHANGED_SHORT = "alert.condition.metric.changed.short";
+
+ @I18NMessages( { @I18NMessage("Operation [{0}] has status=[{1}]") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_OPERATION = "alert.condition.op";
+
+ @I18NMessages( { @I18NMessage("Op [{0}]={1}") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_OPERATION_SHORT = "alert.condition.op.short";
+
+ @I18NMessages( { @I18NMessage("Resource Configuration Changed") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_RESOURCECONFIGCHANGE = "alert.condition.resconfigchange";
+
+ @I18NMessages( { @I18NMessage("Res Config Chg") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_RESOURCECONFIGCHANGE_SHORT = "alert.condition.resconfigchange.short";
+
+ @I18NMessages( { @I18NMessage("Event With Severity [{0}]") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_EVENT = "alert.condition.event";
+
+ // [WARN] Event
+ @I18NMessages( { @I18NMessage("[{0}] Event") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_EVENT_SHORT = "alert.condition.event.short";
+
+ @I18NMessages( { @I18NMessage("Event With Severity [{0}] Matching Expression \"{1}\"") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_EVENT_WITH_EXPR = "alert.condition.event-with-expr";
- @I18NMessages( { @I18NMessage("between {0} and {1}, incl"),
- @I18NMessage(locale = "de", value = "zwischen {0} und {1}, paus") })
- String ALERT_CONFIG_PROPS_CB_INSIDE_INCL_RANGE_SHORT = "alert.config.props.CB.InsideRange.incl.short";
+ @I18NMessages( { @I18NMessage("[{0}] Event Matching \"{1}\"") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_EVENT_WITH_EXPR_SHORT = "alert.condition.event-with-expr.short";
- @I18NMessages( { @I18NMessage("value is between {0} and {1}, exclusive"),
- @I18NMessage(locale = "de", value = "Der Wert zwischen {0} und {1}, exklusiv") })
- String ALERT_CONFIG_PROPS_CB_INSIDE_EXCL_RANGE = "alert.config.props.CB.InsideRange.excl";
+ @I18NMessages( { @I18NMessage("Drift Detected") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_DRIFT = "alert.condition.drift";
- @I18NMessages( { @I18NMessage("between {0} and {1}, excl"),
- @I18NMessage(locale = "de", value = "zwischen {0} und {1}, exkl.") })
- String ALERT_CONFIG_PROPS_CB_INSIDE_EXCL_RANGE_SHORT = "alert.config.props.CB.InsideRange.excl.short";
+ @I18NMessages( { @I18NMessage("Drift!") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_DRIFT_SHORT = "alert.condition.drift.short";
- @I18NMessages( { @I18NMessage("value is outside {0} and {1}, inclusive"),
- @I18NMessage(locale = "de", value = "Der Wert außerhalb {0} und {1}, pauschal") })
- String ALERT_CONFIG_PROPS_CB_OUTSIDE_INCL_RANGE = "alert.config.props.CB.OutsideRange.incl";
+ @I18NMessages( { @I18NMessage("Drift detected for files that match \"{0}\" and for drift configuration [{1}]") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_DRIFT_CONFIGPATHS = "alert.condition.drift.configpaths";
- @I18NMessages( { @I18NMessage("outside {0} and {1}, incl"),
- @I18NMessage(locale = "de", value = "außerhalb {0} und {1}, paus") })
- String ALERT_CONFIG_PROPS_CB_OUTSIDE_INCL_RANGE_SHORT = "alert.config.props.CB.OutsideRange.incl.short";
+ @I18NMessages( { @I18NMessage("Drift matching \"{0}\", config=[{1}]") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_DRIFT_CONFIGPATHS_SHORT = "alert.condition.drift.configpaths.short";
- @I18NMessages( { @I18NMessage("value is outside {0} and {1}, exclusive"),
- @I18NMessage(locale = "de", value = "Der Wert außerhalb {0} und {1}, exklusiv") })
- String ALERT_CONFIG_PROPS_CB_OUTSIDE_EXCL_RANGE = "alert.config.props.CB.OutsideRange.excl";
+ @I18NMessages( { @I18NMessage("Drift detected for drift configuration [{0}]") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_DRIFT_ONLYCONFIG = "alert.condition.drift.onlyconfig";
- @I18NMessages( { @I18NMessage("outside {0} and {1}, excl"),
- @I18NMessage(locale = "de", value = "außerhalb {0} und {1}, exkl") })
- String ALERT_CONFIG_PROPS_CB_OUTSIDE_EXCL_RANGE_SHORT = "alert.config.props.CB.OutsideRange.excl.short";
+ @I18NMessages( { @I18NMessage("Drift! config=[{0}]") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_DRIFT_ONLYCONFIG_SHORT = "alert.condition.drift.onlyconfig.short";
- @I18NMessages( { @I18NMessage("Drift detected"), @I18NMessage(locale = "de", value = "Änderung erkannt") })
- String ALERT_CONFIG_PROPS_CB_DRIFT = "alert.config.props.CB.Drift";
+ @I18NMessages( { @I18NMessage("Drift detected for files that match \"{0}\"") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_DRIFT_ONLYPATHS = "alert.condition.drift.onlypaths";
- @I18NMessages( { @I18NMessage("Drift detected"), @I18NMessage(locale = "de", value = "Änderung erkannt") })
- String ALERT_CONFIG_PROPS_CB_DRIFT_SHORT = "alert.config.props.CB.Drift.short";
+ @I18NMessages( { @I18NMessage("Drift matching \"{0}\"") /*, @I18NMessage(locale = "de", value = "") */})
+ String ALERT_DRIFT_ONLYPATHS_SHORT = "alert.condition.drift.onlypaths.short";
- @I18NMessages( { @I18NMessage("Availability goes {0}"),
- @I18NMessage(locale = "de", value = "Verf�gbarkeit wird {0}") })
- String ALERT_CONFIG_PROPS_CB_AVAILABILITY = "alert.config.props.CB.Availability";
+ // Foo Value is Between 1.0B and 2.0B, Inclusive
+ @I18NMessages( { @I18NMessage("{0} Value is Between {1} and {2}, Inclusive"),
+ @I18NMessage(locale = "de", value = "{0} Der Wert zwischen {1} und {2}, pauschal") })
+ String ALERT_RANGE_INSIDE_INCL = "alert.condition.range.in.incl";
- @I18NMessages( { @I18NMessage("Avail goes {0}"), @I18NMessage(locale = "de", value = "Verf. wird {0}") })
- String ALERT_CONFIG_PROPS_CB_AVAILABILITY_SHORT = "alert.config.props.CB.Availability.short";
+ @I18NMessages( { @I18NMessage("{0} Between {1} - {2}, incl"),
+ @I18NMessage(locale = "de", value = "{0} zwischen {1} und {2}, paus") })
+ String ALERT_RANGE_INSIDE_INCL_SHORT = "alert.condition.range.in.incl.short";
- @I18NMessages( { @I18NMessage("Event Severity: {0}"),
- @I18NMessage(locale = "de", value = "Schwere des Ereignesses: {0}") })
- String ALERT_CONFIG_PROPS_CB_EVENT_SEVERITY = "alert.config.props.CB.EventSeverity";
+ @I18NMessages( { @I18NMessage("{0} Value is Between {1} and {2}, Exclusive"),
+ @I18NMessage(locale = "de", value = "{0} Der Wert zwischen {1} und {2}, exklusiv") })
+ String ALERT_RANGE_INSIDE_EXCL = "alert.condition.range.in.excl";
- @I18NMessages( { @I18NMessage("Sev: {0}"), @I18NMessage(locale = "de", value = "Schwere: {0}") })
- String ALERT_CONFIG_PROPS_CB_EVENT_SEVERITY_SHORT = "alert.config.props.CB.EventSeverity.short";
+ @I18NMessages( { @I18NMessage("{0} Between {1} - {2}, excl"),
+ @I18NMessage(locale = "de", value = "{0} zwischen {1} - {2}, exkl.") })
+ String ALERT_RANGE_INSIDE_EXCL_SHORT = "alert.condition.range.in.excl.short";
- @I18NMessages( { @I18NMessage("Event Severity: {0} and matching expression \"{1}\""),
- @I18NMessage(locale = "de", value = "Schwere des Ereignesses: {0} und zugeh�riger Ausdruck \"{1}\"") })
- String ALERT_CONFIG_PROPS_CB_EVENT_SEVERITY_REGEX_MATCH = "alert.config.props.CB.EventSeverity.RegexMatch";
+ @I18NMessages( { @I18NMessage("{0} Value is Outside {1} and {2}, Inclusive"),
+ @I18NMessage(locale = "de", value = "{0} Der Wert außerhalb {1} und {2}, pauschal") })
+ String ALERT_RANGE_OUTSIDE_INCL = "alert.condition.range.out.incl";
- @I18NMessages( { @I18NMessage("Sev: {0} & exp \"{1}\""),
- @I18NMessage(locale = "de", value = "Schwere: {0} & Ausdruck \"{1}\"") })
- String ALERT_CONFIG_PROPS_CB_EVENT_SEVERITY_REGEX_MATCH_SHORT = "alert.config.props.CB.EventSeverity.RegexMatch.short";
+ @I18NMessages( { @I18NMessage("{0} Outside {1} - {2}, incl"),
+ @I18NMessage(locale = "de", value = "{0} außerhalb {1} und {2}, paus") })
+ String ALERT_RANGE_OUTSIDE_INCL_SHORT = "alert.condition.range.out.incl.short";
- @I18NMessages( { @I18NMessage("value changed"), @I18NMessage(locale = "de", value = "Der Wert hat sich ge�ndert") })
- String ALERT_CURRENT_LIST_VALUE_CHANGED = "alert.current.list.ValueChanged";
+ @I18NMessages( { @I18NMessage("{0} Value is Outside {1} and {2}, Exclusive"),
+ @I18NMessage(locale = "de", value = "{0} Der Wert außerhalb {1} und {2}, exklusiv") })
+ String ALERT_RANGE_OUTSIDE_EXCL = "alert.condition.range.out.excl";
- @I18NMessages( { @I18NMessage("val chg"), @I18NMessage(locale = "de", value = "Wert�nd.") })
- String ALERT_CURRENT_LIST_VALUE_CHANGED_SHORT = "alert.current.list.ValueChanged.short";
+ @I18NMessages( { @I18NMessage("{0} Outside {1} - {2}, excl"),
+ @I18NMessage(locale = "de", value = "{0} außerhalb {1} und {2}, exkl") })
+ String ALERT_RANGE_OUTSIDE_EXCL_SHORT = "alert.condition.range.out.excl.short";
@I18NMessages( {
@I18NMessage("\\ - Condition {0}: {1}\\n\\\n" + "\\ - Date/Time: {2}\\n\\\n" + "\\ - Details: {3}\\n\\\n"),
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerBeanTest.java
new file mode 100644
index 0000000..7f502f5
--- /dev/null
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerBeanTest.java
@@ -0,0 +1,370 @@
+package org.rhq.enterprise.server.alert.test;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.alert.Alert;
+import org.rhq.core.domain.alert.AlertCondition;
+import org.rhq.core.domain.alert.AlertConditionCategory;
+import org.rhq.core.domain.alert.AlertConditionLog;
+import org.rhq.core.domain.event.EventSeverity;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.measurement.DataType;
+import org.rhq.core.domain.measurement.MeasurementDefinition;
+import org.rhq.core.domain.measurement.MeasurementUnits;
+import org.rhq.core.domain.measurement.NumericType;
+import org.rhq.core.domain.operation.OperationRequestStatus;
+import org.rhq.core.domain.resource.ResourceCategory;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.enterprise.server.alert.AlertManagerBean;
+
+@Test
+public class AlertManagerBeanTest {
+
+ private String pretty;
+
+ public void testPrettyPrintAVAILABILITY() {
+ AlertCondition condition = createCondition(AlertConditionCategory.AVAILABILITY, null, null, null,
+ AvailabilityType.UP.name(), null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Availability goes UP".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Avail goes UP".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.AVAILABILITY, null, null, null,
+ AvailabilityType.DOWN.name(), null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Availability goes DOWN".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Avail goes DOWN".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintTHRESHOLD() {
+ MeasurementDefinition md = createDynamicMeasurementDefinition();
+ AlertCondition condition = createCondition(AlertConditionCategory.THRESHOLD, md.getDisplayName(), ">", 12.5d,
+ null, md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop > 12.5B".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop > 12.5B".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintTHRESHOLD_Calltime() {
+ MeasurementDefinition md = createCalltimeMeasurementDefinition();
+ String regex = "some.*(reg)?ex$"; // this is the "name" of the condition
+
+ AlertCondition condition = createCondition(AlertConditionCategory.THRESHOLD, regex, ">", 12.5d, "MAX", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop MAX > 12.5B with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop MAX > 12.5B matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ // no regex
+ condition = createCondition(AlertConditionCategory.THRESHOLD, null, ">", 12.5d, "MAX", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop MAX > 12.5B".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop MAX > 12.5B".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintBASELINE() {
+ MeasurementDefinition md = createDynamicMeasurementDefinition();
+ AlertCondition condition = createCondition(AlertConditionCategory.BASELINE, md.getDisplayName(), ">", 0.10d,
+ "mean", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop > 10.0% of Baseline Mean Value".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop > 10.0% bl mean".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.BASELINE, md.getDisplayName(), ">", 0.10d, "min", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop > 10.0% of Baseline Minimum Value".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop > 10.0% bl min".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.BASELINE, md.getDisplayName(), ">", 0.10d, "max", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop > 10.0% of Baseline Maximum Value".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop > 10.0% bl max".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintCHANGE() {
+ MeasurementDefinition md = createDynamicMeasurementDefinition();
+ AlertCondition condition = createCondition(AlertConditionCategory.CHANGE, md.getDisplayName(), null, null,
+ null, md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop Value Changed".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop Val Chg".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintCHANGE_Calltime() {
+ MeasurementDefinition md = createCalltimeMeasurementDefinition();
+ String regex = "some.*(reg)?ex$"; // this is the "name" of the condition
+
+ AlertCondition condition = createCondition(AlertConditionCategory.CHANGE, regex, "LO", 0.10d, "MIN", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop MIN shrinks by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop MIN shrinks by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, regex, "CH", 0.10d, "MIN", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop MIN changes by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop MIN changes by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, regex, "HI", 0.10d, "MIN", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop MIN grows by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop MIN grows by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, regex, "LO", 0.10d, "MAX", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop MAX shrinks by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop MAX shrinks by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, regex, "CH", 0.10d, "MAX", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop MAX changes by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop MAX changes by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, regex, "HI", 0.10d, "MAX", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop MAX grows by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop MAX grows by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, regex, "LO", 0.10d, "AVG", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop AVG shrinks by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop AVG shrinks by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, regex, "CH", 0.10d, "AVG", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop AVG changes by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop AVG changes by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, regex, "HI", 0.10d, "AVG", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop AVG grows by at least 10.0% with calltime destination matching \"some.*(reg)?ex$\""
+ .equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop AVG grows by 10.0% matching \"some.*(reg)?ex$\"".equals(pretty) : pretty;
+
+ // no regex
+ condition = createCondition(AlertConditionCategory.CHANGE, null, "LO", 0.10d, "AVG", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop AVG shrinks by at least 10.0%".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop AVG shrinks by 10.0%".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, null, "CH", 0.10d, "AVG", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop AVG changes by at least 10.0%".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop AVG changes by 10.0%".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CHANGE, null, "HI", 0.10d, "AVG", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Calltime Metric CT Prop AVG grows by at least 10.0%".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "CT Prop AVG grows by 10.0%".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintTRAIT() {
+ MeasurementDefinition md = createTraitMeasurementDefinition();
+ AlertCondition condition = createCondition(AlertConditionCategory.TRAIT, md.getDisplayName(), null, null, null,
+ md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Blah Trait Value Changed".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Blah Trait Val Chg".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintCONTROL() {
+ AlertCondition condition = createCondition(AlertConditionCategory.CONTROL, "opNameHere", null, null,
+ OperationRequestStatus.FAILURE.name(), null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Operation [opNameHere] has status=[FAILURE]".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Op [opNameHere]=FAILURE".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.CONTROL, "opNameHere", null, null,
+ OperationRequestStatus.SUCCESS.name(), null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Operation [opNameHere] has status=[SUCCESS]".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Op [opNameHere]=SUCCESS".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintEVENT() {
+ String regex = "some.*(reg)?ex$";
+
+ AlertCondition condition = createCondition(AlertConditionCategory.EVENT, EventSeverity.WARN.name(), null, null,
+ regex, null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert ("Event With Severity [WARN] Matching Expression \"" + regex + "\"").equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert ("[WARN] Event Matching \"" + regex + "\"").equals(pretty) : pretty;
+
+ // no regex
+ condition = createCondition(AlertConditionCategory.EVENT, EventSeverity.WARN.name(), null, null, null, null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Event With Severity [WARN]".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "[WARN] Event".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintRESOURCECONFIG() {
+ AlertCondition condition = createCondition(AlertConditionCategory.RESOURCE_CONFIG, null, null, null, null, null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Resource Configuration Changed".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Res Config Chg".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintDRIFT() {
+ AlertCondition condition = createCondition(AlertConditionCategory.DRIFT, "?riftName", null, null, "fil.*", null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Drift detected for files that match \"fil.*\" and for drift configuration [?riftName]".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Drift matching \"fil.*\", config=[?riftName]".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.DRIFT, null, null, null, "fil.*", null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Drift detected for files that match \"fil.*\"".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Drift matching \"fil.*\"".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.DRIFT, "?riftName", null, null, null, null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Drift detected for drift configuration [?riftName]".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Drift! config=[?riftName]".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.DRIFT, null, null, null, null, null);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Drift Detected".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Drift!".equals(pretty) : pretty;
+ }
+
+ public void testPrettyPrintRANGE() {
+ MeasurementDefinition md = createDynamicMeasurementDefinition();
+ AlertCondition condition = createCondition(AlertConditionCategory.RANGE, md.getDisplayName(), "<=", 1.0,
+ "22.2", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop Value is Between 1.0B and 22.2B, Inclusive".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop Between 1.0B - 22.2B, incl".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.RANGE, md.getDisplayName(), ">=", 1.0, "22.2", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop Value is Outside 1.0B and 22.2B, Inclusive".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop Outside 1.0B - 22.2B, incl".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.RANGE, md.getDisplayName(), "<", 1.0, "22.2", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop Value is Between 1.0B and 22.2B, Exclusive".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop Between 1.0B - 22.2B, excl".equals(pretty) : pretty;
+
+ condition = createCondition(AlertConditionCategory.RANGE, md.getDisplayName(), ">", 1.0, "22.2", md);
+ pretty = getPrettyAlertConditionString(condition);
+ assert "Foo Prop Value is Outside 1.0B and 22.2B, Exclusive".equals(pretty) : pretty;
+ pretty = getShortPrettyAlertConditionString(condition);
+ assert "Foo Prop Outside 1.0B - 22.2B, excl".equals(pretty) : pretty;
+ }
+
+ private String getPrettyAlertConditionString(AlertCondition condition) {
+ AlertManagerBean pojo = new AlertManagerBean();
+ String s = extractCondition(pojo.prettyPrintAlertConditions(createAlert(condition), false));
+ System.out.println("long===>" + s);
+ return s;
+ }
+
+ private String getShortPrettyAlertConditionString(AlertCondition condition) {
+ AlertManagerBean pojo = new AlertManagerBean();
+ String s = extractCondition(pojo.prettyPrintAlertConditions(createAlert(condition), true));
+ System.out.println("short-->" + s);
+ return s;
+ }
+
+ private MeasurementDefinition createDynamicMeasurementDefinition() {
+ ResourceType resourceType = new ResourceType("testType", "testPlugin", ResourceCategory.PLATFORM, null);
+ MeasurementDefinition md = new MeasurementDefinition(resourceType, "fooMetric");
+ md.setDataType(DataType.MEASUREMENT);
+ md.setDisplayName("Foo Prop");
+ md.setMeasurementType(NumericType.DYNAMIC);
+ md.setRawNumericType(NumericType.DYNAMIC);
+ md.setUnits(MeasurementUnits.BYTES);
+ return md;
+ }
+
+ private MeasurementDefinition createCalltimeMeasurementDefinition() {
+ ResourceType resourceType = new ResourceType("testType", "testPlugin", ResourceCategory.PLATFORM, null);
+ MeasurementDefinition md = new MeasurementDefinition(resourceType, "ctMetric");
+ md.setDataType(DataType.CALLTIME);
+ md.setDisplayName("CT Prop");
+ md.setMeasurementType(NumericType.DYNAMIC);
+ md.setRawNumericType(NumericType.DYNAMIC);
+ md.setUnits(MeasurementUnits.BYTES);
+ md.setDestinationType("/wot gorilla");
+ return md;
+ }
+
+ private MeasurementDefinition createTraitMeasurementDefinition() {
+ ResourceType resourceType = new ResourceType("testType", "testPlugin", ResourceCategory.PLATFORM, null);
+ MeasurementDefinition md = new MeasurementDefinition(resourceType, "traitMetric");
+ md.setDataType(DataType.TRAIT);
+ md.setDisplayName("Blah Trait");
+ md.setUnits(MeasurementUnits.BYTES);
+ return md;
+ }
+
+ private Alert createAlert(AlertCondition condition) {
+ Alert alert = new Alert();
+ AlertConditionLog conditionLog = new AlertConditionLog(condition, System.currentTimeMillis());
+ alert.addConditionLog(conditionLog);
+ return alert;
+ }
+
+ private AlertCondition createCondition(AlertConditionCategory category, String name, String comparator,
+ Double threshold, String option, MeasurementDefinition measDef) {
+ AlertCondition condition = new AlertCondition();
+ condition.setCategory(category);
+ condition.setName(name);
+ condition.setComparator(comparator);
+ condition.setThreshold(threshold);
+ condition.setOption(option);
+ condition.setMeasurementDefinition(measDef);
+ return condition;
+ }
+
+ private String extractCondition(String prettyString) {
+ //System.out.println(prettyString);
+ Pattern pattern = Pattern.compile(" - Cond(?:ition)? 1: (.*)\n"); // short form has " - Cond 1: ...", long form has " - Condition 1: ..."
+ Matcher matcher = pattern.matcher(prettyString);
+ assert matcher.find() : "could not find the condition string";
+ return matcher.group(1);
+ }
+}
commit 96f48b1cf1887376bb546cb120968f3696ed3a25
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Sep 15 12:49:13 2011 -0400
rename AlertManagerBeanTest to DeleteAlertsTest - it is still disabled, some other test isn't cleaning up properly and causing bad data to be sitting in the DB that this test fails on
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerBeanTest.java
deleted file mode 100644
index 41b902c..0000000
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerBeanTest.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * 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 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.enterprise.server.alert.test;
-
-import java.sql.Connection;
-import java.util.List;
-
-import org.dbunit.database.DatabaseConnection;
-import org.dbunit.database.IDatabaseConnection;
-import org.dbunit.dataset.IDataSet;
-import org.dbunit.dataset.xml.FlatXmlDataSet;
-import org.dbunit.dataset.xml.FlatXmlProducer;
-import org.dbunit.operation.DatabaseOperation;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-import org.xml.sax.InputSource;
-
-import org.rhq.core.domain.alert.AlertConditionLog;
-import org.rhq.core.domain.alert.notification.AlertNotificationLog;
-import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.common.EntityContext;
-import org.rhq.core.domain.resource.Resource;
-import org.rhq.enterprise.server.alert.AlertManagerLocal;
-import org.rhq.enterprise.server.test.AbstractEJB3Test;
-import org.rhq.enterprise.server.util.LookupUtil;
-
-/**
- * Test for {@link AlertManagerLocal} SLSB.
- */
-@Test(enabled = false)
-public class AlertManagerBeanTest extends AbstractEJB3Test {
- private AlertManagerLocal alertManager;
- private Subject superuser;
- private Resource newResource;
-
- @BeforeMethod
- public void beforeMethod() throws Exception {
- alertManager = LookupUtil.getAlertManager();
- superuser = LookupUtil.getSubjectManager().getOverlord();
-
- Connection connection = null;
-
- try {
- connection = getConnection();
- IDatabaseConnection dbUnitConnection = new DatabaseConnection(connection);
- DatabaseOperation.CLEAN_INSERT.execute(dbUnitConnection, getDataSet());
- } finally {
- if (connection != null) {
- connection.close();
- }
- }
-
- newResource = getEntityManager().find(Resource.class, 1);
- }
-
- @AfterClass
- public void cleanupDB() throws Exception {
- if ("true".equals(System.getProperty("clean.db"))) {
- Connection connection = null;
-
- try {
- connection = getConnection();
- IDatabaseConnection dbUnitConnection = new DatabaseConnection(connection);
- DatabaseOperation.DELETE_ALL.execute(dbUnitConnection, getDataSet());
- } finally {
- if (connection != null) {
- connection.close();
- }
- }
- }
- }
-
- IDataSet getDataSet() throws Exception {
- FlatXmlProducer xmlProducer = new FlatXmlProducer(new InputSource(getClass()
- .getResourceAsStream("AlertManagerBeanTest.xml")));
- xmlProducer.setColumnSensing(true);
- return new FlatXmlDataSet(xmlProducer);
- }
-
- public void deleteAlertsForResource() {
- assert 1 == alertManager.deleteAlertsByContext(superuser, EntityContext.forResource(newResource.getId()));
- }
-
- @SuppressWarnings("unchecked")
- public void deleteAlertsForResourceTemplate() {
- int resourceTypeId = 1;
- int deletedCount = alertManager.deleteAlertsByContext(superuser, EntityContext.forTemplate(resourceTypeId));
-
- List<AlertConditionLog> alertConditionLogs = getEntityManager().createQuery(
- "from AlertConditionLog log where log.id = :id")
- .setParameter("id", 2)
- .getResultList();
-
- List<AlertNotificationLog> notificationLogs = getEntityManager().createQuery(
- "from AlertNotificationLog log where log.id = :id")
- .setParameter("id", 2)
- .getResultList();
-
- assertEquals("Failed to delete alerts by template", 1, deletedCount);
- assertEquals("Failed to delete alert condition logs when deleting alerts by template", 0,
- alertConditionLogs.size());
- assertEquals("Failed to delete alert notification logs when deleting alerts by template", 0,
- notificationLogs.size());
- }
-
- public void testAlertDeleteInRange() {
- assert 2 == alertManager.deleteAlerts(0L, System.currentTimeMillis() + 600000L); // go out into the future to make sure we get our alert
- }
-
-}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java
new file mode 100644
index 0000000..f0ae1b5
--- /dev/null
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/alert/test/DeleteAlertsTest.java
@@ -0,0 +1,123 @@
+/*
+ * 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 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.enterprise.server.alert.test;
+
+import java.sql.Connection;
+import java.util.List;
+
+import org.dbunit.database.DatabaseConnection;
+import org.dbunit.database.IDatabaseConnection;
+import org.dbunit.dataset.IDataSet;
+import org.dbunit.dataset.xml.FlatXmlDataSet;
+import org.dbunit.dataset.xml.FlatXmlProducer;
+import org.dbunit.operation.DatabaseOperation;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+import org.xml.sax.InputSource;
+
+import org.rhq.core.domain.alert.AlertConditionLog;
+import org.rhq.core.domain.alert.notification.AlertNotificationLog;
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.common.EntityContext;
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.enterprise.server.alert.AlertManagerLocal;
+import org.rhq.enterprise.server.test.AbstractEJB3Test;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * Test for {@link AlertManagerLocal} SLSB.
+ */
+@Test(enabled = false)
+public class DeleteAlertsTest extends AbstractEJB3Test {
+ private AlertManagerLocal alertManager;
+ private Subject superuser;
+ private Resource newResource;
+
+ @BeforeMethod
+ public void beforeMethod() throws Exception {
+ alertManager = LookupUtil.getAlertManager();
+ superuser = LookupUtil.getSubjectManager().getOverlord();
+
+ Connection connection = null;
+
+ try {
+ connection = getConnection();
+ IDatabaseConnection dbUnitConnection = new DatabaseConnection(connection);
+ DatabaseOperation.CLEAN_INSERT.execute(dbUnitConnection, getDataSet());
+ } finally {
+ if (connection != null) {
+ connection.close();
+ }
+ }
+
+ newResource = getEntityManager().find(Resource.class, 1);
+ }
+
+ @AfterClass
+ public void cleanupDB() throws Exception {
+ if ("true".equals(System.getProperty("clean.db"))) {
+ Connection connection = null;
+
+ try {
+ connection = getConnection();
+ IDatabaseConnection dbUnitConnection = new DatabaseConnection(connection);
+ DatabaseOperation.DELETE_ALL.execute(dbUnitConnection, getDataSet());
+ } finally {
+ if (connection != null) {
+ connection.close();
+ }
+ }
+ }
+ }
+
+ IDataSet getDataSet() throws Exception {
+ FlatXmlProducer xmlProducer = new FlatXmlProducer(new InputSource(getClass().getResourceAsStream(
+ "AlertManagerBeanTest.xml")));
+ xmlProducer.setColumnSensing(true);
+ return new FlatXmlDataSet(xmlProducer);
+ }
+
+ public void deleteAlertsForResource() {
+ assert 1 == alertManager.deleteAlertsByContext(superuser, EntityContext.forResource(newResource.getId()));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void deleteAlertsForResourceTemplate() {
+ int resourceTypeId = 1;
+ int deletedCount = alertManager.deleteAlertsByContext(superuser, EntityContext.forTemplate(resourceTypeId));
+
+ List<AlertConditionLog> alertConditionLogs = getEntityManager().createQuery(
+ "from AlertConditionLog log where log.id = :id").setParameter("id", 2).getResultList();
+
+ List<AlertNotificationLog> notificationLogs = getEntityManager().createQuery(
+ "from AlertNotificationLog log where log.id = :id").setParameter("id", 2).getResultList();
+
+ assertEquals("Failed to delete alerts by template", 1, deletedCount);
+ assertEquals("Failed to delete alert condition logs when deleting alerts by template", 0, alertConditionLogs
+ .size());
+ assertEquals("Failed to delete alert notification logs when deleting alerts by template", 0, notificationLogs
+ .size());
+ }
+
+ public void testAlertDeleteInRange() {
+ assert 2 == alertManager.deleteAlerts(0L, System.currentTimeMillis() + 600000L); // go out into the future to make sure we get our alert
+ }
+
+}
\ No newline at end of file
commit ffd9aa174c13d42799d0002b73dfb8b90d178463
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Sep 15 12:48:26 2011 -0400
don't throw exception if a bad jobID is given, just log a message. this also fixes an error in our unit tests that couldn't clean up
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 9dbe236..4c007ae 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
@@ -407,11 +407,15 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
}
public void deleteOperationScheduleEntity(ScheduleJobId jobId) {
- OperationScheduleEntity doomed = findOperationScheduleEntity(jobId);
- if (doomed != null) {
- LOG.debug("Deleting schedule entity: " + jobId);
- entityManager.remove(doomed);
- } else {
+ try {
+ OperationScheduleEntity doomed = findOperationScheduleEntity(jobId);
+ if (doomed != null) {
+ LOG.debug("Deleting schedule entity: " + jobId);
+ entityManager.remove(doomed);
+ } else {
+ LOG.info("Asked to delete unknown schedule - ignoring: " + jobId);
+ }
+ } catch (NoResultException nre) {
LOG.info("Asked to delete unknown schedule - ignoring: " + jobId);
}
@@ -2106,7 +2110,7 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
}
private static void validateOperationNameAndParameters(ResourceType resourceType, String operationName,
- Configuration parameters) {
+ Configuration parameters) {
Set<OperationDefinition> operationDefinitions = resourceType.getOperationDefinitions();
OperationDefinition matchingOperationDefinition = null;
for (OperationDefinition operationDefinition : operationDefinitions) {
@@ -2117,14 +2121,14 @@ public class OperationManagerBean implements OperationManagerLocal, OperationMan
}
if (matchingOperationDefinition == null) {
throw new IllegalArgumentException("[" + operationName
- + "] is not a valid operation name for Resources of type [" + resourceType.getName() + "]." );
+ + "] is not a valid operation name for Resources of type [" + resourceType.getName() + "].");
}
- ConfigurationDefinition parametersDefinition =
- matchingOperationDefinition.getParametersConfigurationDefinition();
+ ConfigurationDefinition parametersDefinition = matchingOperationDefinition
+ .getParametersConfigurationDefinition();
List<String> errors = ConfigurationUtility.validateConfiguration(parameters, parametersDefinition);
if (!errors.isEmpty()) {
- throw new IllegalArgumentException("Parameters for [" + operationName
- + "] on Resource of type [" + resourceType.getName() + "] are not valid: " + errors );
+ throw new IllegalArgumentException("Parameters for [" + operationName + "] on Resource of type ["
+ + resourceType.getName() + "] are not valid: " + errors);
}
}
12 years, 9 months