modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java | 117 +++++----- modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java | 2 modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java | 36 +++ 3 files changed, 98 insertions(+), 57 deletions(-)
New commits: commit 7258569515eaf7cfa3021a487faa49ae8ff8dd41 Author: John Mazzitelli mazz@redhat.com Date: Fri Mar 26 13:42:53 2010 -0400
this new test breaks - it illustrates our problem with packages ignoring classification
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java index 163e9c6..5990e61 100644 --- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java +++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java @@ -525,6 +525,42 @@ public class BundleManagerBeanTest extends UpdateSubsytemTestBase { }
@Test(enabled = TESTS_ENABLED) + public void testAddBundleFilesToDifferentBundles() throws Exception { + Bundle b1 = createBundle("one"); + assertNotNull(b1); + BundleVersion bv1 = createBundleVersion(b1.getName(), "1.0", b1); + assertNotNull(bv1); + BundleFile b1f1 = bundleManager.addBundleFileViaByteArray(overlord, bv1.getId(), TEST_PREFIX + "-file1", "1.0", + null, "Bundle #1 File # 1".getBytes(), false); + + // create a second bundle but create file of the same name as above + Bundle b2 = createBundle("two"); + assertNotNull(b2); + BundleVersion bv2 = createBundleVersion(b2.getName(), "1.0", b2); + assertNotNull(bv2); + BundleFile b2f1 = bundleManager.addBundleFileViaByteArray(overlord, bv2.getId(), TEST_PREFIX + "-file1", "1.0", + null, "Bundle #2 File # 1".getBytes(), false); + + BundleFileCriteria bfc = new BundleFileCriteria(); + bfc.addFilterBundleVersionId(bv1.getId()); + PageList<BundleFile> bundleFiles = bundleManager.findBundleFilesByCriteria(overlord, bfc); + assert bundleFiles.size() == 1 : bundleFiles; + assert bundleFiles.get(0).getId() == b1f1.getId() : bundleFiles; + + bfc = new BundleFileCriteria(); + bfc.addFilterBundleVersionId(bv2.getId()); + bundleFiles = bundleManager.findBundleFilesByCriteria(overlord, bfc); + assert bundleFiles.size() == 1 : bundleFiles; + assert bundleFiles.get(0).getId() == b2f1.getId() : bundleFiles; + + assert b1f1.getId() != b2f1.getId() : "should have been different bundle files"; + assert b1f1.getPackageVersion().getId() != b2f1.getPackageVersion().getId() : "should be different PV"; + assert b1f1.getPackageVersion().getGeneralPackage().getId() == b2f1.getPackageVersion().getGeneralPackage() + .getId() : "package IDs should be different"; + assert b1f1.getPackageVersion().getGeneralPackage().equals(b2f1.getPackageVersion().getGeneralPackage()) : "should be different packages"; + } + + @Test(enabled = TESTS_ENABLED) public void testCreateBundleDeploymentDef() throws Exception { Bundle b1 = createBundle("one"); assertNotNull(b1);
commit 845c8f1b513eb481667fe6a0c3b7d9955bb931e9 Author: John Mazzitelli mazz@redhat.com Date: Fri Mar 26 13:42:25 2010 -0400
simplify the upload step, the icon still isn't redrawing when it should though
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java index 6f18f04..1d67a73 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/upload/BundleFileUploadForm.java @@ -27,8 +27,6 @@ import com.smartgwt.client.widgets.form.fields.FormItemIcon; import com.smartgwt.client.widgets.form.fields.HiddenItem; import com.smartgwt.client.widgets.form.fields.StaticTextItem; import com.smartgwt.client.widgets.form.fields.UploadItem; -import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; -import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; import com.smartgwt.client.widgets.form.fields.events.ClickEvent; import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
@@ -48,6 +46,10 @@ public class BundleFileUploadForm extends DynamicCallbackForm { private final BundleVersion bundleVersion; private final String name; private final boolean showNameLabel; + private final FormItemIcon iconLoading; + private final FormItemIcon iconGreen; + private final FormItemIcon iconRed; + private final FormItemIcon iconGrey;
public BundleFileUploadForm(BundleVersion bundleVersion, String name, boolean showNameLabel, Boolean isAlreadyUploaded) { @@ -60,6 +62,26 @@ public class BundleFileUploadForm extends DynamicCallbackForm {
setEncoding(Encoding.MULTIPART); setAction(GWT.getModuleBaseURL() + "/BundleFileUploadServlet"); + + iconLoading = new FormItemIcon(); + iconLoading.setSrc("ajax-loader.gif"); + iconLoading.setWidth(16); + iconLoading.setHeight(16); + + iconGreen = new FormItemIcon(); + iconGreen.setSrc("/images/icons/availability_green_16.png"); + iconGreen.setWidth(16); + iconGreen.setHeight(16); + + iconRed = new FormItemIcon(); + iconRed.setSrc("/images/icons/availability_red_16.png"); + iconRed.setWidth(16); + iconRed.setHeight(16); + + iconGrey = new FormItemIcon(); + iconGrey.setSrc("/images/icons/availability_grey_16.png"); + iconGrey.setWidth(16); + iconGrey.setHeight(16); }
public BundleVersion getBundleVersion() { @@ -86,10 +108,15 @@ public class BundleFileUploadForm extends DynamicCallbackForm {
@Override public void submitForm() { - icon.setShowIcons(true); - uploadButton.setDisabled(true); - markForRedraw(); - super.submitForm(); + Object value = bundleUploadItem.getValue(); + if (value == null || value.toString().length() == 0) { + icon.setIcons(iconRed); + icon.setTooltip("Please select a file to upload"); + } else { + icon.setIcons(iconLoading); + icon.setTooltip("Loading..."); + super.submitForm(); + } }
@Override @@ -117,7 +144,6 @@ public class BundleFileUploadForm extends DynamicCallbackForm { uploadButton = new ButtonItem("Upload"); uploadButton.setStartRow(false); uploadButton.setEndRow(false); - uploadButton.setDisabled(true); uploadButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { submitForm(); @@ -127,28 +153,19 @@ public class BundleFileUploadForm extends DynamicCallbackForm { icon = new StaticTextItem("icon"); icon.setStartRow(false); icon.setShowTitle(false); - - FormItemIcon loadingIcon = new FormItemIcon(); - loadingIcon.setSrc("ajax-loader.gif"); - loadingIcon.setWidth(16); - loadingIcon.setHeight(16); - icon.setIcons(loadingIcon); - icon.setShowIcons(false); - - bundleUploadItem.addChangeHandler(new ChangeHandler() { - public void onChange(ChangeEvent changeEvent) { - if (uploadResults != null) { - retrievalStatus(uploadResults.booleanValue()); - } else { - uploadButton.setDisabled(false); - icon.setShowIcons(false); - } - } - }); - if (uploadResults != null) { - retrievalStatus(uploadResults.booleanValue()); + if (uploadResults.booleanValue()) { + icon.setIcons(iconGreen); + icon.setTooltip("Bundle file has already been uploaded"); + } else { + icon.setIcons(iconRed); + icon.setTooltip("Bundle file upload has previously failed"); + } + } else { + icon.setIcons(iconGrey); + icon.setTooltip("Select a file to upload, then click the 'Upload' button or 'Next'"); } + icon.setShowIcons(true);
setItems(sessionIdField, bundleVersionIdField, nameField, versionField, bundleUploadItem, uploadButton, icon);
@@ -156,43 +173,31 @@ public class BundleFileUploadForm extends DynamicCallbackForm { public void onSubmitComplete(DynamicFormSubmitCompleteEvent event) { String results = event.getResults(); if (!results.contains("Failed to upload bundle file")) { - CoreGUI.getMessageCenter().notify(new Message("Uploaded bundle file successfully", Severity.Info)); - retrievalStatus(true); + uploadResults = Boolean.TRUE; + icon.setIcons(iconGreen); + icon.setTooltip("Uploaded bundle file successfully"); + CoreGUI.getMessageCenter().notify( + new Message("Uploaded bundle file successfully", results, Severity.Info)); + markForRedraw(); } else { - CoreGUI.getMessageCenter().notify(new Message("Bundle file upload failed", Severity.Error)); - retrievalStatus(false); + uploadResults = Boolean.FALSE; + icon.setIcons(iconRed); + icon.setTooltip("Bundle file upload failed"); + CoreGUI.getMessageCenter() + .notify(new Message("Bundle file upload failed", results, Severity.Error)); + markForRedraw(); } } });
addFormSubmitFailedHandler(new FormSubmitFailedHandler() { public void onFormSubmitFailed(FormSubmitFailedEvent event) { - CoreGUI.getMessageCenter().notify(new Message("Bundle file upload failed", Severity.Error)); - retrievalStatus(false); + uploadResults = Boolean.FALSE; + icon.setIcons(iconRed); + icon.setTooltip("Bundle file upload failed"); + CoreGUI.getMessageCenter().notify(new Message("Bundle file upload request failed", Severity.Error)); + markForRedraw(); } }); } - - /** - * Call this when the last file retrieval status is known. <code>true</code> means successful, - * <code>false</code> means an error occurred. - * @param ok status - */ - private void retrievalStatus(boolean ok) { - uploadResults = Boolean.valueOf(ok); - - if (uploadButton != null) { - FormItemIcon loadedIcon = new FormItemIcon(); - if (ok) { - loadedIcon.setSrc("/images/icons/availability_green_16.png"); - } else { - loadedIcon.setSrc("/images/icons/availability_red_16.png"); - } - loadedIcon.setWidth(16); - loadedIcon.setHeight(16); - icon.setIcons(loadedIcon); - icon.setShowIcons(true); - uploadButton.setDisabled(uploadResults); - } - } }
commit b1c8bfca1422d74c48b50d69dd902507007b8d45 Author: John Mazzitelli mazz@redhat.com Date: Fri Mar 26 13:41:55 2010 -0400
need to use the return obj from merge
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java index 8d19ad2..7b41da0 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java @@ -361,7 +361,7 @@ public class BundleManagerBean implements BundleManagerLocal, BundleManagerRemot
// set the PackageVersion's filename to the bundleFile name, it's left null by default packageVersion.setFileName(name); - entityManager.merge(packageVersion); + packageVersion = entityManager.merge(packageVersion);
// Create the mapping between the Bundle's Repo and the BundleFile's PackageVersion Repo repo = bundle.getRepo();
rhq-commits@lists.fedorahosted.org