modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
| 20 -
modules/core/domain/src/main/java/org/rhq/core/domain/common/Trigger.java
| 21 +
modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/GroupOperationSchedule.java
| 98 ++++++
modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/OperationSchedule.java
| 154 ++++++++++
modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/ResourceOperationSchedule.java
| 56 +++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
| 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/model/OperationParameters.java
| 6
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleDetailsUIBean.java
| 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleUIBean.java
| 4
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleDetailsUIBean.java
| 4
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleUIBean.java
| 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleDetailsUIBean.java
| 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleUIBean.java
| 2
modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/proxy/ResourceClientProxy.java
| 2
modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/utility/ScriptUtil.java
| 2
modules/enterprise/remoting/cli/src/test/java/org/rhq/enterprise/client/ClientMainTest.java
| 34 --
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java
| 12
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationSchedule.java
| 95 ------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
| 1
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationSchedule.java
| 154 ----------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
| 1
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationSchedule.java
| 53 ---
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
| 4
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
| 2
modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
| 2
32 files changed, 380 insertions(+), 369 deletions(-)
New commits:
commit 9d2a7b2c94f485660161085982e4084ee2d3677d
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Dec 16 12:49:02 2010 -0500
move OperationSchedule, ResourceOperationSchedule and GroupOperationSchedule POJOs
from server-jar to core-domain, so they can be used by coregui
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/common/Trigger.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/common/Trigger.java
index 6f6756c..da58047 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/common/Trigger.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/common/Trigger.java
@@ -19,6 +19,7 @@
*/
package org.rhq.core.domain.common;
+import java.io.Serializable;
import java.util.Date;
/**
@@ -28,7 +29,9 @@ import java.util.Date;
*
* @author Ian Springer
*/
-public class Trigger {
+public class Trigger implements Serializable {
+
+ private static final long serialVersionUID = 1L;
// Together, the startType, recurrenceType, and endType define what type of trigger
this is.
// For the remaining fields in this class, only those that apply to the trigger's
type will have non-null values.
@@ -125,6 +128,22 @@ public class Trigger {
return repeatCount;
}
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("Trigger");
+
sb.append("[cronExpression='").append(cronExpression).append('\'');
+ sb.append(", startType=").append(startType);
+ sb.append(", recurrenceType=").append(recurrenceType);
+ sb.append(", endType=").append(endType);
+ sb.append(", startDate=").append(startDate);
+ sb.append(", repeatInterval=").append(repeatInterval);
+ sb.append(", endDate=").append(endDate);
+ sb.append(", repeatCount=").append(repeatCount);
+ sb.append(']');
+ return sb.toString();
+ }
+
/**
* Create a trigger that will run now, once.
*
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/GroupOperationSchedule.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/GroupOperationSchedule.java
new file mode 100644
index 0000000..64c74de
--- /dev/null
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/GroupOperationSchedule.java
@@ -0,0 +1,98 @@
+/*
+ * 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.operation.bean;
+
+import java.util.List;
+
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+
+/**
+ * A simple non-entity POJO that describes a particular scheduled Resource group
operation.
+ */
+public class GroupOperationSchedule extends OperationSchedule {
+ private static final long serialVersionUID = 1L;
+
+ private ResourceGroup group;
+ private List<Resource> executionOrder;
+ private boolean haltOnFailure = false; // default to not stop on error
+
+ public GroupOperationSchedule() {
+ }
+
+ public ResourceGroup getGroup() {
+ return group;
+ }
+
+ public void setGroup(ResourceGroup group) {
+ this.group = group;
+ }
+
+ /**
+ * The order to execute the operations - the first resource in the list is the first
one to get its operation
+ * invoked. If this is <code>null</code>, all operations can be invoked
in any order and may even be done
+ * concurrently.
+ *
+ * @return list of resources in the order in which their operations are invoked, or
<code>null</code>
+ */
+ public List<Resource> getExecutionOrder() {
+ return executionOrder;
+ }
+
+ public void setExecutionOrder(List<Resource> executionOrder) {
+ this.executionOrder = executionOrder;
+ }
+
+ /**
+ * If <code>true</code>, the group operation will halt whenever one
individual resource fails to execute. When
+ * executing in order, this means once a failure occurs, the resources next in line
to execute will abort and not
+ * attempt to execute. If not executing in any particular order, you are not
guaranteed which will stop and which
+ * will continue since all are executed as fast as possible, but the group operation
will attempt to stop as best it
+ * can.
+ *
+ * @return halt flag
+ */
+ public boolean isHaltOnFailure() {
+ return haltOnFailure;
+ }
+
+ /**
+ * need a getXXX method instead of isXXX method for proper referencing from facelets
pages
+ */
+ public boolean getHaltOnFailure() {
+ return haltOnFailure;
+ }
+
+ public void setHaltOnFailure(boolean haltOnFailure) {
+ this.haltOnFailure = haltOnFailure;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder str = new StringBuilder("GroupOperationSchedule: ");
+
+ str.append("group=[" + this.group);
+ str.append("], execution-order=[" + this.executionOrder);
+ str.append("], halt-on-failure=[" + this.haltOnFailure);
+ str.append("],");
+ str.append(super.toString());
+
+ return str.toString();
+ }
+}
\ No newline at end of file
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/OperationSchedule.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/OperationSchedule.java
new file mode 100644
index 0000000..f92f3d0
--- /dev/null
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/OperationSchedule.java
@@ -0,0 +1,154 @@
+/*
+ * 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.operation.bean;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.operation.HistoryJobId;
+import org.rhq.core.domain.operation.JobId;
+
+/**
+ * A simple non-entity POJO that describes a particular scheduled operation.
+ *
+ * @author John Mazzitelli
+ */
+@XmlRootElement
+(a)XmlAccessorType(XmlAccessType.FIELD)
+public abstract class OperationSchedule implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private String jobName;
+ private String jobGroup;
+ private String operationName;
+ private String operationDisplayName;
+ private Configuration parameters;
+ private Subject subject;
+ private String description;
+
+ public OperationSchedule() {
+ }
+
+ public String getJobGroup() {
+ return jobGroup;
+ }
+
+ public void setJobGroup(String jobGroup) {
+ this.jobGroup = jobGroup;
+ }
+
+ public String getJobName() {
+ return jobName;
+ }
+
+ public void setJobName(String jobName) {
+ this.jobName = jobName;
+ }
+
+ public String getOperationName() {
+ return operationName;
+ }
+
+ public void setOperationName(String operationName) {
+ this.operationName = operationName;
+ }
+
+ public String getOperationDisplayName() {
+ /*
+ * this conditional is for "legacy" purposes, so that pre-existing
operation schedules don't return blank
+ * displayNames, they will default to returning the operationDefinition.name
instead
+ */
+ if ((operationDisplayName == null) || operationDisplayName.equals(""))
{
+ return getOperationName();
+ }
+
+ return operationDisplayName;
+ }
+
+ public void setOperationDisplayName(String operationDisplayName) {
+ this.operationDisplayName = operationDisplayName;
+ }
+
+ /**
+ * Returns the option parameters that are passed to the operation invocation.
+ *
+ * @return the parameters, or <code>null</code> if no parameters are to
be passed
+ */
+ public Configuration getParameters() {
+ return parameters;
+ }
+
+ public void setParameters(Configuration parameters) {
+ this.parameters = parameters;
+ }
+
+ public Subject getSubject() {
+ return subject;
+ }
+
+ public void setSubject(Subject subject) {
+ if (subject == null) {
+ throw new NullPointerException("Cannot schedule an operation without a
user associated with it");
+ }
+
+ this.subject = subject;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ /**
+ * The single job ID which identifies the operation. It can later be parsed via
{@link JobId#JobId(String)}. Note
+ * that this job ID only identifies the scheduled operation; it does not identify any
specific invocation of that
+ * operation (see {@link HistoryJobId} for that).
+ *
+ * @return job ID
+ */
+ @XmlElement
+ public JobId getJobId() {
+ return new JobId(this.jobName, this.jobGroup);
+ }
+
+ /*
+ * there may be some operations whose parameters are sensitive values, such as
passwords - do not show them
+ * as part of the toString. they can still be gotten by explicitly calling
getParameters()
+ */
+ @Override
+ public String toString() {
+ StringBuilder str = new StringBuilder();
+ str.append("job-name=[" + this.jobName);
+ str.append("], job-group=[" + this.jobGroup);
+ str.append("], operation-name=[" + this.operationName);
+ str.append("], subject=[" + this.subject);
+ str.append("], description=[" + this.description);
+ str.append("]");
+ return str.toString();
+ }
+}
\ No newline at end of file
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/ResourceOperationSchedule.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/ResourceOperationSchedule.java
new file mode 100644
index 0000000..b00e867
--- /dev/null
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/operation/bean/ResourceOperationSchedule.java
@@ -0,0 +1,56 @@
+/*
+ * 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.operation.bean;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.rhq.core.domain.resource.Resource;
+
+/**
+ * A simple non-entity POJO that describes a particular scheduled Resource operation.
+ */
+@XmlRootElement
+(a)XmlAccessorType(XmlAccessType.FIELD)
+public class ResourceOperationSchedule extends OperationSchedule {
+ private Resource resource;
+
+ public ResourceOperationSchedule() {
+ }
+
+ public Resource getResource() {
+ return resource;
+ }
+
+ public void setResource(Resource resource) {
+ this.resource = resource;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder str = new StringBuilder("ResourceOperationSchedule: ");
+
+ str.append("resource=[" + this.resource);
+ str.append("],");
+ str.append(super.toString());
+
+ return str.toString();
+ }
+}
\ No newline at end of file
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
index a44e5f0..7cef256 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/OperationGWTServiceImpl.java
@@ -27,6 +27,7 @@ import org.rhq.core.domain.criteria.GroupOperationHistoryCriteria;
import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria;
import org.rhq.core.domain.operation.GroupOperationHistory;
import org.rhq.core.domain.operation.ResourceOperationHistory;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.operation.composite.ResourceOperationLastCompletedComposite;
import org.rhq.core.domain.operation.composite.ResourceOperationScheduleComposite;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
@@ -37,7 +38,6 @@ import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.enterprise.gui.coregui.client.gwt.OperationGWTService;
import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import
org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
import org.rhq.enterprise.server.util.LookupUtil;
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/model/OperationParameters.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/model/OperationParameters.java
index e7317da..4b0617c 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/model/OperationParameters.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/model/OperationParameters.java
@@ -25,15 +25,15 @@ import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.OperationHistory;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.enterprise.server.core.plugin.PluginReloadedException;
-import org.rhq.enterprise.server.operation.GroupOperationSchedule;
import org.rhq.enterprise.server.operation.OperationDefinitionNotFoundException;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
-import org.rhq.enterprise.server.operation.OperationSchedule;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.core.domain.operation.bean.OperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.enterprise.server.util.LookupUtil;
public class OperationParameters {
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleDetailsUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleDetailsUIBean.java
index d04f199..55da3bc 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleDetailsUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleDetailsUIBean.java
@@ -22,12 +22,12 @@ import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.operation.bean.OperationSchedule;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.common.scheduling.OperationDetailsScheduleComponent;
import org.rhq.enterprise.gui.operation.model.OperationParameters;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
-import org.rhq.enterprise.server.operation.OperationSchedule;
import org.rhq.enterprise.server.scheduler.SchedulerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleUIBean.java
index d8b7692..adadafb 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/OperationScheduleUIBean.java
@@ -34,6 +34,7 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.operation.OperationDefinition;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.gui.util.FacesContextUtility;
@@ -51,8 +52,7 @@ import
org.rhq.enterprise.gui.operation.schedule.group.ResourceGroupOperationSch
import
org.rhq.enterprise.gui.operation.schedule.resource.ResourceOperationScheduleUIBean;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
-import org.rhq.enterprise.server.operation.OperationSchedule;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.core.domain.operation.bean.OperationSchedule;
import org.rhq.enterprise.server.util.LookupUtil;
public abstract class OperationScheduleUIBean extends PagedDataTableUIBean {
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleDetailsUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleDetailsUIBean.java
index e6111ca..8e32bcd 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleDetailsUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleDetailsUIBean.java
@@ -23,11 +23,11 @@ import java.util.List;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.composite.IntegerOptionItem;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
import org.rhq.core.domain.resource.Resource;
import
org.rhq.enterprise.gui.operation.definition.group.ResourceGroupExecutionTypeUIBean;
import org.rhq.enterprise.gui.operation.schedule.OperationScheduleDetailsUIBean;
-import org.rhq.enterprise.server.operation.GroupOperationSchedule;
-import org.rhq.enterprise.server.operation.OperationSchedule;
+import org.rhq.core.domain.operation.bean.OperationSchedule;
public class ResourceGroupOperationScheduleDetailsUIBean extends
OperationScheduleDetailsUIBean {
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleUIBean.java
index e70ea9b..ee07ab0 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/group/ResourceGroupOperationScheduleUIBean.java
@@ -35,7 +35,7 @@ import org.rhq.core.gui.util.FacesContextUtility;
import
org.rhq.enterprise.gui.operation.definition.group.ResourceGroupOperationDefinitionUIBean;
import org.rhq.enterprise.gui.operation.schedule.OperationScheduleUIBean;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
-import org.rhq.enterprise.server.operation.GroupOperationSchedule;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
import org.rhq.enterprise.server.scheduler.SchedulerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
import org.rhq.enterprise.server.util.QuartzUtil;
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleDetailsUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleDetailsUIBean.java
index 0f6983f..a56b845 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleDetailsUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleDetailsUIBean.java
@@ -21,7 +21,7 @@ package org.rhq.enterprise.gui.operation.schedule.resource;
import org.quartz.SchedulerException;
import org.rhq.core.domain.auth.Subject;
import org.rhq.enterprise.gui.operation.schedule.OperationScheduleDetailsUIBean;
-import org.rhq.enterprise.server.operation.OperationSchedule;
+import org.rhq.core.domain.operation.bean.OperationSchedule;
public class ResourceOperationScheduleDetailsUIBean extends
OperationScheduleDetailsUIBean {
@Override
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleUIBean.java
index 9f8857c..4d9cecf 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/operation/schedule/resource/ResourceOperationScheduleUIBean.java
@@ -32,7 +32,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.operation.schedule.OperationScheduleUIBean;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.enterprise.server.scheduler.SchedulerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
import org.rhq.enterprise.server.util.QuartzUtil;
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 a76a0ad..6d56a76 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
@@ -64,7 +64,7 @@ import org.rhq.enterprise.client.utility.ShortOutput;
import org.rhq.enterprise.client.utility.ConfigurationClassBuilder;
import org.rhq.enterprise.client.utility.ScriptUtil;
import org.rhq.enterprise.server.content.ContentManagerRemote;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
/**
diff --git
a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/utility/ScriptUtil.java
b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/utility/ScriptUtil.java
index f75ecec..5333522 100644
---
a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/utility/ScriptUtil.java
+++
b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/utility/ScriptUtil.java
@@ -31,7 +31,7 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
import org.rhq.enterprise.client.ClientMain;
import org.rhq.enterprise.client.commands.ScriptCommand;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.enterprise.server.resource.ResourceManagerRemote;
import javax.script.Bindings;
diff --git
a/modules/enterprise/remoting/cli/src/test/java/org/rhq/enterprise/client/ClientMainTest.java
b/modules/enterprise/remoting/cli/src/test/java/org/rhq/enterprise/client/ClientMainTest.java
index 2dc4193..98549fd 100644
---
a/modules/enterprise/remoting/cli/src/test/java/org/rhq/enterprise/client/ClientMainTest.java
+++
b/modules/enterprise/remoting/cli/src/test/java/org/rhq/enterprise/client/ClientMainTest.java
@@ -1,42 +1,8 @@
package org.rhq.enterprise.client;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-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.content.Architecture;
-import org.rhq.core.domain.content.Repo;
-import org.rhq.core.domain.content.PackageType;
-import org.rhq.core.domain.content.PackageVersion;
-import org.rhq.core.domain.measurement.AvailabilityType;
-import org.rhq.core.domain.operation.ResourceOperationHistory;
-import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.ResourceCategory;
-import org.rhq.core.domain.resource.ResourceSubCategory;
-import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.resource.composite.ResourceComposite;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.enterprise.server.auth.SubjectManagerRemote;
-import org.rhq.enterprise.server.authz.RoleManagerRemote;
-import org.rhq.enterprise.server.configuration.ConfigurationManagerRemote;
-import org.rhq.enterprise.server.content.RepoManagerRemote;
-import org.rhq.enterprise.server.content.ContentManagerRemote;
-import org.rhq.enterprise.server.operation.OperationManagerRemote;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
-import org.rhq.enterprise.server.resource.ResourceManagerRemote;
-
/**
* These tests can not be executed in our standard unit test fashion as they require a
running RHQ
* Server with our web services deployed.
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
index 7192a9c..42e0312 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
@@ -33,6 +33,8 @@ import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.OperationHistory;
import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.operation.ResourceOperationHistory;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.PageControl;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationSchedule.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationSchedule.java
deleted file mode 100644
index 8ebf8d9..0000000
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationSchedule.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.operation;
-
-import java.util.List;
-
-import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.group.ResourceGroup;
-
-public class GroupOperationSchedule extends OperationSchedule {
- private static final long serialVersionUID = 1L;
-
- private ResourceGroup group;
- private List<Resource> executionOrder;
- private boolean haltOnFailure = false; // default to not stop on error
-
- public GroupOperationSchedule() {
- }
-
- public ResourceGroup getGroup() {
- return group;
- }
-
- public void setGroup(ResourceGroup group) {
- this.group = group;
- }
-
- /**
- * The order to execute the operations - the first resource in the list is the first
one to get its operation
- * invoked. If this is <code>null</code>, all operations can be invoked
in any order and may even be done
- * concurrently.
- *
- * @return list of resources in the order in which their operations are invoked, or
<code>null</code>
- */
- public List<Resource> getExecutionOrder() {
- return executionOrder;
- }
-
- public void setExecutionOrder(List<Resource> executionOrder) {
- this.executionOrder = executionOrder;
- }
-
- /**
- * If <code>true</code>, the group operation will halt whenever one
individual resource fails to execute. When
- * executing in order, this means once a failure occurs, the resources next in line
to execute will abort and not
- * attempt to execute. If not executing in any particular order, you are not
guaranteed which will stop and which
- * will continue since all are executed as fast as possible, but the group operation
will attempt to stop as best it
- * can.
- *
- * @return halt flag
- */
- public boolean isHaltOnFailure() {
- return haltOnFailure;
- }
-
- /**
- * need a getXXX method instead of isXXX method for proper referencing from facelets
pages
- */
- public boolean getHaltOnFailure() {
- return haltOnFailure;
- }
-
- public void setHaltOnFailure(boolean haltOnFailure) {
- this.haltOnFailure = haltOnFailure;
- }
-
- @Override
- public String toString() {
- StringBuilder str = new StringBuilder("GroupOperationSchedule: ");
-
- str.append("group=[" + this.group);
- str.append("], execution-order=[" + this.executionOrder);
- str.append("], halt-on-failure=[" + this.haltOnFailure);
- str.append("],");
- str.append(super.toString());
-
- return str.toString();
- }
-}
\ No newline at end of file
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
index 558c50d..f5988e3 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
@@ -30,6 +30,7 @@ import org.rhq.core.domain.operation.GroupOperationHistory;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.ResourceOperationHistory;
import org.rhq.core.domain.operation.ScheduleJobId;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
index 992e401..cdda16d 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerBean.java
@@ -61,6 +61,8 @@ import org.rhq.core.domain.operation.OperationScheduleEntity;
import org.rhq.core.domain.operation.ResourceOperationHistory;
import org.rhq.core.domain.operation.ResourceOperationScheduleEntity;
import org.rhq.core.domain.operation.ScheduleJobId;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.operation.composite.GroupOperationLastCompletedComposite;
import org.rhq.core.domain.operation.composite.GroupOperationScheduleComposite;
import org.rhq.core.domain.operation.composite.ResourceOperationLastCompletedComposite;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java
index b8ff855..d74a88c 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerLocal.java
@@ -38,6 +38,8 @@ import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.OperationHistory;
import org.rhq.core.domain.operation.ResourceOperationHistory;
import org.rhq.core.domain.operation.ScheduleJobId;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.operation.composite.GroupOperationLastCompletedComposite;
import org.rhq.core.domain.operation.composite.GroupOperationScheduleComposite;
import org.rhq.core.domain.operation.composite.ResourceOperationLastCompletedComposite;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
index cc6f557..26e5f4f 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationManagerRemote.java
@@ -35,6 +35,8 @@ import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria;
import org.rhq.core.domain.operation.GroupOperationHistory;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.ResourceOperationHistory;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.exception.ScheduleException;
import org.rhq.enterprise.server.exception.UnscheduleException;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationSchedule.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationSchedule.java
deleted file mode 100644
index bb5a636..0000000
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationSchedule.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.operation;
-
-import java.io.Serializable;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.operation.HistoryJobId;
-import org.rhq.core.domain.operation.JobId;
-
-/**
- * A simple non-entity POJO that describes a particular scheduled operation.
- *
- * @author John Mazzitelli
- */
-@XmlRootElement
-(a)XmlAccessorType(XmlAccessType.FIELD)
-public abstract class OperationSchedule implements Serializable {
- private static final long serialVersionUID = 1L;
-
- private String jobName;
- private String jobGroup;
- private String operationName;
- private String operationDisplayName;
- private Configuration parameters;
- private Subject subject;
- private String description;
-
- public OperationSchedule() {
- }
-
- public String getJobGroup() {
- return jobGroup;
- }
-
- public void setJobGroup(String jobGroup) {
- this.jobGroup = jobGroup;
- }
-
- public String getJobName() {
- return jobName;
- }
-
- public void setJobName(String jobName) {
- this.jobName = jobName;
- }
-
- public String getOperationName() {
- return operationName;
- }
-
- public void setOperationName(String operationName) {
- this.operationName = operationName;
- }
-
- public String getOperationDisplayName() {
- /*
- * this conditional is for "legacy" purposes, so that pre-existing
operation schedules don't return blank
- * displayNames, they will default to returning the operationDefinition.name
instead
- */
- if ((operationDisplayName == null) || operationDisplayName.equals(""))
{
- return getOperationName();
- }
-
- return operationDisplayName;
- }
-
- public void setOperationDisplayName(String operationDisplayName) {
- this.operationDisplayName = operationDisplayName;
- }
-
- /**
- * Returns the option parameters that are passed to the operation invocation.
- *
- * @return the parameters, or <code>null</code> if no parameters are to
be passed
- */
- public Configuration getParameters() {
- return parameters;
- }
-
- public void setParameters(Configuration parameters) {
- this.parameters = parameters;
- }
-
- public Subject getSubject() {
- return subject;
- }
-
- public void setSubject(Subject subject) {
- if (subject == null) {
- throw new NullPointerException("Cannot schedule an operation without a
user associated with it");
- }
-
- this.subject = subject;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- /**
- * The single job ID which identifies the operation. It can later be parsed via
{@link JobId#JobId(String)}. Note
- * that this job ID only identifies the scheduled operation; it does not identify any
specific invocation of that
- * operation (see {@link HistoryJobId} for that).
- *
- * @return job ID
- */
- @XmlElement
- public JobId getJobId() {
- return new JobId(this.jobName, this.jobGroup);
- }
-
- /*
- * there may be some operations whose parameters are sensitive values, such as
passwords - do not show them
- * as part of the toString. they can still be gotten by explicitly calling
getParameters()
- */
- @Override
- public String toString() {
- StringBuilder str = new StringBuilder();
- str.append("job-name=[" + this.jobName);
- str.append("], job-group=[" + this.jobGroup);
- str.append("], operation-name=[" + this.operationName);
- str.append("], subject=[" + this.subject);
- str.append("], description=[" + this.description);
- str.append("]");
- return str.toString();
- }
-}
\ No newline at end of file
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
index 2139ac7..e0ac109 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
@@ -29,6 +29,7 @@ import org.quartz.JobExecutionException;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.operation.ResourceOperationHistory;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.util.exception.ThrowableUtil;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationSchedule.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationSchedule.java
deleted file mode 100644
index d36fed8..0000000
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationSchedule.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.operation;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-
-import org.rhq.core.domain.resource.Resource;
-
-@XmlRootElement
-(a)XmlAccessorType(XmlAccessType.FIELD)
-public class ResourceOperationSchedule extends OperationSchedule {
- private Resource resource;
-
- public ResourceOperationSchedule() {
- }
-
- public Resource getResource() {
- return resource;
- }
-
- public void setResource(Resource resource) {
- this.resource = resource;
- }
-
- @Override
- public String toString() {
- StringBuilder str = new StringBuilder("ResourceOperationSchedule: ");
-
- str.append("resource=[" + this.resource);
- str.append("],");
- str.append(super.toString());
-
- return str.toString();
- }
-}
\ No newline at end of file
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
index 0a9419a..3208c7e 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
@@ -65,6 +65,7 @@ import org.rhq.core.domain.criteria.Criteria;
import org.rhq.core.domain.criteria.ResourceGroupCriteria;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.DisplayType;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceCategory;
@@ -88,7 +89,6 @@ import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RequiredPermission;
import org.rhq.enterprise.server.exception.UnscheduleException;
import org.rhq.enterprise.server.jaxb.adapter.ResourceGroupAdapter;
-import org.rhq.enterprise.server.operation.GroupOperationSchedule;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java
index b0d183d..75051c2 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java
@@ -29,7 +29,7 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.enterprise.server.exception.UnscheduleException;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
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 9b36df1..6e4f1a6 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
@@ -140,9 +140,9 @@ import
org.rhq.enterprise.server.measurement.MeasurementDataManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementProblemManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
-import org.rhq.enterprise.server.operation.GroupOperationSchedule;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.enterprise.server.resource.ResourceFactoryManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.ResourceNotFoundException;
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
index eaf6182..0ae4e9e 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
@@ -27,6 +27,8 @@ import javax.persistence.EntityManager;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
+import org.rhq.core.domain.operation.bean.GroupOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
diff --git
a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
index 1fcb295..c183b2a 100644
---
a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
+++
b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
@@ -27,7 +27,7 @@ import org.rhq.core.domain.operation.JobId;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.resource.Resource;
-import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
+import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.enterprise.server.plugin.pc.alert.AlertSender;
import org.rhq.enterprise.server.util.LookupUtil;
commit 79743e71e32db1c606b029effbc4a43ece826d2f
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Dec 16 12:47:50 2010 -0500
fix bug where subjects and resource group associations did not get persisted when
creating a new Role
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
index b9cb102..842a1b4 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/authz/Role.java
@@ -108,16 +108,16 @@ public class Role implements Serializable {
private Boolean fsystem;
@ManyToMany(mappedBy = "roles")
- private java.util.Set<Subject> subjects = new HashSet<Subject>();
+ private Set<Subject> subjects = new HashSet<Subject>();
@ManyToMany(mappedBy = "ldapRoles")
- private java.util.Set<Subject> ldapSubjects = new HashSet<Subject>();
+ private Set<Subject> ldapSubjects = new HashSet<Subject>();
@OneToMany(mappedBy = "role", cascade = { CascadeType.PERSIST,
CascadeType.REMOVE, CascadeType.REFRESH })
private Set<LdapGroup> ldapGroups = new HashSet<LdapGroup>();
@ManyToMany(mappedBy = "roles")
- private java.util.Set<org.rhq.core.domain.resource.group.ResourceGroup>
resourceGroups = new HashSet<org.rhq.core.domain.resource.group.ResourceGroup>();
+ private Set<ResourceGroup> resourceGroups = new
HashSet<org.rhq.core.domain.resource.group.ResourceGroup>();
@Cascade( { org.hibernate.annotations.CascadeType.ALL })
@CollectionOfElements(fetch = FetchType.EAGER)
@@ -241,7 +241,7 @@ public class Role implements Serializable {
this.subjects.remove(subject);
}
- public java.util.Set<Subject> getLdapSubjects() {
+ public Set<Subject> getLdapSubjects() {
return ldapSubjects;
}
@@ -267,11 +267,11 @@ public class Role implements Serializable {
this.ldapSubjects.remove(subject);
}
- public Set<org.rhq.core.domain.resource.group.ResourceGroup>
getResourceGroups() {
+ public Set<ResourceGroup> getResourceGroups() {
return resourceGroups;
}
- public void
setResourceGroups(Set<org.rhq.core.domain.resource.group.ResourceGroup>
resourceGroups) {
+ public void setResourceGroups(Set<ResourceGroup> resourceGroups) {
if (resourceGroups == null) {
this.resourceGroups = new HashSet<ResourceGroup>();
} else {
@@ -283,18 +283,18 @@ public class Role implements Serializable {
}
}
- public void addResourceGroup(org.rhq.core.domain.resource.group.ResourceGroup
resourceGroup) {
+ public void addResourceGroup(ResourceGroup resourceGroup) {
if (this.resourceGroups == null) {
- this.resourceGroups = new
HashSet<org.rhq.core.domain.resource.group.ResourceGroup>();
+ this.resourceGroups = new HashSet<ResourceGroup>();
}
resourceGroup.addRole(this);
this.resourceGroups.add(resourceGroup);
}
- public void removeResourceGroup(org.rhq.core.domain.resource.group.ResourceGroup
resourceGroup) {
+ public void removeResourceGroup(ResourceGroup resourceGroup) {
if (this.resourceGroups == null) {
- this.resourceGroups = new
HashSet<org.rhq.core.domain.resource.group.ResourceGroup>();
+ this.resourceGroups = new HashSet<ResourceGroup>();
}
resourceGroup.removeRole(this);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
index e96825b..04330ae 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RolesDataSource.java
@@ -18,10 +18,8 @@
*/
package org.rhq.enterprise.gui.coregui.client.admin.roles;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import com.google.gwt.user.client.rpc.AsyncCallback;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java
index afefb7f..93b1ca8 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/RoleManagerBean.java
@@ -137,7 +137,7 @@ public class RoleManagerBean implements RoleManagerLocal,
RoleManagerRemote {
* @see org.rhq.enterprise.server.authz.RoleManagerLocal#createRole(Subject, Role)
*/
@RequiredPermission(Permission.MANAGE_SECURITY)
- public Role createRole(Subject subject, Role newRole) {
+ public Role createRole(Subject whoami, Role newRole) {
// TODO (ips): Do we want to enforce uniqueness of the Role name?
if (newRole.getFsystem()) {
@@ -153,6 +153,16 @@ public class RoleManagerBean implements RoleManagerLocal,
RoleManagerRemote {
entityManager.persist(newRole);
+ // Now we must merge subjects and resource groups, since those fields in Role do
not have persist cascade
+ // enabled.
+ for (Subject subject : newRole.getSubjects()) {
+ entityManager.merge(subject);
+ }
+
+ for (ResourceGroup resourceGroup : newRole.getResourceGroups()) {
+ entityManager.merge(resourceGroup);
+ }
+
return newRole;
}