[rhq] Branch 'drift' - modules/enterprise
by John Sanda
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/AbstractDriftChangeSetsTreeDataSource.java | 4 -
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java | 21 +++++++---
2 files changed, 17 insertions(+), 8 deletions(-)
New commits:
commit 7e6fa990fa40f4585a286cf251b0f36643ac0a83
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Aug 2 14:06:12 2011 -0400
Updating query method to work with retrieving change sets
The mongodb plugin does not yet fully support criteria queries. As
different queries are implemented, I am attempting to update the plugin
to support those queries until the plugin better/fully implements the
criteria apis.
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 8453713..afb6345 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
@@ -33,9 +33,9 @@ import com.smartgwt.client.widgets.tree.TreeNode;
import org.rhq.core.domain.criteria.BaseCriteria;
import org.rhq.core.domain.criteria.BasicDriftChangeSetCriteria;
+import org.rhq.core.domain.criteria.BasicDriftCriteria;
import org.rhq.core.domain.criteria.DriftChangeSetCriteria;
import org.rhq.core.domain.criteria.DriftCriteria;
-import org.rhq.core.domain.criteria.DriftJPACriteria;
import org.rhq.core.domain.drift.Drift;
import org.rhq.core.domain.drift.DriftChangeSet;
import org.rhq.core.domain.util.PageList;
@@ -111,7 +111,7 @@ public abstract class AbstractDriftChangeSetsTreeDataSource extends RPCDataSourc
});
} else {
String changesetId = parentId;
- DriftCriteria criteria = new DriftJPACriteria();
+ DriftCriteria criteria = new BasicDriftCriteria();
criteria.addFilterChangeSetId(changesetId);
driftService.findDriftsByCriteria(criteria, new AsyncCallback<PageList<Drift>>() {
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 17b9f16..d1115ba 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
@@ -145,12 +145,21 @@ public class MongoDBDriftServer implements DriftServerPluginFacet {
@Override
public PageList<Drift> findDriftsByCriteria(Subject subject, DriftCriteria criteria) {
- String[] idFields = criteria.getFilterId().split(":");
- ObjectId changeSetId = new ObjectId(idFields[0]);
- String path = idFields[1];
- Query<MongoDBChangeSet> query = ds.createQuery(MongoDBChangeSet.class)
- .filter("id = ", changeSetId)
- .filter("files.path = ", path);
+ Query<MongoDBChangeSet> query = ds.createQuery(MongoDBChangeSet.class);
+ boolean changeSetIdFiltered = false;
+
+ if (criteria.getFilterId() != null) {
+ String[] idFields = criteria.getFilterId().split(":");
+ ObjectId changeSetId = new ObjectId(idFields[0]);
+ String path = idFields[1];
+
+ query.filter("files.path = ", path);
+ query.filter("id = ", changeSetId);
+ }
+
+ if (!changeSetIdFiltered && criteria.getFilterChangeSetId() != null) {
+ query.filter("id = ", new ObjectId(criteria.getFilterChangeSetId()));
+ }
PageList results = new PageList<DriftDTO>();
12 years, 10 months
[rhq] modules/plugins
by ips
modules/plugins/jmx/src/test/java/org/rhq/plugins/jmx/test/JMXPluginTest.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
New commits:
commit 24c7ecba9364d41dab28a5a4c25f28839bd85d4e
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Tue Aug 2 12:59:34 2011 -0400
fix bug in test that was causing an NPE
diff --git a/modules/plugins/jmx/src/test/java/org/rhq/plugins/jmx/test/JMXPluginTest.java b/modules/plugins/jmx/src/test/java/org/rhq/plugins/jmx/test/JMXPluginTest.java
index a10e8b4..791a578 100644
--- a/modules/plugins/jmx/src/test/java/org/rhq/plugins/jmx/test/JMXPluginTest.java
+++ b/modules/plugins/jmx/src/test/java/org/rhq/plugins/jmx/test/JMXPluginTest.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -33,6 +33,8 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+
+import org.rhq.core.domain.configuration.Configuration;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
@@ -207,7 +209,8 @@ public class JMXPluginTest {
ResourceComponent serviceComponent = PluginContainer.getInstance().getInventoryManager()
.getResourceComponent(service);
- Object result = ((OperationFacet) serviceComponent).invokeOperation("findMonitorDeadlockedThreads", null);
+ Object result = ((OperationFacet) serviceComponent).invokeOperation("findMonitorDeadlockedThreads",
+ new Configuration());
System.out.println("Result of operation test was: " + result);
}
}
@@ -275,7 +278,7 @@ public class JMXPluginTest {
long started = System.currentTimeMillis();
public static void main(String[] args) {
- System.out.println("Test Program Running");
+ System.out.println("Test program running...");
TestProgram tp = new TestProgram();
tp.run();
}
12 years, 10 months
[rhq] modules/plugins
by Heiko W. Rupp
modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
New commits:
commit eb3c1ba0922e1c4348deedc1a158e64ed08ec260
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Aug 2 17:57:37 2011 +0200
Better display names for host & domain config.
diff --git a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
index c70d01f..c636e1e 100644
--- a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
@@ -86,8 +86,8 @@
<c:simple-property name="port" default="9990" type="integer" required="true" description="Port of the domain API"/>
<c:simple-property name="user" type="string" description="Management user for a secured Host controller" required="false"/>
<c:simple-property name="password" type="password" description="Password for the management user" required="false"/>
- <c:simple-property name="domainConfig" type="string" default="domain.xml" description="Running configuration (domain part)" displayName="Configuration"/>
- <c:simple-property name="hostConfig" type="string" default="host.xml" description="Running configuration (host part)" displayName="Configuration"/>
+ <c:simple-property name="domainConfig" type="string" default="domain.xml" description="Running configuration (domain part)" displayName="Domain Configuration"/>
+ <c:simple-property name="hostConfig" type="string" default="host.xml" description="Running configuration (host part)" displayName="Host Configuration"/>
<c:simple-property name="baseDir" type="file" description="Base directory of the server installation" displayName="Base directory" readOnly="true" required="false"/>
<c:simple-property name="startScript" type="file" default="bin/domain.sh" description="Script used to start the server. If the path is not absolute, it is relative to the base directory"/>
<c:simple-property name="domainHost" type="string" readOnly="true" required="false" description="Host name within the AS7 domain"/>
12 years, 10 months
[rhq] Branch 'as7plugin' - 92 commits - modules/common modules/core modules/enterprise modules/helpers modules/plugins modules/test-utils pom.xml
by Heiko W. Rupp
modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/BackupAndReplaceFileActionHandler.java | 8
modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java | 16
modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/HandlerUtils.java | 9
modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java | 6
modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/i18n/PropertiesGenerator.java | 53
modules/core/client-api/src/test/java/org/rhq/core/clientapi/agent/metadata/test/ExtensionModelTest.java | 5
modules/core/client-api/src/test/java/org/rhq/core/clientapi/descriptor/PluginTransformerTest.java | 2
modules/core/dbutils/src/main/java/org/rhq/core/db/ant/dbupgrade/DBUpgrader.java | 24
modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java | 13
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryFile.java | 10
modules/core/plugin-container/src/main/java/org/rhq/core/pc/plugin/PluginClassLoader.java | 12
modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java | 1
modules/core/util/src/main/java/org/rhq/core/util/stream/StreamUtil.java | 16
modules/core/util/src/test/java/org/rhq/core/util/ZipUtilTest.java | 4
modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentConfiguration.java | 8
modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/Version.java | 6
modules/enterprise/agentupdate/src/main/java/org/rhq/enterprise/agent/update/AgentUpdate.java | 10
modules/enterprise/comm/src/main/java/org/rhq/enterprise/communications/util/DumpBytes.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java | 12
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/NewConditionEditor.java | 26
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceCompositeSearchView.java | 65
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java | 50
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java | 55
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java | 31
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/BundleFileUploadServlet.java | 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/PackageVersionFileUploadServlet.java | 16
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java | 14
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties | 1419 +++++-----
modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/Version.java | 6
modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/ScriptCommand.java | 42
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java | 63
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/util/ConfigurationMaskingUtility.java | 7
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CustomJaasDeploymentService.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java | 63
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java | 11
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/ServerPluginClassLoader.java | 14
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java | 58
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java | 13
modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/PluginGen.java | 76
modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/Props.java | 4
modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/ResourceCategory.java | 2
modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanRuleComponent.java | 2
modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableComponent.java | 16
modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableRowDiscoveryComponent.java | 6
modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISServerDiscoveryComponent.java | 4
modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostComponent.java | 4
modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostDiscoveryComponent.java | 4
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/ManagedComponentDeployer.java | 105
modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml | 2
modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml | 4
modules/plugins/jboss-cache/src/main/java/org/rhq/plugins/jbosscache/JBossCacheComponent.java | 6
modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/MBeanResourceComponent.java | 90
modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java | 46
modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java | 3
modules/plugins/netservices/src/main/java/org/rhq/plugins/netservices/HTTPNetServiceComponent.java | 4
modules/plugins/oracle/src/main/java/org/rhq/plugins/oracle/OracleDiscoveryComponent.java | 7
modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/PerfTestDiscoveryComponent.java | 4
modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/ScenarioManager.java | 1
modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/yum/YumServer.java | 21
modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java | 48
modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresUserComponent.java | 3
modules/plugins/rhq-agent/src/main/java/org/rhq/plugins/agent/AgentSnapshotReport.java | 9
modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java | 49
modules/plugins/script/src/main/java/org/rhq/plugins/script/ScriptServerComponent.java | 8
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatDiscoveryComponent.java | 9
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatGroupComponent.java | 3
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatUserComponent.java | 3
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java | 3
modules/plugins/virt/src/main/java/org/rhq/plugins/virt/LibVirtConnection.java | 264 +
modules/plugins/virt/src/main/java/org/rhq/plugins/virt/VirtualizationDomainComponent.java | 5
modules/test-utils/src/main/java/org/rhq/test/JPAUtils.java | 16
pom.xml | 46
74 files changed, 1725 insertions(+), 1348 deletions(-)
New commits:
commit 6cdc362f98697697e7e39b166681c34df283aa2b
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Aug 2 17:57:37 2011 +0200
Better display names for host & domain config.
diff --git a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
index c70d01f..c636e1e 100644
--- a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
@@ -86,8 +86,8 @@
<c:simple-property name="port" default="9990" type="integer" required="true" description="Port of the domain API"/>
<c:simple-property name="user" type="string" description="Management user for a secured Host controller" required="false"/>
<c:simple-property name="password" type="password" description="Password for the management user" required="false"/>
- <c:simple-property name="domainConfig" type="string" default="domain.xml" description="Running configuration (domain part)" displayName="Configuration"/>
- <c:simple-property name="hostConfig" type="string" default="host.xml" description="Running configuration (host part)" displayName="Configuration"/>
+ <c:simple-property name="domainConfig" type="string" default="domain.xml" description="Running configuration (domain part)" displayName="Domain Configuration"/>
+ <c:simple-property name="hostConfig" type="string" default="host.xml" description="Running configuration (host part)" displayName="Host Configuration"/>
<c:simple-property name="baseDir" type="file" description="Base directory of the server installation" displayName="Base directory" readOnly="true" required="false"/>
<c:simple-property name="startScript" type="file" default="bin/domain.sh" description="Script used to start the server. If the path is not absolute, it is relative to the base directory"/>
<c:simple-property name="domainHost" type="string" readOnly="true" required="false" description="Host name within the AS7 domain"/>
commit cb11e1847161719d751ac36e19e36b288841521d
Merge: d10512a 01c6586
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Aug 2 15:44:39 2011 +0200
Merge branch 'as7plugin'
commit d10512ab4e749364ff873ef92d155fcd9824cc53
Merge: a063002 e4fa39a
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Aug 2 13:59:15 2011 +0200
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit a063002f38625a32ea125c3253b82c01ba97c874
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Aug 2 13:57:51 2011 +0200
Do some developer and contributor housekeeping.
diff --git a/pom.xml b/pom.xml
index 549e0d0..28bec8d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -158,7 +158,7 @@
host name changes are/should be uncommon in a typical deployment, they
are more common in a cloud deployment such as EC2. And in a cloud
deployment like EC2, we want to turn this behavior on to ensure that
- the server endpoint accurately reflects the current machine address.
+ the server endpoint accurately reflects the current machine address.
-->
<rhq.sync.endpoint-address>false</rhq.sync.endpoint-address>
@@ -849,7 +849,7 @@
</plugin>
<!-- As of v1.0 of the buildnumber plugin, the create goal doesn't work,
- and the create-timestamp goal doesn't provide a way to specify
+ and the create-timestamp goal doesn't provide a way to specify
a locale or a timezone, so comment this out for now and instead use
our own homemade mix of antrun and properties-file plugin executions
(just below this commented out block). (ips, 06/28/11)
@@ -902,11 +902,11 @@
<phase>generate-sources</phase>
<configuration>
<tasks>
- <mkdir dir="target" />
+ <mkdir dir="target" />
<tstamp>
<format property="buildTime" pattern="MM/dd/yy hh:mm aa z" locale="en,US" timezone="GMT" />
- </tstamp>
+ </tstamp>
<echo file="target/build.properties">buildTime = ${buildTime}${line.separator}</echo>
<exec executable="git" outputproperty="buildNumber" failonerror="false" failifexecutionfails="false">
@@ -947,7 +947,7 @@
</goals>
<configuration>
<files>
- <file>${project.build.directory}/build.properties</file>
+ <file>${project.build.directory}/build.properties</file>
</files>
<quiet>true</quiet>
</configuration>
@@ -1104,7 +1104,7 @@
</profile>
<!-- Set the java6.home prop to a Java6 JRE dir to enforce that only Java6 APIs are used.
- If using Java7 to run the build, this will ensure no APIs introduced in Java7 are
+ If using Java7 to run the build, this will ensure no APIs introduced in Java7 are
used. -->
<profile>
<id>check-java-api</id>
@@ -1146,7 +1146,7 @@
</build>
</profile>
- <!-- This profile should be enabled when a release is being published.
+ <!-- This profile should be enabled when a release is being published.
It will ensure that sources and javadoc jars are built and published
for each source module. -->
<profile>
@@ -1256,6 +1256,10 @@
<developers>
<developer>
+ <name>Robert Buck</name>
+ <timezone>-5</timezone>
+ </developer>
+ <developer>
<name>Charles Crouch</name>
<timezone>-6</timezone>
</developer>
@@ -1267,8 +1271,11 @@
</roles>
</developer>
<developer>
- <name>Filip Drabeck</name>
+ <name>Filip Drabek</name>
<timezone>+1</timezone>
+ <roles>
+ <role>retired</role>
+ </roles>
</developer>
<developer>
<name>Greg Hinkle</name>
@@ -1303,6 +1310,10 @@
<url>http://management-platform.blogspot.com</url>
</developer>
<developer>
+ <name>Stefan Negrea</name>
+ <timezone>-6</timezone>
+ </developer>
+ <developer>
<name>Simeon Pinder</name>
<timezone>-5</timezone>
</developer>
@@ -1347,6 +1358,25 @@
<name>Rafael Torres Coelho Soares</name>
<timezone>-7</timezone>
</contributor>
+ <contributor>
+ <name>Elias Ross</name>
+ </contributor>
+ <contributor>
+ <name>Fusayuki Minamoto</name>
+ <timezone>+6</timezone>
+ </contributor>
+ <contributor>
+ <name>Liju Jijun</name>
+ <timezone>+6</timezone>
+ </contributor>
+ <contributor>
+ <name>Zhongqianglee</name>
+ <timezone>+6</timezone>
+ </contributor>
+ <contributor>
+ <name>Frank BrÃŒseke</name>
+ <timezone>+1</timezone>
+ </contributor>
</contributors>
<mailingLists>
commit e4fa39acdcccd039950d5fac3c80cb5b95a0474b
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Mon Aug 1 17:09:35 2011 -0400
[BZ 723025] add support for operationinfos with un-named parameterinfos, which is common for standard mbeans (https://bugzilla.redhat.com/show_bug.cgi?id=723025); map RHQ operation to MBean operation with not only the same name, but also the same # of params - this allows us to support MBeans that define multiple operations with the same name but different params
diff --git a/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/MBeanResourceComponent.java b/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/MBeanResourceComponent.java
index cb7f901..6a60a93 100644
--- a/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/MBeanResourceComponent.java
+++ b/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/MBeanResourceComponent.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -33,6 +33,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.SortedSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -520,38 +521,72 @@ public class MBeanResourceComponent<T extends JMXComponent> implements Measureme
public OperationResult invokeOperation(String name, Configuration parameters, EmsBean emsBean) throws Exception {
if (emsBean == null) {
throw new Exception("Can not invoke operation [" + name
- + "], as we can't connect to the bean - is it down?");
+ + "], as we can't connect to the MBean - is it down?");
}
- EmsOperation operation = emsBean.getOperation(name);
+ Map<String, PropertySimple> paramProps = parameters.getSimpleProperties();
+ SortedSet<EmsOperation> emsOperations = emsBean.getOperations();
+ EmsOperation operation = null;
+ // There could be multiple operations with the same name but different parameters. Try to find one that has
+ // the same # of parameters as the RHQ operation def.
+ for (EmsOperation emsOperation : emsOperations) {
+ if (emsOperation.getName().equals(name) && (emsOperation.getParameters().size() == paramProps.size())) {
+ operation = emsOperation;
+ break;
+ }
+ }
+ if (operation == null) {
+ // We couldn't find an operation with the expected name and # of parameters, so as as a last ditch effort,
+ // see if there's an operation that at least has the expected name.
+ operation = emsBean.getOperation(name);
+ }
if (operation == null) {
- throw new Exception("Operation [" + name + "] not found on bean [" + emsBean.getBeanName() + "]");
+ throw new Exception("Operation [" + name + "] not found on MBean [" + emsBean.getBeanName() + "].");
}
- Object[] parameterValues = new Object[operation.getParameters().size()];
+ List<EmsParameter> emsParams = operation.getParameters();
+ Map<String, Integer> emsParamIndexesByName = new HashMap<String, Integer>();
+ for (int i = 0, emsParamsSize = emsParams.size(); i < emsParamsSize; i++) {
+ EmsParameter emsParam = emsParams.get(i);
+ if (emsParam.getName() != null) {
+ emsParamIndexesByName.put(emsParam.getName(), i);
+ }
+ }
- int i = 0;
- List<EmsParameter> params = operation.getParameters();
- for (EmsParameter param : params) {
- PropertySimple ps = parameters.getSimple(param.getName());
- if (param.getType().equals(String.class.getName())) {
- parameterValues[i] = (ps == null) ? null : ps.getStringValue();
- } else if (param.getType().equals(boolean.class.getName())) {
- parameterValues[i] = (ps == null) ? null : ps.getBooleanValue();
+ Object[] paramValues = new Object[operation.getParameters().size()];
+
+ for (String propName : paramProps.keySet()) {
+ Integer paramIndex;
+ if (propName.matches("\\[\\d+\\]")) {
+ paramIndex = Integer.valueOf(propName.substring(propName.indexOf('[') + 1, propName.indexOf(']')));
+ if (paramIndex < 0 || paramIndex >= emsParams.size()) {
+ throw new IllegalStateException("Index [" + paramIndex + "] specified for parameter of operation ["
+ + name + "] on MBean [" + emsBean.getBeanName() + "] is invalid. The MBean operation takes "
+ + emsParams.size() + " parameters.");
+ }
+ } else {
+ paramIndex = emsParamIndexesByName.get(propName);
+ if (paramIndex == null) {
+ throw new IllegalStateException("Name [" + propName + "] specified for parameter of operation ["
+ + name + "] on MBean [" + emsBean.getBeanName()
+ + "] is invalid. The MBean operation does not take a parameter by that name.");
+ }
}
+ EmsParameter emsParam = emsParams.get(paramIndex);
- // TODO GH: Handle rest of types. (I think i have a mapper for this in mc4j
- i++;
+ PropertySimple paramProp = paramProps.get(propName);
+ String emsParamType = emsParam.getType();
+ Object paramValue = getPropertyValueAsType(paramProp, emsParamType);
+ paramValues[paramIndex] = paramValue;
}
- Object resultObject = operation.invoke(parameterValues);
+ Object resultObject = operation.invoke(paramValues);
boolean hasVoidReturnType = (operation.getReturnType() == null
|| Void.class.getName().equals(operation.getReturnType()) || void.class.getName().equals(
operation.getReturnType()));
OperationResult resultToReturn;
-
if (resultObject == null && hasVoidReturnType) {
resultToReturn = null;
} else {
@@ -575,4 +610,25 @@ public class MBeanResourceComponent<T extends JMXComponent> implements Measureme
return resultToReturn;
}
+
+ private Object getPropertyValueAsType(PropertySimple propSimple, String typeName) {
+ Object value;
+ if (typeName.equals(String.class.getName())) {
+ value = (propSimple == null) ? null : propSimple.getStringValue();
+ } else if (typeName.equals(Boolean.class.getName()) || typeName.equals(boolean.class.getName())) {
+ value = (propSimple == null) ? null : propSimple.getBooleanValue();
+ } else if (typeName.equals(Integer.class.getName()) || typeName.equals(int.class.getName())) {
+ value = (propSimple == null) ? null : propSimple.getIntegerValue();
+ } else if (typeName.equals(Long.class.getName()) || typeName.equals(long.class.getName())) {
+ value = (propSimple == null) ? null : propSimple.getLongValue();
+ } else if (typeName.equals(Float.class.getName()) || typeName.equals(float.class.getName())) {
+ value = (propSimple == null) ? null : propSimple.getFloatValue();
+ } else if (typeName.equals(Double.class.getName()) || typeName.equals(double.class.getName())) {
+ value = (propSimple == null) ? null : propSimple.getDoubleValue();
+ } else {
+ throw new IllegalStateException("Operation parameter maps to MBean parameter with an unsupported type (" + typeName + ").");
+ }
+ // TODO GH: Handle rest of types. (I think i have a mapper for this in mc4j
+ return value;
+ }
}
commit d47438f7a5a56de5539f8635a44aed53833837dc
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Mon Aug 1 14:09:29 2011 -0400
[BZ 720456] fix so all child types are shown in manual-add dropdown on Inventory>Child Resources view (https://bugzilla.redhat.com/show_bug.cgi?id=720456)
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 f333ddf..de0dba6 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
@@ -122,47 +122,54 @@ public class ResourceCompositeSearchView extends ResourceSearchView {
});
if (this.parentResourceComposite.getResourcePermission().isCreateChildResources()) {
- ResourceType parentType = parentResourceComposite.getResource().getResourceType();
-
- // manual import type menu
- LinkedHashMap<String, ResourceType> importTypeValueMap = new LinkedHashMap<String, ResourceType>();
+ addImportButton();
+ }
- for (ResourceType childType : parentType.getChildResourceTypes()) {
- if (childType.isSupportsManualAdd()) {
- importTypeValueMap.put(childType.getName(), childType);
- }
- }
- addTableAction(extendLocatorId("Import"), MSG.common_button_import(), null, importTypeValueMap,
- new AbstractTableAction(TableActionEnablement.ALWAYS) {
+ super.configureTable();
+ }
- public void executeAction(ListGridRecord[] selection, Object actionValue) {
- ResourceFactoryImportWizard.showImportWizard(parentResourceComposite.getResource(),
- (ResourceType) actionValue);
- }
- });
+ private void addImportButton() {
+ ResourceType parentType = parentResourceComposite.getResource().getResourceType();
- // creatable child type menu
- LinkedHashMap<String, ResourceType> createTypeValueMap = new LinkedHashMap<String, ResourceType>();
+ // manual import type menu
+ // TODO: Use TreeMap instead, so the types will be sorted by name.
+ LinkedHashMap<String, ResourceType> importTypeValueMap = new LinkedHashMap<String, ResourceType>();
- for (ResourceType childType : parentType.getChildResourceTypes()) {
- if (childType.isCreatable()) {
- createTypeValueMap.put(childType.getName(), childType);
- }
+ for (ResourceType childType : parentType.getChildResourceTypes()) {
+ if (childType.isSupportsManualAdd()) {
+ importTypeValueMap.put(childType.getName(), childType);
}
- if (!createTypeValueMap.isEmpty()) {
- addTableAction(extendLocatorId("CreateChild"), MSG.common_button_create_child(), null,
- createTypeValueMap, new AbstractTableAction(TableActionEnablement.ALWAYS) {
+ }
+ if (!importTypeValueMap.isEmpty()) {
+ addTableAction(extendLocatorId("Import"), MSG.common_button_import(), null, importTypeValueMap,
+ new AbstractTableAction(TableActionEnablement.ALWAYS) {
public void executeAction(ListGridRecord[] selection, Object actionValue) {
- ResourceFactoryCreateWizard.showCreateWizard(parentResourceComposite.getResource(),
- (ResourceType) actionValue);
+ ResourceFactoryImportWizard.showImportWizard(parentResourceComposite.getResource(),
+ (ResourceType) actionValue);
}
});
- }
+ }
+
+ // creatable child type menu
+ // TODO: Use TreeMap instead, so the types will be sorted by name.
+ LinkedHashMap<String, ResourceType> createTypeValueMap = new LinkedHashMap<String, ResourceType>();
+ for (ResourceType childType : parentType.getChildResourceTypes()) {
+ if (childType.isCreatable()) {
+ createTypeValueMap.put(childType.getName(), childType);
+ }
}
+ if (!createTypeValueMap.isEmpty()) {
+ addTableAction(extendLocatorId("CreateChild"), MSG.common_button_create_child(), null,
+ createTypeValueMap, new AbstractTableAction(TableActionEnablement.ALWAYS) {
- super.configureTable();
+ public void executeAction(ListGridRecord[] selection, Object actionValue) {
+ ResourceFactoryCreateWizard.showCreateWizard(parentResourceComposite.getResource(),
+ (ResourceType) actionValue);
+ }
+ });
+ }
}
public ResourceComposite getParentResourceComposite() {
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 7149726..68ef419 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
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -60,7 +60,6 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.criteria.DashboardCriteria;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.criteria.ResourceGroupCriteria;
-import org.rhq.core.domain.criteria.ResourceTypeCriteria;
import org.rhq.core.domain.dashboard.Dashboard;
import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.measurement.DataType;
@@ -68,7 +67,6 @@ import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.resource.composite.ResourceLineageComposite;
@@ -83,7 +81,6 @@ import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.resour
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGroupGWTServiceAsync;
-import org.rhq.enterprise.gui.coregui.client.gwt.ResourceTypeGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.inventory.InventoryView;
import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.ResourceGroupContextMenu;
import org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.ResourceGroupDetailView;
@@ -539,9 +536,6 @@ public class ResourceTreeView extends LocatableVLayout {
importChildSubMenu.addItem(importItem);
}
}
- if (resourceType.getCategory() == ResourceCategory.PLATFORM) {
- loadManuallyAddServersToPlatforms(importChildSubMenu, resource);
- }
importChildMenu.setSubmenu(importChildSubMenu);
manualImportEnabled = importChildSubMenu.getItems().length > 0;
@@ -550,48 +544,6 @@ public class ResourceTreeView extends LocatableVLayout {
resourceContextMenu.addItem(importChildMenu);
}
- private void loadManuallyAddServersToPlatforms(final Menu manuallyAddMenu, final Resource resource) {
- ResourceTypeGWTServiceAsync rts = GWTServiceLookup.getResourceTypeGWTService();
-
- ResourceTypeCriteria criteria = new ResourceTypeCriteria();
- criteria.addFilterSupportsManualAdd(true);
- criteria.fetchParentResourceTypes(true);
- rts.findResourceTypesByCriteria(criteria, new AsyncCallback<PageList<ResourceType>>() {
-
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_contextMenu_loadFailed_manualAddChildren(),
- caught);
- }
-
- public void onSuccess(PageList<ResourceType> result) {
- //sort the display items alphabetically
- TreeSet<String> ordered = new TreeSet<String>();
- Map<String, ResourceType> displayTypes = new HashMap<String, ResourceType>();
- for (ResourceType type : result) {
- displayTypes.put(type.getName(), type);
- ordered.add(type.getName());
- }
-
- int idx = 0;
- for (String displayType : ordered) {
- final ResourceType type = displayTypes.get(displayType);
- if (type.getParentResourceTypes() == null || type.getParentResourceTypes().isEmpty()) {
- MenuItem item = new MenuItem(type.getName());
-
- item.addClickHandler(new ClickHandler() {
-
- public void onClick(MenuItemClickEvent event) {
- ResourceFactoryImportWizard.showImportWizard(resource, type);
- }
- });
-
- manuallyAddMenu.addItem(item, idx++);
- }
- }
- }
- });
- }
-
private MenuItem buildMetricsMenu(final ResourceType type, final Resource resource) {
MenuItem measurements = new MenuItem(MSG.view_tree_common_contextMenu_measurements());
final Menu measurementsSubMenu = new Menu();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java
index d1dce1f..c4630dd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/type/ResourceTypeRepository.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -32,6 +32,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
import org.rhq.core.domain.criteria.ResourceTypeCriteria;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.PageControl;
@@ -51,6 +52,7 @@ public class ResourceTypeRepository {
private Map<Integer, ResourceType> typeCache = new HashMap<Integer, ResourceType>();
private Map<Integer, EnumSet<MetadataType>> typeCacheLevel = new HashMap<Integer, EnumSet<MetadataType>>();
+ private Set<ResourceType> topLevelServerAndServiceTypes;
private static ResourceTypeGWTServiceAsync resourceTypeService = GWTServiceLookup.getResourceTypeGWTService();
@@ -252,9 +254,46 @@ public class ResourceTypeRepository {
criteria.setPageControl(PageControl.getUnlimitedInstance());
- com.allen_sauer.gwt.log.client.Log.info("Loading " + typesNeeded.size()
+ Log.info("Loading " + typesNeeded.size()
+ ((metadataTypes != null) ? (" types: " + metadataTypes) : ""));
+ if ((topLevelServerAndServiceTypes == null) && (metadataTypes != null) &&
+ metadataTypes.contains(MetadataType.children)) {
+ // Perform a one-time load of server and service types with no parent types. These types are implicitly
+ // children of all platform types, even though they are not included in the platform types'
+ // childResourceTypes field.
+ loadTopLevelServerAndServiceTypes(callback, metadataTypes, criteria, cachedTypes);
+ } else {
+ loadRequestedTypes(callback, metadataTypes, criteria, cachedTypes);
+ }
+ }
+
+ private void loadTopLevelServerAndServiceTypes(final TypesLoadedCallback callback,
+ final EnumSet<MetadataType> metadataTypes,
+ final ResourceTypeCriteria criteria, final Map<Integer,
+ ResourceType> cachedTypes) {
+ ResourceTypeCriteria topLevelCriteria = new ResourceTypeCriteria();
+ topLevelCriteria.fetchParentResourceTypes(true);
+ resourceTypeService.findResourceTypesByCriteria(topLevelCriteria, new AsyncCallback<PageList<ResourceType>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(MSG.widget_typeCache_loadFail(), caught);
+ loadRequestedTypes(callback, metadataTypes, criteria, cachedTypes);
+ }
+
+ public void onSuccess(PageList<ResourceType> types) {
+ topLevelServerAndServiceTypes = new HashSet<ResourceType>();
+ for (ResourceType type : types) {
+ if ((type.getCategory() != ResourceCategory.PLATFORM) &&
+ (type.getParentResourceTypes() == null || type.getParentResourceTypes().isEmpty())) {
+ topLevelServerAndServiceTypes.add(type);
+ }
+ }
+ loadRequestedTypes(callback, metadataTypes, criteria, cachedTypes);
+ }
+ });
+ }
+
+ private void loadRequestedTypes(final TypesLoadedCallback callback, final EnumSet<MetadataType> metadataTypes, ResourceTypeCriteria criteria, final Map<Integer, ResourceType> cachedTypes) {
resourceTypeService.findResourceTypesByCriteria(criteria, new AsyncCallback<PageList<ResourceType>>() {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.widget_typeCache_loadFail(), caught);
@@ -268,7 +307,15 @@ public class ResourceTypeRepository {
for (MetadataType metadataType : metadataTypes) {
switch (metadataType) {
case children:
- cachedType.setChildResourceTypes(type.getChildResourceTypes());
+ Set<ResourceType> childTypes = type.getChildResourceTypes();
+ if (type.getCategory() == ResourceCategory.PLATFORM &&
+ topLevelServerAndServiceTypes != null) {
+ // Add server and service types with no parent types to the list of child types.
+ // These types are implicitly children of all platform types, even though they
+ // are not included in the platform types' childResourceTypes field.
+ childTypes.addAll(topLevelServerAndServiceTypes);
+ }
+ cachedType.setChildResourceTypes(childTypes);
break;
case content:
cachedType.setPackageTypes(type.getPackageTypes());
@@ -304,7 +351,7 @@ public class ResourceTypeRepository {
break;
default:
Log.error("ERROR: metadataType " + metadataType.name()
- + " not merged into cached ResourceType.");
+ + " not merged into cached ResourceType.");
}
}
}
commit 1307c8ddd76d5567fe7914c5b359dc8ad354cb67
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Mon Aug 1 11:39:38 2011 -0400
[BZ 717921] fix potential IndexOutOfBoundsException in unmaskProperty() (https://bugzilla.redhat.com/show_bug.cgi?id=717921)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/util/ConfigurationMaskingUtility.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/util/ConfigurationMaskingUtility.java
index 2059064..0884fbb 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/util/ConfigurationMaskingUtility.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/util/ConfigurationMaskingUtility.java
@@ -157,10 +157,11 @@ public class ConfigurationMaskingUtility {
// properties.
if (!memberProperties.isEmpty() && memberProperties.get(0) instanceof PropertyMap) {
PropertyList unmaskedPropertyList = unmaskedParentPropertyMap.getList(propertyList.getName());
- if (unmaskedPropertyList!=null) {
- for (int i = 0; i < propertyList.getList().size(); i++) {
+ if (unmaskedPropertyList != null) {
+ List<Property> unmaskedMemberProperties = unmaskedPropertyList.getList();
+ for (int i = 0; (i < memberProperties.size()) && (i < unmaskedMemberProperties.size()); i++) {
PropertyMap propertyMap = (PropertyMap) memberProperties.get(i);
- PropertyMap unmaskedPropertyMap = (PropertyMap) unmaskedPropertyList.getList().get(i);
+ PropertyMap unmaskedPropertyMap = (PropertyMap) unmaskedMemberProperties.get(i);
unmaskPropertyMap(propertyMap, unmaskedPropertyMap);
}
}
commit ec88d4be0152d195ef769de97f43cdd289d77aeb
Merge: b38642e c4a82bc
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Aug 1 08:41:55 2011 +0200
Merge branch 'code-smell' into master
commit c4a82bca1620900e3bb2c7353ca5425a1ee4b354
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Jul 29 17:20:11 2011 -0400
[BZ-726508 - Can't create alert condition on certain metrics]
Since metric def names may not be unique, they are duplicated
for the 'Per Minute' version of certain metrics, don't use them
for the value map keys in alert def drop downs.
- Also, some of these metric name lists are long, sort the
menu entries.
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 2fd9400..44875d8 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
@@ -24,9 +24,11 @@
package org.rhq.enterprise.gui.coregui.client.alert.definitions;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Set;
+import java.util.TreeSet;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.form.DynamicForm;
@@ -572,7 +574,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
LinkedHashMap<String, String> traitsMap = new LinkedHashMap<String, String>();
for (MeasurementDefinition def : this.resourceType.getMetricDefinitions()) {
if (def.getDataType() == DataType.TRAIT) {
- traitsMap.put(def.getName(), def.getDisplayName());
+ traitsMap.put(String.valueOf(def.getId()), def.getDisplayName());
}
}
@@ -703,10 +705,21 @@ public class NewConditionEditor extends LocatableDynamicForm {
private SelectItem buildMetricDropDownMenu(String itemName, boolean dynamicOnly, FormItemIfFunction ifFunc) {
LinkedHashMap<String, String> metricsMap = new LinkedHashMap<String, String>();
- for (MeasurementDefinition def : this.resourceType.getMetricDefinitions()) {
+ TreeSet<MeasurementDefinition> sortedDefs = new TreeSet<MeasurementDefinition>(
+ new Comparator<MeasurementDefinition>() {
+
+ @Override
+ public int compare(MeasurementDefinition o1, MeasurementDefinition o2) {
+ return o1.getDisplayName().compareTo(o2.getDisplayName());
+ }
+ });
+ sortedDefs.addAll(this.resourceType.getMetricDefinitions());
+
+ for (MeasurementDefinition def : sortedDefs) {
if (def.getDataType() == DataType.MEASUREMENT) {
if (!dynamicOnly || def.getNumericType() == NumericType.DYNAMIC) {
- metricsMap.put(def.getName(), def.getDisplayName());
+ // use id as opposed to name for key, the name is not unique when per-minute metric is also used
+ metricsMap.put(String.valueOf(def.getId()), def.getDisplayName());
}
}
}
@@ -726,7 +739,7 @@ public class NewConditionEditor extends LocatableDynamicForm {
LinkedHashMap<String, String> metricsMap = new LinkedHashMap<String, String>();
for (MeasurementDefinition def : this.resourceType.getMetricDefinitions()) {
if (def.getDataType() == DataType.CALLTIME) {
- metricsMap.put(def.getName(), def.getDisplayName());
+ metricsMap.put(String.valueOf(def.getId()), def.getDisplayName());
}
}
@@ -790,9 +803,10 @@ public class NewConditionEditor extends LocatableDynamicForm {
return help;
}
- private MeasurementDefinition getMeasurementDefinition(String metricName) {
+ private MeasurementDefinition getMeasurementDefinition(String metricId) {
+ int id = Integer.valueOf(metricId).intValue();
for (MeasurementDefinition def : this.resourceType.getMetricDefinitions()) {
- if (metricName.equals(def.getName())) {
+ if (id == def.getId()) {
return def;
}
}
commit e431028f07369d98a0ffc72c883a8be1c4ab39f6
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jul 29 15:03:54 2011 -0400
[BZ 710230] improve description of testConnection operation on datasources/connFactories (https://bugzilla.redhat.com/show_bug.cgi?id=710230)
diff --git a/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
index 21161fe..bbe70ea 100644
--- a/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
@@ -37,7 +37,7 @@
</results>
</operation>
- <operation name="testConnection" displayName="Test Connection" description="Test if a connection can be obtained">
+ <operation name="testConnection" displayName="Test Connection" description="Test if a connection can be obtained - returns true if a connection was obtained, or false if not; NOTE: this operation will always return a status of Successful - the results of the operation must be inspected to see whether or not a connection was obtained">
<results>
<c:notes>Test if a connection can be obtained</c:notes>
<c:simple-property type="boolean" name="result" description="Was a connection obtained?"/>
commit e4e340d418889e7a8972c421fe002a84ff2aa187
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Jul 29 13:28:33 2011 -0400
[BZ-726714 - Metric template creation generates NPE (null pointer exception)]
Fix a problem when trying to apply a metric template to a resource in a
"hidden" state like UNINVENTORIED.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
index 98110ac..03cd4bb 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
@@ -498,6 +498,17 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
for (Integer resourceId : reqMap.keySet()) {
Agent agent = agentManager.getAgentByResourceId(subjectManager.getOverlord(), resourceId);
+ // Ignore resources that are not actually associated with an agent. For example,
+ // those with an UNINVENTORIED status.
+ if (null == agent) {
+ if (log.isDebugEnabled()) {
+ log.debug("Ignoring measurement schedule change for non-agent-related resource ["
+ + resourceId + "]. It is probably waiting to be uninventoried.");
+ }
+
+ continue;
+ }
+
Set<ResourceMeasurementScheduleRequest> agentUpdate = agentUpdates.get(agent);
if (agentUpdate == null) {
agentUpdate = new HashSet<ResourceMeasurementScheduleRequest>();
commit 397cb79ad080285aadb93a9257318d4c1ee2c9b6
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jul 29 12:51:50 2011 -0400
some general cleanup/refactoring + improved error handling
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/ManagedComponentDeployer.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/ManagedComponentDeployer.java
index 6314d3a..4315155 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/ManagedComponentDeployer.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/ManagedComponentDeployer.java
@@ -16,7 +16,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-
package org.rhq.plugins.jbossas5.deploy;
import java.io.File;
@@ -60,14 +59,10 @@ public class ManagedComponentDeployer implements Deployer {
private static final ProfileKey FARM_PROFILE_KEY = new ProfileKey("farm");
private static final ProfileKey APPLICATIONS_PROFILE_KEY = new ProfileKey("applications");
- public static final String DEPLOYMENT_NAME_PROPERTY = "deploymentName";
private PackageDownloader downloader;
private ProfileServiceConnection profileServiceConnection;
- /**
- * @param downloader
- */
public ManagedComponentDeployer(ProfileServiceConnection profileServiceConnection, PackageDownloader downloader) {
this.downloader = downloader;
this.profileServiceConnection = profileServiceConnection;
@@ -120,9 +115,9 @@ public class ManagedComponentDeployer implements Deployer {
deploymentManager.loadProfile(FARM_PROFILE_KEY);
}
- String[] deployedArchives;
+ String[] deploymentNames;
try {
- deployedArchives = DeploymentUtils.deployArchive(deploymentManager, archiveFile, deployExploded);
+ deploymentNames = DeploymentUtils.deployArchive(deploymentManager, archiveFile, deployExploded);
} finally {
// Make sure to switch back to the 'applications' profile if we switched to the 'farm' profile above.
if (deployFarmed) {
@@ -130,62 +125,72 @@ public class ManagedComponentDeployer implements Deployer {
}
}
- //if deployed exploded, we need to store the sha of source package for correct versioning
+ if (deploymentNames == null || deploymentNames.length != 1) {
+ throw new RuntimeException("deploy operation returned invalid result: " + deploymentNames);
+ }
+
+ // e.g.: vfszip:/C:/opt/jboss-6.0.0.Final/server/default/deploy/foo.war
+ String deploymentName = deploymentNames[0];
+
+ // If deployed exploded, we need to store the SHA of source package in META-INF/MANIFEST.MF for correct
+ // versioning.
if (deployExploded) {
- for (String archive : deployedArchives) {
-
- String shaString = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
- .getDigestString(archiveFile);
-
- URI deployePackageURI = URI.create(archive);
- // e.g.: foo.war
- String path = deployePackageURI.getPath();
- File location = new File(path);
- //We've located the deployed
- if ((location != null) && (location.isDirectory())) {
- File manifestFile = new File(location, "META-INF/MANIFEST.MF");
- Manifest manifest;
- if (manifestFile.exists()) {
- FileInputStream inputStream = new FileInputStream(manifestFile);
- manifest = new Manifest(inputStream);
- inputStream.close();
- } else {
- File metaInf = new File(location, "META-INF");
- if (!metaInf.exists())
- if (!metaInf.mkdir())
- throw new Exception("Could not create directory " + location + "META-INF.");
-
- manifestFile = new File(metaInf, "MANIFEST.MF");
- manifest = new Manifest();
- }
- Attributes attribs = manifest.getMainAttributes();
- attribs.putValue("RHQ-Sha256", shaString);
- FileOutputStream outputStream = new FileOutputStream(manifestFile);
- manifest.write(outputStream);
- outputStream.close();
+ MessageDigestGenerator sha256Generator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String shaString = sha256Generator.calcDigestString(archiveFile);
+ URI deploymentURI = URI.create(deploymentName);
+ // e.g.: /C:/opt/jboss-6.0.0.Final/server/default/deploy/foo.war
+ String deploymentPath = deploymentURI.getPath();
+ File deploymentFile = new File(deploymentPath);
+ if (deploymentFile.isDirectory()) {
+ File manifestFile = new File(deploymentFile, "META-INF/MANIFEST.MF");
+ Manifest manifest;
+ if (manifestFile.exists()) {
+ FileInputStream inputStream = new FileInputStream(manifestFile);
+ manifest = new Manifest(inputStream);
+ inputStream.close();
+ } else {
+ File metaInf = new File(deploymentFile, "META-INF");
+ if (!metaInf.exists())
+ if (!metaInf.mkdir())
+ throw new Exception("Could not create directory " + deploymentFile + "META-INF.");
+
+ manifestFile = new File(metaInf, "MANIFEST.MF");
+ manifest = new Manifest();
}
+ Attributes attribs = manifest.getMainAttributes();
+ attribs.putValue("RHQ-Sha256", shaString);
+ FileOutputStream outputStream = new FileOutputStream(manifestFile);
+ manifest.write(outputStream);
+ outputStream.close();
+ } else {
+ LOG.error("Exploded deployment '" + deploymentFile
+ + "' does not exist or is not a directory - unable to add RHQ versioning metadata to META-INF/MANIFEST.MF.");
}
}
+ // Reload the management view to pickup the ManagedDeployment for the app we just deployed.
ManagementView managementView = this.profileServiceConnection.getManagementView();
managementView.load();
- for (String deployedArchive : deployedArchives) {
- ManagedDeployment managedDeployment;
- try {
- managedDeployment = managementView.getDeployment(deployedArchive);
- } catch (NoSuchDeploymentException e) {
- LOG.error("Failed to find managed deployment '" + deployedArchive + "' after deploying '"
- + archiveName + "'.");
- continue;
- }
+
+ ManagedDeployment managedDeployment = null;
+ try {
+ managedDeployment = managementView.getDeployment(deploymentName);
+ } catch (NoSuchDeploymentException e) {
+ LOG.error("Failed to find managed deployment '" + deploymentName + "' after deploying '"
+ + archiveName + "', so cannot start the application.");
+ createResourceReport.setStatus(CreateResourceStatus.INVALID_ARTIFACT);
+ createResourceReport.setErrorMessage("Unable to start application '" + deploymentName
+ + "' after deploying it, since lookup of the associated ManagedDeployment failed.");
+ }
+ if (managedDeployment != null) {
DeploymentState state = managedDeployment.getDeploymentState();
if (state != DeploymentState.STARTED) {
// The app failed to start - do not consider this a FAILURE, since it was at least deployed
// successfully. However, set the status to INVALID_ARTIFACT and set an error message, so
// the user is informed of the condition.
createResourceReport.setStatus(CreateResourceStatus.INVALID_ARTIFACT);
- createResourceReport.setErrorMessage("Failed to start application '" + deployedArchive + "' after deploying it.");
- break;
+ createResourceReport.setErrorMessage("Failed to start application '" + deploymentName
+ + "' after deploying it.");
}
}
commit ff1fc54e0d3c744c5a66172d375eb44dca31e631
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Fri Jul 29 09:03:56 2011 -0400
BZ:726502,717526: removing deprecated content from the remote interface as duplicate but deprecated names causes non-unique message signatures which creates invalid wsdl.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
index 0883859..d92883f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerRemote.java
@@ -47,64 +47,6 @@ import org.rhq.enterprise.server.system.ServerVersion;
public interface ResourceFactoryManagerRemote {
/**
- * @Deprecated
- *
- * Use new signature with timeout parameter:
- * @{link {@link #createPackageBackedResource(Subject, int, int, String, Configuration, String, String, Integer, Configuration, byte[], Integer)}
- */
- @WebMethod
- CreateResourceHistory createResource( //
- @WebParam(name = "subject") Subject subject, //
- @WebParam(name = "parentResourceId") int parentResourceId, //
- @WebParam(name = "resourceTypeId") int resourceTypeId, //
- @WebParam(name = "resourceName") String resourceName, //
- @WebParam(name = "pluginConfiguration") Configuration pluginConfiguration, //
- @WebParam(name = "resourceConfiguration") Configuration resourceConfiguration);
-
- /**
- * @Deprecated
- *
- * Use new signature with timeout parameter:
- * @{link {@link #createPackageBackedResource(Subject, int, int, String, Configuration, String, String, Integer, Configuration, byte[], Integer)}
- */
- @WebMethod
- CreateResourceHistory createPackageBackedResource(//
- @WebParam(name = "subject") Subject subject, //
- @WebParam(name = "parentResourceId") int parentResourceId, //
- @WebParam(name = "newResourceTypeId") int newResourceTypeId, //
- @WebParam(name = "newResourceName") String newResourceName, //
- @WebParam(name = "pluginConfiguration")//
- @XmlJavaTypeAdapter(value = ConfigurationAdapter.class)//
- Configuration pluginConfiguration, //
- @WebParam(name = "packageName") String packageName, //
- @WebParam(name = "packageVersion") String packageVersion, //
- @WebParam(name = "architectureId") Integer architectureId, //
- @WebParam(name = "deploymentTimeConfiguration")//
- @XmlJavaTypeAdapter(value = ConfigurationAdapter.class)//
- Configuration deploymentTimeConfiguration, //
- @WebParam(name = "packageBits") byte[] packageBits);
-
- /**
- * @Deprecated
- *
- * Use new signature with timeout parameter:
- * @{link {@link #createPackageBackedResourceViaPackageVersion(Subject, int, int, String, Configuration, Configuration, int, Integer)
- */
- @WebMethod
- public CreateResourceHistory createPackageBackedResourceViaPackageVersion(//
- @WebParam(name = "subject") Subject subject, //
- @WebParam(name = "parentResourceId") int parentResourceId, //
- @WebParam(name = "newResourceTypeId") int newResourceTypeId, //
- @WebParam(name = "newResourceName") String newResourceName, //
- @WebParam(name = "pluginConfiguration")//
- @XmlJavaTypeAdapter(value = ConfigurationAdapter.class)//
- Configuration pluginConfiguration, //
- @WebParam(name = "deploymentTimeConfiguration")//
- @XmlJavaTypeAdapter(value = ConfigurationAdapter.class)//
- Configuration deploymentTimeConfiguration, //
- @WebParam(name = "packageVersionId") int packageVersionId);
-
- /**
* Creates a new physical resource. The resource will be created as a child of the specified parent. In other words,
* the resource component of the indicated parent will be used to create the new resource. This call should only be
* made for resource types that are defined with a create/delete policy of {@link CreateDeletePolicy#BOTH} or
commit b38642e2f6dc7ea6ada5781440c7580336b38af6
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 23:47:32 2011 -0400
[coverity] fix NPE
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java
index 60d6b0f..a57c686 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java
@@ -20,7 +20,6 @@ package org.rhq.enterprise.server.alert;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -307,24 +306,26 @@ public class AlertNotificationManagerBean implements AlertNotificationManagerLoc
public boolean finalizeNotifications(Subject subject, List<AlertNotification> notifications) {
boolean hasErrors = false;
-
+
AlertSenderPluginManager pluginManager = alertManager.getAlertPluginManager();
-
- for(AlertNotification notification : notifications) {
+
+ for (AlertNotification notification : notifications) {
AlertSender<?> sender = pluginManager.getAlertSenderForNotification(notification);
-
- AlertSenderValidationResults validation = sender.validateAndFinalizeConfiguration(subject);
-
- notification.setConfiguration(validation.getAlertParameters());
- notification.setExtraConfiguration(validation.getExtraParameters());
-
- hasErrors = hasErrors || hasErrors(validation.getAlertParameters()) ||
- hasErrors(validation.getExtraParameters());
- }
-
+
+ if (sender != null) {
+ AlertSenderValidationResults validation = sender.validateAndFinalizeConfiguration(subject);
+
+ notification.setConfiguration(validation.getAlertParameters());
+ notification.setExtraConfiguration(validation.getExtraParameters());
+
+ hasErrors = hasErrors || hasErrors(validation.getAlertParameters())
+ || hasErrors(validation.getExtraParameters());
+ }
+ }
+
return !hasErrors;
}
-
+
public int cleanseAlertNotificationBySubject(int subjectId) {
return cleanseParameterValueForAlertSender("System Users", "subjectId", String.valueOf(subjectId));
}
@@ -335,17 +336,17 @@ public class AlertNotificationManagerBean implements AlertNotificationManagerLoc
public void massReconfigure(List<Integer> alertNotificationIds, Map<String, String> newConfigurationValues) {
Query query = entityManager.createNamedQuery(AlertNotification.QUERY_UPDATE_PARAMETER_FOR_NOTIFICATIONS);
-
+
query.setParameter("alertNotificationIds", alertNotificationIds);
-
- for(Map.Entry<String, String> entry : newConfigurationValues.entrySet()) {
+
+ for (Map.Entry<String, String> entry : newConfigurationValues.entrySet()) {
query.setParameter("propertyName", entry.getKey());
query.setParameter("propertyValue", entry.getValue());
-
+
query.executeUpdate();
}
}
-
+
private int cleanseParameterValueForAlertSender(String senderName, String propertyName, String valueToCleanse) {
Query query = entityManager.createNamedQuery(AlertNotification.QUERY_CLEANSE_PARAMETER_VALUE_FOR_ALERT_SENDER);
query.setParameter("senderName", senderName);
@@ -357,43 +358,43 @@ public class AlertNotificationManagerBean implements AlertNotificationManagerLoc
private boolean hasErrors(AbstractPropertyMap configuration) {
if (configuration instanceof PropertyMap) {
- if (((PropertyMap)configuration).getErrorMessage() != null) {
+ if (((PropertyMap) configuration).getErrorMessage() != null) {
return true;
}
}
-
- for(Map.Entry<String, Property> entry : configuration.getMap().entrySet()) {
+
+ for (Map.Entry<String, Property> entry : configuration.getMap().entrySet()) {
if (hasErrors(entry.getValue())) {
return true;
}
}
-
+
return false;
}
-
+
private boolean hasErrors(PropertyList list) {
if (list.getErrorMessage() != null) {
return true;
}
-
- for(Property p : list.getList()) {
+
+ for (Property p : list.getList()) {
if (hasErrors(p)) {
return true;
}
}
-
+
return false;
}
-
+
private boolean hasErrors(Property property) {
if (property instanceof PropertySimple) {
return property.getErrorMessage() != null;
} else if (property instanceof PropertyList) {
return hasErrors((PropertyList) property);
} else if (property instanceof PropertyMap) {
- return hasErrors((AbstractPropertyMap)property);
+ return hasErrors((AbstractPropertyMap) property);
} else {
return false;
}
- }
+ }
}
commit 9537fe73100bcef9054098b2fa0f41f43b108e9d
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 23:44:09 2011 -0400
[coverity] fix NPE
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentConfiguration.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentConfiguration.java
index 3db9170..3f07f8b 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentConfiguration.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentConfiguration.java
@@ -661,6 +661,13 @@ public class AgentConfiguration {
long[] ret_params = isClientSenderCommandSpoolFileParamsValueValid(value);
+ // If the config was invalid, immediately fall back to our default just so we don't bomb out with a NPE later.
+ // We are guaranteed not to get a null returned if we pass in the hardcoded default params.
+ // The above method will have already logged a warning for us.
+ if (ret_params == null) {
+ ret_params = isClientSenderCommandSpoolFileParamsValueValid(AgentConfigurationConstants.DEFAULT_CLIENT_SENDER_COMMAND_SPOOL_FILE_PARAMS);
+ }
+
return ret_params;
}
@@ -1229,7 +1236,6 @@ public class AgentConfiguration {
return config;
}
-
/**
* This returns the agent's security token that it needs to send with its commands to the server. If <code>
* null</code>, it means the agent has not yet been registered with the server.
commit 7fd8a41c6bf1f3327e968611c5fb0452e6f455a4
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 23:29:58 2011 -0400
[coverity] fix NPE
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
index 85f5e92..5860fb6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
@@ -53,8 +53,8 @@ import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceT
import org.rhq.enterprise.gui.coregui.client.menu.MenuBarView;
import org.rhq.enterprise.gui.coregui.client.report.ReportTopView;
import org.rhq.enterprise.gui.coregui.client.report.tag.TaggedView;
-import org.rhq.enterprise.gui.coregui.client.test.TestRemoteServiceStatisticsView;
import org.rhq.enterprise.gui.coregui.client.test.TestDataSourceResponseStatisticsView;
+import org.rhq.enterprise.gui.coregui.client.test.TestRemoteServiceStatisticsView;
import org.rhq.enterprise.gui.coregui.client.test.TestTopView;
import org.rhq.enterprise.gui.coregui.client.util.ErrorHandler;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
@@ -524,10 +524,12 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String>, Event.Na
}
}.run(); // fire the timer immediately
} else {
- if (this.currentCanvas instanceof BookmarkableView) {
- ((BookmarkableView) this.currentCanvas).renderView(viewPath.next());
- } else {
- this.currentCanvas.markForRedraw();
+ if (this.currentCanvas != null) {
+ if (this.currentCanvas instanceof BookmarkableView) {
+ ((BookmarkableView) this.currentCanvas).renderView(viewPath.next());
+ } else {
+ this.currentCanvas.markForRedraw();
+ }
}
}
}
commit 47dad6a1bae981765565df5f6b25e0e2aacbc7a3
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 23:06:00 2011 -0400
[coverity] close initial contexts
diff --git a/modules/test-utils/src/main/java/org/rhq/test/JPAUtils.java b/modules/test-utils/src/main/java/org/rhq/test/JPAUtils.java
index b385473..cff3343 100644
--- a/modules/test-utils/src/main/java/org/rhq/test/JPAUtils.java
+++ b/modules/test-utils/src/main/java/org/rhq/test/JPAUtils.java
@@ -24,8 +24,13 @@ public class JPAUtils {
public static EntityManager lookupEntityManager() {
try {
- return ((EntityManagerFactory) getInitialContext().lookup("java:/RHQEntityManagerFactory"))
- .createEntityManager();
+ InitialContext initialContext = getInitialContext();
+ try {
+ return ((EntityManagerFactory) initialContext.lookup("java:/RHQEntityManagerFactory"))
+ .createEntityManager();
+ } finally {
+ initialContext.close();
+ }
} catch (NamingException e) {
throw new RuntimeException("Failed to load entity manager", e);
}
@@ -33,7 +38,12 @@ public class JPAUtils {
public static TransactionManager lookupTransactionManager() {
try {
- return (TransactionManager) getInitialContext().lookup("java:/TransactionManager");
+ InitialContext initialContext = getInitialContext();
+ try {
+ return (TransactionManager) initialContext.lookup("java:/TransactionManager");
+ } finally {
+ initialContext.close();
+ }
} catch (NamingException e) {
throw new RuntimeException("Failed to load transaction manager", e);
}
commit a0dcfe490b595b9c950eff69a1d4efa9410482d9
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 23:04:17 2011 -0400
[coverity] fix NPE
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
index 38d0fa5..2321fd3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
@@ -591,8 +591,8 @@ public class ResourceGroupTreeView extends LocatableVLayout implements Bookmarka
public void renderView(ViewPath viewPath) {
currentViewId = viewPath.getCurrent();
- String currentViewIdPath = currentViewId.getPath();
if (this.currentViewId != null) {
+ String currentViewIdPath = currentViewId.getPath();
if ("AutoCluster".equals(currentViewIdPath)) {
// Move the currentViewId to the ID portion to play better with other code
currentViewId = viewPath.getNext();
commit 5cd3024ccd2ef2712864f1331a7500d5b7abe1d8
Merge: ed7aad1 da99d5b
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 22:55:15 2011 -0400
Merge commit 'origin/master' into code-smell
Conflicts:
modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java
commit da99d5b85bd144692afa90f158b5d09cd486f721
Merge: 01286aa b35ba5b
Author: Rafael Soares <rafaelcba(a)gmail.com>
Date: Thu Jul 28 23:16:43 2011 -0300
--ammend
diff --cc modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
index 26f33b9,fa86006..db58050
--- 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
@@@ -393,15 -394,15 +393,15 @@@ util_rpcManager_activeRequests = {0} Re
util_userPerm_loadFailGlobal = Falha ao carregar permiss\u00F5es globais - nenhuma permiss\u00E3o concedida.
util_userPerm_loadFailGroup = Falha ao carregar suas permiss\u00F5es para o Grupo de Recursos com id [{0}] - nenhuma permiss\u00E3o concedida.
util_userPerm_loadFailResource = Falha ao carregar suas permiss\u00F5es para o Recurso com id [{0}] - nenhuma permiss\u00E3o concedida.
- util_userSession_loadFailSubject = UserSessionManager\\\\\\\\: Falha ao carregar a credencial do usu\u00E1rio
+ util_userSession_loadFailSubject = UserSessionManager: Falha ao carregar a credencial do usu\u00E1rio
util_userSession_logoutFail = Falha durante o logout.
util_widgetsField_unlimited = Ilimitado
-view_aboutBox_allRightsReserved = Todos os Direitos Reservados.~
-view_aboutBox_buildNumber = N\u00FAmero do Build:~
-view_aboutBox_failedToLoad = Falha ao carregar informa\u00E7oes do produto.~
-view_aboutBox_homepage = P\u00E1gina Inicial~
-view_aboutBox_jbossByRedHat = JBoss by Red Hat~
-view_aboutBox_title = Sobre {0}~
+view_aboutBox_allRightsReserved = Todos os Direitos Reservados.
- view_aboutBox_buildNumber = N\u00FAmero do Build\\\\\\\\:
++view_aboutBox_buildNumber = N\u00FAmero do Build:
+view_aboutBox_failedToLoad = Falha ao carregar informa\u00E7oes do produto.
+view_aboutBox_homepage = P\u00E1gina Inicial
+view_aboutBox_jbossByRedHat = JBoss by Red Hat
+view_aboutBox_title = Sobre {0}
view_aboutBox_version = Vers\u00E3o:
view_adminConfig_downloads = Downloads
view_adminConfig_license = Licen\u00E7a
@@@ -850,11 -851,9 +850,11 @@@ view_alerts_loadFailed = Falha ao carre
view_alerts_table_filter_priority = Filtro de Prioridade
view_alerts_table_title_group = Hist\u00F3rico de Alertas do Grupo
view_alerts_table_title_resource = Hist\u00F3rico de Alertas do Recurso
-view_autoDiscoveryQ_committed = Committed
-view_autoDiscoveryQ_confirmSelect = Also select the platform children?
-view_autoDiscoveryQ_deleted = Deleted
+view_autoDiscoveryQ_committed = Registrado
+view_autoDiscoveryQ_confirmSelect = Selecionar recursos filhos desta plataforma?
+view_autoDiscoveryQ_confirmSelectAll = Selecionar recursos filhos para cada plataforma?
- view_autoDiscoveryQ_deleted = Exclu\\\\u00EDdo
++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
@@@ -873,195 -870,193 +873,195 @@@ view_autoDiscoveryQ_loadFailure = Falh
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_noperm = (Required manage inventory permissions missing. See Administrator to change)~
-view_autoDiscoveryQ_showStatus = Show
++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
view_autoDiscoveryQ_title = Fila de Autodescoberta
view_autoDiscoveryQ_unignore = N\u00E3o ignorar
view_autoDiscoveryQ_unignoreFailure = Falha ao reimportar os recursos
-view_autoDiscoveryQ_unignoreSuccessful = You have successfully unignored the selected resources.~
-view_autoDiscoveryQ_uninventoried = Uninventoried
-view_bundleVersion_loadFailure = Failed to load bundle version data~
-view_bundle_bundle = Bundle~
-view_bundle_bundleDeployment = Bundle Deployment~
-view_bundle_bundleDeployments = Bundle Deployments~
-view_bundle_bundleDestinations = Bundle Destinations~
-view_bundle_bundleFiles = Bundle Files~
-view_bundle_bundleType = Bundle Type~
-view_bundle_bundleVersion = Bundle Version~
-view_bundle_bundleVersions = Bundle Versions~
-view_bundle_bundles = Bundles~
-view_bundle_createWizard_bundleDistro = Bundle Distribution~
-view_bundle_createWizard_cancelFailure = Failed to fully cancel the creation of bundle [{0}], version = [{1}] - the bundle may still exist in the database~
-view_bundle_createWizard_cancelSuccessful = Canceled the creation of bundle [{0}], version = [{1}]~
-view_bundle_createWizard_clickToUploadRecipe = Click to upload a recipe file~
-view_bundle_createWizard_createFailure = Failed to create the bundle~
-view_bundle_createWizard_createSuccessful = You have successfully created a bundle named [{0}] with a version of [{1}]~
-view_bundle_createWizard_enterRecipe = Please supply a valid recipe
-view_bundle_createWizard_enterUrl = Please enter a valid URL where the bundle distribution file can be downloaded from
-view_bundle_createWizard_failedToUploadDistroFile = Failed to upload bundle distribution file~
-view_bundle_createWizard_failedToUploadFile = Failed to upload bundle file~
-view_bundle_createWizard_loadBundleFileFailure = Cannot obtain bundle file information from server~
-view_bundle_createWizard_noAdditionalFilesNeeded = No additional files need to be uploaded for this bundle~
-view_bundle_createWizard_noBundleTypesAvail = No bundle types are available~
-view_bundle_createWizard_noBundleTypesSupported = No bundle types are supported - you must deploy a valid plugin that supports bundle deployments~
-view_bundle_createWizard_provideBundleDistro = Provide a Bundle Distribution
-view_bundle_createWizard_recipeOption = Recipe~
-view_bundle_createWizard_title = Create Bundle~
-view_bundle_createWizard_uploadInProgress = Upload is in progress... This can take several minutes for large files~
-view_bundle_createWizard_uploadOption = Upload~
-view_bundle_createWizard_uploadStepName = Provide a Bundle Distribution~
-view_bundle_createWizard_urlOption = URL~
-view_bundle_createWizard_windowTitle = Bundle Creation Wizard~
-view_bundle_createWizard_youMustChooseOne = You must choose one option in order to create a bundle!
-view_bundle_deleteConfirm = Are you sure you want to delete this bundle? All versions, destinations and deployments for this bundle will also be deleted.
-view_bundle_deploy = Deploy~
-view_bundle_deployDir = Deploy Directory~
-view_bundle_deployWizard_deployStep = Deploy Bundle to Destination Platforms~
-view_bundle_deployWizard_deploying = Deploying...~
-view_bundle_deployWizard_deploymentCreated = Created Deployment...~
-view_bundle_deployWizard_deploymentCreatedDetail = Created deployment [{0}] description [{1}]~
-view_bundle_deployWizard_deploymentCreatedDetail_concise = You have created the deployment [{0}]
-view_bundle_deployWizard_deploymentScheduled = Bundle Deployment Scheduled!~
-view_bundle_deployWizard_deploymentScheduledDetail = Scheduled bundle deployment [{0}] destination group [{1}]~
-view_bundle_deployWizard_deploymentScheduledDetail_concise = You have scheduled the bundle deployment
-view_bundle_deployWizard_destinationCreatedDetail = Created destination [{0}] description [{1}]~
-view_bundle_deployWizard_destinationCreatedDetail_concise = You have created the destination [{0}]
-view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel:
-view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist. (Note, for an existing destination deploy from the Destination view)~
-view_bundle_deployWizard_error_11 = Failed to find defined deployments.~
-view_bundle_deployWizard_error_12 = Failed to find defined bundles.~
-view_bundle_deployWizard_error_2 = Failed to delete new destination on Cancel:
-view_bundle_deployWizard_error_3 = Failed to Schedule Deployment!~
-view_bundle_deployWizard_error_4 = Failed to schedule deployment: {0}~
-view_bundle_deployWizard_error_5 = Failed to Create Deployment!~
-view_bundle_deployWizard_error_6 = Failed to create deployment: {0}~
-view_bundle_deployWizard_error_7 = Failed to get deployment name.~
-view_bundle_deployWizard_error_8 = You must select a valid resource group from the drop down~
-view_bundle_deployWizard_error_9 = Failed to delete new destination in nextPage:~
-##view_bundle_deployWizard_error_noBundleConfig = Failed to obtain bundle target information. Is the group you selected a valid compatible group that can be targeted for bundle deployments?
-view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle version.~
-view_bundle_deployWizard_getConfigStep = Set Deployment Configuration~
-view_bundle_deployWizard_getDestStep = New Destination~
-##view_bundle_deployWizard_getDest_deployDir = Deployment Directory
-##view_bundle_deployWizard_getDest_deployDir_help = The directory where the bundle will be deployed. This directory will be the same for all deployments on all resources but it is relative to the destination base directory location. This means that the absolute directory may have a different path on the different target resources depending on where the base location is on all the different target resources.
-##view_bundle_deployWizard_getDest_desc = Destination Description
-##view_bundle_deployWizard_getDest_destBaseDirName = Base Location
-##view_bundle_deployWizard_getDest_group_help = The group whose members will be the destination targets for all bundle deployments. Only compatible groups that contain resources that support bundle deployments are selectable.
-##view_bundle_deployWizard_getDest_name = Destination Name
-##view_bundle_deployWizard_getDest_name_help = The name of the destination, which will identify a particular group of resources and the destination directory on those resources for a particular bundle.
-view_bundle_deployWizard_getInfoStep = Provide Deployment Information~
-view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on destination platform)~
-view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description~
-view_bundle_deployWizard_getInfo_deploymentName = Deployment Name~
-view_bundle_deployWizard_getOptionsStep = Deploy Options~
-view_bundle_deployWizard_getOptions_deployLater = Deploy Later~
-view_bundle_deployWizard_getOptions_deployNow = Deploy Now~
-view_bundle_deployWizard_getOptions_deployTime = Deployment Time~
-view_bundle_deployWizard_selectBundleStep = Select Deployment Bundle~
-view_bundle_deployWizard_selectBundle_single = Select only a single bundle for deployment.~
-view_bundle_deployWizard_selectVersionStep = Select Deployment Bundle Version~
-view_bundle_deployWizard_selectVersion_latest = Latest Version [{0}]~
-view_bundle_deployWizard_selectVersion_live = Live Version [{0}]~
-view_bundle_deployWizard_selectVersion_select = Select Version from List:~
-view_bundle_deployWizard_title = Bundle Deployment Wizard~
-view_bundle_deploy_action = Action~
-view_bundle_deploy_backButton = Back to Destination~
-view_bundle_deploy_clickForError = Click the icon for the error message
-view_bundle_deploy_deleteConfirm = Are you sure you want to delete this bundle deployment?
-view_bundle_deploy_deleteFailure = Failed to delete the bundle deployment [{0}]
-view_bundle_deploy_deleteSuccessful = You successfully deleted the bundle deployment [{0}]
-view_bundle_deploy_deployedBy = Deployed By
-view_bundle_deploy_deploymentPlatforms = Deployment Resource
-view_bundle_deploy_installDetails = Install Details~
-view_bundle_deploy_loadBundleFailure = Failed to find bundle~
-view_bundle_deploy_loadDeployFailure = Failed to load bundle deployments~
-view_bundle_deploy_loadFailure = Failed to load bundle deployment~
-view_bundle_deploy_name = Deployment Name~
-view_bundle_deploy_selectARow = Select a row to show installation details~
-view_bundle_deploy_tagUpdateFailure = Failed to update bundle deployment tags~
-view_bundle_deploy_tagUpdateSuccessful = You have successfully updated the bundle deployment tags~
-view_bundle_deploy_time = Deployment Time~
-view_bundle_deployed = Deployed~
-view_bundle_deployments = Deployments~
-view_bundle_dest_backToBundle = Back to Bundle~
-##view_bundle_dest_baseDirName = Base Location
-view_bundle_dest_created = Created~
-view_bundle_dest_deleteConfirm = Are you sure you want to delete this bundle destination? This only deletes it from the database; all bundle content that was deployed to this destination on remote machines will remain.
-view_bundle_dest_deleteFailure = Failed to delete the bundle destination [{0}]
-view_bundle_dest_deleteSuccessful = You successfully deleted the bundle destination [{0}]
-view_bundle_dest_deployDir = Deploy Directory~
-view_bundle_dest_group = Group~
-view_bundle_dest_lastDeployedVersion = Last Deployed Version~
-view_bundle_dest_lastDeploymentDate = Last Deployment Date~
-view_bundle_dest_lastDeploymentStatus = Last Deployment Status~
-view_bundle_dest_loadFailure = Failed to load bundle destinations~
-view_bundle_dest_loadFailureVersionInfo = Failed to load bundle destination deployed version information~
-view_bundle_dest_purgeConfirm = This will purge the bundle content from all remote machines. Are you sure you want to do this?
-view_bundle_dest_purgeFailure = Failed to purge the bundle destination [{0}] from some or all of the remote machines.
-view_bundle_dest_purgeSuccessful = You successfully purged the bundle destination [{0}] from all of the remote machines.
-view_bundle_dest_revertConfirm = This will revert all remote machines back to the previous bundle deployment. Are you sure you want to do this?
-view_bundle_dest_tagUpdateFailure = Failed to update bundle destination tags~
-view_bundle_dest_tagUpdateSuccessful = You have successfully updated the bundle destination tags~
-view_bundle_destinations = Destinations~
-view_bundle_fileListView_fileSize = File Size~
-view_bundle_fileListView_loadFailure = Failed to load bundle file data~
+view_autoDiscoveryQ_unignoreInProgress = Removendo status de recurso ignorado...
+view_autoDiscoveryQ_unignoreSuccessful = Status de recurso ignorado removido com sucesso para os recursos selecionados.
- view_autoDiscoveryQ_uninventoried = Removido do invent\\\\u00E1rio
++view_autoDiscoveryQ_uninventoried = Removido do invent\u00E1rio
+view_bundleVersion_loadFailure = Falha ao carregar dados da vers\u00E3o do bundle
+view_bundle_bundle = Bundle
- view_bundle_bundleDeployment = Implanta\\\\u00E7\\\\u00E3o do Bundle
- view_bundle_bundleDeployments = Implanta\\\\u00E7\\\\u00F5es do Bundle
- view_bundle_bundleDestinations = Destina\\\\u00E7\\\\u00E3o do Bundle
++view_bundle_bundleDeployment = Implanta\u00E7\u00E3o do Bundle
++view_bundle_bundleDeployments = Implanta\u00E7\u00F5es do Bundle
++view_bundle_bundleDestinations = Destina\u00E7\u00E3o do Bundle
+view_bundle_bundleFiles = Arquivos do Bundle
+view_bundle_bundleType = Tipo de Bundle
- view_bundle_bundleVersion = Vers\\\\u00E3o do Bundle
- view_bundle_bundleVersions = Vers\\\\u00F5es do Bundle
++view_bundle_bundleVersion = Vers\u00E3o do Bundle
++view_bundle_bundleVersions = Vers\u00F5es do Bundle
+view_bundle_bundles = Bundles
- view_bundle_createWizard_bundleDistro = Distribui\\\\u00E7\\\\u00E3o do Bundle
- view_bundle_createWizard_cancelFailure = Falha ao cancelar a cria\\\\u00E7\\\\u00E3o do bundle [{0}], vers\\\\u00E3o = [{1}] - talvez o bundle ainda esteja gravado no banco de dados
- view_bundle_createWizard_cancelSuccessful = Cria\\\\u00E7\\\\u00E3o do bundle [{0}] cancelada, vers\\\\u00E3o = [{1}]
++view_bundle_createWizard_bundleDistro = Distribui\u00E7\u00E3o do Bundle
++view_bundle_createWizard_cancelFailure = Falha ao cancelar a cria\u00E7\u00E3o do bundle [{0}], vers\u00E3o = [{1}] - talvez o bundle ainda esteja gravado no banco de dados
++view_bundle_createWizard_cancelSuccessful = Cria\u00E7\u00E3o do bundle [{0}] cancelada, vers\u00E3o = [{1}]
+view_bundle_createWizard_clickToUploadRecipe = Clique para fazer o upload do arquivo de script
+view_bundle_createWizard_createFailure = Falha ao criar o bundle
- view_bundle_createWizard_createSuccessful = Bundle [{0}] vers\\\\u00E3o [{1}] criado com sucesso
- view_bundle_createWizard_enterRecipe = Favor fornecer um script v\\\\u00E1lido
- view_bundle_createWizard_enterUrl = Favor informar uma URL v\\\\u00E1lida para download do arquivo de distribui\\\\u00E7\\\\u00E3o do bundle
- view_bundle_createWizard_failedToUploadDistroFile = Falha ao fazer o upload do arquivo de distribui\\\\u00E7\\\\u00E3o do bundle.
++view_bundle_createWizard_createSuccessful = Bundle [{0}] vers\u00E3o [{1}] criado com sucesso
++view_bundle_createWizard_enterRecipe = Favor fornecer um script v\u00E1lido
++view_bundle_createWizard_enterUrl = Favor informar uma URL v\u00E1lida para download do arquivo de distribui\u00E7\u00E3o do bundle
++view_bundle_createWizard_failedToUploadDistroFile = Falha ao fazer o upload do arquivo de distribui\u00E7\u00E3o do bundle.
+view_bundle_createWizard_failedToUploadFile = Falha ao fazer o upload do bundle
- view_bundle_createWizard_loadBundleFileFailure = N\\\\u00E3o foi poss\\\\u00EDvel obter infoma\\\\u00E7\\\\u00F5es sobre o arquivo de bundle
- view_bundle_createWizard_noAdditionalFilesNeeded = N\\\\u00E3o \\\\u00E9 necess\\\\u00E1rio fazer upload de mais arquivos para este bundle
- view_bundle_createWizard_noBundleTypesAvail = Tipos de bundle n\\\\u00E3o dispon\\\\u00EDveis
- view_bundle_createWizard_noBundleTypesSupported = N\\\\u00E3o h\\\\u00E1 suporte para tipos de bundle - voc\\\\u00EA deve fazer o deploy de um plugin v\\\\u00E1lido para este tipo de implanta\\\\u00E7\\\\u00E3o
- view_bundle_createWizard_provideBundleDistro = Forne\\\\u00E7a um pacote de distribui\\\\u00E7\\\\u00E3o para o Bundle
++view_bundle_createWizard_loadBundleFileFailure = N\u00E3o foi poss\u00EDvel obter infoma\u00E7\u00F5es sobre o arquivo de bundle
++view_bundle_createWizard_noAdditionalFilesNeeded = N\u00E3o \u00E9 necess\u00E1rio fazer upload de mais arquivos para este bundle
++view_bundle_createWizard_noBundleTypesAvail = Tipos de bundle n\u00E3o dispon\u00EDveis
++view_bundle_createWizard_noBundleTypesSupported = N\u00E3o h\u00E1 suporte para tipos de bundle - voc\u00EA deve fazer o deploy de um plugin v\u00E1lido para este tipo de implanta\u00E7\u00E3o
++view_bundle_createWizard_provideBundleDistro = Forne\u00E7a um pacote de distribui\u00E7\u00E3o para o Bundle
+view_bundle_createWizard_recipeOption = Script
+view_bundle_createWizard_title = Criar um Bundle
- view_bundle_createWizard_uploadInProgress = Realizando o upload... Esta opera\\\\u00E7\\\\u00E3o pede demorar alguns minutos para arquivos grandes
++view_bundle_createWizard_uploadInProgress = Realizando o upload... Esta opera\u00E7\u00E3o pede demorar alguns minutos para arquivos grandes
+view_bundle_createWizard_uploadOption = Upload
- view_bundle_createWizard_uploadStepName = Fa\\\\u00E7a o upload dos arquivos do Bundle
++view_bundle_createWizard_uploadStepName = Fa\u00E7a o upload dos arquivos do Bundle
+view_bundle_createWizard_urlOption = URL
- view_bundle_createWizard_windowTitle = Assistente de Cria\\\\u00E7\\\\u00E3o do Bundle
- view_bundle_createWizard_youMustChooseOne = \\\\u00C9 necess\\\\u00E1rio escolher uma op\\\\u00E7\\\\u00E3o para criar um bundle.
- view_bundle_deleteConfirm = Tem certeza que deseja excluir este bundle? Todas as vers\\\\u00F5es, destina\\\\u00E7\\\\u00F5es e implanta\\\\u00E7\\\\u00F5es para este bundle ser\\\\u00E3o exclu\\\\u00EDdas.
++view_bundle_createWizard_windowTitle = Assistente de Cria\u00E7\u00E3o do Bundle
++view_bundle_createWizard_youMustChooseOne = \u00C9 necess\u00E1rio escolher uma op\u00E7\u00E3o para criar um bundle.
++view_bundle_deleteConfirm = Tem certeza que deseja excluir este bundle? Todas as vers\u00F5es, destina\u00E7\u00F5es e implanta\u00E7\u00F5es para este bundle ser\u00E3o exclu\u00EDdas.
+view_bundle_deploy = Deploy
- view_bundle_deployDir = Diret\\\\u00F3rio de Deploy
++view_bundle_deployDir = Diret\u00F3rio de Deploy
+view_bundle_deployWizard_deployStep = Implantar o Bundle nas Plataformas de Destino
+view_bundle_deployWizard_deploying = Implantando...
- view_bundle_deployWizard_deploymentCreated = Implanta\\\\u00E7\\\\u00E3o Criada...
- view_bundle_deployWizard_deploymentCreatedDetail = Implanta\\\\u00E7\\\\u00E3o [{0}] com a descri\\\\u00E7\\\\u00E3o [{1}] criada
- view_bundle_deployWizard_deploymentCreatedDetail_concise = Implanta\\\\u00E7\\\\u00E3o [{0}] criada
- view_bundle_deployWizard_deploymentScheduled = Implanta\\\\u00E7\\\\u00E3o do Bundle Agendada!
- view_bundle_deployWizard_deploymentScheduledDetail = Implanta\\\\u00E7\\\\u00E3o do bundle [{0}] agendada para o grupo de destino [{1}]
- view_bundle_deployWizard_deploymentScheduledDetail_concise = Implanta\\\\u00E7\\\\u00E3o do bundle agendada
- view_bundle_deployWizard_destinationCreatedDetail = Destina\\\\u00E7\\\\u00E3o [{0}] criada com a descri\\\\u00E7\\\\u00E3o [{1}]
- view_bundle_deployWizard_destinationCreatedDetail_concise = Destina\\\\u00E7\\\\u00E3o [{0}] criada
- view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel\nFalha ao excluir nova implanta\\\\u00E7\\\\u00E3o durante o cancelamento
- view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist. (Note, for an existing destination deploy from the Destination view)\nFalha ao criar destina\\\\u00E7\\\\u00E3o, talvez ela j\\\\u00E1 exista. (Nota: caso a destina\\\\u00E7\\\\u00E3o j\\\\u00E1 exista fa\\\\u00E7a a implanta\\\\u00E7\\\\u00E3o atrav\\\\u00E9s da vis\\\\u00E3o de Destina\\\\u00E7\\\\u00E3o)
- view_bundle_deployWizard_error_11 = Falha ao encontrar defini\\\\u00E7\\\\u00F5es de implanta\\\\u00E7\\\\u00F5es.
- view_bundle_deployWizard_error_12 = Falha ao encontrar defini\\\\u00E7\\\\u00F5es de bundles.
- view_bundle_deployWizard_error_2 = Falha ao excluir nova destina\\\\u00E7\\\\u00E3o durante o cancelamento
- view_bundle_deployWizard_error_3 = Falha ao agendar implanta\\\\u00E7\\\\u00E3o!
- view_bundle_deployWizard_error_4 = Falha ao agendar a implanta\\\\u00E7\\\\u00E3o: {0}
- view_bundle_deployWizard_error_5 = Falha ao criar a implanta\\\\u00E7\\\\u00E3o!
- view_bundle_deployWizard_error_6 = Falha ao criar a implanta\\\\u00E7\\\\u00E3o: {0}
- view_bundle_deployWizard_error_7 = Falha ao recuperar o nome da implanta\\\\u00E7\\\\u00E3o.
- view_bundle_deployWizard_error_8 = Selecione um grupo de recursos v\\\\u00E1lido da lista
- view_bundle_deployWizard_error_9 = Falha ao excluir a nova destina\\\\u00E7\\\\u00E3o
- view_bundle_deployWizard_error_noBundleConfig = Falha ao obter informa\\\\u00E7\\\\u00F5es sobre o destino do bundle. Verifique se o grupo selecionado \\\\u00E9 um grupo v\\\\u00E1lido de recursos compat\\\\u00EDveis para implanta\\\\u00E7\\\\u00E3o do bundle.
- view_bundle_deployWizard_getConfigSkip = N\\\\u00E3o \\\\u00E9 necess\\\\u00E1rio fornecer configura\\\\u00E7\\\\u00F5es para esta vers\\\\u00E3o do bundle.
- view_bundle_deployWizard_getConfigStep = Definir configura\\\\u00E7\\\\u00E3o da implanta\\\\u00E7\\\\u00E3o.
- view_bundle_deployWizard_getDestStep = Nova Destina\\u00E7\\u00E3o
- view_bundle_deployWizard_getDest_deployDir = Diret\\\\u00F3rio de Deploy
++view_bundle_deployWizard_deploymentCreated = Implanta\u00E7\u00E3o Criada...
++view_bundle_deployWizard_deploymentCreatedDetail = Implanta\u00E7\u00E3o [{0}] com a descri\u00E7\u00E3o [{1}] criada
++view_bundle_deployWizard_deploymentCreatedDetail_concise = Implanta\u00E7\u00E3o [{0}] criada
++view_bundle_deployWizard_deploymentScheduled = Implanta\u00E7\u00E3o do Bundle Agendada!
++view_bundle_deployWizard_deploymentScheduledDetail = Implanta\u00E7\u00E3o do bundle [{0}] agendada para o grupo de destino [{1}]
++view_bundle_deployWizard_deploymentScheduledDetail_concise = Implanta\u00E7\u00E3o do bundle agendada
++view_bundle_deployWizard_destinationCreatedDetail = Destina\u00E7\u00E3o [{0}] criada com a descri\u00E7\u00E3o [{1}]
++view_bundle_deployWizard_destinationCreatedDetail_concise = Destina\u00E7\u00E3o [{0}] criada
++view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel\nFalha ao excluir nova implanta\u00E7\u00E3o durante o cancelamento
++view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist. (Note, for an existing destination deploy from the Destination view)\nFalha ao criar destina\u00E7\u00E3o, talvez ela j\u00E1 exista. (Nota: caso a destina\u00E7\u00E3o j\u00E1 exista fa\u00E7a a implanta\u00E7\u00E3o atrav\u00E9s da vis\u00E3o de Destina\u00E7\u00E3o)
++view_bundle_deployWizard_error_11 = Falha ao encontrar defini\u00E7\u00F5es de implanta\u00E7\u00F5es.
++view_bundle_deployWizard_error_12 = Falha ao encontrar defini\u00E7\u00F5es de bundles.
++view_bundle_deployWizard_error_2 = Falha ao excluir nova destina\u00E7\u00E3o durante o cancelamento
++view_bundle_deployWizard_error_3 = Falha ao agendar implanta\u00E7\u00E3o!
++view_bundle_deployWizard_error_4 = Falha ao agendar a implanta\u00E7\u00E3o: {0}
++view_bundle_deployWizard_error_5 = Falha ao criar a implanta\u00E7\u00E3o!
++view_bundle_deployWizard_error_6 = Falha ao criar a implanta\u00E7\u00E3o: {0}
++view_bundle_deployWizard_error_7 = Falha ao recuperar o nome da implanta\u00E7\u00E3o.
++view_bundle_deployWizard_error_8 = Selecione um grupo de recursos v\u00E1lido da lista
++view_bundle_deployWizard_error_9 = Falha ao excluir a nova destina\u00E7\u00E3o
++view_bundle_deployWizard_error_noBundleConfig = Falha ao obter informa\u00E7\u00F5es sobre o destino do bundle. Verifique se o grupo selecionado \u00E9 um grupo v\u00E1lido de recursos compat\u00EDveis para implanta\u00E7\u00E3o do bundle.
++view_bundle_deployWizard_getConfigSkip = N\u00E3o \u00E9 necess\u00E1rio fornecer configura\u00E7\u00F5es para esta vers\u00E3o do bundle.
++view_bundle_deployWizard_getConfigStep = Definir configura\u00E7\u00E3o da implanta\u00E7\u00E3o.
++view_bundle_deployWizard_getDestStep = Nova Destina\u00E7\u00E3o
++view_bundle_deployWizard_getDest_deployDir = Diret\u00F3rio de Deploy
+view_bundle_deployWizard_getDest_deployDir_help = Diret\u00F3rio onde o bundle ser\u00E1 implantado. Este diret\u00F3rio ser\u00E1 o mesmo para todas as implanta\u00E7\u00F5es em todos os recursos, mas o caminho \u00E9 relativo ao diret\u00F3rio raiz definido para a destina\u00E7\u00E3o. Isto significa que o caminho absoluto do diret\u00F3rio pode diferir dependendo do local raiz definido para cada recurso alvo.
- view_bundle_deployWizard_getDest_desc = Descri\\\\u00E7\\\\u00E3o da Destina\\\\u00E7\\\\u00E3o
++view_bundle_deployWizard_getDest_desc = Descri\u00E7\u00E3o da Destina\u00E7\u00E3o
+view_bundle_deployWizard_getDest_destBaseDirName = Local Raiz
- view_bundle_deployWizard_getDest_group_help = Grupo cujo os membros ser\\u00E3o destinos de todas as implanta\\u00E7\\u00F5es de bundle. Somente grupos de recursos compat\\u00EDveis com suporte a implanta\\u00E7\\u00F5s de bundle podem ser selecionados.
- view_bundle_deployWizard_getDest_name = Nome da Destina\\u00E7\\u00E3o
- view_bundle_deployWizard_getDest_name_help = O nome da destina\\u00E7\\u00E3o que ser\\u00E1 utilizado para identificar um grupo espec\\u00EDfico de recursos bem como o diret\\u00F3rio de destino para determinado bundle.
- view_bundle_deployWizard_getInfoStep = Forne\\u00E7a as informa\\u00E7\\u00F5es referente a implanta\\u00E7\\u00E3o
- view_bundle_deployWizard_getInfo_clean = Limpar Implanta\\u00E7\\u00E3o? (apaga o conte\\u00FAdo do diret\\u00F3rio de deploy na plataforma de destino)
- view_bundle_deployWizard_getInfo_deploymentDesc = Descri\\u00E7\\u00E3o da Implanta\\u00E7\\u00E3o
- view_bundle_deployWizard_getInfo_deploymentName = Nome da Implanta\\u00E7\\u00E3o
- view_bundle_deployWizard_getOptionsStep = Op\\u00E7\\u00F5es de Implanta\\u00E7\\u00E3o
++view_bundle_deployWizard_getDest_group_help = Grupo cujo os membros ser\u00E3o destinos de todas as implanta\u00E7\u00F5es de bundle. Somente grupos de recursos compat\u00EDveis com suporte a implanta\u00E7\u00F5s de bundle podem ser selecionados.
++view_bundle_deployWizard_getDest_name = Nome da Destina\u00E7\u00E3o
++view_bundle_deployWizard_getDest_name_help = O nome da destina\u00E7\u00E3o que ser\u00E1 utilizado para identificar um grupo espec\u00EDfico de recursos bem como o diret\u00F3rio de destino para determinado bundle.
++view_bundle_deployWizard_getInfoStep = Forne\u00E7a as informa\u00E7\u00F5es referente a implanta\u00E7\u00E3o
++view_bundle_deployWizard_getInfo_clean = Limpar Implanta\u00E7\u00E3o? (apaga o conte\u00FAdo do diret\u00F3rio de deploy na plataforma de destino)
++view_bundle_deployWizard_getInfo_deploymentDesc = Descri\u00E7\u00E3o da Implanta\u00E7\u00E3o
++view_bundle_deployWizard_getInfo_deploymentName = Nome da Implanta\u00E7\u00E3o
++view_bundle_deployWizard_getOptionsStep = Op\u00E7\u00F5es de Implanta\u00E7\u00E3o
+view_bundle_deployWizard_getOptions_deployLater = Implantar mais tarde
+view_bundle_deployWizard_getOptions_deployNow = Implantar agora
- view_bundle_deployWizard_getOptions_deployTime = Tempo de Implanta\\u00E7\\u00E3o
- view_bundle_deployWizard_selectBundleStep = Selecione o Bundle para Implanta\\u00E7\\u00E3o
- view_bundle_deployWizard_selectBundle_single = Selecione apenas um bundle para implanta\\u00E7\\u00E3o.
- view_bundle_deployWizard_selectVersionStep = Selecione a vers\\u00E3o da implanta\\u00E7\\u00E3o do Bundle
- view_bundle_deployWizard_selectVersion_latest = \\u00DAltima vers\\u00E3o [{0}]
- view_bundle_deployWizard_selectVersion_live = Vers\\u00E3o atual [{0}]
- view_bundle_deployWizard_selectVersion_select = Selecione uma vers\\u00E3o espec\\u00EDfica da lista:
- view_bundle_deployWizard_title = Assitente de Implanta\\u00E7\\u00E3o
- view_bundle_deploy_action = A\\\\u00E7\\\\u00E3o
- view_bundle_deploy_backButton = Retornar \\\\u00E0 destina\\\\u00E7\\\\u00E3o
- view_bundle_deploy_clickForError = Clique no \\\\u00EDcone para visualizar a mensagem de erro
- view_bundle_deploy_deleteConfirm = Tem certeza que deseja excluir esta implanta\\\\u00E7\\\\u00E3o do bundle?
- view_bundle_deploy_deleteFailure = Falha do excluir a implanta\\\\u00E7\\\\u00E3o do bundle [{0}]
- view_bundle_deploy_deleteSuccessful = Implanta\\\\u00E7\\\\u00E3o do bundle [{0}] exclu\\\\u00EDda com sucesso
++view_bundle_deployWizard_getOptions_deployTime = Tempo de Implanta\u00E7\u00E3o
++view_bundle_deployWizard_selectBundleStep = Selecione o Bundle para Implanta\u00E7\u00E3o
++view_bundle_deployWizard_selectBundle_single = Selecione apenas um bundle para implanta\u00E7\u00E3o.
++view_bundle_deployWizard_selectVersionStep = Selecione a vers\u00E3o da implanta\u00E7\u00E3o do Bundle
++view_bundle_deployWizard_selectVersion_latest = \u00DAltima vers\u00E3o [{0}]
++view_bundle_deployWizard_selectVersion_live = Vers\u00E3o atual [{0}]
++view_bundle_deployWizard_selectVersion_select = Selecione uma vers\u00E3o espec\u00EDfica da lista:
++view_bundle_deployWizard_title = Assitente de Implanta\u00E7\u00E3o
++view_bundle_deploy_action = A\u00E7\u00E3o
++view_bundle_deploy_backButton = Retornar \u00E0 destina\u00E7\u00E3o
++view_bundle_deploy_clickForError = Clique no \u00EDcone para visualizar a mensagem de erro
++view_bundle_deploy_deleteConfirm = Tem certeza que deseja excluir esta implanta\u00E7\u00E3o do bundle?
++view_bundle_deploy_deleteFailure = Falha do excluir a implanta\u00E7\u00E3o do bundle [{0}]
++view_bundle_deploy_deleteSuccessful = Implanta\u00E7\u00E3o do bundle [{0}] exclu\u00EDda com sucesso
+view_bundle_deploy_deployedBy = Implatando por
- view_bundle_deploy_deploymentPlatforms = Recurso de implanta\\\\u00E7\\\\u00E3o
- view_bundle_deploy_installDetails = Detalhes de instala\\\\u00E7\\\\u00E3o
++view_bundle_deploy_deploymentPlatforms = Recurso de implanta\u00E7\u00E3o
++view_bundle_deploy_installDetails = Detalhes de instala\u00E7\u00E3o
+view_bundle_deploy_loadBundleFailure = Falha ao encontrar o bundle
- view_bundle_deploy_loadDeployFailure = Falha ao carregar as implanta\\\\u00E7\\\\u00F5es do bundle
- view_bundle_deploy_loadFailure = Falha ao carregar a implanta\\\\u00E7\\\\u00E3o do bundle
- view_bundle_deploy_name = Nome da Implanta\\\\u00E7\\\\u00E3o
- view_bundle_deploy_selectARow = Selecione um linha para apresentar os detalhes da instala\\\\u00E7\\\\u00E3o
- view_bundle_deploy_tagUpdateFailure = Falha ao atualizar as tags para a implanta\\\\u00E7\\\\u00E3o do bundle
++view_bundle_deploy_loadDeployFailure = Falha ao carregar as implanta\u00E7\u00F5es do bundle
++view_bundle_deploy_loadFailure = Falha ao carregar a implanta\u00E7\u00E3o do bundle
++view_bundle_deploy_name = Nome da Implanta\u00E7\u00E3o
++view_bundle_deploy_selectARow = Selecione um linha para apresentar os detalhes da instala\u00E7\u00E3o
++view_bundle_deploy_tagUpdateFailure = Falha ao atualizar as tags para a implanta\u00E7\u00E3o do bundle
+view_bundle_deploy_tagUpdateSuccessful = Tags ataulizadas com sucesso
- view_bundle_deploy_time = Tempo de implanta\\\\u00E7\\\\u00E3o
++view_bundle_deploy_time = Tempo de implanta\u00E7\u00E3o
+view_bundle_deployed = Implantado
- view_bundle_deployments = Implanta\\u00E7\\u00F5es
++view_bundle_deployments = Implanta\u00E7\u00F5es
+view_bundle_dest_backToBundle = Retonar ao Bundle
+view_bundle_dest_baseDirName = Local Raiz
+view_bundle_dest_created = Criado
+view_bundle_dest_deleteConfirm = Tem certeza de que deseja excluir esta destina\u00E7\u00E3o? Esta opera\u00E7\u00E3o apenas exclui a destina\u00E7\u00E3o do banco de dados; todo o conte\u00FAdo implantado anteriormente atrav\u00E9s do bundle nesta destina\u00E7\u00E3o em plataformas remotas permanece inalterado.
+view_bundle_dest_deleteFailure = Falha ao excluir a destina\u00E7\u00E3o [{0}]
+view_bundle_dest_deleteSuccessful = Destina\u00E7\u00E3o [{0}] exclu\u00EDda com sucesso!
+view_bundle_dest_deployDir = Diret\u00F3rio de Deploy
+view_bundle_dest_group = Grupo
+view_bundle_dest_lastDeployedVersion = \u00DAltima vers\u00E3o implantada
+view_bundle_dest_lastDeploymentDate = \u00DAltima data de implanta\u00E7\u00E3o
+view_bundle_dest_lastDeploymentStatus = \u00DAltimo status de implanta\u00E7\u00E3o
+view_bundle_dest_loadFailure = Falha ao carregar as destina\u00E7\u00F5es de Bundle
+view_bundle_dest_loadFailureVersionInfo = Falha ao carregar as informa\u00E7o\u1EBDs sobre vers\u00F5es de destina\u00E7\u00E3o de bundle
+view_bundle_dest_purgeConfirm = Esta opera\u00E7\u00E3o remove o conte\u00FAdo do bundle de todas as m\u00E1quinas remotas. Tem certeza de deseja fazer isto?
+view_bundle_dest_purgeFailure = Falha ao tentar limpar a destina\u00E7\u00E3o [{0}] em algumas ou todas as m\u00E1quinas remotas.
+view_bundle_dest_purgeSuccessful = Limpeza da destina\u00E7\u00E3o [{0}] realizada com sucesso em todas as m\u00E1quinas remotas.
+view_bundle_dest_revertConfirm = Esta opera\u00E7\u00E3o reverte todas as m\u00E1quinas remotas para a implanta\u00E7\u00E3o anterior deste bundle. Tem certeza de que deseja fazer isto?
+view_bundle_dest_tagUpdateFailure = Falha ao atualizar as tags para esta destina\u00E7\u00E3o
+view_bundle_dest_tagUpdateSuccessful = Tags atualizadas com sucesso para esta destina\u00E7\u00E3o!
+view_bundle_destinations = Destina\u00E7\u00F5es
+view_bundle_fileListView_fileSize = Tamanho do Arquivo
+view_bundle_fileListView_loadFailure = Falha ao carregar dados do arquivo de bundle
view_bundle_fileListView_md5 = MD5
view_bundle_fileListView_sha256 = SHA256
-view_bundle_files = Files~
-view_bundle_latestVersion = Latest Version~
-view_bundle_list_backToAll = Back to All Bundles~
-view_bundle_list_deleteConfirm = Are you sure you want to delete this bundle?~
-view_bundle_list_deleteFailure = Failed to delete the bundle [{0}]~
-view_bundle_list_deleteSuccessful = You successfully deleted the bundle named [{0}]~
-view_bundle_list_deletesFailure = Failed to delete the bundles
-view_bundle_list_deletesSuccessful = You successfully deleted the bundles
-view_bundle_list_destinationsCount = Destinations Count~
-view_bundle_list_error1 = Failed to load bundle to deploy [{0}]~
-view_bundle_list_error2 = Failed to get a single bundle to deploy [{0}]~
-view_bundle_list_error3 = Failed to load bundle~
-view_bundle_list_loadFailure = Failed to load the bundle to be deployed [{0}]~
-view_bundle_list_loadWithLatestFailure = Failed to load bundle with the latest version data~
-view_bundle_list_singleLoadFailure = Failed to get a single bundle to be deployed [{0}]~
-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~
-view_bundle_revertWizard_confirmStep_confirmation = Reverting Live Deployment to Previous Deployment. Click "Next" to continue...~
-view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment = Failed to find live deployment; cannot revert~
-view_bundle_revertWizard_confirmStep_liveDeployment = Live Deployment~
-view_bundle_revertWizard_confirmStep_name = Revert Deployment Confirmation~
-view_bundle_revertWizard_confirmStep_noLiveDeployment = No live deployment was found for the destination [{0}]~
-view_bundle_revertWizard_confirmStep_noLiveDeployment_concise = No live deployment was found for the destination
-view_bundle_revertWizard_confirmStep_noPriorDeployment = The live deployment [{0}] cannot be reverted because there is no prior deployment for the destination [{1}]~
-view_bundle_revertWizard_confirmStep_noPriorDeployment_concise = The live deployment cannot be reverted because there is no prior deployment
-view_bundle_revertWizard_confirmStep_prevDeployment = Previous Deployment~
-view_bundle_revertWizard_getInfoStep_cleanDeploy = Clean Deployment? (this will delete an old, existing deploy directory prior to starting the revert deployment)~
-view_bundle_revertWizard_getInfoStep_getNameFailure = Failed to get revert deployment name~
-view_bundle_revertWizard_getInfoStep_name = Provide Revert Information~
-view_bundle_revertWizard_getInfoStep_revertDeployDesc = Revert Deploy Description~
-view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [REVERT From]\\n{0}\\n\\n[REVERT To]\\n{1}~
-view_bundle_revertWizard_getInfoStep_revertDeployName = Revert Deploy Name~
-view_bundle_revertWizard_revertStep_name = Deploy Bundle to Destination Platforms~
-view_bundle_revertWizard_revertStep_reverting = Reverting...~
-view_bundle_revertWizard_revertStep_scheduled = You have successfully scheduled the revert deployment!~
-view_bundle_revertWizard_revertStep_scheduledDetails = You have successfully scheduled to revert the bundle deployment [{0}] from resource group [{1}]~
-view_bundle_revertWizard_revertStep_scheduledFailure = Failed to schedule revert deployment!~
-view_bundle_revertWizard_title = Bundle Revert~
-view_bundle_revertWizard_windowTitle = Bundle Revert Wizard~
-view_bundle_tree_loadFailure = Failed to load bundle data~
-view_bundle_version_backToBundle = Back to Bundle~
-view_bundle_version_bundleVersionTagUpdateFailure = Failed to update bundle version tags~
-view_bundle_version_bundleVersionTagUpdateSuccessful = You have successfully updated the bundle version tags~
-view_bundle_version_deleteConfirm = Are you sure you want to delete this bundle version?
-view_bundle_version_deleteFailure = Failed to delete the bundle version [{0}]
-view_bundle_version_deleteSuccessful = You successfully deleted the bundle version [{0}]
-view_bundle_version_loadFailure = Failed to load bundle version~
-view_bundle_versions = Versions~
+view_bundle_files = Arquivos
+view_bundle_latestVersion = \u00DAltima Vers\u00E3o
+view_bundle_list_backToAll = Retornar todos os Bundles
+view_bundle_list_deleteConfirm = Tem certeza de que deseja excluir este Bundle?
+view_bundle_list_deleteFailure = Falha ao excluir o bundle [{0}]
+view_bundle_list_deleteSuccessful = O Bundle chamado [{0}] foi exclu\u00EDdo com sucesso!
+view_bundle_list_deletesFailure = Falha ao exlcuir os bundles
+view_bundle_list_deletesSuccessful = Bundles exclu\u00EDdos com sucesso!
+view_bundle_list_destinationsCount = Soma das Destina\u00E7\u00F5es
+view_bundle_list_error1 = Falha ao carregar bundle [{0}] para implantar
+view_bundle_list_error2 = Falha ao obter um \u00FAnico bundle [{0}] para deploy
+view_bundle_list_error3 = Falha ao carregar o bundle
+view_bundle_list_loadFailure = Falha ao carregar o bundle [{0}] para ser implantado
+view_bundle_list_loadWithLatestFailure = Falha ao carregar o bundle com os dados da \u00FAltima vers\u00E3o
+view_bundle_list_singleLoadFailure = Falha ao obter um \u00FAnico bundle [{0}] para ser implantado
+view_bundle_list_tagUpdateFailure = Falha ao atualizar as tags do bundle
+view_bundle_list_tagUpdateSuccessful = Tags do bundle atualizadas com sucesso!
+view_bundle_list_versionsCount = Soma das Vers\u00F5es
+view_bundle_purge = Limpar
+view_bundle_recipe = Script
+view_bundle_resDeployDS_loadFailure = Falha ao carregar as informa\u00E7oes sobre as implanta\u00E7\u00F5es do bundle
+view_bundle_revert = Reverter
+view_bundle_revertWizard_confirmStep_confirmation = Revertendo a implanta\u00E7\u00E3o ativa para a atenterior. Clique em "Next" para continuar...
+view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment = Falha ao encontrar a implanta\u00E7\u00E3o ativa. N\u00E3o foi poss\u00EDvel realizar a revers\u00E3o.
+view_bundle_revertWizard_confirmStep_liveDeployment = Implanta\u00E7\u00E3o ativa.
+view_bundle_revertWizard_confirmStep_name = Confirma\u00E7\u00E3o de Revers\u00E3o da implanta\u00E7\u00E3o
+view_bundle_revertWizard_confirmStep_noLiveDeployment = Nenhuma implanta\u00E7\u00E3o ativa foi encontrada para destina\u00E7\u00E3o [{0}]
+view_bundle_revertWizard_confirmStep_noLiveDeployment_concise = Nenhuma implanta\u00E7\u00E3o ativa foi encontrada para esta destina\u00E7\u00E3o.
+view_bundle_revertWizard_confirmStep_noPriorDeployment = A implanta\u00E7\u00E3o ativa [{0}] n\u00E3o pode ser revertida porque n\u00E3o existe uma implanta\u00E7\u00E3o anterior para a destina\u00E7\u00E3o [{1}]
+view_bundle_revertWizard_confirmStep_noPriorDeployment_concise = A implanta\u00E7\u00E3o ativa n\u00E3o pode ser revertida porque n\u00E3o existe uma anterior
+view_bundle_revertWizard_confirmStep_prevDeployment = Implanta\u00E7\u00E3o Anterior
+view_bundle_revertWizard_getInfoStep_cleanDeploy = Limpar a Implanta\u00E7\u00E3o? (esta opera\u00E7\u00E3o excluir\u00E1 qualquer diret\u00F3rio de deploy existente antes de iniciar a revers\u00E3o da implanta\u00E7\u00E3o)
+view_bundle_revertWizard_getInfoStep_getNameFailure = Falha ao obter o nome da implanta\u00E7\u00E3o de revers\u00E3o
+view_bundle_revertWizard_getInfoStep_name = Forne\u00E7a as informes para revers\u00E3o
+view_bundle_revertWizard_getInfoStep_revertDeployDesc = Descri\u00E7\u00E3o da implanta\u00E7\u00E3o de revers\u00E3o
- view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [REVERTER de]\\\\\\\\\n{0}\\\\\\\\\n\\\\\\\\\n[REVERTER PARA]\\\\\\\\\n{1}
++view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [REVERTER de]\n\n{0}\n\n[REVERTER PARA]\n{1}
+view_bundle_revertWizard_getInfoStep_revertDeployName = Nome da Implanta\u00E7\u00E3o de Revers\u00E3o
+view_bundle_revertWizard_revertStep_name = Implantar Bundle nas Plataformas de Destino
+view_bundle_revertWizard_revertStep_reverting = Revertendo...
+view_bundle_revertWizard_revertStep_scheduled = Revers\u00E3o de implanta\u00E7\u00E3o agendada com sucesso!
+view_bundle_revertWizard_revertStep_scheduledDetails = Revers\u00E3o da implanta\u00E7\u00E3o [{0}] para o grupo de recursos [{1}] agendada com sucesso!
+view_bundle_revertWizard_revertStep_scheduledFailure = Falha ao agendar a revers\u00E3o da implanta\u00E7\u00E3o!
+view_bundle_revertWizard_title = Revers\u00E3o do Bundle
+view_bundle_revertWizard_windowTitle = Assistente de revers\u00E3o do Bundle
+view_bundle_tree_loadFailure = Falha ao carregar dados do Bundle
+view_bundle_version_backToBundle = Retornar ao Bundle
+view_bundle_version_bundleVersionTagUpdateFailure = Falha ao atualizar as tags da vers\u00E3o do bundle
+view_bundle_version_bundleVersionTagUpdateSuccessful = Tags da vers\u00E3o do bundle atualizadas com sucesso!
+view_bundle_version_deleteConfirm = Tem certeza de que deseja excluir est\u00E1 vers\u00E3o do bundle?
+view_bundle_version_deleteFailure = Falha ao excluir a vers\u00E3o [{0}] do bundle
+view_bundle_version_deleteSuccessful = Vers\u00E3o [{0}] do bundle exclu\u00EDda com sucesso!
+view_bundle_version_loadFailure = Falha ao carregar a vers\u00E3o do Bundle
+view_bundle_versions = Vers\u00F5es
view_configCompare_comparingConfigs = Comparando Configura\u00E7\u00F5es
view_configCompare_configCompare = Compara\u00E7\u00E3o de Configura\u00E7\u00F5es
view_configEdit_addItem = Adicionar Item \u00E0 Lista
@@@ -1083,164 -1078,168 +1083,164 @@@ view_configEdit_msg_4 = Item adicionad
view_configEdit_properties = Propriedades
view_configEdit_tooltip_1 = Remove os itens selecionados da lista.
view_configEdit_tooltip_2 = Adiciona um item \u00E0 lista.
-view_configEdit_viewRow = View Row
-view_configurationDetails_allPropertiesValid = All configuration properties have valid values, so the configuration can now be saved.~
-view_configurationDetails_configNotUpdatedDueToNoChange = Configuration was not updated, since the new configuration is equivalent to the current configuration.
-view_configurationDetails_error_updateFailure = Failed to update configuration.~
-view_configurationDetails_messageConcise = Configuration updated - current version is {0}.~
-view_configurationDetails_messageDetailed = Configuration updated to version {0} for Resource [{1}].
-view_configurationDetails_noPermission = You do not have permission to edit this Resource''s configuration.~
-view_configurationDetails_somePropertiesInvalid = The following configuration properties have invalid values: {0}. The values must be corrected before the configuration can be saved.~
-view_configurationHistoryDetails_dialogTitle = Configuration Details~
-view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.~
-view_configurationHistoryList_cannotDeleteCurrent = One of the selected history items represents the current configuration - you cannot delete it.
-view_configurationHistoryList_cannotDeleteGroupItems = One or more selected configuration history items are part of a group configuration update. view_configurationHistoryList_delete_failure = Failed to delete the configuration history items.
-view_configurationHistoryList_delete_success = You successfully deleted the selected configuration history items.
-view_configurationHistoryList_itemNamePlural = configuration history items
-view_configurationHistoryList_rollback = Rollback
-view_configurationHistoryList_rollback_failure = Failed to rollback the configuration. The original configuration is still in effect.
-view_configurationHistoryList_rollback_success = You successfully rolled back the configuration to the selected past configuration.
-view_configurationHistoryList_table_clickStatusIcon = Click the status icon for full details
-view_configurationHistoryList_table_statusFailure = This configuration update failed
-view_configurationHistoryList_table_statusInprogress = This configuration update is still in progress
-view_configurationHistoryList_table_statusNochange = No changes were made to this configuration
-view_configurationHistoryList_table_statusSuccess = This configuration update was successful
-view_configurationHistoryList_title = Configuration History~
-view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid values, so the settings can now be saved.~
-view_connectionSettingsDetails_error_updateFailure = Failed to update connection settings.~
-##view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings updated.~
-##view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings updated for Resource [{0}].~
-view_connectionSettingsDetails_noPermission = You do not have permission to edit this Resource''s connection settings.~
-view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings have invalid values: {0}. The values must be corrected before the settings can be saved.~
-view_core_error_1 = Falha ao perquisar novos alertas~
-view_core_loggedInAs = Logado como {0}~
-view_core_loggedOut = Logged out~
-view_core_noRecentAlerts = There are no recent alerts to report
-view_core_recentAlerts = [{0}] alertas recentes~
-view_core_uncaught = Exce\u00E7\u00E3o n\u00E3o capturada~
-view_dashboardManager_deleteFail = Failed to delete dashboard.
-view_dashboardManager_deleted = Successfully deleted dashboard {0}~
-view_dashboardManager_error = Failed to save dashboard to server~
-view_dashboardManager_saved = Saved dashboard {0} to server~
-view_dashboardManager_success = Saved dashboard~
-view_dashboard_favorites_error1 = Failed to load favorite Resources.~
-view_dashboardsManager_error1 = Failed to add new dashboard~
-view_dashboardsManager_inventory_title = Inventory Summary~
-view_dashboardsManager_mashup_title = RHQ News~
-view_dashboardsManager_message_title = Welcome To RHQ~
-view_dashboardsManager_message_title_details = <h1>Welcome to RHQ</h1>\n<p>The RHQ project 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_dashboardsManager_tagcloud_title = Tag Cloud~
-view_dashboards_confirm1 = Are you sure you want to delete~
-view_dashboards_portlets_refresh_fail1 = Failed to update interval for portlets that auto-refresh
-view_dashboards_portlets_refresh_fail2 = Failed to disable reload for portlets that auto-refresh
-view_dashboards_portlets_refresh_multiple_min = {0} minutes
-view_dashboards_portlets_refresh_none = No Refresh
-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_fileRemoved = File Removed
-##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_confirm = Delete the selected drift(s)?
-##view_drift_delete_confirmAll = Delete all drifts from this source?
-##view_drift_failure_delete = Failed to delete drift targets with id''s: {0}
-##view_drift_failure_deleteAll = Failed to delete all drift targets from this source
-##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_table_baseDir = Base Directory
-##view_drift_table_changeSet = Change Set
-##view_drift_table_newFile = New File
-##view_drift_table_oldFile = Old File
-##view_drift_table_resourceConfig = Resource Drift Configuration
-##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_dynagroup_children = DynaGroup Children~
-view_dynagroup_compatible = Compatible
-view_dynagroup_definitionAlreadyExists = A group definition already exists with this name~
-view_dynagroup_definitionCreated = You have successfully created a group definition named [{0}]~
-view_dynagroup_definitionLoadFailure = Failed to load group definitions~
-view_dynagroup_definitions = DynaGroup Definitions~
-view_dynagroup_deleteFailureSelection = Failed to delete the selected group definitions~
-view_dynagroup_deleteSuccessfulSelection = You have successfully deleted [{0}] group definitions~
-view_dynagroup_editing = Editing [{0}]~
-view_dynagroup_exprBuilder_addExpression = Add Expression
-view_dynagroup_exprBuilder_comparisonType = Comparison Type
-view_dynagroup_exprBuilder_comparisonType_contains = contains
-view_dynagroup_exprBuilder_comparisonType_endsWith = ends with
-view_dynagroup_exprBuilder_comparisonType_equals = equals
-view_dynagroup_exprBuilder_comparisonType_startsWith = starts with
-view_dynagroup_exprBuilder_comparisonType_tooltip = Comparison Type
-view_dynagroup_exprBuilder_definingPlugin = Defining Plugin
-view_dynagroup_exprBuilder_definingPlugin_tooltip = The plugin to search
-view_dynagroup_exprBuilder_expression = Expression
-view_dynagroup_exprBuilder_expressionType = Expression Type
-view_dynagroup_exprBuilder_expressionType_pluginConfig = Plugin Configuration
-view_dynagroup_exprBuilder_expressionType_resource = Resource
-view_dynagroup_exprBuilder_expressionType_resourceCategory = Resource Category
-view_dynagroup_exprBuilder_expressionType_resourceConfig = Resource Configuration
-view_dynagroup_exprBuilder_expressionType_resourceType = Resource Type
-view_dynagroup_exprBuilder_expressionType_tooltip = The type of property this expression switches on:<br/> <b>Resource</b>: A resource property such as its name or version<br/> <b>Resource Type</b>: Search for resources of a specific type<br/> <b>Resource Category</b>: Search for resources by category: platform, server, service<br/> <b>Trait</b>: Resources that have selected values for a monitored trait<br/> <b>Plugin Configuration</b>: Search by the plugin component configuration setting of the component<br/> <b>Resource Configuration</b>: Search by the configuration setting of the managed resource
-view_dynagroup_exprBuilder_expressionType_trait = Trait
-view_dynagroup_exprBuilder_expression_tooltip = This is the full expression that is represented by the selections in the form below. This text will be added to your group definition expression text when you click the "Add Expression" button.
-view_dynagroup_exprBuilder_groupBy = Group by
-view_dynagroup_exprBuilder_groupBy_tooltip = GroupBy will cause the system to pivot on the values from the entered expressions creating a separate group for each value. For example, GroupBy on the cluster name to create a group for each cluster with all cluster members in it.
-view_dynagroup_exprBuilder_noPlugins = --No plugins--
-view_dynagroup_exprBuilder_noProperties = --No properties--
-view_dynagroup_exprBuilder_noResourceTypes = --No resource types--
-view_dynagroup_exprBuilder_pluginLoadFailure = Cannot get the list of plugins
-view_dynagroup_exprBuilder_propLoadFailure = Cannot get list of properties
-view_dynagroup_exprBuilder_propertyName = Property Name
-view_dynagroup_exprBuilder_propertyName_tooltip = The name of the property to query. This is defined by the expression type as well as the resource type.
-view_dynagroup_exprBuilder_resTypeLoadFailure = Cannot get list of resource types for plugin [{0}]
-view_dynagroup_exprBuilder_resource = Resource
-view_dynagroup_exprBuilder_resourceType = Resource Type
-view_dynagroup_exprBuilder_resourceType_tooltip = The type of resource
-view_dynagroup_exprBuilder_resource_child = Child
-view_dynagroup_exprBuilder_resource_grandparent = Grandparent
-view_dynagroup_exprBuilder_resource_greatGrandparent = GreatGrandparent
-view_dynagroup_exprBuilder_resource_greatGreatGrandparent = GreatGreatGrandparent
-view_dynagroup_exprBuilder_resource_parent = Parent
-view_dynagroup_exprBuilder_resource_resource = Resource
-view_dynagroup_exprBuilder_resource_tooltip = Choose the level of the resource you wish to select. For example, select "parent" will find resources whose parent resource matches the rest of the expression.
-##view_dynagroup_exprBuilder_savedExpression = Saved Expression
-view_dynagroup_exprBuilder_title = Expression Builder
-view_dynagroup_exprBuilder_unset = Unset
-view_dynagroup_exprBuilder_unset_tooltip = Unset will find all of the values that have a null value in the database. This is not possible using the " = " operator because of how databases store and query data.
-view_dynagroup_exprBuilder_value_tooltip = The string value for the expression to query
-view_dynagroup_expression = Expression~
-view_dynagroup_expressionBuilderIconTooltip = Expression Builder...
-view_dynagroup_expressionSet = Expression Set~
-view_dynagroup_lastCalculationTime = Last Calculation Time~
-view_dynagroup_loadDefinitionFailure = Failed to load group definition [{0}]~
-view_dynagroup_loadDefinitionMissing = There is no group definition with the ID of [{0}]~
-view_dynagroup_mixed = Mixed
-view_dynagroup_newGroupDefinition = New Group Definition~
-view_dynagroup_nextCalculationTime = Next Calculation Time~
-view_dynagroup_permDenied = You do not have permission to view group definitions~
-view_dynagroup_permUnknown = Could not determine if you have the proper permissions - access is denied~
-view_dynagroup_recalcFailure = Failed to recalculated this group definition~
-view_dynagroup_recalcFailureSelection = Failed to recalculated the selected group definitions~
-view_dynagroup_recalcSuccessful = You have successfully recalculated this group definition~
-view_dynagroup_recalcSuccessfulSelection = You have successfully recalculated [{0}] group definitions~
-view_dynagroup_recalculate = Recalculate~
-view_dynagroup_recalculationInterval = Recalculation Interval~
-view_dynagroup_recursive = Recursive~
-view_dynagroup_saveAndRecalculate = Save & Recalculate~
-view_dynagroup_saveFailure = Failed to save the group definition named [{0}]~
-view_dynagroup_saveSuccessful = You have successfully saved the group definition named [{0}]~
-view_dynagroup_singleSaveFailure = An error occurred - there should have been one created, but instead there were [{0}] created~
+view_configEdit_viewRow = Visualizar linha
+view_configurationDetails_allPropertiesValid = Todas as propriedades de configura\u00E7\u00E3o s\u00E3o v\u00E1lidas, portanto a configura\u00E7\u00E3o pode ser salva.
+view_configurationDetails_configNotUpdatedDueToNoChange = A configuração não foi atualizada, pois a nova configuração é equivalente à atual.
+view_configurationDetails_error_updateFailure = Falha ao atualizar a configuração.
+view_configurationDetails_messageConcise = Configuração atualizada - versão corrrente: {0}.
+view_configurationDetails_messageDetailed = Configuração do Recurso [{1}] atualizada para a versão {0}.
+view_configurationDetails_noPermission = Você não possui permisssão para editar a configuraçào do Recurso.
+view_configurationDetails_somePropertiesInvalid = As seguintes propriedades possuem valores inválidos: {0}. Os valores devem ser corrigidos antes da configuração ser salva.
+view_configurationHistoryDetails_dialogTitle = Detalhes da Configuração
+view_configurationHistoryDetails_error_loadFailure = Não foi possível carregar o histórico de configuração.
+view_configurationHistoryList_cannotDeleteCurrent = Um dos itens de histórico selecionado representa a configuração corrente. - você não pode excluí-lo.
+view_configurationHistoryList_cannotDeleteGroupItems = Um ou mais itens do histórico de configuração selecionado pertencem à uma atualização de configuração em grupo. view_configurationHistoryList_delete_failure = Falha ao excluir o histórico dos itens de configuração.
+view_configurationHistoryList_delete_failure = Falha ao excluir o histórico dos itens de configuração.
+view_configurationHistoryList_delete_success = Itens do histórico de configuração selecionados excluídos com sucesso.
+view_configurationHistoryList_rollback = Desfazer
+view_configurationHistoryList_rollback_failure = Falha ao desfazer a configuração. A configuração original ainda permanece.
+view_configurationHistoryList_rollback_success = Configuração revertida para a configuração selecionada com sucesso.
+view_configurationHistoryList_table_clickStatusIcon = Clique no ícone status para visualizar os detlahes.
+view_configurationHistoryList_table_statusFailure = Falha ao atualizar a configuração
+view_configurationHistoryList_table_statusInprogress = A atualização desta configuração ainda está em andamento.
+view_configurationHistoryList_table_statusNochange = Nenhuma mundaça foi feita nesta configuração
+view_configurationHistoryList_table_statusSuccess = Configuração atualizada com sucesso
+view_configurationHistoryList_title = Histórico de Configuração
+view_connectionSettingsDetails_allPropertiesValid = Todas a propriedades estão corretas, portanto a configuração pode ser salva agora.
+view_connectionSettingsDetails_error_updateFailure = Falha ao atualizar as propriedades de conexão.
- view_connectionSettingsDetails_messageConcise_updateSuccess = Atualização das propriedades de conexão iniciada.
- view_connectionSettingsDetails_messageDetailed_updateSuccess = Propriedades de conexão do Recurso [{0}] atualizadas
++##view_connectionSettingsDetails_messageConcise_updateSuccess = Atualização das propriedades de conexão iniciada.
++##view_connectionSettingsDetails_messageDetailed_updateSuccess = Propriedades de conexão do Recurso [{0}] atualizadas
+view_connectionSettingsDetails_noPermission = Você não possui permissão para editar as propriedades de conexão do Recurso.
+view_connectionSettingsDetails_somePropertiesInvalid = As seguintes propriedades de conexão estão incorretas: {0}. Os valores devem ser corrigidos antes de serem salvos.
+view_core_error_1 = Falha ao perquisar novos alertas
+view_core_loggedInAs = Logado como {0}
+view_core_loggedOut = Desconectado
+view_core_noRecentAlerts = Não existem alertas recentes
+view_core_recentAlerts = [{0}] alertas recentes
+view_core_uncaught = Exce\u00E7\u00E3o n\u00E3o capturada
+view_dashboardManager_deleteFail = Falha ao excluir o dashboard.
+view_dashboardManager_deleted = Dashboard {0} exclu\u00EDdo com sucesso!
+view_dashboardManager_error = Falha ao salvar o dashboard no servidor
+view_dashboardManager_saved = Dashboard {0} salvo no servidor
+view_dashboardManager_success = Dashboard salvo
+view_dashboard_favorites_error1 = Falha ao carregar recursos favoritos.
+view_dashboardsManager_error1 = Falha ao adicionar novo dashboad
+view_dashboardsManager_inventory_title = Sum\u00E1rio do Invent\u00E1rio
+view_dashboardsManager_mashup_title = Novidades do RHQ
+view_dashboardsManager_message_title = Bem vindo ao RHQ
+view_dashboardsManager_message_title_details = <h1>Bem vindo ao RHQ</h1>\n<p> O projeto RHQ \u00E9 uma abstra\u00E7\u00E3o e uma suite de gerenciamento de sistemas baseada em plug-ins que fornece uma solu\u00E7\u00E3o extens\u00EDvel e integrada para o gerenciamento de m\u00FAltiplas plataformas atrav\u00E9s de um conjunto de funcionalidades que faz parte de seu n\u00FAcleo. O projeto foi concebido com m\u00F3dulos em camadas que fornecem uma arquitetura flexivel para sua implanta\u00E7\u00E3o. Ele possui uma interface de usu\u00E1rio que propcia o hist\u00F3rico e a auditoria do gerenciamento de recursos por toda a empresa. Sua arquitetura baseada em Agente-Servidor permite o gerenciamento remoto atrav\u00E9s de plugins que implementam todo o suporte espec\u00EDfico aos recursos gerenciados.<p> <p>Este dashboard padr\u00E3o pode ser modificado clicando o bot\u00E3o (modo edi\u00E7\u00E3o) acima.</p>
+view_dashboardsManager_tagcloud_title = Nuvem de Tags
+view_dashboards_confirm1 = Tem certeza de que deseja excluir?
+view_dashboards_portlets_refresh_fail1 = Falha ao alterar o intervalo de atualização de portlets dinâmicos.
+view_dashboards_portlets_refresh_fail2 = Falha ao desabilitar a atualização de portlets dinâmicos.
+view_dashboards_portlets_refresh_multiple_min = {0} minutos
+view_dashboards_portlets_refresh_none = N\u00E3o atualizar
+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_button_detectNow = Detectar agora
- view_drift_category_fileAdded = Arquivo adicionado
- view_drift_category_fileChanged = Arquivo alterado
- view_drift_category_fileRemoved = Arquivo removido
- view_drift_delete_confirm = Excluir drift(s) selecionado(s)?
- view_drift_delete_confirmAll = Excluir todos os drifts desta origem?
- view_drift_failure_delete = Falha ao excluir os alvos dos drifts com ids: {0}
- view_drift_failure_deleteAll = Falha ao excluir todos os alvos dos drifts desta origem
- 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_table_baseDir = Diretório Base
- 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_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_button_detectNow = Detectar agora
++##view_drift_category_fileAdded = Arquivo adicionado
++##view_drift_category_fileChanged = Arquivo alterado
++##view_drift_category_fileRemoved = Arquivo removido
++##view_drift_delete_confirm = Excluir drift(s) selecionado(s)?
++##view_drift_delete_confirmAll = Excluir todos os drifts desta origem?
++##view_drift_failure_delete = Falha ao excluir os alvos dos drifts com ids: {0}
++##view_drift_failure_deleteAll = Falha ao excluir todos os alvos dos drifts desta origem
++##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_table_baseDir = Diretório Base
++##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_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_dynagroup_children = Grupo Dinâmico Filho
+view_dynagroup_compatible = Compátivel
+view_dynagroup_definitionAlreadyExists = Já existe uma definição de grupo com este nome
+view_dynagroup_definitionCreated = Definição de grupo [{0}] criada com sucesso!
+view_dynagroup_definitionLoadFailure = Falha ao carregar as definições de grupo
+view_dynagroup_definitions = Definições de Grupos Dinâmicos
+view_dynagroup_deleteFailureSelection = Falha ao excluir as definições selecionadas
+view_dynagroup_deleteSuccessfulSelection = Definições de grupo [{0}] excluídas com sucesso!
+view_dynagroup_editing = Editando [{0}]
+view_dynagroup_exprBuilder_addExpression = Adicionar Expressão
+view_dynagroup_exprBuilder_comparisonType = Tipo de comparação
+view_dynagroup_exprBuilder_comparisonType_contains = contém
+view_dynagroup_exprBuilder_comparisonType_endsWith = Termina com
+view_dynagroup_exprBuilder_comparisonType_equals = igual
+view_dynagroup_exprBuilder_comparisonType_startsWith = inicia com
+view_dynagroup_exprBuilder_comparisonType_tooltip = Tipo de Comparação
+view_dynagroup_exprBuilder_definingPlugin = Plugin
+view_dynagroup_exprBuilder_definingPlugin_tooltip = O plugin a ser procurado
+view_dynagroup_exprBuilder_expression = Expressão
+view_dynagroup_exprBuilder_expressionType = Tipo de Expressão
+view_dynagroup_exprBuilder_expressionType_pluginConfig = Configuração do Plugin
+view_dynagroup_exprBuilder_expressionType_resource = Recurso
+view_dynagroup_exprBuilder_expressionType_resourceCategory = Categoria do Recurso
+view_dynagroup_exprBuilder_expressionType_resourceConfig = Configuração do Recurso
+view_dynagroup_exprBuilder_expressionType_resourceType = Tipo do Recurso
+view_dynagroup_exprBuilder_expressionType_tooltip = Tipo de propriedade usada por esta expressão:<br/> <b>Recurso</b>: Uma propriedade do recurso (ex: nome ou versão)<br/> <b>Tipo de Recurso</b>: Procura por recursos de um tipo específico<br/> <b>Categoria do Recurso</b>: Procura por recursos de uma categoria específica: platforma, servidor, serviço<br/> <b>Característica</b>: Recursos que possuem valores selecionados para uma característica monitorada<br/> <b>Configuração do Plugin</b>: Procurar pela configuração do componente do plugin <br/> <b>Configuração do Recurso</b>: Procurar pela configuração do recurso gerenciado
+view_dynagroup_exprBuilder_expressionType_trait = Característica
+view_dynagroup_exprBuilder_expression_tooltip = Esta é a expressão completa com base nas definições do formulário abaixo. Este texto será adicionado ao campo de expressão da definição do grupo quando você clicar o botão "Adicionar Expressão"
+view_dynagroup_exprBuilder_groupBy = Agrupado por
+view_dynagroup_exprBuilder_groupBy_tooltip = GroupBy fará com que o resultado da busca seja agrupado de acordo com os valores informados na expressão. Por exemplo, usando GroupBy para o nome de um cluster JBossAS, o resultado criará um grupo para cada cluster e seus membros.
+view_dynagroup_exprBuilder_noPlugins = --Sem plugins--
+view_dynagroup_exprBuilder_noProperties = --Sem propriedades--
+view_dynagroup_exprBuilder_noResourceTypes = --Nehum tipo de recurso--
+view_dynagroup_exprBuilder_pluginLoadFailure = N\u00E3o foi poss\u00EDvel obter a lista de plugins
+view_dynagroup_exprBuilder_propLoadFailure = N\u00E3o foi poss\u00EDvel obter a lista de propriedades
+view_dynagroup_exprBuilder_propertyName = Nome da propriedade
+view_dynagroup_exprBuilder_propertyName_tooltip = O nome da propriedade a ser pesquisada. Isso é definido pelo tipo da expressão bem como o tipo do recurso.
+view_dynagroup_exprBuilder_resTypeLoadFailure = Não foi possível recuperar a lista de recursos para o plugin [{0}]
+view_dynagroup_exprBuilder_resource = Recurso
+view_dynagroup_exprBuilder_resourceType = Tipo de Recurso
+view_dynagroup_exprBuilder_resourceType_tooltip = O tipo do recurso
+view_dynagroup_exprBuilder_resource_child = Filho
+view_dynagroup_exprBuilder_resource_grandparent = Avô
+view_dynagroup_exprBuilder_resource_greatGrandparent = Bizavô
+view_dynagroup_exprBuilder_resource_greatGreatGrandparent = Tataravô
+view_dynagroup_exprBuilder_resource_parent = Pai
+view_dynagroup_exprBuilder_resource_resource = Recurso
+view_dynagroup_exprBuilder_resource_tooltip = Escolha o nível do recurso que deseja selecionar. Por exemplo, selecione "pai" para procurar por recursos filhos cujo recurso pai case com o resto da expressão.
+view_dynagroup_exprBuilder_savedExpression = Expressão salva
+view_dynagroup_exprBuilder_title = Construtor de expressão
+view_dynagroup_exprBuilder_unset = Não definido
+view_dynagroup_exprBuilder_unset_tooltip = Indefinido irá procurar todos os valores que possuem um valor nulo no banco de dados. Não é possível utilizar o operador "=" para valores indefinidos.
+view_dynagroup_exprBuilder_value_tooltip = A string de pesquisa da expressão
+view_dynagroup_expression = Expressão
+view_dynagroup_expressionBuilderIconTooltip = Construtor de Expressão
+view_dynagroup_expressionSet = Conjunto de Expressões
+view_dynagroup_lastCalculationTime = Último cálculo
+view_dynagroup_loadDefinitionFailure = Falha ao carregar as definições [{0}]
+view_dynagroup_loadDefinitionMissing = Não existe definição para o grupo com ID [{0}]
+view_dynagroup_mixed = Misturado
+view_dynagroup_newGroupDefinition = Nova Definição de Grupo
+view_dynagroup_nextCalculationTime = Próximo cálculo
+view_dynagroup_permDenied = Você não possui permissões para visualizar o grupo
+view_dynagroup_recalcFailure = Falha ao recalcular essa definição
+view_dynagroup_recalcFailureSelection = Failed to recalculated the selected group definitions
+view_dynagroup_recalcSuccessful = You have successfully recalculated this group definition
+view_dynagroup_recalcSuccessfulSelection = You have successfully recalculated [{0}] group definitions
+view_dynagroup_recalculate = Recalculate
+view_dynagroup_recalculationInterval = Recalculation Interval
+view_dynagroup_recursive = Recursive
+view_dynagroup_saveAndRecalculate = Save & Recalculate
+view_dynagroup_saveFailure = Failed to save the group definition named [{0}]
+view_dynagroup_saveSuccessful = You have successfully saved the group definition named [{0}]
+view_dynagroup_singleSaveFailure = An error occurred - there should have been one created, but instead there were [{0}] created
view_dynagroup_template_customExpression = Custom Expression...
view_dynagroup_template_downedResources = All resources currently down
view_dynagroup_template_jbossas4_clusters = JBossAS 4 - Clusters
@@@ -1666,15 -1665,15 +1666,15 @@@ view_remoteAgentInstall_promptUser = No
view_remoteAgentInstall_result = Resultado
view_remoteAgentInstall_resultCode = ResultCode
view_remoteAgentInstall_startAgent = Iniciar Agente
- view_remoteAgentInstall_startAgentResults = resultado da inicializa\u00E7\u00E3o do Agente\\\\\\\\: [{0}]
+ view_remoteAgentInstall_startAgentResults = resultado da inicializa\u00E7\u00E3o do Agente: [{0}]
view_remoteAgentInstall_step = Step
view_remoteAgentInstall_stopAgent = Parar Agente
- view_remoteAgentInstall_stopAgentResults = resultado do encerramento do Agente\\\\\\\\: [{0}]
+ view_remoteAgentInstall_stopAgentResults = resultado do encerramento do Agente: [{0}]
view_remoteAgentInstall_success = Instala\u00E7\u00E3o do Agente finalizada
view_remoteAgentInstall_updateStatus = Status da Atualiza\u00E7\u00E3o
-view_reportsTop_description = This section provides access to global reports.~
+view_reportsTop_description = This section provides access to global reports.
view_reportsTop_title = Relat\u00F3rios
-view_reports_alertDefinitions = Defini\u00E7\u00E3o de Alertas~
+view_reports_alertDefinitions = Defini\u00E7\u00E3o de Alertas
view_reports_alertDefinitions_parentHover = Click to go to the parent alert definition
view_reports_alertDefinitions_resTypeLoadError = Cannot get the template resource type - unable to view the alert template.
view_reports_inventorySummary_failFetch = Failed to get inventory summary
@@@ -1734,67 -1733,67 +1734,67 @@@ view_selector_assigned = Associado {0
view_selector_available = Dispon\u00EDvel {0}
view_subTab_error_disabled = N\u00E3o \u00E9 poss\u00EDvel selecionar uma subTab desabilidada [{0}].
view_summaryDashboard_resetConfirm = Reset to default summary dashboard (lose local changes)?
-view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
-view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.~
-view_summaryOverviewForm_field_description = Description~
-view_summaryOverviewForm_field_location = Location~
-view_summaryOverviewForm_field_name = Name~
-view_summaryOverviewForm_field_parent = Parent~
-view_summaryOverviewForm_field_type = Type~
-view_summaryOverviewForm_field_version = Version~
-view_summaryOverviewForm_header_summary = Summary~
+view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].
+view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].
+view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].
+view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.
+view_summaryOverviewForm_field_description = Description
+view_summaryOverviewForm_field_location = Location
+view_summaryOverviewForm_field_name = Name
+view_summaryOverviewForm_field_parent = Parent
+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}].~
-view_summaryOverview_header_detectedErrors = Detected Errors~
-view_summaryOverview_title_errorDetailsWindow = Error Details~
-view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error details.~
+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}].
+view_summaryOverview_header_detectedErrors = Detected Errors
+view_summaryOverview_title_errorDetailsWindow = Error Details
+view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error details.
view_tableSection_backButton = Voltar \u00E0 Lista
-view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
-view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
+view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug
+view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.
view_table_drawFail = Failed to draw Table [{0}].
view_table_matchingRows = Matching Rows: {0} (selected: {1})
- view_table_totalRows = Total de Linhas\\\\\\\\: {0} (selecionada\\\\\\\\: {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_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~
-view_tabs_common_graphs = Graphs~
+view_tabs_common_events = Events
+view_tabs_common_graphs = Graphs
view_tabs_common_group_members = Group Members
-view_tabs_common_group_membership = Group Membership~
-view_tabs_common_groups = Groups~
-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_group_membership = Group Membership
+view_tabs_common_groups = Groups
+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~
+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
view_tabs_invalidSubTab = Invalid subtab: {0}
view_tabs_invalidTab = Invalid tab: {0}
view_tagCloud_deleteTag = Delete Tag
@@@ -1833,49 -1832,49 +1833,49 @@@ view_tree_common_contextMenu_loadFail_c
view_tree_common_contextMenu_loadFail_dashboards = Failed to load user dashboards
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_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_loadFailed_manualAddChildren = Failed to load platform manual add children
+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
-view_tree_common_contextMenu_saveChartToDashboardFailure = Failed to save the dashboard~
-view_tree_common_contextMenu_saveChartToDashboardSuccessful = You have saved dashboard [{0}]~
+view_tree_common_contextMenu_saveChartToDashboardFailure = Failed to save the dashboard
+view_tree_common_contextMenu_saveChartToDashboardSuccessful = You have saved dashboard [{0}]
view_tree_common_contextMenu_type_name_label = Type: {0}
view_tree_common_createFailed_autoCluster = Failed to create or update autocluster backing group
-view_tree_common_loadFailed_children = Failed to load children for node~
-view_tree_common_loadFailed_create = Failed to create view for this node~
-view_tree_common_loadFailed_descendants = Failed to load descendants for tree~
-view_tree_common_loadFailed_generic = Failed to load data for tree~
+view_tree_common_loadFailed_children = Failed to load children for node
+view_tree_common_loadFailed_create = Failed to create view for this node
+view_tree_common_loadFailed_descendants = Failed to load descendants for tree
+view_tree_common_loadFailed_generic = Failed to load data for tree
view_tree_common_loadFailed_group = Failed to load group with id [{0}]
view_tree_common_loadFailed_groupTree = Failed to load group tree
-view_tree_common_loadFailed_node = Failed to load data for this node~
-view_tree_common_loadFailed_root = Failed to load root for tree~
-view_tree_common_loadFailed_selection = Failed to select this node~
-view_tree_common_loadFailed_update = Failed to update view for this node~
+view_tree_common_loadFailed_node = Failed to load data for this node
+view_tree_common_loadFailed_root = Failed to load root for tree
+view_tree_common_loadFailed_selection = Failed to select this node
+view_tree_common_loadFailed_update = Failed to update view for this node
view_tree_group_error_updateAutoCluster = Failed to create or update autocluster backing group. key: [{0}]
-view_type_parentId = Parent ID~
-view_type_resourceTypes = Resource Types~
-view_type_typeTreeLoadFailure = Failed to load resource type tree data~
-view_upload_alreadyUploaded = File has already been uploaded~
-view_upload_bundleDistFile = Distribution File~
-view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
-view_upload_error_file = Error uploading file~
-view_upload_error_fileName = Error uploading file [{0}]~
-view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
-view_upload_error_packageVersionFile = Error uploading Package Version File~
-view_upload_error_results = Error uploading file, unexpected results: [{0}]~
-view_upload_inProgress = Can not submit, upload is currently in progress~
-view_upload_prompt_1 = [{0}] File to Upload~
-view_upload_prompt_2 = File to Upload~
-view_upload_success = File successfully uploaded~
-view_upload_tooltip_1 = Select a file to upload, then click Upload or Next~
+view_type_parentId = Parent ID
+view_type_resourceTypes = Resource Types
+view_type_typeTreeLoadFailure = Failed to load resource type tree data
- view_upload_alreadyUploaded = O upload do arquivo j\\u00E1 foi realizado.
- view_upload_bundleDistFile = Arquivo de Distribui\\u00E7\\u00E3o
- view_upload_error_bundleDistFile = Erro ao fazer upload do arquivo de distribui\\u00E7\\u00E3o do bundle
++view_upload_alreadyUploaded = O upload do arquivo j\u00E1 foi realizado.
++view_upload_bundleDistFile = Arquivo de Distribui\u00E7\u00E3o
++view_upload_error_bundleDistFile = Erro ao fazer upload do arquivo de distribui\u00E7\u00E3o do bundle
+view_upload_error_file = Erro ao fazer upload do arquivo
+view_upload_error_fileName = Erro ao fazer upload do arquivo [{0}]
- view_upload_error_fileName_2 = Erro ao fazer upload do arquivo [{0}], verifique se o caminho do arquivo est\\u00E1 correto.
- view_upload_error_packageVersionFile = Erro ao fazer upload da vers\\u00E3o do pacote
++view_upload_error_fileName_2 = Erro ao fazer upload do arquivo [{0}], verifique se o caminho do arquivo est\u00E1 correto.
++view_upload_error_packageVersionFile = Erro ao fazer upload da vers\u00E3o do pacote
+view_upload_error_results = Erro ao fazer upload do arquivo, resultados inexperados: [{0}]
- view_upload_inProgress = N\\u00E3o foi poss\\u00EDvel submeter, upload em andamento
++view_upload_inProgress = N\u00E3o foi poss\u00EDvel submeter, upload em andamento
+view_upload_prompt_1 = [{0}] File to Upload
+view_upload_prompt_2 = File to Upload
+view_upload_success = File successfully uploaded
+view_upload_tooltip_1 = Select a file to upload, then click Upload or Next
view_upload_tooltip_1a = Select a file to upload, then click Upload or Next
view_upload_tooltip_1b = Select a file to upload, then click Next
-view_upload_tooltip_2 = File upload had previously failed~
-view_upload_upload = Upload~
-view_upload_uploadFile = UploadFile~
+view_upload_tooltip_2 = File upload had previously failed
+view_upload_upload = Upload
+view_upload_uploadFile = UploadFile
widget_colorPicker_tooltip = Clique para selecionar uma nova cor
widget_durationItem_inputUnitLessThanTargetUnit = A unidade de entrada \u00E9 menor que a unidade final.
widget_durationItem_unitTypeNotSupported = Tipo de unidade [{0}] n\u00E3o suportada por este Item de Dura\u00E7\u00E3o.
commit 01286aab22a8626ec7a8611df95315ff61a08ed4
Merge: b0a583c 8003fa2
Author: Rafael Soares <rafaelcba(a)gmail.com>
Date: Thu Jul 28 22:48:31 2011 -0300
translating...
diff --cc modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages_pt.properties
index 40add0d,d4c0af4..26f33b9
--- 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
@@@ -325,16 -328,16 +327,16 @@@ dataSource_scheduledOperations_field_lo
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_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_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}]
- dataSource_schedules_disableSuccessful_full_group = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o\: [{2}]
- dataSource_schedules_disableSuccessful_full_resource = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o recurso com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o\: [{2}]
- dataSource_schedules_enableFailure_group = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o grupo com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
- dataSource_schedules_enableFailure_resource = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
-dataSource_schedules_disableSuccessful_full_group = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o: [{2}]
-dataSource_schedules_disableSuccessful_full_resource = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o recurso com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o: [{2}]
-dataSource_schedules_enableFailure_group = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o grupo com ID [{1}]. As m\u00E9tricas s\u00E3o: [{2}]
-dataSource_schedules_enableFailure_resource = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas s\u00E3o: [{2}]
++dataSource_schedules_disableSuccessful_full_group = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o\\\\\\\\: [{2}]
++dataSource_schedules_disableSuccessful_full_resource = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o recurso com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o\\\\\\\\: [{2}]
++dataSource_schedules_enableFailure_group = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o grupo com ID [{1}]. As m\u00E9tricas s\u00E3o\\\\\\\\: [{2}]
++dataSource_schedules_enableFailure_resource = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas s\u00E3o\\\\\\\\: [{2}]
dataSource_schedules_enableSuccessful_concise = Voce habilitou a coleta de m\u00E9tricas de [{0}]
- dataSource_schedules_enableSuccessful_full_group = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas habilitadas foram\: [{2}]
- dataSource_schedules_enableSuccessful_full_resource = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas habilitadas foram\: [{2}]
-dataSource_schedules_enableSuccessful_full_group = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas habilitadas foram: [{2}]
-dataSource_schedules_enableSuccessful_full_resource = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas habilitadas foram: [{2}]
++dataSource_schedules_enableSuccessful_full_group = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas habilitadas foram\\\\\\\\: [{2}]
++dataSource_schedules_enableSuccessful_full_resource = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas habilitadas foram\\\\\\\\: [{2}]
dataSource_schedules_field_resourceGroupId = ID de Grupo
dataSource_schedules_loadFailed = Falha ao carregar agendamento de m\u00E9tricas
dataSource_schedules_loadFailedContext = Falha ao carregar agendamentos de m\u00E9tricas para o contexto [{0}]
@@@ -391,16 -394,16 +393,16 @@@ util_rpcManager_activeRequests = {0} Re
util_userPerm_loadFailGlobal = Falha ao carregar permiss\u00F5es globais - nenhuma permiss\u00E3o concedida.
util_userPerm_loadFailGroup = Falha ao carregar suas permiss\u00F5es para o Grupo de Recursos com id [{0}] - nenhuma permiss\u00E3o concedida.
util_userPerm_loadFailResource = Falha ao carregar suas permiss\u00F5es para o Recurso com id [{0}] - nenhuma permiss\u00E3o concedida.
- util_userSession_loadFailSubject = UserSessionManager\: Falha ao carregar a credencial do usu\u00E1rio
-util_userSession_loadFailSubject = UserSessionManager: Falha ao carregar a credencial do usu\u00E1rio
++util_userSession_loadFailSubject = UserSessionManager\\\\\\\\: Falha ao carregar a credencial do usu\u00E1rio
util_userSession_logoutFail = Falha durante o logout.
util_widgetsField_unlimited = Ilimitado
--view_aboutBox_allRightsReserved = Todos os Direitos Reservados.~
- view_aboutBox_buildNumber = N\u00FAmero do Build\:~
- view_aboutBox_failedToLoad = Falha ao carregar informa\u00E7oes do produto.~
- view_aboutBox_homepage = P\u00E1gina Inicial~
- view_aboutBox_jbossByRedHat = JBoss by Red Hat~
- view_aboutBox_title = Sobre {0}~
- view_aboutBox_version = Vers\u00E3o\:
-view_aboutBox_buildNumber = N\u00FAmero do Build:~
-view_aboutBox_failedToLoad = Falha ao carregar informa\u00E7oes do produto.~
-view_aboutBox_homepage = P\u00E1gina Inicial~
-view_aboutBox_jbossByRedHat = JBoss by Red Hat~
-view_aboutBox_title = Sobre {0}~
++view_aboutBox_allRightsReserved = Todos os Direitos Reservados.
++view_aboutBox_buildNumber = N\u00FAmero do Build\\\\\\\\:
++view_aboutBox_failedToLoad = Falha ao carregar informa\u00E7oes do produto.
++view_aboutBox_homepage = P\u00E1gina Inicial
++view_aboutBox_jbossByRedHat = JBoss by Red Hat
++view_aboutBox_title = Sobre {0}
+ view_aboutBox_version = Vers\u00E3o:
view_adminConfig_downloads = Downloads
view_adminConfig_license = Licen\u00E7a
view_adminConfig_plugins = Plugins
@@@ -653,16 -657,16 +656,16 @@@ view_alert_common_tab_dampening_partial
view_alert_common_tab_dampening_partial_occurrences_label = Ocorr\u00EAncias
view_alert_common_tab_dampening_partial_occurrences_label_tooltip = O n\u00FAmero de vezes que o conjunto de condi\u00E7\u00F5es deve ser satisfeito durante as \u00FAltimas N verifica\u00E7\u00F5es antes do alerta ser disparado.
view_alert_common_tab_general = Propriedades Gerais
- view_alert_common_tab_invalid_condition_category = Categoria de condi\u00E7\u00E3o inv\u00E1lida - favor reportar como um bug\: {0}
- view_alert_common_tab_invalid_dampening_category = Categora de sensibilidade inv\u00E1lida - favor reportar como um bug\: {0}
- view_alert_common_tab_invalid_time_units = Unidade de tempo inv\u00E1lida - favor reportar como um bug\: {0}
-view_alert_common_tab_invalid_condition_category = Categoria de condi\u00E7\u00E3o inv\u00E1lida - favor reportar como um bug: {0}
-view_alert_common_tab_invalid_dampening_category = Categora de sensibilidade inv\u00E1lida - favor reportar como um bug: {0}
-view_alert_common_tab_invalid_time_units = Unidade de tempo inv\u00E1lida - favor reportar como um bug: {0}
++view_alert_common_tab_invalid_condition_category = Categoria de condi\u00E7\u00E3o inv\u00E1lida - favor reportar como um bug\\\\\\\\: {0}
++view_alert_common_tab_invalid_dampening_category = Categora de sensibilidade inv\u00E1lida - favor reportar como um bug\\\\\\\\: {0}
++view_alert_common_tab_invalid_time_units = Unidade de tempo inv\u00E1lida - favor reportar como um bug\\\\\\\\: {0}
view_alert_common_tab_notifications = Notifica\u00E7\u00F5es
view_alert_common_tab_notifications_all_emails = Todos os Emails
view_alert_common_tab_notifications_bad_emails = Emails recusados
view_alert_common_tab_notifications_message = Mensagem
view_alert_common_tab_notifications_sender = Remetente
view_alert_common_tab_notifications_status = Status
--view_alert_common_tab_recovery = Recupera\u00E7\u00E3o~
++view_alert_common_tab_recovery = Recupera\u00E7\u00E3o
view_alert_definition_condition_editor_avilability_option_down = INDISPON\u00CDVEL
view_alert_definition_condition_editor_avilability_option_up = DISPON\u00CDVEL
view_alert_definition_condition_editor_avilability_tooltip = Especifica a mudan\u00E7a de estado na disponibilidade do recurso que ir\u00E1 disparar a condi\u00E7\u00E3o.
@@@ -697,7 -701,7 +700,7 @@@ view_alert_definition_condition_editor_
view_alert_definition_condition_editor_metric_calltime_common_name = M\u00E9trica do tempo de chamada
view_alert_definition_condition_editor_metric_calltime_common_regex = Express\u00E3o Regular
view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip = Se especificada, essa \u00E9 a express\u00E3o regular a ser satisfeita pela chamada para disparar a condi\u00E7\u00E3o.
- view_alert_definition_condition_editor_metric_calltime_threshold_tooltip = Especifica um tempo limite para a chamada que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O valor especificado deve ser absoluto e com uma unidade de medida opcional. \u00C9 necess\u00E1rio especificar o tempo limite da chamada para compar\u00E1-lo ao valor\: m\u00EDnimo, m\u00E1ximo ou m\u00E9dio.
-view_alert_definition_condition_editor_metric_calltime_threshold_tooltip = Especifica um tempo limite para a chamada que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O valor especificado deve ser absoluto e com uma unidade de medida opcional. \u00C9 necess\u00E1rio especificar o tempo limite da chamada para compar\u00E1-lo ao valor: m\u00EDnimo, m\u00E1ximo ou m\u00E9dio.
++view_alert_definition_condition_editor_metric_calltime_threshold_tooltip = Especifica um tempo limite para a chamada que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O valor especificado deve ser absoluto e com uma unidade de medida opcional. \u00C9 necess\u00E1rio especificar o tempo limite da chamada para compar\u00E1-lo ao valor\\\\\\\\: m\u00EDnimo, m\u00E1ximo ou m\u00E9dio.
view_alert_definition_condition_editor_metric_calltime_threshold_value = Valor do tempo de chamada
view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip = O valor do limiar (<i>threshold</i>) da m\u00E9trica usado para disparar a condi\u00E7\u00E3o quando comparado ao mecanismo de compara\u00E7\u00E3o escolhido.
view_alert_definition_condition_editor_metric_change_tooltip = Especifica a m\u00E9trica cujo valor deve ser alterado para disparar a condi\u00E7\u00E3o.
@@@ -763,7 -767,7 +766,7 @@@ view_alert_definition_notification_oper
view_alert_definition_notification_operation_editor_mode_specific = Recurso Espec\u00EDfico
view_alert_definition_notification_operation_editor_mode_this = Este Recurso
view_alert_definition_notification_operation_editor_mode_title = Modo de Sele\u00E7\u00E3o do Recurso
- view_alert_definition_notification_operation_editor_mode_unknown = OP\u00C7\u00C3O INV\u00C1LIDA - BUG\!
-view_alert_definition_notification_operation_editor_mode_unknown = OP\u00C7\u00C3O INV\u00C1LIDA - BUG!
++view_alert_definition_notification_operation_editor_mode_unknown = OP\u00C7\u00C3O INV\u00C1LIDA - BUG\\\\\\\\!
view_alert_definition_notification_operation_editor_operations_loadFailed = Falha ao carregar a lista de opera\u00E7\u00F5es dispon\u00EDveis
view_alert_definition_notification_operation_editor_operations_no_parameters = Esta opera\u00E7\u00E3o n\u00E3o recebe par\u00E2metros
view_alert_definition_notification_operation_editor_relative_ancestor = Iniciar a busca a partir de
@@@ -815,12 -819,12 +818,12 @@@ view_alert_details_field_recovery_info
view_alert_details_loadFailed = Falha ao recuperar detalhes do alerta
view_alerts_ack_confirm = Confirma o(s) alerta(s) selecionado(s)?
view_alerts_ack_confirm_all = Confirma todos os alertas?
- view_alerts_ack_failure = Falha ao confirmar alertas com os seguintes IDs\: {0}
-view_alerts_ack_failure = Falha ao confirmar alertas com os seguintes IDs: {0}
++view_alerts_ack_failure = Falha ao confirmar alertas com os seguintes IDs\\\\\\\\: {0}
view_alerts_ack_failure_all = N\u00E3o foi poss\u00EDvel confirmar todos os alertas
view_alerts_ack_success = Alertas {0} confirmados com sucesso
view_alerts_delete_confirm = Excluir o(s) alerta(s) selecionado(s)?
view_alerts_delete_confirm_all = Excluir todos os alertas?
- view_alerts_delete_failure = Falha ao excluir alertas com os seguintes IDs\: {0}
-view_alerts_delete_failure = Falha ao excluir alertas com os seguintes IDs: {0}
++view_alerts_delete_failure = Falha ao excluir alertas com os seguintes IDs\\\\\\\\: {0}
view_alerts_delete_failure_all = N\u00E3o foi poss\u00EDvel excluir os alertas
view_alerts_delete_success = Alertas {0} exclu\u00EDdos com sucesso
view_alerts_field_ack_status = Status
@@@ -849,9 -851,9 +850,11 @@@ view_alerts_loadFailed = Falha ao carre
view_alerts_table_filter_priority = Filtro de Prioridade
view_alerts_table_title_group = Hist\u00F3rico de Alertas do Grupo
view_alerts_table_title_resource = Hist\u00F3rico de Alertas do Recurso
--view_autoDiscoveryQ_committed = Committed
--view_autoDiscoveryQ_confirmSelect = Also select the platform children?
--view_autoDiscoveryQ_deleted = Deleted
++view_autoDiscoveryQ_committed = Registrado
++view_autoDiscoveryQ_confirmSelect = Selecionar recursos filhos desta plataforma?
++view_autoDiscoveryQ_confirmSelectAll = Selecionar recursos filhos para cada plataforma?
++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
@@@ -859,197 -861,202 +862,206 @@@ view_autoDiscoveryQ_field_name = Nome d
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 = (Required manage inventory permissions missing. See Administrator to change)~
--view_autoDiscoveryQ_showStatus = Show
++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
view_autoDiscoveryQ_title = Fila de Autodescoberta
view_autoDiscoveryQ_unignore = N\u00E3o ignorar
view_autoDiscoveryQ_unignoreFailure = Falha ao reimportar os recursos
--view_autoDiscoveryQ_unignoreSuccessful = You have successfully unignored the selected resources.~
--view_autoDiscoveryQ_uninventoried = Uninventoried
--view_bundleVersion_loadFailure = Failed to load bundle version data~
--view_bundle_bundle = Bundle~
--view_bundle_bundleDeployment = Bundle Deployment~
--view_bundle_bundleDeployments = Bundle Deployments~
--view_bundle_bundleDestinations = Bundle Destinations~
--view_bundle_bundleFiles = Bundle Files~
--view_bundle_bundleType = Bundle Type~
--view_bundle_bundleVersion = Bundle Version~
--view_bundle_bundleVersions = Bundle Versions~
--view_bundle_bundles = Bundles~
--view_bundle_createWizard_bundleDistro = Bundle Distribution~
--view_bundle_createWizard_cancelFailure = Failed to fully cancel the creation of bundle [{0}], version = [{1}] - the bundle may still exist in the database~
--view_bundle_createWizard_cancelSuccessful = Canceled the creation of bundle [{0}], version = [{1}]~
--view_bundle_createWizard_clickToUploadRecipe = Click to upload a recipe file~
--view_bundle_createWizard_createFailure = Failed to create the bundle~
--view_bundle_createWizard_createSuccessful = You have successfully created a bundle named [{0}] with a version of [{1}]~
--view_bundle_createWizard_enterRecipe = Please supply a valid recipe
--view_bundle_createWizard_enterUrl = Please enter a valid URL where the bundle distribution file can be downloaded from
--view_bundle_createWizard_failedToUploadDistroFile = Failed to upload bundle distribution file~
--view_bundle_createWizard_failedToUploadFile = Failed to upload bundle file~
--view_bundle_createWizard_loadBundleFileFailure = Cannot obtain bundle file information from server~
--view_bundle_createWizard_noAdditionalFilesNeeded = No additional files need to be uploaded for this bundle~
--view_bundle_createWizard_noBundleTypesAvail = No bundle types are available~
--view_bundle_createWizard_noBundleTypesSupported = No bundle types are supported - you must deploy a valid plugin that supports bundle deployments~
--view_bundle_createWizard_provideBundleDistro = Provide a Bundle Distribution
--view_bundle_createWizard_recipeOption = Recipe~
--view_bundle_createWizard_title = Create Bundle~
--view_bundle_createWizard_uploadInProgress = Upload is in progress... This can take several minutes for large files~
--view_bundle_createWizard_uploadOption = Upload~
--view_bundle_createWizard_uploadStepName = Provide a Bundle Distribution~
--view_bundle_createWizard_urlOption = URL~
--view_bundle_createWizard_windowTitle = Bundle Creation Wizard~
--view_bundle_createWizard_youMustChooseOne = You must choose one option in order to create a bundle!
--view_bundle_deleteConfirm = Are you sure you want to delete this bundle? All versions, destinations and deployments for this bundle will also be deleted.
--view_bundle_deploy = Deploy~
--view_bundle_deployDir = Deploy Directory~
--view_bundle_deployWizard_deployStep = Deploy Bundle to Destination Platforms~
--view_bundle_deployWizard_deploying = Deploying...~
--view_bundle_deployWizard_deploymentCreated = Created Deployment...~
--view_bundle_deployWizard_deploymentCreatedDetail = Created deployment [{0}] description [{1}]~
--view_bundle_deployWizard_deploymentCreatedDetail_concise = You have created the deployment [{0}]
--view_bundle_deployWizard_deploymentScheduled = Bundle Deployment Scheduled!~
--view_bundle_deployWizard_deploymentScheduledDetail = Scheduled bundle deployment [{0}] destination group [{1}]~
--view_bundle_deployWizard_deploymentScheduledDetail_concise = You have scheduled the bundle deployment
--view_bundle_deployWizard_destinationCreatedDetail = Created destination [{0}] description [{1}]~
--view_bundle_deployWizard_destinationCreatedDetail_concise = You have created the destination [{0}]
--view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel:
--view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist. (Note, for an existing destination deploy from the Destination view)~
--view_bundle_deployWizard_error_11 = Failed to find defined deployments.~
--view_bundle_deployWizard_error_12 = Failed to find defined bundles.~
--view_bundle_deployWizard_error_2 = Failed to delete new destination on Cancel:
--view_bundle_deployWizard_error_3 = Failed to Schedule Deployment!~
--view_bundle_deployWizard_error_4 = Failed to schedule deployment: {0}~
--view_bundle_deployWizard_error_5 = Failed to Create Deployment!~
--view_bundle_deployWizard_error_6 = Failed to create deployment: {0}~
--view_bundle_deployWizard_error_7 = Failed to get deployment name.~
--view_bundle_deployWizard_error_8 = You must select a valid resource group from the drop down~
--view_bundle_deployWizard_error_9 = Failed to delete new destination in nextPage:~
- view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle version.~
- view_bundle_deployWizard_getConfigStep = Set Deployment Configuration~
- view_bundle_deployWizard_getDestStep = New Destination~
- view_bundle_deployWizard_getDest_deployDir = Root Deployment Directory (on destination platforms)~
- view_bundle_deployWizard_getDest_desc = Destination Description~
- view_bundle_deployWizard_getDest_name = Destination Name~
- view_bundle_deployWizard_getInfoStep = Provide Deployment Information~
- view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on destination platform)~
- view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description~
- view_bundle_deployWizard_getInfo_deploymentName = Deployment Name~
- view_bundle_deployWizard_getOptionsStep = Deploy Options~
- view_bundle_deployWizard_getOptions_deployLater = Deploy Later~
- view_bundle_deployWizard_getOptions_deployNow = Deploy Now~
- view_bundle_deployWizard_getOptions_deployTime = Deployment Time~
- view_bundle_deployWizard_selectBundleStep = Select Deployment Bundle~
- view_bundle_deployWizard_selectBundle_single = Select only a single bundle for deployment.~
- view_bundle_deployWizard_selectVersionStep = Select Deployment Bundle Version~
- view_bundle_deployWizard_selectVersion_latest = Latest Version [{0}]~
- view_bundle_deployWizard_selectVersion_live = Live Version [{0}]~
- view_bundle_deployWizard_selectVersion_select = Select Version from List:~
- view_bundle_deployWizard_title = Bundle Deployment Wizard~
- view_bundle_deploy_action = Action~
- view_bundle_deploy_backButton = Back to Destination~
- view_bundle_deploy_clickForError = Click the icon for the error message
- view_bundle_deploy_deleteConfirm = Are you sure you want to delete this bundle deployment?
- view_bundle_deploy_deleteFailure = Failed to delete the bundle deployment [{0}]
- view_bundle_deploy_deleteSuccessful = You successfully deleted the bundle deployment [{0}]
- view_bundle_deploy_deployedBy = Deployed By
- view_bundle_deploy_deploymentPlatforms = Deployment Platforms~
- view_bundle_deploy_installDetails = Install Details~
- view_bundle_deploy_loadBundleFailure = Failed to find bundle~
- view_bundle_deploy_loadDeployFailure = Failed to load bundle deployments~
- view_bundle_deploy_loadFailure = Failed to load bundle deployment~
- view_bundle_deploy_name = Deployment Name~
- view_bundle_deploy_operatingSystem = Operating System~
- view_bundle_deploy_selectARow = Select a row to show installation details~
- view_bundle_deploy_tagUpdateFailure = Failed to update bundle deployment tags~
- view_bundle_deploy_tagUpdateSuccessful = You have successfully updated the bundle deployment tags~
- view_bundle_deploy_time = Deployment Time~
- view_bundle_deployed = Deployed~
- view_bundle_deployments = Deployments~
- view_bundle_dest_backToBundle = Back to Bundle~
- view_bundle_dest_created = Created~
- view_bundle_dest_deleteConfirm = Are you sure you want to delete this bundle destination? This only deletes it from the database; all bundle content that was deployed to this destination on remote machines will remain.
- view_bundle_dest_deleteFailure = Failed to delete the bundle destination [{0}]
- view_bundle_dest_deleteSuccessful = You successfully deleted the bundle destination [{0}]
- view_bundle_dest_deployDir = Deploy Directory~
- view_bundle_dest_group = Group~
- view_bundle_dest_lastDeployedVersion = Last Deployed Version~
- view_bundle_dest_lastDeploymentDate = Last Deployment Date~
- view_bundle_dest_lastDeploymentStatus = Last Deployment Status~
- view_bundle_dest_loadFailure = Failed to load bundle destinations~
- view_bundle_dest_loadFailureVersionInfo = Failed to load bundle destination deployed version information~
- view_bundle_dest_purgeConfirm = This will purge the bundle content from all remote machines. Are you sure you want to do this?
- view_bundle_dest_purgeFailure = Failed to purge the bundle destination [{0}] from some or all of the remote machines.
- view_bundle_dest_purgeSuccessful = You successfully purged the bundle destination [{0}] from all of the remote machines.
- view_bundle_dest_revertConfirm = This will revert all remote machines back to the previous bundle deployment. Are you sure you want to do this?
- view_bundle_dest_tagUpdateFailure = Failed to update bundle destination tags~
- view_bundle_dest_tagUpdateSuccessful = You have successfully updated the bundle destination tags~
- view_bundle_destinations = Destinations~
- view_bundle_fileListView_fileSize = File Size~
- view_bundle_fileListView_loadFailure = Failed to load bundle file data~
-##view_bundle_deployWizard_error_noBundleConfig = Failed to obtain bundle target information. Is the group you selected a valid compatible group that can be targeted for bundle deployments?
-view_bundle_deployWizard_getConfigSkip = No configuration needed for this bundle version.~
-view_bundle_deployWizard_getConfigStep = Set Deployment Configuration~
-view_bundle_deployWizard_getDestStep = New Destination~
-##view_bundle_deployWizard_getDest_deployDir = Deployment Directory
-##view_bundle_deployWizard_getDest_deployDir_help = The directory where the bundle will be deployed. This directory will be the same for all deployments on all resources but it is relative to the destination base directory location. This means that the absolute directory may have a different path on the different target resources depending on where the base location is on all the different target resources.
-##view_bundle_deployWizard_getDest_desc = Destination Description
-##view_bundle_deployWizard_getDest_destBaseDirName = Base Location
-##view_bundle_deployWizard_getDest_group_help = The group whose members will be the destination targets for all bundle deployments. Only compatible groups that contain resources that support bundle deployments are selectable.
-##view_bundle_deployWizard_getDest_name = Destination Name
-##view_bundle_deployWizard_getDest_name_help = The name of the destination, which will identify a particular group of resources and the destination directory on those resources for a particular bundle.
-view_bundle_deployWizard_getInfoStep = Provide Deployment Information~
-view_bundle_deployWizard_getInfo_clean = Clean Deployment? (wipe deploy directory on destination platform)~
-view_bundle_deployWizard_getInfo_deploymentDesc = Deployment Description~
-view_bundle_deployWizard_getInfo_deploymentName = Deployment Name~
-view_bundle_deployWizard_getOptionsStep = Deploy Options~
-view_bundle_deployWizard_getOptions_deployLater = Deploy Later~
-view_bundle_deployWizard_getOptions_deployNow = Deploy Now~
-view_bundle_deployWizard_getOptions_deployTime = Deployment Time~
-view_bundle_deployWizard_selectBundleStep = Select Deployment Bundle~
-view_bundle_deployWizard_selectBundle_single = Select only a single bundle for deployment.~
-view_bundle_deployWizard_selectVersionStep = Select Deployment Bundle Version~
-view_bundle_deployWizard_selectVersion_latest = Latest Version [{0}]~
-view_bundle_deployWizard_selectVersion_live = Live Version [{0}]~
-view_bundle_deployWizard_selectVersion_select = Select Version from List:~
-view_bundle_deployWizard_title = Bundle Deployment Wizard~
-view_bundle_deploy_action = Action~
-view_bundle_deploy_backButton = Back to Destination~
-view_bundle_deploy_clickForError = Click the icon for the error message
-view_bundle_deploy_deleteConfirm = Are you sure you want to delete this bundle deployment?
-view_bundle_deploy_deleteFailure = Failed to delete the bundle deployment [{0}]
-view_bundle_deploy_deleteSuccessful = You successfully deleted the bundle deployment [{0}]
-view_bundle_deploy_deployedBy = Deployed By
-view_bundle_deploy_deploymentPlatforms = Deployment Resource
-view_bundle_deploy_installDetails = Install Details~
-view_bundle_deploy_loadBundleFailure = Failed to find bundle~
-view_bundle_deploy_loadDeployFailure = Failed to load bundle deployments~
-view_bundle_deploy_loadFailure = Failed to load bundle deployment~
-view_bundle_deploy_name = Deployment Name~
-view_bundle_deploy_selectARow = Select a row to show installation details~
-view_bundle_deploy_tagUpdateFailure = Failed to update bundle deployment tags~
-view_bundle_deploy_tagUpdateSuccessful = You have successfully updated the bundle deployment tags~
-view_bundle_deploy_time = Deployment Time~
-view_bundle_deployed = Deployed~
-view_bundle_deployments = Deployments~
-view_bundle_dest_backToBundle = Back to Bundle~
-##view_bundle_dest_baseDirName = Base Location
-view_bundle_dest_created = Created~
-view_bundle_dest_deleteConfirm = Are you sure you want to delete this bundle destination? This only deletes it from the database; all bundle content that was deployed to this destination on remote machines will remain.
-view_bundle_dest_deleteFailure = Failed to delete the bundle destination [{0}]
-view_bundle_dest_deleteSuccessful = You successfully deleted the bundle destination [{0}]
-view_bundle_dest_deployDir = Deploy Directory~
-view_bundle_dest_group = Group~
-view_bundle_dest_lastDeployedVersion = Last Deployed Version~
-view_bundle_dest_lastDeploymentDate = Last Deployment Date~
-view_bundle_dest_lastDeploymentStatus = Last Deployment Status~
-view_bundle_dest_loadFailure = Failed to load bundle destinations~
-view_bundle_dest_loadFailureVersionInfo = Failed to load bundle destination deployed version information~
-view_bundle_dest_purgeConfirm = This will purge the bundle content from all remote machines. Are you sure you want to do this?
-view_bundle_dest_purgeFailure = Failed to purge the bundle destination [{0}] from some or all of the remote machines.
-view_bundle_dest_purgeSuccessful = You successfully purged the bundle destination [{0}] from all of the remote machines.
-view_bundle_dest_revertConfirm = This will revert all remote machines back to the previous bundle deployment. Are you sure you want to do this?
-view_bundle_dest_tagUpdateFailure = Failed to update bundle destination tags~
-view_bundle_dest_tagUpdateSuccessful = You have successfully updated the bundle destination tags~
-view_bundle_destinations = Destinations~
-view_bundle_fileListView_fileSize = File Size~
-view_bundle_fileListView_loadFailure = Failed to load bundle file data~
++view_autoDiscoveryQ_unignoreInProgress = Removendo status de recurso ignorado...
++view_autoDiscoveryQ_unignoreSuccessful = Status de recurso ignorado removido com sucesso para os recursos selecionados.
++view_autoDiscoveryQ_uninventoried = Removido do invent\\\\u00E1rio
++view_bundleVersion_loadFailure = Falha ao carregar dados da vers\u00E3o do bundle
++view_bundle_bundle = Bundle
++view_bundle_bundleDeployment = Implanta\\\\u00E7\\\\u00E3o do Bundle
++view_bundle_bundleDeployments = Implanta\\\\u00E7\\\\u00F5es do Bundle
++view_bundle_bundleDestinations = Destina\\\\u00E7\\\\u00E3o do Bundle
++view_bundle_bundleFiles = Arquivos do Bundle
++view_bundle_bundleType = Tipo de Bundle
++view_bundle_bundleVersion = Vers\\\\u00E3o do Bundle
++view_bundle_bundleVersions = Vers\\\\u00F5es do Bundle
++view_bundle_bundles = Bundles
++view_bundle_createWizard_bundleDistro = Distribui\\\\u00E7\\\\u00E3o do Bundle
++view_bundle_createWizard_cancelFailure = Falha ao cancelar a cria\\\\u00E7\\\\u00E3o do bundle [{0}], vers\\\\u00E3o = [{1}] - talvez o bundle ainda esteja gravado no banco de dados
++view_bundle_createWizard_cancelSuccessful = Cria\\\\u00E7\\\\u00E3o do bundle [{0}] cancelada, vers\\\\u00E3o = [{1}]
++view_bundle_createWizard_clickToUploadRecipe = Clique para fazer o upload do arquivo de script
++view_bundle_createWizard_createFailure = Falha ao criar o bundle
++view_bundle_createWizard_createSuccessful = Bundle [{0}] vers\\\\u00E3o [{1}] criado com sucesso
++view_bundle_createWizard_enterRecipe = Favor fornecer um script v\\\\u00E1lido
++view_bundle_createWizard_enterUrl = Favor informar uma URL v\\\\u00E1lida para download do arquivo de distribui\\\\u00E7\\\\u00E3o do bundle
++view_bundle_createWizard_failedToUploadDistroFile = Falha ao fazer o upload do arquivo de distribui\\\\u00E7\\\\u00E3o do bundle.
++view_bundle_createWizard_failedToUploadFile = Falha ao fazer o upload do bundle
++view_bundle_createWizard_loadBundleFileFailure = N\\\\u00E3o foi poss\\\\u00EDvel obter infoma\\\\u00E7\\\\u00F5es sobre o arquivo de bundle
++view_bundle_createWizard_noAdditionalFilesNeeded = N\\\\u00E3o \\\\u00E9 necess\\\\u00E1rio fazer upload de mais arquivos para este bundle
++view_bundle_createWizard_noBundleTypesAvail = Tipos de bundle n\\\\u00E3o dispon\\\\u00EDveis
++view_bundle_createWizard_noBundleTypesSupported = N\\\\u00E3o h\\\\u00E1 suporte para tipos de bundle - voc\\\\u00EA deve fazer o deploy de um plugin v\\\\u00E1lido para este tipo de implanta\\\\u00E7\\\\u00E3o
++view_bundle_createWizard_provideBundleDistro = Forne\\\\u00E7a um pacote de distribui\\\\u00E7\\\\u00E3o para o Bundle
++view_bundle_createWizard_recipeOption = Script
++view_bundle_createWizard_title = Criar um Bundle
++view_bundle_createWizard_uploadInProgress = Realizando o upload... Esta opera\\\\u00E7\\\\u00E3o pede demorar alguns minutos para arquivos grandes
++view_bundle_createWizard_uploadOption = Upload
++view_bundle_createWizard_uploadStepName = Fa\\\\u00E7a o upload dos arquivos do Bundle
++view_bundle_createWizard_urlOption = URL
++view_bundle_createWizard_windowTitle = Assistente de Cria\\\\u00E7\\\\u00E3o do Bundle
++view_bundle_createWizard_youMustChooseOne = \\\\u00C9 necess\\\\u00E1rio escolher uma op\\\\u00E7\\\\u00E3o para criar um bundle.
++view_bundle_deleteConfirm = Tem certeza que deseja excluir este bundle? Todas as vers\\\\u00F5es, destina\\\\u00E7\\\\u00F5es e implanta\\\\u00E7\\\\u00F5es para este bundle ser\\\\u00E3o exclu\\\\u00EDdas.
++view_bundle_deploy = Deploy
++view_bundle_deployDir = Diret\\\\u00F3rio de Deploy
++view_bundle_deployWizard_deployStep = Implantar o Bundle nas Plataformas de Destino
++view_bundle_deployWizard_deploying = Implantando...
++view_bundle_deployWizard_deploymentCreated = Implanta\\\\u00E7\\\\u00E3o Criada...
++view_bundle_deployWizard_deploymentCreatedDetail = Implanta\\\\u00E7\\\\u00E3o [{0}] com a descri\\\\u00E7\\\\u00E3o [{1}] criada
++view_bundle_deployWizard_deploymentCreatedDetail_concise = Implanta\\\\u00E7\\\\u00E3o [{0}] criada
++view_bundle_deployWizard_deploymentScheduled = Implanta\\\\u00E7\\\\u00E3o do Bundle Agendada!
++view_bundle_deployWizard_deploymentScheduledDetail = Implanta\\\\u00E7\\\\u00E3o do bundle [{0}] agendada para o grupo de destino [{1}]
++view_bundle_deployWizard_deploymentScheduledDetail_concise = Implanta\\\\u00E7\\\\u00E3o do bundle agendada
++view_bundle_deployWizard_destinationCreatedDetail = Destina\\\\u00E7\\\\u00E3o [{0}] criada com a descri\\\\u00E7\\\\u00E3o [{1}]
++view_bundle_deployWizard_destinationCreatedDetail_concise = Destina\\\\u00E7\\\\u00E3o [{0}] criada
++view_bundle_deployWizard_error_1 = Failed to delete new deployment on Cancel\nFalha ao excluir nova implanta\\\\u00E7\\\\u00E3o durante o cancelamento
++view_bundle_deployWizard_error_10 = Failed to create destination, it may already exist. (Note, for an existing destination deploy from the Destination view)\nFalha ao criar destina\\\\u00E7\\\\u00E3o, talvez ela j\\\\u00E1 exista. (Nota: caso a destina\\\\u00E7\\\\u00E3o j\\\\u00E1 exista fa\\\\u00E7a a implanta\\\\u00E7\\\\u00E3o atrav\\\\u00E9s da vis\\\\u00E3o de Destina\\\\u00E7\\\\u00E3o)
++view_bundle_deployWizard_error_11 = Falha ao encontrar defini\\\\u00E7\\\\u00F5es de implanta\\\\u00E7\\\\u00F5es.
++view_bundle_deployWizard_error_12 = Falha ao encontrar defini\\\\u00E7\\\\u00F5es de bundles.
++view_bundle_deployWizard_error_2 = Falha ao excluir nova destina\\\\u00E7\\\\u00E3o durante o cancelamento
++view_bundle_deployWizard_error_3 = Falha ao agendar implanta\\\\u00E7\\\\u00E3o!
++view_bundle_deployWizard_error_4 = Falha ao agendar a implanta\\\\u00E7\\\\u00E3o: {0}
++view_bundle_deployWizard_error_5 = Falha ao criar a implanta\\\\u00E7\\\\u00E3o!
++view_bundle_deployWizard_error_6 = Falha ao criar a implanta\\\\u00E7\\\\u00E3o: {0}
++view_bundle_deployWizard_error_7 = Falha ao recuperar o nome da implanta\\\\u00E7\\\\u00E3o.
++view_bundle_deployWizard_error_8 = Selecione um grupo de recursos v\\\\u00E1lido da lista
++view_bundle_deployWizard_error_9 = Falha ao excluir a nova destina\\\\u00E7\\\\u00E3o
++view_bundle_deployWizard_error_noBundleConfig = Falha ao obter informa\\\\u00E7\\\\u00F5es sobre o destino do bundle. Verifique se o grupo selecionado \\\\u00E9 um grupo v\\\\u00E1lido de recursos compat\\\\u00EDveis para implanta\\\\u00E7\\\\u00E3o do bundle.
++view_bundle_deployWizard_getConfigSkip = N\\\\u00E3o \\\\u00E9 necess\\\\u00E1rio fornecer configura\\\\u00E7\\\\u00F5es para esta vers\\\\u00E3o do bundle.
++view_bundle_deployWizard_getConfigStep = Definir configura\\\\u00E7\\\\u00E3o da implanta\\\\u00E7\\\\u00E3o.
++view_bundle_deployWizard_getDestStep = Nova Destina\\u00E7\\u00E3o
++view_bundle_deployWizard_getDest_deployDir = Diret\\\\u00F3rio de Deploy
++view_bundle_deployWizard_getDest_deployDir_help = Diret\u00F3rio onde o bundle ser\u00E1 implantado. Este diret\u00F3rio ser\u00E1 o mesmo para todas as implanta\u00E7\u00F5es em todos os recursos, mas o caminho \u00E9 relativo ao diret\u00F3rio raiz definido para a destina\u00E7\u00E3o. Isto significa que o caminho absoluto do diret\u00F3rio pode diferir dependendo do local raiz definido para cada recurso alvo.
++view_bundle_deployWizard_getDest_desc = Descri\\\\u00E7\\\\u00E3o da Destina\\\\u00E7\\\\u00E3o
++view_bundle_deployWizard_getDest_destBaseDirName = Local Raiz
++view_bundle_deployWizard_getDest_group_help = Grupo cujo os membros ser\\u00E3o destinos de todas as implanta\\u00E7\\u00F5es de bundle. Somente grupos de recursos compat\\u00EDveis com suporte a implanta\\u00E7\\u00F5s de bundle podem ser selecionados.
++view_bundle_deployWizard_getDest_name = Nome da Destina\\u00E7\\u00E3o
++view_bundle_deployWizard_getDest_name_help = O nome da destina\\u00E7\\u00E3o que ser\\u00E1 utilizado para identificar um grupo espec\\u00EDfico de recursos bem como o diret\\u00F3rio de destino para determinado bundle.
++view_bundle_deployWizard_getInfoStep = Forne\\u00E7a as informa\\u00E7\\u00F5es referente a implanta\\u00E7\\u00E3o
++view_bundle_deployWizard_getInfo_clean = Limpar Implanta\\u00E7\\u00E3o? (apaga o conte\\u00FAdo do diret\\u00F3rio de deploy na plataforma de destino)
++view_bundle_deployWizard_getInfo_deploymentDesc = Descri\\u00E7\\u00E3o da Implanta\\u00E7\\u00E3o
++view_bundle_deployWizard_getInfo_deploymentName = Nome da Implanta\\u00E7\\u00E3o
++view_bundle_deployWizard_getOptionsStep = Op\\u00E7\\u00F5es de Implanta\\u00E7\\u00E3o
++view_bundle_deployWizard_getOptions_deployLater = Implantar mais tarde
++view_bundle_deployWizard_getOptions_deployNow = Implantar agora
++view_bundle_deployWizard_getOptions_deployTime = Tempo de Implanta\\u00E7\\u00E3o
++view_bundle_deployWizard_selectBundleStep = Selecione o Bundle para Implanta\\u00E7\\u00E3o
++view_bundle_deployWizard_selectBundle_single = Selecione apenas um bundle para implanta\\u00E7\\u00E3o.
++view_bundle_deployWizard_selectVersionStep = Selecione a vers\\u00E3o da implanta\\u00E7\\u00E3o do Bundle
++view_bundle_deployWizard_selectVersion_latest = \\u00DAltima vers\\u00E3o [{0}]
++view_bundle_deployWizard_selectVersion_live = Vers\\u00E3o atual [{0}]
++view_bundle_deployWizard_selectVersion_select = Selecione uma vers\\u00E3o espec\\u00EDfica da lista:
++view_bundle_deployWizard_title = Assitente de Implanta\\u00E7\\u00E3o
++view_bundle_deploy_action = A\\\\u00E7\\\\u00E3o
++view_bundle_deploy_backButton = Retornar \\\\u00E0 destina\\\\u00E7\\\\u00E3o
++view_bundle_deploy_clickForError = Clique no \\\\u00EDcone para visualizar a mensagem de erro
++view_bundle_deploy_deleteConfirm = Tem certeza que deseja excluir esta implanta\\\\u00E7\\\\u00E3o do bundle?
++view_bundle_deploy_deleteFailure = Falha do excluir a implanta\\\\u00E7\\\\u00E3o do bundle [{0}]
++view_bundle_deploy_deleteSuccessful = Implanta\\\\u00E7\\\\u00E3o do bundle [{0}] exclu\\\\u00EDda com sucesso
++view_bundle_deploy_deployedBy = Implatando por
++view_bundle_deploy_deploymentPlatforms = Recurso de implanta\\\\u00E7\\\\u00E3o
++view_bundle_deploy_installDetails = Detalhes de instala\\\\u00E7\\\\u00E3o
++view_bundle_deploy_loadBundleFailure = Falha ao encontrar o bundle
++view_bundle_deploy_loadDeployFailure = Falha ao carregar as implanta\\\\u00E7\\\\u00F5es do bundle
++view_bundle_deploy_loadFailure = Falha ao carregar a implanta\\\\u00E7\\\\u00E3o do bundle
++view_bundle_deploy_name = Nome da Implanta\\\\u00E7\\\\u00E3o
++view_bundle_deploy_selectARow = Selecione um linha para apresentar os detalhes da instala\\\\u00E7\\\\u00E3o
++view_bundle_deploy_tagUpdateFailure = Falha ao atualizar as tags para a implanta\\\\u00E7\\\\u00E3o do bundle
++view_bundle_deploy_tagUpdateSuccessful = Tags ataulizadas com sucesso
++view_bundle_deploy_time = Tempo de implanta\\\\u00E7\\\\u00E3o
++view_bundle_deployed = Implantado
++view_bundle_deployments = Implanta\\u00E7\\u00F5es
++view_bundle_dest_backToBundle = Retonar ao Bundle
++view_bundle_dest_baseDirName = Local Raiz
++view_bundle_dest_created = Criado
++view_bundle_dest_deleteConfirm = Tem certeza de que deseja excluir esta destina\u00E7\u00E3o? Esta opera\u00E7\u00E3o apenas exclui a destina\u00E7\u00E3o do banco de dados; todo o conte\u00FAdo implantado anteriormente atrav\u00E9s do bundle nesta destina\u00E7\u00E3o em plataformas remotas permanece inalterado.
++view_bundle_dest_deleteFailure = Falha ao excluir a destina\u00E7\u00E3o [{0}]
++view_bundle_dest_deleteSuccessful = Destina\u00E7\u00E3o [{0}] exclu\u00EDda com sucesso!
++view_bundle_dest_deployDir = Diret\u00F3rio de Deploy
++view_bundle_dest_group = Grupo
++view_bundle_dest_lastDeployedVersion = \u00DAltima vers\u00E3o implantada
++view_bundle_dest_lastDeploymentDate = \u00DAltima data de implanta\u00E7\u00E3o
++view_bundle_dest_lastDeploymentStatus = \u00DAltimo status de implanta\u00E7\u00E3o
++view_bundle_dest_loadFailure = Falha ao carregar as destina\u00E7\u00F5es de Bundle
++view_bundle_dest_loadFailureVersionInfo = Falha ao carregar as informa\u00E7o\u1EBDs sobre vers\u00F5es de destina\u00E7\u00E3o de bundle
++view_bundle_dest_purgeConfirm = Esta opera\u00E7\u00E3o remove o conte\u00FAdo do bundle de todas as m\u00E1quinas remotas. Tem certeza de deseja fazer isto?
++view_bundle_dest_purgeFailure = Falha ao tentar limpar a destina\u00E7\u00E3o [{0}] em algumas ou todas as m\u00E1quinas remotas.
++view_bundle_dest_purgeSuccessful = Limpeza da destina\u00E7\u00E3o [{0}] realizada com sucesso em todas as m\u00E1quinas remotas.
++view_bundle_dest_revertConfirm = Esta opera\u00E7\u00E3o reverte todas as m\u00E1quinas remotas para a implanta\u00E7\u00E3o anterior deste bundle. Tem certeza de que deseja fazer isto?
++view_bundle_dest_tagUpdateFailure = Falha ao atualizar as tags para esta destina\u00E7\u00E3o
++view_bundle_dest_tagUpdateSuccessful = Tags atualizadas com sucesso para esta destina\u00E7\u00E3o!
++view_bundle_destinations = Destina\u00E7\u00F5es
++view_bundle_fileListView_fileSize = Tamanho do Arquivo
++view_bundle_fileListView_loadFailure = Falha ao carregar dados do arquivo de bundle
view_bundle_fileListView_md5 = MD5
view_bundle_fileListView_sha256 = SHA256
--view_bundle_files = Files~
--view_bundle_latestVersion = Latest Version~
--view_bundle_list_backToAll = Back to All Bundles~
--view_bundle_list_deleteConfirm = Are you sure you want to delete this bundle?~
--view_bundle_list_deleteFailure = Failed to delete the bundle [{0}]~
--view_bundle_list_deleteSuccessful = You successfully deleted the bundle named [{0}]~
--view_bundle_list_deletesFailure = Failed to delete the bundles
--view_bundle_list_deletesSuccessful = You successfully deleted the bundles
--view_bundle_list_destinationsCount = Destinations Count~
--view_bundle_list_error1 = Failed to load bundle to deploy [{0}]~
--view_bundle_list_error2 = Failed to get a single bundle to deploy [{0}]~
--view_bundle_list_error3 = Failed to load bundle~
--view_bundle_list_loadFailure = Failed to load the bundle to be deployed [{0}]~
--view_bundle_list_loadWithLatestFailure = Failed to load bundle with the latest version data~
--view_bundle_list_singleLoadFailure = Failed to get a single bundle to be deployed [{0}]~
--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~
--view_bundle_revertWizard_confirmStep_confirmation = Reverting Live Deployment to Previous Deployment. Click "Next" to continue...~
--view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment = Failed to find live deployment; cannot revert~
--view_bundle_revertWizard_confirmStep_liveDeployment = Live Deployment~
--view_bundle_revertWizard_confirmStep_name = Revert Deployment Confirmation~
--view_bundle_revertWizard_confirmStep_noLiveDeployment = No live deployment was found for the destination [{0}]~
--view_bundle_revertWizard_confirmStep_noLiveDeployment_concise = No live deployment was found for the destination
--view_bundle_revertWizard_confirmStep_noPriorDeployment = The live deployment [{0}] cannot be reverted because there is no prior deployment for the destination [{1}]~
--view_bundle_revertWizard_confirmStep_noPriorDeployment_concise = The live deployment cannot be reverted because there is no prior deployment
--view_bundle_revertWizard_confirmStep_prevDeployment = Previous Deployment~
--view_bundle_revertWizard_getInfoStep_cleanDeploy = Clean Deployment? (this will delete an old, existing deploy directory prior to starting the revert deployment)~
--view_bundle_revertWizard_getInfoStep_getNameFailure = Failed to get revert deployment name~
--view_bundle_revertWizard_getInfoStep_name = Provide Revert Information~
--view_bundle_revertWizard_getInfoStep_revertDeployDesc = Revert Deploy Description~
--view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [REVERT From]\\n{0}\\n\\n[REVERT To]\\n{1}~
--view_bundle_revertWizard_getInfoStep_revertDeployName = Revert Deploy Name~
--view_bundle_revertWizard_revertStep_name = Deploy Bundle to Destination Platforms~
--view_bundle_revertWizard_revertStep_reverting = Reverting...~
--view_bundle_revertWizard_revertStep_scheduled = You have successfully scheduled the revert deployment!~
--view_bundle_revertWizard_revertStep_scheduledDetails = You have successfully scheduled to revert the bundle deployment [{0}] from resource group [{1}]~
--view_bundle_revertWizard_revertStep_scheduledFailure = Failed to schedule revert deployment!~
--view_bundle_revertWizard_title = Bundle Revert~
--view_bundle_revertWizard_windowTitle = Bundle Revert Wizard~
--view_bundle_tree_loadFailure = Failed to load bundle data~
--view_bundle_version_backToBundle = Back to Bundle~
--view_bundle_version_bundleVersionTagUpdateFailure = Failed to update bundle version tags~
--view_bundle_version_bundleVersionTagUpdateSuccessful = You have successfully updated the bundle version tags~
--view_bundle_version_deleteConfirm = Are you sure you want to delete this bundle version?
--view_bundle_version_deleteFailure = Failed to delete the bundle version [{0}]
--view_bundle_version_deleteSuccessful = You successfully deleted the bundle version [{0}]
--view_bundle_version_loadFailure = Failed to load bundle version~
--view_bundle_versions = Versions~
++view_bundle_files = Arquivos
++view_bundle_latestVersion = \u00DAltima Vers\u00E3o
++view_bundle_list_backToAll = Retornar todos os Bundles
++view_bundle_list_deleteConfirm = Tem certeza de que deseja excluir este Bundle?
++view_bundle_list_deleteFailure = Falha ao excluir o bundle [{0}]
++view_bundle_list_deleteSuccessful = O Bundle chamado [{0}] foi exclu\u00EDdo com sucesso!
++view_bundle_list_deletesFailure = Falha ao exlcuir os bundles
++view_bundle_list_deletesSuccessful = Bundles exclu\u00EDdos com sucesso!
++view_bundle_list_destinationsCount = Soma das Destina\u00E7\u00F5es
++view_bundle_list_error1 = Falha ao carregar bundle [{0}] para implantar
++view_bundle_list_error2 = Falha ao obter um \u00FAnico bundle [{0}] para deploy
++view_bundle_list_error3 = Falha ao carregar o bundle
++view_bundle_list_loadFailure = Falha ao carregar o bundle [{0}] para ser implantado
++view_bundle_list_loadWithLatestFailure = Falha ao carregar o bundle com os dados da \u00FAltima vers\u00E3o
++view_bundle_list_singleLoadFailure = Falha ao obter um \u00FAnico bundle [{0}] para ser implantado
++view_bundle_list_tagUpdateFailure = Falha ao atualizar as tags do bundle
++view_bundle_list_tagUpdateSuccessful = Tags do bundle atualizadas com sucesso!
++view_bundle_list_versionsCount = Soma das Vers\u00F5es
++view_bundle_purge = Limpar
++view_bundle_recipe = Script
++view_bundle_resDeployDS_loadFailure = Falha ao carregar as informa\u00E7oes sobre as implanta\u00E7\u00F5es do bundle
++view_bundle_revert = Reverter
++view_bundle_revertWizard_confirmStep_confirmation = Revertendo a implanta\u00E7\u00E3o ativa para a atenterior. Clique em "Next" para continuar...
++view_bundle_revertWizard_confirmStep_failedToFindLiveDeployment = Falha ao encontrar a implanta\u00E7\u00E3o ativa. N\u00E3o foi poss\u00EDvel realizar a revers\u00E3o.
++view_bundle_revertWizard_confirmStep_liveDeployment = Implanta\u00E7\u00E3o ativa.
++view_bundle_revertWizard_confirmStep_name = Confirma\u00E7\u00E3o de Revers\u00E3o da implanta\u00E7\u00E3o
++view_bundle_revertWizard_confirmStep_noLiveDeployment = Nenhuma implanta\u00E7\u00E3o ativa foi encontrada para destina\u00E7\u00E3o [{0}]
++view_bundle_revertWizard_confirmStep_noLiveDeployment_concise = Nenhuma implanta\u00E7\u00E3o ativa foi encontrada para esta destina\u00E7\u00E3o.
++view_bundle_revertWizard_confirmStep_noPriorDeployment = A implanta\u00E7\u00E3o ativa [{0}] n\u00E3o pode ser revertida porque n\u00E3o existe uma implanta\u00E7\u00E3o anterior para a destina\u00E7\u00E3o [{1}]
++view_bundle_revertWizard_confirmStep_noPriorDeployment_concise = A implanta\u00E7\u00E3o ativa n\u00E3o pode ser revertida porque n\u00E3o existe uma anterior
++view_bundle_revertWizard_confirmStep_prevDeployment = Implanta\u00E7\u00E3o Anterior
++view_bundle_revertWizard_getInfoStep_cleanDeploy = Limpar a Implanta\u00E7\u00E3o? (esta opera\u00E7\u00E3o excluir\u00E1 qualquer diret\u00F3rio de deploy existente antes de iniciar a revers\u00E3o da implanta\u00E7\u00E3o)
++view_bundle_revertWizard_getInfoStep_getNameFailure = Falha ao obter o nome da implanta\u00E7\u00E3o de revers\u00E3o
++view_bundle_revertWizard_getInfoStep_name = Forne\u00E7a as informes para revers\u00E3o
++view_bundle_revertWizard_getInfoStep_revertDeployDesc = Descri\u00E7\u00E3o da implanta\u00E7\u00E3o de revers\u00E3o
++view_bundle_revertWizard_getInfoStep_revertDeployDescFull = [REVERTER de]\\\\\\\\\n{0}\\\\\\\\\n\\\\\\\\\n[REVERTER PARA]\\\\\\\\\n{1}
++view_bundle_revertWizard_getInfoStep_revertDeployName = Nome da Implanta\u00E7\u00E3o de Revers\u00E3o
++view_bundle_revertWizard_revertStep_name = Implantar Bundle nas Plataformas de Destino
++view_bundle_revertWizard_revertStep_reverting = Revertendo...
++view_bundle_revertWizard_revertStep_scheduled = Revers\u00E3o de implanta\u00E7\u00E3o agendada com sucesso!
++view_bundle_revertWizard_revertStep_scheduledDetails = Revers\u00E3o da implanta\u00E7\u00E3o [{0}] para o grupo de recursos [{1}] agendada com sucesso!
++view_bundle_revertWizard_revertStep_scheduledFailure = Falha ao agendar a revers\u00E3o da implanta\u00E7\u00E3o!
++view_bundle_revertWizard_title = Revers\u00E3o do Bundle
++view_bundle_revertWizard_windowTitle = Assistente de revers\u00E3o do Bundle
++view_bundle_tree_loadFailure = Falha ao carregar dados do Bundle
++view_bundle_version_backToBundle = Retornar ao Bundle
++view_bundle_version_bundleVersionTagUpdateFailure = Falha ao atualizar as tags da vers\u00E3o do bundle
++view_bundle_version_bundleVersionTagUpdateSuccessful = Tags da vers\u00E3o do bundle atualizadas com sucesso!
++view_bundle_version_deleteConfirm = Tem certeza de que deseja excluir est\u00E1 vers\u00E3o do bundle?
++view_bundle_version_deleteFailure = Falha ao excluir a vers\u00E3o [{0}] do bundle
++view_bundle_version_deleteSuccessful = Vers\u00E3o [{0}] do bundle exclu\u00EDda com sucesso!
++view_bundle_version_loadFailure = Falha ao carregar a vers\u00E3o do Bundle
++view_bundle_versions = Vers\u00F5es
view_configCompare_comparingConfigs = Comparando Configura\u00E7\u00F5es
view_configCompare_configCompare = Compara\u00E7\u00E3o de Configura\u00E7\u00F5es
view_configEdit_addItem = Adicionar Item \u00E0 Lista
@@@ -1071,137 -1078,165 +1083,164 @@@ view_configEdit_msg_4 = Item adicionad
view_configEdit_properties = Propriedades
view_configEdit_tooltip_1 = Remove os itens selecionados da lista.
view_configEdit_tooltip_2 = Adiciona um item \u00E0 lista.
--view_configEdit_viewRow = View Row
--view_configurationDetails_allPropertiesValid = All configuration properties have valid values, so the configuration can now be saved.~
--view_configurationDetails_configNotUpdatedDueToNoChange = Configuration was not updated, since the new configuration is equivalent to the current configuration.
--view_configurationDetails_error_updateFailure = Failed to update configuration.~
--view_configurationDetails_messageConcise = Configuration updated - current version is {0}.~
--view_configurationDetails_messageDetailed = Configuration updated to version {0} for Resource [{1}].
--view_configurationDetails_noPermission = You do not have permission to edit this Resource''s configuration.~
--view_configurationDetails_somePropertiesInvalid = The following configuration properties have invalid values: {0}. The values must be corrected before the configuration can be saved.~
--view_configurationHistoryDetails_dialogTitle = Configuration Details~
--view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.~
--view_configurationHistoryList_cannotDeleteCurrent = One of the selected history items represents the current configuration - you cannot delete it.
- view_configurationHistoryList_cannotDeleteGroupItems = One or more selected configuration history items are part of a group configuration update. \
- view_configurationHistoryList_delete_failure = Failed to delete the configuration history items.
- view_configurationHistoryList_delete_success = You successfully deleted the selected configuration history items.
- view_configurationHistoryList_itemNamePlural = configuration history items
- view_configurationHistoryList_rollback = Rollback
- view_configurationHistoryList_rollback_failure = Failed to rollback the configuration. The original configuration is still in effect.
- view_configurationHistoryList_rollback_success = You successfully rolled back the configuration to the selected past configuration.
- view_configurationHistoryList_table_clickStatusIcon = Click the status icon for full details
- view_configurationHistoryList_table_statusFailure = This configuration update failed
- view_configurationHistoryList_table_statusInprogress = This configuration update is still in progress
- view_configurationHistoryList_table_statusNochange = No changes were made to this configuration
- view_configurationHistoryList_table_statusSuccess = This configuration update was successful
- view_configurationHistoryList_title = Configuration History~
- view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid values, so the settings can now be saved.~
- view_connectionSettingsDetails_error_updateFailure = Failed to update connection settings.~
- view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings updated.~
- view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings updated for Resource [{0}].~
- view_connectionSettingsDetails_noPermission = You do not have permission to edit this Resource''s connection settings.~
- view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings have invalid values: {0}. The values must be corrected before the settings can be saved.~
- view_core_error_1 = Falha ao perquisar novos alertas~
- view_core_loggedInAs = Logado como {0}~
- view_core_loggedOut = Logged out~
- view_core_noRecentAlerts = There are no recent alerts to report
- view_core_recentAlerts = [{0}] alertas recentes~
- view_core_uncaught = Exce\u00E7\u00E3o n\u00E3o capturada~
- view_dashboardManager_deleteFail = Failed to delete dashboard.
- view_dashboardManager_deleted = Successfully deleted dashboard {0}~
- view_dashboardManager_error = Failed to save dashboard to server~
- view_dashboardManager_saved = Saved dashboard {0} to server~
- view_dashboardManager_success = Saved dashboard~
- view_dashboard_favorites_error1 = Failed to load favorite Resources.~
- view_dashboardsManager_error1 = Failed to add new dashboard~
- view_dashboardsManager_inventory_title = Inventory Summary~
- view_dashboardsManager_mashup_title = RHQ News~
- view_dashboardsManager_message_title = Welcome To RHQ~
- view_dashboardsManager_message_title_details = <h1>Welcome to RHQ</h1>\n<p>The RHQ project 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_dashboardsManager_tagcloud_title = Tag Cloud~
- view_dashboards_confirm1 = Are you sure you want to delete~
- view_dashboards_portlets_refresh_fail1 = Failed to update interval for portlets that auto-refresh
- view_dashboards_portlets_refresh_fail2 = Failed to disable reload for portlets that auto-refresh
- view_dashboards_portlets_refresh_multiple_min = {0} minutes
- view_dashboards_portlets_refresh_none = No Refresh
- 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_dynagroup_children = DynaGroup Children~
- view_dynagroup_compatible = Compatible
- view_dynagroup_definitionAlreadyExists = A group definition already exists with this name~
- view_dynagroup_definitionCreated = You have successfully created a group definition named [{0}]~
- view_dynagroup_definitionLoadFailure = Failed to load group definitions~
- view_dynagroup_definitions = DynaGroup Definitions~
- view_dynagroup_deleteFailureSelection = Failed to delete the selected group definitions~
- view_dynagroup_deleteSuccessfulSelection = You have successfully deleted [{0}] group definitions~
- view_dynagroup_editing = Editing [{0}]~
- view_dynagroup_exprBuilder_addExpression = Add Expression
- view_dynagroup_exprBuilder_comparisonType = Comparison Type
- view_dynagroup_exprBuilder_comparisonType_contains = contains
- view_dynagroup_exprBuilder_comparisonType_endsWith = ends with
- view_dynagroup_exprBuilder_comparisonType_equals = equals
- view_dynagroup_exprBuilder_comparisonType_startsWith = starts with
- view_dynagroup_exprBuilder_comparisonType_tooltip = Comparison Type
- view_dynagroup_exprBuilder_definingPlugin = Defining Plugin
- view_dynagroup_exprBuilder_definingPlugin_tooltip = The plugin to search
- view_dynagroup_exprBuilder_expression = Expression
- view_dynagroup_exprBuilder_expressionType = Expression Type
- view_dynagroup_exprBuilder_expressionType_pluginConfig = Plugin Configuration
- view_dynagroup_exprBuilder_expressionType_resource = Resource
- view_dynagroup_exprBuilder_expressionType_resourceCategory = Resource Category
- view_dynagroup_exprBuilder_expressionType_resourceConfig = Resource Configuration
- view_dynagroup_exprBuilder_expressionType_resourceType = Resource Type
- view_dynagroup_exprBuilder_expressionType_tooltip = The type of property this expression switches on\:<br/> <b>Resource</b>\: A resource property such as its name or version<br/> <b>Resource Type</b>\: Search for resources of a specific type<br/> <b>Resource Category</b>\: Search for resources by category\: platform, server, service<br/> <b>Trait</b>\: Resources that have selected values for a monitored trait<br/> <b>Plugin Configuration</b>\: Search by the plugin component configuration setting of the component<br/> <b>Resource Configuration</b>\: Search by the configuration setting of the managed resource
- view_dynagroup_exprBuilder_expressionType_trait = Trait
- view_dynagroup_exprBuilder_expression_tooltip = This is the full expression that is represented by the selections in the form below. This text will be added to your group definition expression text when you click the "Add Expression" button.
- view_dynagroup_exprBuilder_groupBy = Group by
- view_dynagroup_exprBuilder_groupBy_tooltip = GroupBy will cause the system to pivot on the values from the entered expressions creating a separate group for each value. For example, GroupBy on the cluster name to create a group for each cluster with all cluster members in it.
- view_dynagroup_exprBuilder_noPlugins = --No plugins--
- view_dynagroup_exprBuilder_noProperties = --No properties--
- view_dynagroup_exprBuilder_noResourceTypes = --No resource types--
- view_dynagroup_exprBuilder_pluginLoadFailure = Cannot get the list of plugins
- view_dynagroup_exprBuilder_propLoadFailure = Cannot get list of properties
- view_dynagroup_exprBuilder_propertyName = Property Name
- view_dynagroup_exprBuilder_propertyName_tooltip = The name of the property to query. This is defined by the expression type as well as the resource type.
- view_dynagroup_exprBuilder_resTypeLoadFailure = Cannot get list of resource types for plugin [{0}]
- view_dynagroup_exprBuilder_resource = Resource
- view_dynagroup_exprBuilder_resourceType = Resource Type
- view_dynagroup_exprBuilder_resourceType_tooltip = The type of resource
- view_dynagroup_exprBuilder_resource_child = Child
- view_dynagroup_exprBuilder_resource_grandparent = Grandparent
- view_dynagroup_exprBuilder_resource_greatGrandparent = GreatGrandparent
- view_dynagroup_exprBuilder_resource_greatGreatGrandparent = GreatGreatGrandparent
- view_dynagroup_exprBuilder_resource_parent = Parent
- view_dynagroup_exprBuilder_resource_resource = Resource
- view_dynagroup_exprBuilder_resource_tooltip = Choose the level of the resource you wish to select. For example, select "parent" will find resources whose parent resource matches the rest of the expression.
- view_dynagroup_exprBuilder_title = Expression Builder
- view_dynagroup_exprBuilder_unset = Unset
- view_dynagroup_exprBuilder_unset_tooltip = Unset will find all of the values that have a null value in the database. This is not possible using the " = " operator because of how databases store and query data.
- view_dynagroup_exprBuilder_value_tooltip = The string value for the expression to query
- view_dynagroup_expression = Expression~
- view_dynagroup_expressionBuilderIconTooltip = Expression Builder...
- view_dynagroup_expressionSet = Expression Set~
- view_dynagroup_lastCalculationTime = Last Calculation Time~
- view_dynagroup_loadDefinitionFailure = Failed to load group definition [{0}]~
- view_dynagroup_loadDefinitionMissing = There is no group definition with the ID of [{0}]~
- view_dynagroup_mixed = Mixed
- view_dynagroup_newGroupDefinition = New Group Definition~
- view_dynagroup_nextCalculationTime = Next Calculation Time~
- view_dynagroup_permDenied = You do not have permission to view group definitions~
- view_dynagroup_permUnknown = Could not determine if you have the proper permissions - access is denied~
- view_dynagroup_recalcFailure = Failed to recalculated this group definition~
- view_dynagroup_recalcFailureSelection = Failed to recalculated the selected group definitions~
- view_dynagroup_recalcSuccessful = You have successfully recalculated this group definition~
- view_dynagroup_recalcSuccessfulSelection = You have successfully recalculated [{0}] group definitions~
- view_dynagroup_recalculate = Recalculate~
- view_dynagroup_recalculationInterval = Recalculation Interval~
- view_dynagroup_recursive = Recursive~
- view_dynagroup_saveAndRecalculate = Save & Recalculate~
- view_dynagroup_saveFailure = Failed to save the group definition named [{0}]~
- view_dynagroup_saveSuccessful = You have successfully saved the group definition named [{0}]~
- view_dynagroup_singleSaveFailure = An error occurred - there should have been one created, but instead there were [{0}] created~
-view_configurationHistoryList_cannotDeleteGroupItems = One or more selected configuration history items are part of a group configuration update. view_configurationHistoryList_delete_failure = Failed to delete the configuration history items.
-view_configurationHistoryList_delete_success = You successfully deleted the selected configuration history items.
-view_configurationHistoryList_itemNamePlural = configuration history items
-view_configurationHistoryList_rollback = Rollback
-view_configurationHistoryList_rollback_failure = Failed to rollback the configuration. The original configuration is still in effect.
-view_configurationHistoryList_rollback_success = You successfully rolled back the configuration to the selected past configuration.
-view_configurationHistoryList_table_clickStatusIcon = Click the status icon for full details
-view_configurationHistoryList_table_statusFailure = This configuration update failed
-view_configurationHistoryList_table_statusInprogress = This configuration update is still in progress
-view_configurationHistoryList_table_statusNochange = No changes were made to this configuration
-view_configurationHistoryList_table_statusSuccess = This configuration update was successful
-view_configurationHistoryList_title = Configuration History~
-view_connectionSettingsDetails_allPropertiesValid = All connection settings have valid values, so the settings can now be saved.~
-view_connectionSettingsDetails_error_updateFailure = Failed to update connection settings.~
-##view_connectionSettingsDetails_messageConcise_updateSuccess = Connection settings updated.~
-##view_connectionSettingsDetails_messageDetailed_updateSuccess = Connection settings updated for Resource [{0}].~
-view_connectionSettingsDetails_noPermission = You do not have permission to edit this Resource''s connection settings.~
-view_connectionSettingsDetails_somePropertiesInvalid = The following connection settings have invalid values: {0}. The values must be corrected before the settings can be saved.~
-view_core_error_1 = Falha ao perquisar novos alertas~
-view_core_loggedInAs = Logado como {0}~
-view_core_loggedOut = Logged out~
-view_core_noRecentAlerts = There are no recent alerts to report
-view_core_recentAlerts = [{0}] alertas recentes~
-view_core_uncaught = Exce\u00E7\u00E3o n\u00E3o capturada~
-view_dashboardManager_deleteFail = Failed to delete dashboard.
-view_dashboardManager_deleted = Successfully deleted dashboard {0}~
-view_dashboardManager_error = Failed to save dashboard to server~
-view_dashboardManager_saved = Saved dashboard {0} to server~
-view_dashboardManager_success = Saved dashboard~
-view_dashboard_favorites_error1 = Failed to load favorite Resources.~
-view_dashboardsManager_error1 = Failed to add new dashboard~
-view_dashboardsManager_inventory_title = Inventory Summary~
-view_dashboardsManager_mashup_title = RHQ News~
-view_dashboardsManager_message_title = Welcome To RHQ~
-view_dashboardsManager_message_title_details = <h1>Welcome to RHQ</h1>\n<p>The RHQ project 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_dashboardsManager_tagcloud_title = Tag Cloud~
-view_dashboards_confirm1 = Are you sure you want to delete~
-view_dashboards_portlets_refresh_fail1 = Failed to update interval for portlets that auto-refresh
-view_dashboards_portlets_refresh_fail2 = Failed to disable reload for portlets that auto-refresh
-view_dashboards_portlets_refresh_multiple_min = {0} minutes
-view_dashboards_portlets_refresh_none = No Refresh
-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_button_detectNow = Detect Now
-##view_drift_category_fileAdded = File Added
-##view_drift_category_fileChanged = File Changed
-##view_drift_category_fileRemoved = File Removed
-##view_drift_delete_confirm = Delete the selected drift(s)?
-##view_drift_delete_confirmAll = Delete all drifts from this source?
-##view_drift_failure_delete = Failed to delete drift targets with id''s: {0}
-##view_drift_failure_deleteAll = Failed to delete all drift targets from this source
-##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_table_baseDir = Base Directory
-##view_drift_table_newFile = New File
-##view_drift_table_oldFile = Old File
-view_drift_table_resourceConfig = Resource Drift Configuration
-##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_nameHelp = A textual name briefly describing the purpose of this drift detection configuration. Drift configuration names must be unique for a resource.
-##view_drift_wizard_addConfig_namePrompt = New Drift Configuration Name
-##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_dynagroup_children = DynaGroup Children~
-view_dynagroup_compatible = Compatible
-view_dynagroup_definitionAlreadyExists = A group definition already exists with this name~
-view_dynagroup_definitionCreated = You have successfully created a group definition named [{0}]~
-view_dynagroup_definitionLoadFailure = Failed to load group definitions~
-view_dynagroup_definitions = DynaGroup Definitions~
-view_dynagroup_deleteFailureSelection = Failed to delete the selected group definitions~
-view_dynagroup_deleteSuccessfulSelection = You have successfully deleted [{0}] group definitions~
-view_dynagroup_editing = Editing [{0}]~
-view_dynagroup_exprBuilder_addExpression = Add Expression
-view_dynagroup_exprBuilder_comparisonType = Comparison Type
-view_dynagroup_exprBuilder_comparisonType_contains = contains
-view_dynagroup_exprBuilder_comparisonType_endsWith = ends with
-view_dynagroup_exprBuilder_comparisonType_equals = equals
-view_dynagroup_exprBuilder_comparisonType_startsWith = starts with
-view_dynagroup_exprBuilder_comparisonType_tooltip = Comparison Type
-view_dynagroup_exprBuilder_definingPlugin = Defining Plugin
-view_dynagroup_exprBuilder_definingPlugin_tooltip = The plugin to search
-view_dynagroup_exprBuilder_expression = Expression
-view_dynagroup_exprBuilder_expressionType = Expression Type
-view_dynagroup_exprBuilder_expressionType_pluginConfig = Plugin Configuration
-view_dynagroup_exprBuilder_expressionType_resource = Resource
-view_dynagroup_exprBuilder_expressionType_resourceCategory = Resource Category
-view_dynagroup_exprBuilder_expressionType_resourceConfig = Resource Configuration
-view_dynagroup_exprBuilder_expressionType_resourceType = Resource Type
-view_dynagroup_exprBuilder_expressionType_tooltip = The type of property this expression switches on:<br/> <b>Resource</b>: A resource property such as its name or version<br/> <b>Resource Type</b>: Search for resources of a specific type<br/> <b>Resource Category</b>: Search for resources by category: platform, server, service<br/> <b>Trait</b>: Resources that have selected values for a monitored trait<br/> <b>Plugin Configuration</b>: Search by the plugin component configuration setting of the component<br/> <b>Resource Configuration</b>: Search by the configuration setting of the managed resource
-view_dynagroup_exprBuilder_expressionType_trait = Trait
-view_dynagroup_exprBuilder_expression_tooltip = This is the full expression that is represented by the selections in the form below. This text will be added to your group definition expression text when you click the "Add Expression" button.
-view_dynagroup_exprBuilder_groupBy = Group by
-view_dynagroup_exprBuilder_groupBy_tooltip = GroupBy will cause the system to pivot on the values from the entered expressions creating a separate group for each value. For example, GroupBy on the cluster name to create a group for each cluster with all cluster members in it.
-view_dynagroup_exprBuilder_noPlugins = --No plugins--
-view_dynagroup_exprBuilder_noProperties = --No properties--
-view_dynagroup_exprBuilder_noResourceTypes = --No resource types--
-view_dynagroup_exprBuilder_pluginLoadFailure = Cannot get the list of plugins
-view_dynagroup_exprBuilder_propLoadFailure = Cannot get list of properties
-view_dynagroup_exprBuilder_propertyName = Property Name
-view_dynagroup_exprBuilder_propertyName_tooltip = The name of the property to query. This is defined by the expression type as well as the resource type.
-view_dynagroup_exprBuilder_resTypeLoadFailure = Cannot get list of resource types for plugin [{0}]
-view_dynagroup_exprBuilder_resource = Resource
-view_dynagroup_exprBuilder_resourceType = Resource Type
-view_dynagroup_exprBuilder_resourceType_tooltip = The type of resource
-view_dynagroup_exprBuilder_resource_child = Child
-view_dynagroup_exprBuilder_resource_grandparent = Grandparent
-view_dynagroup_exprBuilder_resource_greatGrandparent = GreatGrandparent
-view_dynagroup_exprBuilder_resource_greatGreatGrandparent = GreatGreatGrandparent
-view_dynagroup_exprBuilder_resource_parent = Parent
-view_dynagroup_exprBuilder_resource_resource = Resource
-view_dynagroup_exprBuilder_resource_tooltip = Choose the level of the resource you wish to select. For example, select "parent" will find resources whose parent resource matches the rest of the expression.
-##view_dynagroup_exprBuilder_savedExpression = Saved Expression
-view_dynagroup_exprBuilder_title = Expression Builder
-view_dynagroup_exprBuilder_unset = Unset
-view_dynagroup_exprBuilder_unset_tooltip = Unset will find all of the values that have a null value in the database. This is not possible using the " = " operator because of how databases store and query data.
-view_dynagroup_exprBuilder_value_tooltip = The string value for the expression to query
-view_dynagroup_expression = Expression~
-view_dynagroup_expressionBuilderIconTooltip = Expression Builder...
-view_dynagroup_expressionSet = Expression Set~
-view_dynagroup_lastCalculationTime = Last Calculation Time~
-view_dynagroup_loadDefinitionFailure = Failed to load group definition [{0}]~
-view_dynagroup_loadDefinitionMissing = There is no group definition with the ID of [{0}]~
-view_dynagroup_mixed = Mixed
-view_dynagroup_newGroupDefinition = New Group Definition~
-view_dynagroup_nextCalculationTime = Next Calculation Time~
-view_dynagroup_permDenied = You do not have permission to view group definitions~
-view_dynagroup_permUnknown = Could not determine if you have the proper permissions - access is denied~
-view_dynagroup_recalcFailure = Failed to recalculated this group definition~
-view_dynagroup_recalcFailureSelection = Failed to recalculated the selected group definitions~
-view_dynagroup_recalcSuccessful = You have successfully recalculated this group definition~
-view_dynagroup_recalcSuccessfulSelection = You have successfully recalculated [{0}] group definitions~
-view_dynagroup_recalculate = Recalculate~
-view_dynagroup_recalculationInterval = Recalculation Interval~
-view_dynagroup_recursive = Recursive~
-view_dynagroup_saveAndRecalculate = Save & Recalculate~
-view_dynagroup_saveFailure = Failed to save the group definition named [{0}]~
-view_dynagroup_saveSuccessful = You have successfully saved the group definition named [{0}]~
-view_dynagroup_singleSaveFailure = An error occurred - there should have been one created, but instead there were [{0}] created~
++view_configEdit_viewRow = Visualizar linha
++view_configurationDetails_allPropertiesValid = Todas as propriedades de configura\u00E7\u00E3o s\u00E3o v\u00E1lidas, portanto a configura\u00E7\u00E3o pode ser salva.
++view_configurationDetails_configNotUpdatedDueToNoChange = A configuração não foi atualizada, pois a nova configuração é equivalente à atual.
++view_configurationDetails_error_updateFailure = Falha ao atualizar a configuração.
++view_configurationDetails_messageConcise = Configuração atualizada - versão corrrente: {0}.
++view_configurationDetails_messageDetailed = Configuração do Recurso [{1}] atualizada para a versão {0}.
++view_configurationDetails_noPermission = Você não possui permisssão para editar a configuraçào do Recurso.
++view_configurationDetails_somePropertiesInvalid = As seguintes propriedades possuem valores inválidos: {0}. Os valores devem ser corrigidos antes da configuração ser salva.
++view_configurationHistoryDetails_dialogTitle = Detalhes da Configuração
++view_configurationHistoryDetails_error_loadFailure = Não foi possível carregar o histórico de configuração.
++view_configurationHistoryList_cannotDeleteCurrent = Um dos itens de histórico selecionado representa a configuração corrente. - você não pode excluí-lo.
++view_configurationHistoryList_cannotDeleteGroupItems = Um ou mais itens do histórico de configuração selecionado pertencem à uma atualização de configuração em grupo. view_configurationHistoryList_delete_failure = Falha ao excluir o histórico dos itens de configuração.
++view_configurationHistoryList_delete_failure = Falha ao excluir o histórico dos itens de configuração.
++view_configurationHistoryList_delete_success = Itens do histórico de configuração selecionados excluídos com sucesso.
++view_configurationHistoryList_rollback = Desfazer
++view_configurationHistoryList_rollback_failure = Falha ao desfazer a configuração. A configuração original ainda permanece.
++view_configurationHistoryList_rollback_success = Configuração revertida para a configuração selecionada com sucesso.
++view_configurationHistoryList_table_clickStatusIcon = Clique no ícone status para visualizar os detlahes.
++view_configurationHistoryList_table_statusFailure = Falha ao atualizar a configuração
++view_configurationHistoryList_table_statusInprogress = A atualização desta configuração ainda está em andamento.
++view_configurationHistoryList_table_statusNochange = Nenhuma mundaça foi feita nesta configuração
++view_configurationHistoryList_table_statusSuccess = Configuração atualizada com sucesso
++view_configurationHistoryList_title = Histórico de Configuração
++view_connectionSettingsDetails_allPropertiesValid = Todas a propriedades estão corretas, portanto a configuração pode ser salva agora.
++view_connectionSettingsDetails_error_updateFailure = Falha ao atualizar as propriedades de conexão.
++view_connectionSettingsDetails_messageConcise_updateSuccess = Atualização das propriedades de conexão iniciada.
++view_connectionSettingsDetails_messageDetailed_updateSuccess = Propriedades de conexão do Recurso [{0}] atualizadas
++view_connectionSettingsDetails_noPermission = Você não possui permissão para editar as propriedades de conexão do Recurso.
++view_connectionSettingsDetails_somePropertiesInvalid = As seguintes propriedades de conexão estão incorretas: {0}. Os valores devem ser corrigidos antes de serem salvos.
++view_core_error_1 = Falha ao perquisar novos alertas
++view_core_loggedInAs = Logado como {0}
++view_core_loggedOut = Desconectado
++view_core_noRecentAlerts = Não existem alertas recentes
++view_core_recentAlerts = [{0}] alertas recentes
++view_core_uncaught = Exce\u00E7\u00E3o n\u00E3o capturada
++view_dashboardManager_deleteFail = Falha ao excluir o dashboard.
++view_dashboardManager_deleted = Dashboard {0} exclu\u00EDdo com sucesso!
++view_dashboardManager_error = Falha ao salvar o dashboard no servidor
++view_dashboardManager_saved = Dashboard {0} salvo no servidor
++view_dashboardManager_success = Dashboard salvo
++view_dashboard_favorites_error1 = Falha ao carregar recursos favoritos.
++view_dashboardsManager_error1 = Falha ao adicionar novo dashboad
++view_dashboardsManager_inventory_title = Sum\u00E1rio do Invent\u00E1rio
++view_dashboardsManager_mashup_title = Novidades do RHQ
++view_dashboardsManager_message_title = Bem vindo ao RHQ
++view_dashboardsManager_message_title_details = <h1>Bem vindo ao RHQ</h1>\n<p> O projeto RHQ \u00E9 uma abstra\u00E7\u00E3o e uma suite de gerenciamento de sistemas baseada em plug-ins que fornece uma solu\u00E7\u00E3o extens\u00EDvel e integrada para o gerenciamento de m\u00FAltiplas plataformas atrav\u00E9s de um conjunto de funcionalidades que faz parte de seu n\u00FAcleo. O projeto foi concebido com m\u00F3dulos em camadas que fornecem uma arquitetura flexivel para sua implanta\u00E7\u00E3o. Ele possui uma interface de usu\u00E1rio que propcia o hist\u00F3rico e a auditoria do gerenciamento de recursos por toda a empresa. Sua arquitetura baseada em Agente-Servidor permite o gerenciamento remoto atrav\u00E9s de plugins que implementam todo o suporte espec\u00EDfico aos recursos gerenciados.<p> <p>Este dashboard padr\u00E3o pode ser modificado clicando o bot\u00E3o (modo edi\u00E7\u00E3o) acima.</p>
++view_dashboardsManager_tagcloud_title = Nuvem de Tags
++view_dashboards_confirm1 = Tem certeza de que deseja excluir?
++view_dashboards_portlets_refresh_fail1 = Falha ao alterar o intervalo de atualização de portlets dinâmicos.
++view_dashboards_portlets_refresh_fail2 = Falha ao desabilitar a atualização de portlets dinâmicos.
++view_dashboards_portlets_refresh_multiple_min = {0} minutos
++view_dashboards_portlets_refresh_none = N\u00E3o atualizar
++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_button_detectNow = Detectar agora
++view_drift_category_fileAdded = Arquivo adicionado
++view_drift_category_fileChanged = Arquivo alterado
++view_drift_category_fileRemoved = Arquivo removido
++view_drift_delete_confirm = Excluir drift(s) selecionado(s)?
++view_drift_delete_confirmAll = Excluir todos os drifts desta origem?
++view_drift_failure_delete = Falha ao excluir os alvos dos drifts com ids: {0}
++view_drift_failure_deleteAll = Falha ao excluir todos os alvos dos drifts desta origem
++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_table_baseDir = Diretório Base
++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_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_dynagroup_children = Grupo Dinâmico Filho
++view_dynagroup_compatible = Compátivel
++view_dynagroup_definitionAlreadyExists = Já existe uma definição de grupo com este nome
++view_dynagroup_definitionCreated = Definição de grupo [{0}] criada com sucesso!
++view_dynagroup_definitionLoadFailure = Falha ao carregar as definições de grupo
++view_dynagroup_definitions = Definições de Grupos Dinâmicos
++view_dynagroup_deleteFailureSelection = Falha ao excluir as definições selecionadas
++view_dynagroup_deleteSuccessfulSelection = Definições de grupo [{0}] excluídas com sucesso!
++view_dynagroup_editing = Editando [{0}]
++view_dynagroup_exprBuilder_addExpression = Adicionar Expressão
++view_dynagroup_exprBuilder_comparisonType = Tipo de comparação
++view_dynagroup_exprBuilder_comparisonType_contains = contém
++view_dynagroup_exprBuilder_comparisonType_endsWith = Termina com
++view_dynagroup_exprBuilder_comparisonType_equals = igual
++view_dynagroup_exprBuilder_comparisonType_startsWith = inicia com
++view_dynagroup_exprBuilder_comparisonType_tooltip = Tipo de Comparação
++view_dynagroup_exprBuilder_definingPlugin = Plugin
++view_dynagroup_exprBuilder_definingPlugin_tooltip = O plugin a ser procurado
++view_dynagroup_exprBuilder_expression = Expressão
++view_dynagroup_exprBuilder_expressionType = Tipo de Expressão
++view_dynagroup_exprBuilder_expressionType_pluginConfig = Configuração do Plugin
++view_dynagroup_exprBuilder_expressionType_resource = Recurso
++view_dynagroup_exprBuilder_expressionType_resourceCategory = Categoria do Recurso
++view_dynagroup_exprBuilder_expressionType_resourceConfig = Configuração do Recurso
++view_dynagroup_exprBuilder_expressionType_resourceType = Tipo do Recurso
++view_dynagroup_exprBuilder_expressionType_tooltip = Tipo de propriedade usada por esta expressão:<br/> <b>Recurso</b>: Uma propriedade do recurso (ex: nome ou versão)<br/> <b>Tipo de Recurso</b>: Procura por recursos de um tipo específico<br/> <b>Categoria do Recurso</b>: Procura por recursos de uma categoria específica: platforma, servidor, serviço<br/> <b>Característica</b>: Recursos que possuem valores selecionados para uma característica monitorada<br/> <b>Configuração do Plugin</b>: Procurar pela configuração do componente do plugin <br/> <b>Configuração do Recurso</b>: Procurar pela configuração do recurso gerenciado
++view_dynagroup_exprBuilder_expressionType_trait = Característica
++view_dynagroup_exprBuilder_expression_tooltip = Esta é a expressão completa com base nas definições do formulário abaixo. Este texto será adicionado ao campo de expressão da definição do grupo quando você clicar o botão "Adicionar Expressão"
++view_dynagroup_exprBuilder_groupBy = Agrupado por
++view_dynagroup_exprBuilder_groupBy_tooltip = GroupBy fará com que o resultado da busca seja agrupado de acordo com os valores informados na expressão. Por exemplo, usando GroupBy para o nome de um cluster JBossAS, o resultado criará um grupo para cada cluster e seus membros.
++view_dynagroup_exprBuilder_noPlugins = --Sem plugins--
++view_dynagroup_exprBuilder_noProperties = --Sem propriedades--
++view_dynagroup_exprBuilder_noResourceTypes = --Nehum tipo de recurso--
++view_dynagroup_exprBuilder_pluginLoadFailure = N\u00E3o foi poss\u00EDvel obter a lista de plugins
++view_dynagroup_exprBuilder_propLoadFailure = N\u00E3o foi poss\u00EDvel obter a lista de propriedades
++view_dynagroup_exprBuilder_propertyName = Nome da propriedade
++view_dynagroup_exprBuilder_propertyName_tooltip = O nome da propriedade a ser pesquisada. Isso é definido pelo tipo da expressão bem como o tipo do recurso.
++view_dynagroup_exprBuilder_resTypeLoadFailure = Não foi possível recuperar a lista de recursos para o plugin [{0}]
++view_dynagroup_exprBuilder_resource = Recurso
++view_dynagroup_exprBuilder_resourceType = Tipo de Recurso
++view_dynagroup_exprBuilder_resourceType_tooltip = O tipo do recurso
++view_dynagroup_exprBuilder_resource_child = Filho
++view_dynagroup_exprBuilder_resource_grandparent = Avô
++view_dynagroup_exprBuilder_resource_greatGrandparent = Bizavô
++view_dynagroup_exprBuilder_resource_greatGreatGrandparent = Tataravô
++view_dynagroup_exprBuilder_resource_parent = Pai
++view_dynagroup_exprBuilder_resource_resource = Recurso
++view_dynagroup_exprBuilder_resource_tooltip = Escolha o nível do recurso que deseja selecionar. Por exemplo, selecione "pai" para procurar por recursos filhos cujo recurso pai case com o resto da expressão.
++view_dynagroup_exprBuilder_savedExpression = Expressão salva
++view_dynagroup_exprBuilder_title = Construtor de expressão
++view_dynagroup_exprBuilder_unset = Não definido
++view_dynagroup_exprBuilder_unset_tooltip = Indefinido irá procurar todos os valores que possuem um valor nulo no banco de dados. Não é possível utilizar o operador "=" para valores indefinidos.
++view_dynagroup_exprBuilder_value_tooltip = A string de pesquisa da expressão
++view_dynagroup_expression = Expressão
++view_dynagroup_expressionBuilderIconTooltip = Construtor de Expressão
++view_dynagroup_expressionSet = Conjunto de Expressões
++view_dynagroup_lastCalculationTime = Último cálculo
++view_dynagroup_loadDefinitionFailure = Falha ao carregar as definições [{0}]
++view_dynagroup_loadDefinitionMissing = Não existe definição para o grupo com ID [{0}]
++view_dynagroup_mixed = Misturado
++view_dynagroup_newGroupDefinition = Nova Definição de Grupo
++view_dynagroup_nextCalculationTime = Próximo cálculo
++view_dynagroup_permDenied = Você não possui permissões para visualizar o grupo
++view_dynagroup_recalcFailure = Falha ao recalcular essa definição
++view_dynagroup_recalcFailureSelection = Failed to recalculated the selected group definitions
++view_dynagroup_recalcSuccessful = You have successfully recalculated this group definition
++view_dynagroup_recalcSuccessfulSelection = You have successfully recalculated [{0}] group definitions
++view_dynagroup_recalculate = Recalculate
++view_dynagroup_recalculationInterval = Recalculation Interval
++view_dynagroup_recursive = Recursive
++view_dynagroup_saveAndRecalculate = Save & Recalculate
++view_dynagroup_saveFailure = Failed to save the group definition named [{0}]
++view_dynagroup_saveSuccessful = You have successfully saved the group definition named [{0}]
++view_dynagroup_singleSaveFailure = An error occurred - there should have been one created, but instead there were [{0}] created
view_dynagroup_template_customExpression = Custom Expression...
view_dynagroup_template_downedResources = All resources currently down
view_dynagroup_template_jbossas4_clusters = JBossAS 4 - Clusters
@@@ -1214,19 -1249,19 +1253,19 @@@ view_dynagroup_template_platforms = Pla
view_dynagroup_template_uniqueResourceTypes = Unique resource types in inventory
view_groupConfigEdit_member = Membro
view_groupConfigEdit_noListProps = Lista de propriedades n\u00E3o suportada atualmente para configura\u00E7\u00F5es em grupo.
- view_groupConfigEdit_setAll = Atribuir todos os valores \u00E0\:
-view_groupConfigEdit_setAll = Atribuir todos os valores \u00E0:
++view_groupConfigEdit_setAll = Atribuir todos os valores \u00E0\\\\\\\\:
view_groupConfigEdit_tooltip_1 = Valores dos membros diferem - clique no \u00EDcone para edit\u00E1-los.
view_groupConfigEdit_unset = Remover atribui\u00E7\u00E3o
view_groupConfigEdit_valsDiff = valores dos membros diferem
view_groupConfigEdit_valsDiffForProp = Valores dos membros para a Propriedade [{0}]
--view_groupCreateWizard_createFailure = Failed to create the resource group~
--view_groupCreateWizard_createStepName = Group Settings~
--view_groupCreateWizard_createStep_recursive = Recursive~
--view_groupCreateWizard_createSuccessful_concise = You have created a new resource group. [<a href = "{0}">View Group</a>]~
--view_groupCreateWizard_createSuccessful_full = You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources~
--view_groupCreateWizard_membersStepName = Select Members~
--view_groupCreateWizard_title = Create Group~
--view_groupCreateWizard_windowTitle = Create Group~
++view_groupCreateWizard_createFailure = Failed to create the resource group
++view_groupCreateWizard_createStepName = Group Settings
++view_groupCreateWizard_createStep_recursive = Recursive
++view_groupCreateWizard_createSuccessful_concise = You have created a new resource group. [<a href = "{0}">View Group</a>]
++view_groupCreateWizard_createSuccessful_full = You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources
++view_groupCreateWizard_membersStepName = Select Members
++view_groupCreateWizard_title = Create Group
++view_groupCreateWizard_windowTitle = Create Group
view_groupInventoryMembers_button_updateMembership = Update Membership...
view_groupInventoryMembers_title_updateMembership = Update Membership
view_group_detail_failLoad = Failed to load group for group with ID [{0}]
@@@ -1234,56 -1269,56 +1273,56 @@@ view_group_detail_failLoadComp = Faile
view_group_detail_failRecursiveChange = Failed to update the recursive setting for group [{0}]
view_group_detail_recursiveChange = You successfully changed the recursive setting for group [{0}]
view_group_inventory_activity_no_recent_metrics = This group has no recent metrics
--view_group_meas_schedules_title = Group Metric Collection Schedules~
++view_group_meas_schedules_title = Group Metric Collection Schedules
view_group_membership_failFetch = Failed to fetch Resource Group
--view_group_membership_saveFailure = Failed to update membership of group [{0}]~
--view_group_membership_saveSuccessful = You have updated the membership of group [{0}]~
++view_group_membership_saveFailure = Failed to update membership of group [{0}]
++view_group_membership_saveSuccessful = You have updated the membership of group [{0}]
view_group_operationScheduleDetails_failedToLoadMembers = Failed to load group member Resources.
view_group_operationScheduleDetails_field_execute = Execute
view_group_operationScheduleDetails_field_haltOnFailure = Halt on Failure?
view_group_operationScheduleDetails_memberResource = Member Resource
view_group_operationScheduleDetails_value_parallel = in parallel
view_group_operationScheduleDetails_value_sequential = in the order specified below (drag and drop member Resources to change order)
--view_group_pluginConfig_edit_currentGroupProperties = Current Group Properties~
--view_group_pluginConfig_edit_invalid = The following connection setting properties have invalid values and must be corrected before the connection settings can be saved: [{0}]~
--view_group_pluginConfig_edit_noperm = You do not have permission to edit this group connection settings~
--view_group_pluginConfig_edit_saveFailure = Failed to initiate group connection setting update for [{0}] compatible group named [{1}]~
--view_group_pluginConfig_edit_saveInitiated_concise = The group connection setting updates have been initiated~
--view_group_pluginConfig_edit_saveInitiated_full = The group connection setting updates have been initiated for the [{0}] compatible group named [{1}]~
--view_group_pluginConfig_edit_saveTooltip = Update the connection settings of all group members~
--view_group_pluginConfig_edit_valid = All connection setting properties have valid values, so the connection settings can now be saved~
--view_group_pluginConfig_members_fetchFailure = Failed to get plugin config update history for members of group [{0}]~
++view_group_pluginConfig_edit_currentGroupProperties = Current Group Properties
++view_group_pluginConfig_edit_invalid = The following connection setting properties have invalid values and must be corrected before the connection settings can be saved: [{0}]
++view_group_pluginConfig_edit_noperm = You do not have permission to edit this group connection settings
++view_group_pluginConfig_edit_saveFailure = Failed to initiate group connection setting update for [{0}] compatible group named [{1}]
++view_group_pluginConfig_edit_saveInitiated_concise = The group connection setting updates have been initiated
++view_group_pluginConfig_edit_saveInitiated_full = The group connection setting updates have been initiated for the [{0}] compatible group named [{1}]
++view_group_pluginConfig_edit_saveTooltip = Update the connection settings of all group members
++view_group_pluginConfig_edit_valid = All connection setting properties have valid values, so the connection settings can now be saved
++view_group_pluginConfig_members_fetchFailure = Failed to get plugin config update history for members of group [{0}]
view_group_pluginConfig_members_fetchFailureConn = Failed to retrieve member connection settings for [{0}]
view_group_pluginConfig_members_fetchFailureConnInProgress = A group plugin configuration update is currently in progress. You must wait until the update is finished before you can view the group settings.
--view_group_pluginConfig_members_statusDetails = Status Details~
--view_group_pluginConfig_members_statusFailure = This configuration update failed for an unknown reason~
--view_group_pluginConfig_members_statusInprogress = This configuration update is still in progress~
--view_group_pluginConfig_members_statusNochange = No changes were made to this configuration~
--view_group_pluginConfig_members_statusSuccess = This configuration update was successful~
--view_group_pluginConfig_members_title = Group Connection Settings Member Histories~
--view_group_pluginConfig_table_clickStatusIcon = Click the status icon for full details~
--view_group_pluginConfig_table_deleteFailure = Failed to delete group plugin config history~
--view_group_pluginConfig_table_deleteSuccessful = You have deleted [{0}] history items~
++view_group_pluginConfig_members_statusDetails = Status Details
++view_group_pluginConfig_members_statusFailure = This configuration update failed for an unknown reason
++view_group_pluginConfig_members_statusInprogress = This configuration update is still in progress
++view_group_pluginConfig_members_statusNochange = No changes were made to this configuration
++view_group_pluginConfig_members_statusSuccess = This configuration update was successful
++view_group_pluginConfig_members_title = Group Connection Settings Member Histories
++view_group_pluginConfig_table_clickStatusIcon = Click the status icon for full details
++view_group_pluginConfig_table_deleteFailure = Failed to delete group plugin config history
++view_group_pluginConfig_table_deleteSuccessful = You have deleted [{0}] history items
view_group_pluginConfig_table_failFetch = Failed to get group plugin config history
--view_group_pluginConfig_table_msg1 = View Member History for status of each individual resource~
--view_group_pluginConfig_table_statusDetails = Status Details~
--view_group_pluginConfig_table_statusFailure = This group configuration update failed~
--view_group_pluginConfig_table_statusInprogress = This group configuration update is still in progress~
--view_group_pluginConfig_table_statusNochange = No changes were made to this group configuration~
--view_group_pluginConfig_table_statusSuccess = This group configuration update was successful~
--view_group_pluginConfig_table_title = Group Connection Settings History~
--view_group_pluginConfig_table_viewMemberHistory = View Member History~
--view_group_pluginConfig_table_viewSettings = View Settings~
--view_group_pluginConfig_view_groupProperties = Group Properties~
--view_group_pluginConfig_view_noperm = You do not have permissions to see the connection settings~
--view_group_resConfig_edit_invalid = The following configuration properties have invalid values and must be corrected before the configuration can be saved: [{0}]~
++view_group_pluginConfig_table_msg1 = View Member History for status of each individual resource
++view_group_pluginConfig_table_statusDetails = Status Details
++view_group_pluginConfig_table_statusFailure = This group configuration update failed
++view_group_pluginConfig_table_statusInprogress = This group configuration update is still in progress
++view_group_pluginConfig_table_statusNochange = No changes were made to this group configuration
++view_group_pluginConfig_table_statusSuccess = This group configuration update was successful
++view_group_pluginConfig_table_title = Group Connection Settings History
++view_group_pluginConfig_table_viewMemberHistory = View Member History
++view_group_pluginConfig_table_viewSettings = View Settings
++view_group_pluginConfig_view_groupProperties = Group Properties
++view_group_pluginConfig_view_noperm = You do not have permissions to see the connection settings
++view_group_resConfig_edit_invalid = The following configuration properties have invalid values and must be corrected before the configuration can be saved: [{0}]
view_group_resConfig_edit_loadFail = Failed to retrieve member Resource configurations for [{0}]
--view_group_resConfig_edit_noperm = You do not have permission to edit this group configuration~
--view_group_resConfig_edit_saveFailure = Failed to initiate group configuration update for [{0}] compatible group named [{1}]~
--view_group_resConfig_edit_saveInitiated_concise = The group configuration updates have been initiated~
--view_group_resConfig_edit_saveInitiated_full = The group configuration updates have been initiated for the [{0}] compatible group named [{1}]~
--view_group_resConfig_edit_saveTooltip = Update the configurations of all group members~
--view_group_resConfig_edit_valid = All configuration properties have valid values, so the configuration can now be saved~
++view_group_resConfig_edit_noperm = You do not have permission to edit this group configuration
++view_group_resConfig_edit_saveFailure = Failed to initiate group configuration update for [{0}] compatible group named [{1}]
++view_group_resConfig_edit_saveInitiated_concise = The group configuration updates have been initiated
++view_group_resConfig_edit_saveInitiated_full = The group configuration updates have been initiated for the [{0}] compatible group named [{1}]
++view_group_resConfig_edit_saveTooltip = Update the configurations of all group members
++view_group_resConfig_edit_valid = All configuration properties have valid values, so the configuration can now be saved
view_group_resConfig_members_fetchFailure = Failed to get resource config update history for members of group [{0}]
view_group_resConfig_members_fetchFailureConfig = Failed to retrieve member resource configuration settings for [{0}]
view_group_resConfig_members_fetchFailureConfigInProgress = A group resource configuration update is currently in progress. You must wait until the update is finished before you can view the group settings.
@@@ -1309,80 -1344,80 +1348,80 @@@ view_group_resConfig_table_viewSetting
view_group_resConfig_view_groupProperties = Group Properties
view_group_resConfig_view_noperm = You do not have permissions to see the resource configuration settings
view_group_summary_compatible = Compatible
--view_group_summary_descUpdateFailure = Failed to change the description of the resource group with ID [{0}]~
--view_group_summary_descUpdateSuccessful = You have changed the description of this resource group~
--view_group_summary_dynamic = Dynamic~
--view_group_summary_dynamicNote = Dynamic group names and descriptions are managed, and therefore are not editable~
--view_group_summary_groupDefinition = Group Definition~
--view_group_summary_memberCount = Member Count~
--view_group_summary_memberType = Member Type~
--view_group_summary_mixed = Mixed~
--view_group_summary_nameUpdateFailure = Failed to change the name of the resource group with ID [{0}] - could not change from [{1}] to [{2}]~
--view_group_summary_nameUpdateSuccessful = You have changed the name of the resource group with ID [{0}] from [{1}] to [{2}]~
--view_group_summary_recursive = Recursive~
++view_group_summary_descUpdateFailure = Failed to change the description of the resource group with ID [{0}]
++view_group_summary_descUpdateSuccessful = You have changed the description of this resource group
++view_group_summary_dynamic = Dynamic
++view_group_summary_dynamicNote = Dynamic group names and descriptions are managed, and therefore are not editable
++view_group_summary_groupDefinition = Group Definition
++view_group_summary_memberCount = Member Count
++view_group_summary_memberType = Member Type
++view_group_summary_mixed = Mixed
++view_group_summary_nameUpdateFailure = Failed to change the name of the resource group with ID [{0}] - could not change from [{1}] to [{2}]
++view_group_summary_nameUpdateSuccessful = You have changed the name of the resource group with ID [{0}] from [{1}] to [{2}]
++view_group_summary_recursive = Recursive
view_helpTop_description = This section provides access to documentation, tutorials, version, and other helpful information.
view_help_section_product = Product
view_help_section_product_about = About
--view_inventory_adq = Discovery Queue~
--view_inventory_allGroups = All Groups~
--view_inventory_allResources = All Resources~
--view_inventory_cannotGetGlobalPerms = Could not determine global permissions - assuming none.~
--view_inventory_collectionInterval = Collection Interval~
--view_inventory_downServers = Down Servers~
--view_inventory_dynagroupDefs = Dynagroup Definitions~
--view_inventory_eventDetails_loadFailed = An error occurred loading the event details~
--view_inventory_eventHistory_deleteFailed = Failed to deleted selected events for [{0}]~
--view_inventory_eventHistory_deleteSuccessful = You have successfully deleted [{0}] events for [{1}]~
--view_inventory_eventHistory_details = Details~
--view_inventory_eventHistory_detailsFilter = Details Filter~
--view_inventory_eventHistory_groupEventHistory = Group Event History~
--view_inventory_eventHistory_purgeFailed = Failed to purge events for [{0}]~
--view_inventory_eventHistory_purgeSuccessful = You have successfully purged [{0}] events for [{1}]~
--view_inventory_eventHistory_resourceEventHistory = Resource Event History~
--view_inventory_eventHistory_severity = Severity~
--view_inventory_eventHistory_severityFilter = Severity Filter~
--view_inventory_eventHistory_sourceFilter = Source Filter~
--view_inventory_eventHistory_sourceLocation = Source Location~
--view_inventory_eventHistory_timestamp = Timestamp~
--view_inventory_groups = Groups~
--view_inventory_groups_children = Children~
--view_inventory_groups_deleteFailed = Failed to delete the selected resource groups~
--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~
--view_inventory_resource_loadFailed = Resource with id [{0}] does not exist or is not accessible~
--view_inventory_resources_deleteConfirm = Are you sure you want to delete the selected resources?~
--view_inventory_resources_deleteFailed = Failed to delete the selected resources~
--view_inventory_resources_deleteSuccessful = You have successfully deleted the selected resources~
--view_inventory_resources_loadFailed = Failed to load resource composite data~
--view_inventory_resources_title = Member Resources~
--view_inventory_resources_title_children = Child Resources~
--view_inventory_resources_title_members = Member Resources~
++view_inventory_adq = Discovery Queue
++view_inventory_allGroups = All Groups
++view_inventory_allResources = All Resources
++view_inventory_cannotGetGlobalPerms = Could not determine global permissions - assuming none.
++view_inventory_collectionInterval = Collection Interval
++view_inventory_downServers = Down Servers
++view_inventory_dynagroupDefs = Dynagroup Definitions
++view_inventory_eventDetails_loadFailed = An error occurred loading the event details
++view_inventory_eventHistory_deleteFailed = Failed to deleted selected events for [{0}]
++view_inventory_eventHistory_deleteSuccessful = You have successfully deleted [{0}] events for [{1}]
++view_inventory_eventHistory_details = Details
++view_inventory_eventHistory_detailsFilter = Details Filter
++view_inventory_eventHistory_groupEventHistory = Group Event History
++view_inventory_eventHistory_purgeFailed = Failed to purge events for [{0}]
++view_inventory_eventHistory_purgeSuccessful = You have successfully purged [{0}] events for [{1}]
++view_inventory_eventHistory_resourceEventHistory = Resource Event History
++view_inventory_eventHistory_severity = Severity
++view_inventory_eventHistory_severityFilter = Severity Filter
++view_inventory_eventHistory_sourceFilter = Source Filter
++view_inventory_eventHistory_sourceLocation = Source Location
++view_inventory_eventHistory_timestamp = Timestamp
++view_inventory_groups = Groups
++view_inventory_groups_children = Children
++view_inventory_groups_deleteFailed = Failed to delete the selected resource groups
++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
++view_inventory_resource_loadFailed = Resource with id [{0}] does not exist or is not accessible
++view_inventory_resources_deleteConfirm = Are you sure you want to delete the selected resources?
++view_inventory_resources_deleteFailed = Failed to delete the selected resources
++view_inventory_resources_deleteSuccessful = You have successfully deleted the selected resources
++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_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
--view_inventory_sectionHelp = From this section, newly discovered Resources, inventoried Resources, and Groups can be viewed and managed.~
--view_inventory_servers = Servers~
--view_inventory_services = Services~
--view_inventory_summary_agent_error1 = Failed to locate agent managing resource id~
--view_inventory_summary_agent_error2 = Failed to ping agent managing resource id~
++view_inventory_sectionHelp = From this section, newly discovered Resources, inventoried Resources, and Groups can be viewed and managed.
++view_inventory_servers = Servers
++view_inventory_services = Services
++view_inventory_summary_agent_error1 = Failed to locate agent managing resource id
++view_inventory_summary_agent_error2 = Failed to ping agent managing resource id
view_inventory_summary_agent_error3 = You do not have permission to view details for this Agent.
--view_inventory_summary_agent_fullEnpoint = Full Endpoint~
--view_inventory_summary_agent_fullEnpoint_err1 = !No remote endpoint associated with this resource!~
--view_inventory_summary_agent_last_title = Last Received Availability Report~
--view_inventory_summary_agent_status_title = Agent Communications Status~
--view_inventory_summary_agent_title = Agent Managing this Resource~
++view_inventory_summary_agent_fullEnpoint = Full Endpoint
++view_inventory_summary_agent_fullEnpoint_err1 = !No remote endpoint associated with this resource!
++view_inventory_summary_agent_last_title = Last Received Availability Report
++view_inventory_summary_agent_status_title = Agent Communications Status
++view_inventory_summary_agent_title = Agent Managing this Resource
view_inventory_unavailableServers = Unavailable Servers
view_leftNav_unknownPage = P\u00E1gina desconhecida [{0}] para a se\u00E7\u00E3o [{1}] - URL inv\u00E1lida.
view_login_invalidEmail = Endere\u00E7o de e-mail inv\u00E1lido
view_login_login = Entrar
view_login_logout = Sair
view_login_noBackend = Fonte de Dados indispon\u00EDvel.
--view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry is required.~
++view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry is required.
view_login_noUser = Usu\u00E1rio ou senha inv\u00E1lidos.
view_login_prompt = Favor efetuar Login
view_login_registerLater = (Sair - Concluir registro mais tarde.)
@@@ -1404,61 -1439,61 +1443,61 @@@ view_measureTable_getLive = Get Live Va
view_measureTable_getLive_failure = Cannot get live values for those metrics. Make sure the agent is running and the managed resource is up.
view_measureTable_live_title = Live Data
view_measure_nan = --dados indispon\u00EDveis--
--view_measurementOob_title = M\u00E9tricas Suspeitas~
--view_menuBar_help = Ajuda~
++view_measurementOob_title = M\u00E9tricas Suspeitas
++view_menuBar_help = Ajuda
view_menuBar_logout = Sair
--view_messageCenter_button_messages = Mensagens~
++view_messageCenter_button_messages = Mensagens
view_messageCenter_clearAllMessages = Clear All Messages
view_messageCenter_lastNMessages = Last {0} Messages
view_messageCenter_maxMessages = Max Messages
view_messageCenter_messageBarShowDetails = Show Details
--view_messageCenter_messageDetail = Detalhe~
--view_messageCenter_messageSeverity = Severidade~
--view_messageCenter_messageTime = Tempo~
--view_messageCenter_messageTitle = Centro de Mensagens~
--view_messageCenter_noRecentMessages = N\u00E3o existem Mensagens Recentes~
++view_messageCenter_messageDetail = Detalhe
++view_messageCenter_messageSeverity = Severidade
++view_messageCenter_messageTime = Tempo
++view_messageCenter_messageTitle = Centro de Mensagens
++view_messageCenter_noRecentMessages = N\u00E3o existem Mensagens Recentes
view_messageCenter_stackTraceFollows = --- STACK TRACE FOLLOWS ---
--view_metric_traits = Traits~
--view_metric_viewTraitHistory = Value History for Trait [{0}]~
--view_operationCreateWizard_button_execute = Execute~
--view_operationCreateWizard_button_executeImmediately = Execute Immediately~
--view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation execution.~
--view_operationCreateWizard_header = Execute {0} on {1}~
--view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}] on Resource [{1}] with cron string [{2}].~
--view_operationCreateWizard_parametersStep_name = Operation Parameters~
--view_operationCreateWizard_parametersStep_noParameters = This operation does not take any parameters.~
--view_operationCreateWizard_schedulingStep_label_daily = Daily~
--view_operationCreateWizard_schedulingStep_label_dailyAt = Daily At~
--view_operationCreateWizard_schedulingStep_label_date = Date~
--view_operationCreateWizard_schedulingStep_label_dayOfMonth = Day of Month~
--view_operationCreateWizard_schedulingStep_label_dayOfWeek = Day of Week~
--view_operationCreateWizard_schedulingStep_label_endDate = End Date~
--view_operationCreateWizard_schedulingStep_label_everyNMinutes = Every n Minutes~
--view_operationCreateWizard_schedulingStep_label_hourly = Hourly~
--view_operationCreateWizard_schedulingStep_label_hourlyAt = Hourly At~
--view_operationCreateWizard_schedulingStep_label_minuteInterval = Minute Interval~
--view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute of Hour~
--view_operationCreateWizard_schedulingStep_label_monthly = Monthly~
--view_operationCreateWizard_schedulingStep_label_monthlyOn = Monthly On~
--view_operationCreateWizard_schedulingStep_label_nMinutes = n Minutes~
--view_operationCreateWizard_schedulingStep_label_onceAt = Once At~
--view_operationCreateWizard_schedulingStep_label_recurrence = Recurrence~
--view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Recurrence End~
--view_operationCreateWizard_schedulingStep_label_runAt = Run At~
--view_operationCreateWizard_schedulingStep_label_schedule = Schedule~
--view_operationCreateWizard_schedulingStep_label_start = Start~
--view_operationCreateWizard_schedulingStep_label_startDate = Start Date~
--view_operationCreateWizard_schedulingStep_label_time = Time~
--view_operationCreateWizard_schedulingStep_label_timeOfDay = Time of Day~
--view_operationCreateWizard_schedulingStep_label_timePeriod = Time Period~
--view_operationCreateWizard_schedulingStep_label_weekly = Weekly~
--view_operationCreateWizard_schedulingStep_label_weeklyOn = Weekly On~
--view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Will execute immediately~
--view_operationCreateWizard_schedulingStep_name = Schedule~
--view_operationCreateWizard_title = Operation Wizard~
++view_metric_traits = Traits
++view_metric_viewTraitHistory = Value History for Trait [{0}]
++view_operationCreateWizard_button_execute = Execute
++view_operationCreateWizard_button_executeImmediately = Execute Immediately
++view_operationCreateWizard_error_scheduleOperationFailure = Failed to schedule operation execution.
++view_operationCreateWizard_header = Execute {0} on {1}
++view_operationCreateWizard_message_scheduleOperationSuccess = Schedule operation [{0}] on Resource [{1}] with cron string [{2}].
++view_operationCreateWizard_parametersStep_name = Operation Parameters
++view_operationCreateWizard_parametersStep_noParameters = This operation does not take any parameters.
++view_operationCreateWizard_schedulingStep_label_daily = Daily
++view_operationCreateWizard_schedulingStep_label_dailyAt = Daily At
++view_operationCreateWizard_schedulingStep_label_date = Date
++view_operationCreateWizard_schedulingStep_label_dayOfMonth = Day of Month
++view_operationCreateWizard_schedulingStep_label_dayOfWeek = Day of Week
++view_operationCreateWizard_schedulingStep_label_endDate = End Date
++view_operationCreateWizard_schedulingStep_label_everyNMinutes = Every n Minutes
++view_operationCreateWizard_schedulingStep_label_hourly = Hourly
++view_operationCreateWizard_schedulingStep_label_hourlyAt = Hourly At
++view_operationCreateWizard_schedulingStep_label_minuteInterval = Minute Interval
++view_operationCreateWizard_schedulingStep_label_minuteOfHour = Minute of Hour
++view_operationCreateWizard_schedulingStep_label_monthly = Monthly
++view_operationCreateWizard_schedulingStep_label_monthlyOn = Monthly On
++view_operationCreateWizard_schedulingStep_label_nMinutes = n Minutes
++view_operationCreateWizard_schedulingStep_label_onceAt = Once At
++view_operationCreateWizard_schedulingStep_label_recurrence = Recurrence
++view_operationCreateWizard_schedulingStep_label_recurrenceEnd = Recurrence End
++view_operationCreateWizard_schedulingStep_label_runAt = Run At
++view_operationCreateWizard_schedulingStep_label_schedule = Schedule
++view_operationCreateWizard_schedulingStep_label_start = Start
++view_operationCreateWizard_schedulingStep_label_startDate = Start Date
++view_operationCreateWizard_schedulingStep_label_time = Time
++view_operationCreateWizard_schedulingStep_label_timeOfDay = Time of Day
++view_operationCreateWizard_schedulingStep_label_timePeriod = Time Period
++view_operationCreateWizard_schedulingStep_label_weekly = Weekly
++view_operationCreateWizard_schedulingStep_label_weeklyOn = Weekly On
++view_operationCreateWizard_schedulingStep_label_willExecuteImmediately = Will execute immediately
++view_operationCreateWizard_schedulingStep_name = Schedule
++view_operationCreateWizard_title = Operation Wizard
view_operationHistoryDetails_dateCompleted = Date Completed
view_operationHistoryDetails_dateSubmitted = Date Submitted
--view_operationHistoryDetails_error_fetchFailure = Failure loading operation history.~
++view_operationHistoryDetails_error_fetchFailure = Failure loading operation history.
view_operationHistoryDetails_noResults = This operation does not return any results.
view_operationHistoryDetails_operation = Operation
view_operationHistoryDetails_parameters = Parameters
@@@ -1466,9 -1501,9 +1505,9 @@@ view_operationHistoryDetails_requestor
view_operationHistoryDetails_results = Results
view_operationHistoryDetails_status = Status
view_operationHistoryList_button_forceDelete = Force Delete
--view_operationHistoryList_button_runOperation = Run Operation~
++view_operationHistoryList_button_runOperation = Run Operation
view_operationHistoryList_notYetStarted = not yet started
--view_operationHistoryList_title = Operation History~
++view_operationHistoryList_title = Operation History
view_operationScheduleDetails_enterParametersBelow = Enter parameters below...
view_operationScheduleDetails_fieldDefault_description = Select an operation to see its description.
view_operationScheduleDetails_fieldDefault_parameters = Select an operation to see its parameters.
@@@ -1479,10 -1514,10 +1518,10 @@@ view_operationScheduleDetails_field_par
view_operationScheduleDetails_field_timeout = Timeout
view_operationScheduleDetails_noParameters = This operation does not take any parameters.
view_operationScheduleDetails_operationSchedule = Operation Schedule
--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_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_setting_platforms = discovered platforms
--view_portlet_autodiscovery_title = Discovery Queue~
++view_portlet_autodiscovery_title = Discovery Queue
view_portlet_configure_definitionDesc = The configuration settings for the portlet.
view_portlet_configure_definitionTitle = Portlet Configuration
view_portlet_configure_needed = Click the Settings button to configure this portlet.
@@@ -1517,18 -1553,18 +1557,18 @@@ view_portlet_defaultName_resource_opera
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~
--view_portlet_generic_help = No help available for this portlet~
--view_portlet_generic_unconfigured = No settings available for this portlet~
--view_portlet_graph_configure_metricDefinition_graph = The metric definition id to graph~
--view_portlet_graph_configure_resource_graph = The resource to graph~
--view_portlet_graph_configure_title = Graph Config~
--view_portlet_graph_configure_title_desc = Configuration of the graph portlet~
--view_portlet_graph_help_msg = This Portlet supports the graphing of a resource metric.~
--view_portlet_graph_help_title = Graph Portlet~
--view_portlet_graph_help_unconfigured = This graph is unconfigured, click the settings button to configure.~
--view_portlet_graph_title = Resource Graph~
++view_portlet_favoriteResources_msg = This portlet displays your favorite resources
++view_portlet_favoriteResources_title = Favorite Resources
++view_portlet_generic_help = No help available for this portlet
++view_portlet_generic_unconfigured = No settings available for this portlet
++view_portlet_graph_configure_metricDefinition_graph = The metric definition id to graph
++view_portlet_graph_configure_resource_graph = The resource to graph
++view_portlet_graph_configure_title = Graph Config
++view_portlet_graph_configure_title_desc = Configuration of the graph portlet
++view_portlet_graph_help_msg = This Portlet supports the graphing of a resource metric.
++view_portlet_graph_help_title = Graph Portlet
++view_portlet_graph_help_unconfigured = This graph is unconfigured, click the settings button to configure.
++view_portlet_graph_title = Resource Graph
view_portlet_help_autodiscovery = This portlet allows import or ignore of newly discovered resources. Imported resources are added to inventory for monitoring and management. Ignored resources are not imported and are hidden from view unless explicitly unignored.
view_portlet_help_bundle_deps = This portlet shows relevant bundle deployments based on display criteria configured.
view_portlet_help_config_updates = This portlet displays recent configuration changes consistent with configuration settings.
@@@ -1550,59 -1587,59 +1591,59 @@@ view_portlet_help_problemResources = Th
view_portlet_help_recentlyAdded = This portlet displays resources that have recently been imported into inventory.
view_portlet_help_scheduledOperations = This portlet displays the next scheduled operations for the current user''s inventory.
view_portlet_help_tagCloud = This portlet displays the relative tag counts for the current user''s inventory.
--view_portlet_inventory_error1 = Failed to retrieve inventory summary~
++view_portlet_inventory_error1 = Failed to retrieve inventory summary
view_portlet_inventory_tooltip_collapse = Click to hide details for this resource.
view_portlet_inventory_tooltip_expand = Click to show more details for this resource.
--view_portlet_mashup_config_title = MashupPorlet Configuration~
--view_portlet_mashup_config_title_desc = The configuration settings for the mashup portlet.~
--view_portlet_mashup_help = This portlet can include a web page via an HTTP request into an iframe on the dashboard.~
--view_portlet_mashup_unconfigured = Page address not yet configured, click the settings button to setup this portlet.~
--view_portlet_message_config_title = MessagePortlet Configuration~
--view_portlet_message_config_title_desc = The configuration settings for the message portlet.~
--view_portlet_message_help = This portlet can display an HTML message on the dashboard.~
--view_portlet_message_title = Message~
--view_portlet_message_unconfigured = Message not yet configured, click the settings button to setup this portlet.~
--view_portlet_operations_config_completed = completed operations~
--view_portlet_operations_config_completed_enable = Whether to enable completed operations results grouping for dashboard.~
--view_portlet_operations_config_completed_maximum = Maximum number of Completed operations to display.~
--view_portlet_operations_config_scheduled_enable = Whether to enable scheduled operations results grouping for dashboard.~
--view_portlet_operations_config_scheduled_maximum = Maximum number of Scheduled operations to display.~
--view_portlet_operations_config_show_last = show Last~
--view_portlet_operations_config_show_next = show Next~
--view_portlet_operations_config_title = OperationsPortlet Configuration~
--view_portlet_operations_config_title_desc = The configuration settings for the Operations portlet.~
--view_portlet_operations_disabled = (Results currently disabled. Change settings to enable results.~
--view_portlet_operations_help_msg = This portlet displays both operations that have occurred and are scheduled to occur.~
--view_portlet_platform_help_msg = This portlet displays information about platforms in inventory.~
--view_portlet_platform_platform_error_1 = Failed to load platform metrics~
--view_portlet_platform_title = Platforms Summary~
--view_portlet_platform_type_error_1 = Could not load type data~
++view_portlet_mashup_config_title = MashupPorlet Configuration
++view_portlet_mashup_config_title_desc = The configuration settings for the mashup portlet.
++view_portlet_mashup_help = This portlet can include a web page via an HTTP request into an iframe on the dashboard.
++view_portlet_mashup_unconfigured = Page address not yet configured, click the settings button to setup this portlet.
++view_portlet_message_config_title = MessagePortlet Configuration
++view_portlet_message_config_title_desc = The configuration settings for the message portlet.
++view_portlet_message_help = This portlet can display an HTML message on the dashboard.
++view_portlet_message_title = Message
++view_portlet_message_unconfigured = Message not yet configured, click the settings button to setup this portlet.
++view_portlet_operations_config_completed = completed operations
++view_portlet_operations_config_completed_enable = Whether to enable completed operations results grouping for dashboard.
++view_portlet_operations_config_completed_maximum = Maximum number of Completed operations to display.
++view_portlet_operations_config_scheduled_enable = Whether to enable scheduled operations results grouping for dashboard.
++view_portlet_operations_config_scheduled_maximum = Maximum number of Scheduled operations to display.
++view_portlet_operations_config_show_last = show Last
++view_portlet_operations_config_show_next = show Next
++view_portlet_operations_config_title = OperationsPortlet Configuration
++view_portlet_operations_config_title_desc = The configuration settings for the Operations portlet.
++view_portlet_operations_disabled = (Results currently disabled. Change settings to enable results.
++view_portlet_operations_help_msg = This portlet displays both operations that have occurred and are scheduled to occur.
++view_portlet_platform_help_msg = This portlet displays information about platforms in inventory.
++view_portlet_platform_platform_error_1 = Failed to load platform metrics
++view_portlet_platform_title = Platforms Summary
++view_portlet_platform_type_error_1 = Could not load type data
view_portlet_problemResources_config_display_maximum = Maximum number of Problem resources to display.
view_portlet_problemResources_config_display_range = Show problem resources going back this many hours.
view_portlet_problemResources_config_display_range2 = From {0} to {1}
view_portlet_problemResources_maxDisplaySetting = maximum resources.
--view_portlet_problem_resources_config_display_maximum = Maximum number of Problem resources to display.~
--view_portlet_problem_resources_config_display_range = Show problem resources going back this many hours.~
--view_portlet_problem_resources_config_display_range2 = From {0} to {1}~
--view_portlet_problem_resources_config_problem_label = problem resources on dashboard.~
--view_portlet_problem_resources_config_title = ProblemResourcesPortlet Configuration~
--view_portlet_problem_resources_config_title_desc = The configuration settings for the Problem resources portlet.~
--view_portlet_problem_resources_help = This portlet displays resources that have reported alerts or Down availability.~
--view_portlet_problem_resources_title = Has Alerts or Currently Unavailable~
--view_portlet_recentAlerts_config_members = Select Members~
--view_portlet_recentAlerts_config_priority_label = priority Alerts,~
--view_portlet_recentAlerts_config_when = within the past~
++view_portlet_problem_resources_config_display_maximum = Maximum number of Problem resources to display.
++view_portlet_problem_resources_config_display_range = Show problem resources going back this many hours.
++view_portlet_problem_resources_config_display_range2 = From {0} to {1}
++view_portlet_problem_resources_config_problem_label = problem resources on dashboard.
++view_portlet_problem_resources_config_title = ProblemResourcesPortlet Configuration
++view_portlet_problem_resources_config_title_desc = The configuration settings for the Problem resources portlet.
++view_portlet_problem_resources_help = This portlet displays resources that have reported alerts or Down availability.
++view_portlet_problem_resources_title = Has Alerts or Currently Unavailable
++view_portlet_recentAlerts_config_members = Select Members
++view_portlet_recentAlerts_config_priority_label = priority Alerts,
++view_portlet_recentAlerts_config_when = within the past
view_portlet_recentAlerts_fail_msg = Failed to load resources assigned for alert filtering.
--view_portlet_recentAlerts_help_msg = Displays recent alerts fired on resources visible to the current user login.~
--view_portlet_recentAlerts_title = Recent Alerts~
--view_portlet_recentlyAdded_approved_platforms = recently approved platforms on dashboard.~
--view_portlet_recentlyAdded_error1 = Failed to load recently added resources~
--view_portlet_recentlyAdded_help_msg = This portlet displays resources that have recently been imported into the inventory.~
++view_portlet_recentAlerts_help_msg = Displays recent alerts fired on resources visible to the current user login.
++view_portlet_recentAlerts_title = Recent Alerts
++view_portlet_recentlyAdded_approved_platforms = recently approved platforms on dashboard.
++view_portlet_recentlyAdded_error1 = Failed to load recently added resources
++view_portlet_recentlyAdded_help_msg = This portlet displays resources that have recently been imported into the inventory.
view_portlet_recentlyAdded_setting_addedPlatforms = recently added platforms
--view_portlet_recentlyAdded_title = Recently Added Portlet~
++view_portlet_recentlyAdded_title = Recently Added Portlet
view_portlet_results_empty = No results found using specified criteria.
--view_portlet_tagCloud_help = portlet displays the relative tag counts in the system visible to the current user.~
--view_portlet_tagCloud_title = TagCloud~
++view_portlet_tagCloud_help = portlet displays the relative tag counts in the system visible to the current user.
++view_portlet_tagCloud_title = TagCloud
view_remoteAgentInstall_agentStatus = Status do Agente
view_remoteAgentInstall_agentStatusDefault = -Pressione o Bot\u00E3o Atualizar Status-
view_remoteAgentInstall_buttonFindAgent = Procurar Agente
@@@ -1625,22 -1662,22 +1666,22 @@@ view_remoteAgentInstall_promptUser = No
view_remoteAgentInstall_result = Resultado
view_remoteAgentInstall_resultCode = ResultCode
view_remoteAgentInstall_startAgent = Iniciar Agente
- view_remoteAgentInstall_startAgentResults = resultado da inicializa\u00E7\u00E3o do Agente\: [{0}]
-view_remoteAgentInstall_startAgentResults = resultado da inicializa\u00E7\u00E3o do Agente: [{0}]
++view_remoteAgentInstall_startAgentResults = resultado da inicializa\u00E7\u00E3o do Agente\\\\\\\\: [{0}]
view_remoteAgentInstall_step = Step
view_remoteAgentInstall_stopAgent = Parar Agente
- view_remoteAgentInstall_stopAgentResults = resultado do encerramento do Agente\: [{0}]
-view_remoteAgentInstall_stopAgentResults = resultado do encerramento do Agente: [{0}]
++view_remoteAgentInstall_stopAgentResults = resultado do encerramento do Agente\\\\\\\\: [{0}]
view_remoteAgentInstall_success = Instala\u00E7\u00E3o do Agente finalizada
view_remoteAgentInstall_updateStatus = Status da Atualiza\u00E7\u00E3o
--view_reportsTop_description = This section provides access to global reports.~
++view_reportsTop_description = This section provides access to global reports.
view_reportsTop_title = Relat\u00F3rios
--view_reports_alertDefinitions = Defini\u00E7\u00E3o de Alertas~
++view_reports_alertDefinitions = Defini\u00E7\u00E3o de Alertas
view_reports_alertDefinitions_parentHover = Click to go to the parent alert definition
view_reports_alertDefinitions_resTypeLoadError = Cannot get the template resource type - unable to view the alert template.
view_reports_inventorySummary_failFetch = Failed to get inventory summary
--view_reports_platforms = Utiliza\u00E7\u00E3o de Mem\u00F3ria e CPU~
--view_reports_subsystems = Subsistemas~
--view_resourceResourceGroupList_error_fetchFailure = Failed to fetch Resource''s groups.~
--view_resourceResourceGroupList_error_updateFailure = Failed to update assigned Resource groups.~
++view_reports_platforms = Utiliza\u00E7\u00E3o de Mem\u00F3ria e CPU
++view_reports_subsystems = Subsistemas
++view_resourceResourceGroupList_error_fetchFailure = Failed to fetch Resource''s groups.
++view_resourceResourceGroupList_error_updateFailure = Failed to update assigned Resource groups.
view_resourceResourceGroupList_message_updateSuccess = Group membership updated for [{0}].
view_resource_inventory_activity_changed_by = Changed by
view_resource_inventory_activity_criteria_no_recent_events = No event counts based off display criteria.
@@@ -1657,183 -1694,184 +1698,184 @@@ view_resource_inventory_childhistory_de
view_resource_inventory_childhistory_filterTitle = Past N Days
view_resource_inventory_childhistory_status_invalidArtifact = Invalid Artifact
view_resource_inventory_childhistory_status_invalidConfig = Invalid Configuration
--view_resource_monitor_availability_loadFailed = Failed to load availability history~
--view_resource_monitor_calltime_average = Average~
--view_resource_monitor_calltime_count = Count~
--view_resource_monitor_calltime_destination = Call Destination~
--view_resource_monitor_calltime_editFailed = Call time data can not be edited~
--view_resource_monitor_calltime_loadFailed = Could not load call time data~
--view_resource_monitor_calltime_lookupFailed = Could not load resource for call time~
--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~
--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_availability_loadFailed = Failed to load availability history
++view_resource_monitor_calltime_average = Average
++view_resource_monitor_calltime_count = Count
++view_resource_monitor_calltime_destination = Call Destination
++view_resource_monitor_calltime_editFailed = Call time data can not be edited
++view_resource_monitor_calltime_loadFailed = Could not load call time data
++view_resource_monitor_calltime_lookupFailed = Could not load resource for call time
++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
++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
view_resource_monitor_table_min = Minimum
--view_resource_title_component_errors_tooltip = Shows managed component errors. Click for details~
--view_resource_title_tagUpdateFailed = Failed to update resource tags~
++view_resource_title_component_errors_tooltip = Shows managed component errors. Click for details
++view_resource_title_tagUpdateFailed = Failed to update resource tags
view_searchBar_defaultPattern = definir nome para o padr\u00E3o
view_searchBar_error_selectSavedSearch = ''Erro ao selecionar a pesquisa''
view_searchBar_query = Pesquisa
view_searchBar_resourceGroups = Grupos de Recursos
view_searchBar_resources = Recursos
view_searchBar_welcomeMessage = procurar por {0}s
--view_searchGUI_loginStatus = Imposs\u00EDvel determinar o status do login, verifique o status do servidor~
++view_searchGUI_loginStatus = Imposs\u00EDvel determinar o status do login, verifique o status do servidor
view_selector_assigned = Associado {0}
view_selector_available = Dispon\u00EDvel {0}
view_subTab_error_disabled = N\u00E3o \u00E9 poss\u00EDvel selecionar uma subTab desabilidada [{0}].
view_summaryDashboard_resetConfirm = Reset to default summary dashboard (lose local changes)?
--view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].~
--view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].~
--view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].~
--view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.~
--view_summaryOverviewForm_field_description = Description~
--view_summaryOverviewForm_field_location = Location~
--view_summaryOverviewForm_field_name = Name~
--view_summaryOverviewForm_field_parent = Parent~
--view_summaryOverviewForm_field_type = Type~
--view_summaryOverviewForm_field_version = Version~
--view_summaryOverviewForm_header_summary = Summary~
++view_summaryOverviewForm_error_descriptionChangeFailure = Failed to change description of Resource with id {0} from [{1}] to [{2}].
++view_summaryOverviewForm_error_locationChangeFailure = Failed to change location of Resource with id {0} from [{1}] to [{2}].
++view_summaryOverviewForm_error_nameChangeFailure = Failed to change name of Resource with id {0} from [{1}] to [{2}].
++view_summaryOverviewForm_error_traitsLoadFailure = Failed to load traits for {0}.
++view_summaryOverviewForm_field_description = Description
++view_summaryOverviewForm_field_location = Location
++view_summaryOverviewForm_field_name = Name
++view_summaryOverviewForm_field_parent = Parent
++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}].~
--view_summaryOverview_header_detectedErrors = Detected Errors~
--view_summaryOverview_title_errorDetailsWindow = Error Details~
--view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error details.~
++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}].
++view_summaryOverview_header_detectedErrors = Detected Errors
++view_summaryOverview_title_errorDetailsWindow = Error Details
++view_summaryOverview_tooltip_detectedErrors = Click on the rows to see the error details.
view_tableSection_backButton = Voltar \u00E0 Lista
--view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug~
--view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
++view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1}]. Please report this bug
++view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.
view_table_drawFail = Failed to draw Table [{0}].
view_table_matchingRows = Matching Rows: {0} (selected: {1})
- view_table_totalRows = Total de Linhas\: {0} (selecionada\: {1})
-view_table_totalRows = Total de Linhas: {0} (selecionada: {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_events = Events~
- view_tabs_common_graphs = Graphs~
++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~
-view_tabs_common_graphs = Graphs~
++view_tabs_common_events = Events
++view_tabs_common_graphs = Graphs
view_tabs_common_group_members = Group Members
--view_tabs_common_group_membership = Group Membership~
--view_tabs_common_groups = Groups~
--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_group_membership = Group Membership
++view_tabs_common_groups = Groups
++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~
++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
view_tabs_invalidSubTab = Invalid subtab: {0}
view_tabs_invalidTab = Invalid tab: {0}
view_tagCloud_deleteTag = Delete Tag
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~
--view_tags_title = Tags:~
--view_tags_tooltip_1 = Click to remove this Tag~
--view_tags_tooltip_2 = Click to edit Tags~
++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
++view_tags_title = Tags:
++view_tags_tooltip_1 = Click to remove this Tag
++view_tags_tooltip_2 = Click to edit Tags
view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic = )tagname (e.g. it:env = QA, or owner = John)
--view_testTop_description = Esta se\u00E7\u00E3o cont\u00E9m p\u00E1ginas para realiza\u00E7\u00E3o de testes em v\u00E1rios componentes UI.~
--view_testTop_title = Teste~
--view_titleBar_common_addedFav = You have added [{0}] as a favorite~
--view_titleBar_common_addedFavFailure = Failed to add [{0}] as a favorite~
--view_titleBar_common_clickToAddFav = Click to add this as a favorite~
--view_titleBar_common_clickToRemoveFav = Click to remove this as a favorite~
--view_titleBar_common_loadTagsFailure = Failed to load the tags for [{0}]~
--view_titleBar_common_removedFav = You have removed [{0}] as one of your favorites~
--view_titleBar_common_removedFavFailure = Failed to remove [{0}] as one of your favorites~
--view_titleBar_common_updateTagsFailure = Failed to update the tags for [{0}]~
--view_titleBar_common_updateTagsSuccessful = The tags for [{0}] have been updated~
++view_testTop_description = Esta se\u00E7\u00E3o cont\u00E9m p\u00E1ginas para realiza\u00E7\u00E3o de testes em v\u00E1rios componentes UI.
++view_testTop_title = Teste
++view_titleBar_common_addedFav = You have added [{0}] as a favorite
++view_titleBar_common_addedFavFailure = Failed to add [{0}] as a favorite
++view_titleBar_common_clickToAddFav = Click to add this as a favorite
++view_titleBar_common_clickToRemoveFav = Click to remove this as a favorite
++view_titleBar_common_loadTagsFailure = Failed to load the tags for [{0}]
++view_titleBar_common_removedFav = You have removed [{0}] as one of your favorites
++view_titleBar_common_removedFavFailure = Failed to remove [{0}] as one of your favorites
++view_titleBar_common_updateTagsFailure = Failed to update the tags for [{0}]
++view_titleBar_common_updateTagsSuccessful = The tags for [{0}] have been updated
view_titleBar_group_failInfo = Failed to get general info on group [{0}] with ID [{1}]
view_titleBar_group_summary_collapsedTooltip = Click to show more details for this group
view_titleBar_group_summary_expandedTooltip = Click to hide details for this group
--view_tree_common_contextMenu_addChartToDashboard = Add chart to dashboard [{0}]~
--view_tree_common_contextMenu_chart = Chart~
--view_tree_common_contextMenu_editPluginConfiguration = Edit [{0}] Plugin Configuration~
--view_tree_common_contextMenu_editResourceConfiguration = Edit [{0}] Resource Configuration~
++view_tree_common_contextMenu_addChartToDashboard = Add chart to dashboard [{0}]
++view_tree_common_contextMenu_chart = Chart
++view_tree_common_contextMenu_editPluginConfiguration = Edit [{0}] Plugin Configuration
++view_tree_common_contextMenu_editResourceConfiguration = Edit [{0}] Resource Configuration
view_tree_common_contextMenu_groupGraph = Group Metric Graph
view_tree_common_contextMenu_loadFail_children = Failed to load platform manual add children
view_tree_common_contextMenu_loadFail_dashboards = Failed to load user dashboards
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_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_loadFailed_manualAddChildren = Failed to load platform manual add children
++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
--view_tree_common_contextMenu_saveChartToDashboardFailure = Failed to save the dashboard~
--view_tree_common_contextMenu_saveChartToDashboardSuccessful = You have saved dashboard [{0}]~
++view_tree_common_contextMenu_saveChartToDashboardFailure = Failed to save the dashboard
++view_tree_common_contextMenu_saveChartToDashboardSuccessful = You have saved dashboard [{0}]
view_tree_common_contextMenu_type_name_label = Type: {0}
view_tree_common_createFailed_autoCluster = Failed to create or update autocluster backing group
--view_tree_common_loadFailed_children = Failed to load children for node~
--view_tree_common_loadFailed_create = Failed to create view for this node~
--view_tree_common_loadFailed_descendants = Failed to load descendants for tree~
--view_tree_common_loadFailed_generic = Failed to load data for tree~
++view_tree_common_loadFailed_children = Failed to load children for node
++view_tree_common_loadFailed_create = Failed to create view for this node
++view_tree_common_loadFailed_descendants = Failed to load descendants for tree
++view_tree_common_loadFailed_generic = Failed to load data for tree
view_tree_common_loadFailed_group = Failed to load group with id [{0}]
view_tree_common_loadFailed_groupTree = Failed to load group tree
--view_tree_common_loadFailed_node = Failed to load data for this node~
--view_tree_common_loadFailed_root = Failed to load root for tree~
--view_tree_common_loadFailed_selection = Failed to select this node~
--view_tree_common_loadFailed_update = Failed to update view for this node~
++view_tree_common_loadFailed_node = Failed to load data for this node
++view_tree_common_loadFailed_root = Failed to load root for tree
++view_tree_common_loadFailed_selection = Failed to select this node
++view_tree_common_loadFailed_update = Failed to update view for this node
view_tree_group_error_updateAutoCluster = Failed to create or update autocluster backing group. key: [{0}]
--view_type_parentId = Parent ID~
--view_type_resourceTypes = Resource Types~
--view_type_typeTreeLoadFailure = Failed to load resource type tree data~
--view_upload_alreadyUploaded = File has already been uploaded~
--view_upload_bundleDistFile = Distribution File~
--view_upload_error_bundleDistFile = Error uploading Bundle Distribution File~
--view_upload_error_file = Error uploading file~
--view_upload_error_fileName = Error uploading file [{0}]~
--view_upload_error_fileName_2 = Error uploading file [{0}], check for invalid file path.~
--view_upload_error_packageVersionFile = Error uploading Package Version File~
--view_upload_error_results = Error uploading file, unexpected results: [{0}]~
--view_upload_inProgress = Can not submit, upload is currently in progress~
--view_upload_prompt_1 = [{0}] File to Upload~
--view_upload_prompt_2 = File to Upload~
--view_upload_success = File successfully uploaded~
--view_upload_tooltip_1 = Select a file to upload, then click Upload or Next~
++view_type_parentId = Parent ID
++view_type_resourceTypes = Resource Types
++view_type_typeTreeLoadFailure = Failed to load resource type tree data
++view_upload_alreadyUploaded = O upload do arquivo j\\u00E1 foi realizado.
++view_upload_bundleDistFile = Arquivo de Distribui\\u00E7\\u00E3o
++view_upload_error_bundleDistFile = Erro ao fazer upload do arquivo de distribui\\u00E7\\u00E3o do bundle
++view_upload_error_file = Erro ao fazer upload do arquivo
++view_upload_error_fileName = Erro ao fazer upload do arquivo [{0}]
++view_upload_error_fileName_2 = Erro ao fazer upload do arquivo [{0}], verifique se o caminho do arquivo est\\u00E1 correto.
++view_upload_error_packageVersionFile = Erro ao fazer upload da vers\\u00E3o do pacote
++view_upload_error_results = Erro ao fazer upload do arquivo, resultados inexperados: [{0}]
++view_upload_inProgress = N\\u00E3o foi poss\\u00EDvel submeter, upload em andamento
++view_upload_prompt_1 = [{0}] File to Upload
++view_upload_prompt_2 = File to Upload
++view_upload_success = File successfully uploaded
++view_upload_tooltip_1 = Select a file to upload, then click Upload or Next
view_upload_tooltip_1a = Select a file to upload, then click Upload or Next
view_upload_tooltip_1b = Select a file to upload, then click Next
--view_upload_tooltip_2 = File upload had previously failed~
--view_upload_upload = Upload~
--view_upload_uploadFile = UploadFile~
++view_upload_tooltip_2 = File upload had previously failed
++view_upload_upload = Upload
++view_upload_uploadFile = UploadFile
widget_colorPicker_tooltip = Clique para selecionar uma nova cor
widget_durationItem_inputUnitLessThanTargetUnit = A unidade de entrada \u00E9 menor que a unidade final.
widget_durationItem_unitTypeNotSupported = Tipo de unidade [{0}] n\u00E3o suportada por este Item de Dura\u00E7\u00E3o.
@@@ -1873,7 -1911,7 +1915,7 @@@ widget_recordEditor_info_recordCreatedD
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_info_recordsDeletedDetailed = {0} {1} exclu\u00EDdo: {2}.
++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}
@@@ -1886,7 -1924,7 +1928,7 @@@ widget_resourceFactoryWizard_createSubm
widget_resourceFactoryWizard_createSubmitType = A requisi\u00E7\u00E3o para cria\u00E7\u00E3o de um recurso do tipo [{0}] foi submetida com sucesso.
widget_resourceFactoryWizard_createWizardTitle = Criar novo recurso do tipo [{0}]
widget_resourceFactoryWizard_createWizardWindowTitle = Assistente para Cria\u00E7\u00E3o de Recurso
- ##widget_resourceFactoryWizard_editConfigStepName = Deployment Options
-##widget_resourceFactoryWizard_editConfigStepName = Deployment Options
++widget_resourceFactoryWizard_editConfigStepName = Opções de implantação
widget_resourceFactoryWizard_execute1 = Falha ao criar novo recurso - vers\u00E3o do pacote inexistente
widget_resourceFactoryWizard_execute2 = Falha ao criar novo recurso
widget_resourceFactoryWizard_failedToDeleteVersion = Falha ao excluir a vers\u00E3o do pacote durante o cancelamento da cria\u00E7\u00E3o do recurso
@@@ -1899,7 -1937,7 +1941,7 @@@ widget_resourceFactoryWizard_infoStepNa
widget_resourceFactoryWizard_infoStep_loadFail = Falha ao recuperar Arquiteturas dispon\u00EDveis.
widget_resourceFactoryWizard_namePrompt = Novo Nome do Recurso
widget_resourceFactoryWizard_templatePrompt = Modelo de Propriedades para Conex\u00E3o
- ##widget_resourceFactoryWizard_timeoutHelp = A timeout duration. If specified will override the default timeout for child resource creation (on the RHQ Agent). Useful for particularly long create actions, like deployment of a large application. Usually used if a previous attempt suffered a timeout failure.
-##widget_resourceFactoryWizard_timeoutHelp = A timeout duration. If specified will override the default timeout for child resource creation (on the RHQ Agent). Useful for particularly long create actions, like deployment of a large application. Usually used if a previous attempt suffered a timeout failure.
++widget_resourceFactoryWizard_timeoutHelp = Duração do timeout. Se especificado irá sobrescrever o timeout padrão para criação de recursos filhos (no RHQ Agent). Útil principalmente para ações muito longas, como a implantação de uma aplição muito grande. Geralmente utilizado devido a tentativas que sofreram timeout anteriormente.
widget_resourceFactoryWizard_uploadFailure = Falha ao realizar o upload do arquivo
widget_resourceFactoryWizard_uploadFileStepName = Upload do Arquivo do Recurso
widget_resourceFactoryWizard_uploadInProgress = Upload em andamento... Esse processo pode demorar alguns minutos para ser finalizado em caso de arquivos muito grandes.
commit ed7aad1f40f87b6d484897d72eb2075836f7ae29
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 16:43:23 2011 -0400
[coverity] close initial contexts
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
index e9ff990..5cd937b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
@@ -233,6 +233,7 @@ public final class LookupUtil {
try {
InitialContext context = new InitialContext();
DataSource ds = (DataSource) context.lookup(RHQConstants.DATASOURCE_JNDI_NAME);
+ context.close();
return ds;
} catch (Exception e) {
throw new RuntimeException("Failed to get the data source", e);
@@ -249,6 +250,7 @@ public final class LookupUtil {
try {
InitialContext context = new InitialContext();
TransactionManager tm = (TransactionManager) context.lookup(RHQConstants.TRANSACTION_MANAGER_JNDI_NAME);
+ context.close();
return tm;
} catch (Exception e) {
throw new RuntimeException("Failed to get the transaction manager", e);
@@ -678,7 +680,12 @@ public final class LookupUtil {
* @throws NamingException when resource not found
*/
private static Object lookup(String name) throws NamingException {
- return new InitialContext().lookup(name);
+ InitialContext initialContext = new InitialContext();
+ try {
+ return initialContext.lookup(name);
+ } finally {
+ initialContext.close();
+ }
}
public static DataAccessManagerLocal getDataAccessManager() {
commit 199940ca403f4123a2a6a753b196a12f975e207a
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 16:24:39 2011 -0400
[coverity] close jar file
diff --git a/modules/enterprise/agentupdate/src/main/java/org/rhq/enterprise/agent/update/AgentUpdate.java b/modules/enterprise/agentupdate/src/main/java/org/rhq/enterprise/agent/update/AgentUpdate.java
index fc43008..704b48d 100644
--- a/modules/enterprise/agentupdate/src/main/java/org/rhq/enterprise/agent/update/AgentUpdate.java
+++ b/modules/enterprise/agentupdate/src/main/java/org/rhq/enterprise/agent/update/AgentUpdate.java
@@ -272,9 +272,13 @@ public class AgentUpdate {
private byte[] getJarFileContent(String filename) throws Exception {
JarFile jarFile = new JarFile(getJarFilename()); // use the jar file because user might have used --jar
- JarEntry jarFileEntry = jarFile.getJarEntry(filename);
- InputStream jarFileEntryStream = jarFile.getInputStream(jarFileEntry);
- return slurp(jarFileEntryStream);
+ try {
+ JarEntry jarFileEntry = jarFile.getJarEntry(filename);
+ InputStream jarFileEntryStream = jarFile.getInputStream(jarFileEntry);
+ return slurp(jarFileEntryStream);
+ } finally {
+ jarFile.close();
+ }
}
private void printSyntax() {
commit 9cabd191fd42b89a86d1fa6bd2290bc5ea7a16c3
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 16:22:35 2011 -0400
[coverity] close reader
diff --git a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/ScriptCommand.java b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/ScriptCommand.java
index 693885f..9a071b7 100644
--- a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/ScriptCommand.java
+++ b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/commands/ScriptCommand.java
@@ -58,7 +58,7 @@ public class ScriptCommand implements ClientCommand {
private ScriptEngine jsEngine;
private StandardBindings bindings;
-
+
private final Log log = LogFactory.getLog(ScriptCommand.class);
private StringBuilder script = new StringBuilder();
@@ -85,7 +85,15 @@ public class ScriptCommand implements ClientCommand {
bindScriptArgs(scriptCmdLine);
executeUtilScripts();
- return executeScriptFile(new FileReader(scriptCmdLine.getScriptFileName()), client);
+ FileReader reader = new FileReader(scriptCmdLine.getScriptFileName());
+ try {
+ return executeScriptFile(reader, client);
+ } finally {
+ try {
+ reader.close();
+ } catch (IOException ignore) {
+ }
+ }
} catch (FileNotFoundException e) {
client.getPrintWriter().println(e.getMessage());
if (log.isDebugEnabled()) {
@@ -97,8 +105,7 @@ public class ScriptCommand implements ClientCommand {
if (log.isDebugEnabled()) {
log.debug("A parse error occurred.", e);
}
- }
- else {
+ } else {
throw new CLIScriptException(e);
}
}
@@ -143,8 +150,8 @@ public class ScriptCommand implements ClientCommand {
} catch (ScriptException e) {
String message = e.getCause() != null ? e.getCause().getMessage() : e.getMessage();
- message = message.replace("sun.org.mozilla.javascript.internal.EcmaError: ","");
- message = message.replace("(<Unknown source>#1) in <Unknown source> at line number 1","");
+ message = message.replace("sun.org.mozilla.javascript.internal.EcmaError: ", "");
+ message = message.replace("(<Unknown source>#1) in <Unknown source> at line number 1", "");
client.getPrintWriter().println(message);
client.getPrintWriter().println(script);
@@ -162,9 +169,10 @@ public class ScriptCommand implements ClientCommand {
public void initBindings(ClientMain client) {
if (jsEngine == null) {
bindings = new StandardBindings(client.getPrintWriter(), client.getRemoteClient());
-
+
try {
- jsEngine = ScriptEngineFactory.getScriptEngine("JavaScript", new PackageFinder(Arrays.asList(getLibDir())), bindings);
+ jsEngine = ScriptEngineFactory.getScriptEngine("JavaScript", new PackageFinder(Arrays
+ .asList(getLibDir())), bindings);
jsEngine.eval("1+1");
} catch (ScriptException e) {
e.printStackTrace();
@@ -172,19 +180,20 @@ public class ScriptCommand implements ClientCommand {
e.printStackTrace();
}
}
-
+
bindings.getSubject().setValue(client.getSubject());
bindings.getPretty().getValue().setWidth(client.getConsoleWidth());
bindings.getProxyFactory().setValue(new EditableResourceClientFactory(client));
-
+
//non-standard bindings
bindings.put("configurationEditor", new ConfigurationEditor(client));
bindings.put("rhq", new Controller(client));
ScriptEngineFactory.injectStandardBindings(jsEngine, bindings, false);
-
- ScriptEngineFactory.bindIndirectionMethods(jsEngine, "configurationEditor", bindings.get("configurationEditor"));
- ScriptEngineFactory.bindIndirectionMethods(jsEngine, "rhq", bindings.get("rhq"));
+
+ ScriptEngineFactory
+ .bindIndirectionMethods(jsEngine, "configurationEditor", bindings.get("configurationEditor"));
+ ScriptEngineFactory.bindIndirectionMethods(jsEngine, "rhq", bindings.get("rhq"));
}
private void executeUtilScripts() {
@@ -253,8 +262,7 @@ public class ScriptCommand implements ClientCommand {
if (client.isInteractiveMode()) {
client.getPrintWriter().println(e.getMessage());
client.getPrintWriter().println("^");
- }
- else {
+ } else {
throw new CLIScriptException(e);
}
}
@@ -270,8 +278,8 @@ public class ScriptCommand implements ClientCommand {
}
public String getDetailedHelp() {
- return "Execute a statement or a script. The following services managers are available: " +
- RhqManagers.values();
+ return "Execute a statement or a script. The following services managers are available: "
+ + RhqManagers.values();
}
public ScriptContext getContext() {
commit 19c89919315d3a13f2894f9da829f1384e710053
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 16:20:31 2011 -0400
close streams (didn't see a coverity alert on this - I just came across it)
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/Version.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/Version.java
index 89280d9..e7f63a4 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/Version.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/Version.java
@@ -184,7 +184,11 @@ public class Version {
Properties newProps = new Properties();
try {
- newProps.load(stream);
+ try {
+ newProps.load(stream);
+ } finally {
+ stream.close();
+ }
} catch (Exception e) {
throw new RuntimeException(e);
}
commit b7a146b5eae72b2545ceead0a45c79420355be7a
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 16:18:49 2011 -0400
[coverity] close stream
diff --git a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/Version.java b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/Version.java
index 84e9ec0..0150a9c 100644
--- a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/Version.java
+++ b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/Version.java
@@ -190,7 +190,11 @@ public class Version {
try {
URL jarUrl = Version.class.getProtectionDomain().getCodeSource().getLocation();
JarFile jarFile = new JarFile(new File(jarUrl.toURI()));
- manifest = jarFile.getManifest();
+ try {
+ manifest = jarFile.getManifest();
+ } finally {
+ jarFile.close();
+ }
} catch (Exception e) {
return new Properties();
}
commit 2a8e27ee809f2d812b72b15fcbb5ee8a0485c653
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 16:15:31 2011 -0400
[converity] close stream
diff --git a/modules/enterprise/comm/src/main/java/org/rhq/enterprise/communications/util/DumpBytes.java b/modules/enterprise/comm/src/main/java/org/rhq/enterprise/communications/util/DumpBytes.java
index 8bb9865..4d5848f 100644
--- a/modules/enterprise/comm/src/main/java/org/rhq/enterprise/communications/util/DumpBytes.java
+++ b/modules/enterprise/comm/src/main/java/org/rhq/enterprise/communications/util/DumpBytes.java
@@ -167,9 +167,13 @@ public class DumpBytes {
int num_bytes;
try {
- fis = new FileInputStream(file);
file_contents = new byte[(int) file.length()];
- num_bytes = fis.read(file_contents);
+ fis = new FileInputStream(file);
+ try {
+ num_bytes = fis.read(file_contents);
+ } finally {
+ fis.close();
+ }
if (num_bytes != file_contents.length) {
throw new IllegalStateException(num_bytes + "!=" + file_contents.length);
commit 0fac1e88882631275804d98d47c910b005f1050e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 16:11:15 2011 -0400
[coverity] close input streams
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java
index 052bf11..db04c59 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java
@@ -92,7 +92,12 @@ public class SystemGWTServiceImpl extends AbstractGWTServiceImpl implements Syst
File file = agentManager.getAgentUpdateVersionFile();
Properties props = new Properties();
- props.load(new FileInputStream(file));
+ FileInputStream inStream = new FileInputStream(file);
+ try {
+ props.load(inStream);
+ } finally {
+ inStream.close();
+ }
return convertFromProperties(props);
} catch (Throwable t) {
@@ -143,7 +148,12 @@ public class SystemGWTServiceImpl extends AbstractGWTServiceImpl implements Syst
File versionFile = new File(getClientDownloadDir(), "rhq-client-version.properties");
try {
Properties p = new Properties();
- p.load(new FileInputStream(versionFile));
+ FileInputStream inStream = new FileInputStream(versionFile);
+ try {
+ p.load(inStream);
+ } finally {
+ inStream.close();
+ }
return convertFromProperties(p);
} catch (Throwable t) {
throw getExceptionToThrowToClient(t, "Unable to retrieve client version info.");
commit 2e3d2af81ea989a9dad7d9ccc5c6e551a085d879
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 15:53:19 2011 -0400
[coverity] close input streams
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java
index 3bdafda..b339190 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java
@@ -86,7 +86,12 @@ public class RetrieveContentBitsRunner implements Runnable {
InputStream is;
try {
is = contentManager.performGetPackageBits(request.getResourceId(), request.getPackageDetails());
- pkgDetails.setSHA256(new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(is));
+ try {
+ pkgDetails.setSHA256(new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
+ .calcDigestString(is));
+ } finally {
+ is.close();
+ }
} catch (Exception e) {
e.printStackTrace();
}
@@ -95,7 +100,11 @@ public class RetrieveContentBitsRunner implements Runnable {
InputStream is;
try {
is = contentManager.performGetPackageBits(request.getResourceId(), request.getPackageDetails());
- pkgDetails.setMD5((new MessageDigestGenerator(MessageDigestGenerator.MD5).calcDigestString(is)));
+ try {
+ pkgDetails.setMD5((new MessageDigestGenerator(MessageDigestGenerator.MD5).calcDigestString(is)));
+ } finally {
+ is.close();
+ }
} catch (Exception e) {
e.printStackTrace();
}
commit 302b7ee7c388f0db5f7cf926308034b5041de7ad
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 15:44:49 2011 -0400
[coverity] be nice and close the context. don't worry about doing it
in a try-finally - if the lookup fails, we have more important things
to worry about then not closing the context - such as we don't
have a hibernate entity manager available!
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
index b399741..e9ff990 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
@@ -266,6 +266,7 @@ public final class LookupUtil {
try {
InitialContext context = new InitialContext();
EntityManagerFactory factory = (EntityManagerFactory) context.lookup(RHQConstants.ENTITY_MANAGER_JNDI_NAME);
+ context.close();
return factory.createEntityManager();
} catch (Exception e) {
throw new RuntimeException("Failed to create an entity manager", e);
@@ -653,7 +654,8 @@ public final class LookupUtil {
localJNDIName = getLocalJNDIName(type);
return (T) lookup(localJNDIName);
} catch (NamingException e) {
- throw new RuntimeException("Failed to lookup local interface to EJB " + type + ", localJNDI=[" + localJNDIName + "]", e);
+ throw new RuntimeException("Failed to lookup local interface to EJB " + type + ", localJNDI=["
+ + localJNDIName + "]", e);
}
}
commit 796ac12453e260f24228add540934d9a128804bf
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 15:40:00 2011 -0400
[coverity] close the initial context
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java b/modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java
index 85fb5b8..a2bdaa9 100644
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java
+++ b/modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java
@@ -109,12 +109,20 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
}
public EntityManager getEntityManager() {
+ InitialContext initialContext = null;
try {
- return ((EntityManagerFactory) getInitialContext().lookup("java:/RHQEntityManagerFactory"))
+ initialContext = getInitialContext();
+ return ((EntityManagerFactory) initialContext.lookup("java:/RHQEntityManagerFactory"))
.createEntityManager();
} catch (NamingException e) {
e.printStackTrace();
throw new RuntimeException("Failed to load entity manager", e);
+ } finally {
+ try {
+ initialContext.close();
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to close the initial context - why did this happen?", e);
+ }
}
}
commit a07dc82e8347ce2f1e7e42f9520fb3d4d5f7f3b6
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 15:33:05 2011 -0400
[coverity] closing the initial context explicitly
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java b/modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java
index 57ec318..85fb5b8 100644
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java
+++ b/modules/core/domain/src/test/java/org/rhq/core/domain/test/AbstractEJB3Test.java
@@ -35,15 +35,13 @@ import javax.transaction.TransactionManager;
import org.testng.AssertJUnit;
import org.testng.annotations.AfterGroups;
-import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeGroups;
-import org.testng.annotations.BeforeSuite;
import org.jboss.ejb3.embedded.EJB3StandaloneBootstrap;
import org.jboss.ejb3.embedded.EJB3StandaloneDeployer;
public abstract class AbstractEJB3Test extends AssertJUnit {
-// @BeforeSuite(groups = "integration.ejb3")
+ // @BeforeSuite(groups = "integration.ejb3")
@BeforeGroups(groups = "integration.ejb3")
public static void startupEmbeddedJboss() {
System.out.println("Starting ejb3...");
@@ -84,7 +82,7 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
}
}
-// @AfterSuite
+ // @AfterSuite
@AfterGroups(groups = "integration.ejb3")
public static void shutdownEmbeddedJboss() {
EJB3StandaloneBootstrap.shutdown();
@@ -93,12 +91,20 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
private TransactionManager tm;
public TransactionManager getTransactionManager() {
+ InitialContext initialContext = null;
try {
- tm = (TransactionManager) getInitialContext().lookup("java:/TransactionManager");
+ initialContext = getInitialContext();
+ tm = (TransactionManager) initialContext.lookup("java:/TransactionManager");
return tm;
} catch (NamingException e) {
e.printStackTrace();
throw new RuntimeException("Failed to load transaction manager", e);
+ } finally {
+ try {
+ initialContext.close();
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to close the initial context - why did this happen?", e);
+ }
}
}
commit e0bb9de07efb271a80e98f53a4c09e75c9b1d73e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 15:23:01 2011 -0400
[coverity] close the jar file for the test
diff --git a/modules/core/client-api/src/test/java/org/rhq/core/clientapi/descriptor/PluginTransformerTest.java b/modules/core/client-api/src/test/java/org/rhq/core/clientapi/descriptor/PluginTransformerTest.java
index 2e3374f..714d9b5 100644
--- a/modules/core/client-api/src/test/java/org/rhq/core/clientapi/descriptor/PluginTransformerTest.java
+++ b/modules/core/client-api/src/test/java/org/rhq/core/clientapi/descriptor/PluginTransformerTest.java
@@ -311,7 +311,7 @@ public class PluginTransformerTest {
JarFile jarFile = new JarFile(pluginJarFile);
Manifest manifest = jarFile.getManifest();
Attributes attributes = manifest.getMainAttributes();
-
+ jarFile.close();
return attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
}
commit 59a739e6a77f05d48ede89e5dc416ea670ad478c
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 15:13:36 2011 -0400
[coverity] this isn't used anywhere, but we may revive it later. close the input stream properly.
diff --git a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/i18n/PropertiesGenerator.java b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/i18n/PropertiesGenerator.java
index 93a9c56..3c9d64f 100644
--- a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/i18n/PropertiesGenerator.java
+++ b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/metadata/i18n/PropertiesGenerator.java
@@ -1,25 +1,25 @@
- /*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser General Public License along with this program;
- * if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser General Public License along with this program;
+ * if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
package org.rhq.core.clientapi.agent.metadata.i18n;
import java.io.File;
@@ -34,9 +34,11 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
@@ -106,7 +108,12 @@ public class PropertiesGenerator {
if (update) {
// First load into properties we can check for existence
previousProperties = new Properties();
- previousProperties.load(new FileInputStream(propertiesFile));
+ FileInputStream is = new FileInputStream(propertiesFile);
+ try {
+ previousProperties.load(is);
+ } finally {
+ is.close();
+ }
this.contentWriter.println("\n\n# Contents added " + new Date() + "\n\n");
}
commit 2300051a18838bb45b6f33ca4a15ffba8f076c2a
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 15:08:43 2011 -0400
[coverity] make sure we close the jar file
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java b/modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java
index c24fb54..529f317 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java
@@ -168,6 +168,7 @@ public class JarContentFileInfo extends ContentFileInfo {
JarFile jarFile = new JarFile(file);
if (null != jarFile) {
manifest = jarFile.getManifest();
+ jarFile.close();
}
} else {
File manifestFile = new File(file, "/META-INF/MANIFEST.MF");
commit f816103dfd72e5108772459d4673eb6226cf0a19
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 14:56:55 2011 -0400
[coverity] close the pid file
diff --git a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
index e4d7575..325ed20 100644
--- a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
+++ b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
@@ -18,18 +18,6 @@
*/
package org.rhq.plugins.mysql;
-import org.rhq.core.domain.measurement.AvailabilityType;
-import org.rhq.core.domain.measurement.DataType;
-import org.rhq.core.domain.measurement.MeasurementDataNumeric;
-import org.rhq.core.domain.measurement.MeasurementReport;
-import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
-import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
-import org.rhq.core.pluginapi.inventory.ResourceComponent;
-import org.rhq.core.pluginapi.inventory.ResourceContext;
-import org.rhq.core.pluginapi.measurement.MeasurementFacet;
-import org.rhq.core.util.jdbc.JDBCUtil;
-import org.rhq.plugins.database.DatabaseComponent;
-
import java.io.File;
import java.io.FileReader;
import java.sql.Connection;
@@ -43,8 +31,19 @@ import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.measurement.DataType;
+import org.rhq.core.domain.measurement.MeasurementDataNumeric;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
import org.rhq.core.system.AggregateProcessInfo;
import org.rhq.core.system.ProcessInfo;
+import org.rhq.plugins.database.DatabaseComponent;
import org.rhq.plugins.database.DatabaseQueryUtility;
/**
@@ -129,7 +128,7 @@ public class MySqlComponent implements DatabaseComponent, ResourceComponent, Mea
} else if ("Process.aggregateMemory.size".equals(requestName)) {
long value = aggregateProcessInfo.getAggregateMemory().getSize();
report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
- }else if ("Process.aggregateMemory.pageFaults".equals(requestName)) {
+ } else if ("Process.aggregateMemory.pageFaults".equals(requestName)) {
long value = aggregateProcessInfo.getAggregateMemory().getPageFaults();
report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
} else if ("Process.aggregateCpu.user".equals(requestName)) {
@@ -141,12 +140,12 @@ public class MySqlComponent implements DatabaseComponent, ResourceComponent, Mea
} else if ("Process.aggregateCpu.percent".equals(requestName)) {
double value = aggregateProcessInfo.getAggregateCpu().getPercent();
report.addData(new MeasurementDataNumeric(request, new Double(value)));
- } else if ("Process.aggregateCpu.total".equals(requestName)) {
+ } else if ("Process.aggregateCpu.total".equals(requestName)) {
long value = aggregateProcessInfo.getAggregateCpu().getTotal();
- report.addData(new MeasurementDataNumeric(request, new Double((double)value)));
- }else if ("Process.aggregateFileDescriptor.total".equals(requestName)) {
+ report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
+ } else if ("Process.aggregateFileDescriptor.total".equals(requestName)) {
long value = aggregateProcessInfo.getAggregateFileDescriptor().getTotal();
- report.addData(new MeasurementDataNumeric(request, new Double((double)value)));
+ report.addData(new MeasurementDataNumeric(request, new Double((double) value)));
}
} else {
if (request.getDataType() == DataType.MEASUREMENT) {
@@ -202,11 +201,15 @@ public class MySqlComponent implements DatabaseComponent, ResourceComponent, Mea
if (file.canRead()) {
try {
FileReader pidFileReader = new FileReader(file);
- char pidData[] = new char[(int)file.length()];
- pidFileReader.read(pidData);
- String pidString = new String(pidData);
- pidString = pidString.trim();
- result = Long.valueOf(pidString);
+ try {
+ char pidData[] = new char[(int) file.length()];
+ pidFileReader.read(pidData);
+ String pidString = new String(pidData);
+ pidString = pidString.trim();
+ result = Long.valueOf(pidString);
+ } finally {
+ pidFileReader.close();
+ }
} catch (Exception ex) {
log.warn("Unable to read MySQL pid file " + pidFile);
}
commit bd2129db2d7f4e76efc938986674d24beebd1b4f
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 14:28:47 2011 -0400
[coverity] not really necessary I don't think - seems like Bundle Manager Bean closes the stream for us. but just in case...
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/BundleFileUploadServlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/BundleFileUploadServlet.java
index 71ff5f4..3081883 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/BundleFileUploadServlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/BundleFileUploadServlet.java
@@ -58,11 +58,14 @@ public class BundleFileUploadServlet extends FileUploadServlet {
String version = getFormField(formFields, "version", Integer.toString(bundleVersionId));
Architecture architecture = new Architecture(getFormField(formFields, "arch", "noarch"));
InputStream fileStream = new FileInputStream(file);
-
- BundleManagerLocal bundleManager = LookupUtil.getBundleManager();
- BundleFile bundleFile = bundleManager.addBundleFile(subject, bundleVersionId, name, version, architecture,
- fileStream);
- successMsg = "success [" + bundleFile.getId() + "]";
+ try {
+ BundleManagerLocal bundleManager = LookupUtil.getBundleManager();
+ BundleFile bundleFile = bundleManager.addBundleFile(subject, bundleVersionId, name, version,
+ architecture, fileStream);
+ successMsg = "success [" + bundleFile.getId() + "]";
+ } finally {
+ fileStream.close(); // I don't think this is necessary (seems BundleManager closes it for us) but do it anyway just in case
+ }
} catch (Exception e) {
writeExceptionResponse(response, "Failed to upload bundle file", e); // clients will look for this string!
return;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/PackageVersionFileUploadServlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/PackageVersionFileUploadServlet.java
index 9aed016..0795914 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/PackageVersionFileUploadServlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/PackageVersionFileUploadServlet.java
@@ -32,7 +32,6 @@ import javax.servlet.http.HttpServletResponse;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.content.PackageVersion;
import org.rhq.enterprise.server.content.ContentManagerLocal;
-import org.rhq.enterprise.server.content.RepoManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
/**
@@ -73,8 +72,6 @@ public class PackageVersionFileUploadServlet extends FileUploadServlet {
if (repoIdS != null) {
repoId = Integer.parseInt(repoIdS);
}
-
- InputStream fileStream = new FileInputStream(file);
//use getUploadedPackageVersion instead of createPackageVersion here
//because createPackageVersion successfully returns an already existing
@@ -84,10 +81,15 @@ public class PackageVersionFileUploadServlet extends FileUploadServlet {
Map<String, String> metaData = new HashMap<String, String>();
metaData.put(ContentManagerLocal.UPLOAD_FILE_INSTALL_DATE, Long.toString(file.lastModified()));
metaData.put(ContentManagerLocal.UPLOAD_FILE_NAME, packageName);
- PackageVersion packageVersion = contentManager.getUploadedPackageVersion(subject, packageName,
- packageTypeId, version, architectureId, fileStream, metaData, repoId);
-
- successMsg = "success [packageVersionId=" + packageVersion.getId() + ",packageId=" + packageVersion.getGeneralPackage().getId() + "]";
+ InputStream fileStream = new FileInputStream(file);
+ try {
+ PackageVersion packageVersion = contentManager.getUploadedPackageVersion(subject, packageName,
+ packageTypeId, version, architectureId, fileStream, metaData, repoId);
+ successMsg = "success [packageVersionId=" + packageVersion.getId() + ",packageId="
+ + packageVersion.getGeneralPackage().getId() + "]";
+ } finally {
+ fileStream.close();
+ }
} catch (Exception e) {
writeExceptionResponse(response, "Failed to upload file", e); // clients will look for this string!
return;
commit c59a821e4bc8ee18d19262f4c5887af6545eb5de
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 14:19:06 2011 -0400
[coverity] make sure we close the input stream
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/ant/dbupgrade/DBUpgrader.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/ant/dbupgrade/DBUpgrader.java
index d4c055f..9a0c91b 100644
--- a/modules/core/dbutils/src/main/java/org/rhq/core/db/ant/dbupgrade/DBUpgrader.java
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/ant/dbupgrade/DBUpgrader.java
@@ -20,6 +20,7 @@ package org.rhq.core.db.ant.dbupgrade;
import java.io.File;
import java.io.FileInputStream;
+import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -28,9 +29,12 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+
import mazz.i18n.Msg;
+
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
+
import org.rhq.core.db.DatabaseType;
import org.rhq.core.db.DatabaseTypeFactory;
import org.rhq.core.db.DbUtil;
@@ -70,16 +74,16 @@ public class DBUpgrader extends Task {
private Connection connection;
private boolean doCloseConnection;
-
+
public DBUpgrader() {
doCloseConnection = true;
}
-
+
public DBUpgrader(Connection connection) {
this.connection = connection;
doCloseConnection = false;
}
-
+
/**
* The URL to the database that is to be upgraded.
*
@@ -339,12 +343,20 @@ public class DBUpgrader extends Task {
if (typeMapFile == null) {
typeMaps = TypeMap.loadKnownTypeMaps();
} else {
+ FileInputStream fis = null;
try {
- FileInputStream fis = new FileInputStream(typeMapFile);
+ fis = new FileInputStream(typeMapFile);
typeMaps = TypeMap.loadTypeMapsFromStream(fis);
} catch (Exception e) {
throw new BuildException(MSG.getMsg(DbAntI18NResourceKeys.DBUPGRADE_TYPE_MAP_FILE_ERROR, typeMapFile
.getAbsolutePath(), e), e);
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ } catch (IOException e) {
+ }
+ }
}
}
@@ -461,7 +473,7 @@ public class DBUpgrader extends Task {
if (connection == null) {
connection = DbUtil.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
}
- return connection;
+ return connection;
}
/**
@@ -474,7 +486,7 @@ public class DBUpgrader extends Task {
this.connection = connection;
doCloseConnection = connection == null;
}
-
+
/**
* Returns the type of database that is being upgraded.
*
commit fb8f4905912ba0bbc63d1aabc8dae84e10619b32
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 14:12:13 2011 -0400
[coverity] just a test class, but it should still close the stream to be a good citizen
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/ZipUtilTest.java b/modules/core/util/src/test/java/org/rhq/core/util/ZipUtilTest.java
index 4bada6d..8ddcf1e 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/ZipUtilTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/ZipUtilTest.java
@@ -74,7 +74,9 @@ public class ZipUtilTest {
destFile.mkdirs();
} else {
destFile.getParentFile().mkdirs();
- StreamUtil.copy(stream, new FileOutputStream(destFile), false);
+ FileOutputStream fos = new FileOutputStream(destFile);
+ StreamUtil.copy(stream, fos, false);
+ fos.close();
}
return true;
}
commit 7db43fdbd624ec1227a1d7745b67b59f39a9fe1e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 14:07:38 2011 -0400
[coverity] paranoia - just make sure we always close the file stream, avoiding the possibility that Buffered stream constructor bombs would leave the file stream open
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/plugin/PluginClassLoader.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/plugin/PluginClassLoader.java
index 25be7de..a9b07f2 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/plugin/PluginClassLoader.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/plugin/PluginClassLoader.java
@@ -205,21 +205,24 @@ public class PluginClassLoader extends URLClassLoader {
}
}
- BufferedOutputStream outputStream;
+ FileOutputStream fileOutputStream;
try {
- outputStream = new BufferedOutputStream(new FileOutputStream(file));
+ fileOutputStream = new FileOutputStream(file);
} catch (FileNotFoundException ex) {
if (file.exists() && (file.length() > 0)) {
// e.g. on win32, agent running w/ dll loaded PluginDumper cannot overwrite file inuse.
continue;
}
-
throw ex;
}
+ BufferedOutputStream outputStream = new BufferedOutputStream(fileOutputStream);
try {
file.deleteOnExit();
+ // do NOT close this inputStream since it is buffering the ZipInputStream
+ // and we are going to still process that input stream later. We close
+ // this ZipInputStream down below in the outer most try-finally block.
BufferedInputStream inputStream = new BufferedInputStream(zis);
int count;
@@ -229,13 +232,12 @@ public class PluginClassLoader extends URLClassLoader {
}
} finally {
outputStream.flush();
- outputStream.close();
+ outputStream.close(); // this also closes the fileOutputStream
}
} catch (IOException ioe) {
if (file != null) {
file.delete();
}
-
throw ioe;
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/ServerPluginClassLoader.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/ServerPluginClassLoader.java
index fa26970..90e2117 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/ServerPluginClassLoader.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/ServerPluginClassLoader.java
@@ -133,37 +133,39 @@ public class ServerPluginClassLoader extends URLClassLoader {
}
}
- BufferedOutputStream outputStream;
+ FileOutputStream fileOutputStream;
try {
- outputStream = new BufferedOutputStream(new FileOutputStream(file));
+ fileOutputStream = new FileOutputStream(file);
} catch (FileNotFoundException ex) {
if (file.exists() && (file.length() > 0)) {
// e.g. on win32, agent running w/ dll loaded PluginDumper cannot overwrite file inuse.
continue;
}
-
throw ex;
}
+ BufferedOutputStream outputStream = new BufferedOutputStream(fileOutputStream);
try {
file.deleteOnExit();
+ // do NOT close this inputStream since it is buffering the ZipInputStream
+ // and we are going to still process that input stream later. We close
+ // this ZipInputStream down below in the outer most try-finally block.
BufferedInputStream inputStream = new BufferedInputStream(zis);
- int count = 0;
+ int count;
byte[] b = new byte[8192];
while ((count = inputStream.read(b)) > -1) {
outputStream.write(b, 0, count);
}
} finally {
outputStream.flush();
- outputStream.close();
+ outputStream.close(); // this also closes the fileOutputStream
}
} catch (IOException ioe) {
if (file != null) {
file.delete();
}
-
throw ioe;
}
}
commit 2f53d69eccc94ffa068ed1483ca3d7d6db9d776e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 13:00:09 2011 -0400
opps, fix comment
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java
index e2fc414..5697374 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java
@@ -939,7 +939,7 @@ public class ServerCommunicationsService implements ServerCommunicationsServiceM
return server_configuration;
} finally {
- // we know this isn't non-null; if it was, we would have thrown the IOException earlier.
+ // we know this is not null; if it was, we would have thrown the IOException earlier.
config_file_input_stream.close();
}
}
commit b09ab768bc1d84ab27476536237f28e09506387f
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 12:58:59 2011 -0400
[coverity] close the config file input stream
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java
index 29116d8..e2fc414 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/comm/ServerCommunicationsService.java
@@ -439,12 +439,12 @@ public class ServerCommunicationsService implements ServerCommunicationsServiceM
try {
ClientCommandSenderConfiguration sender_config = getSenderConfiguration(agent);
if (sender_config.commandSpoolFileName != null) {
- spool_file = new File(sender_config.dataDirectory, sender_config.commandSpoolFileName);
- if (spool_file.exists()) {
- // first truncate it, in case Windows is locking it; then try to delete
- new FileOutputStream(spool_file, false).close();
- spool_file.delete();
- }
+ spool_file = new File(sender_config.dataDirectory, sender_config.commandSpoolFileName);
+ if (spool_file.exists()) {
+ // first truncate it, in case Windows is locking it; then try to delete
+ new FileOutputStream(spool_file, false).close();
+ spool_file.delete();
+ }
}
} catch (Exception e) {
LOG.warn("Failed to truncate/delete spool for deleted agent [" + agent + "]"
@@ -907,36 +907,41 @@ public class ServerCommunicationsService implements ServerCommunicationsServiceM
// But first we need to backup these original preferences in case the config file fails to load -
// we'll restore the original values in that case.
- Preferences preferences_node = getPreferencesNode();
- ByteArrayOutputStream backup = new ByteArrayOutputStream();
- preferences_node.exportSubtree(backup);
- preferences_node.clear();
-
- // now load in the preferences
try {
- Preferences.importPreferences(config_file_input_stream);
+ Preferences preferences_node = getPreferencesNode();
+ ByteArrayOutputStream backup = new ByteArrayOutputStream();
+ preferences_node.exportSubtree(backup);
+ preferences_node.clear();
- if (new ServerConfiguration(preferences_node).getServerConfigurationVersion() == 0) {
- throw new IllegalArgumentException(LOG.getMsgString(
- ServerI18NResourceKeys.BAD_NODE_NAME_IN_CONFIG_FILE, file_name, preferences_node_name));
- }
- } catch (Exception e) {
- // a problem occurred importing the config file; let's restore our original values
+ // now load in the preferences
try {
- Preferences.importPreferences(new ByteArrayInputStream(backup.toByteArray()));
- } catch (Exception e1) {
- // its conceivable the same problem occurred here as with the original exception (backing store problem?)
- // let's throw the original exception, not this one
- }
+ Preferences.importPreferences(config_file_input_stream);
- throw e;
- }
+ if (new ServerConfiguration(preferences_node).getServerConfigurationVersion() == 0) {
+ throw new IllegalArgumentException(LOG.getMsgString(
+ ServerI18NResourceKeys.BAD_NODE_NAME_IN_CONFIG_FILE, file_name, preferences_node_name));
+ }
+ } catch (Exception e) {
+ // a problem occurred importing the config file; let's restore our original values
+ try {
+ Preferences.importPreferences(new ByteArrayInputStream(backup.toByteArray()));
+ } catch (Exception e1) {
+ // its conceivable the same problem occurred here as with the original exception (backing store problem?)
+ // let's throw the original exception, not this one
+ }
- ServerConfiguration server_configuration = new ServerConfiguration(preferences_node);
+ throw e;
+ }
- LOG.debug(ServerI18NResourceKeys.LOADED_CONFIG_FILE, file_name);
+ ServerConfiguration server_configuration = new ServerConfiguration(preferences_node);
- return server_configuration;
+ LOG.debug(ServerI18NResourceKeys.LOADED_CONFIG_FILE, file_name);
+
+ return server_configuration;
+ } finally {
+ // we know this isn't non-null; if it was, we would have thrown the IOException earlier.
+ config_file_input_stream.close();
+ }
}
/**
commit 4b3e3a6e01e2f599af8a21a14c37debc92060cc1
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 12:37:04 2011 -0400
[coverity] close the context - no need to keep it open since we just create it to see that no exceptions occurred.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CustomJaasDeploymentService.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CustomJaasDeploymentService.java
index be7a0ab..a4124ca 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CustomJaasDeploymentService.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CustomJaasDeploymentService.java
@@ -209,7 +209,7 @@ public class CustomJaasDeploymentService implements CustomJaasDeploymentServiceM
}
log.debug("Validating LDAP with environment=" + env);
- new InitialLdapContext(env, null);
+ new InitialLdapContext(env, null).close();
return;
}
commit 0329aa66eaea0e3a53b4c7682e9e49d3a28d0750
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 12:17:21 2011 -0400
[coverity] make sure to close the file
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryFile.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryFile.java
index 7a8e1e5..ea5e7fd 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryFile.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryFile.java
@@ -103,8 +103,9 @@ public class InventoryFile {
* inventory
*/
public void loadInventory() throws PluginContainerException {
+ FileInputStream fis = null;
try {
- FileInputStream fis = new FileInputStream(inventoryFile);
+ fis = new FileInputStream(inventoryFile);
ObjectInputStream ois = new ObjectInputStream(fis);
// this list will contain UUIDs of resources that we should ignore usually due to disabled plugins
@@ -126,6 +127,13 @@ public class InventoryFile {
return;
} catch (Exception e) {
throw new PluginContainerException("Cannot load inventory file: " + inventoryFile, e);
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ } catch (Exception e) {
+ }
+ }
}
}
commit 203bb4b9b7d4107d7332754709b6bc9ec5851771
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 12:12:05 2011 -0400
[coverity] make sure we close the printwriter in finally block
diff --git a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/yum/YumServer.java b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/yum/YumServer.java
index dc92a61..3524b9b 100644
--- a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/yum/YumServer.java
+++ b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/yum/YumServer.java
@@ -178,15 +178,18 @@ public class YumServer {
File file = new File(yumconf);
try {
PrintWriter writer = new PrintWriter(file);
- writer.println("[rhq]");
- writer.println("name=RHQ");
- writer.printf("baseurl=%s\n", context.baseurl());
- writer.printf("metadata_expire=%d\n", context.getMetadataCacheTimeout());
- writer.println("enabled=1");
- writer.println("gpgcheck=0");
- writer.println("keepalive=0");
- writer.println("timeout=90");
- writer.close();
+ try {
+ writer.println("[rhq]");
+ writer.println("name=RHQ");
+ writer.printf("baseurl=%s\n", context.baseurl());
+ writer.printf("metadata_expire=%d\n", context.getMetadataCacheTimeout());
+ writer.println("enabled=1");
+ writer.println("gpgcheck=0");
+ writer.println("keepalive=0");
+ writer.println("timeout=90");
+ } finally {
+ writer.close();
+ }
} catch (Exception e) {
String msg = "The yum repo configuration file '" + file + "' could not be created/updated!";
log.error(msg, e);
commit 3a558fe5559b55707cb861e72a3d307a6a24b2a6
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 11:42:07 2011 -0400
[coverity] this should have been an assert - and if it was, this unit test would have failed only because the casting was incorrect.
the code it was testing actually worked. I'm fixing the test so this actually asserts the correct thing.
diff --git a/modules/core/client-api/src/test/java/org/rhq/core/clientapi/agent/metadata/test/ExtensionModelTest.java b/modules/core/client-api/src/test/java/org/rhq/core/clientapi/agent/metadata/test/ExtensionModelTest.java
index 3d9fb10..06fc087 100644
--- a/modules/core/client-api/src/test/java/org/rhq/core/clientapi/agent/metadata/test/ExtensionModelTest.java
+++ b/modules/core/client-api/src/test/java/org/rhq/core/clientapi/agent/metadata/test/ExtensionModelTest.java
@@ -37,6 +37,7 @@ import org.rhq.core.clientapi.agent.metadata.PluginMetadataManager;
import org.rhq.core.clientapi.descriptor.AgentPluginDescriptorUtil;
import org.rhq.core.clientapi.descriptor.DescriptorPackages;
import org.rhq.core.clientapi.descriptor.plugin.PluginDescriptor;
+import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.configuration.definition.PropertyDefinition;
import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
@@ -130,7 +131,9 @@ public class ExtensionModelTest {
assert !def1.isRequired();
assert def1 instanceof PropertyDefinitionSimple;
assert ((PropertyDefinitionSimple) def1).getType().equals(PropertySimpleType.BOOLEAN);
- def1.getConfigurationDefinition().getDefaultTemplate().getConfiguration().get("force").equals("false");
+ PropertySimple prop = (PropertySimple) def1.getConfigurationDefinition().getDefaultTemplate()
+ .getConfiguration().get("force");
+ assert prop.getBooleanValue().booleanValue() == false;
assert stopOp.getResultsConfigurationDefinition() != null;
ConfigurationDefinition results = stopOp.getResultsConfigurationDefinition();
commit d85516841d7bead784f587535c1364d47185b7a9
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 11:23:34 2011 -0400
[coverity] the if-stmt looks bad, but anyway, this handler doesn't do anything anyway, the main code inside it was commented out.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
index cce560c..007f908 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
@@ -38,9 +38,6 @@ import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
-import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.Event.NativePreviewEvent;
-import com.google.gwt.user.client.Event.NativePreviewHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
@@ -129,17 +126,23 @@ public class SearchBar extends AbstractSearchBar {
String searchButtonId = searchBarElement.getAttribute("searchButtonId");
searchButton = DOM.getElementById(searchButtonId);
- Event.addNativePreviewHandler(new NativePreviewHandler() {
- public void onPreviewNativeEvent(NativePreviewEvent event) {
- if (event.getNativeEvent() != null && event.getNativeEvent().getEventTarget() != null) {
-
- if (event.getNativeEvent().getEventTarget().equals(searchButton)
- && event.getTypeInt() == Event.ONMOUSEDOWN) {
- //prepareSearchExecution();
- }
- }
- }
- });
+ // Don't know what this originally was going to be used for, but if you notice,
+ // after all the if-stmts are evaluated true, the only piece of code to be invoked
+ // (prepareSearchExecution()) has been commented out. So this is a no-op. In addition
+ // the second if-stmt (getEventTarget().equals(searchButton) doesn't look correct and
+ // may not ever evaluate to true anyway. Commenting this out, in case something like this
+ // is needed in the future, but we'll havee to probably fix that if-stmt first.
+
+ // Event.addNativePreviewHandler(new NativePreviewHandler() {
+ // public void onPreviewNativeEvent(NativePreviewEvent event) {
+ // if (event.getNativeEvent() != null && event.getNativeEvent().getEventTarget() != null) {
+ // if (event.getNativeEvent().getEventTarget().equals(searchButton)
+ // && event.getTypeInt() == Event.ONMOUSEDOWN) {
+ // //prepareSearchExecution();
+ // }
+ // }
+ // }
+ // });
String searchSubsystem = searchBarElement.getAttribute("searchSubsystem");
setSearchSubsystem(SearchSubsystem.valueOf(searchSubsystem.toUpperCase()));
commit e7bcd08184a293f0fa745e4fe8a1167dd552bb68
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jul 28 11:15:21 2011 -0400
[coverity] fix NPE
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
index 71f5ec5..047f5af 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
@@ -296,7 +296,8 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo
SubTab subTab = tab.getDefaultSubTab();
if (subTab == null || tab.getLayout().isSubTabDisabled(subTab)) {
- CoreGUI.getErrorHandler().handleError(MSG.view_tabs_invalidSubTab(subTab.getName()));
+ CoreGUI.getErrorHandler().handleError(
+ MSG.view_tabs_invalidSubTab((subTab != null ? subTab.getName() : "null")));
subTab = tab.getLayout().getDefaultSubTab();
}
commit b0a583c8aa227e05ae7c91bc4a8f42e083835b63
Author: Rafael Soares <rafaelcba(a)gmail.com>
Date: Fri Jul 15 14:15:53 2011 -0300
a bit more 'pt' translation
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
old mode 100755
new mode 100644
index c32dabf..40add0d
--- 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
@@ -6,9 +6,9 @@
# http://rhq-project.org/display/RHQ/Working+with+the+Resource+Bundles
#
###################################
-common_alert_high = High
-common_alert_low = Low
-common_alert_medium = Medium
+common_alert_high = Alto
+common_alert_low = Baixo
+common_alert_medium = M\u00E9dio
common_buildInfo_gwtVersion = ${gwt.version}
common_button_ack = Confirmar
common_button_ack_all = Confirmar Todos
@@ -30,13 +30,13 @@ common_button_new = Novo
common_button_next = Pr\u00F3ximo
common_button_ok = OK
common_button_previous = Anterior
-common_button_purgeAll = Purge All
-common_button_refresh = Refresh
+common_button_purgeAll = Remover Todos
+common_button_refresh = Atualizar
common_button_reset = Limpar
common_button_save = Salvar
-common_button_schedule = Schedule
+common_button_schedule = Agendar
common_button_search = Procurar
-common_button_set = Set
+common_button_set = Definir
common_button_showDetails = Mostrar Detalhes...
common_button_uninventory = Remover do Invent\u00E1rio
common_calendar_april_short = abr
@@ -74,57 +74,57 @@ common_label_user = usu\u00E1rio
common_label_users = usu\u00E1rios
common_label_week = semana
common_label_weeks = semanas
-common_label_yesterday = Yesterday
+common_label_yesterday = Ontem
common_msg_areYouSure = Tem certeza?
-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 = Tem certeza de que deseja excluir o # selecionado {0}?
-common_msg_emphasizedNotePrefix = NOTA:
+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.
+common_msg_changeAutoDetected = Mudan\u00E7as detectadas automaticamente
+common_msg_deleteConfirm = Tem certeza de que deseja excluir o \# selecionado {0}?
+common_msg_emphasizedNotePrefix = NOTA\:
common_msg_loading = Carregando...
common_msg_noItemsToShow = N\u00E3o existem itens para apresentar
-common_msg_notYetImplemented = Not Yet Implemented
-common_msg_see_more = see more...
-common_msg_step_x_of_y = Step {0} of {1}
+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_status_canceled = Canceled
-common_status_deferred = Deferred
-common_status_failed = Failed
-common_status_inprogress = In Progress
-common_status_nochange = No Change
-common_status_partial = Partial
-common_status_success = Success
-common_status_timedOut = Timed Out
-common_status_unknown = Unknown
+common_status_canceled = Cancelado
+common_status_deferred = Deferido
+common_status_failed = Falha
+common_status_inprogress = Processando
+common_status_nochange = Sem altera\u00E7\u00E3o
+common_status_partial = Parcial
+common_status_success = Sucesso
+common_status_timedOut = Tempo Esgotado
+common_status_unknown = Desconhecido
common_title_add_column = Adicionar Coluna
-common_title_add_graph_to_view = Add Graph to Monitor View
+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_ancestry = Ancestry
+common_title_ancestry = Ancestral
common_title_availability = Disponibilidade
common_title_available_resources = Recursos Dispon\u00EDveis
common_title_average_metrics = M\u00E9tricas da m\u00E9dia por Minuto
-common_title_background = Background
+common_title_background = Fundo (background)
common_title_bundle = Bundle
common_title_bundles = Bundles
common_title_category = Categoria
-common_title_change_refresh_time = Refresh Interval
+common_title_change_refresh_time = Atualizar Intervalo
common_title_columns = Colunas
-common_title_compare_metrics = Compare Metrics
+common_title_compare_metrics = Comparar M\u00E9tricas
common_title_compatibleGroups = Grupos Compat\u00EDveis
common_title_compatibleGroups_total = Total de Grupos Compat\u00EDveis
common_title_component_errors = Componentes com erro
-common_title_config_update_status = Update Status
+common_title_config_update_status = Atualizar Status
common_title_configuration = Configura\u00E7\u00E3o
-common_title_count = Count
+common_title_count = Quantidade
common_title_custom = Personalizado
common_title_dashboard_name = Nome do Painel de Controle
common_title_dateCreated = Data de Cria\u00E7\u00E3o
-common_title_dateRange = Date Range
+common_title_dateRange = Intervalo de Data
common_title_default = Padr\u00E3o
common_title_description = Descri\u00E7\u00E3o
common_title_details = Detalhes
@@ -134,14 +134,14 @@ 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 = Error
+common_title_error = Erro
common_title_favorites = Favoritos
common_title_generalProp = Propriedades Gerais
-common_title_group = Group
+common_title_group = Grupo
common_title_group_def_total = Total de Defini\u00E7\u00E3o de Grupos
-common_title_group_member_health = Group Member Health
-common_title_groups = Groups
-common_title_help = Help
+common_title_group_member_health = Sa\u00FAde do Membro do Grupo
+common_title_groups = Grupos
+common_title_help = Ajuda
common_title_host = Host
common_title_icon = \u00EDcone
common_title_id = ID
@@ -151,25 +151,25 @@ common_title_inventory = Invent\u00E1rio
common_title_inventorySummary = Sum\u00E1rio do Invent\u00E1rio
common_title_lastUpdated = \u00DAltima Atualiza\u00E7\u00E3o
common_title_lastUpdatedBy = \u00DAltima Atualiza\u00E7\u00E3o feita por
-common_title_ldapGroups = LDAP Groups
+common_title_ldapGroups = Grupos LDAP
common_title_mashup = Mashup
-common_title_members_reporting = Members Reporting
+common_title_members_reporting = Relat\u00F3rio de Membros
common_title_message = Mensagem
common_title_metric = M\u00E9trica
-common_title_metric_chart = Metric Chart
+common_title_metric_chart = Gr\u00E1fico de M\u00E9trica
common_title_mixedGroups = Grupos Mistos
common_title_mixedGroups_total = Total de Grupos Mistos
common_title_name = Nome
common_title_new_dashboard = Novo Painel de Controle
-common_title_numeric_metrics = Numeric Metrics
+common_title_numeric_metrics = M\u00E9tricas Num\u00E9ricas
common_title_numeric_type = Tipo Num\u00E9rico
-common_title_operation_status = Operation Status
+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
common_title_over = Execesso
common_title_password = Senha
-common_title_path = Path
-common_title_permissions = Permissions
+common_title_path = Caminho
+common_title_permissions = Permiss\u00F5es
common_title_platform = Plataforma
common_title_platform_total = Total de Plataformas
common_title_plugin = Plugin
@@ -177,12 +177,12 @@ 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 = Recent Configuration Updates
-common_title_recent_event_counts = Recent Event Counts
-common_title_recent_measurements = Recent Measurements
-common_title_recent_oob_metrics = Recent Out of Bound metrics
+common_title_recent_configuration_updates = Configura\u00E7\u00F5es Alteradas Recentemente
+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
common_title_recent_operations = Opera\u00E7\u00F5es Recentes
-common_title_recent_pkg_history = Recent Package History
+common_title_recent_pkg_history = Hist\u00F3rico de Pacotes Recentes
common_title_recently_added = Recursos Adicionados Recentemente
common_title_remove_column = Remover Coluna
common_title_repositories = Reposit\u00F3rios
@@ -191,29 +191,29 @@ 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
-common_title_resource_key = Resource Key
+common_title_resource_key = Chave do Recurso
common_title_resource_name = Nome do Recurso
-common_title_resource_type = Resource Type
-common_title_resources = Resources
-common_title_results_count = Results Count
-common_title_results_count_tooltip = Displays this number of results
-common_title_role = Role
-common_title_roles = Roles
+common_title_resource_type = Tipo do Recurso
+common_title_resources = Recursos
+common_title_results_count = Resultado Total
+common_title_results_count_tooltip = Mostra este n\u00FAmero de resultados
+common_title_role = Perfil
+common_title_roles = Perfis
common_title_scheduled_operations = Opera\u00E7\u00F5es Agendadas
common_title_search = Procurar
common_title_selected_resources = Recursos Selecionados
-common_title_server = Server
+common_title_server = Servidor
common_title_server_total = Total de Servidores
-common_title_service = Service
+common_title_service = Servi\u00E7o
common_title_service_total = Total de Servi\u00E7os
common_title_settings = Configura\u00E7\u00F5es
common_title_show = Visualizar
common_title_show_more = Visualizar mais...
-common_title_sort_order = Sort Order
-common_title_sort_order_tooltip = Sets sort order for results.
+common_title_sort_order = Ordena\u00E7\u00E3o
+common_title_sort_order_tooltip = Define a ordem dos resultados.
common_title_start = Iniciar
common_title_status = Status
-common_title_stop = Stop
+common_title_stop = Parar
common_title_summary = Sum\u00E1rio
common_title_summary_counts = Sum\u00E1rio de Contagem
common_title_tag_cloud = Nuvem de Tags
@@ -223,48 +223,48 @@ common_title_total = Total
common_title_type = Tipo
common_title_units = Unidades
common_title_user = Usu\u00E1rio
-common_title_users = Users
+common_title_users = Usu\u00E1rios
common_title_value = Valor
common_title_version = Vers\u00E3o
common_title_view_mode = Modo vis\u00E3o
common_title_web_address = Endere\u00E7o Web
common_title_welcome = Bem Vindo
-common_unit_days = days
-common_unit_hours = hours
-common_unit_milliseconds = milliseconds
-common_unit_minutes = minutes
-common_unit_months = months
-common_unit_seconds = seconds
-common_unit_times = times
-common_unit_weeks = weeks
-common_unit_years = years
+common_unit_days = dias
+common_unit_hours = horas
+common_unit_milliseconds = milisegundos
+common_unit_minutes = minutos
+common_unit_months = meses
+common_unit_seconds = segundos
+common_unit_times = vezes
+common_unit_weeks = semanas
+common_unit_years = anos
common_val_for = para
-common_val_n1st = {0}st
-common_val_n2nd = {0}nd
-common_val_n3rd = {0}rd
+common_val_n1st = {0}\u00BA
+common_val_n2nd = {0}\u00BA
+common_val_n3rd = {0}\u00BA
common_val_na = N/A
common_val_never = Nunca
common_val_no = N\u00E3o
common_val_no_lower = n\u00E3o
common_val_none = Nenhum
-common_val_nth = {0}th
+common_val_nth = {0}\u00BA
common_val_yes = Sim
common_val_yes_lower = sim
dataSource_ContentRepoTree_error_load = Erro ao carregar os reposit\u00F3rios
-dataSource_ContentRepoTree_field_parentId = Parent ID
-dataSource_bundle_loadFailed = Failed to load Bundle data
-dataSource_configurationHistory_clickToSeeError = Double click to see error message...
-dataSource_configurationHistory_currentConfig = This is the current configuration
-dataSource_configurationHistory_dateCompleted = Date Completed
-dataSource_configurationHistory_dateSubmitted = Date Submitted
+dataSource_ContentRepoTree_field_parentId = ID pai
+dataSource_bundle_loadFailed = Falha ao carregar os dados do Bundle
+dataSource_configurationHistory_clickToSeeError = Duplo clique para visualizar a mensagem...
+dataSource_configurationHistory_currentConfig = Esta \u00E9 a configura\u00E7\u00E3o atual
+dataSource_configurationHistory_dateCompleted = Conclu\u00EDdo em
+dataSource_configurationHistory_dateSubmitted = Submetido em
dataSource_configurationHistory_error_fetchFailure = N\u00E3o foi poss\u00EDvel carregar o hist\u00F3rico de configura\u00E7\u00E3o.
dataSource_configurationHistory_field_createdTime = Criado
dataSource_configurationHistory_field_id = ID
dataSource_configurationHistory_field_resource = Recurso
dataSource_configurationHistory_field_status = Status
dataSource_configurationHistory_field_subject = Assunto
-dataSource_configurationHistory_updateType = Update Type
-dataSource_configurationHistory_updateType_group = Group
+dataSource_configurationHistory_updateType = Tipo de atualiza\u00E7\u00E3o
+dataSource_configurationHistory_updateType_group = Grupo
dataSource_configurationHistory_updateType_individual = Individual
dataSource_definitions_loadFailed = Falha ao carregar defini\u00E7\u00E3o de m\u00E9tricas
dataSource_measurementOob_error_fetchFailure = Falha ao carregar informa\u00E7\u00F5es das m\u00E9tricas OOB
@@ -275,17 +275,17 @@ dataSource_measurementOob_field_parentName = Pai
dataSource_measurementOob_field_resourceName = Recurso
dataSource_measurementOob_field_scheduleName = M\u00E9trica
dataSource_operationHistory_error_fetchFailure = Falha ao carregar o hist\u00F3rico de opera\u00E7\u00F5es.
-dataSource_operationHistory_field_createdTime = Created Time
-dataSource_operationHistory_field_operationName = Operation Name
-dataSource_operationHistory_field_startedTime = Started Time
-dataSource_operationHistory_field_subject = Requester
-dataSource_operationSchedule_field_description = Notes
-dataSource_operationSchedule_field_id = Schedule ID
-dataSource_operationSchedule_field_nextFireTime = Next Execution
-dataSource_operationSchedule_field_operationDisplayName = Operation
-dataSource_operationSchedule_field_operationName = Operation
-dataSource_operationSchedule_field_subject = Owner
-dataSource_operationSchedule_field_timeout = Timeout (in seconds)
+dataSource_operationHistory_field_createdTime = Data de cria\u00E7\u00E3o
+dataSource_operationHistory_field_operationName = Nome da Opera\u00E7\u00E3o
+dataSource_operationHistory_field_startedTime = Iniciado em
+dataSource_operationHistory_field_subject = Solicitante
+dataSource_operationSchedule_field_description = Notas
+dataSource_operationSchedule_field_id = ID do Agendamento
+dataSource_operationSchedule_field_nextFireTime = Pr\u00F3xima execu\u00E7\u00E3o
+dataSource_operationSchedule_field_operationDisplayName = Opera\u00E7\u00E3o
+dataSource_operationSchedule_field_operationName = Opera\u00E7\u00E3o
+dataSource_operationSchedule_field_subject = Propriet\u00E1rio
+dataSource_operationSchedule_field_timeout = Tempo limite (em segundos)
dataSource_platforms_field_cpu = CPU
dataSource_platforms_field_memory = Mem\u00F3ria
dataSource_platforms_field_swap = Swap
@@ -300,23 +300,23 @@ 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 = 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.
+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.
dataSource_resourceErrors_error_fetchFailure = Falha ao procurar por erros para o Recurso com ID [{0}].
dataSource_resourceErrors_field_detail = Mensagem detalhada
dataSource_resourceErrors_field_errorType = Tipo de Erro
dataSource_resourceErrors_field_summary = Sum\u00E1rio
dataSource_resourceErrors_field_timeOccured = Tempo
-dataSource_resourceGroups_loadFailed = Failed to load Resource Groups
-dataSource_resources_field_discoveryTime = Discovery Time
-dataSource_resources_field_importTime = Import Time
-dataSource_resources_field_key = Key
-dataSource_resources_field_lastModifiedTime = Last Modified Time
-dataSource_resources_field_lastModifier = Last Modifier
-dataSource_resources_field_location = Location
+dataSource_resourceGroups_loadFailed = Falha ao carregar grupos de recurso
+dataSource_resources_field_discoveryTime = Data de Descoberta
+dataSource_resources_field_importTime = Data de Importa\u00E7\u00E3o
+dataSource_resources_field_key = Chave
+dataSource_resources_field_lastModifiedTime = Data da \u00FAltima altera\u00E7\u00E3o
+dataSource_resources_field_lastModifier = \u00DAltima altera\u00E7\u00E3o
+dataSource_resources_field_location = Localiza\u00E7\u00E3o
dataSource_rpc_error_transformRequestFailure = Ocorreu uma falha na fonte de dados durante o processamento da requisi\u00E7\u00E3o {0}.
-dataSource_rpc_error_unsupportedArrayFilterType = Sem suporte para passing de array filters do tipo {0}.
+dataSource_rpc_error_unsupportedArrayFilterType = Sem suporte para o array filters do tipo {0}.
dataSource_rpc_error_unsupportedEnumType = Favor adicionar um trecho de c\u00F3digo apropriado para a enum {0} para RPCDataSource.getEnumArray(Class)
dataSource_rpc_no = n\u00E3o
dataSource_rpc_yes = sim
@@ -325,34 +325,34 @@ 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_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}]
-dataSource_schedules_disableSuccessful_full_group = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o: [{2}]
-dataSource_schedules_disableSuccessful_full_resource = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o recurso com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o: [{2}]
-dataSource_schedules_enableFailure_group = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o grupo com ID [{1}]. As m\u00E9tricas s\u00E3o: [{2}]
-dataSource_schedules_enableFailure_resource = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas s\u00E3o: [{2}]
+dataSource_schedules_disableSuccessful_full_group = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o\: [{2}]
+dataSource_schedules_disableSuccessful_full_resource = Voc\u00EA desabilitou a coleta de m\u00E9tricas de[{0}] para o recurso com ID [{1}]. As m\u00E9tricas desabilitadas s\u00E3o\: [{2}]
+dataSource_schedules_enableFailure_group = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o grupo com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
+dataSource_schedules_enableFailure_resource = Falha ao habilitar a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas s\u00E3o\: [{2}]
dataSource_schedules_enableSuccessful_concise = Voce habilitou a coleta de m\u00E9tricas de [{0}]
-dataSource_schedules_enableSuccessful_full_group = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas habilitadas foram: [{2}]
-dataSource_schedules_enableSuccessful_full_resource = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas habilitadas foram: [{2}]
+dataSource_schedules_enableSuccessful_full_group = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. As m\u00E9tricas habilitadas foram\: [{2}]
+dataSource_schedules_enableSuccessful_full_resource = Voc\u00EA habilitou a coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. As m\u00E9tricas habilitadas foram\: [{2}]
dataSource_schedules_field_resourceGroupId = ID de Grupo
dataSource_schedules_loadFailed = Falha ao carregar agendamento de m\u00E9tricas
-dataSource_schedules_loadFailedContext = Failed to load metric schedules for context [{0}]
-dataSource_schedules_loadFailedCriteria = Failed to load metric schedules for criteria [{0}]
-dataSource_schedules_updateFailure_group = Falha ao configurar o intervalo para coleta de m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. M\u00E9tricas: [{2}]. O intervalo de coleta seria de [{3}] segundos.
-dataSource_schedules_updateFailure_resource = Falha ao configurar o intervalo para coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. M\u00E9tricas: [{2}]. O intervalo de coleta seria de [{3}] segundos.
+dataSource_schedules_loadFailedContext = Falha ao carregar agendamentos de m\u00E9tricas para o contexto [{0}]
+dataSource_schedules_loadFailedCriteria = Falha ao carregar agendamentos de m\u00E9tricas com o crit\u00E9io [{0}]
+dataSource_schedules_updateFailure_group = Falha ao configurar o intervalo para coleta de m\u00E9tricas de [{0}] para o grupo de recursos com ID [{1}]. M\u00E9tricas\: [{2}]. O intervalo de coleta seria de [{3}] segundos.
+dataSource_schedules_updateFailure_resource = Falha ao configurar o intervalo para coleta de m\u00E9tricas de [{0}] para o recurso com ID [{1}]. M\u00E9tricas\: [{2}]. O intervalo de coleta seria de [{3}] segundos.
dataSource_schedules_updateSuccessful_concise = Um novo intervalo de coleta de [{0}] segundos foi configurado para m\u00E9tricas de [{1}]
-dataSource_schedules_updateSuccessful_full_group = Um novo intervalo de coleta de [{0}] segundos foi configurado para m\u00E9tricas de [{1}] para o grupo de recursos com ID [{2}]. M\u00E9tricas atualizadas: [{3}]
-dataSource_schedules_updateSuccessful_full_resource = Um novo intervalo de coleta de [{0}] segundos foi configurado para m\u00E9tricas de [{1}] para o recurso com ID [{2}]. M\u00E9tricas atualizadas: [{3}]
-dataSource_traits_failFetch = Failed to fetch traits for criteria [{0}].
-dataSource_traits_field_definitionID = Definition ID
+dataSource_schedules_updateSuccessful_full_group = Um novo intervalo de coleta de [{0}] segundos foi configurado para m\u00E9tricas de [{1}] para o grupo de recursos com ID [{2}]. M\u00E9tricas atualizadas\: [{3}]
+dataSource_schedules_updateSuccessful_full_resource = Um novo intervalo de coleta de [{0}] segundos foi configurado para m\u00E9tricas de [{1}] para o recurso com ID [{2}]. M\u00E9tricas atualizadas\: [{3}]
+dataSource_traits_failFetch = Falha ao obter as caracter\u00EDsticas com o crit\u00E9rio [{0}].
+dataSource_traits_field_definitionID = ID da defini\u00E7\u00E3o
dataSource_traits_field_lastChanged = \u00DAltima Altera\u00E7\u00E3o
dataSource_traits_field_primaryKey = Chave Prim\u00E1ria
dataSource_traits_field_trait = Propriedade
dataSource_traits_group_field_groupId = ID de Grupo
dataSource_traits_group_field_memberResource = Recurso Membro
-dataSource_users_delete = Deleted user [{0}]
-dataSource_users_deleteFailed = Failed to delete user [{0}]
+dataSource_users_delete = Usu\u00E1rio exclu\u00EDdo [{0}]
+dataSource_users_deleteFailed = Falha ao excluir o usu\u00E1rio [{0}]
dataSource_users_field_department = Departamento
dataSource_users_field_emailAddress = Endere\u00E7o de Email
dataSource_users_field_factive = Login Habilitado?
@@ -364,50 +364,50 @@ 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 = 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_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 = Disabled collection of selected metric [{0}].
-datasource_templateSchedules_disabled_detailed = Disabled collection of metric [{0}] [{1}] by default for ResourceType with id [{2}].
-datasource_templateSchedules_disabled_failed = Failed to disable collection of metric [{0}] [{1}] by default for ResourceType with id [{2}].
-datasource_templateSchedules_enabled = Enabled collection of selected metric [{0}].
+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}].
+datasource_templateSchedules_disabled_failed = Falha ao desabilitar a coleta da m\u00E9trica [{0}] [{1}] para o Tipo de Recurso com id [{2}].
+datasource_templateSchedules_enabled = Habilitar a coleta da m\u00E9trica selecionada [{0}].
datasource_templateSchedules_enabled_detailed = Enabled collection of metric [{0}] [{1}] by default for ResourceType with id [{2}].
-datasource_templateSchedules_enabled_failed = Failed to enable collection of metric [{0}] [{1}] by default for ResourceType with id [{2}].
-datasource_templateSchedules_updated = Updated collection intervals of selected metric [{0}].
-datasource_templateSchedules_updated_detail = Collection interval for metric [{0}] [{1}] by default for ResourceType with id [{2}] set to [{3}] seconds.
-datasource_templateSchedules_updated_failed = Failed to set collection interval to [{0}] seconds for metric [{1}] [{2}] by default for ResourceType with id [{3}].
-favorites = Favorites
-favorites_groups = Favorite Groups
-favorites_recentlyViewed = Recently Viewed
-favorites_resources = Favorite Resources
+datasource_templateSchedules_enabled_failed = Falha ao habilitar a coleta da m\u00E9trica [{0}] [{1}] para o Tipo de Recurso com id [{2}].
+datasource_templateSchedules_updated = Intervalos de coleta atualizados para a m\u00E9trica [{0}].
+datasource_templateSchedules_updated_detail = Intervalo de coleta da m\u00E9trica [{0}] [{1}] para o Tipo de Recurso com id [{2}] configurado para [{3}] segundos.
+datasource_templateSchedules_updated_failed = Falha ao configurar o intervalo de coleta para [{0}] segundos para a m\u00E9trica [{1}] [{2}] para o Tipo de Recurso com id [{3}].
+favorites = Favoritos
+favorites_groups = Grupos Favoritos
+favorites_recentlyViewed = Acessados Recentemente
+favorites_resources = Recursos Favoritos
group_tree_partialClusterTooltip = {0} out of {1} group members have a ''{2}'' resource
-util_ancestry_parentAncestry = Parent Ancestry for:
+util_ancestry_parentAncestry = Ancestral para\:
util_errorHandler_nullException = Exce\u00E7\u00E3o nula
-util_monitoringRequestCallback_error_checkServerStatusFailure = Imposs\u00EDvel verificar o status do login - verifique o estatdo do Servidor.
+util_monitoringRequestCallback_error_checkServerStatusFailure = Imposs\u00EDvel verificar o status do login - verifique o status do Servidor.
util_rpcManager_activeRequests = {0} Requisi\u00E7\u00F5es ativas
util_userPerm_loadFailGlobal = Falha ao carregar permiss\u00F5es globais - nenhuma permiss\u00E3o concedida.
-util_userPerm_loadFailGroup = Falha ao carregar suas permiss\u00F5es para o Grupo de Recursos com id [{0}] - nenhum permiss\u00E3o concedida.
+util_userPerm_loadFailGroup = Falha ao carregar suas permiss\u00F5es para o Grupo de Recursos com id [{0}] - nenhuma permiss\u00E3o concedida.
util_userPerm_loadFailResource = Falha ao carregar suas permiss\u00F5es para o Recurso com id [{0}] - nenhuma permiss\u00E3o concedida.
-util_userSession_loadFailSubject = UserSessionManager: Falha ao carregar a credencial do usu\u00E1rio
+util_userSession_loadFailSubject = UserSessionManager\: Falha ao carregar a credencial do usu\u00E1rio
util_userSession_logoutFail = Falha durante o logout.
util_widgetsField_unlimited = Ilimitado
view_aboutBox_allRightsReserved = Todos os Direitos Reservados.~
-view_aboutBox_buildNumber = N\u00FAmero do Build:~
+view_aboutBox_buildNumber = N\u00FAmero do Build\:~
view_aboutBox_failedToLoad = Falha ao carregar informa\u00E7oes do produto.~
view_aboutBox_homepage = P\u00E1gina Inicial~
view_aboutBox_jbossByRedHat = JBoss by Red Hat~
view_aboutBox_title = Sobre {0}~
-view_aboutBox_version = Vers\u00E3o:~
+view_aboutBox_version = Vers\u00E3o\:
view_adminConfig_downloads = Downloads
view_adminConfig_license = Licen\u00E7a
view_adminConfig_plugins = Plugins
view_adminConfig_systemSettings = Propriedades de Sistema
-view_adminConfig_templates = Modelos
-view_adminContent_contentSources = Content Sources
-view_adminContent_repositories = Repositories
+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.
@@ -423,18 +423,18 @@ view_adminRoles_permissions_autoselecting_configureRead_implied = Autodeselected
view_adminRoles_permissions_autoselecting_configureWrite_implied = Autoselected CONFIGURE_READ permission, since CONFIGURE_WRITE implies it...
view_adminRoles_permissions_autoselecting_manageInventory_implied = Autoselected unselected Resource permissions, since MANAGE_INVENTORY implies all Resource permissions...
view_adminRoles_permissions_autoselecting_manageSecurity_implied = Autoselected unselected permissions, since MANAGE_SECURITY implies all other permissions...
-view_adminRoles_permissions_globalPermissions = Global Permissions
+view_adminRoles_permissions_globalPermissions = Permiss\u00F5es Globais
view_adminRoles_permissions_illegalDeselectionDueToCorrespondingWritePermSelection = {0} read permission cannot be deselected, unless the {0} write permission, which implies the read permission, is deselected first.
view_adminRoles_permissions_illegalDeselectionDueToManageInventorySelection = {0} permission cannot be deselected, unless Manage Inventory, which implies all Resource permissions, is deselected first.
view_adminRoles_permissions_illegalDeselectionDueToManageSecuritySelection = {0} permission cannot be deselected, unless the Manage Security permission, which implies all other permissions, is deselected first.
-view_adminRoles_permissions_isAuthorized = Authorized?
-view_adminRoles_permissions_isRead = Read?
-view_adminRoles_permissions_isWrite = Write?
+view_adminRoles_permissions_isAuthorized = Autorizado?
+view_adminRoles_permissions_isRead = Leitura?
+view_adminRoles_permissions_isWrite = Escrita?
view_adminRoles_permissions_permDesc_manageBundles = can create, update, or delete provisioning bundles (viewing is implied for everyone)
-view_adminRoles_permissions_permDesc_manageInventory = has all Resource permissions, as described below, for all Resources; can create, update, and delete groups; and can import auto-discovered or manually discovered Resources
+view_adminRoles_permissions_permDesc_manageInventory = possui todas as permiss\u00F5es de Recurso, como descrito abaixo, pode criar, atualizar, excluir grupos e importar Recursos descobertos automaticamente ou manualmente.
view_adminRoles_permissions_permDesc_manageRepositories = can create, update, or delete repositories of any user (everyone can create their own repositories), can associate content sources to repositories.
-view_adminRoles_permissions_permDesc_manageSecurity = can create, update, or delete users and roles (viewing is implied for everyone)
-view_adminRoles_permissions_permDesc_manageSettings = can modify the RHQ Server configuration and perform any Server-related functionality
+view_adminRoles_permissions_permDesc_manageSecurity = Pode criar, atualizar, ou excluir usu\u00E1rios e perfis (visualiza\u00E7\u00E3o \u00E9 padr\u00E3o para todos)
+view_adminRoles_permissions_permDesc_manageSettings = pode modificar a configura\u00E7\u00E3o do RHQ Server e utilizar qualquer funcionalidade relacionada ao Servidor
view_adminRoles_permissions_permReadDesc_configure = view Resource configuration and Resource configuration revision history
view_adminRoles_permissions_permReadDesc_control = (IMPLIED) view available operations and operation execution history
view_adminRoles_permissions_permReadDesc_createChildResources = (IMPLIED) view child Resource creation history
@@ -453,24 +453,24 @@ view_adminRoles_permissions_permWriteDesc_manageAlerts = create, update, and del
view_adminRoles_permissions_permWriteDesc_manageContent = subscribe to content sources; install and uninstall packages
view_adminRoles_permissions_permWriteDesc_manageEvents = delete events
view_adminRoles_permissions_permWriteDesc_manageMeasurements = update metric collection schedules
-view_adminRoles_permissions_perm_configure = Configure
-view_adminRoles_permissions_perm_control = Control
+view_adminRoles_permissions_perm_configure = Configurar
+view_adminRoles_permissions_perm_control = Controlar
view_adminRoles_permissions_perm_createChildResources = Create Child Resources
view_adminRoles_permissions_perm_deleteChildResources = Delete Child Resources
-view_adminRoles_permissions_perm_inventory = Inventory
-view_adminRoles_permissions_perm_manageAlerts = Manage Alerts
-view_adminRoles_permissions_perm_manageBundles = Manage Bundles
-view_adminRoles_permissions_perm_manageContent = Manage Content
-view_adminRoles_permissions_perm_manageEvents = Manage Events
-view_adminRoles_permissions_perm_manageInventory = Manage Inventory
-view_adminRoles_permissions_perm_manageMeasurements = Manage Measurements
-view_adminRoles_permissions_perm_manageRepositories = Manage Repositories
-view_adminRoles_permissions_perm_manageSecurity = Manage Security
-view_adminRoles_permissions_perm_manageSettings = Manage Settings
-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_permissions_perm_inventory = Invent\u00E1rio
+view_adminRoles_permissions_perm_manageAlerts = Gerenciar Alertas
+view_adminRoles_permissions_perm_manageBundles = Gerenciar Bundles
+view_adminRoles_permissions_perm_manageContent = Gerenciar Conte\u00FAdo
+view_adminRoles_permissions_perm_manageEvents = Gerenciar Eventos
+view_adminRoles_permissions_perm_manageInventory = Gerenciar Invent\u00E1rio
+view_adminRoles_permissions_perm_manageMeasurements = Gerenciar M\u00E9tricas
+view_adminRoles_permissions_perm_manageRepositories = Gerenciar Reposit\u00F3rios
+view_adminRoles_permissions_perm_manageSecurity = Gerenciar Seguran\u00E7a
+view_adminRoles_permissions_perm_manageSettings = Gerenciar Configura\u00E7\u00F5es
+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.
@@ -481,19 +481,19 @@ 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 = Disabled Alert Templates
-view_adminTemplates_disabledMetricTemplates = Disabled Metric Templates
-view_adminTemplates_editAlertTemplate = Edit Alert Template
-view_adminTemplates_editMetricTemplate = Edit Metric Template
-view_adminTemplates_enabledAlertTemplates = Enabled Alert Templates
-view_adminTemplates_enabledMetricTemplates = Enabled Metric Templates
-view_adminTemplates_platformServices = Platform Services
-view_adminTemplates_platforms = Platforms
-view_adminTemplates_prompt_disabledAlertTemplates = Number of alert templates that are created but disabled on this resource type
-view_adminTemplates_prompt_disabledMetricTemplates = Number of metric schedules that are disabled by default on this resource type
-view_adminTemplates_prompt_enabledAlertTemplates = Number of alert templates that are enabled on this resource type
-view_adminTemplates_prompt_enabledMetricTemplates = Number of metric schedules that are enabled by default on this resource type
-view_adminTemplates_servers = Servers
+view_adminTemplates_disabledAlertTemplates = Templates de Alerta Desabilitados
+view_adminTemplates_disabledMetricTemplates = Templates de M\u00E9trica Desabilitados
+view_adminTemplates_editAlertTemplate = Editar Template de Alerta
+view_adminTemplates_editMetricTemplate = Editar Template de M\u00E9trica
+view_adminTemplates_enabledAlertTemplates = Templates de Alerta Habilitados
+view_adminTemplates_enabledMetricTemplates = Templates de M\u00E9trica Habilitados
+view_adminTemplates_platformServices = Servi\u00E7os da Plataforma
+view_adminTemplates_platforms = Plataformas
+view_adminTemplates_prompt_disabledAlertTemplates = N\u00FAmero de templates de alerta criados mas desabilitados para este tipo de recurso
+view_adminTemplates_prompt_disabledMetricTemplates = N\u00FAmero de coletas de m\u00E9trica desabilitadas por padr\u00E3o para este tipo de recurso
+view_adminTemplates_prompt_enabledAlertTemplates = N\u00FAmero de templates de alerta habilitados para este tipo de recurso
+view_adminTemplates_prompt_enabledMetricTemplates = N\u00FAmero de coletas de m\u00E9trica habilitadas por padr\u00E3o para este tipo de recurso
+view_adminTemplates_servers = Servidores
view_adminTopology_affinityGroups = Grupos de Afinidade
view_adminTopology_agents = Agentes
view_adminTopology_partitionEvents = Eventos na Parti\u00E7\u00E3o
@@ -504,23 +504,23 @@ 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 = Content
+view_admin_content = Conte\u00FAdo
view_admin_downloads_agentDownload = Agent Download
view_admin_downloads_agent_buildNumber = Agent Build
-view_admin_downloads_agent_help = <p> This is the RHQ Agent Update Binary jar file. The purpose of this jar file is to allow you to install a fresh agent on a machine where an agent does not yet exist and to allow you to update an agent that is already installed on a machine. For more details, run this agent download jar with the --help command line option:<br/> <b>java -jar <agent-download.jar> --help</b> </p> <h3>Agent Install</h3> <p> <b>java -jar <agent-download.jar> --install[=<new agent directory>]</b><br/> This command will install a new agent. If you do not specify the new agent directory, the default will be "." </p> <h3>Agent Update</h3> <p> <b>java -jar <agent-download.jar> --update[=<old agent home>]</b><br/> This will update an existing agent that was already installed. If you do not specify the directory where the old, existing agent was installed, it will assumed to be "rhq-agent". </p>
+view_admin_downloads_agent_help = <p> This is the RHQ Agent Update Binary jar file. The purpose of this jar file is to allow you to install a fresh agent on a machine where an agent does not yet exist and to allow you to update an agent that is already installed on a machine. For more details, run this agent download jar with the --help command line option\:<br/> <b>java -jar <agent-download.jar> --help</b> </p> <h3>Agent Install</h3> <p> <b>java -jar <agent-download.jar> --install[\ = <new agent directory>]</b><br/> This command will install a new agent. If you do not specify the new agent directory, the default will be "." </p> <h3>Agent Update</h3> <p> <b>java -jar <agent-download.jar> --update[\ = <old agent home>]</b><br/> This will update an existing agent that was already installed. If you do not specify the directory where the old, existing agent was installed, it will assumed to be "rhq-agent". </p>
view_admin_downloads_agent_link_label = Link
view_admin_downloads_agent_link_value = Download Agent {0} ({1})
view_admin_downloads_agent_loadError = Cannot get agent version info
view_admin_downloads_agent_md5 = Agent MD5
view_admin_downloads_agent_version = Agent Version
view_admin_downloads_bundleDownload = Bundle Deployer Download
-view_admin_downloads_bundle_help = <p> This is the Bundle Deployer tool. It is for use by developers and packagers of RHQ bundles. This standalone tool allows you to test your bundles and their recipes from a console. </p>
+view_admin_downloads_bundle_help = <p> \
view_admin_downloads_bundle_link_label = Link
view_admin_downloads_bundle_link_value = Download Bundle Deployer {0}
view_admin_downloads_bundle_loadError = Cannot get bundle deployer info
view_admin_downloads_cliDownload = Command Line Client Download
view_admin_downloads_cli_buildNumber = CLI Build
-view_admin_downloads_cli_help = <p> This is the Command Line Client tool, otherwise known as the CLI. It is a standalone tool that runs from within a console and provides a command line interface to the RHQ Server. You can invoke commands via the CLI as well as run scripts to perform automated tasks. See the documentation for more information on how to install and use the CLI. </p>
+view_admin_downloads_cli_help = <p> \
view_admin_downloads_cli_link_label = Link
view_admin_downloads_cli_link_value = Download CLI {0} ({1})
view_admin_downloads_cli_loadError = Cannot get CLI version info
@@ -561,13 +561,13 @@ view_admin_systemSettings_EventPurge_desc = How old event data must be before be
view_admin_systemSettings_EventPurge_name = Delete Events Older Than
view_admin_systemSettings_JAASProvider_desc = Should LDAP be used to determine user identity?
view_admin_systemSettings_JAASProvider_name = Enable LDAP
-view_admin_systemSettings_LDAPBaseDN_desc = The base of the directory tree to search for usernames and passwords while authenticating users, e.g. ou=People,dc=redhat,dc=com
+view_admin_systemSettings_LDAPBaseDN_desc = The base of the directory tree to search for usernames and passwords while authenticating users, e.g. ou = People,dc = redhat,dc = com
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_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_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_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.
view_admin_systemSettings_LDAPGroupFilter_name = Group Search Filter
@@ -653,9 +653,9 @@ view_alert_common_tab_dampening_partial_evalatuions_label_tooltip = O total de v
view_alert_common_tab_dampening_partial_occurrences_label = Ocorr\u00EAncias
view_alert_common_tab_dampening_partial_occurrences_label_tooltip = O n\u00FAmero de vezes que o conjunto de condi\u00E7\u00F5es deve ser satisfeito durante as \u00FAltimas N verifica\u00E7\u00F5es antes do alerta ser disparado.
view_alert_common_tab_general = Propriedades Gerais
-view_alert_common_tab_invalid_condition_category = Categoria de condi\u00E7\u00E3o inv\u00E1lida - favor reportar como um bug: {0}
-view_alert_common_tab_invalid_dampening_category = Categora de sensibilidade inv\u00E1lida - favor reportar como um bug: {0}
-view_alert_common_tab_invalid_time_units = Unidade de tempo inv\u00E1lida - favor reportar como um bug: {0}
+view_alert_common_tab_invalid_condition_category = Categoria de condi\u00E7\u00E3o inv\u00E1lida - favor reportar como um bug\: {0}
+view_alert_common_tab_invalid_dampening_category = Categora de sensibilidade inv\u00E1lida - favor reportar como um bug\: {0}
+view_alert_common_tab_invalid_time_units = Unidade de tempo inv\u00E1lida - favor reportar como um bug\: {0}
view_alert_common_tab_notifications = Notifica\u00E7\u00F5es
view_alert_common_tab_notifications_all_emails = Todos os Emails
view_alert_common_tab_notifications_bad_emails = Emails recusados
@@ -697,7 +697,7 @@ view_alert_definition_condition_editor_metric_calltime_common_limit_tooltip = Te
view_alert_definition_condition_editor_metric_calltime_common_name = M\u00E9trica do tempo de chamada
view_alert_definition_condition_editor_metric_calltime_common_regex = Express\u00E3o Regular
view_alert_definition_condition_editor_metric_calltime_common_regex_tooltip = Se especificada, essa \u00E9 a express\u00E3o regular a ser satisfeita pela chamada para disparar a condi\u00E7\u00E3o.
-view_alert_definition_condition_editor_metric_calltime_threshold_tooltip = Especifica um tempo limite para a chamada que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O valor especificado deve ser absoluto e com uma unidade de medida opcional. \u00C9 necess\u00E1rio especificar o tempo limite da chamada para compar\u00E1-lo ao valor: m\u00EDnimo, m\u00E1ximo ou m\u00E9dio.
+view_alert_definition_condition_editor_metric_calltime_threshold_tooltip = Especifica um tempo limite para a chamada que, quando alcan\u00E7ado, dispara a condi\u00E7\u00E3o. O valor especificado deve ser absoluto e com uma unidade de medida opcional. \u00C9 necess\u00E1rio especificar o tempo limite da chamada para compar\u00E1-lo ao valor\: m\u00EDnimo, m\u00E1ximo ou m\u00E9dio.
view_alert_definition_condition_editor_metric_calltime_threshold_value = Valor do tempo de chamada
view_alert_definition_condition_editor_metric_calltime_threshold_value_tooltip = O valor do limiar (<i>threshold</i>) da m\u00E9trica usado para disparar a condi\u00E7\u00E3o quando comparado ao mecanismo de compara\u00E7\u00E3o escolhido.
view_alert_definition_condition_editor_metric_change_tooltip = Especifica a m\u00E9trica cujo valor deve ser alterado para disparar a condi\u00E7\u00E3o.
@@ -763,7 +763,7 @@ view_alert_definition_notification_operation_editor_mode_relative = Recurso pare
view_alert_definition_notification_operation_editor_mode_specific = Recurso Espec\u00EDfico
view_alert_definition_notification_operation_editor_mode_this = Este Recurso
view_alert_definition_notification_operation_editor_mode_title = Modo de Sele\u00E7\u00E3o do Recurso
-view_alert_definition_notification_operation_editor_mode_unknown = OP\u00C7\u00C3O INV\u00C1LIDA - BUG!
+view_alert_definition_notification_operation_editor_mode_unknown = OP\u00C7\u00C3O INV\u00C1LIDA - BUG\!
view_alert_definition_notification_operation_editor_operations_loadFailed = Falha ao carregar a lista de opera\u00E7\u00F5es dispon\u00EDveis
view_alert_definition_notification_operation_editor_operations_no_parameters = Esta opera\u00E7\u00E3o n\u00E3o recebe par\u00E2metros
view_alert_definition_notification_operation_editor_relative_ancestor = Iniciar a busca a partir de
@@ -815,12 +815,12 @@ view_alert_details_field_recovery_info = Informa\u00E7\u00E3o de Recupera\u00E7\
view_alert_details_loadFailed = Falha ao recuperar detalhes do alerta
view_alerts_ack_confirm = Confirma o(s) alerta(s) selecionado(s)?
view_alerts_ack_confirm_all = Confirma todos os alertas?
-view_alerts_ack_failure = Falha ao confirmar alertas com os seguintes IDs: {0}
+view_alerts_ack_failure = Falha ao confirmar alertas com os seguintes IDs\: {0}
view_alerts_ack_failure_all = N\u00E3o foi poss\u00EDvel confirmar todos os alertas
view_alerts_ack_success = Alertas {0} confirmados com sucesso
view_alerts_delete_confirm = Excluir o(s) alerta(s) selecionado(s)?
view_alerts_delete_confirm_all = Excluir todos os alertas?
-view_alerts_delete_failure = Falha ao excluir alertas com os seguintes IDs: {0}
+view_alerts_delete_failure = Falha ao excluir alertas com os seguintes IDs\: {0}
view_alerts_delete_failure_all = N\u00E3o foi poss\u00EDvel excluir os alertas
view_alerts_delete_success = Alertas {0} exclu\u00EDdos com sucesso
view_alerts_field_ack_status = Status
@@ -886,8 +886,8 @@ view_bundle_bundleVersion = Bundle Version~
view_bundle_bundleVersions = Bundle Versions~
view_bundle_bundles = Bundles~
view_bundle_createWizard_bundleDistro = Bundle Distribution~
-view_bundle_createWizard_cancelFailure = Failed to fully cancel the creation of bundle [{0}], version=[{1}] - the bundle may still exist in the database~
-view_bundle_createWizard_cancelSuccessful = Canceled the creation of bundle [{0}], version=[{1}]~
+view_bundle_createWizard_cancelFailure = Failed to fully cancel the creation of bundle [{0}], version = [{1}] - the bundle may still exist in the database~
+view_bundle_createWizard_cancelSuccessful = Canceled the creation of bundle [{0}], version = [{1}]~
view_bundle_createWizard_clickToUploadRecipe = Click to upload a recipe file~
view_bundle_createWizard_createFailure = Failed to create the bundle~
view_bundle_createWizard_createSuccessful = You have successfully created a bundle named [{0}] with a version of [{1}]~
@@ -1082,7 +1082,7 @@ view_configurationDetails_somePropertiesInvalid = The following configuration pr
view_configurationHistoryDetails_dialogTitle = Configuration Details~
view_configurationHistoryDetails_error_loadFailure = Unable to load configuration history.~
view_configurationHistoryList_cannotDeleteCurrent = One of the selected history items represents the current configuration - you cannot delete it.
-view_configurationHistoryList_cannotDeleteGroupItems = One or more selected configuration history items are part of a group configuration update. You must purge that parent group history item before you can delete its individual resource history items.
+view_configurationHistoryList_cannotDeleteGroupItems = One or more selected configuration history items are part of a group configuration update. \
view_configurationHistoryList_delete_failure = Failed to delete the configuration history items.
view_configurationHistoryList_delete_success = You successfully deleted the selected configuration history items.
view_configurationHistoryList_itemNamePlural = configuration history items
@@ -1153,7 +1153,7 @@ view_dynagroup_exprBuilder_expressionType_resource = Resource
view_dynagroup_exprBuilder_expressionType_resourceCategory = Resource Category
view_dynagroup_exprBuilder_expressionType_resourceConfig = Resource Configuration
view_dynagroup_exprBuilder_expressionType_resourceType = Resource Type
-view_dynagroup_exprBuilder_expressionType_tooltip = The type of property this expression switches on:<br/> <b>Resource</b>: A resource property such as its name or version<br/> <b>Resource Type</b>: Search for resources of a specific type<br/> <b>Resource Category</b>: Search for resources by category: platform, server, service<br/> <b>Trait</b>: Resources that have selected values for a monitored trait<br/> <b>Plugin Configuration</b>: Search by the plugin component configuration setting of the component<br/> <b>Resource Configuration</b>: Search by the configuration setting of the managed resource
+view_dynagroup_exprBuilder_expressionType_tooltip = The type of property this expression switches on\:<br/> <b>Resource</b>\: A resource property such as its name or version<br/> <b>Resource Type</b>\: Search for resources of a specific type<br/> <b>Resource Category</b>\: Search for resources by category\: platform, server, service<br/> <b>Trait</b>\: Resources that have selected values for a monitored trait<br/> <b>Plugin Configuration</b>\: Search by the plugin component configuration setting of the component<br/> <b>Resource Configuration</b>\: Search by the configuration setting of the managed resource
view_dynagroup_exprBuilder_expressionType_trait = Trait
view_dynagroup_exprBuilder_expression_tooltip = This is the full expression that is represented by the selections in the form below. This text will be added to your group definition expression text when you click the "Add Expression" button.
view_dynagroup_exprBuilder_groupBy = Group by
@@ -1178,7 +1178,7 @@ view_dynagroup_exprBuilder_resource_resource = Resource
view_dynagroup_exprBuilder_resource_tooltip = Choose the level of the resource you wish to select. For example, select "parent" will find resources whose parent resource matches the rest of the expression.
view_dynagroup_exprBuilder_title = Expression Builder
view_dynagroup_exprBuilder_unset = Unset
-view_dynagroup_exprBuilder_unset_tooltip = Unset will find all of the values that have a null value in the database. This is not possible using the "=" operator because of how databases store and query data.
+view_dynagroup_exprBuilder_unset_tooltip = Unset will find all of the values that have a null value in the database. This is not possible using the " = " operator because of how databases store and query data.
view_dynagroup_exprBuilder_value_tooltip = The string value for the expression to query
view_dynagroup_expression = Expression~
view_dynagroup_expressionBuilderIconTooltip = Expression Builder...
@@ -1214,7 +1214,7 @@ view_dynagroup_template_platforms = Platform resources in inventory
view_dynagroup_template_uniqueResourceTypes = Unique resource types in inventory
view_groupConfigEdit_member = Membro
view_groupConfigEdit_noListProps = Lista de propriedades n\u00E3o suportada atualmente para configura\u00E7\u00F5es em grupo.
-view_groupConfigEdit_setAll = Atribuir todos os valores \u00E0:
+view_groupConfigEdit_setAll = Atribuir todos os valores \u00E0\:
view_groupConfigEdit_tooltip_1 = Valores dos membros diferem - clique no \u00EDcone para edit\u00E1-los.
view_groupConfigEdit_unset = Remover atribui\u00E7\u00E3o
view_groupConfigEdit_valsDiff = valores dos membros diferem
@@ -1222,7 +1222,7 @@ view_groupConfigEdit_valsDiffForProp = Valores dos membros para a Propriedade [{
view_groupCreateWizard_createFailure = Failed to create the resource group~
view_groupCreateWizard_createStepName = Group Settings~
view_groupCreateWizard_createStep_recursive = Recursive~
-view_groupCreateWizard_createSuccessful_concise = You have created a new resource group. [<a href="{0}">View Group</a>]~
+view_groupCreateWizard_createSuccessful_concise = You have created a new resource group. [<a href = "{0}">View Group</a>]~
view_groupCreateWizard_createSuccessful_full = You have created a new [{0}] resource group with the name [{1}] that contains [{2}] member resources~
view_groupCreateWizard_membersStepName = Select Members~
view_groupCreateWizard_title = Create Group~
@@ -1378,18 +1378,18 @@ view_inventory_summary_agent_status_title = Agent Communications Status~
view_inventory_summary_agent_title = Agent Managing this Resource~
view_inventory_unavailableServers = Unavailable Servers
view_leftNav_unknownPage = P\u00E1gina desconhecida [{0}] para a se\u00E7\u00E3o [{1}] - URL inv\u00E1lida.
-view_login_invalidEmail = Endere\u00E7o de e-mail inv\u00E1lido~
-view_login_login = Login~
-view_login_logout = Logout~
-view_login_noBackend = Fonte de Dados indispon\u00EDvel.~
+view_login_invalidEmail = Endere\u00E7o de e-mail inv\u00E1lido
+view_login_login = Entrar
+view_login_logout = Sair
+view_login_noBackend = Fonte de Dados indispon\u00EDvel.
view_login_noLdap = Note: Optional retrieval of ldap details unsuccessful. Manual entry is required.~
-view_login_noUser = Usu\u00E1rio ou senha inv\u00E1lidos.~
-view_login_prompt = Favor efetuar Login~
-view_login_registerLater = (Logout - 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_login_noUser = Usu\u00E1rio ou senha inv\u00E1lidos.
+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
view_measureRange_hour = 1 Hora
@@ -1406,7 +1406,7 @@ view_measureTable_live_title = Live Data
view_measure_nan = --dados indispon\u00EDveis--
view_measurementOob_title = M\u00E9tricas Suspeitas~
view_menuBar_help = Ajuda~
-view_menuBar_logout = Logout~
+view_menuBar_logout = Sair
view_messageCenter_button_messages = Mensagens~
view_messageCenter_clearAllMessages = Clear All Messages
view_messageCenter_lastNMessages = Last {0} Messages
@@ -1625,14 +1625,14 @@ view_remoteAgentInstall_promptUser = Nome do usu\u00E1rio informado nas credenci
view_remoteAgentInstall_result = Resultado
view_remoteAgentInstall_resultCode = ResultCode
view_remoteAgentInstall_startAgent = Iniciar Agente
-view_remoteAgentInstall_startAgentResults = resultado da inicializa\u00E7\u00E3o do Agente: [{0}]
+view_remoteAgentInstall_startAgentResults = resultado da inicializa\u00E7\u00E3o do Agente\: [{0}]
view_remoteAgentInstall_step = Step
view_remoteAgentInstall_stopAgent = Parar Agente
-view_remoteAgentInstall_stopAgentResults = resultado do encerramento do Agente: [{0}]
+view_remoteAgentInstall_stopAgentResults = resultado do encerramento do Agente\: [{0}]
view_remoteAgentInstall_success = Instala\u00E7\u00E3o do Agente finalizada
view_remoteAgentInstall_updateStatus = Status da Atualiza\u00E7\u00E3o
view_reportsTop_description = This section provides access to global reports.~
-view_reportsTop_title = Relat\u00F3rios~
+view_reportsTop_title = Relat\u00F3rios
view_reports_alertDefinitions = Defini\u00E7\u00E3o de Alertas~
view_reports_alertDefinitions_parentHover = Click to go to the parent alert definition
view_reports_alertDefinitions_resTypeLoadError = Cannot get the template resource type - unable to view the alert template.
@@ -1682,12 +1682,12 @@ view_resource_monitor_table_max = Maximum
view_resource_monitor_table_min = Minimum
view_resource_title_component_errors_tooltip = Shows managed component errors. Click for details~
view_resource_title_tagUpdateFailed = Failed to update resource tags~
-view_searchBar_defaultPattern = definir nome para o padr\u00E3o~
-view_searchBar_error_selectSavedSearch = ''Erro ao selecionar a pesquisa''~
-view_searchBar_query = Query~
-view_searchBar_resourceGroups = Grupos de Recursos~
-view_searchBar_resources = Recursos~
-view_searchBar_welcomeMessage = procurar por {0}s~
+view_searchBar_defaultPattern = definir nome para o padr\u00E3o
+view_searchBar_error_selectSavedSearch = ''Erro ao selecionar a pesquisa''
+view_searchBar_query = Pesquisa
+view_searchBar_resourceGroups = Grupos de Recursos
+view_searchBar_resources = Recursos
+view_searchBar_welcomeMessage = procurar por {0}s
view_searchGUI_loginStatus = Imposs\u00EDvel determinar o status do login, verifique o status do servidor~
view_selector_assigned = Associado {0}
view_selector_available = Dispon\u00EDvel {0}
@@ -1717,7 +1717,7 @@ view_tableSection_error_badId = Can not show detail for [{0}]. Illegal 'id': [{1
view_tableSection_error_noId = Table [{0}] record is missing 'id' attribute - please report this bug.~
view_table_drawFail = Failed to draw Table [{0}].
view_table_matchingRows = Matching Rows: {0} (selected: {1})
-view_table_totalRows = Total de Linhas: {0} (selecionada: {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~
@@ -1767,7 +1767,7 @@ view_tags_tags = Tags~
view_tags_title = Tags:~
view_tags_tooltip_1 = Click to remove this Tag~
view_tags_tooltip_2 = Click to edit Tags~
-view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic=)tagname (e.g. it:env=QA, or owner=John)
+view_tags_tooltip_3 = Enter a Tag in the format: (namespace:)(semantic = )tagname (e.g. it:env = QA, or owner = John)
view_testTop_description = Esta se\u00E7\u00E3o cont\u00E9m p\u00E1ginas para realiza\u00E7\u00E3o de testes em v\u00E1rios componentes UI.~
view_testTop_title = Teste~
view_titleBar_common_addedFav = You have added [{0}] as a favorite~
@@ -1834,51 +1834,51 @@ view_upload_tooltip_1b = Select a file to upload, then click Next
view_upload_tooltip_2 = File upload had previously failed~
view_upload_upload = Upload~
view_upload_uploadFile = UploadFile~
-widget_colorPicker_tooltip = Click to select a new color
-widget_durationItem_inputUnitLessThanTargetUnit = Input unit is less than target unit.
-widget_durationItem_unitTypeNotSupported = Unit type [{0}] is not supported by this DurationItem.
-widget_jobTriggerEditor_fieldHelp_repeatDuration = keep running this operation this many times or until this amount of time has elapsed
-widget_jobTriggerEditor_fieldHelp_repeatInterval = how often the operation should be executed
-widget_jobTriggerEditor_fieldHelp_startDelay = start executing the operation after this amount of time has elapsed
-widget_jobTriggerEditor_field_cronExpression = Cron Expression
-widget_jobTriggerEditor_field_mode = Schedule using
-widget_jobTriggerEditor_field_repeatInterval_later = Repeat every
-widget_jobTriggerEditor_field_repeatInterval_now = Run now and every
-widget_jobTriggerEditor_field_startType = Run
-widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime = End time must be after start time.
-widget_jobTriggerEditor_message_endTimeMustBeInFuture = End time must be in the future.
-widget_jobTriggerEditor_message_startTimeMustBeInFuture = Start time must be in the future.
-widget_jobTriggerEditor_tab_examples = Examples
-widget_jobTriggerEditor_tab_format = Format
-widget_jobTriggerEditor_value_calendar = Calendar
-widget_jobTriggerEditor_value_cronExpression = Cron Expression
-widget_jobTriggerEditor_value_for = For
-widget_jobTriggerEditor_value_in = in
-widget_jobTriggerEditor_value_indefinitely = Indefinitely
-widget_jobTriggerEditor_value_later = Later
+widget_colorPicker_tooltip = Clique para selecionar uma nova cor
+widget_durationItem_inputUnitLessThanTargetUnit = A unidade de entrada \u00E9 menor que a unidade final.
+widget_durationItem_unitTypeNotSupported = Tipo de unidade [{0}] n\u00E3o suportada por este Item de Dura\u00E7\u00E3o.
+widget_jobTriggerEditor_fieldHelp_repeatDuration = permanecer executando esta opera\u00E7\u00E3o por tantas vezes ou at\u00E9 o t\u00E9rmino deste tempo
+widget_jobTriggerEditor_fieldHelp_repeatInterval = qual a frequ\u00EAncia de execu\u00E7\u00E3o da opera\u00E7\u00E3o
+widget_jobTriggerEditor_fieldHelp_startDelay = iniciar a execu\u00E7\u00E3o da opera\u00E7\u00E3o ap\u00F3s passar esta quantidade de tempo
+widget_jobTriggerEditor_field_cronExpression = Express\u00E3o da Cron
+widget_jobTriggerEditor_field_mode = Agendar usando
+widget_jobTriggerEditor_field_repeatInterval_later = Sempre repetir
+widget_jobTriggerEditor_field_repeatInterval_now = Executar agora e sempre
+widget_jobTriggerEditor_field_startType = Executar
+widget_jobTriggerEditor_message_endTimeMustBeAfterStartTime = O t\u00E9rmino deve ser ap\u00F3s o in\u00EDcio.
+widget_jobTriggerEditor_message_endTimeMustBeInFuture = O t\u00E9rmino deve ser no futuro.
+widget_jobTriggerEditor_message_startTimeMustBeInFuture = O in\u00EDcio deve ser no futuro.
+widget_jobTriggerEditor_tab_examples = Exemplos
+widget_jobTriggerEditor_tab_format = Formato
+widget_jobTriggerEditor_value_calendar = Calend\u00E1rio
+widget_jobTriggerEditor_value_cronExpression = Express\u00E3o da Cron
+widget_jobTriggerEditor_value_for = Para
+widget_jobTriggerEditor_value_in = em
+widget_jobTriggerEditor_value_indefinitely = Indefinidamente
+widget_jobTriggerEditor_value_later = Mais tarde
widget_jobTriggerEditor_value_laterAndRepeat = Later & Repeat
-widget_jobTriggerEditor_value_now = Now
-widget_jobTriggerEditor_value_nowAndRepeat = Now & Repeat
-widget_jobTriggerEditor_value_on = on
-widget_jobTriggerEditor_value_until = Until
-widget_recordEditor_error_invalidViewPath = Caminho inv\u00E1lido: [{0}]
+widget_jobTriggerEditor_value_now = Agora
+widget_jobTriggerEditor_value_nowAndRepeat = Agora & Repetir
+widget_jobTriggerEditor_value_on = em
+widget_jobTriggerEditor_value_until = At\u00E9
+widget_recordEditor_error_invalidViewPath = Caminho inv\u00E1lido\: [{0}]
widget_recordEditor_error_multipleRecords = Foram encontrados v\u00E1rios registros - era esperado apenas um.
widget_recordEditor_error_noRecords = Nenhum registro encontrado - era esperado exatamente um.
-widget_recordEditor_error_operation = Operation failed. An error occurred
-widget_recordEditor_error_operationInvalidValues = Operation failed - one or more fields have invalid values
-widget_recordEditor_error_permissionCreate = You do not have the permissions required to create a new [{0}]
-widget_recordEditor_error_unsupportedOperationType = Tipo de opera\u00E7\u00E3o n\u00E3o suportada: [{0}]
+widget_recordEditor_error_operation = Falha na Opera\u00E7\u00E3o. Ocorreu um Erro
+widget_recordEditor_error_operationInvalidValues = Falha na Opera\u00E7\u00E3o - um ou mais campos possuem valores inv\u00E1lidos
+widget_recordEditor_error_permissionCreate = Voc\u00EA n\u00E3o possui permiss\u00E3o necess\u00E1ria para criar um novo [{0}]
+widget_recordEditor_error_unsupportedOperationType = Tipo de opera\u00E7\u00E3o n\u00E3o suportada\: [{0}]
widget_recordEditor_info_recordCreatedConcise = {0} criado.
widget_recordEditor_info_recordCreatedDetailed = {0} [{1}] criado.
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_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}]
-widget_recordEditor_warn_validation = One or more fields have invalid values. This [{0}] cannot be saved until these values are corrected
+widget_recordEditor_warn_validation = Um ou mais campos possuem valores inv\u00E1lidos. Este [{0}] n\u00E3o pode ser salvo at\u00E9 que os valores sejam corrigidos.
widget_resourceFactoryWizard_archPrompt = Arquitetura do Pacote
widget_resourceFactoryWizard_configTemplatePrompt = Modelo de Configura\u00E7\u00E3o de Recurso
widget_resourceFactoryWizard_contentTemplatePrompt = Modelos de Configura\u00E7\u00E3o do Tempo de Deploy
@@ -1886,7 +1886,7 @@ widget_resourceFactoryWizard_createSubmit = A requisi\u00E7\u00E3o para cria\u00
widget_resourceFactoryWizard_createSubmitType = A requisi\u00E7\u00E3o para cria\u00E7\u00E3o de um recurso do tipo [{0}] foi submetida com sucesso.
widget_resourceFactoryWizard_createWizardTitle = Criar novo recurso do tipo [{0}]
widget_resourceFactoryWizard_createWizardWindowTitle = Assistente para Cria\u00E7\u00E3o de Recurso
-##widget_resourceFactoryWizard_editConfigStepName = Deployment Options
+##widget_resourceFactoryWizard_editConfigStepName = Deployment Options
widget_resourceFactoryWizard_execute1 = Falha ao criar novo recurso - vers\u00E3o do pacote inexistente
widget_resourceFactoryWizard_execute2 = Falha ao criar novo recurso
widget_resourceFactoryWizard_failedToDeleteVersion = Falha ao excluir a vers\u00E3o do pacote durante o cancelamento da cria\u00E7\u00E3o do recurso
@@ -1896,10 +1896,10 @@ widget_resourceFactoryWizard_importSubmitted = Uma requisi\u00E7\u00E3o para imp
widget_resourceFactoryWizard_importWizardTitle = Importar Recursos do Tipo [{0}]
widget_resourceFactoryWizard_importWizardWindowTitle = Assistente para Importa\u00E7\u00E3o de Recurso
widget_resourceFactoryWizard_infoStepName = Informa\u00E7\u00E3o do Recurso
-widget_resourceFactoryWizard_infoStep_loadFail = Failed to get available Architectures
+widget_resourceFactoryWizard_infoStep_loadFail = Falha ao recuperar Arquiteturas dispon\u00EDveis.
widget_resourceFactoryWizard_namePrompt = Novo Nome do Recurso
widget_resourceFactoryWizard_templatePrompt = Modelo de Propriedades para Conex\u00E3o
-##widget_resourceFactoryWizard_timeoutHelp = A timeout duration. If specified will override the default timeout for child resource creation (on the RHQ Agent). Useful for particularly long create actions, like deployment of a large application. Usually used if a previous attempt suffered a timeout failure.
+##widget_resourceFactoryWizard_timeoutHelp = A timeout duration. If specified will override the default timeout for child resource creation (on the RHQ Agent). Useful for particularly long create actions, like deployment of a large application. Usually used if a previous attempt suffered a timeout failure.
widget_resourceFactoryWizard_uploadFailure = Falha ao realizar o upload do arquivo
widget_resourceFactoryWizard_uploadFileStepName = Upload do Arquivo do Recurso
widget_resourceFactoryWizard_uploadInProgress = Upload em andamento... Esse processo pode demorar alguns minutos para ser finalizado em caso de arquivos muito grandes.
@@ -1909,7 +1909,7 @@ widget_resourceSelector_pleaseSelectMultipleResource = Favor selecionar um ou ma
widget_resourceSelector_pleaseSelectResource = Favor selecionar um recurso
widget_resourceSelector_selectMultipleResources = Selecionar Recursos
widget_resourceSelector_selectResource = Selecionar um Recurso
-widget_typeCache_loadFail = Failed to load resource type metadata
-widget_typeTree_badTemplateType = Invalid URL. Unknown template type [{0}]
-widget_typeTree_badTypeId = Invalid URL. Bad resource type ID [{0}]
-widget_typeTree_loadFail = Failed to load resource types
+widget_typeCache_loadFail = Falha ao carregar o metadado do tipo de recurso
+widget_typeTree_badTemplateType = URL inv\u00E1lida. Tipo de template desconhecido [{0}]
+widget_typeTree_badTypeId = URL inv\u00E1lida. Tipo de recurso inv\u00E1lido\: ID [{0}]
+widget_typeTree_loadFail = Falha ao carregar tipos de recurso
commit 4120c6b83a25a6b52c44e8e5a6fa528989f8c4a5
Merge: 447cd29 c8dc1d8
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu Jul 14 11:46:34 2011 +0200
Merge branch 'master' into code-smell
diff --cc modules/core/util/src/main/java/org/rhq/core/util/stream/StreamUtil.java
index e84d7d4,be0446b..d21ab62
--- a/modules/core/util/src/main/java/org/rhq/core/util/stream/StreamUtil.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/stream/StreamUtil.java
@@@ -23,9 -23,10 +23,11 @@@
package org.rhq.core.util.stream;
import java.io.BufferedInputStream;
+ import java.io.BufferedReader;
+ import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
commit 447cd29b3c4d39c80fabc990096807353544d258
Merge: f7aa5f5 32b8223
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu Dec 2 10:54:48 2010 +0100
Merge branch 'master' into code-smell
diff --cc modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
index 3eb1c6b,b57c65b..e4d7575
--- a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
+++ b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
@@@ -30,16 -27,16 +27,17 @@@ import org.rhq.core.pluginapi.inventory
import org.rhq.core.pluginapi.inventory.ResourceComponent;
import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.plugins.database.DatabaseComponent;
+ import java.io.File;
+ import java.io.FileReader;
import java.sql.Connection;
- import java.sql.DatabaseMetaData;
- import java.sql.DriverManager;
import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
import java.sql.SQLException;
+ import java.sql.Statement;
import java.util.HashMap;
+ import java.util.List;
import java.util.Map;
import java.util.Set;
diff --cc modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
index 2ada67b,30b65f2..c4ada90
--- a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
+++ b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
@@@ -28,10 -28,8 +28,9 @@@ import org.rhq.core.pluginapi.inventory
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
import org.rhq.core.pluginapi.inventory.ManualAddFacet;
import org.rhq.core.system.ProcessInfo;
+import org.rhq.core.util.jdbc.JDBCUtil;
import java.sql.Connection;
- import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.LinkedHashSet;
import java.util.List;
@@@ -82,59 -79,53 +80,53 @@@ public class MySqlDiscoveryComponent im
}
protected static DiscoveredResourceDetails createResourceDetails(ResourceDiscoveryContext discoveryContext,
- Configuration pluginConfiguration, ProcessInfo processInfo) {
-
- String key = buildUrl(pluginConfiguration);
- String db = pluginConfiguration.getSimple(DB_CONFIGURATION_PROPERTY).getStringValue();
- String name = "MySql [" + db + "]";
- try {
- String version = getVersion(pluginConfiguration);
- return new DiscoveredResourceDetails(discoveryContext.getResourceType(), key, name, version,
- DEFAULT_RESOURCE_DESCRIPTION, pluginConfiguration, processInfo);
- } catch (Exception e) {
- log.warn("Getting details failed: " + e.getMessage());
- if (e.getCause()!=null) {
- log.warn(" caused by: " + e.getCause().getMessage());
- }
- }
- return null;
- }
+ Configuration pluginConfiguration,
+ ProcessInfo processInfo) throws InvalidPluginConfigurationException {
- protected static String buildUrl(Configuration config) {
- String host = config.getSimple(HOST_CONFIGURATION_PROPERTY).getStringValue();
- String port = config.getSimple(PORT_CONFIGURATION_PROPERTY).getStringValue();
- String user = config.getSimple(PRINCIPAL_CONFIGURATION_PROPERTY).getStringValue();
- String pass = config.getSimple(CREDENTIALS_CONFIGURATION_PROPERTY).getStringValue();
- String url = "jdbc:mysql://" + host + "?user=" + user + "&password=" + pass;
- return url;
- }
-
- protected static String getVersion(Configuration config) {
- String version = null;
- Connection conn = null;
+ MySqlConnectionInfo ci = buildConnectionInfo(pluginConfiguration);
+ Connection conn;
+ String version = "";
try {
- conn = buildConnection(config);
+ conn = MySqlConnectionManager.getConnectionManager().getConnection(ci);
version = conn.getMetaData().getDatabaseProductVersion();
- } catch (SQLException e) {
- // TODO GH: How to put this back to the server while inventorying this resource in an unconfigured state
- log.info("Exception detecting mysql instance version" + e.getMessage());
- } finally {
- JDBCUtil.safeClose(conn);
+ } catch (SQLException ex) {
+ // ignore so we can still add to the inventory even though we can't currently connect
}
- return version;
- }
+ String key = new StringBuilder().append("MySql:")
+ .append(ci.getDb())
+ .append(":")
+ .append(ci.getHost())
+ .append(":")
+ .append(ci.getPort())
+ .append("-")
+ .append(ci.getUser()).toString();
+ String name = new StringBuilder().append("MySql [")
+ .append(ci.getDb())
+ .append("]").toString();
+
+ DiscoveredResourceDetails result = new DiscoveredResourceDetails(
+ discoveryContext.getResourceType(),
+ key,
+ name,
+ version,
+ "MySql Server",
+ pluginConfiguration,
+ processInfo);
- public static Connection buildConnection(Configuration configuration) throws SQLException {
- String driverClass = configuration.getSimple(DRIVER_CONFIGURATION_PROPERTY).getStringValue();
- try {
- Class.forName(driverClass);
- } catch (ClassNotFoundException e) {
- throw new InvalidPluginConfigurationException("Specified JDBC driver class (" + driverClass
- + ") not found.");
+ if (log.isDebugEnabled()) {
+ log.debug("Discovered Database Server for MySQL Database " + ci.buildURL());
}
+ return result;
- String url = buildUrl(configuration);
-
- return DriverManager.getConnection(url);
}
+
+ static MySqlConnectionInfo buildConnectionInfo(Configuration configuration) {
+ // build the Discovered Resource from the configuration
+ String host = configuration.getSimple(HOST_CONFIGURATION_PROPERTY).getStringValue();
+ String port = configuration.getSimple(PORT_CONFIGURATION_PROPERTY).getStringValue();
+ String user = configuration.getSimple(PRINCIPAL_CONFIGURATION_PROPERTY).getStringValue();
+ String pass = configuration.getSimple(CREDENTIALS_CONFIGURATION_PROPERTY).getStringValue();
+ String db = configuration.getSimple(DB_CONFIGURATION_PROPERTY).getStringValue();
+ return new MySqlConnectionInfo(host, port, db, user, pass);
+ }
-}
+}
commit f7aa5f57e02fb94389c33ac5b22bcef222488bc7
Merge: 077dd3d 08566cc
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Oct 13 11:16:45 2010 +0200
Merge branch 'master' into code-smell
diff --cc modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/Props.java
index 4034184,bc1fc64..484d591
--- a/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/Props.java
+++ b/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/Props.java
@@@ -87,10 -87,12 +87,12 @@@ public class Props
private Set<Template> templates = new HashSet<Template>();
- private Set<MetricProps> metrics = new LinkedHashSet<MetricProps>();;
+ private Set<MetricProps> metrics = new LinkedHashSet<MetricProps>();
- private Set<OperationProps> operations = new LinkedHashSet<OperationProps>();;
+ private Set<OperationProps> operations = new LinkedHashSet<OperationProps>();
+ private Set<TypeKey> runsInsides = new LinkedHashSet<TypeKey>();;
+
private String pluginName;
private String pluginDescription;
commit 077dd3d75a5782dd4c775b47a64e80b0cfd38311
Merge: 8970684 e5fac0a
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Sep 14 18:08:59 2010 +0200
Merge branch 'master' into code-smell
commit 89706849030f5d35d65189b7cc6e8fd75da403d2
Merge: 271474d fb4f6c2
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Sep 3 11:02:19 2010 +0200
Merge branch 'master' into code-smell
commit 271474dd691b04cc01106d83baee292cfd6689a2
Merge: 4d5b070 66234db
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 24 18:10:33 2010 +0200
Merge branch 'master' into code-smell
diff --cc modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
index ba0ea81,4f1045e..2ada67b
--- a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
+++ b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
@@@ -106,9 -115,7 +117,9 @@@ public class MySqlDiscoveryComponent im
version = conn.getMetaData().getDatabaseProductVersion();
} catch (SQLException e) {
// TODO GH: How to put this back to the server while inventorying this resource in an unconfigured state
- log.info("Exception detecting mysql instance version", e);
+ log.info("Exception detecting mysql instance version" + e.getMessage());
+ } finally {
+ JDBCUtil.safeClose(conn);
}
return version;
}
@@@ -126,4 -133,4 +137,4 @@@
return DriverManager.getConnection(url);
}
--}
++}
commit 4d5b070e7e77d53f32d93ee9788e52e1ff5b509f
Merge: 88faac6 462e15f
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 20 12:46:56 2010 +0200
Merge branch 'master' into code-smell
commit 88faac6a30c0282e08d2b0d7d19d6d019a0504c3
Merge: 2c7c7fc 1c5c441
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Aug 16 12:19:04 2010 +0200
Merge branch 'master' into code-smell
commit 2c7c7fc3aa949bbfebdefaaa4a0688a95bbeede8
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 15:21:25 2010 +0200
Be defensive about the existence of HTTP Date header.
diff --git a/modules/plugins/netservices/src/main/java/org/rhq/plugins/netservices/HTTPNetServiceComponent.java b/modules/plugins/netservices/src/main/java/org/rhq/plugins/netservices/HTTPNetServiceComponent.java
index 85b19ad..54d9256 100644
--- a/modules/plugins/netservices/src/main/java/org/rhq/plugins/netservices/HTTPNetServiceComponent.java
+++ b/modules/plugins/netservices/src/main/java/org/rhq/plugins/netservices/HTTPNetServiceComponent.java
@@ -24,6 +24,7 @@ import java.util.Date;
import java.util.Locale;
import java.util.Set;
+import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.logging.Log;
@@ -114,7 +115,8 @@ public class HTTPNetServiceComponent implements ResourceComponent, MeasurementFa
// TODO: may need to allow plugin to configure the locale, but for this fixed string, make sure we
// ignore default locale, this works for english.
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);
- Date contentDate = sdf.parse(method.getResponseHeader("Date").getValue());
+ Header dateHeader = method.getResponseHeader("Date");
+ Date contentDate = dateHeader == null ? new Date(System.currentTimeMillis()) : sdf.parse(dateHeader.getValue());
// System.out.println("Success: " + success);
// System.out.println("Response: " + responseCode);
commit c033ec0a86a394f0caeda7081ed9c3fbd77ac524
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 15:16:53 2010 +0200
Fail gracefully if we cannot determine the deployment descriptor file of the mbean during the resource configuration update.
diff --git a/modules/plugins/jboss-cache/src/main/java/org/rhq/plugins/jbosscache/JBossCacheComponent.java b/modules/plugins/jboss-cache/src/main/java/org/rhq/plugins/jbosscache/JBossCacheComponent.java
index 34c3ffc..daa7cdb 100644
--- a/modules/plugins/jboss-cache/src/main/java/org/rhq/plugins/jbosscache/JBossCacheComponent.java
+++ b/modules/plugins/jboss-cache/src/main/java/org/rhq/plugins/jbosscache/JBossCacheComponent.java
@@ -281,6 +281,12 @@ public class JBossCacheComponent implements ResourceComponent<JMXComponent>, Mea
String mbeanName = context.getResourceKey();
File file = DeploymentUtility.getDescriptorFile(parentServer.getEmsConnection(), mbeanName);
+ if (file == null) {
+ report.setStatus(ConfigurationUpdateStatus.FAILURE);
+ report.setErrorMessage("Failed to determine the deployment descriptor file for mbean '" + mbeanName + "'.");
+ return;
+ }
+
CacheConfigurationHelper helper = new CacheConfigurationHelper();
try {
helper.writeConfig(file, newOne, mbeanName, true);
commit 6334d8b4fbb3e77b3ce607cd3191406ad85cc348
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 15:06:07 2010 +0200
Paranoidly prevent NPE if a set of rules changed between avail checks of the parent BytemanScriptComponent.
diff --git a/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanRuleComponent.java b/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanRuleComponent.java
index 09f7213..189eb47 100644
--- a/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanRuleComponent.java
+++ b/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanRuleComponent.java
@@ -36,7 +36,7 @@ public class BytemanRuleComponent implements ResourceComponent<BytemanScriptComp
List<String> rules = this.resourceContext.getParentResourceComponent().getRules();
for (String rule : rules) {
String ruleName = client.determineRuleName(rule);
- if (ruleName.equals(ourKey)) {
+ if (ourKey.equals(ruleName)) {
return AvailabilityType.UP;
}
}
commit ac1418991c901faed1397c7a9016d226316855a0
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 15:00:54 2010 +0200
Make sure to close the stream (this will paranoidly close the buffered output stream instead just the file output stream that is wrapped by it).
diff --git a/modules/plugins/rhq-agent/src/main/java/org/rhq/plugins/agent/AgentSnapshotReport.java b/modules/plugins/rhq-agent/src/main/java/org/rhq/plugins/agent/AgentSnapshotReport.java
index f2fb4b3..cd92575 100644
--- a/modules/plugins/rhq-agent/src/main/java/org/rhq/plugins/agent/AgentSnapshotReport.java
+++ b/modules/plugins/rhq-agent/src/main/java/org/rhq/plugins/agent/AgentSnapshotReport.java
@@ -21,6 +21,7 @@ package org.rhq.plugins.agent;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.OutputStream;
import java.util.Properties;
import org.apache.commons.logging.Log;
@@ -29,6 +30,7 @@ import org.apache.commons.logging.LogFactory;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.pluginapi.util.SnapshotReport;
+import org.rhq.core.util.stream.StreamUtil;
/**
* Performs some slight customizations of the snapshot report utility such as taking a snapshot of the live
@@ -82,11 +84,12 @@ public class AgentSnapshotReport extends SnapshotReport {
try {
File configDir = new File(this.agentInstallDir, "conf");
File liveConfigFile = new File(configDir, "live-agent-configuration.properties");
- FileOutputStream fos = new FileOutputStream(liveConfigFile);
+ OutputStream fos = null;
try {
- this.agentConfiguration.store(new BufferedOutputStream(fos), null);
+ fos = new BufferedOutputStream(new FileOutputStream(liveConfigFile));
+ this.agentConfiguration.store(fos, null);
} finally {
- fos.close();
+ StreamUtil.safeClose(fos);
}
return liveConfigFile;
} catch (Exception e) {
commit 8869c018b39935049b924b1d7273fcb15663b7b9
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 14:54:40 2010 +0200
Prevent an NPE if all aliases would be removed from a tomcat vhost.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
index e8d6e8b..2746c5b 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
@@ -159,11 +159,10 @@ public class TomcatVHostComponent extends MBeanResourceComponent<TomcatServerCom
String currentValsLongString = currentVals.getStringValue();
String newValsLongString = newVals.getStringValue();
StringTokenizer tokenizer = null;
- Configuration opConfig = null;
+ Configuration opConfig = new Configuration();
if (null != newValsLongString) {
tokenizer = new StringTokenizer(newValsLongString, "\n");
- opConfig = new Configuration();
while (tokenizer.hasMoreTokens()) {
String newVal = tokenizer.nextToken().trim();
if ((null == currentValsLongString) || !currentValsLongString.contains(newVal)) {
commit f270fe5702392360cc2ab6710f2e4f528f6ab4b3
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 14:53:00 2010 +0200
Prevent an NPE when the user was removed from all groups or roles during resource configuration update.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatUserComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatUserComponent.java
index 52efaac..24936cd 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatUserComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatUserComponent.java
@@ -162,11 +162,10 @@ public class TomcatUserComponent extends MBeanResourceComponent<TomcatUserDataba
String currentValsLongString = currentVals.getStringValue();
String newValsLongString = newVals.getStringValue();
StringTokenizer tokenizer = null;
- Configuration opConfig = null;
+ Configuration opConfig = new Configuration();
if (null != newValsLongString) {
tokenizer = new StringTokenizer(newValsLongString, "\n");
- opConfig = new Configuration();
while (tokenizer.hasMoreTokens()) {
String newVal = tokenizer.nextToken().trim();
if ((null == currentValsLongString) || !currentValsLongString.contains(newVal)) {
commit d6a394514a81cab7a2912d5f0d183b7b958d84ea
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 14:50:40 2010 +0200
Prevent an NPE in case all the roles were removed from the tomcat group.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatGroupComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatGroupComponent.java
index 89b2ce2..1d667a7 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatGroupComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatGroupComponent.java
@@ -141,11 +141,10 @@ public class TomcatGroupComponent extends MBeanResourceComponent<TomcatUserDatab
String currentValsLongString = currentVals.getStringValue();
String newValsLongString = newVals.getStringValue();
StringTokenizer tokenizer = null;
- Configuration opConfig = null;
+ Configuration opConfig = new Configuration();
if (null != newValsLongString) {
tokenizer = new StringTokenizer(newValsLongString, "\n");
- opConfig = new Configuration();
while (tokenizer.hasMoreTokens()) {
String newVal = tokenizer.nextToken().trim();
if ((null == currentValsLongString) || !currentValsLongString.contains(newVal)) {
commit 48f7788fa29d437b791f28625c233e87c5e2b811
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 14:48:16 2010 +0200
Be paranoid about File.getParentFile()
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatDiscoveryComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatDiscoveryComponent.java
index 3007520..fc0e681 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatDiscoveryComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatDiscoveryComponent.java
@@ -341,8 +341,17 @@ public class TomcatDiscoveryComponent implements ResourceDiscoveryComponent, Man
private String determineCatalinaHomeOnWindows(ProcessInfo processInfo) {
File exePath = new File(processInfo.getName());
+
File parentDir = exePath.getParentFile();
+ if (parentDir == null) { //paranoia
+ return null;
+ }
+
File ewsDir = parentDir.getParentFile();
+ if (ewsDir == null) { //paranoia
+ return null;
+ }
+
File tomcatDir = new File(ewsDir, "share/apache-tomcat-6.0.24");
if (tomcatDir.exists()) {
commit dd633d1e56712671a496952dd6f04fae21bada07
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 14:36:32 2010 +0200
Throw a specific exception if failed to parse virt domain xml.
diff --git a/modules/plugins/virt/src/main/java/org/rhq/plugins/virt/VirtualizationDomainComponent.java b/modules/plugins/virt/src/main/java/org/rhq/plugins/virt/VirtualizationDomainComponent.java
index a67d5c3..adc75a6 100644
--- a/modules/plugins/virt/src/main/java/org/rhq/plugins/virt/VirtualizationDomainComponent.java
+++ b/modules/plugins/virt/src/main/java/org/rhq/plugins/virt/VirtualizationDomainComponent.java
@@ -159,6 +159,11 @@ public class VirtualizationDomainComponent implements ResourceComponent<Virtuali
String xml = virt.getDomainXML(this.domainName);
Configuration oldConfig = loadResourceConfiguration();
+
+ if (oldConfig == null) {
+ throw new IllegalStateException("Failed to parse the XML specification for domain '" + domainName + "'.");
+ }
+
Configuration newConfig = report.getConfiguration();
String newXml = XMLEditor.updateDomainXML(report.getConfiguration(), xml);
commit 8ad726302d19649136d25783b23555431de16db2
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 14:07:50 2010 +0200
Be paranoid about free()ing the libvirt objects, throw IllegalArgumentException if domain/network of some name cannot be found instead of just blindly throwing an NPE later in the workflow.
diff --git a/modules/plugins/virt/src/main/java/org/rhq/plugins/virt/LibVirtConnection.java b/modules/plugins/virt/src/main/java/org/rhq/plugins/virt/LibVirtConnection.java
index 6b16328..b1f578e 100644
--- a/modules/plugins/virt/src/main/java/org/rhq/plugins/virt/LibVirtConnection.java
+++ b/modules/plugins/virt/src/main/java/org/rhq/plugins/virt/LibVirtConnection.java
@@ -114,15 +114,17 @@ public class LibVirtConnection {
public DomainInfo getDomainInfo(String domainName) throws LibvirtException {
try {
- Domain domain = connection.domainLookupByName(domainName);
-
- DomainInfo info = new DomainInfo();
- info.domainInfo = domain.getInfo();
- info.name = domainName;
- info.uuid = domain.getUUIDString();
- domain.free();
-
- return info;
+ Domain domain = getDomain(domainName);
+ try {
+ DomainInfo info = new DomainInfo();
+ info.domainInfo = domain.getInfo();
+ info.name = domainName;
+ info.uuid = domain.getUUIDString();
+
+ return info;
+ } finally {
+ domain.free();
+ }
} catch (LibvirtException e) {
log.error("Error looking up domain with name " + domainName, e);
throw e;
@@ -132,14 +134,19 @@ public class LibVirtConnection {
public DomainInfo getDomainInfo(int id) throws LibvirtException {
try {
Domain domain = connection.domainLookupByID(id);
-
- DomainInfo info = new DomainInfo();
- info.domainInfo = domain.getInfo();
- info.name = domain.getName();
- info.uuid = domain.getUUIDString();
- domain.free();
-
- return info;
+ if (domain == null) {
+ throw new IllegalArgumentException("No domain found with ID: " + id);
+ }
+ try {
+ DomainInfo info = new DomainInfo();
+ info.domainInfo = domain.getInfo();
+ info.name = domain.getName();
+ info.uuid = domain.getUUIDString();
+
+ return info;
+ } finally {
+ domain.free();
+ }
} catch (LibvirtException e) {
log.error("Error looking up domain with id " + id, e);
throw e;
@@ -147,18 +154,22 @@ public class LibVirtConnection {
}
public String getDomainXML(String domainName) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- String returnValue = domain.getXMLDesc(0);
- domain.free();
-
- return returnValue;
+ Domain domain = getDomain(domainName);
+ try {
+ return domain.getXMLDesc(0);
+ } finally {
+ domain.free();
+ }
}
public int domainReboot(String domainName) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.reboot(0);
- domain.free();
- return SUCCESS;
+ Domain domain = getDomain(domainName);
+ try {
+ domain.reboot(0);
+ return SUCCESS;
+ } finally {
+ domain.free();
+ }
}
public int domainRestore(String toPath) throws LibvirtException {
@@ -167,57 +178,79 @@ public class LibVirtConnection {
}
public int domainDestroy(String domainName) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.destroy();
- domain.free();
- return SUCCESS;
+ Domain domain = getDomain(domainName);
+ try {
+ domain.destroy();
+ return SUCCESS;
+ } finally {
+ domain.free();
+ }
}
public int domainDelete(String domainName) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- DomainState state = domain.getInfo().state;
-
- if ((state != DomainState.VIR_DOMAIN_SHUTDOWN) && (state != DomainState.VIR_DOMAIN_SHUTOFF)) {
- domain.destroy();
+ Domain domain = getDomain(domainName);
+ try {
+ DomainState state = domain.getInfo().state;
+
+ if ((state != DomainState.VIR_DOMAIN_SHUTDOWN) && (state != DomainState.VIR_DOMAIN_SHUTOFF)) {
+ domain.destroy();
+ }
+ domain.undefine();
+
+ return SUCCESS;
+ } finally {
+ domain.free();
}
- domain.undefine();
- domain.free();
- return SUCCESS;
}
public int domainSave(String domainName, String toPath) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.save(toPath);
- domain.free();
- return SUCCESS;
+ Domain domain = getDomain(domainName);
+ try {
+ domain.save(toPath);
+ return SUCCESS;
+ } finally {
+ domain.free();
+ }
}
public int domainResume(String domainName) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.resume();
- domain.free();
- return SUCCESS;
+ Domain domain = getDomain(domainName);
+ try {
+ domain.resume();
+ return SUCCESS;
+ } finally {
+ domain.free();
+ }
}
public int domainShutdown(String domainName) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.shutdown();
- domain.free();
- return SUCCESS;
+ Domain domain = getDomain(domainName);
+ try {
+ domain.shutdown();
+ return SUCCESS;
+ } finally {
+ domain.free();
+ }
}
public int domainSuspend(String domainName) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.suspend();
- domain.free();
- return SUCCESS;
+ Domain domain = getDomain(domainName);
+ try {
+ domain.suspend();
+ return SUCCESS;
+ } finally {
+ domain.free();
+ }
}
public int domainCreate(String domainName) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.create();
- domain.free();
- return SUCCESS;
+ Domain domain = getDomain(domainName);
+ try {
+ domain.create();
+ return SUCCESS;
+ } finally {
+ domain.free();
+ }
}
public boolean defineDomain(String xml) throws LibvirtException {
@@ -230,35 +263,48 @@ public class LibVirtConnection {
}
public void setMaxMemory(String domainName, long size) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.setMaxMemory(size);
- domain.free();
+ Domain domain = getDomain(domainName);
+ try {
+ domain.setMaxMemory(size);
+ } finally {
+ domain.free();
+ }
}
public void setMemory(String domainName, long size) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.setMemory(size);
- domain.free();
+ Domain domain = getDomain(domainName);
+ try {
+ domain.setMemory(size);
+ } finally {
+ domain.free();
+ }
}
public void setVcpus(String domainName, int count) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- domain.setVcpus(count);
- domain.free();
+ Domain domain = getDomain(domainName);
+ try {
+ domain.setVcpus(count);
+ } finally {
+ domain.free();
+ }
}
public DomainInterfaceStats getDomainInterfaceStats(String domainName, String path) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- DomainInterfaceStats returnValue = domain.interfaceStats(path);
- domain.free();
- return returnValue;
+ Domain domain = getDomain(domainName);
+ try {
+ return domain.interfaceStats(path);
+ } finally {
+ domain.free();
+ }
}
public DomainBlockStats getDomainBlockStats(String domainName, String path) throws LibvirtException {
- Domain domain = connection.domainLookupByName(domainName);
- DomainBlockStats returnValue = domain.blockStats(path);
- domain.free();
- return returnValue;
+ Domain domain = getDomain(domainName);
+ try {
+ return domain.blockStats(path);
+ } finally {
+ domain.free();
+ }
}
public int close() throws LibvirtException {
@@ -275,7 +321,10 @@ public class LibVirtConnection {
double usedMemory = 0;
for (int id : connection.listDomains()) {
Domain domain = connection.domainLookupByID(id);
- usedMemory += domain.getInfo().memory;
+ if (domain != null) {
+ usedMemory += domain.getInfo().memory;
+ domain.free();
+ }
}
return usedMemory / memory;
}
@@ -284,8 +333,10 @@ public class LibVirtConnection {
long cpuTime = 0;
for (int id : connection.listDomains()) {
Domain domain = connection.domainLookupByID(id);
- cpuTime += domain.getInfo().cpuTime;
- domain.free();
+ if (domain != null) {
+ cpuTime += domain.getInfo().cpuTime;
+ domain.free();
+ }
}
return cpuTime;
}
@@ -321,28 +372,37 @@ public class LibVirtConnection {
return getNetworks().contains(name);
}
- //TODO NEED TO ADD A NETWORK OBJECT AND FREE THE LIBVIRT ONE
public NetworkInfo getNetwork(String name) throws LibvirtException {
- NetworkInfo info = new NetworkInfo();
- Network net = connection.networkLookupByName(name);
- info.name = net.getName();
- info.autostart = net.getAutostart();
- info.bridgeName = net.getBridgeName();
- return info;
+ Network net = getLibVirtNetwork(name);
+
+ try {
+ NetworkInfo info = new NetworkInfo();
+ info.name = net.getName();
+ info.autostart = net.getAutostart();
+ info.bridgeName = net.getBridgeName();
+ return info;
+ } finally {
+ net.free();
+ }
}
public String getNetworkXML(String name) throws LibvirtException {
- Network network = connection.networkLookupByName(name);
- String returnValue = network.getXMLDesc(0);
- network.free();
- return returnValue;
+ Network network = getLibVirtNetwork(name);
+ try {
+ return network.getXMLDesc(0);
+ } finally {
+ network.free();
+ }
}
public void updateNetwork(String name, String xml, boolean autostart) throws LibvirtException {
connection.networkDefineXML(xml);
- Network network = connection.networkLookupByName(name);
- network.setAutostart(autostart);
- network.free();
+ Network network = getLibVirtNetwork(name);
+ try {
+ network.setAutostart(autostart);
+ } finally {
+ network.free();
+ }
}
public static class DomainInfo {
@@ -385,10 +445,26 @@ public class LibVirtConnection {
System.out.println(conn.connection.domainLookupByName(foo).getXMLDesc(0));
}
}
+
+ private Domain getDomain(String domainName) throws LibvirtException, IllegalArgumentException {
+ Domain ret = connection.domainLookupByName(domainName);
+ if (ret == null) {
+ throw new IllegalArgumentException("Could not find a domain called '" + domainName + "'.");
+ }
+
+ return ret;
+ }
+
+ private Network getLibVirtNetwork(String networkName) throws LibvirtException, IllegalArgumentException {
+ Network ret = connection.networkLookupByName(networkName);
+ if (ret == null) {
+ throw new IllegalArgumentException("Could not find a netword called '" + networkName + "'.");
+ }
+
+ return ret;
+ }
}
-//TODO Put the callbacks in
-/* Comment this out untilt he callbacks get in*/
class Logger extends org.libvirt.ErrorCallback {
// Make this static so the callback will always have an object
commit 1a666b2c5cd1e942d8f568c041ac2f678421050b
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Aug 13 12:20:05 2010 +0200
Removed needless null check.
diff --git a/modules/plugins/script/src/main/java/org/rhq/plugins/script/ScriptServerComponent.java b/modules/plugins/script/src/main/java/org/rhq/plugins/script/ScriptServerComponent.java
index 475195a..38f1b02 100644
--- a/modules/plugins/script/src/main/java/org/rhq/plugins/script/ScriptServerComponent.java
+++ b/modules/plugins/script/src/main/java/org/rhq/plugins/script/ScriptServerComponent.java
@@ -336,12 +336,8 @@ public class ScriptServerComponent implements ResourceComponent, MeasurementFace
ProcessExecutionResults results = executeExecutable(sysInfo, pluginConfig, args, wait, captureOutput);
if (log.isDebugEnabled()) {
- if (results != null) {
- logDebug("CLI results: exitcode=[" + results.getExitCode() + "]; error=[" + results.getError()
- + "]; output=" + truncateString(results.getCapturedOutput()));
- } else {
- logDebug("CLI has null results");
- }
+ logDebug("CLI results: exitcode=[" + results.getExitCode() + "]; error=[" + results.getError()
+ + "]; output=" + truncateString(results.getCapturedOutput()));
}
return results;
commit b9f07c09436a548434acfd6855662d54d33bf866
Merge: c8fb8b3 910702a
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu Aug 12 15:30:40 2010 +0200
Merge branch 'master' into code-smell
commit c8fb8b3652d6b32e880b52913dd2280ab157eb57
Merge: 2638f27 f1365e5
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu Aug 12 15:18:05 2010 +0200
Merge branch 'code-smell' of ssh://git.fedorahosted.org/git/rhq/rhq into code-smell
commit f1365e541a2ba19357abfa063333dc9901f6d786
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Aug 12 12:24:08 2010 +0200
12644 prevent NPE
diff --git a/modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/PerfTestDiscoveryComponent.java b/modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/PerfTestDiscoveryComponent.java
index 6830f5f..16d6c89 100644
--- a/modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/PerfTestDiscoveryComponent.java
+++ b/modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/PerfTestDiscoveryComponent.java
@@ -18,6 +18,7 @@
*/
package org.rhq.plugins.perftest;
+import java.util.Collections;
import java.util.Set;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.resource.ResourceType;
@@ -44,6 +45,9 @@ public class PerfTestDiscoveryComponent implements ResourceDiscoveryComponent {
Set<DiscoveredResourceDetails> resourceDetails = null;
if (manager.isEnabled()) {
ResourceFactory resourceFactory = manager.getResourceFactory(resourceType.getName());
+ if (resourceFactory==null)
+ return Collections.emptySet();
+
resourceDetails = resourceFactory.discoverResources(context);
// If there is a plugin configuration factory defined, run it on each resource
diff --git a/modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/ScenarioManager.java b/modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/ScenarioManager.java
index d9aabf9..1eb831d 100644
--- a/modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/ScenarioManager.java
+++ b/modules/plugins/perftest/src/main/java/org/rhq/plugins/perftest/ScenarioManager.java
@@ -310,6 +310,7 @@ public class ScenarioManager {
return new SimpleResourceFactory((SimpleResourceGenerator) generator);
}
+ log.warn("No factory for generator " + generator.toString() + " specified");
return null;
}
commit 391f9be4637842049cc01e90d7bce1b4ce54e86f
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Aug 12 12:02:58 2010 +0200
Fix some potential NPE and resource leakage
diff --git a/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/PluginGen.java b/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/PluginGen.java
index 69587d0..17a6818 100644
--- a/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/PluginGen.java
+++ b/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/PluginGen.java
@@ -61,37 +61,49 @@ public class PluginGen {
public void run() throws Exception {
+ Props props = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
+ try {
- Props props = askQuestions(br, new Props());
- if (props == null) {
- // abort by user
- return;
- }
+ props = askQuestions(br, new Props());
+ if (props == null) {
+ // abort by user
+ return;
+ }
+
+ boolean done = false;
+ do {
- boolean done = false;
- do {
-
- System.out.println();
- System.out.print("Do you want to add a child to " + props.getName() + "? (y/N) ");
- String answer = br.readLine();
- answer = answer.toLowerCase(Locale.getDefault());
- if (answer.startsWith("n") || answer.length() == 0)
- done = true;
- else {
- Props child = askQuestions(br, props);
- if (child == null) {
- // abort by user
- return;
+ System.out.println();
+ System.out.print("Do you want to add a child to " + props.getName() + "? (y/N) ");
+ String answer = br.readLine();
+ if (answer==null) {
+ break;
+ }
+ answer = answer.toLowerCase(Locale.getDefault());
+ if (answer.startsWith("n") || answer.length() == 0)
+ done = true;
+ else {
+ Props child = askQuestions(br, props);
+ if (child == null) {
+ // abort by user
+ return;
+ }
+ props.getChildren().add(child);
}
- props.getChildren().add(child);
- }
- } while (!done);
+ } while (!done);
+ } catch (IOException ioe) {
+ System.err.println("Internal error happended: " + ioe.getMessage());
+ } finally {
+ br.close();
+ }
- log.info("\nYou have choosen:\n" + props.toString());
- postprocess(props);
- generate(props);
+ if (props!=null) {
+ log.info("\nYou have chosen:\n" + props.toString());
+ postprocess(props);
+ generate(props);
+ }
System.out.println("Don't forget to ");
System.out.println(" - add your plugin to the parent pom.xml if needed");
@@ -345,11 +357,15 @@ public class PluginGen {
Template templ = config.getTemplate(template + ".ftl");
Writer out = new BufferedWriter(new FileWriter(new File(directory, fileName)));
- Map<String, Props> root = new HashMap<String, Props>();
- root.put("props", props);
- templ.process(root, out);
- out.flush();
- out.close();
+ try {
+ Map<String, Props> root = new HashMap<String, Props>();
+ root.put("props", props);
+ templ.process(root, out);
+ }
+ finally {
+ out.flush();
+ out.close();
+ }
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (TemplateException te) {
diff --git a/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/Props.java b/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/Props.java
index a657f42..4034184 100644
--- a/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/Props.java
+++ b/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/Props.java
@@ -87,9 +87,9 @@ public class Props {
private Set<Template> templates = new HashSet<Template>();
- private Set<MetricProps> metrics = new LinkedHashSet<MetricProps>();;
+ private Set<MetricProps> metrics = new LinkedHashSet<MetricProps>();
- private Set<OperationProps> operations = new LinkedHashSet<OperationProps>();;
+ private Set<OperationProps> operations = new LinkedHashSet<OperationProps>();
private String pluginName;
private String pluginDescription;
diff --git a/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/ResourceCategory.java b/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/ResourceCategory.java
index 566af60..911ed41 100644
--- a/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/ResourceCategory.java
+++ b/modules/helpers/pluginGen/src/main/java/org/rhq/helpers/pluginGen/ResourceCategory.java
@@ -77,7 +77,7 @@ public enum ResourceCategory {
public static ResourceCategory getByAbbrv(char abbrev) {
EnumSet<ResourceCategory> set = EnumSet.allOf(ResourceCategory.class);
for (ResourceCategory cat : set) {
- if (cat.getAbbrev()==abbrev)
+ if (cat.abbrevLetter ==abbrev)
return cat;
}
return null;
commit 2638f279d22aebb3e5ebcad5f7bd17c3d873b33b
Merge: aef5cf2 a13c17d
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Aug 11 15:02:32 2010 +0200
Merge branch 'master' into code-smell
commit aef5cf286fc08b16273a54022ecb0f48f19d9b44
Merge: ac90dbd a5187a8
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 18:11:10 2010 +0200
Merge branch 'master' into code-smell
commit ac90dbd66d849db6dc7d4d82e595cf44cf58b5c0
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 18:02:45 2010 +0200
Trivial - code formatting.
diff --git a/modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java b/modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java
index 1821eed..b805ea9 100644
--- a/modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java
+++ b/modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java
@@ -37,27 +37,29 @@ import org.rhq.plugins.augeas.AugeasConfigurationDiscoveryComponent;
public class SambaServerDiscoveryComponent extends AugeasConfigurationDiscoveryComponent {
- private static final Pattern netBiosNamePattern = Pattern.compile("[\\s]*netbios[\\s]*name[\\s]*=[\\s]*(.*)[\\s]*");
-
- public Set discoverResources(ResourceDiscoveryContext resourceDiscoveryContext) throws InvalidPluginConfigurationException, Exception {
+ private static final Pattern NET_BIOS_NAME_PATTERN = Pattern
+ .compile("[\\s]*netbios[\\s]*name[\\s]*=[\\s]*(.*)[\\s]*");
+
+ public Set discoverResources(ResourceDiscoveryContext resourceDiscoveryContext)
+ throws InvalidPluginConfigurationException, Exception {
Set<DiscoveredResourceDetails> resources = super.discoverResources(resourceDiscoveryContext);
- for (DiscoveredResourceDetails detail : resources){
+ for (DiscoveredResourceDetails detail : resources) {
Configuration config = detail.getPluginConfiguration();
PropertySimple property = (PropertySimple) config.get(AugeasConfigurationComponent.INCLUDE_GLOBS_PROP);
String configFilePath = property.getStringValue();
String resourceName;
-
+
try {
- resourceName = findNetBiosName(configFilePath);
- }catch(Exception e){
- resourceName = resourceDiscoveryContext.getSystemInformation().getHostname();
+ resourceName = findNetBiosName(configFilePath);
+ } catch (Exception e) {
+ resourceName = resourceDiscoveryContext.getSystemInformation().getHostname();
}
detail.setResourceName(resourceName);
}
return resources;
}
-
- private String findNetBiosName(String includeFile) throws Exception{
+
+ private String findNetBiosName(String includeFile) throws Exception {
try {
File file = new File(includeFile);
if (file.exists()) {
@@ -66,21 +68,20 @@ public class SambaServerDiscoveryComponent extends AugeasConfigurationDiscoveryC
try {
String strLine;
while ((strLine = br.readLine()) != null) {
- Matcher m = netBiosNamePattern.matcher(strLine);
+ Matcher m = NET_BIOS_NAME_PATTERN.matcher(strLine);
if (m.matches()) {
String glob = m.group(1);
-
- return glob;
- }
+
+ return glob;
+ }
}
} finally {
StreamUtil.safeClose(br);
}
}
- }
- catch (Exception e) {
- throw new Exception("NetBios name was not found in configuration file "+ includeFile + " cause:",e);
+ } catch (Exception e) {
+ throw new Exception("NetBios name was not found in configuration file " + includeFile + " cause:", e);
}
- throw new Exception("NetBios name was not found in configuration file "+ includeFile);
+ throw new Exception("NetBios name was not found in configuration file " + includeFile);
}
}
commit 892927807a251621668c91bbf18e07e05c8037bd
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 18:00:39 2010 +0200
Close the stream.
diff --git a/modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java b/modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java
index b53c006..1821eed 100644
--- a/modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java
+++ b/modules/plugins/samba/src/main/java/org/rhq/plugins/samba/SambaServerDiscoveryComponent.java
@@ -31,6 +31,7 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.core.util.stream.StreamUtil;
import org.rhq.plugins.augeas.AugeasConfigurationComponent;
import org.rhq.plugins.augeas.AugeasConfigurationDiscoveryComponent;
@@ -62,16 +63,19 @@ public class SambaServerDiscoveryComponent extends AugeasConfigurationDiscoveryC
if (file.exists()) {
FileInputStream fstream = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
- String strLine;
- while ((strLine = br.readLine()) != null) {
- Matcher m = netBiosNamePattern.matcher(strLine);
- if (m.matches()) {
- String glob = m.group(1);
-
- return glob;
- }
+ try {
+ String strLine;
+ while ((strLine = br.readLine()) != null) {
+ Matcher m = netBiosNamePattern.matcher(strLine);
+ if (m.matches()) {
+ String glob = m.group(1);
+
+ return glob;
+ }
+ }
+ } finally {
+ StreamUtil.safeClose(br);
}
- br.close();
}
}
catch (Exception e) {
commit e6e41cf77ad3cd48cb50abb74b56952c289fa49c
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 17:57:09 2010 +0200
Unnecessarily getting a value twice.
diff --git a/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresUserComponent.java b/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresUserComponent.java
index af3280a..6312c4d 100644
--- a/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresUserComponent.java
+++ b/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresUserComponent.java
@@ -151,7 +151,8 @@ public class PostgresUserComponent implements DatabaseComponent<PostgresServerCo
+ " ";
if (type != UpdateType.DROP) {
- if (config.getSimpleValue("password",null) != null && config.getSimpleValue("password",null).length() != 0) {
+ String password = config.getSimpleValue("password",null);
+ if (password != null && password.length() != 0) {
sql += " WITH PASSWORD '" + config.getSimpleValue("password",null) + "' ";
}
commit 75e16e1459f6e2d7f1725189be63f2439a91ec3a
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 17:56:14 2010 +0200
Make sure to close the JDBC connection.
diff --git a/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresDiscoveryComponent.java b/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresDiscoveryComponent.java
index b02d764..b03327d 100644
--- a/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresDiscoveryComponent.java
+++ b/modules/plugins/postgres/src/main/java/org/rhq/plugins/postgres/PostgresDiscoveryComponent.java
@@ -298,7 +298,12 @@ public class PostgresDiscoveryComponent implements ResourceDiscoveryComponent, M
}
public static List<String> getDatabases(Configuration pluginConfiguration) {
- return getDatabaseNames(pluginConfiguration, getConnection(pluginConfiguration));
+ Connection conn = getConnection(pluginConfiguration);
+ try {
+ return getDatabaseNames(pluginConfiguration, conn);
+ } finally {
+ JDBCUtil.safeClose(conn);
+ }
}
private static List<String> getDatabaseNames(Configuration config, Connection conn) {
commit dfa063dcb426f7ba05cfd3923c603b9d33e4dbf4
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 17:46:45 2010 +0200
Trivial - code formatting.
diff --git a/modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java b/modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java
index 49172bd..91490c0 100644
--- a/modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java
+++ b/modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java
@@ -37,27 +37,28 @@ import java.util.regex.Pattern;
public class PostfixServerDiscoveryComponent extends AugeasConfigurationDiscoveryComponent {
- private static final Pattern hostNamePattern = Pattern.compile("[\\s]*myhostname[\\s]*=[\\s]*([^$].*)[\\s]*");
-
- public Set discoverResources(ResourceDiscoveryContext resourceDiscoveryContext) throws InvalidPluginConfigurationException, Exception {
+ private static final Pattern HOSTNAME_PATTERN = Pattern.compile("[\\s]*myhostname[\\s]*=[\\s]*([^$].*)[\\s]*");
+
+ public Set discoverResources(ResourceDiscoveryContext resourceDiscoveryContext)
+ throws InvalidPluginConfigurationException, Exception {
Set<DiscoveredResourceDetails> resources = super.discoverResources(resourceDiscoveryContext);
- for (DiscoveredResourceDetails detail : resources){
+ for (DiscoveredResourceDetails detail : resources) {
Configuration config = detail.getPluginConfiguration();
PropertySimple property = (PropertySimple) config.get(AugeasConfigurationComponent.INCLUDE_GLOBS_PROP);
String configFilePath = property.getStringValue();
String resourceName;
-
+
try {
- resourceName = findHostName(configFilePath);
- }catch(Exception e){
- resourceName = resourceDiscoveryContext.getSystemInformation().getHostname();
+ resourceName = findHostName(configFilePath);
+ } catch (Exception e) {
+ resourceName = resourceDiscoveryContext.getSystemInformation().getHostname();
}
detail.setResourceName(resourceName);
}
return resources;
}
-
- private String findHostName(String includeFile) throws Exception{
+
+ private String findHostName(String includeFile) throws Exception {
try {
File file = new File(includeFile);
if (file.exists()) {
@@ -66,21 +67,20 @@ public class PostfixServerDiscoveryComponent extends AugeasConfigurationDiscover
try {
String strLine;
while ((strLine = br.readLine()) != null) {
- Matcher m = hostNamePattern.matcher(strLine);
+ Matcher m = HOSTNAME_PATTERN.matcher(strLine);
if (m.matches()) {
String glob = m.group(1);
-
- return glob;
- }
+
+ return glob;
+ }
}
} finally {
StreamUtil.safeClose(br);
}
}
- }
- catch (Exception e) {
- throw new Exception("NetBios name was not found in configuration file "+ includeFile + " cause:",e);
+ } catch (Exception e) {
+ throw new Exception("NetBios name was not found in configuration file " + includeFile + " cause:", e);
}
- throw new Exception("NetBios name was not found in configuration file "+ includeFile);
+ throw new Exception("NetBios name was not found in configuration file " + includeFile);
}
}
commit e13bce0c0d7a0d84a6afbfc5c7c04586f306329a
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 17:37:40 2010 +0200
Close the stream.
diff --git a/modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java b/modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java
index 8f26ee0..49172bd 100644
--- a/modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java
+++ b/modules/plugins/postfix/src/main/java/org/rhq/plugins/postfix/PostfixServerDiscoveryComponent.java
@@ -23,6 +23,7 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.core.util.stream.StreamUtil;
import org.rhq.plugins.augeas.AugeasConfigurationComponent;
import org.rhq.plugins.augeas.AugeasConfigurationDiscoveryComponent;
@@ -62,16 +63,19 @@ public class PostfixServerDiscoveryComponent extends AugeasConfigurationDiscover
if (file.exists()) {
FileInputStream fstream = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
- String strLine;
- while ((strLine = br.readLine()) != null) {
- Matcher m = hostNamePattern.matcher(strLine);
- if (m.matches()) {
- String glob = m.group(1);
-
- return glob;
- }
+ try {
+ String strLine;
+ while ((strLine = br.readLine()) != null) {
+ Matcher m = hostNamePattern.matcher(strLine);
+ if (m.matches()) {
+ String glob = m.group(1);
+
+ return glob;
+ }
+ }
+ } finally {
+ StreamUtil.safeClose(br);
}
- br.close();
}
}
catch (Exception e) {
commit 86b070e80ddf96df954e976613464d7af120a977
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 16:42:19 2010 +0200
Make sure to not fail when close() method of a stream throws an exception.
diff --git a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java
index 08303c8..6bee4b2 100644
--- a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java
+++ b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java
@@ -26,6 +26,7 @@ import java.io.FileInputStream;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import org.jbpm.graph.exe.ExecutionContext;
+import org.rhq.core.util.stream.StreamUtil;
/**
* @author Jason Dobies
@@ -115,9 +116,7 @@ public class CompareDigestActionHandler extends BaseHandler {
while (in.read(buffer) != -1) {
}
} finally {
- if (in != null) {
- in.close();
- }
+ StreamUtil.safeClose(in);
}
String digest = HandlerUtils.encode(messageDigest.digest());
commit 41a3463a600a4014ed650d96c9fbd604dd4e8ba5
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 16:38:49 2010 +0200
Adding a utility method for safely closing streams.
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/stream/StreamUtil.java b/modules/core/util/src/main/java/org/rhq/core/util/stream/StreamUtil.java
index e970b83..e84d7d4 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/stream/StreamUtil.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/stream/StreamUtil.java
@@ -25,6 +25,7 @@ package org.rhq.core.util.stream;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
@@ -245,4 +246,19 @@ public class StreamUtil {
return retObject;
}
+
+ /**
+ * Can be used to safely close a stream. No-op if the stream is null.
+ *
+ * @param stream the stream to close or null
+ */
+ public static void safeClose(Closeable stream) {
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ LOG.error("Failed to close a stream.", e);
+ }
+ }
+ }
}
\ No newline at end of file
commit fe93c191577091c0f45b11e80d5aba28084f7fb5
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 16:27:43 2010 +0200
Added missing import (how come I missed this?)
diff --git a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java
index 7f6dbae..a3f1963 100644
--- a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java
+++ b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java
@@ -22,6 +22,7 @@
*/
package com.jboss.jbossnetwork.product.jbpm.handlers;
+import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
commit 0597c8e2ddafd88f7c0c9d2c25f81f1f461739f4
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 15:34:10 2010 +0200
Close the connections in the test code and in the discovery.
diff --git a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
index e3da0aa..f89344a 100644
--- a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
+++ b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlComponent.java
@@ -28,6 +28,7 @@ import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
import org.rhq.core.pluginapi.inventory.ResourceComponent;
import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.plugins.database.DatabaseComponent;
import java.sql.Connection;
@@ -116,10 +117,11 @@ public class MySqlComponent implements DatabaseComponent, ResourceComponent, Mea
public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+ Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
- Connection conn =
+ conn =
DriverManager.getConnection("jdbc:mysql://192.168.1.5?user=rhqadmin&password=rhqadmin");
DatabaseMetaData dmd = conn.getMetaData();
@@ -149,6 +151,8 @@ public class MySqlComponent implements DatabaseComponent, ResourceComponent, Mea
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
+ } finally {
+ JDBCUtil.safeClose(conn);
}
}
}
diff --git a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
index f50fbc0..ba0ea81 100644
--- a/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
+++ b/modules/plugins/mysql/src/main/java/org/rhq/plugins/mysql/MySqlDiscoveryComponent.java
@@ -28,6 +28,7 @@ import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
import org.rhq.core.pluginapi.inventory.ManualAddFacet;
import org.rhq.core.system.ProcessInfo;
+import org.rhq.core.util.jdbc.JDBCUtil;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -99,12 +100,15 @@ public class MySqlDiscoveryComponent implements ResourceDiscoveryComponent, Manu
protected static String getVersion(Configuration config) {
String version = null;
+ Connection conn = null;
try {
- Connection conn = buildConnection(config);
+ conn = buildConnection(config);
version = conn.getMetaData().getDatabaseProductVersion();
} catch (SQLException e) {
// TODO GH: How to put this back to the server while inventorying this resource in an unconfigured state
log.info("Exception detecting mysql instance version", e);
+ } finally {
+ JDBCUtil.safeClose(conn);
}
return version;
}
commit 20460165a99b1f2e92cc6033e7fb3dc158984ef4
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 15:27:11 2010 +0200
Close the connection when done with it during the discovery.
diff --git a/modules/plugins/oracle/src/main/java/org/rhq/plugins/oracle/OracleDiscoveryComponent.java b/modules/plugins/oracle/src/main/java/org/rhq/plugins/oracle/OracleDiscoveryComponent.java
index 2340f0b..79d67fd 100644
--- a/modules/plugins/oracle/src/main/java/org/rhq/plugins/oracle/OracleDiscoveryComponent.java
+++ b/modules/plugins/oracle/src/main/java/org/rhq/plugins/oracle/OracleDiscoveryComponent.java
@@ -35,6 +35,7 @@ import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
import org.rhq.core.pluginapi.inventory.ManualAddFacet;
import org.rhq.core.system.ProcessInfo;
+import org.rhq.core.util.jdbc.JDBCUtil;
/**
@@ -75,8 +76,10 @@ public class OracleDiscoveryComponent implements ResourceDiscoveryComponent, Man
public DiscoveredResourceDetails discoverResource(Configuration pluginConfig,
ResourceDiscoveryContext resourceDiscoveryContext)
throws InvalidPluginConfigurationException {
+
+ Connection connection = null;
try {
- Connection connection = OracleServerComponent.buildConnection(pluginConfig);
+ connection = OracleServerComponent.buildConnection(pluginConfig);
DatabaseMetaData dbmd = connection.getMetaData();
String version = dbmd.getDatabaseMajorVersion() + "." + dbmd.getDatabaseMinorVersion();
DiscoveredResourceDetails details = createResourceDetails(resourceDiscoveryContext, pluginConfig,
@@ -85,6 +88,8 @@ public class OracleDiscoveryComponent implements ResourceDiscoveryComponent, Man
} catch (Exception e) {
log.warn("Could not connect to oracle with supplied configuration", e);
throw new InvalidPluginConfigurationException("Unable to connect to Oracle",e);
+ } finally {
+ JDBCUtil.safeClose(connection);
}
}
commit cb19eacae48d2e2c0d47b761191dd11ef103c2cd
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 14:52:23 2010 +0200
Removing unused obsolete testing code.
diff --git a/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISServerDiscoveryComponent.java b/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISServerDiscoveryComponent.java
index f4cbceb..4e276a3 100644
--- a/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISServerDiscoveryComponent.java
+++ b/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISServerDiscoveryComponent.java
@@ -83,8 +83,4 @@ public class IISServerDiscoveryComponent implements ResourceDiscoveryComponent {
return Collections.singleton(details);
}
-
- public static void main(String[] args) throws Exception {
- new IISServerDiscoveryComponent().discoverResources(null);
- }
}
diff --git a/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostDiscoveryComponent.java b/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostDiscoveryComponent.java
index a6fc8a1..0cd5cd8 100644
--- a/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostDiscoveryComponent.java
+++ b/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostDiscoveryComponent.java
@@ -93,8 +93,4 @@ public class IISVHostDiscoveryComponent implements ResourceDiscoveryComponent<II
return hostDetails;
}
-
- public static void main(String[] args) throws Exception {
- new IISVHostDiscoveryComponent().discoverResources(null);
- }
}
commit be16929be8cdd15b30d9e2ac98ee6efa2a68cbe0
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 14:51:52 2010 +0200
Preventing NPE in case of invalid plugin configuration.
diff --git a/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostComponent.java b/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostComponent.java
index 692dbb8..9d264b9 100644
--- a/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostComponent.java
+++ b/modules/plugins/iis/src/main/java/org/rhq/plugins/iis/IISVHostComponent.java
@@ -56,6 +56,10 @@ public class IISVHostComponent implements ResourceComponent<IISServerComponent>,
String logFormat = getResponseTimeLogFormat();
ResponseTimeConfiguration responseTimeConfiguration = getResponseTimeConfiguration();
+ if (logFormat == null) {
+ throw new InvalidPluginConfigurationException("The 'responseTimeLogFormat' property must be specified.");
+ }
+
responseTimeDelegate = new IISResponseTimeDelegate(logDirectory, logFormat, responseTimeConfiguration
/*,collectionTZ.equals("true")*/);
}
commit 4ea9b298ddf1e5bf36567265e040c894d074fa92
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 14:05:31 2010 +0200
Avoid an NPE when the component is not properly configured.
diff --git a/modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableComponent.java b/modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableComponent.java
index 0c7a5a5..f8ddcd8 100644
--- a/modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableComponent.java
+++ b/modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableComponent.java
@@ -23,10 +23,14 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.Map;
import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
@@ -40,6 +44,8 @@ import org.rhq.core.util.jdbc.JDBCUtil;
public class CustomTableComponent implements DatabaseComponent<DatabaseComponent>, MeasurementFacet {
private ResourceContext<DatabaseComponent> context;
+ private static final Log log = LogFactory.getLog(CustomTableComponent.class);
+
public void start(ResourceContext<DatabaseComponent> resourceContext) throws InvalidPluginConfigurationException,
Exception {
this.context = resourceContext;
@@ -67,7 +73,15 @@ public class CustomTableComponent implements DatabaseComponent<DatabaseComponent
public void getValues(MeasurementReport report, Set<MeasurementScheduleRequest> metrics) throws Exception {
String query = this.context.getPluginConfiguration().getSimpleValue("metricQuery", null);
-
+
+ if (query == null) {
+ ResourceType type = this.context.getResourceType();
+ String resourceKey = this.context.getResourceKey();
+ log.info("Resource " + resourceKey + " (" + type.getName() + ", plugin " + type.getPlugin()
+ + "): The plugin configuration doesn't specify 'metricQuery' property. Ignoring the measurement request.");
+ return;
+ }
+
query = CustomTableRowDiscoveryComponent.formatMessage(query, this.context.getPluginConfiguration().getSimpleValue("key",null));
Map<String, Double> values = DatabaseQueryUtility.getNumericQueryValues(this, query);
commit 029f0c7abe2743f33460a4be96e1fc1814cce917
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 12:35:22 2010 +0200
Making sure resource name is specified in the plugin config and that null description doesn't blow up the discovery.
diff --git a/modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableRowDiscoveryComponent.java b/modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableRowDiscoveryComponent.java
index aaf2e67..4b40d86 100644
--- a/modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableRowDiscoveryComponent.java
+++ b/modules/plugins/database/src/main/java/org/rhq/plugins/database/CustomTableRowDiscoveryComponent.java
@@ -53,8 +53,12 @@ public class CustomTableRowDiscoveryComponent implements ResourceDiscoveryCompon
String table = config.getSimpleValue("table", null);
String keyColumn = config.getSimpleValue("keyColumn", null);
String resourceName = config.getSimpleValue("name", null);
- String resourceDescription = config.getSimpleValue("description", null);
+ String resourceDescription = config.getSimpleValue("description", "");
+ if (resourceName == null) {
+ throw new InvalidPluginConfigurationException("The 'name' connection property has to be specified.");
+ }
+
statement = conn.createStatement();
resultSet = statement.executeQuery("SELECT * FROM " + table);
commit cc86e651f9c850356dbfa82a42ee821948440ab8
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 11:54:25 2010 +0200
Make sure to close the stream.
diff --git a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java
index 1f6d9c5..08303c8 100644
--- a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java
+++ b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/CompareDigestActionHandler.java
@@ -107,12 +107,19 @@ public class CompareDigestActionHandler extends BaseHandler {
private String calculateDigest() throws Exception {
MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
- DigestInputStream in = new DigestInputStream(new FileInputStream(fileToBeCheckedLocation), messageDigest);
-
- byte[] buffer = new byte[4096];
- while (in.read(buffer) != -1) {
+ DigestInputStream in = null;
+
+ try {
+ in = new DigestInputStream(new FileInputStream(fileToBeCheckedLocation), messageDigest);
+ byte[] buffer = new byte[4096];
+ while (in.read(buffer) != -1) {
+ }
+ } finally {
+ if (in != null) {
+ in.close();
+ }
}
-
+
String digest = HandlerUtils.encode(messageDigest.digest());
return digest;
}
commit 8a9fd618e4f6a47a97da77a23e30437093861610
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 11:40:31 2010 +0200
Fix possible null dereference.
diff --git a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java
index 48a2674..7f6dbae 100644
--- a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java
+++ b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/SetProcessStatusActionHandler.java
@@ -37,7 +37,10 @@ public class SetProcessStatusActionHandler implements ActionHandler {
private Boolean status;
public void execute(ExecutionContext executionContext) {
- executionContext.getContextInstance().setVariable("processStatus", status);
+ ContextInstance instance = executionContext.getContextInstance();
+ if (instance != null) {
+ instance.setVariable("processStatus", status);
+ }
}
public Boolean getStatus() {
commit bff8c9db80f86d9696f8ddc57756ee9782d2a8e2
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Aug 10 11:09:49 2010 +0200
Fixing possible null parent path dereference.
diff --git a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/BackupAndReplaceFileActionHandler.java b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/BackupAndReplaceFileActionHandler.java
index 00d6a65..da5b5b2 100644
--- a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/BackupAndReplaceFileActionHandler.java
+++ b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/BackupAndReplaceFileActionHandler.java
@@ -155,9 +155,11 @@ public class BackupAndReplaceFileActionHandler extends BaseHandler {
if (!replacementFilename.equalsIgnoreCase(originalFilename)) {
// This file name can't be relative since we need its parent in the next step
HandlerUtils.checkFilenameIsAbsolute(originalFileLocation);
-
- File destinationFile = new File(originalFile.getParentFile().getPath() + File.separator
- + replacementFilename);
+
+ //check that there is a parent
+ File parent = HandlerUtils.checkAndReturnParent(originalFileLocation);
+
+ File destinationFile = new File(parent, replacementFilename);
setDestinationFileLocation(destinationFile.getPath());
// Make sure the newly generated file name isn't going to clash with an existing file
diff --git a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/HandlerUtils.java b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/HandlerUtils.java
index ae5293b..50d802c 100644
--- a/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/HandlerUtils.java
+++ b/modules/common/jboss-as/src/main/java/com/jboss/jbossnetwork/product/jbpm/handlers/HandlerUtils.java
@@ -142,6 +142,15 @@ public class HandlerUtils {
}
}
+ public static File checkAndReturnParent(String filename) throws ActionHandlerException {
+ File parent = getFile(filename).getParentFile();
+ if (parent == null) {
+ throw new ActionHandlerException("Cannot access parent directory of [" + formatPath(filename) + "].");
+ }
+
+ return parent;
+ }
+
private static File getFile(String filename) throws ActionHandlerException {
return new File(filename);
}
12 years, 10 months
[rhq] Branch 'drift' - etc/cli-scripts
by John Sanda
etc/cli-scripts/drift.js | 7 +++++++
1 file changed, 7 insertions(+)
New commits:
commit 6b66f0483fb57be021a02de0ed25729e88ba87f7
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Aug 2 09:48:46 2011 -0400
Add support for specifying optional change set criteria filters
diff --git a/etc/cli-scripts/drift.js b/etc/cli-scripts/drift.js
index ee54191..cddd7de 100644
--- a/etc/cli-scripts/drift.js
+++ b/etc/cli-scripts/drift.js
@@ -12,6 +12,13 @@ function createSnapshot(rid, cname) {
criteria.addFilterResourceId(rid);
criteria.addFilterDriftConfigurationId(config.id);
+ if (arguments.length > 2) {
+ var filters = arguments[2];
+ for (key in filters) {
+ criteria['addFilter' + key[0].toUpperCase() + key.substring(1)](filters[key]);
+ }
+ }
+
return DriftServer.createSnapshot(criteria);
}
12 years, 10 months
[rhq] 11 commits - .classpath modules/integration-tests modules/plugins
by Heiko W. Rupp
.classpath | 9
modules/integration-tests/jboss-as-7-plugin-test/src/test/java/org/rhq/modules/integrationTests/jbossas7plugin/ServerGroupTest.java | 89 +++++
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AS7Mode.java | 64 +++
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java | 131 +++++--
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java | 11
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java | 164 +++++-----
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java | 70 +---
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java | 53 +++
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java | 74 +---
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ServerGroupComponent.java | 5
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java | 6
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Address.java | 15
modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml | 151 +++++++--
modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/PathHandlingTest.java | 27 +
14 files changed, 618 insertions(+), 251 deletions(-)
New commits:
commit cb11e1847161719d751ac36e19e36b288841521d
Merge: d10512a 01c6586
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Aug 2 15:44:39 2011 +0200
Merge branch 'as7plugin'
commit 01c65867047b04863ca399eea4ec680d8476f5c7
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Mon Aug 1 21:26:55 2011 -0400
remove process controller element and use embeddedJMX
diff --git a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
index 3432cb6..c70d01f 100644
--- a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
@@ -517,22 +517,18 @@
</server>
-
- <server name="JBoss AS JVM"
- description="JVM of the standalone JBossAS"
- sourcePlugin="JMX"
- sourceType="JMX Server"
- discovery="org.rhq.plugins.jmx.LocalJMXServerDiscoveryComponent"
- class="org.rhq.plugins.jmx.JMXServerComponent"
- singleton="true"
- >
+ <server name="JBoss AS JVM"
+ description="JVM of the JBossAS"
+ sourcePlugin="JMX"
+ sourceType="JMX Server"
+ discovery="org.rhq.plugins.jmx.EmbeddedJMXServerDiscoveryComponent"
+ class="org.rhq.plugins.jmx.JMXServerComponent"
+ singleton="true">
<runs-inside>
<parent-resource-type name="JBossAS-Managed" plugin="jboss-as-7"/>
<parent-resource-type name="JBossAS7-Standalone" plugin="jboss-as-7"/>
- <parent-resource-type name="ProcessController" plugin="jboss-as-7"/>
</runs-inside>
- </server>
-
+ </server>
<server name="Messaging"
discovery="SubsystemDiscovery"
commit 01c169dcd233cd9fdef4d124df5bf63cef21c828
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Mon Aug 1 16:44:53 2011 -0400
added some cleanup code for long lived http connections. Need to parse stream even on error for better pooling.
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java
index b55fc8a..787db6b 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java
@@ -29,7 +29,9 @@ import java.net.URL;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
@@ -49,6 +51,7 @@ public class ASConnection {
String urlString;
private ObjectMapper mapper;
public static boolean verbose = false; // This is a variable on purpose, so devs can switch it on in the debugger or in the agent
+ private HttpURLConnection conn;
/**
* Construct an ASConnection object. The real "physical" connection is done in
@@ -59,7 +62,7 @@ public class ASConnection {
public ASConnection(String host, int port) {
try {
- url = new URL("http",host,port, MANAGEMENT);
+ url = new URL("http", host, port, MANAGEMENT);
urlString = url.toString();
} catch (MalformedURLException e) {
@@ -87,11 +90,12 @@ public class ASConnection {
public JsonNode executeRaw(Operation operation) {
InputStream inputStream = null;
- BufferedReader br=null;
+ BufferedReader br = null;
+ InputStream es = null;
long t1 = System.currentTimeMillis();
try {
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
OutputStream out = conn.getOutputStream();
@@ -106,50 +110,63 @@ public class ASConnection {
out.close();
int responseCode = conn.getResponseCode();
- if (responseCode ==HttpURLConnection.HTTP_OK) {
+ if (responseCode == HttpURLConnection.HTTP_OK) {
inputStream = conn.getInputStream();
} else {
inputStream = conn.getErrorStream();
}
- if (inputStream!=null) {
+ if (inputStream != null) {
- br = new BufferedReader(new InputStreamReader(
- inputStream));
- String line;
- StringBuilder builder = new StringBuilder();
- while ((line = br.readLine()) != null) {
- builder.append(line);
- }
+ br = new BufferedReader(new InputStreamReader(inputStream));
+ String line;
+ StringBuilder builder = new StringBuilder();
+ while ((line = br.readLine()) != null) {
+ builder.append(line);
+ }
- String outcome;
- JsonNode operationResult=null;
- if (builder !=null) {
- outcome= builder.toString();
- operationResult = mapper.readTree(outcome);
- if (verbose) {
- ObjectMapper om2 = new ObjectMapper();
- om2.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
- String tmp = om2.writeValueAsString(operationResult);
- log.info(tmp);
+ String outcome;
+ JsonNode operationResult = null;
+ if (builder.length() > 0) {
+ outcome = builder.toString();
+ operationResult = mapper.readTree(outcome);
+ if (verbose) {
+ ObjectMapper om2 = new ObjectMapper();
+ om2.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
+ String tmp = om2.writeValueAsString(operationResult);
+ log.info(tmp);
+ }
+ } else {
+ outcome = "- no response from server -";
+ Result noResult = new Result();
+ noResult.setFailureDescription(outcome);
+ noResult.setOutcome("failure");
+ operationResult = mapper.valueToTree(noResult);
}
- }
- else {
- outcome="- no response from server -";
- Result noResult = new Result();
- noResult.setFailureDescription(outcome);
- noResult.setOutcome("failure");
- operationResult = mapper.valueToTree(noResult);
- }
- return operationResult;
- }
- else {
+ return operationResult;
+ } else {
log.error("IS was null and code was " + responseCode);
}
-
} catch (IOException e) {
- log.error("Failed to get data: " + e.getMessage() );
+ log.error("Failed to get data: " + e.getMessage());
+
+ //the following code is in place to help keep-alive http connection re-use to occur.
+ if (conn != null) {//on error conditions it's still necessary to read the response so JDK knows can reuse
+ //the http connections behind the scenes.
+ es = conn.getErrorStream();
+ if (es != null) {
+ BufferedReader dr = new BufferedReader(new InputStreamReader(es));
+ String ignore = null;
+ try {
+ while ((ignore = dr.readLine()) != null) {
+ //already reported error. just empty stream.
+ }
+ es.close();
+ } catch (IOException e1) {
+ }
+ }
+ }
Result failure = new Result();
failure.setFailureDescription(e.getMessage());
@@ -160,16 +177,24 @@ public class ASConnection {
return ret;
} finally {
- if (br!=null)
+ if (br != null) {
try {
br.close();
} catch (IOException e) {
- e.printStackTrace(); // TODO: Customise this generated block
+ e.printStackTrace(); // TODO: Customise this generated block
+ }
+ }
+ if (es != null) {
+ try {
+ es.close();
+ } catch (IOException e) {
+ e.printStackTrace(); // TODO: Customise this generated block
}
+ }
long t2 = System.currentTimeMillis();
PluginStats stats = PluginStats.getInstance();
stats.incrementRequestCount();
- stats.addRequestTime(t2-t1);
+ stats.addRequestTime(t2 - t1);
}
return null;
@@ -183,7 +208,7 @@ public class ASConnection {
* @see #execute(org.rhq.modules.plugins.jbossas7.json.Operation, boolean)
*/
public Result execute(Operation op) {
- return execute(op,false);
+ return execute(op, false);
}
/**
@@ -194,7 +219,7 @@ public class ASConnection {
* @see #execute(org.rhq.modules.plugins.jbossas7.json.Operation, boolean)
*/
public ComplexResult executeComplex(Operation op) {
- return (ComplexResult) execute(op,true);
+ return (ComplexResult) execute(op, true);
}
/**
@@ -204,20 +229,38 @@ public class ASConnection {
* @param isComplex should a complex result be returned?
* @return ComplexResult of the execution
*/
- public Result execute(Operation op, boolean isComplex){
+ public Result execute(Operation op, boolean isComplex) {
JsonNode node = executeRaw(op);
try {
Result res;
if (isComplex)
- res = mapper.readValue(node,ComplexResult.class);
+ res = mapper.readValue(node, ComplexResult.class);
else
- res = mapper.readValue(node,Result.class);
+ res = mapper.readValue(node, Result.class);
return res;
} catch (IOException e) {
- e.printStackTrace(); // TODO: Customise this generated block
+ e.printStackTrace(); // TODO: Customise this generated block
return null;
}
}
+ public void writeValue(OutputStream out, Object value) throws IOException, JsonGenerationException,
+ JsonMappingException {
+ // JsonGenerator jgen = _jsonFactory.createJsonGenerator(out, JsonEncoding.UTF8);
+ // JsonGenerator jgen = mapper.createJsonGenerator(out, JsonEncoding.UTF8);
+ // JsonGenerator jgen = new Js
+ // boolean closed = false;
+ // try {
+ // writeValue(jgen, value);
+ // closed = true;
+ // jgen.close();
+ // } finally {
+ // if (!closed) {
+ // jgen.close();
+ // }
+ // }
+
+ }
+
}
commit 382f93bfed14c3b2fc2956e5ec14b83b8ac8e55b
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Mon Aug 1 16:42:47 2011 -0400
-added integration test src and removed webdav for eclipse classpath.
diff --git a/.classpath b/.classpath
index b8a0ea8..a1e9e14 100644
--- a/.classpath
+++ b/.classpath
@@ -165,7 +165,6 @@
<classpathentry kind="src" path="modules/enterprise/gui/installer-war/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/gui/base-perspective-jar/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/gui/content_http-war/src/main/java"/>
- <classpathentry kind="src" path="modules/enterprise/gui/webdav-war/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/server/client-api/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/remoting/client-api/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/remoting/webservices/src/main/java"/>
@@ -276,5 +275,6 @@
<classpathentry kind="src" path="modules/plugins/mod-cluster/src/test/java"/>
<classpathentry kind="src" path="modules/plugins/jboss-as-7/src/main/java"/>
<classpathentry kind="src" path="modules/plugins/jboss-as-7/src/test/java"/>
+ <classpathentry kind="src" path="modules/integration-tests/jboss-as-7-plugin-test/src/test/java"/>
<classpathentry kind="output" path="eclipse-classes"/>
</classpath>
commit 72eb1f263b479f2f79754daf4a31479c5a5af2b1
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Jul 29 17:25:38 2011 +0200
Add a test for server group creation via createResources.
diff --git a/modules/integration-tests/jboss-as-7-plugin-test/src/test/java/org/rhq/modules/integrationTests/jbossas7plugin/ServerGroupTest.java b/modules/integration-tests/jboss-as-7-plugin-test/src/test/java/org/rhq/modules/integrationTests/jbossas7plugin/ServerGroupTest.java
new file mode 100644
index 0000000..c170211
--- /dev/null
+++ b/modules/integration-tests/jboss-as-7-plugin-test/src/test/java/org/rhq/modules/integrationTests/jbossas7plugin/ServerGroupTest.java
@@ -0,0 +1,89 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-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.modules.integrationTests.jbossas7plugin;
+
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.resource.CreateResourceStatus;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.pluginapi.inventory.CreateResourceReport;
+import org.rhq.modules.plugins.jbossas7.ASConnection;
+import org.rhq.modules.plugins.jbossas7.HostControllerComponent;
+import org.rhq.modules.plugins.jbossas7.json.Remove;
+
+/**
+ * Tests around server groups
+ * @author Heiko W. Rupp
+ */
+@Test
+public class ServerGroupTest extends AbstractIntegrationTest {
+
+ public void createServerGroupViaApi() throws Exception {
+
+ ASConnection connection = getASConnection();
+ HostControllerComponent hcc = new HostControllerComponent();
+ hcc.setConnection(connection);
+
+ Configuration rc = new Configuration();
+ rc.put(new PropertySimple("profile","default"));
+ rc.put(new PropertySimple("socket-binding-group","standard-sockets"));
+ ResourceType rt = new ResourceType();
+
+ String serverGroupName = "_test-sg";
+ try {
+ CreateResourceReport report = new CreateResourceReport(serverGroupName,rt,new Configuration(),rc,null);
+ report = hcc.createResource(report);
+
+ assert report != null;
+ assert report.getStatus()== CreateResourceStatus.SUCCESS : "Create was a failure : " + report.getErrorMessage();
+ } finally {
+ Remove r = new Remove("server-group", serverGroupName);
+ connection.execute(r);
+ }
+
+ }
+
+ public void badCreateServerGroupViaApi() throws Exception {
+
+ ASConnection connection = getASConnection();
+ HostControllerComponent hcc = new HostControllerComponent();
+ hcc.setConnection(connection);
+
+ Configuration rc = new Configuration();
+ rc.put(new PropertySimple("profile","luzibumpf")); // Does not exist op should fail
+ rc.put(new PropertySimple("socket-binding-group","standard-sockets"));
+ ResourceType rt = new ResourceType();
+
+ String serverGroupName = "_test-sg";
+ try {
+ CreateResourceReport report = new CreateResourceReport(serverGroupName,rt,new Configuration(),rc,null);
+ report = hcc.createResource(report);
+
+ assert report != null;
+ assert report.getStatus()== CreateResourceStatus.FAILURE : "Is AS7-1430 solved ? ";
+ assert report.getException()== null;
+ } finally {
+ Remove r = new Remove("server-group", serverGroupName);
+ connection.execute(r);
+ }
+
+ }
+}
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
index d28d078..c35f9fe 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
@@ -106,6 +106,7 @@ public class HostControllerComponent extends BaseServerComponent implements Oper
else {
report.setErrorMessage(res.getFailureDescription());
report.setStatus(CreateResourceStatus.FAILURE);
+ report.setException(res.getThrowable());
}
return report;
}
commit 8588f93e2b0752b38c95b50f8ad94922667ee206
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Jul 29 15:21:29 2011 +0200
Create / delete server groups via the usual means.
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
index 7b20363..d28d078 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
@@ -22,8 +22,12 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.resource.CreateResourceStatus;
+import org.rhq.core.pluginapi.inventory.CreateResourceReport;
import org.rhq.core.pluginapi.operation.OperationFacet;
import org.rhq.core.pluginapi.operation.OperationResult;
+import org.rhq.modules.plugins.jbossas7.json.Address;
import org.rhq.modules.plugins.jbossas7.json.Operation;
import org.rhq.modules.plugins.jbossas7.json.Result;
@@ -61,4 +65,48 @@ public class HostControllerComponent extends BaseServerComponent implements Oper
// Defer other stuff to the base component for now
return super.invokeOperation(name, parameters);
}
+
+
+ @Override
+ public CreateResourceReport createResource(CreateResourceReport report) {
+
+ // TODO check for types of children -- this is server group only at the moment.
+
+ String name = report.getUserSpecifiedResourceName();
+ Address address = new Address(path);
+ address.add("server-group",name);
+ Operation op = new Operation("add",address);
+
+ Configuration rc = report.getResourceConfiguration();
+ String profile = rc.getSimpleValue("profile","");
+ if (profile.isEmpty()) {
+ report.setErrorMessage("No profile given");
+ report.setStatus(CreateResourceStatus.FAILURE);
+ return report;
+ }
+ op.addAdditionalProperty("profile",profile);
+ String socketBindingGroup = rc.getSimpleValue("socket-binding-group","");
+ if (socketBindingGroup.isEmpty()) {
+ report.setErrorMessage("No socket-binding-group given");
+ report.setStatus(CreateResourceStatus.FAILURE);
+ return report;
+ }
+ op.addAdditionalProperty("socket-binding-group",socketBindingGroup);
+ PropertySimple offset = rc.getSimple("socket-binding-port-offset");
+ if (offset!=null && offset.getStringValue()!=null)
+ op.addAdditionalProperty("socket-binding-port-offset",offset);
+ // TODO add jvm info
+
+ Result res = getASConnection().execute(op);
+ if (res.isSuccess()) {
+ report.setResourceKey(address.getPath());
+ report.setResourceName(name);
+ report.setStatus(CreateResourceStatus.SUCCESS);
+ }
+ else {
+ report.setErrorMessage(res.getFailureDescription());
+ report.setStatus(CreateResourceStatus.FAILURE);
+ }
+ return report;
+ }
}
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ServerGroupComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ServerGroupComponent.java
index ad1109b..750743b 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ServerGroupComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ServerGroupComponent.java
@@ -29,6 +29,8 @@ import java.util.Set;
import org.codehaus.jackson.JsonNode;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.content.PackageDetailsKey;
import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.content.transfer.ContentResponseResult;
@@ -37,10 +39,13 @@ import org.rhq.core.domain.content.transfer.DeployPackageStep;
import org.rhq.core.domain.content.transfer.DeployPackagesResponse;
import org.rhq.core.domain.content.transfer.RemovePackagesResponse;
import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.domain.resource.CreateResourceStatus;
import org.rhq.core.pluginapi.content.ContentContext;
import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
import org.rhq.core.pluginapi.inventory.CreateChildResourceFacet;
+import org.rhq.core.pluginapi.inventory.CreateResourceReport;
+import org.rhq.modules.plugins.jbossas7.json.Address;
import org.rhq.modules.plugins.jbossas7.json.CompositeOperation;
import org.rhq.modules.plugins.jbossas7.json.Operation;
import org.rhq.modules.plugins.jbossas7.json.PROPERTY_VALUE;
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Address.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Address.java
index d762485..cb63263 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Address.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Address.java
@@ -53,6 +53,8 @@ public class Address {
public Address(String path) {
this();
+ if (path==null || path.isEmpty())
+ return;
String[] components = path.split(",");
for (String component : components) {
String tmp = component.trim();
@@ -94,4 +96,17 @@ public class Address {
builder.append('}');
return builder.toString();
}
+
+ public String getPath() {
+ StringBuilder builder = new StringBuilder();
+ Iterator<PROPERTY_VALUE> iter = path.iterator();
+ while (iter.hasNext()) {
+ PROPERTY_VALUE val = iter.next();
+ builder.append(val.getKey()).append('=').append(val.getValue());
+ if (iter.hasNext())
+ builder.append(',');
+ }
+ return builder.toString();
+
+ }
}
diff --git a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
index 222300e..3432cb6 100644
--- a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
@@ -50,7 +50,7 @@
xmlns:c="urn:xmlns:rhq-configuration"
>
- <depends plugin="JMX" useClasses="true"/>
+ <depends plugin="JMX" useClasses="true"/>
<!-- TODO I think we should introduce an abstract AS7 plugin that contains some base functionality and then
@@ -137,21 +137,6 @@
</operation>
-->
- <operation name="server-group:add" displayName="Add ServerGroup" description="Add a server group to the Domain.">
- <parameters>
- <c:simple-property name="name" description="Name of Group to add"/>
- <c:simple-property name="profile" description="Profile to add this group to">
- <c:option-source target="resource" expression="type=Profile plugin=jboss-as-7"/>
- </c:simple-property>
- </parameters>
- </operation>
- <operation name="server-group:remove" displayName="Remove ServerGroup" description="Remove a server group from the Domain.">
- <parameters>
- <c:simple-property name="name" description="Name of Group to remove">
- <c:option-source target="resource" expression="type=ServerGroup"/>
- </c:simple-property>
- </parameters>
- </operation>
<operation name="managed-server:add" displayName="Add managed server" description="Add a new managed server">
<parameters>
<c:simple-property name="servername" displayName="Name of the new server" required="true"/>
@@ -245,8 +230,8 @@
description="Server groups on this domain"
discovery="SubsystemDiscovery"
class="ServerGroupComponent"
+ createDeletePolicy="both"
>
- <!-- TODO move operation to createDeletePolicy="create-only" -->
<plugin-configuration>
<c:simple-property name="path" default="server-group" readOnly="true"/>
@@ -260,7 +245,7 @@
</c:simple-property>
<c:simple-property name="socket-binding-port-offset" required="false" defaultValue="0" type="integer"
description="The default offset to be added to the port values given by the socket binding group."/>
- <c:simple-property name="jvm" required="false"/>
+ <c:simple-property name="jvm" required="false"/> <!-- TODO -->
</resource-configuration>
</server>
diff --git a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/PathHandlingTest.java b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/PathHandlingTest.java
index cb10279..100abbd 100644
--- a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/PathHandlingTest.java
+++ b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/PathHandlingTest.java
@@ -22,6 +22,7 @@ import java.util.List;
import org.testng.annotations.Test;
+import org.rhq.modules.plugins.jbossas7.json.Address;
import org.rhq.modules.plugins.jbossas7.json.PROPERTY_VALUE;
/**
@@ -103,4 +104,30 @@ public class PathHandlingTest {
String path2 = bc.addressToPath(list);
assert path.equals(path2);
}
+
+ public void emptyAddress() throws Exception {
+
+ Address a = new Address();
+ assert a.getPath() != null;
+ assert a.getPath().isEmpty();
+ }
+
+ public void emptyAddress2() throws Exception {
+
+ Address a = new Address((String)null);
+ assert a.getPath() != null;
+ assert a.getPath().isEmpty();
+ }
+
+ public void addressPath1() throws Exception {
+ String path = "subsystem=jms,profile=default,queue=foo";
+ Address a = new Address("/"+path);
+ assert a.getPath().equals(path);
+ }
+
+ public void addressPath2() throws Exception {
+ String path = "subsystem=jms,profile=default,queue=foo";
+ Address a = new Address(path);
+ assert a.getPath().equals(path);
+ }
}
commit 9b724fbe429fcd95ffadf460ccdbc176257fff47
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Jul 29 12:51:09 2011 +0200
Support detection of running configuration for host controllers + usage of the configuration on start operation.
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AS7Mode.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AS7Mode.java
new file mode 100644
index 0000000..a98e13c
--- /dev/null
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AS7Mode.java
@@ -0,0 +1,64 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-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.modules.plugins.jbossas7;
+
+/**
+ * Various definitions for the operation modes of AS7 (HOST is strictly no mode, but fits here nicely)
+ * @author Heiko W. Rupp
+ */
+public enum AS7Mode {
+
+ STANDALONE("standalone.xml", "standalone", "--server-config", "bin/standalone.sh","config"),
+ DOMAIN("domain.xml", "domain", "--domain-config", "bin/domain.sh","domainConfig"),
+ HOST("host.xml", "domain", "--host-config", "bin/domain.sh","hostConfig");
+
+ private String defaultXmlFile;
+ private String baseDir;
+ private String configArg;
+ private String startScript;
+ private String configPropertyName;
+
+ private AS7Mode(String defaultXmlFile, String baseDir, String configArg, String startScript, String configPropertyName) {
+ this.defaultXmlFile = defaultXmlFile;
+ this.baseDir = baseDir;
+ this.configArg = configArg;
+ this.startScript = startScript;
+ this.configPropertyName = configPropertyName;
+ }
+
+ public String getDefaultXmlFile() {
+ return defaultXmlFile;
+ }
+
+ public String getBaseDir() {
+ return baseDir;
+ }
+
+ public String getConfigArg() {
+ return configArg;
+ }
+
+ public String getStartScript() {
+ return startScript;
+ }
+
+ public String getConfigPropertyName() {
+ return configPropertyName;
+ }
+}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java
index c089b79..79a4fab 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java
@@ -18,6 +18,7 @@
*/
package org.rhq.modules.plugins.jbossas7;
+import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
@@ -243,14 +244,14 @@ public abstract class AbstractBaseDiscovery<T extends ResourceComponent> impleme
home = getHomeDirFromCommandLine(processInfo.getCommandLine());
StringBuilder builder = new StringBuilder(home);
if (isDomain)
- builder.append("/domain");
+ builder.append(File.separator).append(AS7Mode.DOMAIN.getBaseDir());
else
- builder.append("/standalone");
- builder.append("/configuration");
+ builder.append(File.separator).append(AS7Mode.STANDALONE.getBaseDir());
+ builder.append(File.separator).append("configuration");
if (isDomain)
- builder.append("/host.xml");
+ builder.append(File.separator).append(AS7Mode.HOST.getDefaultXmlFile());
else
- builder.append("/standalone.xml");
+ builder.append(File.separator).append(AS7Mode.STANDALONE.getDefaultXmlFile());
return builder.toString();
}
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
index 7042ac0..1b05ae6 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
@@ -88,23 +88,28 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
readStandaloneOrHostXml(psr.getProcessInfo(), true);
HostPort hp = getDomainControllerFromHostXml();
if (hp.isLocal) {
- serverName = "DomainController";
+ serverName = "DomainController"; // TODO make more unique
serverNameFull = "DomainController";
description = "Domain controller for an AS7 domain";
- } else {
- serverName = "HostController";
+ }
+ else {
+ serverName = "HostController"; // TODO make more unique
serverNameFull = "HostController";
}
String homeDir = getHomeDirFromCommandLine(psr.getProcessInfo().getCommandLine());
config.put(new PropertySimple("baseDir", homeDir));
version = homeDir.substring(homeDir.lastIndexOf("-") + 1);
- config.put(new PropertySimple("startScript", "bin/domain.sh"));
+ config.put(new PropertySimple("startScript", AS7Mode.DOMAIN.getStartScript()));
String host = findHost(psr.getProcessInfo(), true);
config.put(new PropertySimple("domainHost", host));
fillUserPassFromFile(config, "domain", homeDir);
- // TODO provide running config
+ // provide running config
+ String domainConfig = getServerConfigFromCommandLine(commandLine, AS7Mode.DOMAIN);
+ String hostConfig = getServerConfigFromCommandLine(commandLine, AS7Mode.HOST);
+ config.put(new PropertySimple("domainConfig",domainConfig));
+ config.put(new PropertySimple("hostConfig",hostConfig));
} else { // Standalone server
serverNameFull = getHomeDirFromCommandLine(commandLine);
@@ -131,9 +136,9 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
version = serverName.substring(serverName.lastIndexOf("-") + 1);
- String serverConfig = getServerConfigFromCommandLine(commandLine);
- config.put(new PropertySimple("config", serverConfig));
- config.put(new PropertySimple("startScript", "bin/standalone.sh"));
+ String serverConfig = getServerConfigFromCommandLine(commandLine, AS7Mode.STANDALONE);
+ config.put(new PropertySimple("config",serverConfig));
+ config.put(new PropertySimple("startScript",AS7Mode.STANDALONE.getStartScript()));
fillUserPassFromFile(config, "standalone", serverNameFull);
@@ -238,12 +243,19 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
return hostName;
}
- String getServerConfigFromCommandLine(String[] commandLine) {
- for (String line : commandLine) {
- if (line.startsWith(DASH_DASH_SERVER_CONFIG))
- return line.substring(DASH_DASH_SERVER_CONFIG.length());
+ /**
+ * Obtain the running configuration from the command line if it was passed via --(server,domain,host)-config
+ * @param commandLine Command line to look at
+ * @param mode mode and thus command line switch to look for
+ * @return the config or the default for the mode if no config was passed on the command line.
+ */
+ String getServerConfigFromCommandLine(String[] commandLine, AS7Mode mode) {
+ String configArg = mode.getConfigArg();
+ for (String line: commandLine) {
+ if (line.startsWith(configArg))
+ return line.substring(configArg.length()+1);
}
- return "standalone.xml";
+ return mode.getDefaultXmlFile();
}
//-Dorg.jboss.boot.log.file=/devel/jbas7/jboss-as/build/target/jboss-7.0.0.Alpha2/domain/log/server-manager/boot.log
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
index c8703a6..328ec3c 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
@@ -20,6 +20,8 @@ package org.rhq.modules.plugins.jbossas7;
import java.io.File;
import java.net.ConnectException;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -37,7 +39,6 @@ import org.rhq.modules.plugins.jbossas7.json.Result;
*/
public class BaseServerComponent extends BaseComponent {
- private static final String STANDALONE_XML = "standalone.xml";
private static final String SEPARATOR = "\n-----------------------\n";
final Log log = LogFactory.getLog(BaseServerComponent.class);
@@ -50,7 +51,7 @@ public class BaseServerComponent extends BaseComponent {
* @return State of execution
* @throws Exception If anything goes wrong
*/
- protected OperationResult restartServer(Configuration parameters, Mode mode) throws Exception {
+ protected OperationResult restartServer(Configuration parameters, AS7Mode mode) throws Exception {
OperationResult tmp = invokeOperation("shutdown",parameters);
if (tmp.getErrorMessage()!=null) {
@@ -67,23 +68,38 @@ public class BaseServerComponent extends BaseComponent {
* @return State of Execution.
* @param mode
*/
- protected OperationResult startServer(Mode mode) {
+ protected OperationResult startServer(AS7Mode mode) {
OperationResult operationResult = new OperationResult();
- Configuration conf = context.getPluginConfiguration();
- String startScript = conf.getSimpleValue("startScript", mode.getStartScript());
- String baseDir = conf.getSimpleValue("baseDir","");
+ String startScript = pluginConfiguration.getSimpleValue("startScript", mode.getStartScript());
+ String baseDir = pluginConfiguration.getSimpleValue("baseDir","");
if (baseDir.isEmpty()) {
operationResult.setErrorMessage("No base directory provided");
return operationResult;
}
String script = baseDir + File.separator + startScript;
- String config = conf.getSimpleValue("config", mode.getXmlFile());
ProcessExecution processExecution;
processExecution = ProcessExecutionUtility.createProcessExecution(new File(script));
- if (!config.equals(mode.getXmlFile())) {
- processExecution.getArguments().add(mode.getConfigArg());
- processExecution.getArguments().add(config);
+
+ String config = pluginConfiguration.getSimpleValue(mode.getConfigPropertyName(), mode.getDefaultXmlFile());
+ List<String> arguments = processExecution.getArguments();
+ if (arguments==null) {
+ arguments = new ArrayList<String>();
+ processExecution.setArguments(arguments);
+ }
+
+ if (!config.equals(mode.getDefaultXmlFile())) {
+ arguments.add(mode.getConfigArg());
+ arguments.add(config);
+ }
+ if (mode==AS7Mode.DOMAIN) {
+ // We also need to check for host-config
+ config = pluginConfiguration.getSimpleValue(AS7Mode.HOST.getConfigPropertyName(),AS7Mode.HOST.getDefaultXmlFile());
+ if (!config.equals(AS7Mode.HOST.getDefaultXmlFile())) {
+ arguments.add(AS7Mode.HOST.getConfigArg());
+ arguments.add(config);
+
+ }
}
processExecution.setWorkingDirectory(baseDir);
processExecution.setCaptureOutput(true);
@@ -91,7 +107,6 @@ public class BaseServerComponent extends BaseComponent {
processExecution.setKillOnTimeout(false);
- long start = System.currentTimeMillis();
if (log.isDebugEnabled()) {
log.debug("About to execute the following process: [" + processExecution + "]");
}
@@ -148,37 +163,4 @@ public class BaseServerComponent extends BaseComponent {
return operationResult;
}
- enum Mode {
- STANDALONE(STANDALONE_XML,"standalone","--server-config","bin/standalone.sh"),
- DOMAIN("domain.xml","domain", "--domain-config","bin/domain.sh"),
- HOST("host.xml","domain", "--host-config","bin/domain.sh");
-
- private String xmlFile;
- private String baseDir;
- private String configArg;
- private String startScript;
-
- private Mode(String xmlFile, String baseDir, String configArg, String startScript) {
- this.xmlFile = xmlFile;
- this.baseDir = baseDir;
- this.configArg = configArg;
- this.startScript = startScript;
- }
-
- public String getXmlFile() {
- return xmlFile;
- }
-
- public String getBaseDir() {
- return baseDir;
- }
-
- public String getConfigArg() {
- return configArg;
- }
-
- public String getStartScript() {
- return startScript;
- }
- }
}
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
index 73eb0bb..7b20363 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
@@ -40,9 +40,9 @@ public class HostControllerComponent extends BaseServerComponent implements Oper
Configuration parameters) throws InterruptedException, Exception {
if (name.equals("start")) {
- return startServer(Mode.DOMAIN);
+ return startServer(AS7Mode.DOMAIN);
} else if (name.equals("restart")) {
- return restartServer(parameters, Mode.DOMAIN);
+ return restartServer(parameters, AS7Mode.DOMAIN);
} else if (name.equals("shutdown")) {
// This is a bit trickier, as it needs to be executed on the level on /host=xx
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java
index ebddf95..11a0e4d 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java
@@ -18,8 +18,6 @@
*/
package org.rhq.modules.plugins.jbossas7;
-import java.net.ConnectException;
-
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.pluginapi.operation.OperationFacet;
import org.rhq.core.pluginapi.operation.OperationResult;
@@ -38,9 +36,9 @@ public class StandaloneASComponent extends BaseServerComponent implements Operat
Configuration parameters) throws Exception {
if (name.equals("start")) {
- return startServer(Mode.STANDALONE);
+ return startServer(AS7Mode.STANDALONE);
} else if (name.equals("restart")) {
- return restartServer(parameters, Mode.STANDALONE);
+ return restartServer(parameters, AS7Mode.STANDALONE);
}
diff --git a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
index 737ef86..222300e 100644
--- a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
@@ -86,7 +86,8 @@
<c:simple-property name="port" default="9990" type="integer" required="true" description="Port of the domain API"/>
<c:simple-property name="user" type="string" description="Management user for a secured Host controller" required="false"/>
<c:simple-property name="password" type="password" description="Password for the management user" required="false"/>
- <c:simple-property name="config" type="string" default="domain.xml" description="Running configuration" displayName="Configuration"/>
+ <c:simple-property name="domainConfig" type="string" default="domain.xml" description="Running configuration (domain part)" displayName="Configuration"/>
+ <c:simple-property name="hostConfig" type="string" default="host.xml" description="Running configuration (host part)" displayName="Configuration"/>
<c:simple-property name="baseDir" type="file" description="Base directory of the server installation" displayName="Base directory" readOnly="true" required="false"/>
<c:simple-property name="startScript" type="file" default="bin/domain.sh" description="Script used to start the server. If the path is not absolute, it is relative to the base directory"/>
<c:simple-property name="domainHost" type="string" readOnly="true" required="false" description="Host name within the AS7 domain"/>
commit 1e5bcc7f18fa91f3b0923cafd332eda180e6c6f6
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Thu Jul 28 21:18:26 2011 -0400
i)Fixed a couple event log file definition issues for AS7 Managed Servers, HostController and Standalone instances.
ii)enabled Events tab for AS7 Managed Servers, HostController and Standalone
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
index 16b1845..7042ac0 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
@@ -79,7 +79,12 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
String description = discoveryContext.getResourceType().getDescription();
String version = null;
+ //retrieve specific boot log file. Override for Standalone as server.log is more appropriate
+ String bootLogFile = getLogFileFromCommandLine(commandLine);
+ String logFile = bootLogFile;
+
if (psName.equals("HostController")) {
+
readStandaloneOrHostXml(psr.getProcessInfo(), true);
HostPort hp = getDomainControllerFromHostXml();
if (hp.isLocal) {
@@ -132,12 +137,10 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
fillUserPassFromFile(config, "standalone", serverNameFull);
+ //preload server.log file for event log monitoring
+ logFile = bootLogFile.substring(0, bootLogFile.lastIndexOf("/")) + File.separator + "server.log";
}
- // String logFile = getLogFileFromCommandLine(commandLine);
- //monitor the server.log instead of the boot.log
- String bootLogFile = getLogFileFromCommandLine(commandLine);
- String logFile = bootLogFile.substring(0, bootLogFile.lastIndexOf("/")) + File.separator + "server.log";
initLogEventSourcesConfigProp(logFile, config);
HostPort managmentPort = getManagementPortFromHostXml();
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java
index fd1b65d..287cec7 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java
@@ -57,7 +57,6 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext discoveryContext) throws Exception {
Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>();
-
List<ProcessScanResult> scans = discoveryContext.getAutoDiscoveredProcesses();
for (ProcessScanResult psr : scans) {
@@ -74,51 +73,44 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
String hostName = findHostName();
HostPort managementHostPort = getManagementPortFromHostXml();
-
List<ServerInfo> serverNames = getServersFromHostXml();
for (ServerInfo serverInfo : serverNames) {
Configuration config = discoveryContext.getDefaultPluginConfiguration();
- config.put(new PropertySimple("domainHost",hostName));
- config.put(new PropertySimple("group",serverInfo.group));
- config.put(new PropertySimple("port",managementHostPort.port));
- config.put(new PropertySimple("hostname",managementHostPort.host));
- if (serverInfo.bindingGroup!=null) {
- config.put(new PropertySimple("socket-binding-group",serverInfo.bindingGroup));
- config.put(new PropertySimple("socket-binding-port-offset",serverInfo.portOffset));
- }
- else {
+ config.put(new PropertySimple("domainHost", hostName));
+ config.put(new PropertySimple("group", serverInfo.group));
+ config.put(new PropertySimple("port", managementHostPort.port));
+ config.put(new PropertySimple("hostname", managementHostPort.host));
+ if (serverInfo.bindingGroup != null) {
+ config.put(new PropertySimple("socket-binding-group", serverInfo.bindingGroup));
+ config.put(new PropertySimple("socket-binding-port-offset", serverInfo.portOffset));
+ } else {
HostPort dcHP = getDomainControllerFromHostXml();
if (dcHP.port == 9999)
- dcHP.port = 9990; // TODO Hack until JBAS-9306 is solved
+ dcHP.port = 9990; // TODO Hack until JBAS-9306 is solved
ServerInfo dcInfo = getBindingsFromDC(dcHP, serverInfo.group);
config.put(new PropertySimple("socket-binding-group", dcInfo.bindingGroup));
- config.put(new PropertySimple("socket-binding-port-offset",dcInfo.portOffset));
+ config.put(new PropertySimple("socket-binding-port-offset", dcInfo.portOffset));
}
- config.put(new PropertySimple("socket-binding-port-offset",serverInfo.portOffset));
+ config.put(new PropertySimple("socket-binding-port-offset", serverInfo.portOffset));
String path = "host=" + hostName + ",server-config=" + serverInfo.name;
- config.put(new PropertySimple("path",path));
-
-
+ config.put(new PropertySimple("path", path));
// TODO this fails for the downed servers.
// get from the domain or other place as soon as the domain provides it.
String homeDir = getHomeDirFromCommandLine(processInfo.getCommandLine());
initLogFile(scans, serverInfo.name, config, homeDir);
- String version = homeDir.substring(homeDir.lastIndexOf("-")+1);
+ String version = homeDir.substring(homeDir.lastIndexOf("-") + 1);
- DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
- discoveryContext.getResourceType(), // ResourceType
+ DiscoveredResourceDetails detail = new DiscoveredResourceDetails(discoveryContext.getResourceType(), // ResourceType
hostName + "/" + serverInfo.name, // key
- serverInfo.name, // Name
- version, // TODO get from Domain as soon as it is provided
+ serverInfo.name, // Name
+ version, // TODO get from Domain as soon as it is provided
"Managed AS 7 instance", // Description
- config,
- null
- );
+ config, null);
// Add to return values
discoveredResources.add(detail);
@@ -129,9 +121,9 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
}
private ServerInfo getBindingsFromDC(HostPort domainController, String serverGroup) {
- ASConnection dcConnection = new ASConnection(domainController.host,domainController.port);
+ ASConnection dcConnection = new ASConnection(domainController.host, domainController.port);
List<PROPERTY_VALUE> address = new ArrayList<PROPERTY_VALUE>();
- address.add(new PROPERTY_VALUE("server-group",serverGroup));
+ address.add(new PROPERTY_VALUE("server-group", serverGroup));
Operation op = new ReadResource(address);
ComplexResult res = (ComplexResult) dcConnection.execute(op, true);
if (res.isSuccess()) {
@@ -162,10 +154,12 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
String[] commandLine = psr.getProcessInfo().getCommandLine();
- String logFile = basePath + File.separator + getLogFileFromCommandLine(commandLine);
+ //preload server.log file for event log monitoring
+ String bootLogFile = getLogFileFromCommandLine(commandLine);
+ String logFile = bootLogFile.substring(0, bootLogFile.lastIndexOf("/")) + File.separator + "server.log";
if (logFile.contains(name))
- initLogEventSourcesConfigProp(logFile,config);
+ initLogEventSourcesConfigProp(logFile, config);
}
}
@@ -173,17 +167,17 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
Element host = hostXml.getDocumentElement();
NodeList serversElement = host.getElementsByTagName("servers");
- if (serversElement ==null || serversElement.getLength()==0) {
+ if (serversElement == null || serversElement.getLength() == 0) {
log.warn("No <servers> found in host.xml");
return Collections.emptyList();
}
NodeList servers = serversElement.item(0).getChildNodes();
- if (servers==null || servers.getLength()==0) {
+ if (servers == null || servers.getLength() == 0) {
log.warn("No <server> found in host.xml");
return Collections.emptyList();
}
List<ServerInfo> result = new ArrayList<ServerInfo>();
- for (int i = 0 ; i < servers.getLength(); i++) {
+ for (int i = 0; i < servers.getLength(); i++) {
if (!(servers.item(i) instanceof Element))
continue;
@@ -192,14 +186,14 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
info.name = server.getAttribute("name");
info.group = server.getAttribute("group");
String autoStart = server.getAttribute("autoStart");
- if (autoStart==null || autoStart.isEmpty())
+ if (autoStart == null || autoStart.isEmpty())
autoStart = "false";
info.autoStart = Boolean.getBoolean(autoStart);
// Look for <socket-binding-group ref="standard-sockets" port-offset="250"/>
NodeList sbgs = server.getChildNodes();
- if (sbgs!=null) {
- for (int j = 0 ; j < sbgs.getLength(); j++) {
+ if (sbgs != null) {
+ for (int j = 0; j < sbgs.getLength(); j++) {
if (!(sbgs.item(j) instanceof Element))
continue;
@@ -209,7 +203,7 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
info.bindingGroup = sbg.getAttribute("ref");
String portOffset = sbg.getAttribute("port-offset");
- if (portOffset!=null && !portOffset.isEmpty())
+ if (portOffset != null && !portOffset.isEmpty())
info.portOffset = Integer.parseInt(portOffset);
}
@@ -220,13 +214,12 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
return result;
}
-
private void initLogEventSourcesConfigProp(String fileName, Configuration pluginConfiguration) {
PropertyList logEventSources = pluginConfiguration
.getList(LogFileEventResourceComponentHelper.LOG_EVENT_SOURCES_CONFIG_PROP);
- if (logEventSources==null)
+ if (logEventSources == null)
return;
File serverLogFile = new File(fileName);
@@ -250,10 +243,7 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
@Override
public String toString() {
- return "ServerInfo{" +
- "name='" + name + '\'' +
- ", group='" + group + '\'' +
- '}';
+ return "ServerInfo{" + "name='" + name + '\'' + ", group='" + group + '\'' + '}';
}
}
diff --git a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
index 20395e0..737ef86 100644
--- a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
@@ -50,7 +50,7 @@
xmlns:c="urn:xmlns:rhq-configuration"
>
-<!-- <depends plugin="JMX" useClasses="true"/> -->
+ <depends plugin="JMX" useClasses="true"/>
<!-- TODO I think we should introduce an abstract AS7 plugin that contains some base functionality and then
@@ -92,6 +92,40 @@
<c:simple-property name="domainHost" type="string" readOnly="true" required="false" description="Host name within the AS7 domain"/>
&logSources;
+ <c:group name="event" displayName="Events">
+ <c:list-property name="logEventSources">
+ <c:map-property name="logEventSource">
+ <c:simple-property name="logFilePath" type="file" summary="true"
+ description="The absolute path to the source log file."/>
+ <c:simple-property name="enabled" type="boolean" summary="true"
+ description="A flag indicating whether of not this log Event source is currently
+ enabled (i.e. whether the associated log file should be tailed for
+ new entries)."/>
+ <c:simple-property name="dateFormat" required="false"
+ description="The date format to use when parsing the dates in log entries. The
+ format must be in the syntax defined by the Java SimpleDateFormat
+ class. If not specified, the three date formats that are predefined
+ by Log4J (ISO8601, DATE, and ABSOLUTE) will be tried."/>
+ <c:simple-property name="includesPattern" required="false"
+ description="A regular expression against which a log entry's detail is matched
+ to determine if an Event should be fired for that entry. If not
+ specified, no filtering of log entries will be done based on their
+ detail."/>
+ <c:simple-property name="minimumSeverity" required="false" default="error"
+ description="The minimum severity of Events that should be collected for this
+ source. If not specified, there is no minimum severity (i.e. all
+ events will be collected).">
+ <c:property-options>
+ <c:option name="debug" value="debug"/>
+ <c:option name="info" value="info"/>
+ <c:option name="warn" value="warn"/>
+ <c:option name="error" value="error"/>
+ <c:option name="fatal" value="fatal"/>
+ </c:property-options>
+ </c:simple-property>
+ </c:map-property>
+ </c:list-property>
+ </c:group>
</plugin-configuration>
<process-scan name="HostController" query="process|basename|match=^java.*,arg|org.jboss.as.host-controller|match=.*"/>
@@ -172,6 +206,7 @@
displayType="summary" measurementType="dynamic" description="Max time for a request since last metric get" units="milliseconds"
displayName="Maximum request time"/>
+ <event name="logEntry" description="an entry in a log file"/>
<resource-configuration>
<c:group name="attribute:schema-locations" displayName="Schema locations">
@@ -319,6 +354,41 @@
</c:map-property>
</c:list-property>
&logSources;
+
+ <c:group name="event" displayName="Events">
+ <c:list-property name="logEventSources">
+ <c:map-property name="logEventSource">
+ <c:simple-property name="logFilePath" type="file" summary="true"
+ description="The absolute path to the source log file."/>
+ <c:simple-property name="enabled" type="boolean" summary="true"
+ description="A flag indicating whether of not this log Event source is currently
+ enabled (i.e. whether the associated log file should be tailed for
+ new entries)."/>
+ <c:simple-property name="dateFormat" required="false"
+ description="The date format to use when parsing the dates in log entries. The
+ format must be in the syntax defined by the Java SimpleDateFormat
+ class. If not specified, the three date formats that are predefined
+ by Log4J (ISO8601, DATE, and ABSOLUTE) will be tried."/>
+ <c:simple-property name="includesPattern" required="false"
+ description="A regular expression against which a log entry's detail is matched
+ to determine if an Event should be fired for that entry. If not
+ specified, no filtering of log entries will be done based on their
+ detail."/>
+ <c:simple-property name="minimumSeverity" required="false" default="error"
+ description="The minimum severity of Events that should be collected for this
+ source. If not specified, there is no minimum severity (i.e. all
+ events will be collected).">
+ <c:property-options>
+ <c:option name="debug" value="debug"/>
+ <c:option name="info" value="info"/>
+ <c:option name="warn" value="warn"/>
+ <c:option name="error" value="error"/>
+ <c:option name="fatal" value="fatal"/>
+ </c:property-options>
+ </c:simple-property>
+ </c:map-property>
+ </c:list-property>
+ </c:group>
</plugin-configuration>
<process-scan name="StandaloneAS" query="process|basename|match=^java.*,arg|org.jboss.as.standalone|match=.*"/>
@@ -356,6 +426,7 @@
displayType="summary" measurementType="dynamic" description="Max time for a request since last metric get" units="milliseconds"
displayName="Maximum request time"/>
+ <event name="logEntry" description="an entry in a log file"/>
<resource-configuration>
@@ -396,6 +467,40 @@
<c:simple-property name="path" readOnly="true" />
&logSources;
+ <c:group name="event" displayName="Events">
+ <c:list-property name="logEventSources">
+ <c:map-property name="logEventSource">
+ <c:simple-property name="logFilePath" type="file" summary="true"
+ description="The absolute path to the source log file."/>
+ <c:simple-property name="enabled" type="boolean" summary="true"
+ description="A flag indicating whether of not this log Event source is currently
+ enabled (i.e. whether the associated log file should be tailed for
+ new entries)."/>
+ <c:simple-property name="dateFormat" required="false"
+ description="The date format to use when parsing the dates in log entries. The
+ format must be in the syntax defined by the Java SimpleDateFormat
+ class. If not specified, the three date formats that are predefined
+ by Log4J (ISO8601, DATE, and ABSOLUTE) will be tried."/>
+ <c:simple-property name="includesPattern" required="false"
+ description="A regular expression against which a log entry's detail is matched
+ to determine if an Event should be fired for that entry. If not
+ specified, no filtering of log entries will be done based on their
+ detail."/>
+ <c:simple-property name="minimumSeverity" required="false" default="error"
+ description="The minimum severity of Events that should be collected for this
+ source. If not specified, there is no minimum severity (i.e. all
+ events will be collected).">
+ <c:property-options>
+ <c:option name="debug" value="debug"/>
+ <c:option name="info" value="info"/>
+ <c:option name="warn" value="warn"/>
+ <c:option name="error" value="error"/>
+ <c:option name="fatal" value="fatal"/>
+ </c:property-options>
+ </c:simple-property>
+ </c:map-property>
+ </c:list-property>
+ </c:group>
</plugin-configuration>
<!-- Scan for host controller is intentional -->
@@ -421,10 +526,12 @@
<metric property="status" dataType="trait" displayName="Server state" description="Detailed server state"
displayType="summary"/>
+ <event name="logEntry" description="an entry in a log file"/>
+
</server>
-<!--
+
<server name="JBoss AS JVM"
description="JVM of the standalone JBossAS"
sourcePlugin="JMX"
@@ -439,7 +546,7 @@
<parent-resource-type name="ProcessController" plugin="jboss-as-7"/>
</runs-inside>
</server>
--->
+
<server name="Messaging"
discovery="SubsystemDiscovery"
commit 2bc8c7f203b615a1d78b624330506429162de874
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Thu Jul 28 09:21:19 2011 -0400
-removing milton dependencies form eclipse cp.
-modify standalone as7 to monitor server.log instead of boot.log for event sources.
diff --git a/.classpath b/.classpath
index f8941f4..b8a0ea8 100644
--- a/.classpath
+++ b/.classpath
@@ -82,7 +82,6 @@
<classpathentry exported="true" kind="var" path="M2_REPO/org/jboss/seam/jboss-seam-ui/2.1.0.SP1/jboss-seam-ui-2.1.0.SP1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/hibernate/hibernate3/3.2.r14201-2/hibernate3-3.2.r14201-2.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/jline/jline/0.9.94/jline-0.9.94.jar"/>
- <classpathentry exported="true" kind="var" path="M2_REPO/com/ettrema/milton-api/1.4.1/milton-api-1.4.1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/jboss/javassist/3.8.0.GA/javassist-3.8.0.GA.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/net/sf/opencsv/opencsv/1.8/opencsv-1.8.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/bouncycastle/bcpg-jdk15/140/bcpg-jdk15-140.jar"/>
@@ -117,7 +116,7 @@
<classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-orm/3.1/unitils-orm-3.1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-testng/3.1/unitils-testng-3.1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/codehaus/jackson/jackson-core-asl/1.7.4/jackson-core-asl-1.7.4.jar"/>
- <classpathentry exported="true" kind="var" path="M2_REPO/org/codehaus/jackson/jackson-mapper-asl/1.7.4/jackson-mapper-asl-1.7.4.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/codehaus/jackson/jackson-mapper-asl/1.7.4/jackson-mapper-asl-1.7.4.jar"/>
<classpathentry exported="true" kind="lib" path="modules/enterprise/remoting/webservices/target/rhq-remoting-webservices-4.1.0-SNAPSHOT/wsconsume-output"/>
<classpathentry kind="src" path="modules/common/ant-bundle/src/main/java"/>
<classpathentry kind="src" path="modules/common/drift/src/main/java"/>
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
index 471fd42..16b1845 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
@@ -65,7 +65,6 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext discoveryContext) throws Exception {
Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>();
-
List<ProcessScanResult> scans = discoveryContext.getAutoDiscoveredProcesses();
for (ProcessScanResult psr : scans) {
@@ -87,86 +86,84 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
serverName = "DomainController";
serverNameFull = "DomainController";
description = "Domain controller for an AS7 domain";
- }
- else {
+ } else {
serverName = "HostController";
serverNameFull = "HostController";
}
String homeDir = getHomeDirFromCommandLine(psr.getProcessInfo().getCommandLine());
config.put(new PropertySimple("baseDir", homeDir));
- version = homeDir.substring(homeDir.lastIndexOf("-")+1);
- config.put(new PropertySimple("startScript","bin/domain.sh"));
- String host = findHost(psr.getProcessInfo(),true);
- config.put(new PropertySimple("domainHost",host));
+ version = homeDir.substring(homeDir.lastIndexOf("-") + 1);
+ config.put(new PropertySimple("startScript", "bin/domain.sh"));
+ String host = findHost(psr.getProcessInfo(), true);
+ config.put(new PropertySimple("domainHost", host));
- fillUserPassFromFile(config,"domain",homeDir);
+ fillUserPassFromFile(config, "domain", homeDir);
// TODO provide running config
} else { // Standalone server
serverNameFull = getHomeDirFromCommandLine(commandLine);
readStandaloneOrHostXml(psr.getProcessInfo(), false);
- if (serverNameFull==null || serverNameFull.isEmpty()) {
+ if (serverNameFull == null || serverNameFull.isEmpty()) {
// Try to obtain the server name
// -Dorg.jboss.boot.log.file=domain/servers/server-one/log/boot.log
// This is a hack until I know a better way to do so.
String tmp = getLogFileFromCommandLine(commandLine);
int i = tmp.indexOf("servers/");
- tmp = tmp.substring( i + 8);
- tmp = tmp.substring(0,tmp.indexOf("/"));
+ tmp = tmp.substring(i + 8);
+ tmp = tmp.substring(0, tmp.indexOf("/"));
serverNameFull = tmp;
+
}
- String host = findHost(psr.getProcessInfo(),true);
- config.put(new PropertySimple("domainHost",host));
+ String host = findHost(psr.getProcessInfo(), true);
+ config.put(new PropertySimple("domainHost", host));
+
+ config.put(new PropertySimple("baseDir", serverNameFull));
- config.put(new PropertySimple("baseDir",serverNameFull));
serverName = findHostName();
if (serverName.isEmpty())
serverName = serverNameFull;
- version = serverName.substring(serverName.lastIndexOf("-")+1);
+ version = serverName.substring(serverName.lastIndexOf("-") + 1);
String serverConfig = getServerConfigFromCommandLine(commandLine);
- config.put(new PropertySimple("config",serverConfig));
- config.put(new PropertySimple("startScript","bin/standalone.sh"));
+ config.put(new PropertySimple("config", serverConfig));
+ config.put(new PropertySimple("startScript", "bin/standalone.sh"));
- fillUserPassFromFile(config,"standalone", serverNameFull);
+ fillUserPassFromFile(config, "standalone", serverNameFull);
}
- String logFile = getLogFileFromCommandLine(commandLine);
- initLogEventSourcesConfigProp(logFile,config);
-
- HostPort managmentPort = getManagementPortFromHostXml();
- config.put(new PropertySimple("hostname",managmentPort.host));
- config.put(new PropertySimple("port",managmentPort.port));
-
-// String javaClazz = psr.getProcessInfo().getName();
-
- /*
- * We'll connect to the discovered VM on the local host, so set the jmx connection
- * properties accordingly. This may only work on JDK6+, but then JDK5 is deprecated
- * anyway.
- */
-// config.put(new PropertySimple(JMXDiscoveryComponent.COMMAND_LINE_CONFIG_PROPERTY,
-// javaClazz));
-// config.put(new PropertySimple(JMXDiscoveryComponent.CONNECTION_TYPE,
-// LocalVMTypeDescriptor.class.getName()));
-//
-// // TODO vmid will change when the detected server is bounced - how do we follow this?
-// config.put(new PropertySimple(JMXDiscoveryComponent.VMID_CONFIG_PROPERTY,psr.getProcessInfo().getPid()));
+ // String logFile = getLogFileFromCommandLine(commandLine);
+ //monitor the server.log instead of the boot.log
+ String bootLogFile = getLogFileFromCommandLine(commandLine);
+ String logFile = bootLogFile.substring(0, bootLogFile.lastIndexOf("/")) + File.separator + "server.log";
+ initLogEventSourcesConfigProp(logFile, config);
-
- DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
- discoveryContext.getResourceType(), // ResourceType
+ HostPort managmentPort = getManagementPortFromHostXml();
+ config.put(new PropertySimple("hostname", managmentPort.host));
+ config.put(new PropertySimple("port", managmentPort.port));
+ // String javaClazz = psr.getProcessInfo().getName();
+
+ /*
+ * We'll connect to the discovered VM on the local host, so set the jmx connection
+ * properties accordingly. This may only work on JDK6+, but then JDK5 is deprecated
+ * anyway.
+ */
+ // config.put(new PropertySimple(JMXDiscoveryComponent.COMMAND_LINE_CONFIG_PROPERTY,
+ // javaClazz));
+ // config.put(new PropertySimple(JMXDiscoveryComponent.CONNECTION_TYPE,
+ // LocalVMTypeDescriptor.class.getName()));
+ //
+ // // TODO vmid will change when the detected server is bounced - how do we follow this?
+ // config.put(new PropertySimple(JMXDiscoveryComponent.VMID_CONFIG_PROPERTY,psr.getProcessInfo().getPid()));
+
+ DiscoveredResourceDetails detail = new DiscoveredResourceDetails(discoveryContext.getResourceType(), // ResourceType
serverNameFull, // key TODO distinguish per domain?
- serverName, // Name
- version, // TODO get via API ?Á
- description, // Description
- config,
- psr.getProcessInfo()
- );
-
+ serverName, // Name
+ version, // TODO get via API ?ᅵ
+ description, // Description
+ config, psr.getProcessInfo());
// Add to return values
discoveredResources.add(detail);
@@ -175,24 +172,25 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
return discoveredResources;
- }
+ }
private void fillUserPassFromFile(Configuration config, String mode, String baseDir) {
String configDir = baseDir + File.separator + mode + File.separator + "configuration";
- File file = new File(configDir ,"mgmt-users.properties");
+ File file = new File(configDir, "mgmt-users.properties");
if (!file.exists() || !file.canRead()) {
if (log.isDebugEnabled())
- log.debug("No console user properties file found at [" + file.getAbsolutePath() + "] or file is not readable");
+ log.debug("No console user properties file found at [" + file.getAbsolutePath()
+ + "] or file is not readable");
return;
}
- BufferedReader br=null;
+ BufferedReader br = null;
try {
FileReader fileReader = new FileReader(file);
br = new BufferedReader(fileReader);
String line;
- while ((line = br.readLine())!=null) {
+ while ((line = br.readLine()) != null) {
if (line.startsWith("#"))
continue;
if (line.isEmpty())
@@ -200,16 +198,16 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
if (!line.contains("="))
continue;
// found a candidate
- String user = line.substring(0,line.indexOf("="));
- String pass = line.substring(line.indexOf("=")+1);
- config.put(new PropertySimple("user",user));
- config.put(new PropertySimple("password",pass));
+ String user = line.substring(0, line.indexOf("="));
+ String pass = line.substring(line.indexOf("=") + 1);
+ config.put(new PropertySimple("user", user));
+ config.put(new PropertySimple("password", pass));
}
} catch (IOException e) {
- e.printStackTrace(); // TODO: Customise this generated block
+ e.printStackTrace(); // TODO: Customise this generated block
} finally {
- if (br!=null)
+ if (br != null)
try {
br.close();
} catch (IOException e) {
@@ -219,7 +217,7 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
}
- private String findHost(ProcessInfo processInfo,boolean isDomain) {
+ private String findHost(ProcessInfo processInfo, boolean isDomain) {
String hostXmlFile = getHostXmlFileLocation(processInfo, isDomain);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
String hostName = null;
@@ -230,28 +228,27 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
hostName = document.getDocumentElement().getAttribute("name");
is.close();
} catch (Exception e) {
- e.printStackTrace(); // TODO: Customise this generated block
+ e.printStackTrace(); // TODO: Customise this generated block
}
- if (hostName==null)
- hostName="local"; // Fallback to the installation default
+ if (hostName == null)
+ hostName = "local"; // Fallback to the installation default
return hostName;
}
-
String getServerConfigFromCommandLine(String[] commandLine) {
- for (String line: commandLine) {
- if (line.startsWith(DASH_DASH_SERVER_CONFIG))
- return line.substring(DASH_DASH_SERVER_CONFIG.length());
- }
- return "standalone.xml";
+ for (String line : commandLine) {
+ if (line.startsWith(DASH_DASH_SERVER_CONFIG))
+ return line.substring(DASH_DASH_SERVER_CONFIG.length());
}
+ return "standalone.xml";
+ }
-//-Dorg.jboss.boot.log.file=/devel/jbas7/jboss-as/build/target/jboss-7.0.0.Alpha2/domain/log/server-manager/boot.log
-//-Dlogging.configuration=file:/devel/jbas7/jboss-as/build/target/jboss-7.0.0.Alpha2/domain/configuration/logging.properties
+ //-Dorg.jboss.boot.log.file=/devel/jbas7/jboss-as/build/target/jboss-7.0.0.Alpha2/domain/log/server-manager/boot.log
+ //-Dlogging.configuration=file:/devel/jbas7/jboss-as/build/target/jboss-7.0.0.Alpha2/domain/configuration/logging.properties
String getLogFileFromCommandLine(String[] commandLine) {
- for (String line: commandLine) {
+ for (String line : commandLine) {
if (line.startsWith(DORG_JBOSS_BOOT_LOG_FILE))
return line.substring(DORG_JBOSS_BOOT_LOG_FILE.length());
}
@@ -263,7 +260,7 @@ public class BaseProcessDiscovery extends AbstractBaseDiscovery implements Resou
PropertyList logEventSources = pluginConfiguration
.getList(LogFileEventResourceComponentHelper.LOG_EVENT_SOURCES_CONFIG_PROP);
- if (logEventSources==null)
+ if (logEventSources == null)
return;
File serverLogFile = new File(fileName);
commit 3d77201b933e62d39c2ecfdcb0e78ce32662a0b9
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Wed Jul 27 11:08:17 2011 -0400
adding new libs for eclipse as well.
diff --git a/.classpath b/.classpath
index d8c2847..f8941f4 100644
--- a/.classpath
+++ b/.classpath
@@ -116,6 +116,8 @@
<classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-dbunit/3.1/unitils-dbunit-3.1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-orm/3.1/unitils-orm-3.1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-testng/3.1/unitils-testng-3.1.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/codehaus/jackson/jackson-core-asl/1.7.4/jackson-core-asl-1.7.4.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/codehaus/jackson/jackson-mapper-asl/1.7.4/jackson-mapper-asl-1.7.4.jar"/>
<classpathentry exported="true" kind="lib" path="modules/enterprise/remoting/webservices/target/rhq-remoting-webservices-4.1.0-SNAPSHOT/wsconsume-output"/>
<classpathentry kind="src" path="modules/common/ant-bundle/src/main/java"/>
<classpathentry kind="src" path="modules/common/drift/src/main/java"/>
commit 4edbde9fcb5c68fb8516ef9225d8b6a775a3402d
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Wed Jul 27 10:45:15 2011 -0400
add as7 sources to eclipse cp.
diff --git a/.classpath b/.classpath
index c215ebf..d8c2847 100644
--- a/.classpath
+++ b/.classpath
@@ -112,7 +112,7 @@
<classpathentry exported="true" kind="var" path="M2_REPO/org/dbunit/dbunit/2.4.8/dbunit-2.4.8.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/apache/poi/poi/3.7/poi-3.7.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/bsh/bsh/1.3.0/bsh-1.3.0.jar"/>
- <classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-core/3.1/unitils-core-3.1.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-core/3.1/unitils-core-3.1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-dbunit/3.1/unitils-dbunit-3.1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-orm/3.1/unitils-orm-3.1.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/unitils/unitils-testng/3.1/unitils-testng-3.1.jar"/>
@@ -273,5 +273,7 @@
<classpathentry excluding="**" kind="src" path="modules/enterprise/agent/src/test/resources"/>
<classpathentry kind="src" path="modules/plugins/mod-cluster/src/main/java"/>
<classpathentry kind="src" path="modules/plugins/mod-cluster/src/test/java"/>
+ <classpathentry kind="src" path="modules/plugins/jboss-as-7/src/main/java"/>
+ <classpathentry kind="src" path="modules/plugins/jboss-as-7/src/test/java"/>
<classpathentry kind="output" path="eclipse-classes"/>
</classpath>
12 years, 10 months
[rhq] 2 commits - pom.xml
by Heiko W. Rupp
pom.xml | 46 ++++++++++++++++++++++++++++++++++++++--------
1 file changed, 38 insertions(+), 8 deletions(-)
New commits:
commit d10512ab4e749364ff873ef92d155fcd9824cc53
Merge: a063002 e4fa39a
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Aug 2 13:59:15 2011 +0200
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit a063002f38625a32ea125c3253b82c01ba97c874
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Aug 2 13:57:51 2011 +0200
Do some developer and contributor housekeeping.
diff --git a/pom.xml b/pom.xml
index 549e0d0..28bec8d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -158,7 +158,7 @@
host name changes are/should be uncommon in a typical deployment, they
are more common in a cloud deployment such as EC2. And in a cloud
deployment like EC2, we want to turn this behavior on to ensure that
- the server endpoint accurately reflects the current machine address.
+ the server endpoint accurately reflects the current machine address.
-->
<rhq.sync.endpoint-address>false</rhq.sync.endpoint-address>
@@ -849,7 +849,7 @@
</plugin>
<!-- As of v1.0 of the buildnumber plugin, the create goal doesn't work,
- and the create-timestamp goal doesn't provide a way to specify
+ and the create-timestamp goal doesn't provide a way to specify
a locale or a timezone, so comment this out for now and instead use
our own homemade mix of antrun and properties-file plugin executions
(just below this commented out block). (ips, 06/28/11)
@@ -902,11 +902,11 @@
<phase>generate-sources</phase>
<configuration>
<tasks>
- <mkdir dir="target" />
+ <mkdir dir="target" />
<tstamp>
<format property="buildTime" pattern="MM/dd/yy hh:mm aa z" locale="en,US" timezone="GMT" />
- </tstamp>
+ </tstamp>
<echo file="target/build.properties">buildTime = ${buildTime}${line.separator}</echo>
<exec executable="git" outputproperty="buildNumber" failonerror="false" failifexecutionfails="false">
@@ -947,7 +947,7 @@
</goals>
<configuration>
<files>
- <file>${project.build.directory}/build.properties</file>
+ <file>${project.build.directory}/build.properties</file>
</files>
<quiet>true</quiet>
</configuration>
@@ -1104,7 +1104,7 @@
</profile>
<!-- Set the java6.home prop to a Java6 JRE dir to enforce that only Java6 APIs are used.
- If using Java7 to run the build, this will ensure no APIs introduced in Java7 are
+ If using Java7 to run the build, this will ensure no APIs introduced in Java7 are
used. -->
<profile>
<id>check-java-api</id>
@@ -1146,7 +1146,7 @@
</build>
</profile>
- <!-- This profile should be enabled when a release is being published.
+ <!-- This profile should be enabled when a release is being published.
It will ensure that sources and javadoc jars are built and published
for each source module. -->
<profile>
@@ -1256,6 +1256,10 @@
<developers>
<developer>
+ <name>Robert Buck</name>
+ <timezone>-5</timezone>
+ </developer>
+ <developer>
<name>Charles Crouch</name>
<timezone>-6</timezone>
</developer>
@@ -1267,8 +1271,11 @@
</roles>
</developer>
<developer>
- <name>Filip Drabeck</name>
+ <name>Filip Drabek</name>
<timezone>+1</timezone>
+ <roles>
+ <role>retired</role>
+ </roles>
</developer>
<developer>
<name>Greg Hinkle</name>
@@ -1303,6 +1310,10 @@
<url>http://management-platform.blogspot.com</url>
</developer>
<developer>
+ <name>Stefan Negrea</name>
+ <timezone>-6</timezone>
+ </developer>
+ <developer>
<name>Simeon Pinder</name>
<timezone>-5</timezone>
</developer>
@@ -1347,6 +1358,25 @@
<name>Rafael Torres Coelho Soares</name>
<timezone>-7</timezone>
</contributor>
+ <contributor>
+ <name>Elias Ross</name>
+ </contributor>
+ <contributor>
+ <name>Fusayuki Minamoto</name>
+ <timezone>+6</timezone>
+ </contributor>
+ <contributor>
+ <name>Liju Jijun</name>
+ <timezone>+6</timezone>
+ </contributor>
+ <contributor>
+ <name>Zhongqianglee</name>
+ <timezone>+6</timezone>
+ </contributor>
+ <contributor>
+ <name>Frank Brüseke</name>
+ <timezone>+1</timezone>
+ </contributor>
</contributors>
<mailingLists>
12 years, 10 months
[rhq] Branch 'drift' - 2 commits - etc/cli-scripts modules/enterprise
by John Sanda
etc/cli-scripts/drift.js | 59 ++++++++++
modules/enterprise/server/plugins/drift-mongodb/src/main/java/org/rhq/enterprise/server/plugins/drift/mongodb/MongoDBDriftServer.java | 20 +++
2 files changed, 78 insertions(+), 1 deletion(-)
New commits:
commit a3fe993d72bcb308b6d9bf25fbfc420b9d63a4a6
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Aug 1 22:43:51 2011 -0400
Initial commit for drift.js
This javascript file contains some helper functions for generating
snapshots and displays the results of snapshot diffs.
diff --git a/etc/cli-scripts/drift.js b/etc/cli-scripts/drift.js
new file mode 100644
index 0000000..ee54191
--- /dev/null
+++ b/etc/cli-scripts/drift.js
@@ -0,0 +1,59 @@
+// This script has a dependency on rhq/etc/cl-scripts/util.js. The following
+// command needs to be run in order to load the functions in util.js:
+//
+// exec -f /path/to/rhq/etc/cli-scripts/util.js
+//
+// Then the same exec command can be run to load functions in this script.
+
+function createSnapshot(rid, cname) {
+ var config = findDriftConfig(rid, function(c) { return cname.equals(c.name) });
+
+ var criteria = BasicDriftChangeSetCriteria();
+ criteria.addFilterResourceId(rid);
+ criteria.addFilterDriftConfigurationId(config.id);
+
+ return DriftServer.createSnapshot(criteria);
+}
+
+function findDriftConfig(rid, fn) {
+ var criteria = ResourceCriteria();
+ criteria.addFilterId(rid);
+ criteria.fetchDriftConfigurations(true);
+
+ var resources = ResourceManager.findResourcesByCriteria(criteria);
+ var resource = resources.get(0);
+
+ return find(resource.driftConfigurations, function(config) {
+ return fn(DriftConfiguration(config));
+ });
+}
+
+function diff(s1, s2) {
+ var theDiff = s1.diff(s2);
+
+ function printEntry(entry) {
+ println(entry.newDriftFile.hashId + '\t' + entry.path);
+ }
+
+ function report(header, elements) {
+ println(header + ':');
+ foreach(elements, printEntry);
+ println('\n');
+ }
+
+ report('elements in conflict', theDiff.elementsInConflict);
+ report('elements not in left', theDiff.elementsNotInLeft);
+ report('elements not in right', theDiff.elementsNotInRight);
+}
+
+function filterEntry(props) {
+ return function(entry) {
+ var filteredEntry = {};
+ foreach(props, function(prop) {
+ if (entry[prop]) {
+ filteredEntry[prop] = entry[prop];
+ }
+ });
+ return filteredEntry;
+ }
+}
commit 0dc48d31c12b4dbd6e6ca4b2bb67fb13f5b9f057
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Aug 1 22:41:01 2011 -0400
Initial attempt at fetch change sets
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 bc88533..17b9f16 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
@@ -4,8 +4,10 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -123,7 +125,22 @@ public class MongoDBDriftServer implements DriftServerPluginFacet {
@Override
public PageList<DriftChangeSet> findDriftChangeSetsByCriteria(Subject subject, DriftChangeSetCriteria criteria) {
- return new PageList<DriftChangeSet>();
+ Query<MongoDBChangeSet> query = ds.createQuery(MongoDBChangeSet.class)
+ .filter("resourceId =", criteria.getFilterResourceId());
+
+ PageList results = new PageList<DriftChangeSetDTO>();
+ for (MongoDBChangeSet changeSet : query) {
+ DriftChangeSetDTO changeSetDTO = toDTO(changeSet);
+ Set<DriftDTO> entries = new HashSet<DriftDTO>();
+ for (MongoDBChangeSetEntry entry : changeSet.getDrifts()) {
+ entries.add(toDTO(entry, changeSetDTO));
+ }
+ changeSetDTO.setDrifts(entries);
+ results.add(changeSetDTO);
+ }
+
+ return results;
+ //return new PageList<DriftChangeSet>();
}
@Override
@@ -189,6 +206,7 @@ public class MongoDBDriftServer implements DriftServerPluginFacet {
DriftChangeSetDTO toDTO(MongoDBChangeSet changeSet) {
DriftChangeSetDTO dto = new DriftChangeSetDTO();
dto.setId(changeSet.getId());
+ // TODO copy resource id
dto.setDriftConfigurationId(changeSet.getDriftConfigurationId());
dto.setVersion(changeSet.getVersion());
dto.setCtime(changeSet.getCtime());
12 years, 10 months
[rhq] Branch 'as7plugin' - 3 commits - .classpath modules/plugins
by Simeon Pinder
.classpath | 2
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java | 131 ++++++----
modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml | 20 -
3 files changed, 96 insertions(+), 57 deletions(-)
New commits:
commit 01c65867047b04863ca399eea4ec680d8476f5c7
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Mon Aug 1 21:26:55 2011 -0400
remove process controller element and use embeddedJMX
diff --git a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
index 3432cb6..c70d01f 100644
--- a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
@@ -517,22 +517,18 @@
</server>
-
- <server name="JBoss AS JVM"
- description="JVM of the standalone JBossAS"
- sourcePlugin="JMX"
- sourceType="JMX Server"
- discovery="org.rhq.plugins.jmx.LocalJMXServerDiscoveryComponent"
- class="org.rhq.plugins.jmx.JMXServerComponent"
- singleton="true"
- >
+ <server name="JBoss AS JVM"
+ description="JVM of the JBossAS"
+ sourcePlugin="JMX"
+ sourceType="JMX Server"
+ discovery="org.rhq.plugins.jmx.EmbeddedJMXServerDiscoveryComponent"
+ class="org.rhq.plugins.jmx.JMXServerComponent"
+ singleton="true">
<runs-inside>
<parent-resource-type name="JBossAS-Managed" plugin="jboss-as-7"/>
<parent-resource-type name="JBossAS7-Standalone" plugin="jboss-as-7"/>
- <parent-resource-type name="ProcessController" plugin="jboss-as-7"/>
</runs-inside>
- </server>
-
+ </server>
<server name="Messaging"
discovery="SubsystemDiscovery"
commit 01c169dcd233cd9fdef4d124df5bf63cef21c828
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Mon Aug 1 16:44:53 2011 -0400
added some cleanup code for long lived http connections. Need to parse stream even on error for better pooling.
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java
index b55fc8a..787db6b 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ASConnection.java
@@ -29,7 +29,9 @@ import java.net.URL;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
@@ -49,6 +51,7 @@ public class ASConnection {
String urlString;
private ObjectMapper mapper;
public static boolean verbose = false; // This is a variable on purpose, so devs can switch it on in the debugger or in the agent
+ private HttpURLConnection conn;
/**
* Construct an ASConnection object. The real "physical" connection is done in
@@ -59,7 +62,7 @@ public class ASConnection {
public ASConnection(String host, int port) {
try {
- url = new URL("http",host,port, MANAGEMENT);
+ url = new URL("http", host, port, MANAGEMENT);
urlString = url.toString();
} catch (MalformedURLException e) {
@@ -87,11 +90,12 @@ public class ASConnection {
public JsonNode executeRaw(Operation operation) {
InputStream inputStream = null;
- BufferedReader br=null;
+ BufferedReader br = null;
+ InputStream es = null;
long t1 = System.currentTimeMillis();
try {
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
OutputStream out = conn.getOutputStream();
@@ -106,50 +110,63 @@ public class ASConnection {
out.close();
int responseCode = conn.getResponseCode();
- if (responseCode ==HttpURLConnection.HTTP_OK) {
+ if (responseCode == HttpURLConnection.HTTP_OK) {
inputStream = conn.getInputStream();
} else {
inputStream = conn.getErrorStream();
}
- if (inputStream!=null) {
+ if (inputStream != null) {
- br = new BufferedReader(new InputStreamReader(
- inputStream));
- String line;
- StringBuilder builder = new StringBuilder();
- while ((line = br.readLine()) != null) {
- builder.append(line);
- }
+ br = new BufferedReader(new InputStreamReader(inputStream));
+ String line;
+ StringBuilder builder = new StringBuilder();
+ while ((line = br.readLine()) != null) {
+ builder.append(line);
+ }
- String outcome;
- JsonNode operationResult=null;
- if (builder !=null) {
- outcome= builder.toString();
- operationResult = mapper.readTree(outcome);
- if (verbose) {
- ObjectMapper om2 = new ObjectMapper();
- om2.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
- String tmp = om2.writeValueAsString(operationResult);
- log.info(tmp);
+ String outcome;
+ JsonNode operationResult = null;
+ if (builder.length() > 0) {
+ outcome = builder.toString();
+ operationResult = mapper.readTree(outcome);
+ if (verbose) {
+ ObjectMapper om2 = new ObjectMapper();
+ om2.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
+ String tmp = om2.writeValueAsString(operationResult);
+ log.info(tmp);
+ }
+ } else {
+ outcome = "- no response from server -";
+ Result noResult = new Result();
+ noResult.setFailureDescription(outcome);
+ noResult.setOutcome("failure");
+ operationResult = mapper.valueToTree(noResult);
}
- }
- else {
- outcome="- no response from server -";
- Result noResult = new Result();
- noResult.setFailureDescription(outcome);
- noResult.setOutcome("failure");
- operationResult = mapper.valueToTree(noResult);
- }
- return operationResult;
- }
- else {
+ return operationResult;
+ } else {
log.error("IS was null and code was " + responseCode);
}
-
} catch (IOException e) {
- log.error("Failed to get data: " + e.getMessage() );
+ log.error("Failed to get data: " + e.getMessage());
+
+ //the following code is in place to help keep-alive http connection re-use to occur.
+ if (conn != null) {//on error conditions it's still necessary to read the response so JDK knows can reuse
+ //the http connections behind the scenes.
+ es = conn.getErrorStream();
+ if (es != null) {
+ BufferedReader dr = new BufferedReader(new InputStreamReader(es));
+ String ignore = null;
+ try {
+ while ((ignore = dr.readLine()) != null) {
+ //already reported error. just empty stream.
+ }
+ es.close();
+ } catch (IOException e1) {
+ }
+ }
+ }
Result failure = new Result();
failure.setFailureDescription(e.getMessage());
@@ -160,16 +177,24 @@ public class ASConnection {
return ret;
} finally {
- if (br!=null)
+ if (br != null) {
try {
br.close();
} catch (IOException e) {
- e.printStackTrace(); // TODO: Customise this generated block
+ e.printStackTrace(); // TODO: Customise this generated block
+ }
+ }
+ if (es != null) {
+ try {
+ es.close();
+ } catch (IOException e) {
+ e.printStackTrace(); // TODO: Customise this generated block
}
+ }
long t2 = System.currentTimeMillis();
PluginStats stats = PluginStats.getInstance();
stats.incrementRequestCount();
- stats.addRequestTime(t2-t1);
+ stats.addRequestTime(t2 - t1);
}
return null;
@@ -183,7 +208,7 @@ public class ASConnection {
* @see #execute(org.rhq.modules.plugins.jbossas7.json.Operation, boolean)
*/
public Result execute(Operation op) {
- return execute(op,false);
+ return execute(op, false);
}
/**
@@ -194,7 +219,7 @@ public class ASConnection {
* @see #execute(org.rhq.modules.plugins.jbossas7.json.Operation, boolean)
*/
public ComplexResult executeComplex(Operation op) {
- return (ComplexResult) execute(op,true);
+ return (ComplexResult) execute(op, true);
}
/**
@@ -204,20 +229,38 @@ public class ASConnection {
* @param isComplex should a complex result be returned?
* @return ComplexResult of the execution
*/
- public Result execute(Operation op, boolean isComplex){
+ public Result execute(Operation op, boolean isComplex) {
JsonNode node = executeRaw(op);
try {
Result res;
if (isComplex)
- res = mapper.readValue(node,ComplexResult.class);
+ res = mapper.readValue(node, ComplexResult.class);
else
- res = mapper.readValue(node,Result.class);
+ res = mapper.readValue(node, Result.class);
return res;
} catch (IOException e) {
- e.printStackTrace(); // TODO: Customise this generated block
+ e.printStackTrace(); // TODO: Customise this generated block
return null;
}
}
+ public void writeValue(OutputStream out, Object value) throws IOException, JsonGenerationException,
+ JsonMappingException {
+ // JsonGenerator jgen = _jsonFactory.createJsonGenerator(out, JsonEncoding.UTF8);
+ // JsonGenerator jgen = mapper.createJsonGenerator(out, JsonEncoding.UTF8);
+ // JsonGenerator jgen = new Js
+ // boolean closed = false;
+ // try {
+ // writeValue(jgen, value);
+ // closed = true;
+ // jgen.close();
+ // } finally {
+ // if (!closed) {
+ // jgen.close();
+ // }
+ // }
+
+ }
+
}
commit 382f93bfed14c3b2fc2956e5ec14b83b8ac8e55b
Author: Simeon Pinder <simeonpinder(a)gmail.com>
Date: Mon Aug 1 16:42:47 2011 -0400
-added integration test src and removed webdav for eclipse classpath.
diff --git a/.classpath b/.classpath
index b8a0ea8..a1e9e14 100644
--- a/.classpath
+++ b/.classpath
@@ -165,7 +165,6 @@
<classpathentry kind="src" path="modules/enterprise/gui/installer-war/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/gui/base-perspective-jar/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/gui/content_http-war/src/main/java"/>
- <classpathentry kind="src" path="modules/enterprise/gui/webdav-war/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/server/client-api/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/remoting/client-api/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/remoting/webservices/src/main/java"/>
@@ -276,5 +275,6 @@
<classpathentry kind="src" path="modules/plugins/mod-cluster/src/test/java"/>
<classpathentry kind="src" path="modules/plugins/jboss-as-7/src/main/java"/>
<classpathentry kind="src" path="modules/plugins/jboss-as-7/src/test/java"/>
+ <classpathentry kind="src" path="modules/integration-tests/jboss-as-7-plugin-test/src/test/java"/>
<classpathentry kind="output" path="eclipse-classes"/>
</classpath>
12 years, 10 months
[rhq] Branch 'stefan/dbreset' - modules/core
by snegrea
modules/core/dbutils/pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 01916aee00baea73f8cae784eac6b2d950ebe453
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Aug 1 21:21:07 2011 -0500
Removing extra character inserted inadvertently.
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 318afde..6a599c0 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -21,7 +21,7 @@
<rhq.ds.db-name>${rhq.test.ds.db-name}</rhq.ds.db-name>
<rhq.ds.connection-url>${rhq.test.ds.connection-url}</rhq.ds.connection-url>
<rhq.ds.user-name>${rhq.test.ds.user-name}</rhq.ds.user-name>
- <rhq.ds.password>${rhq.test.ds.password}></rhq.ds.password>
+ <rhq.ds.password>${rhq.test.ds.password}</rhq.ds.password>
<rhq.ds.driver-class>${rhq.test.ds.driver-class}</rhq.ds.driver-class>
</properties>
<dependencies>
@@ -165,7 +165,7 @@
<rhq.ds.db-name>${rhq.dev.ds.db-name}</rhq.ds.db-name>
<rhq.ds.connection-url>${rhq.dev.ds.connection-url}</rhq.ds.connection-url>
<rhq.ds.user-name>${rhq.dev.ds.user-name}</rhq.ds.user-name>
- <rhq.ds.password>${rhq.dev.ds.password}></rhq.ds.password>
+ <rhq.ds.password>${rhq.dev.ds.password}</rhq.ds.password>
<rhq.ds.driver-class>${rhq.dev.ds.driver-class}</rhq.ds.driver-class>
</properties>
</profile>
12 years, 10 months