modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java | 8 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java | 36 ++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java | 9 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java | 44 +----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java | 80 +++++-----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java | 10 -
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java | 32 ++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java | 5
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java | 6
12 files changed, 119 insertions(+), 117 deletions(-)
New commits:
commit 2968c8c3c37ba5432683577f16e0e8e929bbd18a
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Aug 16 21:06:25 2010 -0400
AuthenticationUserAction doesn't need to pre-fetch any related subject data
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java
index db8b1f0..432d95c 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/AuthenticateUserAction.java
@@ -105,8 +105,6 @@ public class AuthenticateUserAction extends TilesAction {
subjectCriteria.setCaseSensitive(false);
subjectCriteria.setStrict(true);
subjectCriteria.addFilterName(logonForm.getJ_username());
- subjectCriteria.fetchRoles(true);
- subjectCriteria.fetchConfiguration(true);
PageList<Subject> subjectsLocated = LookupUtil.getSubjectManager().findSubjectsByCriteria(
LookupUtil.getSubjectManager().getOverlord(), subjectCriteria);
//if subject variants located then take the first one with a principal otherwise do nothing
commit 9ed36881c1424d3af8bdbd3621d6dbaec2938d75
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Aug 16 21:04:33 2010 -0400
SearchGUI.sessionSubject doesn't need to pre-load any related data
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java
index 42600a5..f4c52d7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java
@@ -87,9 +87,7 @@ public class SearchGUI implements EntryPoint {
// look up real user prefs
SubjectCriteria criteria = new SubjectCriteria();
- criteria.fetchConfiguration(true);
criteria.addFilterId(subjectId);
- criteria.fetchRoles(true);
GWTServiceLookup.getSubjectService().findSubjectsByCriteria(criteria,
new AsyncCallback<PageList<Subject>>() {
commit 74b6b2958fb4bba076009217e1dd6607bcacc964
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Aug 16 21:04:07 2010 -0400
CoreGUI.sessionSubject only needs to pre-load Configuration, not roles
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
index aa6c084..b82b8ce 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
@@ -155,7 +155,7 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
SubjectCriteria criteria = new SubjectCriteria();
criteria.fetchConfiguration(true);
criteria.addFilterId(subjectId);
- criteria.fetchRoles(true);
+ //criteria.fetchRoles(true);
GWTServiceLookup.getSubjectService().findSubjectsByCriteria(criteria,
new AsyncCallback<PageList<Subject>>() {
commit 29e2b4eecd3658456856098518bbbc50b59bea1b
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Aug 16 21:03:24 2010 -0400
uninventory all selected resources in a single async service call
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
index c0731b8..88c61d4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
@@ -25,9 +25,6 @@ import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceD
import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.PLUGIN;
import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.TYPE;
-import java.util.List;
-
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.DSRequest;
import com.smartgwt.client.data.DSResponse;
@@ -48,7 +45,6 @@ import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
-import org.rhq.enterprise.gui.coregui.client.util.message.Message;
/**
* @author Greg Hinkle
@@ -71,16 +67,16 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
DataSourceTextField nameDataField = new DataSourceTextField(NAME.propertyName(), NAME.title(), 200);
nameDataField.setCanEdit(false);
- DataSourceTextField descriptionDataField = new DataSourceTextField(DESCRIPTION.propertyName(), DESCRIPTION
- .title());
+ DataSourceTextField descriptionDataField = new DataSourceTextField(DESCRIPTION.propertyName(),
+ DESCRIPTION.title());
descriptionDataField.setCanEdit(false);
DataSourceTextField typeNameDataField = new DataSourceTextField(TYPE.propertyName(), TYPE.title());
DataSourceTextField pluginNameDataField = new DataSourceTextField(PLUGIN.propertyName(), PLUGIN.title());
DataSourceTextField categoryDataField = new DataSourceTextField(CATEGORY.propertyName(), CATEGORY.title());
- DataSourceImageField availabilityDataField = new DataSourceImageField(AVAILABILITY.propertyName(), AVAILABILITY
- .title(), 20);
+ DataSourceImageField availabilityDataField = new DataSourceImageField(AVAILABILITY.propertyName(),
+ AVAILABILITY.title(), 20);
availabilityDataField.setCanEdit(false);
@@ -120,8 +116,8 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
criteria.setPageControl(getPageControl(request));
if (request.getCriteria().getValues().get("parentId") != null) {
- criteria.addFilterParentResourceId(Integer.parseInt((String) request.getCriteria().getValues().get(
- "parentId")));
+ criteria.addFilterParentResourceId(Integer.parseInt((String) request.getCriteria().getValues()
+ .get("parentId")));
}
if (request.getCriteria().getValues().get("id") != null) {
@@ -158,8 +154,8 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
}
if (request.getCriteria().getValues().get(TYPE.propertyName()) != null) {
- criteria.addFilterResourceTypeId(Integer.parseInt(((String) request.getCriteria().getValues().get(
- TYPE.propertyName()))));
+ criteria.addFilterResourceTypeId(Integer.parseInt(((String) request.getCriteria().getValues()
+ .get(TYPE.propertyName()))));
}
if (request.getCriteria().getValues().get(PLUGIN.propertyName()) != null) {
@@ -185,30 +181,6 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
return criteria;
}
- @Override
- protected void executeRemove(final DSRequest request, final DSResponse response) {
- JavaScriptObject data = request.getData();
- final ListGridRecord rec = new ListGridRecord(data);
- final Resource resourceToDelete = copyValues(rec);
-
- final int resourceId = resourceToDelete.getId();
- resourceService.uninventoryResources(new int[] { resourceId }, new AsyncCallback<List<Integer>>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to uninventory resource " + resourceId, caught);
- response.setStatus(DSResponse.STATUS_FAILURE);
- processResponse(request.getRequestId(), response);
- }
-
- public void onSuccess(List<Integer> result) {
- CoreGUI.getMessageCenter().notify(
- new Message("Resource [" + resourceId + "] successfully uninventoried.", Message.Severity.Info));
- response.setStatus(DSResponse.STATUS_SUCCESS);
- processResponse(request.getRequestId(), response);
- }
- });
-
- }
-
protected void dataRetrieved(PageList<Resource> result, DSResponse response, DSRequest request) {
ListGridRecord[] records = buildRecords(result);
response.setData(records);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index 1642c64..97a55db 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@ -18,35 +18,33 @@
*/
package org.rhq.enterprise.gui.coregui.client.inventory.resource;
+import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.AVAILABILITY;
+import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.CATEGORY;
+import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.DESCRIPTION;
+import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.NAME;
+import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.PLUGIN;
+import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.TYPE;
+
import java.util.ArrayList;
+import java.util.List;
-import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.SortSpecifier;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.ListGridFieldType;
-import com.smartgwt.client.types.SelectionAppearance;
import com.smartgwt.client.types.SelectionStyle;
-import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.fields.TextItem;
-import com.smartgwt.client.widgets.form.fields.events.KeyPressEvent;
-import com.smartgwt.client.widgets.form.fields.events.KeyPressHandler;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import com.smartgwt.client.widgets.layout.VLayout;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.components.table.Table;
import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
-
-import javax.persistence.Id;
-
-import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.AVAILABILITY;
-import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.CATEGORY;
-import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.DESCRIPTION;
-import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.NAME;
-import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.PLUGIN;
-import static org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDataSourceField.TYPE;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message.Severity;
/**
* @author Greg Hinkle
@@ -90,24 +88,23 @@ public class ResourceSearchView extends Table {
setWidth100();
setHeight100();
-// DynamicForm searchPanel = new DynamicForm();
-// final TextItem searchBox = new TextItem("query", "Search Resources");
-// searchBox.setValue("");
-// searchPanel.setWrapItemTitles(false);
-// searchPanel.setFields(searchBox);
-
+ // DynamicForm searchPanel = new DynamicForm();
+ // final TextItem searchBox = new TextItem("query", "Search Resources");
+ // searchBox.setValue("");
+ // searchPanel.setWrapItemTitles(false);
+ // searchPanel.setFields(searchBox);
final ResourceDatasource datasource = new ResourceDatasource();
-// setTitleComponent(searchPanel);
+ // setTitleComponent(searchPanel);
setDataSource(datasource);
getListGrid().setSelectionType(SelectionStyle.SIMPLE);
-// getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX);
+ // getListGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX);
getListGrid().setResizeFieldsInRealTime(true);
ListGridField idField = new ListGridField("id", "Id", 55);
idField.setType(ListGridFieldType.INTEGER);
- ListGridField iconField = new ListGridField("icon","", 40);
+ ListGridField iconField = new ListGridField("icon", "", 40);
ListGridField nameField = new ListGridField(NAME.propertyName(), NAME.title(), 250);
nameField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
@@ -123,15 +120,35 @@ public class ResourceSearchView extends Table {
ListGridField availabilityField = new ListGridField(AVAILABILITY.propertyName(), AVAILABILITY.title(), 55);
availabilityField.setAlign(Alignment.CENTER);
getListGrid().setFields(idField, iconField, nameField, descriptionField, typeNameField, pluginNameField,
- categoryField, availabilityField);
+ categoryField, availabilityField);
addTableAction("Uninventory", Table.SelectionEnablement.ANY,
- "Are you sure you want to delete # resources?", new TableAction() {
- public void executeAction(ListGridRecord[] selection) {
- getListGrid().removeSelectedData();
+ "Are you sure you want to uninventory # resources?", new TableAction() {
+ public void executeAction(ListGridRecord[] selections) {
+ int[] resourceIds = new int[selections.length];
+ int index = 0;
+ for (ListGridRecord selection : selections) {
+ resourceIds[index++] = selection.getAttributeAsInt("id");
}
- });
+ ResourceGWTServiceAsync resourceManager = GWTServiceLookup.getResourceService();
+
+ resourceManager.uninventoryResources(resourceIds, new AsyncCallback<List<Integer>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to uninventory selected resources", caught);
+ }
+
+ public void onSuccess(List<Integer> result) {
+ CoreGUI.getMessageCenter()
+ .notify(
+ new Message("Successfully uninventoried " + result.size() + " resources",
+ Severity.Info));
+ ResourceSearchView.this.refresh();
+ }
+ });
+
+ }
+ });
/*searchBox.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
@@ -153,13 +170,10 @@ public class ResourceSearchView extends Table {
});*/
}
-
-
public int getMatches() {
return this.getListGrid().getTotalRows();
}
-
public void addResourceSelectedListener(ResourceSelectListener listener) {
selectListeners.add(listener);
}
commit a064c1435259e596538243c7a86b8d80aa626557
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Aug 16 21:03:02 2010 -0400
delete all selected resource groups in a single async service call
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
index 3d78c78..ff3be5b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGroupGWTService.java
@@ -18,6 +18,9 @@
*/
package org.rhq.enterprise.gui.coregui.client.gwt;
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
import org.rhq.core.domain.criteria.ResourceGroupCriteria;
import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
import org.rhq.core.domain.resource.group.GroupDefinition;
@@ -25,9 +28,6 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.core.domain.util.PageList;
-import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
-
/**
* @author Greg Hinkle
*/
@@ -44,7 +44,7 @@ public interface ResourceGroupGWTService extends RemoteService {
ResourceGroup createResourceGroup(ResourceGroup group, int[] resourceIds);
- void deleteResourceGroup(int groupId);
+ void deleteResourceGroups(int[] groupIds);
void updateResourceGroup(ResourceGroup group);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
index d2953eb..3206da5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
@@ -27,7 +27,6 @@ import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.components.table.Table;
import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
@@ -88,24 +87,25 @@ public class ResourceGroupListView extends Table {
addTableAction("Delete", Table.SelectionEnablement.ANY, "Delete the selected resource groups?",
new TableAction() {
public void executeAction(ListGridRecord[] selections) {
- ResourceGroupsDataSource ds = (ResourceGroupsDataSource) getDataSource();
+ int[] groupIds = new int[selections.length];
+ int index = 0;
for (ListGridRecord selection : selections) {
- ResourceGroupGWTServiceAsync resourceGroupManager = GWTServiceLookup.getResourceGroupService();
- final ResourceGroup object = ds.copyValues(selection);
- resourceGroupManager.deleteResourceGroup(object.getId(), new AsyncCallback<Void>() {
- public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError(
- "Failed to delete resource group [" + object.getName() + "]", caught);
- }
-
- public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new Message("Deleted resource group [" + object.getName() + "]", Severity.Info));
-
- CoreGUI.refresh();
- }
- });
+ groupIds[index++] = selection.getAttributeAsInt("id");
}
+ ResourceGroupGWTServiceAsync resourceGroupManager = GWTServiceLookup.getResourceGroupService();
+
+ resourceGroupManager.deleteResourceGroups(groupIds, new AsyncCallback<Void>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to delete selected resource groups", caught);
+ }
+
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(
+ new Message("Deleted selected resource groups", Severity.Info));
+
+ ResourceGroupListView.this.refresh();
+ }
+ });
}
});
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
index 31a4381..e6b5936 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGroupGWTServiceImpl.java
@@ -41,17 +41,17 @@ public class ResourceGroupGWTServiceImpl extends AbstractGWTServiceImpl implemen
public PageList<ResourceGroup> findResourceGroupsByCriteria(ResourceGroupCriteria criteria) {
return SerialUtility.prepare(groupManager.findResourceGroupsByCriteria(getSessionSubject(), criteria),
- "ResourceGroupService.findResourceGroupsByCriteria");
+ "ResourceGroupService.findResourceGroupsByCriteria");
}
public PageList<ResourceGroupComposite> findResourceGroupCompositesByCriteria(ResourceGroupCriteria criteria) {
return SerialUtility.prepare(groupManager.findResourceGroupCompositesByCriteria(getSessionSubject(), criteria),
- "ResourceGroupService.findResourceGroupCompositesByCriteria");
+ "ResourceGroupService.findResourceGroupCompositesByCriteria");
}
public PageList<GroupDefinition> findGroupDefinitionsByCriteria(ResourceGroupDefinitionCriteria criteria) {
return SerialUtility.prepare(definitionManager.findGroupDefinitionsByCriteria(getSessionSubject(), criteria),
- "ResourceGroupService.findGroupDefinitionsByCriteria");
+ "ResourceGroupService.findGroupDefinitionsByCriteria");
}
public void ensureMembershipMatches(int groupId, int[] resourceIds) {
@@ -66,9 +66,9 @@ public class ResourceGroupGWTServiceImpl extends AbstractGWTServiceImpl implemen
return SerialUtility.prepare(group, "ResourceGroupService.createResourceGroup");
}
- public void deleteResourceGroup(int groupId) {
+ public void deleteResourceGroups(int[] groupIds) {
try {
- groupManager.deleteResourceGroup(getSessionSubject(), groupId);
+ groupManager.deleteResourceGroups(getSessionSubject(), groupIds);
} catch (ResourceGroupDeleteException e) {
throw new RuntimeException(e.getMessage());
}
commit 1eb5159403a3bd12bd05aea4a9bc0b422d64f36b
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Aug 16 19:13:21 2010 -0400
add the ability to delete multiple resource groups with a single SLSB call
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 f6a5b4d..04dd614 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
@@ -181,8 +181,8 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
}
if (!authorizationManager.hasGroupPermission(user, Permission.MODIFY_RESOURCE, groupId)) {
- throw new PermissionException("User [" + user + "] does not have permission to modify Resource group with id ["
- + groupId + "].");
+ throw new PermissionException("User [" + user
+ + "] does not have permission to modify Resource group with id [" + groupId + "].");
}
if (changeType == null) {
@@ -197,7 +197,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
// recursive bit didn't change
}
}
-
+
group.setMtime(System.currentTimeMillis());
group.setModifiedBy(user.getName());
@@ -285,6 +285,14 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
entityManager.remove(group);
}
+ @RequiredPermission(Permission.MANAGE_INVENTORY)
+ public void deleteResourceGroups(Subject subject, int[] groupIds) throws ResourceGroupNotFoundException,
+ ResourceGroupDeleteException {
+ for (int nextGroupId : groupIds) {
+ deleteResourceGroup(subject, nextGroupId);
+ }
+ }
+
/*
* TODO: Deletion of all associated group data (except implicit/explicit resource members) should be moved here.
* in other words, we don't want Hibernate cascade annotations to remove that history upon deletion of an
@@ -312,9 +320,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
try {
operationManager.unscheduleGroupOperation(overlord, schedule.getJobId().toString(), group.getId());
} catch (UnscheduleException e) {
- log
- .warn("Failed to unschedule job [" + schedule + "] for a group being deleted [" + group + "]",
- e);
+ log.warn("Failed to unschedule job [" + schedule + "] for a group being deleted [" + group + "]", e);
}
}
} catch (Exception e) {
@@ -753,8 +759,8 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
* to this method, we can just do simple RHQ_RESOURCE_GROUP_RES_IMP_MAP table insertions
*/
String insertImplicitQueryString = JDBCUtil.transformQueryForMultipleInParameters(
- ResourceGroup.QUERY_NATIVE_ADD_RESOURCES_TO_GROUP_IMPLICIT, "@@RESOURCE_IDS@@", resourceIdsToAdd
- .size());
+ ResourceGroup.QUERY_NATIVE_ADD_RESOURCES_TO_GROUP_IMPLICIT, "@@RESOURCE_IDS@@",
+ resourceIdsToAdd.size());
insertImplicitStatement = conn.prepareStatement(insertImplicitQueryString);
insertImplicitStatement.setInt(1, implicitRecursiveGroupId);
JDBCUtil.bindNTimes(insertImplicitStatement, ArrayUtils.unwrapCollection(resourceIdsToAdd), 2);
@@ -816,9 +822,9 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
ResourceGroup group = getResourceGroupById(subject, groupId, category);
Set<Resource> res = group.getExplicitResources();
if (res != null && res.size() > 0) {
- List<Resource> resources = PersistenceUtility.getHibernateSession(entityManager).createFilter(res,
- "where this.inventoryStatus = :inventoryStatus").setParameter("inventoryStatus",
- InventoryStatus.COMMITTED).list();
+ List<Resource> resources = PersistenceUtility.getHibernateSession(entityManager)
+ .createFilter(res, "where this.inventoryStatus = :inventoryStatus")
+ .setParameter("inventoryStatus", InventoryStatus.COMMITTED).list();
return resources;
} else {
@@ -1465,8 +1471,8 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
}
if (!authorizationManager.hasGroupPermission(subject, Permission.MODIFY_RESOURCE, groupId)) {
- throw new PermissionException("User [" + subject + "] does not have permission to modify Resource group with id ["
- + groupId + "].");
+ throw new PermissionException("User [" + subject
+ + "] does not have permission to modify Resource group with id [" + groupId + "].");
}
return group;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
index 9b0468b..2919879 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
@@ -125,6 +125,9 @@ public interface ResourceGroupManagerLocal {
void deleteResourceGroup(Subject user, int groupId) throws ResourceGroupNotFoundException,
ResourceGroupDeleteException;
+ void deleteResourceGroups(Subject user, int[] groupIds) throws ResourceGroupNotFoundException,
+ ResourceGroupDeleteException;
+
ResourceGroup getResourceGroup(Subject subject, int groupId);
ResourceGroupComposite getResourceGroupComposite(Subject subject, int groupId);
@@ -138,5 +141,5 @@ public interface ResourceGroupManagerLocal {
ResourceGroup updateResourceGroup(Subject subject, ResourceGroup group);
PageList<ResourceGroup> findResourceGroupsByCriteria(Subject subject, ResourceGroupCriteria criteria);
-
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
index fdda4e2..4071c39 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
@@ -60,6 +60,12 @@ public interface ResourceGroupManagerRemote {
@WebParam(name = "groupId") int groupId) throws ResourceGroupNotFoundException, ResourceGroupDeleteException;
@WebMethod
+ void deleteResourceGroups( //
+ @WebParam(name = "subject") Subject subject, //
+ @WebParam(name = "groupIds") int[] groupIds) throws ResourceGroupNotFoundException,
+ ResourceGroupDeleteException;
+
+ @WebMethod
ResourceGroup getResourceGroup( //
@WebParam(name = "subject") Subject subject, //
@WebParam(name = "groupId") int groupId);
commit 0cf06bb06f6975b68aeaa78a886c004851423409
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Aug 16 18:37:13 2010 -0400
refresh the ResourceGroupListView after adding a new group
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
index 8171d96..d2953eb 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/ResourceGroupListView.java
@@ -111,7 +111,7 @@ public class ResourceGroupListView extends Table {
addTableAction("New", new TableAction() {
public void executeAction(ListGridRecord[] selection) {
- new GroupCreateWizard().startBundleWizard();
+ new GroupCreateWizard(ResourceGroupListView.this).startBundleWizard();
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java
index 55d1588..d579c8c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/wizard/GroupCreateWizard.java
@@ -35,6 +35,7 @@ import org.rhq.enterprise.gui.coregui.client.components.wizard.AbstractWizard;
import org.rhq.enterprise.gui.coregui.client.components.wizard.WizardStep;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGroupGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.inventory.groups.ResourceGroupListView;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
/**
@@ -42,10 +43,14 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message;
*/
public class GroupCreateWizard extends AbstractWizard {
+ private ResourceGroupListView resourceGroupListView;
+
private GroupCreateStep createStep;
private GroupMembersStep memberStep;
- public GroupCreateWizard() {
+ public GroupCreateWizard(ResourceGroupListView resourceGroupListView) {
+ this.resourceGroupListView = resourceGroupListView;
+
ArrayList<WizardStep> steps = new ArrayList<WizardStep>();
steps.add(createStep = new GroupCreateStep());
@@ -98,7 +103,7 @@ public class GroupCreateWizard extends AbstractWizard {
public void onSuccess(ResourceGroup result) {
CoreGUI.getMessageCenter().notify(
new Message("Saved new group " + result.getName(), Message.Severity.Info));
- // TODO: Implement this method.
+ resourceGroupListView.refresh();
}
});