mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merged V4.0-BUG-FIX to HEAD
34321: Make CIFS virtual circuit per session limit configurable, return correct status code when virtual circuit limit is reached. Required by Terminal Server clients as they can use a single session for all connections. ALF-13156 34322: Services part of fix for ALF-13057 Nodes marked with rma:ghosted aspect (or other configurable aspects/types) should not be renditioned. 34323: Added configuration property for CIFS virtual circuits per session, required by Terminal Server clients. ALF-13156. 34332: Fix for ALF-8405 34336: Merged BRANCHES/V4.0 to BRANCHES/DEV/V4.0-BUG-FIX: 34335: Fixing a failing test as part of ALF-13057 34338: NodeDAO: re-parent "lost & found" orphan child nodes (see ALF-12358 & ALF-13066 / SYS-301) - test fix (follow-on to r34279) 34341: NodeDAO: re-parent "lost & found" orphan child nodes (see ALF-12358 & ALF-13066 / SYS-301) - ano test fix (once more with feeling) 34351: Merged V4.0 to V4.0-BUG-FIX 34335: (RECORD ONLY) Fixing a failing test as part of ALF-13057 34350: Merged V3.4 to V4.0 34327: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - TransformerOptions.sourceNodeRef now populated - Set average transformer time via global properties - TransformerDebug of active transformers added 34331: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - Fix test failures 34346: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - sourceNodeRef was not available to the first child transformer of a ComplexContentTransformer 34358: Merged V4.0 to V4.0-BUG-FIX (RECORD ONLY) 34324: Merged BRANCHES/DEV/V4.0-BUG-FIX to BRANCHES/V4.0: 34322: Services part of fix for ALF-13057 Nodes marked with rma:ghosted aspect (or other configurable aspects/types) should not be renditioned. 34360: Merged V3.4-BUG-FIX to V4.0-BUG-FIX (RECORD ONLY) 34349: Merged V3.4 to V3.4-BUG-FIX 34327: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - TransformerOptions.sourceNodeRef now populated - Set average transformer time via global properties - TransformerDebug of active transformers added 34331: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - Fix test failures 34346: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - sourceNodeRef was not available to the first child transformer of a ComplexContentTransformer 34348: Merged PATCHES/V3.4.7 to V3.4 34347: ALF-12949: Merged V4.0-BUG-FIX to PATCHES/V3.4.7 33959: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 33950: Fix for ALF-12787: - Surf Memory usage optimizations and improvements to ModelObject and derived classes. - Reduced avg memory usage for a ModelObject in the Surf persister cache from 4.0K to 1.5K. - Related refactoring to support removal of in-memory XML DOM previously used to maintain ModelObject state. Now XML DOM only created as needed for set() operations and thrown away. - Improvements to Surf Persister cache strategy to support MRU style concurrent cache, now uses a LinkedConcurrentHashMap to provide a concurrent cache that also has a configurable maximum capacity - Added various improved spring config for persister caches and default sizes. Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 33956: Latest SpringSurf libs: Fixed issue with overly aggressive caching of missing page View objects. 34108: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 34107: Added missing jar lib to wcmquickstart and webeditor dependencies 34363: Merged V4.0 to V4.0-BUG-FIX 34362: Merged V3.4 to V4.0 (RECORD ONLY) 34282: ALF-13059: Windows 7 specific: It's impossible to add documents to DWS - Fix by Alex Malinovsky 34348: Merged PATCHES/V3.4.7 to V3.4 34347: ALF-12949: Merged V4.0-BUG-FIX to PATCHES/V3.4.7 33959: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 33950: Fix for ALF-12787: - Surf Memory usage optimizations and improvements to ModelObject and derived classes. - Reduced avg memory usage for a ModelObject in the Surf persister cache from 4.0K to 1.5K. - Related refactoring to support removal of in-memory XML DOM previously used to maintain ModelObject state. Now XML DOM only created as needed for set() operations and thrown away. - Improvements to Surf Persister cache strategy to support MRU style concurrent cache, now uses a LinkedConcurrentHashMap to provide a concurrent cache that also has a configurable maximum capacity - Added various improved spring config for persister caches and default sizes. Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 33956: Latest SpringSurf libs: Fixed issue with overly aggressive caching of missing page View objects. 34108: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 34107: Added missing jar lib to wcmquickstart and webeditor dependencies git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@34364 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -33,7 +33,6 @@ import org.alfresco.repo.content.ContentServicePolicies.OnContentReadPolicy;
|
||||
import org.alfresco.repo.content.ContentServicePolicies.OnContentUpdatePolicy;
|
||||
import org.alfresco.repo.content.cleanup.EagerContentStoreCleaner;
|
||||
import org.alfresco.repo.content.filestore.FileContentStore;
|
||||
import org.alfresco.repo.content.transform.AbstractContentTransformerLimits;
|
||||
import org.alfresco.repo.content.transform.ContentTransformer;
|
||||
import org.alfresco.repo.content.transform.ContentTransformerRegistry;
|
||||
import org.alfresco.repo.content.transform.TransformerDebug;
|
||||
@@ -41,7 +40,6 @@ import org.alfresco.repo.node.NodeServicePolicies;
|
||||
import org.alfresco.repo.policy.ClassPolicyDelegate;
|
||||
import org.alfresco.repo.policy.JavaBehaviour;
|
||||
import org.alfresco.repo.policy.PolicyComponent;
|
||||
import org.alfresco.repo.thumbnail.ThumbnailDefinition;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||
import org.alfresco.service.cmr.avm.AVMService;
|
||||
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
||||
@@ -93,6 +91,8 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
private RetryingTransactionHelper transactionHelper;
|
||||
private ApplicationContext applicationContext;
|
||||
protected TransformerDebug transformerDebug;
|
||||
private MimetypeService mimetypeService;
|
||||
|
||||
|
||||
/** a registry of all available content transformers */
|
||||
private ContentTransformerRegistry transformerRegistry;
|
||||
@@ -190,6 +190,15 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
this.transformerDebug = transformerDebug;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper setter of the mimetypeService.
|
||||
* @param mimetypeService
|
||||
*/
|
||||
public void setMimetypeService(MimetypeService mimetypeService)
|
||||
{
|
||||
this.mimetypeService = mimetypeService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Service initialise
|
||||
*/
|
||||
@@ -539,7 +548,7 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
public void transform(ContentReader reader, ContentWriter writer)
|
||||
{
|
||||
// Call transform with no options
|
||||
TransformationOptions options = null;
|
||||
TransformationOptions options = new TransformationOptions();
|
||||
this.transform(reader, writer, options);
|
||||
}
|
||||
|
||||
@@ -577,11 +586,11 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
throw new AlfrescoRuntimeException("The content writer mimetype must be set: " + writer);
|
||||
}
|
||||
|
||||
long sourceSize = reader.getSize();
|
||||
try
|
||||
{
|
||||
// look for a transformer
|
||||
transformerDebug.pushAvailable(reader.getContentUrl(), sourceMimetype, targetMimetype);
|
||||
long sourceSize = reader.getSize();
|
||||
transformerDebug.pushAvailable(reader.getContentUrl(), sourceMimetype, targetMimetype, options);
|
||||
List<ContentTransformer> transformers = getActiveTransformers(sourceMimetype, sourceSize, targetMimetype, options);
|
||||
transformerDebug.availableTransformers(transformers, sourceSize, "ContentService.transform(...)");
|
||||
|
||||
@@ -597,7 +606,11 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
}
|
||||
finally
|
||||
{
|
||||
transformerDebug.popAvailable();
|
||||
if (transformerDebug.isEnabled())
|
||||
{
|
||||
transformerDebug.popAvailable();
|
||||
debugActiveTransformers(sourceMimetype, targetMimetype, sourceSize, options);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -623,7 +636,7 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
try
|
||||
{
|
||||
// look for a transformer
|
||||
transformerDebug.pushAvailable(sourceUrl, sourceMimetype, targetMimetype);
|
||||
transformerDebug.pushAvailable(sourceUrl, sourceMimetype, targetMimetype, options);
|
||||
List<ContentTransformer> transformers = getActiveTransformers(sourceMimetype, sourceSize, targetMimetype, options);
|
||||
transformerDebug.availableTransformers(transformers, sourceSize, "ContentService.getTransformer(...)");
|
||||
return (transformers.isEmpty()) ? null : transformers.get(0);
|
||||
@@ -633,6 +646,74 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
transformerDebug.popAvailable();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the file just uploaded into Share is a special "debugTransformers.txt" file and
|
||||
* if it is creates TransformerDebug that lists all the supported mimetype transformation for
|
||||
* each transformer.
|
||||
*/
|
||||
private void debugActiveTransformers(String sourceMimetype, String targetMimetype,
|
||||
long sourceSize, TransformationOptions transformOptions)
|
||||
{
|
||||
// check the file name, but do faster tests first
|
||||
if (sourceSize == 18 &&
|
||||
MimetypeMap.MIMETYPE_TEXT_PLAIN.equals(sourceMimetype) &&
|
||||
MimetypeMap.MIMETYPE_IMAGE_PNG.equals(targetMimetype) &&
|
||||
"debugTransformers.txt".equals(transformerDebug.getFileName(transformOptions, true, 0)))
|
||||
{
|
||||
debugActiveTransformers();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates TransformerDebug that lists all the supported mimetype transformation for each transformer.
|
||||
*/
|
||||
private void debugActiveTransformers()
|
||||
{
|
||||
try
|
||||
{
|
||||
transformerDebug.pushMisc();
|
||||
transformerDebug.debug("Active and inactive transformers (list not reduced by 'explicit' settings)");
|
||||
TransformationOptions options = new TransformationOptions();
|
||||
for (ContentTransformer transformer: transformerRegistry.getTransformers())
|
||||
{
|
||||
try
|
||||
{
|
||||
transformerDebug.pushMisc();
|
||||
int mimetypePairCount = 0;
|
||||
boolean first = true;
|
||||
for (String sourceMimetype : mimetypeService.getMimetypes())
|
||||
{
|
||||
for (String targetMimetype : mimetypeService.getMimetypes())
|
||||
{
|
||||
if (transformer.isTransformable(sourceMimetype, -1, targetMimetype, options))
|
||||
{
|
||||
long maxSourceSizeKBytes = transformer.getMaxSourceSizeKBytes(
|
||||
sourceMimetype, targetMimetype, options);
|
||||
boolean explicit = transformer.isExplicitTransformation(sourceMimetype,
|
||||
targetMimetype, options);
|
||||
transformerDebug.activeTransformer(++mimetypePairCount, transformer,
|
||||
sourceMimetype, targetMimetype, maxSourceSizeKBytes, explicit, first);
|
||||
first = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (first)
|
||||
{
|
||||
transformerDebug.inactiveTransformer(transformer);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
transformerDebug.popMisc();
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
transformerDebug.popMisc();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
@@ -642,8 +723,8 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
try
|
||||
{
|
||||
long maxSourceSize = 0;
|
||||
transformerDebug.pushAvailable(null, sourceMimetype, targetMimetype);
|
||||
List<ContentTransformer> transformers = getActiveTransformers(sourceMimetype, 0, targetMimetype, options);
|
||||
transformerDebug.pushAvailable(null, sourceMimetype, targetMimetype, options);
|
||||
List<ContentTransformer> transformers = getActiveTransformers(sourceMimetype, -1, targetMimetype, options);
|
||||
for (ContentTransformer transformer: transformers)
|
||||
{
|
||||
long maxSourceSizeKBytes = transformer.getMaxSourceSizeKBytes(sourceMimetype, targetMimetype, options);
|
||||
|
Reference in New Issue
Block a user