From bf9a4976e7f2073b144a7860bf101cc1611ac824 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Tue, 6 Mar 2007 15:00:54 +0000 Subject: [PATCH] Merged V2.0 to HEAD 5110: AR-1166 5111: AR-729 5112: AR-1217 5113: RM email propery extraction git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5313 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../transform/AbstractContentTransformer.java | 7 ++-- .../transform/ContentTransformerRegistry.java | 8 +++++ .../OpenOfficeContentTransformer.java | 34 ++++++++++++++----- .../repo/forum/DiscussableAspect.java | 4 ++- 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/source/java/org/alfresco/repo/content/transform/AbstractContentTransformer.java b/source/java/org/alfresco/repo/content/transform/AbstractContentTransformer.java index 33b5d76279..e74869919b 100644 --- a/source/java/org/alfresco/repo/content/transform/AbstractContentTransformer.java +++ b/source/java/org/alfresco/repo/content/transform/AbstractContentTransformer.java @@ -231,9 +231,6 @@ public abstract class AbstractContentTransformer implements ContentTransformer // begin timing long before = System.currentTimeMillis(); - // check the reliability - checkReliability(reader, writer); - // check options map if (options == null) { @@ -242,6 +239,10 @@ public abstract class AbstractContentTransformer implements ContentTransformer try { + // Check the reliability + checkReliability(reader, writer); + + // Transform transformInternal(reader, writer, options); } catch (Throwable e) diff --git a/source/java/org/alfresco/repo/content/transform/ContentTransformerRegistry.java b/source/java/org/alfresco/repo/content/transform/ContentTransformerRegistry.java index 958065d8bb..40d80983b0 100644 --- a/source/java/org/alfresco/repo/content/transform/ContentTransformerRegistry.java +++ b/source/java/org/alfresco/repo/content/transform/ContentTransformerRegistry.java @@ -184,6 +184,14 @@ public class ContentTransformerRegistry ContentTransformer bestTransformer = null; for (ContentTransformer transformer : transformers) { + // Reliability can be dynamic, i.e. it may have become unreliable + double reliability = transformer.getReliability(sourceMimetype, targetMimetype); + if (reliability == 0.0) + { + // It is unreliable now. + continue; + } + long transformationTime = transformer.getTransformationTime(); // is it better? if (bestTransformer == null || transformationTime < bestTime) diff --git a/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformer.java b/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformer.java index 91cc3a9771..f951cdf2b1 100644 --- a/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformer.java +++ b/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformer.java @@ -61,6 +61,8 @@ public class OpenOfficeContentTransformer extends AbstractContentTransformer private static Log logger = LogFactory.getLog(OpenOfficeContentTransformer.class); private OpenOfficeConnection connection; + /** Keep track of the initial connection state */ + private boolean initiallyConnected; private OpenOfficeDocumentConverter converter; private String documentFormatsConfiguration; private DocumentFormatRegistry formatRegistry; @@ -89,23 +91,28 @@ public class OpenOfficeContentTransformer extends AbstractContentTransformer return connection.isConnected(); } - private synchronized void connect() + private synchronized boolean connect() { + boolean success = false; if (isConnected()) { // just leave it + success = true; } else { try { connection.connect(); + success = true; } catch (ConnectException e) { logger.warn(e.getMessage()); } } + // Done + return success; } @Override @@ -113,12 +120,6 @@ public class OpenOfficeContentTransformer extends AbstractContentTransformer { PropertyCheck.mandatory("OpenOfficeContentTransformer", "connection", connection); - // attempt to establish a connection - connect(); - - // set up the converter - converter = new OpenOfficeDocumentConverter(connection); - // load the document conversion configuration if (documentFormatsConfiguration != null) { @@ -139,7 +140,13 @@ public class OpenOfficeContentTransformer extends AbstractContentTransformer formatRegistry = new XmlDocumentFormatRegistry(); } - if (isConnected()) + // attempt to establish a connection + initiallyConnected = connect(); + + // set up the converter + converter = new OpenOfficeDocumentConverter(connection); + + if (initiallyConnected) { // If the server starts with OO running, then it will attempt reconnections. Otherwise it will // just be wasting time trying to see if a connection is available all the time. @@ -154,7 +161,16 @@ public class OpenOfficeContentTransformer extends AbstractContentTransformer { if (!isConnected()) { - return 0.0; + if (!initiallyConnected) + { + // It wasn't there to start with, so we won't bother trying to connect + return 0.0; + } + // The connection may have gone away, so attempt to get it again + if (!connect()) + { + return 0.0; + } } // there are some conversions that fail, despite the converter believing them possible diff --git a/source/java/org/alfresco/repo/forum/DiscussableAspect.java b/source/java/org/alfresco/repo/forum/DiscussableAspect.java index 3af30dd3de..95d1d89533 100644 --- a/source/java/org/alfresco/repo/forum/DiscussableAspect.java +++ b/source/java/org/alfresco/repo/forum/DiscussableAspect.java @@ -26,6 +26,7 @@ package org.alfresco.repo.forum; import java.io.Serializable; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -179,7 +180,8 @@ public class DiscussableAspect ContentModel.PROP_VERSION_LABEL); if (labelProp == null) { - topicName = childName + " - " + new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss"); + topicName = childName + " - " + dateFormat.format(new Date()); } else {