modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/configuration/ConfigurationAgentService.java
| 50 +-
modules/core/domain/src/main/java/org/rhq/core/domain/configuration/ConfigurationValidationException.java
| 39 ++
modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationManager.java
| 41 +-
modules/core/plugin-container/src/test/java/org/rhq/core/pc/configuration/ConfigurationManagerTest.java
| 29 -
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ExistingResourceConfigurationUIBean.java
| 186 ++++++----
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationEditor.java
| 67 ++-
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationViewer.java
| 71 +--
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
| 30 -
modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
| 108 ++---
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
| 34 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
| 137 -------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
| 27 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
| 7
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
| 12
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
| 7
15 files changed, 406 insertions(+), 439 deletions(-)
New commits:
commit 140ad56fb391875220bbbbee377678bb0f1f4dec
Author: Adam Young <ayoung(a)redhat.com>
Date: Mon Mar 1 15:53:30 2010 -0500
Cleaning up the exception logic of Validate.
diff --git
a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/configuration/ConfigurationAgentService.java
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/configuration/ConfigurationAgentService.java
index cd5011f..3673a62 100644
---
a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/configuration/ConfigurationAgentService.java
+++
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/configuration/ConfigurationAgentService.java
@@ -1,30 +1,31 @@
- /*
- * 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.configuration;
import org.rhq.core.clientapi.agent.PluginContainerException;
import org.rhq.core.clientapi.server.configuration.ConfigurationUpdateResponse;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
/**
* Interface to the plugin container for triggering configuration operations on the
plugin's resources.
@@ -99,7 +100,6 @@ public interface ConfigurationAgentService {
Configuration merge(Configuration configuration, int resourceId, boolean
fromStructured)
throws PluginContainerException;
-
/**
* If the <code>fromStructured</code> flag is
<code>true</code>, then the s
* Configuration.properties</code>) is merged into the latest raw configura
@@ -118,7 +118,9 @@ public interface ConfigurationAgentService {
* If validation fails, it returns the configuration object with embedded
messages
* @throws PluginContainerException
* @throws PluginContainerException if a runtime or plugin error occurs.
+ * @throws ConfigurationValidationException
*/
- Configuration validate(Configuration configuration, int resourceId, boolean
isStructured) throws PluginContainerException;
+ void validate(Configuration configuration, int resourceId, boolean isStructured)
+ throws ConfigurationValidationException;
}
\ No newline at end of file
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/ConfigurationValidationException.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/ConfigurationValidationException.java
new file mode 100644
index 0000000..03628b7
--- /dev/null
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/configuration/ConfigurationValidationException.java
@@ -0,0 +1,39 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.core.domain.configuration;
+
+import java.util.Collections;
+import java.util.Map;
+
+public class ConfigurationValidationException extends RuntimeException {
+ private static final long serialVersionUID = -6924768743906659205L;
+
+ /**
+ * For Raw config, the key is the path to the raw config file
+ * For structured, the key is simply "structured"
+ * In the future, the key will be the same as the value returned from
+ * org.rhq.core.domain.configuration.Configuration.get(string)
+ */
+ public final Map<String, String> errors;
+
+ public ConfigurationValidationException(String reason, Map<String, String>
errors) {
+ super(reason);
+ this.errors = Collections.unmodifiableMap(errors);
+ }
+}
\ No newline at end of file
diff --git
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationManager.java
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationManager.java
index b73cc65..15d3c2d 100644
---
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationManager.java
+++
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/configuration/ConfigurationManager.java
@@ -22,7 +22,9 @@
*/
package org.rhq.core.pc.configuration;
+import java.util.HashMap;
import java.util.LinkedList;
+import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.Callable;
@@ -40,6 +42,7 @@ import
org.rhq.core.clientapi.agent.configuration.ConfigurationUpdateRequest;
import org.rhq.core.clientapi.server.configuration.ConfigurationServerService;
import org.rhq.core.clientapi.server.configuration.ConfigurationUpdateResponse;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.Property;
import org.rhq.core.domain.configuration.RawConfiguration;
import org.rhq.core.domain.resource.ResourceType;
@@ -53,9 +56,6 @@ import org.rhq.core.pc.util.FacetLockType;
import org.rhq.core.pc.util.LoggingThreadFactory;
import org.rhq.core.pluginapi.configuration.ConfigurationFacet;
import org.rhq.core.pluginapi.configuration.ResourceConfigurationFacet;
-import org.rhq.core.system.SystemInfoFactory;
-
-import org.rhq.core.util.exception.WrappedRemotingException;
/**
* Manages configuration of all resources across all plugins.
@@ -328,36 +328,47 @@ public class ConfigurationManager extends AgentService implements
ContainerServi
return null;
}
- public Configuration validate(Configuration configuration, int resourceId, boolean
isStructured)
- throws PluginContainerException {
+ public void validate(Configuration configuration, int resourceId, boolean
isStructured)
+ throws ConfigurationValidationException {
boolean success = true;
boolean daemonOnly = true;
boolean onlyIfStarted = true;
- ResourceConfigurationFacet facet = componentService.getComponent(resourceId,
ResourceConfigurationFacet.class,
- FacetLockType.READ, FACET_METHOD_TIMEOUT, daemonOnly, onlyIfStarted);
+ ResourceConfigurationFacet facet;
+ try {
+ facet = componentService.getComponent(resourceId,
ResourceConfigurationFacet.class, FacetLockType.READ,
+ FACET_METHOD_TIMEOUT, daemonOnly, onlyIfStarted);
+ } catch (PluginContainerException e1) {
+ Map<String, String> errors = new HashMap<String, String>();
+ errors.put("structured", e1.getMessage());
+ throw new ConfigurationValidationException(e1.getMessage(), errors);
+ }
if (isStructured) {
try {
facet.validateStructuredConfiguration(configuration);
- } catch (IllegalArgumentException e) {
- success = false;
} catch (Throwable t) {
- throw new PluginContainerException(t.getMessage(), t);
+ Map<String, String> errors = new HashMap<String, String>();
+ errors.put("structured", t.getMessage());
+ throw new ConfigurationValidationException(t.getMessage(), errors);
}
} else {
+ Map<String, String> errors = null;
+
for (RawConfiguration rawConfiguration :
configuration.getRawConfigurations()) {
try {
facet.validateRawConfiguration(rawConfiguration);
} catch (IllegalArgumentException e) {
- success = false;
+ if (errors == null) {
+ errors = new HashMap<String, String>();
+ }
+ errors.put(rawConfiguration.getPath(), e.getMessage());
rawConfiguration.errorMessage = e.getMessage();
- } catch (Throwable t) {
- success = false;
- rawConfiguration.errorMessage = t.getMessage();
}
}
+ if (errors != null) {
+ throw new ConfigurationValidationException("validation of raw
configs failed", errors);
+ }
}
- return success ? null: configuration;
}
}
diff --git
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/configuration/ConfigurationManagerTest.java
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/configuration/ConfigurationManagerTest.java
index 6c74811..ad49994 100644
---
a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/configuration/ConfigurationManagerTest.java
+++
b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/configuration/ConfigurationManagerTest.java
@@ -23,13 +23,23 @@
package org.rhq.core.pc.configuration;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
+import java.util.Set;
+import java.util.concurrent.ScheduledExecutorService;
+
import org.hamcrest.Matcher;
import org.jmock.Expectations;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
import org.rhq.core.clientapi.agent.PluginContainerException;
import org.rhq.core.clientapi.agent.configuration.ConfigurationUpdateRequest;
-import org.rhq.core.clientapi.agent.configuration.ConfigurationValidationException;
import org.rhq.core.clientapi.server.configuration.ConfigurationServerService;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.configuration.RawConfiguration;
import org.rhq.core.domain.resource.ResourceType;
@@ -38,15 +48,6 @@ import org.rhq.core.pc.ServerServices;
import org.rhq.core.pc.util.FacetLockType;
import org.rhq.core.pluginapi.configuration.ResourceConfigurationFacet;
import org.rhq.test.jmock.PropertyMatcher;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.util.Set;
-import java.util.concurrent.ScheduledExecutorService;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
public class ConfigurationManagerTest extends ConfigManagementTest {
@@ -324,12 +325,11 @@ public class ConfigurationManagerTest extends ConfigManagementTest
{
try {
configurationMgr.validate(configuration, resourceId, false);
assertTrue(false);
- } catch (PluginContainerException exception) {
+ } catch (ConfigurationValidationException exception) {
//SUCCESS
}
}
-
@Test
public void catchExceptionThrownByFailedValidationOfStructuredConfigs() throws
Exception {
@@ -355,14 +355,11 @@ public class ConfigurationManagerTest extends ConfigManagementTest
{
try {
configurationMgr.validate(configuration, resourceId, true);
assertTrue(false);
- } catch (PluginContainerException exception) {
+ } catch (ConfigurationValidationException exception) {
//SUCCESS
}
}
-
-
-
@Test
public void mergingRawsIntoStructuredShouldIgnoreNull() throws Exception {
Configuration config = new Configuration();
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ExistingResourceConfigurationUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ExistingResourceConfigurationUIBean.java
index b5d9c14..4f2e104 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ExistingResourceConfigurationUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ExistingResourceConfigurationUIBean.java
@@ -18,17 +18,32 @@
*/
package org.rhq.enterprise.gui.configuration.resource;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.event.ValueChangeEvent;
+import javax.servlet.http.HttpServletResponse;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.jboss.seam.annotations.Create;
-import org.jboss.seam.annotations.Out;
import org.jetbrains.annotations.Nullable;
+import org.richfaces.model.UploadItem;
+
+import org.jboss.seam.annotations.Create;
-import org.rhq.core.clientapi.agent.configuration.ConfigurationValidationException;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.Property;
import org.rhq.core.domain.configuration.RawConfiguration;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
@@ -39,22 +54,9 @@ import org.rhq.enterprise.gui.common.upload.FileUploadUIBean;
import org.rhq.enterprise.gui.configuration.AbstractConfigurationUIBean;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.configuration.ConfigurationManagerLocal;
+import
org.rhq.enterprise.server.configuration.ConfigurationUpdateStillInProgressException;
+import org.rhq.enterprise.server.resource.ResourceNotFoundException;
import org.rhq.enterprise.server.util.LookupUtil;
-import org.richfaces.model.UploadItem;
-
-import javax.ejb.EJBException;
-import javax.faces.application.FacesMessage;
-import javax.faces.event.ValueChangeEvent;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.TreeMap;
// This class is temporarily decleared in components.xml since it is declared under two
names - ViewUIBean and
// UIBean. This class is undergoing some refactoring and part of that will include
declaring the @Name and @Scope
@@ -73,7 +75,7 @@ public class ExistingResourceConfigurationUIBean extends
AbstractConfigurationUI
// @Out
private Collection<RawConfigDirectory> rawConfigDirectories;
-// @Out
+ // @Out
private FileUploadUIBean fileUploader = new FileUploadUIBean();
private String modalEditorContents;
@@ -139,18 +141,28 @@ public class ExistingResourceConfigurationUIBean extends
AbstractConfigurationUI
}
public String switchToRaw() {
- Configuration configuration =
LookupUtil.getConfigurationManager().translateResourceConfiguration(
- EnterpriseFacesContextUtility.getSubject(), getResourceId(),
getConfiguration(), true);
+ Configuration configuration;
+ try {
+ configuration =
LookupUtil.getConfigurationManager().translateResourceConfiguration(
+ EnterpriseFacesContextUtility.getSubject(), getResourceId(),
getConfiguration(), true);
- setConfiguration(configuration);
+ setConfiguration(configuration);
- for (RawConfiguration raw : configuration.getRawConfigurations()) {
- getRaws().put(raw.getPath(), raw);
+ for (RawConfiguration raw : configuration.getRawConfigurations()) {
+ getRaws().put(raw.getPath(), raw);
+ }
+ current = null;
+ setConfiguration(configuration);
+ updateModifiedCache();
+ mode = RAW_MODE;
+
+ } catch (ResourceNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ConfigurationValidationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
- current = null;
- setConfiguration(configuration);
- updateModifiedCache();
- mode = RAW_MODE;
return null;
}
@@ -166,27 +178,37 @@ public class ExistingResourceConfigurationUIBean extends
AbstractConfigurationUI
}
public String switchToStructured() {
- Configuration configuration =
LookupUtil.getConfigurationManager().translateResourceConfiguration(
- EnterpriseFacesContextUtility.getSubject(), getResourceId(),
getMergedConfiguration(), false);
+ Configuration configuration;
+ try {
+ configuration =
LookupUtil.getConfigurationManager().translateResourceConfiguration(
+ EnterpriseFacesContextUtility.getSubject(), getResourceId(),
getMergedConfiguration(), false);
- for (Property property : configuration.getAllProperties().values()) {
- property.setConfiguration(configuration);
- }
+ for (Property property : configuration.getAllProperties().values()) {
+ property.setConfiguration(configuration);
+ }
- for (RawConfiguration raw : configuration.getRawConfigurations()) {
- getRaws().put(raw.getPath(), raw);
+ for (RawConfiguration raw : configuration.getRawConfigurations()) {
+ getRaws().put(raw.getPath(), raw);
+ setConfiguration(configuration);
+ }
+ current = null;
setConfiguration(configuration);
- }
- current = null;
- setConfiguration(configuration);
- for (RawConfiguration raw : configuration.getRawConfigurations()) {
- System.out.println(raw.getPath() + " -\n" + (new
String(raw.getContents())) + "\n");
- }
+ for (RawConfiguration raw : configuration.getRawConfigurations()) {
+ System.out.println(raw.getPath() + " -\n" + (new
String(raw.getContents())) + "\n");
+ }
- updateModifiedCache();
+ updateModifiedCache();
- mode = STRUCTURED_MODE;
+ mode = STRUCTURED_MODE;
+
+ } catch (ResourceNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ConfigurationValidationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
return null;
}
@@ -208,39 +230,46 @@ public class ExistingResourceConfigurationUIBean extends
AbstractConfigurationUI
Configuration mergedConfiguration = null;
ConfigurationMaskingUtility.unmaskConfiguration(getConfiguration(),
getConfigurationDefinition());
int resourceId = EnterpriseFacesContextUtility.getResource().getId();
-
+
mergedConfiguration = getMergedConfiguration();
- AbstractResourceConfigurationUpdate updateRequest = this.configurationManager
-
.updateStructuredOrRawConfiguration(EnterpriseFacesContextUtility.getSubject(),
resourceId,
- mergedConfiguration, fromStructured);
- if (updateRequest != null) {
- switch (updateRequest.getStatus()) {
- case SUCCESS:
- case INPROGRESS:
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO,
"Configuration update request with id "
- + updateRequest.getId() + " has been sent to the Agent.");
- clearConfiguration();
- return SUCCESS_OUTCOME;
- case FAILURE:
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
"Configuration update request with id "
- + updateRequest.getId() + " failed.",
updateRequest.getErrorMessage());
-
- if (null != mergedConfiguration) {
- for (RawConfiguration raw :
mergedConfiguration.getRawConfigurations()) {
- String message = raw.errorMessage;
- if (message != null) {
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
raw.getPath(), message);
+ try {
+ AbstractResourceConfigurationUpdate updateRequest =
this.configurationManager
+
.updateStructuredOrRawConfiguration(EnterpriseFacesContextUtility.getSubject(),
resourceId,
+ mergedConfiguration, fromStructured);
+ if (updateRequest != null) {
+ switch (updateRequest.getStatus()) {
+ case SUCCESS:
+ case INPROGRESS:
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO,
"Configuration update request with id "
+ + updateRequest.getId() + " has been sent to the
Agent.");
+ clearConfiguration();
+ return SUCCESS_OUTCOME;
+ case FAILURE:
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
"Configuration update request with id "
+ + updateRequest.getId() + " failed.",
updateRequest.getErrorMessage());
+
+ if (null != mergedConfiguration) {
+ for (RawConfiguration raw :
mergedConfiguration.getRawConfigurations()) {
+ String message = raw.errorMessage;
+ if (message != null) {
+
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, raw.getPath(), message);
+ }
}
}
- }
- return FAILURE_OUTCOME;
- case NOCHANGE:
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_WARN,
- "No changes were made to the configuration, so " + "no
update request has been sent to the Agent.");
- clearConfiguration();
- return SUCCESS_OUTCOME;
+ return FAILURE_OUTCOME;
+ case NOCHANGE:
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_WARN,
+ "No changes were made to the configuration, so "
+ + "no update request has been sent to the
Agent.");
+ clearConfiguration();
+ return SUCCESS_OUTCOME;
+ }
+ }
+ } catch (ConfigurationValidationException e) {
+ for (String key : e.errors.keySet()) {
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, key,
e.errors.get(key));
}
}
return FAILURE_OUTCOME;
@@ -297,8 +326,19 @@ public class ExistingResourceConfigurationUIBean extends
AbstractConfigurationUI
public String commit() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
- LookupUtil.getConfigurationManager().updateResourceConfiguration(subject,
getResourceId(),
- getMergedConfiguration());
+ try {
+ LookupUtil.getConfigurationManager().updateResourceConfiguration(subject,
getResourceId(),
+ getMergedConfiguration());
+ } catch (ResourceNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ConfigurationUpdateStillInProgressException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (org.rhq.core.domain.configuration.ConfigurationValidationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
return "/rhq/resource/configuration/view.xhtml?id=" + getResourceId();
}
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationEditor.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationEditor.java
index fb500b7..c10bd22 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationEditor.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationEditor.java
@@ -23,27 +23,30 @@
package org.rhq.enterprise.gui.configuration.resource;
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.ejb.EJBException;
+import javax.faces.application.FacesMessage;
+
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Observer;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.web.RequestParameter;
+
import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.RawConfiguration;
import org.rhq.core.gui.configuration.ConfigurationMaskingUtility;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.server.configuration.ConfigurationManagerLocal;
+import
org.rhq.enterprise.server.configuration.ConfigurationUpdateStillInProgressException;
+import org.rhq.enterprise.server.resource.ResourceNotFoundException;
import org.rhq.enterprise.server.util.LookupUtil;
-import org.richfaces.model.UploadItem;
-
-import javax.ejb.EJBException;
-import javax.faces.application.FacesMessage;
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.Set;
-
@Name("configurationEditor")
@Scope(ScopeType.CONVERSATION)
public class ResourceConfigurationEditor extends ResourceConfigurationViewer implements
Serializable {
@@ -67,7 +70,7 @@ public class ResourceConfigurationEditor extends
ResourceConfigurationViewer imp
}
@Override
- protected void changeToRawTab() {
+ protected void changeToRawTab() throws ResourceNotFoundException,
ConfigurationValidationException {
resourceConfiguration = translateToRaw();
for (RawConfiguration raw : resourceConfiguration.getRawConfigurations()) {
RawConfigUIBean uiBean = findRawConfigUIBeanByPath(raw.getPath());
@@ -75,25 +78,33 @@ public class ResourceConfigurationEditor extends
ResourceConfigurationViewer imp
}
}
- private Configuration translateToRaw() {
+ private Configuration translateToRaw() throws ResourceNotFoundException,
ConfigurationValidationException {
ConfigurationManagerLocal configurationMgr =
LookupUtil.getConfigurationManager();
return configurationMgr.translateResourceConfiguration(loggedInUser.getSubject(),
resourceId,
resourceConfiguration, STRUCTURED_MODE);
}
@Override
- protected void changeToStructuredTab() {
+ protected void changeToStructuredTab() throws ResourceNotFoundException,
ConfigurationValidationException {
+
resourceConfiguration = translateToStructured();
+
for (RawConfiguration raw : resourceConfiguration.getRawConfigurations()) {
RawConfigUIBean uiBean = findRawConfigUIBeanByPath(raw.getPath());
uiBean.setRawConfiguration(raw);
+ if ((raw.errorMessage != null) &&
(!raw.errorMessage.equals(""))) {
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
raw.errorMessage);
+ }
+
}
}
- private Configuration translateToStructured() {
+ private Configuration translateToStructured() throws ResourceNotFoundException,
ConfigurationValidationException {
ConfigurationManagerLocal configurationMgr =
LookupUtil.getConfigurationManager();
+
return configurationMgr.translateResourceConfiguration(loggedInUser.getSubject(),
resourceId,
resourceConfiguration, RAW_MODE);
+
}
@Observer("rawConfigUpdate")
@@ -144,7 +155,8 @@ public class ResourceConfigurationEditor extends
ResourceConfigurationViewer imp
return isRawSupported() || isStructuredAndRawSupported();
}
- public String updateConfiguration() {
+ public String updateConfiguration() throws ResourceNotFoundException,
ConfigurationUpdateStillInProgressException,
+ ConfigurationValidationException {
ConfigurationManagerLocal configurationMgr =
LookupUtil.getConfigurationManager();
ConfigurationMaskingUtility.unmaskConfiguration(resourceConfiguration,
resourceConfigurationDefinition);
@@ -154,11 +166,10 @@ public class ResourceConfigurationEditor extends
ResourceConfigurationViewer imp
if (isStructuredAndRawSupported()) {
updateRequest =
configurationMgr.updateStructuredOrRawConfiguration(loggedInUser.getSubject(),
- resourceId, resourceConfiguration, isStructuredMode());
- }
- else {
- updateRequest =
configurationMgr.updateResourceConfiguration(loggedInUser.getSubject(),
- resourceId, resourceConfiguration);
+ resourceId, resourceConfiguration, isStructuredMode());
+ } else {
+ updateRequest =
configurationMgr.updateResourceConfiguration(loggedInUser.getSubject(), resourceId,
+ resourceConfiguration);
}
clearErrors();
@@ -173,12 +184,12 @@ public class ResourceConfigurationEditor extends
ResourceConfigurationViewer imp
case FAILURE:
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
"Configuration update request with id "
+ updateRequest.getId() + " failed.",
updateRequest.getErrorMessage());
-// for (RawConfiguration raw :
resourceConfiguration.getRawConfigurations()) {
-// String message = raw.errorMessage;
-// if (message != null) {
-// FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
raw.getPath(), message);
-// }
-// }
+ // for (RawConfiguration raw :
resourceConfiguration.getRawConfigurations()) {
+ // String message = raw.errorMessage;
+ // if (message != null) {
+ //
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, raw.getPath(), message);
+ // }
+ // }
copyErrorMessages(updateRequest);
return "failure";
@@ -218,10 +229,10 @@ public class ResourceConfigurationEditor extends
ResourceConfigurationViewer imp
rawUIBean.setErrorMessage(updatedRaw.errorMessage);
}
-// RawConfiguration raw = findRawConfigurationByPath(updatedRaw.getPath());
-// if (raw != null) {
-// raw.errorMessage = updatedRaw.errorMessage;
-// }
+ // RawConfiguration raw =
findRawConfigurationByPath(updatedRaw.getPath());
+ // if (raw != null) {
+ // raw.errorMessage = updatedRaw.errorMessage;
+ // }
}
}
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationViewer.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationViewer.java
index 8224134..94b798b 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationViewer.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/configuration/resource/ResourceConfigurationViewer.java
@@ -23,12 +23,28 @@
package org.rhq.enterprise.gui.configuration.resource;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+import java.util.TreeMap;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.event.ValueChangeEvent;
+import javax.servlet.http.HttpServletResponse;
+
import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.*;
-import org.jboss.seam.annotations.web.RequestParameter;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.RawConfiguration;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.configuration.definition.ConfigurationFormat;
@@ -37,16 +53,9 @@ import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.configuration.ConfigurationManagerLocal;
+import org.rhq.enterprise.server.resource.ResourceNotFoundException;
import org.rhq.enterprise.server.util.LookupUtil;
-import javax.faces.application.FacesMessage;
-import javax.faces.event.ValueChangeEvent;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.*;
-
@Name("configurationViewer")
@Scope(ScopeType.PAGE)
public class ResourceConfigurationViewer {
@@ -95,12 +104,12 @@ public class ResourceConfigurationViewer {
*/
public void initialize() {
resourceId = FacesContextUtility.getRequiredRequestParameter("id",
Integer.class);
-
+
loadResourceConfigurationDefinition();
if (resourceConfigurationDefinition == null) {
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_WARN,
- "This resource does not expose a configuration.");
+ FacesContextUtility
+ .addMessage(FacesMessage.SEVERITY_WARN, "This resource does not
expose a configuration.");
return;
}
@@ -129,7 +138,7 @@ public class ResourceConfigurationViewer {
ConfigurationManagerLocal configurationManager =
LookupUtil.getConfigurationManager();
resourceConfigurationDefinition =
configurationManager.getResourceConfigurationDefinitionForResourceType(
- loggedInUser.getSubject(), resourceTypeId);
+ loggedInUser.getSubject(), resourceTypeId);
}
private void loadResourceConfiguration() {
@@ -157,8 +166,7 @@ public class ResourceConfigurationViewer {
protected void initRawConfigDirectories() {
if (isRawSupported() || isStructuredAndRawSupported()) {
initConfigDirectories();
- }
- else {
+ } else {
rawConfigDirectories = Collections.emptyList();
}
}
@@ -197,13 +205,11 @@ public class ResourceConfigurationViewer {
private void initMode() {
if (isStructuredSupported()) {
mode = STRUCTURED_MODE;
- }
- else if (isRawMode()) {
+ } else if (isRawMode()) {
mode = RAW_MODE;
- }
- else { // else structured and raw is supported and (at
least for now) we will just start
- mode = STRUCTURED_MODE; // the user off in structured mode. We may at some
later point want to add logic
- // to remember what mode the user should start in.
+ } else { // else structured and raw is supported and (at least for now) we will
just start
+ mode = STRUCTURED_MODE; // the user off in structured mode. We may at some
later point want to add logic
+ // to remember what mode the user should start in.
}
}
@@ -239,7 +245,7 @@ public class ResourceConfigurationViewer {
// however this property is read and its value applied to the modalEditor
component before the mode is updated.
//
// jsanda - 02/10/2010
-
+
return isRawSupported() || isStructuredAndRawSupported();
}
@@ -269,27 +275,25 @@ public class ResourceConfigurationViewer {
public void setSelectedTab(String tab) {
if (tab.equals("structuredTab")) {
mode = STRUCTURED_MODE;
- }
- else {
+ } else {
mode = RAW_MODE;
}
}
- public void changeTabs(ValueChangeEvent event) {
+ public void changeTabs(ValueChangeEvent event) throws ResourceNotFoundException,
ConfigurationValidationException {
if (event.getNewValue().equals("rawTab")) {
mode = RAW_MODE;
changeToRawTab();
- }
- else if (event.getNewValue().equals("structuredTab")) {
+ } else if (event.getNewValue().equals("structuredTab")) {
mode = STRUCTURED_MODE;
changeToStructuredTab();
}
}
- protected void changeToRawTab() {
+ protected void changeToRawTab() throws ResourceNotFoundException,
ConfigurationValidationException {
}
- protected void changeToStructuredTab() {
+ protected void changeToStructuredTab() throws ResourceNotFoundException,
ConfigurationValidationException {
}
public void select(String path) {
@@ -340,9 +344,8 @@ public class ResourceConfigurationViewer {
FacesContextUtility.getFacesContext().responseComplete();
return null;
- }
- catch (IOException e) {
-// log.error("Failed to complete download request for " +
getCurrentPath(), e);
+ } catch (IOException e) {
+ // log.error("Failed to complete download request for "
+ getCurrentPath(), e);
throw new RuntimeException(e);
}
}
@@ -354,5 +357,5 @@ public class ResourceConfigurationViewer {
public String getModalEditorContents() {
return selectedRawUIBean.getContents();
}
-
+
}
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
index 6672fbe..e25960b 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
@@ -28,7 +28,6 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
-import org.rhq.core.domain.resource.composite.ResourceParentFlyweight;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
@@ -47,28 +46,30 @@ public class ResourceSelectUIBean {
private String searchString;
private Log log = LogFactory.getLog(this.getClass());
-
+
private static final IntExtractor<ResourceComposite> RESOURCE_ID_EXTRACTOR =
new IntExtractor<ResourceComposite>() {
public int extract(ResourceComposite resource) {
return resource.getResource().getId();
}
};
-
+
public static class DisambiguationReportWrapper extends
DisambiguationReport<ResourceComposite> {
private static final long serialVersionUID = 1L;
-
+
private boolean typeResolutionNeeded;
private boolean parentResolutionNeeded;
private boolean pluginResolutionNeeded;
-
+
/**
* @param original
* @param parents
* @param resourceTypeName
* @param resourceTypePluginName
*/
- public DisambiguationReportWrapper(DisambiguationReport<ResourceComposite>
report, boolean typeResolutionNeeded, boolean parentResolutionNeeded, boolean
pluginResolutionNeeded) {
- super(report.getOriginal(), report.getParents(),
report.getResourceTypeName(), report.getResourceTypePluginName());
+ public DisambiguationReportWrapper(DisambiguationReport<ResourceComposite>
report,
+ boolean typeResolutionNeeded, boolean parentResolutionNeeded, boolean
pluginResolutionNeeded) {
+ super(report.getOriginal(), report.getParents(),
report.getResourceTypeName(), report
+ .getResourceTypePluginName());
this.typeResolutionNeeded = typeResolutionNeeded;
this.parentResolutionNeeded = parentResolutionNeeded;
this.pluginResolutionNeeded = pluginResolutionNeeded;
@@ -86,7 +87,7 @@ public class ResourceSelectUIBean {
return pluginResolutionNeeded;
}
}
-
+
public Resource getResource() {
return resource;
}
@@ -113,24 +114,27 @@ public class ResourceSelectUIBean {
result =
resourceManager.findResourceComposites(EnterpriseFacesContextUtility.getSubject(), null,
null, null,
null, pref, true, pc);
+ if (result.size() == 0) {
+ return new ArrayList<DisambiguationReportWrapper>();
+ }
+
return wrap(resourceManager.disambiguate(result, false, RESOURCE_ID_EXTRACTOR));
}
-
+
private List<DisambiguationReportWrapper>
wrap(ResourceNamesDisambiguationResult<ResourceComposite> result) {
List<DisambiguationReportWrapper> ret = new
ArrayList<DisambiguationReportWrapper>();
if (result == null) {
return ret;
}
-
+
boolean typeRes = result.isTypeResolutionNeeded();
boolean parentRes = result.isParentResolutionNeeded();
boolean pluginRes = result.isPluginResolutionNeeded();
-
-
+
for (DisambiguationReport<ResourceComposite> r : result.getResolution()) {
ret.add(new DisambiguationReportWrapper(r, typeRes, parentRes, pluginRes));
}
-
+
return ret;
}
}
diff --git
a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
index 3342ef1..7f993ff 100644
---
a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
+++
b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
@@ -18,37 +18,23 @@
*/
package org.rhq.enterprise.client.proxy;
-import java.lang.reflect.InvocationTargetException;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
-import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import javassist.CannotCompileException;
-import javassist.ClassPool;
-import javassist.CtClass;
-import javassist.CtMethod;
-import javassist.CtNewMethod;
-import javassist.NotFoundException;
-import javassist.bytecode.ParameterAnnotationsAttribute;
-import javassist.bytecode.annotation.Annotation;
-import javassist.bytecode.annotation.StringMemberValue;
import javassist.util.proxy.MethodHandler;
-import javassist.util.proxy.ProxyFactory;
-
-import javax.jws.WebParam;
import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
+import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.content.InstalledPackage;
import org.rhq.core.domain.content.PackageType;
@@ -68,19 +54,20 @@ import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.operation.ResourceOperationHistory;
import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.ResourceCreationDataType;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
import org.rhq.core.domain.util.Summary;
-import org.rhq.enterprise.client.RemoteClient;
import org.rhq.enterprise.client.ClientMain;
-import org.rhq.enterprise.client.utility.LazyLoadScenario;
-import org.rhq.enterprise.client.utility.ShortOutput;
+import org.rhq.enterprise.client.RemoteClient;
import org.rhq.enterprise.client.utility.ConfigurationClassBuilder;
+import org.rhq.enterprise.client.utility.LazyLoadScenario;
import org.rhq.enterprise.client.utility.ScriptUtil;
+import org.rhq.enterprise.client.utility.ShortOutput;
+import
org.rhq.enterprise.server.configuration.ConfigurationUpdateStillInProgressException;
import org.rhq.enterprise.server.content.ContentManagerRemote;
import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.enterprise.server.resource.ResourceNotFoundException;
import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
/**
@@ -369,6 +356,7 @@ public class ResourceClientProxy {
public String toString() {
return getName();
}
+
public String getShortOutput() {
return getDisplayValue();
}
@@ -461,18 +449,16 @@ public class ResourceClientProxy {
}
public PluginConfigurationUpdate updatePluginConfiguration(Configuration
configuration) {
- PluginConfigurationUpdate update =
- remoteClient.getConfigurationManagerRemote().updatePluginConfiguration(
- remoteClient.getSubject(),
- resourceClientProxy.getId(),
- configuration);
+ PluginConfigurationUpdate update =
remoteClient.getConfigurationManagerRemote().updatePluginConfiguration(
+ remoteClient.getSubject(), resourceClientProxy.getId(), configuration);
return update;
}
public void editPluginConfiguration() {
ConfigurationEditor editor = new
ConfigurationEditor(resourceClientProxy.client);
- Configuration config =
editor.editConfiguration(getPluginConfigurationDefinition(), getPluginConfiguration());
+ Configuration config =
editor.editConfiguration(getPluginConfigurationDefinition(),
+ getPluginConfiguration());
if (config != null) {
updatePluginConfiguration(config);
}
@@ -480,7 +466,8 @@ public class ResourceClientProxy {
public void editResourceConfiguration() {
ConfigurationEditor editor = new
ConfigurationEditor(resourceClientProxy.client);
- Configuration config =
editor.editConfiguration(getResourceConfigurationDefinition(),
getResourceConfiguration());
+ Configuration config =
editor.editConfiguration(getResourceConfigurationDefinition(),
+ getResourceConfiguration());
if (config != null) {
updateResourceConfiguration(config);
}
@@ -499,11 +486,21 @@ public class ResourceClientProxy {
}
public ResourceConfigurationUpdate updateResourceConfiguration(Configuration
configuration) {
- ResourceConfigurationUpdate update =
-
remoteClient.getConfigurationManagerRemote().updateResourceConfiguration(
- remoteClient.getSubject(),
- resourceClientProxy.getId(),
- configuration);
+ ResourceConfigurationUpdate update = null;
+
+ try {
+ update =
remoteClient.getConfigurationManagerRemote().updateResourceConfiguration(
+ remoteClient.getSubject(), resourceClientProxy.getId(),
configuration);
+ } catch (ResourceNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ConfigurationUpdateStillInProgressException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ConfigurationValidationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
return update;
@@ -511,7 +508,8 @@ public class ResourceClientProxy {
public InstalledPackage getBackingContent() {
- return
remoteClient.getContentManagerRemote().getBackingPackageForResource(remoteClient.getSubject(),
resourceClientProxy.resourceId);
+ return
remoteClient.getContentManagerRemote().getBackingPackageForResource(remoteClient.getSubject(),
+ resourceClientProxy.resourceId);
}
public void updateBackingContent(String filename) {
@@ -523,15 +521,13 @@ public class ResourceClientProxy {
throw new IllegalArgumentException("File expected, found directory:
" + file.getAbsolutePath());
}
-
InstalledPackage oldPackage = getBackingContent();
-
String oldVersion = oldPackage.getPackageVersion().getVersion();
String newVersion = "1.0";
if (oldVersion != null && oldVersion.length() != 0) {
String[] parts = oldVersion.split("[^a-zA-Z0-9]");
- String lastPart = parts[parts.length-1];
+ String lastPart = parts[parts.length - 1];
try {
int lastNumber = Integer.parseInt(lastPart);
newVersion = oldVersion.substring(0, oldVersion.length() -
lastPart.length()) + (lastNumber + 1);
@@ -542,21 +538,13 @@ public class ResourceClientProxy {
byte[] fileContents = new ScriptUtil(null).getFileBytes(filename);
+ PackageVersion pv =
remoteClient.getContentManagerRemote().createPackageVersion(remoteClient.getSubject(),
+ oldPackage.getPackageVersion().getGeneralPackage().getName(),
+
oldPackage.getPackageVersion().getGeneralPackage().getPackageType().getId(), newVersion,
+ oldPackage.getPackageVersion().getArchitecture().getId(), fileContents);
- PackageVersion pv =
- remoteClient.getContentManagerRemote().createPackageVersion(
- remoteClient.getSubject(),
- oldPackage.getPackageVersion().getGeneralPackage().getName(),
-
oldPackage.getPackageVersion().getGeneralPackage().getPackageType().getId(),
- newVersion,
- oldPackage.getPackageVersion().getArchitecture().getId(),
- fileContents);
-
- remoteClient.getContentManagerRemote().deployPackages(
- remoteClient.getSubject(),
- new int[] { resourceClientProxy.getId()},
- new int[] {pv.getId()});
-
+
remoteClient.getContentManagerRemote().deployPackages(remoteClient.getSubject(),
+ new int[] { resourceClientProxy.getId() }, new int[] { pv.getId() });
}
@@ -564,14 +552,13 @@ public class ResourceClientProxy {
InstalledPackage installedPackage = getBackingContent();
- if (fileName == null )
+ if (fileName == null)
fileName = installedPackage.getPackageVersion().getFileName();
-
+
File file = new File(fileName);
- byte[] data =
- remoteClient.getContentManagerRemote().getPackageBytes(
- remoteClient.getSubject(), resourceClientProxy.resourceId,
installedPackage.getId());
+ byte[] data =
remoteClient.getContentManagerRemote().getPackageBytes(remoteClient.getSubject(),
+ resourceClientProxy.resourceId, installedPackage.getId());
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
@@ -581,8 +568,6 @@ public class ResourceClientProxy {
//
------------------------------------------------------------------------------------------------------
-
-
public Object invoke(Object proxy, Method method, Method proceedMethod, Object[]
args) throws Throwable {
if (proceedMethod != null) {
@@ -620,7 +605,6 @@ public class ResourceClientProxy {
}
}
-
static String simpleName(String name) {
return decapitalize(name.replaceAll("\\W", ""));
}
@@ -657,10 +641,8 @@ public class ResourceClientProxy {
public InstalledPackage getBackingContent();
-
public void updateBackingContent(String fileName);
-
public void retrieveBackingContent(String fileName) throws IOException;
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index 9f800c7..71370f2 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -55,6 +55,7 @@ import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.ConfigurationUpdateStatus;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.Property;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
@@ -976,33 +977,14 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
public ResourceConfigurationUpdate updateStructuredOrRawConfiguration(Subject
subject, int resourceId,
Configuration newConfiguration, boolean fromStructured) throws
ResourceNotFoundException,
- ConfigurationUpdateStillInProgressException {
+ ConfigurationUpdateStillInProgressException, ConfigurationValidationException {
Configuration configToUpdate = newConfiguration;
if (isStructuredAndRawSupported(resourceId)) {
configToUpdate = translateResourceConfiguration(subject, resourceId,
newConfiguration, fromStructured);
}
- try {
- Configuration invalidConfig = validateResourceConfiguration(subject,
resourceId, newConfiguration,
- fromStructured);
- if (null != invalidConfig) {
- Resource resource = resourceManager.getResourceById(subject,
resourceId);
- ResourceConfigurationUpdate resourceConfigurationUpdate = new
ResourceConfigurationUpdate(resource,
- invalidConfig, subject.getName());
-
resourceConfigurationUpdate.setErrorMessage("resource.validation.failed");
-
resourceConfigurationUpdate.setStatus(ConfigurationUpdateStatus.FAILURE);
-
- return resourceConfigurationUpdate;
- }
- } catch (PluginContainerException e) {
- Resource resource = resourceManager.getResourceById(subject, resourceId);
- ResourceConfigurationUpdate resourceConfigurationUpdate = new
ResourceConfigurationUpdate(resource,
- newConfiguration, subject.getName());
- resourceConfigurationUpdate.setErrorMessage(e.getMessage());
- resourceConfigurationUpdate.setStatus(ConfigurationUpdateStatus.FAILURE);
- return resourceConfigurationUpdate;
- }
+ validateResourceConfiguration(subject, resourceId, newConfiguration,
fromStructured);
ResourceConfigurationUpdate newUpdate =
configurationManager.persistNewResourceConfigurationUpdateHistory(
subject, resourceId, configToUpdate, ConfigurationUpdateStatus.INPROGRESS,
subject.getName(), false);
@@ -1010,8 +992,8 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
return newUpdate;
}
- private Configuration validateResourceConfiguration(Subject subject, int resourceId,
Configuration configuration,
- boolean isStructured) throws PluginContainerException {
+ private void validateResourceConfiguration(Subject subject, int resourceId,
Configuration configuration,
+ boolean isStructured) throws ConfigurationValidationException {
Resource resource = entityManager.find(Resource.class, resourceId);
if (resource == null) {
throw new NoResultException("Cannot get live configuration for unknown
resource [" + resourceId + "]");
@@ -1023,7 +1005,7 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
Agent agent = resource.getAgent();
AgentClient agentClient = this.agentManager.getAgentClient(agent);
ConfigurationAgentService configService =
agentClient.getConfigurationAgentService();
- return configService.validate(configuration, resourceId, isStructured);
+ configService.validate(configuration, resourceId, isStructured);
}
private boolean isRawSupported(int resourceId) {
@@ -1096,7 +1078,8 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
}
public void rollbackResourceConfiguration(Subject subject, int resourceId, int
configHistoryId)
- throws ConfigurationUpdateException {
+ throws ConfigurationUpdateException, ResourceNotFoundException,
ConfigurationUpdateStillInProgressException,
+ ConfigurationValidationException {
ResourceConfigurationUpdate configurationUpdateHistory =
entityManager.find(ResourceConfigurationUpdate.class,
configHistoryId);
Configuration configuration = configurationUpdateHistory.getConfiguration();
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
index 755427c..16764b5 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
@@ -18,18 +18,21 @@
*/
package org.rhq.enterprise.server.configuration;
+import java.util.List;
+import java.util.Map;
+
+import javax.ejb.Local;
+
import org.jetbrains.annotations.Nullable;
import org.quartz.SchedulerException;
-import org.rhq.core.clientapi.agent.PluginContainerException;
-import org.rhq.core.clientapi.agent.configuration.ConfigurationValidationException;
import org.rhq.core.clientapi.server.configuration.ConfigurationUpdateResponse;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.ConfigurationUpdateStatus;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
-import org.rhq.core.domain.configuration.RawConfiguration;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.composite.ConfigurationUpdateComposite;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
@@ -44,11 +47,6 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.configuration.job.GroupPluginConfigurationUpdateJob;
import org.rhq.enterprise.server.resource.ResourceNotFoundException;
-import javax.ejb.Local;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
/**
* The configuration manager which allows you to request resource configuration changes,
view current resource
* configuration and previous update history and view/edit plugin configuration.
@@ -57,7 +55,7 @@ import java.util.Map;
* @author Ian Springer
*/
@Local
-public interface ConfigurationManagerLocal {
+public interface ConfigurationManagerLocal extends ConfigurationManagerRemote {
/**
* Updates the plugin configuration used to connect and communicate with the resource
using the information in the
@@ -150,9 +148,13 @@ public interface ConfigurationManagerLocal {
* @param configHistoryId the id of the resource's previous configuration to
rollback to
*
* @throws ConfigurationUpdateException if the configHistoryId does not exist
+ * @throws ConfigurationValidationException
+ * @throws ConfigurationUpdateStillInProgressException
+ * @throws ResourceNotFoundException
*/
void rollbackResourceConfiguration(Subject subject, int resourceId, int
configHistoryId)
- throws ConfigurationUpdateException;
+ throws ConfigurationUpdateException, ResourceNotFoundException,
ConfigurationUpdateStillInProgressException,
+ ConfigurationValidationException;
/**
* For internal use only - do not call this method. This is for
@@ -373,119 +375,4 @@ public interface ConfigurationManagerLocal {
*/
void checkForTimedOutConfigurationUpdateRequests();
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- public GroupPluginConfigurationUpdate getGroupPluginConfigurationUpdate(Subject
subject, int configurationUpdateId);
-
- public GroupResourceConfigurationUpdate getGroupResourceConfigurationUpdate(Subject
subject,
- int configurationUpdateId);
-
- public Configuration getConfiguration(Subject subject, int configurationId);
-
- /**
- * Get the current plugin configuration for the {@link Resource} with the given id,
or <code>null</code> if the
- * resource's plugin configuration is not yet initialized.
- *
- * @param subject the user who wants to see the information
- * @param resourceId a {@link Resource} id
- *
- * @return the current plugin configuration for the {@link Resource} with the given
id, or <code>null</code> if the
- * resource's configuration is not yet initialized
- * @throws FetchException TODO
- */
- @Nullable
- Configuration getPluginConfiguration(Subject subject, int resourceId);
-
- /**
- * Get the latest plugin configuration for the {@link Resource} with the given id.
Returns the configuration as it
- * is known on the server-side in the database.
- *
- * @param subject the user who wants to see the information
- * @param resourceId a {@link Resource} id
- *
- * @return the current plugin configuration (along with additional information about
the configuration) for the
- * {@link Resource} with the given id
- * @throws FetchException TODO
- */
- PluginConfigurationUpdate getLatestPluginConfigurationUpdate(Subject subject, int
resourceId);
-
- /**
- * Get the latest resource configuration for the {@link Resource} with the given id,
or <code>null</code> if the
- * resource's configuration is not yet initialized and for some reason we
can't get its current live configuration
- * (e.g. in the case the agent or resource is down). Returns the configuration as it
is known on the server-side in
- * the database. The database will be sync'ed with the live values, if the
currently live configuration is actually
- * different than the latest configuration update found in history.
- *
- * @param subject the user who wants to see the information
- * @param resourceId a {@link Resource} id
- *
- * @return the current configuration (along with additional information about the
configuration) for the
- * {@link Resource} with the given id, or <code>null</code> if
the resource's configuration is not yet
- * initialized and its live configuration could not be determined
- * @throws FetchException TODO
- */
- @Nullable
- ResourceConfigurationUpdate getLatestResourceConfigurationUpdate(Subject subject, int
resourceId);
-
- ResourceConfigurationUpdate getLatestResourceConfigurationUpdate(Subject subject, int
resourceId,
- boolean fromStructured);
-
- boolean isResourceConfigurationUpdateInProgress(Subject subject, int resourceId);
-
- boolean isGroupResourceConfigurationUpdateInProgress(Subject subject, int groupId);
-
- int scheduleGroupResourceConfigurationUpdate(Subject subject, int compatibleGroupId,
- Map<Integer, Configuration> newResourceConfigurationMap);
-
- /**
- * Updates the plugin configuration used to connect and communicate with the
resource. The given <code>
- * newConfiguration</code> is usually a modified version of a configuration
returned by
- * {@link #getPluginConfiguration(Subject, int)}.
- *
- * @param subject the user who wants to see the information
- * @param resourceId a {@link Resource} id
- * @param newConfiguration the new plugin configuration
- *
- * @return the plugin configuration update item corresponding to this request
- */
- PluginConfigurationUpdate updatePluginConfiguration(Subject subject, int resourceId,
Configuration newConfiguration)
- throws ResourceNotFoundException;
-
- /**
- * This method is called when a user has requested to change the resource
configuration for an existing resource. If
- * the user does not have the proper permissions to change the resource's
configuration, an exception is thrown.
- *
- * <p>This will not wait for the agent to finish the configuration update. This
will return after the request is
- * sent. Once the agent finishes with the request, it will send the completed request
information to
- * {@link #completeResourceConfigurationUpdate}.</p>
- *
- * @param subject the user who is requesting the update
- * @param resourceId identifies the resource to be updated
- * @param newConfiguration the resource's desired new configuration
- *
- * @return the resource configuration update item corresponding to this request. null
- * if newConfiguration is equal to the existing configuration.
- */
- @Nullable
- ResourceConfigurationUpdate updateResourceConfiguration(Subject subject, int
resourceId,
- Configuration newConfiguration) throws ResourceNotFoundException,
ConfigurationUpdateStillInProgressException;
-
- ResourceConfigurationUpdate updateStructuredOrRawConfiguration(Subject subject, int
resourceId,
- Configuration newConfiguration, boolean fromStructured) throws
ResourceNotFoundException,
- ConfigurationUpdateStillInProgressException;
-
- Configuration getResourceConfiguration(Subject subject, int resourceId);
-
- /**
- * @see
ConfigurationManagerRemote#getPackageTypeConfigurationDefinition(Subject,int)
- */
- ConfigurationDefinition getPackageTypeConfigurationDefinition(Subject subject, int
packageTypeId);
-
- Configuration translateResourceConfiguration(Subject subject, int resourceId,
Configuration configuration,
- boolean fromStructured) throws ResourceNotFoundException,
TranslationNotSupportedException;
-
}
\ No newline at end of file
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
index 74bfdc4..0d7ae1b 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
@@ -32,6 +32,7 @@ import org.jetbrains.annotations.Nullable;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
@@ -178,12 +179,13 @@ public interface ConfigurationManagerRemote {
@WebParam(name = "resourceId") int resourceId, //
@WebParam(name = "newConfiguration")//
@XmlJavaTypeAdapter(ConfigurationAdapter.class) Configuration newConfiguration)
- throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException;
+ throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException,
ConfigurationValidationException;
@WebMethod
ResourceConfigurationUpdate updateStructuredOrRawConfiguration(@WebParam Subject
subject, @WebParam int resourceId,
@WebParam @XmlJavaTypeAdapter(ConfigurationAdapter.class) Configuration
newConfiguration,
- @WebParam boolean fromStructured) throws ResourceNotFoundException,
ConfigurationUpdateStillInProgressException;
+ @WebParam boolean fromStructured) throws ResourceNotFoundException,
+ ConfigurationUpdateStillInProgressException, ConfigurationValidationException;
/**
* Get the currently live resource configuration for the {@link Resource} with the
given id. This actually asks for
@@ -262,7 +264,17 @@ public interface ConfigurationManagerRemote {
@WebParam(name = "subject") Subject subject, //
@WebParam(name = "packageTypeId") int packageTypeId);
+ /**
+ *
+ * @param subject
+ * @param resourceId
+ * @param configuration
+ * @param fromStructured
+ * @return
+ * @throws ResourceNotFoundException
+ * @throws ConfigurationValidationException
+ */
Configuration translateResourceConfiguration(Subject subject, int resourceId,
Configuration configuration,
- boolean fromStructured) throws ResourceNotFoundException;
+ boolean fromStructured) throws ResourceNotFoundException,
ConfigurationValidationException;
}
\ No newline at end of file
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index a111f46..75ebb67 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -38,6 +38,7 @@ import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Role;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
@@ -471,13 +472,13 @@ public class WebservicesManagerBean implements WebservicesRemote {
public ResourceConfigurationUpdate updateResourceConfiguration(Subject subject, int
resourceId,
@XmlJavaTypeAdapter(ConfigurationAdapter.class) Configuration newConfiguration)
- throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException {
+ throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException,
ConfigurationValidationException {
return configurationManager.updateResourceConfiguration(subject, resourceId,
newConfiguration);
}
public ResourceConfigurationUpdate updateStructuredOrRawConfiguration(Subject
subject, int resourceId,
Configuration newConfiguration, boolean fromStructured) throws
ResourceNotFoundException,
- ConfigurationUpdateStillInProgressException {
+ ConfigurationUpdateStillInProgressException, ConfigurationValidationException {
return configurationManager.updateStructuredOrRawConfiguration(subject,
resourceId, newConfiguration,
fromStructured);
}
@@ -487,7 +488,7 @@ public class WebservicesManagerBean implements WebservicesRemote {
}
public Configuration translateResourceConfiguration(Subject subject, int resourceId,
Configuration configuration,
- boolean fromStructured) throws ResourceNotFoundException {
+ boolean fromStructured) throws ResourceNotFoundException,
ConfigurationValidationException {
return configurationManager.translateResourceConfiguration(subject, resourceId,
configuration, fromStructured);
}
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
index 45164d2..f0a6a64 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
@@ -23,7 +23,6 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Collection;
import javax.persistence.EntityManager;
@@ -43,10 +42,10 @@ import org.rhq.core.communications.command.annotation.Asynchronous;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.ConfigurationUpdateStatus;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
-import org.rhq.core.domain.configuration.RawConfiguration;
import org.rhq.core.domain.configuration.group.GroupPluginConfigurationUpdate;
import org.rhq.core.domain.discovery.AvailabilityReport;
import org.rhq.core.domain.discovery.InventoryReport;
@@ -942,7 +941,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
void delete(Configuration configuration) {
EntityManager entityMgr = getEntityManager();
Configuration managedConfig = entityMgr.find(Configuration.class,
configuration.getId());
- entityMgr.remove(managedConfig);
+ entityMgr.remove(managedConfig);
}
private class TestServices implements ConfigurationAgentService,
DiscoveryAgentService {
@@ -1087,9 +1086,10 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test
{
@Asynchronous(guaranteedDelivery = true)
public void synchronizeInventory(ResourceSyncInfo syncInfo) {
}
- public Configuration validate(Configuration configuration, int resourceId, boolean
isStructured)
- throws PluginContainerException {
- return null;
+
+ public void validate(Configuration configuration, int resourceId, boolean
isStructured)
+ throws ConfigurationValidationException {
+
}
}
}
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
index ebeda42..6b3aaf5 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
@@ -40,6 +40,7 @@ import org.rhq.core.clientapi.agent.support.SupportAgentService;
import org.rhq.core.clientapi.server.configuration.ConfigurationUpdateResponse;
import org.rhq.core.communications.command.annotation.Asynchronous;
import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.ConfigurationValidationException;
import org.rhq.core.domain.content.transfer.ContentDiscoveryReport;
import org.rhq.core.domain.content.transfer.DeletePackagesRequest;
import org.rhq.core.domain.content.transfer.DeployPackageStep;
@@ -255,8 +256,8 @@ public class TestAgentClient implements AgentClient,
ContentAgentService, Resour
return null;
}
- public Configuration validate(Configuration configuration, int resourceId, boolean
isStructured)
- throws PluginContainerException {
- return null;
+ public void validate(Configuration configuration, int resourceId, boolean
isStructured)
+ throws ConfigurationValidationException {
+ return;
}
}
commit 6ee5caa384239576f8f0d1025083925ff303af35
Author: Adam Young <ayoung(a)redhat.com>
Date: Thu Feb 25 14:24:54 2010 -0500
Removing exception that was tripping up the CLI.
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index f6fbb95..9f800c7 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -24,7 +24,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.Map.Entry;
import javax.ejb.EJB;
import javax.ejb.Stateless;
@@ -993,7 +992,7 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
invalidConfig, subject.getName());
resourceConfigurationUpdate.setErrorMessage("resource.validation.failed");
resourceConfigurationUpdate.setStatus(ConfigurationUpdateStatus.FAILURE);
-
+
return resourceConfigurationUpdate;
}
} catch (PluginContainerException e) {
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
index 4d834fd..74bfdc4 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
@@ -29,7 +29,6 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.jetbrains.annotations.Nullable;
-import org.rhq.core.clientapi.agent.PluginContainerException;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.AbstractResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.Configuration;
@@ -182,13 +181,9 @@ public interface ConfigurationManagerRemote {
throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException;
@WebMethod
- ResourceConfigurationUpdate updateStructuredOrRawConfiguration(
- @WebParam Subject subject,
- @WebParam int resourceId,
- @WebParam
- @XmlJavaTypeAdapter(ConfigurationAdapter.class) Configuration newConfiguration,
- @WebParam boolean fromStructured)
- throws ResourceNotFoundException, ConfigurationUpdateStillInProgressException,
PluginContainerException;
+ ResourceConfigurationUpdate updateStructuredOrRawConfiguration(@WebParam Subject
subject, @WebParam int resourceId,
+ @WebParam @XmlJavaTypeAdapter(ConfigurationAdapter.class) Configuration
newConfiguration,
+ @WebParam boolean fromStructured) throws ResourceNotFoundException,
ConfigurationUpdateStillInProgressException;
/**
* Get the currently live resource configuration for the {@link Resource} with the
given id. This actually asks for