/* ===============================================================================
*
* Part of the InfoGlue Content Management Platform (www.infoglue.org)
*
* ===============================================================================
*
* Copyright (C)
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 2, as published by the
* Free Software Foundation. See the file LICENSE.html for more information.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY, including 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. / 59 Temple
* Place, Suite 330 / Boston, MA 02111-1307 / USA.
*
* ===============================================================================
*/
package org.infoglue.cms.applications.contenttool.actions;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.Element;
import org.infoglue.cms.applications.common.VisualFormatter;
import org.infoglue.cms.applications.common.actions.InfoGlueAbstractAction;
import org.infoglue.cms.applications.databeans.AssetKeyDefinition;
import org.infoglue.cms.applications.databeans.SessionInfoBean;
import org.infoglue.cms.controllers.kernel.impl.simple.ContentControllerProxy;
import org.infoglue.cms.controllers.kernel.impl.simple.ContentTypeDefinitionController;
import org.infoglue.cms.controllers.kernel.impl.simple.ContentVersionController;
import org.infoglue.cms.controllers.kernel.impl.simple.DigitalAssetController;
import org.infoglue.cms.controllers.kernel.impl.simple.LanguageController;
import org.infoglue.cms.entities.content.ContentVO;
import org.infoglue.cms.entities.content.ContentVersionVO;
import org.infoglue.cms.entities.content.DigitalAssetVO;
import org.infoglue.cms.entities.management.ContentTypeDefinitionVO;
import org.infoglue.cms.entities.management.LanguageVO;
import org.infoglue.cms.io.FileHelper;
import org.infoglue.cms.security.InfoGluePrincipal;
import org.infoglue.cms.util.CmsPropertyHandler;
import org.infoglue.cms.util.CmsSessionContextListener;
import org.infoglue.cms.util.dom.DOMBuilder;
import org.infoglue.cms.util.graphics.Imaging;
import webwork.action.ActionContext;
import webwork.multipart.MultiPartRequestWrapper;
public class CreateContentAndAssetFromUploadAction extends InfoGlueAbstractAction
{
private final static Logger logger = Logger.getLogger(CreateContentAndAssetFromUploadAction.class.getName());
private static final long serialVersionUID = 1L;
private Integer parentContentId = null;
private Integer repositoryId = null;
private String digitalAssetKey = "";
private Integer uploadedFilesCounter = new Integer(0);
private ContentTypeDefinitionVO contentTypeDefinitionVO;
private String reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnSizeText";
private String uploadMaxSize;
private DigitalAssetVO digitalAssetVO = null;
private String closeOnLoad;
private Integer contentTypeDefinitionId;
private InfoGluePrincipal principal = null;
private boolean useFileNameAsContentTypeBase = false;
private boolean refreshAll = false;
private VisualFormatter formatter = new VisualFormatter();
public String doInput() throws Exception
{
logger.info("Input state");
return INPUT;
}
public String doMultiple() throws Exception
{
logger.info("Uploading file....");
this.principal = getInfoGluePrincipal();
logger.info("QueryString:" + this.getRequest().getQueryString());
String requestSessionId = this.getRequest().getParameter("JSESSIONID");
logger.info("JSESSIONID:" + requestSessionId);
boolean allowedSessionId = false;
List activeSessionBeanList = CmsSessionContextListener.getSessionInfoBeanList();
Iterator activeSessionsIterator = activeSessionBeanList.iterator();
logger.info("activeSessionBeanList:" + activeSessionBeanList.size());
while(activeSessionsIterator.hasNext())
{
SessionInfoBean sessionBean = (SessionInfoBean)activeSessionsIterator.next();
logger.info("sessionBean:" + sessionBean.getId() + "=" + sessionBean.getPrincipal().getName());
if(sessionBean.getId().equals(requestSessionId))
{
logger.info("Found a matching sessionId");
allowedSessionId = true;
this.principal = sessionBean.getPrincipal();
break;
}
}
if(!allowedSessionId)
{
return "uploadFailed";
}
useFileNameAsContentTypeBase = true;
String result = doExecute();
if(result.equals("success"))
{
String assetUrl = getDigitalAssetUrl();
logger.info("assetUrl:" + assetUrl);
String assetThumbnailUrl = getAssetThumbnailUrl();
logger.info("assetThumbnailUrl:" + assetThumbnailUrl);
this.getResponse().setContentType("text/plain");
this.getResponse().getWriter().println(assetThumbnailUrl + ":" + this.digitalAssetKey);
return NONE;
}
else
{
this.getResponse().setContentType("text/plain");
this.getResponse().setStatus(this.getResponse().SC_INTERNAL_SERVER_ERROR);
this.getResponse().getWriter().println("Error uploading to " + this.digitalAssetKey);
return NONE;
}
}
public String doExecute()
{
if(this.principal == null)
this.principal = getInfoGluePrincipal();
try
{
MultiPartRequestWrapper mpr = ActionContext.getMultiPartRequest();
if(mpr == null)
{
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnSizeText";
this.uploadMaxSize = getLocalizedString(getLocale(), "tool.contenttool.systemWideFileUploadLimit", formatter.formatFileSize(getUploadMaxSize()));
return "uploadFailed";
}
File file = null;
try
{
if(mpr != null)
{
Enumeration names = mpr.getFileNames();
while (names.hasMoreElements())
{
String name = (String)names.nextElement();
String contentType = mpr.getContentType(name);
String fileSystemName = mpr.getFilesystemName(name);
logger.info("contentType:" + contentType);
logger.info("fileSystemName:" + fileSystemName);
if(fileSystemName.endsWith(".zip"))
{
file = mpr.getFile(name);
String folder = CmsPropertyHandler.getDigitalAssetUploadPath() + File.separator + "zip" + System.currentTimeMillis();
List<File> unzippedFiles = FileHelper.unzipFile(file, folder);
for(File unzippedFile : unzippedFiles)
{
handleFile(null, name, null, unzippedFile.getName(), unzippedFile);
}
}
else
{
String fromEncoding = CmsPropertyHandler.getUploadFromEncoding();
if(fromEncoding == null)
fromEncoding = "iso-8859-1";
String toEncoding = CmsPropertyHandler.getUploadToEncoding();
if(toEncoding == null)
toEncoding = "utf-8";
digitalAssetKey = new String(digitalAssetKey.getBytes(fromEncoding), toEncoding);
file = mpr.getFile(name);
return handleFile(digitalAssetKey, name, contentType, fileSystemName, file);
}
}
}
else
{
logger.error("File upload failed for some reason.");
}
}
catch (Throwable e)
{
logger.error("An error occurred when we tried to upload a new asset:" + e.getMessage(), e);
}
}
catch(Throwable e)
{
logger.error("An error occurred when we tried to upload a new asset:" + e.getMessage(), e);
}
return "success";
}
private String handleFile(String digitalAssetKey, String name, String contentType, String fileSystemName, File file) throws Exception
{
InputStream is = null;
try
{
logger.info("digitalAssetKey:" + digitalAssetKey);
logger.info("name:" + name);
logger.info("contentType:" + contentType);
logger.info("fileSystemName:" + fileSystemName);
if(digitalAssetKey == null || digitalAssetKey.equals(""))
{
if(fileSystemName.lastIndexOf(".") > -1)
digitalAssetKey = fileSystemName.substring(0, fileSystemName.lastIndexOf("."));
digitalAssetKey = formatter.replaceNiceURINonAsciiWithSpecifiedChars(digitalAssetKey, CmsPropertyHandler.getNiceURIDefaultReplacementCharacter());
//digitalAssetKey = formatter.replaceNonAscii(digitalAssetKey, '_');
}
logger.info("digitalAssetKey:" + digitalAssetKey);
if(useFileNameAsContentTypeBase || contentType == null)
{
if(fileSystemName.lastIndexOf(".") > -1)
{
String extension = fileSystemName.substring(fileSystemName.lastIndexOf(".") + 1);
logger.info("extension:" + extension);
if(extension.equalsIgnoreCase("gif"))
contentType = "image/gif";
else if(extension.equalsIgnoreCase("jpg"))
contentType = "image/jpg";
else if(extension.equalsIgnoreCase("png"))
contentType = "image/png";
else if(extension.equalsIgnoreCase("pdf"))
contentType = "application/pdf";
else if(extension.equalsIgnoreCase("doc"))
contentType = "application/msword";
else if(extension.equalsIgnoreCase("xls"))
contentType = "application/vnd.ms-excel";
else if(extension.equalsIgnoreCase("ppt"))
contentType = "application/vnd.ms-powerpoint";
else if(extension.equalsIgnoreCase("zip"))
contentType = "application/zip";
else if(extension.equalsIgnoreCase("xml"))
contentType = "text/xml";
}
}
logger.info("contentType:" + contentType);
String fileName = fileSystemName;
logger.info("fileSystemName:" + fileSystemName);
fileName = formatter.replaceNiceURINonAsciiWithSpecifiedChars(fileName, CmsPropertyHandler.getNiceURIDefaultReplacementCharacter());
//fileName = formatter.replaceNonAscii(fileName, '_');
String tempFileName = "tmp_" + System.currentTimeMillis() + "_" + fileName;
//String filePath = file.getParentFile().getPath();
String filePath = CmsPropertyHandler.getDigitalAssetPath();
fileSystemName = filePath + File.separator + tempFileName;
DigitalAssetVO newAsset = new DigitalAssetVO();
newAsset.setAssetContentType(contentType);
newAsset.setAssetKey(digitalAssetKey);
newAsset.setAssetFileName(fileName);
newAsset.setAssetFilePath(filePath);
newAsset.setAssetFileSize(new Integer(new Long(file.length()).intValue()));
if(CmsPropertyHandler.getEnableDiskAssets().equals("false"))
is = new FileInputStream(file);
String fileUploadMaximumSize = getPrincipalPropertyValue(this.principal, "fileUploadMaximumSize", false, true);
logger.info("fileUploadMaximumSize in create:" + fileUploadMaximumSize);
if(!fileUploadMaximumSize.equalsIgnoreCase("-1") && new Integer(fileUploadMaximumSize).intValue() < new Long(file.length()).intValue())
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnSizeText";
this.uploadMaxSize = "(Max " + formatter.formatFileSize(fileUploadMaximumSize) + ")";
return "uploadFailed";
}
logger.info("contentTypeDefinitionId:" + contentTypeDefinitionId);
if(contentTypeDefinitionId == null)
{
logger.info("Defaulting to Image");
this.contentTypeDefinitionVO = ContentTypeDefinitionController.getController().getContentTypeDefinitionVOWithName("Image");
if(this.contentTypeDefinitionVO != null)
contentTypeDefinitionId = this.contentTypeDefinitionVO.getId();
}
else
{
this.contentTypeDefinitionVO = ContentTypeDefinitionController.getController().getContentTypeDefinitionVOWithId(contentTypeDefinitionId);
}
if(this.contentTypeDefinitionId != null && digitalAssetKey != null)
{
//this.contentTypeDefinitionVO = ContentTypeDefinitionController.getController().getContentTypeDefinitionVOWithId(this.contentTypeDefinitionId);
AssetKeyDefinition assetKeyDefinition = ContentTypeDefinitionController.getController().getDefinedAssetKey(contentTypeDefinitionVO, true, digitalAssetKey);
if(assetKeyDefinition != null)
{
if(assetKeyDefinition.getMaximumSize().intValue() < new Long(file.length()).intValue())
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnSizeText";
this.uploadMaxSize = "(Max " + formatter.formatFileSize(assetKeyDefinition.getMaximumSize()) + ")";
return "uploadFailed";
}
if(assetKeyDefinition.getAllowedContentTypes().startsWith("image"))
{
if(!contentType.startsWith("image"))
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnTypeNotImageText";
return "uploadFailed";
}
Image image = javax.imageio.ImageIO.read(file);
int width = image.getWidth(null);
int height = image.getHeight(null);
String allowedWidth = assetKeyDefinition.getImageWidth();
String allowedHeight = assetKeyDefinition.getImageHeight();
if(!allowedWidth.equals("*"))
{
Integer allowedWidthNumber = new Integer(allowedWidth.substring(1));
if(allowedWidth.startsWith("<") && width >= allowedWidthNumber.intValue())
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnImageToWideText";
return "uploadFailed";
}
if(allowedWidth.startsWith(">") && width <= allowedWidthNumber.intValue())
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnImageNotWideEnoughText";
return "uploadFailed";
}
if(!allowedWidth.startsWith(">") && !allowedWidth.startsWith("<") && width != new Integer(allowedWidth).intValue())
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnImageWrongWidthText";
return "uploadFailed";
}
}
if(!allowedHeight.equals("*"))
{
Integer allowedHeightNumber = new Integer(allowedHeight.substring(1));
if(allowedHeight.startsWith("<") && height >= allowedHeightNumber.intValue())
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnImageToHighText";
return "uploadFailed";
}
if(allowedHeight.startsWith(">") && height <= allowedHeightNumber.intValue())
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnImageNotHighEnoughText";
return "uploadFailed";
}
if(!allowedHeight.startsWith(">") && !allowedHeight.startsWith("<") && height != new Integer(allowedHeight).intValue())
{
file.delete();
this.reasonKey = "tool.contenttool.fileUpload.fileUploadFailedOnImageWrongHeightText";
return "uploadFailed";
}
}
}
}
}
boolean keepOriginal = true;
LanguageVO masterLanguageVO = LanguageController.getController().getMasterLanguage(repositoryId);
logger.info("parentContentId: " + this.parentContentId);
logger.info("repositoryId: " + this.repositoryId);
logger.info("contentTypeDefinition: " + this.contentTypeDefinitionId);
logger.info("masterLanguageVO: " + masterLanguageVO.getId());
ContentVO contentVO = new ContentVO();
contentVO.setName(fileName);
contentVO.setCreatorName(this.principal.getName());
ContentVO createdContentVO = ContentControllerProxy.getController().acCreate(this.principal, parentContentId, contentTypeDefinitionId, repositoryId, contentVO);
//Create initial content version also... in masterlanguage
String versionValue = "<?xml version='1.0' encoding='UTF-8'?><article xmlns=\"x-schema:ArticleSchema.xml\"><attributes><Name><![CDATA[" + fileName + "]]></Name></attributes></article>";
ContentVersionVO cvVO = new ContentVersionVO();
cvVO.setVersionComment("Initial version");
cvVO.setVersionModifier(this.principal.getName());
cvVO.setVersionValue(versionValue);
ContentVersionVO newContentVersion = ContentVersionController.getContentVersionController().create(contentVO.getId(), masterLanguageVO.getId(), cvVO, null);
if(newContentVersion != null)
{
AssetKeyDefinition assetKeyDefinition = ContentTypeDefinitionController.getController().getDefinedAssetKey(this.contentTypeDefinitionVO, true, digitalAssetKey);
keepOriginal = handleTransformations(newAsset, file, contentType, assetKeyDefinition, newContentVersion.getId());
if(keepOriginal)
{
List<Integer> newContentVersionIdList = new ArrayList<Integer>();
digitalAssetVO = DigitalAssetController.create(newAsset, is, newContentVersion.getId(), this.getInfoGluePrincipal(), newContentVersionIdList);
}
}
if(CmsPropertyHandler.getEnableDiskAssets().equals("true"))
{
if(keepOriginal)
{
//String assetFileName = "" + digitalAssetVO.getAssetFilePath() + File.separator + digitalAssetVO.getId() + "_" + digitalAssetVO.getAssetFileName();
String folderName = "" + (digitalAssetVO.getDigitalAssetId().intValue() / 1000);
String assetFileName = "" + digitalAssetVO.getAssetFilePath() + File.separator + folderName + File.separator + digitalAssetVO.getId() + "_" + digitalAssetVO.getAssetFileName();
//logger.info("newAsset:" + assetFileName);
File assetFile = new File(assetFileName);
//logger.info("Renaming:" + file.getAbsolutePath() + " to " + assetFile.getAbsolutePath());
file.renameTo(assetFile);
//logger.info("apaFile:" + assetFile.exists());
}
}
this.uploadedFilesCounter = new Integer(this.uploadedFilesCounter.intValue() + 1);
}
finally
{
try
{
if(CmsPropertyHandler.getEnableDiskAssets().equals("false"))
{
is.close();
file.delete();
}
}
catch(Throwable e)
{
logger.error("An error occurred when we tried to close the fileinput stream and delete the file:" + e.getMessage(), e);
}
}
return "success";
}
private boolean handleTransformations(DigitalAssetVO originalAssetVO, File file, String contentType, AssetKeyDefinition assetKeyDefinition, Integer contentVersionId)
{
boolean keepOriginal = true;
try
{
String transformationsXML = null;
if(assetKeyDefinition != null)
transformationsXML = assetKeyDefinition.getAssetUploadTransformationsSettings();
if(transformationsXML == null || transformationsXML.equals(""))
transformationsXML = CmsPropertyHandler.getAssetUploadTransformationsSettings();
if(transformationsXML == null || transformationsXML.equals("") || transformationsXML.equals("none"))
return keepOriginal;
DOMBuilder domBuilder = new DOMBuilder();
Document document = domBuilder.getDocument(transformationsXML);
Element rootElement = document.getRootElement();
String transformationXPath = "//transformation";
List transformationElements = rootElement.selectNodes(transformationXPath);
logger.info("transformationElements:" + transformationElements.size());
/*
<transformations>
<transformation inputFilePattern=".*(jpeg|jpg|gif|png).*" keepOriginal="false">
<tranformResult type="scaleImage" width="100" height="100" outputFormat="png" assetSuffix="medium"/>
<tranformResult type="scaleImage" width="50" height="50" outputFormat="jpg" assetSuffix="small"/>
</transformation>
</transformations>
*/
Iterator transformationElementsIterator = transformationElements.iterator();
while(transformationElementsIterator.hasNext())
{
Element transformationElement = (Element)transformationElementsIterator.next();
String assetKeyPattern = transformationElement.attributeValue("assetKeyPattern");
String includedContentTypeDefinitionNames = transformationElement.attributeValue("includedContentTypeDefinitionNames");
String inputFilePattern = transformationElement.attributeValue("inputFilePattern");
logger.info("includedContentTypeDefinitionNames: " + includedContentTypeDefinitionNames);
logger.info("inputFilePattern: " + inputFilePattern);
boolean assetKeyMatch = false;
if(assetKeyPattern == null || assetKeyPattern.equals(""))
assetKeyMatch = true;
else if(originalAssetVO.getAssetKey().matches(assetKeyPattern))
assetKeyMatch = true;
boolean contentTypeDefinitionNameMatch = true;
if(contentTypeDefinitionVO.getName() != null && includedContentTypeDefinitionNames != null && includedContentTypeDefinitionNames.indexOf(contentTypeDefinitionVO.getName()) == -1)
contentTypeDefinitionNameMatch = false;
if(contentTypeDefinitionNameMatch && assetKeyMatch && contentType.matches(inputFilePattern))
{
logger.info("We got a match on contentType:" + contentType + " : " + inputFilePattern);
String keepOriginalAsset = transformationElement.attributeValue("keepOriginal");
if(keepOriginalAsset != null && keepOriginalAsset.equalsIgnoreCase("false"))
keepOriginal = false;
logger.info("keepOriginal:" + keepOriginal);
List tranformResultElements = transformationElement.elements("tranformResult");
Iterator tranformResultElementsIterator = tranformResultElements.iterator();
while(tranformResultElementsIterator.hasNext())
{
Element tranformResultElement = (Element)tranformResultElementsIterator.next();
String type = tranformResultElement.attributeValue("type");
String width = tranformResultElement.attributeValue("width");
String height = tranformResultElement.attributeValue("height");
String outputFormat = tranformResultElement.attributeValue("outputFormat");
String assetSuffix = tranformResultElement.attributeValue("assetSuffix");
logger.info("type: " + type);
logger.info("width: " + width);
logger.info("height: " + height);
logger.info("outputFormat: " + outputFormat);
logger.info("assetSuffix: " + assetSuffix);
if(type.equalsIgnoreCase("scaleImage"))
scaleAndSaveImage(originalAssetVO, file, Integer.parseInt(width), Integer.parseInt(height), outputFormat, assetSuffix, contentVersionId);
}
}
else
{
logger.info("NOOOO match on contentType:" + contentType + " : " + inputFilePattern);
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return keepOriginal;
}
private void scaleAndSaveImage(DigitalAssetVO originalAssetVO, File file, int width, int height, String outputFormat, String assetSuffix, Integer contentVersionId) throws Exception
{
String workingFileName = "" + originalAssetVO.getDigitalAssetId() + "_" + assetSuffix + "." + outputFormat.toLowerCase();
long timeStamp = System.currentTimeMillis();
if(originalAssetVO.getDigitalAssetId() == null)
workingFileName = "" + timeStamp + "_" + assetSuffix + "." + outputFormat.toLowerCase();
File outputFile = new File(CmsPropertyHandler.getDigitalAssetPath() + File.separator + File.separator + workingFileName);
logger.info("Scaling image to new format:" + originalAssetVO + ":" + outputFormat);
Imaging.resize(file, outputFile, width, height, outputFormat, true);
String assetContentType = "image/png";
if(outputFormat.equalsIgnoreCase("gif"))
assetContentType = "image/gif";
if(outputFormat.equalsIgnoreCase("jpg"))
assetContentType = "image/jpeg";
DigitalAssetVO digitalAssetVO = new DigitalAssetVO();
digitalAssetVO.setAssetContentType(assetContentType);
digitalAssetVO.setAssetFileName(outputFile.getName());
digitalAssetVO.setAssetFilePath(outputFile.getPath());
digitalAssetVO.setAssetFileSize(new Integer((int)outputFile.length()));
digitalAssetVO.setAssetKey(originalAssetVO.getAssetKey() + "_" + assetSuffix);
InputStream is = new FileInputStream(outputFile);
List<Integer> newContentVersionIdList = new ArrayList<Integer>();
this.digitalAssetVO = DigitalAssetController.create(digitalAssetVO, is, contentVersionId, this.getInfoGluePrincipal(), newContentVersionIdList);
is.close();
//logger.info("this.digitalAssetVO in scale:" + this.digitalAssetVO.getId());
String folderName = "" + (this.digitalAssetVO.getId().intValue() / 1000);
String newWorkingFileName = "" + this.digitalAssetVO.getId() + "_" + timeStamp + "_" + assetSuffix + "." + outputFormat.toLowerCase();
File finalOutputFile = new File(CmsPropertyHandler.getDigitalAssetPath() + File.separator + folderName + File.separator + newWorkingFileName);
outputFile.renameTo(finalOutputFile);
}
/**
* This method fetches the blob from the database and saves it on the disk.
* Then it returnes a url for it
*/
public String getDigitalAssetUrl() throws Exception
{
String imageHref = null;
try
{
imageHref = DigitalAssetController.getDigitalAssetUrl(digitalAssetVO.getDigitalAssetId());
}
catch(Exception e)
{
logger.warn("We could not get the url of the digitalAsset: " + e.getMessage(), e);
}
return imageHref;
}
public String getAssetThumbnailUrl()
{
String imageHref = null;
try
{
imageHref = DigitalAssetController.getDigitalAssetThumbnailUrl(digitalAssetVO.getDigitalAssetId());
}
catch(Exception e)
{
logger.warn("We could not get the url of the thumbnail: " + e.getMessage(), e);
}
return imageHref;
}
public boolean getAllowedSessionId(String requestSessionId) throws Exception
{
boolean allowedSessionId = false;
List activeSessionBeanList = CmsSessionContextListener.getSessionInfoBeanList();
Iterator activeSessionsIterator = activeSessionBeanList.iterator();
//logger.info("activeSessionBeanList:" + activeSessionBeanList.size());
while(activeSessionsIterator.hasNext())
{
SessionInfoBean sessionBean = (SessionInfoBean)activeSessionsIterator.next();
//logger.info("sessionBean:" + sessionBean.getId() + "=" + sessionBean.getPrincipal().getName());
if(sessionBean.getId().equals(requestSessionId))
{
//logger.info("Found a matching sessionId");
allowedSessionId = true;
break;
}
}
return allowedSessionId;
}
public String getReasonKey()
{
return reasonKey;
}
public String getCloseOnLoad()
{
return closeOnLoad;
}
public void setCloseOnLoad(String closeOnLoad)
{
this.closeOnLoad = closeOnLoad;
}
public Integer getContentTypeDefinitionId()
{
return contentTypeDefinitionId;
}
public void setContentTypeDefinitionId(Integer contentTypeDefinitionId)
{
this.contentTypeDefinitionId = contentTypeDefinitionId;
}
public ContentTypeDefinitionVO getContentTypeDefinitionVO()
{
return this.contentTypeDefinitionVO;
}
public String getUploadErrorMaxSize()
{
return uploadMaxSize;
}
public boolean getRefreshAll()
{
return this.refreshAll;
}
public void setDigitalAssetKey(String digitalAssetKey)
{
this.digitalAssetKey = digitalAssetKey;
}
public String getDigitalAssetKey()
{
return digitalAssetKey;
}
public void setUploadedFilesCounter(Integer uploadedFilesCounter)
{
this.uploadedFilesCounter = uploadedFilesCounter;
}
public Integer getUploadedFilesCounter()
{
return this.uploadedFilesCounter;
}
public Integer getParentContentId()
{
return parentContentId;
}
public void setParentContentId(Integer parentContentId)
{
this.parentContentId = parentContentId;
}
public Integer getRepositoryId()
{
return repositoryId;
}
public void setRepositoryId(Integer repositoryId)
{
this.repositoryId = repositoryId;
}
}