Author: sohil.shah(a)jboss.com
Date: 2008-10-24 18:35:12 -0400 (Fri, 24 Oct 2008)
New Revision: 12168
Modified:
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/CommandFactory.java
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCommandFactory.java
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/command/AsyncStoreArchiveCommand.java
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/command/StoreArchiveCommand.java
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/test/cms/commands/TestFileArchiveUpload.java
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/core-cms/src/main/org/jboss/portal/core/cms/ui/admin/CMSAdminPortlet.java
Log:
JBPORTAL-2212 - Uploading an archive fails on the slave node
Modified:
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/CommandFactory.java
===================================================================
---
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/CommandFactory.java 2008-10-24
15:54:35 UTC (rev 12167)
+++
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/CommandFactory.java 2008-10-24
22:35:12 UTC (rev 12168)
@@ -25,10 +25,8 @@
import org.jboss.portal.cms.model.Content;
import org.jboss.portal.cms.model.File;
import org.jboss.portal.cms.model.Folder;
-import org.jboss.portal.cms.CMS;
import org.jboss.portal.search.impl.jcr.JCRQuery;
-import java.io.InputStream;
import java.util.List;
import java.util.Locale;
@@ -74,9 +72,9 @@
Command createContentCreateNewVersionCommand(List contents, boolean bMakeLive);
- Command createStoreArchiveCommand(String sRootPath, InputStream is, String
sLanguage);
+ Command createStoreArchiveCommand(String sRootPath, byte[] archiveBytes, String
sLanguage);
- Command createAsyncStoreArchiveCommand(CMS cms, String sRootPath, InputStream is,
String sLanguage);
+ Command createAsyncStoreArchiveCommand(String sRootPath, byte[] archiveBytes, String
sLanguage);
Command createItemExistsCommand(String sPath);
Modified:
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCommandFactory.java
===================================================================
---
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCommandFactory.java 2008-10-24
15:54:35 UTC (rev 12167)
+++
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCommandFactory.java 2008-10-24
22:35:12 UTC (rev 12168)
@@ -50,12 +50,10 @@
import org.jboss.portal.cms.model.Content;
import org.jboss.portal.cms.model.File;
import org.jboss.portal.cms.model.Folder;
-import org.jboss.portal.cms.CMS;
import org.jboss.portal.search.impl.jcr.JCRQuery;
import org.jboss.portal.cms.impl.jcr.command.AsyncStoreArchiveCommand;
-import java.io.InputStream;
import java.util.List;
import java.util.Locale;
@@ -154,14 +152,14 @@
return new ContentCreateNewVersionCommand(contents, bMakeLive);
}
- public Command createStoreArchiveCommand(String sRootPath, InputStream is, String
sLanguage)
+ public Command createStoreArchiveCommand(String sRootPath, byte[] archiveBytes, String
sLanguage)
{
- return new StoreArchiveCommand(sRootPath, is, sLanguage);
+ return new StoreArchiveCommand(sRootPath, archiveBytes, sLanguage);
}
- public Command createAsyncStoreArchiveCommand(CMS cms, String sRootPath, InputStream
is, String sLanguage)
+ public Command createAsyncStoreArchiveCommand(String sRootPath, byte[] archiveBytes,
String sLanguage)
{
- return new AsyncStoreArchiveCommand(cms,sRootPath, is, sLanguage);
+ return new AsyncStoreArchiveCommand(sRootPath, archiveBytes, sLanguage);
}
public Command createItemExistsCommand(String sPath)
Modified:
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/command/AsyncStoreArchiveCommand.java
===================================================================
---
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/command/AsyncStoreArchiveCommand.java 2008-10-24
15:54:35 UTC (rev 12167)
+++
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/command/AsyncStoreArchiveCommand.java 2008-10-24
22:35:12 UTC (rev 12168)
@@ -22,18 +22,20 @@
******************************************************************************/
package org.jboss.portal.cms.impl.jcr.command;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
import org.apache.log4j.Logger;
+import org.jboss.mx.util.MBeanProxy;
+import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.portal.cms.impl.jcr.JCRCMS;
import org.jboss.portal.cms.impl.jcr.JCRCommand;
import org.jboss.portal.cms.impl.jcr.JCRCommandContext;
+import org.jboss.portal.cms.CMS;
import org.jboss.portal.cms.CMSException;
-import java.io.InputStream;
-
-import org.jboss.portal.cms.CMS;
-
/**
* Saves an uploaded archive to the repo.
*
@@ -47,9 +49,8 @@
private static Logger log = Logger.getLogger(AsyncStoreArchiveCommand.class);
String msRootPath;
- InputStream mIS;
+ byte[] archiveBytes;
String msLanguage;
- CMS cms = null;
private Object user = null;
private Object approvePublishWorkflow = null;
@@ -60,12 +61,11 @@
* @param is
* @param sLanguage
*/
- public AsyncStoreArchiveCommand(CMS cms, String sRootPath, InputStream is, String
sLanguage)
+ public AsyncStoreArchiveCommand(String sRootPath, byte[] archiveBytes, String
sLanguage)
{
this.msRootPath = sRootPath;
- this.mIS = is;
+ this.archiveBytes = archiveBytes;
this.msLanguage = sLanguage;
- this.cms = cms;
}
/**
@@ -111,7 +111,9 @@
JCRCMS.turnOnWorkflow();
}
- JCRCommand storeArchiveCommand =
(JCRCommand)cms.getCommandFactory().createStoreArchiveCommand(msRootPath, mIS,
msLanguage);
+ CMS cms = this.findCMSService();
+ JCRCommand storeArchiveCommand = (JCRCommand)cms.getCommandFactory().
+ createStoreArchiveCommand(msRootPath, archiveBytes, msLanguage);
cms.execute(storeArchiveCommand);
log.info("Async Processing finished..................");
@@ -123,5 +125,12 @@
log.error("-----------------------------------------------------------------------------");
}
}
+
+ //Find the CMS Service for the Asynchronous processing
+ private CMS findCMSService() throws Exception
+ {
+ MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
+ return (CMS)MBeanProxy.get(CMS.class, new
ObjectName("portal:service=CMS"), mbeanServer);
+ }
}
}
\ No newline at end of file
Modified:
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/command/StoreArchiveCommand.java
===================================================================
---
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/command/StoreArchiveCommand.java 2008-10-24
15:54:35 UTC (rev 12167)
+++
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/cms/impl/jcr/command/StoreArchiveCommand.java 2008-10-24
22:35:12 UTC (rev 12168)
@@ -56,7 +56,7 @@
private static Logger log = Logger.getLogger(StoreArchiveCommand.class);
String msRootPath;
- InputStream mIS;
+ byte[] archiveBytes;
String msLanguage;
/**
@@ -64,10 +64,10 @@
* @param is
* @param sLanguage
*/
- public StoreArchiveCommand(String sRootPath, InputStream is, String sLanguage)
+ public StoreArchiveCommand(String sRootPath, byte[] archiveBytes, String sLanguage)
{
this.msRootPath = sRootPath;
- this.mIS = is;
+ this.archiveBytes = archiveBytes;
this.msLanguage = sLanguage;
}
@@ -234,13 +234,8 @@
FileOutputStream fos = new FileOutputStream(zipFile.getCanonicalPath());
try
{
- int count;
- byte[] data = new byte[1024];
- while ((count = this.mIS.read(data, 0, 1024)) != -1)
- {
- fos.write(data, 0, count);
- fos.flush();
- }
+ fos.write(this.archiveBytes);
+ fos.close();
}
finally
{
Modified:
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/test/cms/commands/TestFileArchiveUpload.java
===================================================================
---
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/test/cms/commands/TestFileArchiveUpload.java 2008-10-24
15:54:35 UTC (rev 12167)
+++
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/cms/src/main/org/jboss/portal/test/cms/commands/TestFileArchiveUpload.java 2008-10-24
22:35:12 UTC (rev 12168)
@@ -95,7 +95,8 @@
try
{
is = IOTools.safeBufferedWrapper(new FileInputStream(sZipFile));
- Command storearchiveCMD =
service.getCommandFactory().createStoreArchiveCommand("", is, "en");
+ byte[] archiveBytes = IOTools.getBytes(is);
+ Command storearchiveCMD =
service.getCommandFactory().createStoreArchiveCommand("", archiveBytes,
"en");
service.execute(storearchiveCMD);
}
finally
Modified:
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/core-cms/src/main/org/jboss/portal/core/cms/ui/admin/CMSAdminPortlet.java
===================================================================
---
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/core-cms/src/main/org/jboss/portal/core/cms/ui/admin/CMSAdminPortlet.java 2008-10-24
15:54:35 UTC (rev 12167)
+++
branches/JBoss_Portal_2_6_6_JBPORTAL-2212/core-cms/src/main/org/jboss/portal/core/cms/ui/admin/CMSAdminPortlet.java 2008-10-24
22:35:12 UTC (rev 12168)
@@ -990,9 +990,9 @@
// check if the current item is a form field or an uploaded file
if (!item.isFormField())
{
- InputStream is = item.getInputStream();
+ byte[] archiveBytes = item.get();
- Command storearchiveCMD =
CMSService.getCommandFactory().createAsyncStoreArchiveCommand(CMSService, sPath, is,
sLanguage);
+ Command storearchiveCMD =
CMSService.getCommandFactory().createAsyncStoreArchiveCommand(sPath, archiveBytes,
sLanguage);
CMSService.execute(storearchiveCMD);
List messages = new ArrayList();