Merged V4.0-BUG-FIX to HEAD

37207: BDE-69: Filter more tests for minimal build plan
   37253: Fix for ALF-13634 Re-created category won't show up again on a node in Document Library.
   - also fixes deletion of secondary associations
   37265: Merged V4.0 to V4.0-BUG-FIX
      37224: ALF-14174: Part 14 for ALF-14237 Upgrades from 4.0.0.x/4..0.1.0 will not fix the timestamps on acl changesets - SOLR will skip ACLs set prior to upgrade
      - Fix syntax error on Oracle
      37250: Fix for ALF-14174 The patch adding timestamps to acl_change_set breaks SOLR tracking
      - better cross DB fix
   37298:  ALF-14365 - added hazelcastConfig.xml.sample
   37323: ALF-13247: Two nodes with the same primary path. 
      -Fixed by initializing zone before parallel batch processing begins.
   37326: ALF-13933 Alfresco needs to be able to support LibreOffice for transformations
   ALF-13452 Open office startup from Java not working on OSX
      - Added code to start LibreOffice 3.5 on Mac (requires different options to the command and
        ure-link is a directory rather than a file on mac)
      - Removes $DYLD_LIBRARY_PATH from the environment when starting either openoffice or libreoffice on mac
        so does not need to rely on the installer moving the soffice.bin process to .soffice.bin and then
        creating a soffice.bin shell script that removed $DYLD_LIBRARY_PATH
      - Indent TransformerDebug a bit more now we have fail over transformers at the top and lower levels
        (saves N.N.N.N.N.N getting mixed up with text)
   37340: Merged V3.4-BUG-FIX (3.4.10) to V4.0-BUG-FIX (4.0.3) RECORD ONLY
      37339: ALF-13452: Merged V4.0-BUG-FIX (4.0.3) to V3.4-BUG-FIX (3.4.10)
         37326: ALF-13933 Alfresco needs to be able to support LibreOffice for transformations
         ALF-13452 Open office startup from Java not working on OSX
            - Added code to start LibreOffice 3.5 on Mac (requires different options to the command and
              ure-link is a directory rather than a file on mac)
            - Removes $DYLD_LIBRARY_PATH from the environment when starting either openoffice or libreoffice on mac
              so does not need to rely on the installer moving the soffice.bin process to .soffice.bin and then
              creating a soffice.bin shell script that removed $DYLD_LIBRARY_PATH
            - Indent TransformerDebug a bit more now we have fail over transformers at the top and lower levels
              (saves N.N.N.N.N.N getting mixed up with text)
         36273: ALF-13933 Alfresco needs to be able to support LibreOffice for transformations
            - Return a dummy OpenOffice command even when there is no OpenOffice/LibreOffice installed or on the path. 
         36264: ALF-13933 Alfresco needs to be able to support LibreOffice for transformations
            - remove old jodconverter-core-3.0-beta-3.diff
         36259: ALF-13933 Alfresco needs to be able to support LibreOffice for transformations
            << Developed on Windows 7. Might need more work on Linux to get LibreOffice to shut down, but should be
               okay with OpenOffice 3.2 which was used in the previous release. >> 
            - Updated jodconverter to latest version jodconverter-core-3.0-SNAPSHOT-patched.jar 28/4/2012 which is newer
              than 3.0 beta-4
            - Applied patch for http://code.google.com/p/jodconverter/issues/detail?id=103 to handle setting the env
              for LibreOffice 3.5
            - Modified code to use partial GNU style options (not used for -env!) when using LibreOffice
            - Added OpenOfficeCommandLine to dynamically supply OpenOffice or LibreOffice command line args for OOoDirect
            - Tested to work with OpenOffice 3.4 and 3.2 on Windows 7
   37353: Merged V3.4-BUG-FIX (3.4.10) to V4.0-BUG-FIX (4.0.3)
      37352: ALF-13452, ALF-13933 Alfresco needs to be able to support LibreOffice for transformations
         - Build test failure
   37359: New JUnit Rule to support automatic creation and cleanup of Share sites in test code.
   This is required for an imminent fix to ALF-14345, but I'm checking it in separately in order to merge this general utility.
   37360: Fix for ALF-14345. Site Service list method does not recognise sub-types of st:site.
   37364: Merged V3.4-BUG-FIX (3.4.10) to V4.0-BUG-FIX (4.0.3) RECORD ONLY (not needed in 4.0.x)
      37363: ALF-13452, ALF-13933 Alfresco needs to be able to support LibreOffice for transformations
         - Build test failure x2 (reference to jodconverter*jar not needed in 4.0.x)
   37370: Merged V3.4-BUG-FIX:
      ALF-11714: Updated WCMQS to ensure all FreeMarker variables output to HTML are protected with ?html to prevent XSS
   37382: Translation (DE, IT, JA, NL) updates from Gloria, based on EN rev37081
   37384: Fix for ALF-14219 SolrQueryHTTPClient unable to handle long queries (4096 bytes)
   37386: Merged V4.0 to V4.0-BUG-FIX
      37385: ALF-14238: Fix by Dmitry to correct iteration in ImapUnsubscribedAspectPatch


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@37387 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Dave Ward
2012-06-02 07:56:08 +00:00
parent 8e1e570c3c
commit 507c4d8bf8
24 changed files with 1038 additions and 172 deletions

View File

@@ -21,9 +21,7 @@ package org.alfresco.repo.admin.patch.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.model.ContentModel;
import org.alfresco.model.ImapModel;
@@ -33,6 +31,7 @@ import org.alfresco.repo.batch.BatchProcessor;
import org.alfresco.repo.batch.BatchProcessor.BatchProcessWorker;
import org.alfresco.repo.domain.node.NodeDAO;
import org.alfresco.repo.domain.node.NodeDAO.NodeRefQueryCallback;
import org.alfresco.repo.domain.patch.PatchDAO;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.PersonService;
@@ -45,27 +44,21 @@ public class ImapUnsubscribedAspectPatch extends AbstractPatch
{
private static final String MSG_NONSUBSCRIBED_ASPECT_REMOVED = "patch.imapUnsubscribedAspect.result.removed";
private static final QName ASPECT_NON_SUBSCRIBED = QName.createQName("{http://www.alfresco.org/model/imap/1.0}nonSubscribed");
private static final String PROP_MIN_ID = "minNodeId";
private NodeDAO nodeDAO;
private PatchDAO patchDAO;
private PersonService personService;
private final Map<String, Long> properties = new HashMap<String, Long>();
private final int batchThreads = 3;
private final int batchSize = 40;
private final long count = batchThreads * batchSize;
private long minSearchNodeId = 1;
private int batchThreads = 3;
private int batchSize = 40;
private long count = batchThreads * batchSize;
@Override
public void init()
{
super.init();
properties.put(PROP_MIN_ID, 1L);
}
@Override
protected String applyInternal() throws Exception
{
final List<ChildAssociationRef> users = nodeService.getChildAssocs(personService.getPeopleContainer(), ContentModel.ASSOC_CHILDREN, RegexQNamePattern.MATCH_ALL);
final long maxNodeId = patchDAO.getMaxAdmNodeID();
BatchProcessWorkProvider<NodeRef> workProvider = new BatchProcessWorkProvider<NodeRef>()
{
@@ -79,17 +72,21 @@ public class ImapUnsubscribedAspectPatch extends AbstractPatch
public Collection<NodeRef> getNextWork()
{
result.clear();
nodeDAO.getNodesWithAspects(Collections.singleton(ASPECT_NON_SUBSCRIBED), properties.get(PROP_MIN_ID), count, new NodeRefQueryCallback()
while (result.isEmpty() && minSearchNodeId < maxNodeId)
{
nodeDAO.getNodesWithAspects(Collections.singleton(ASPECT_NON_SUBSCRIBED), minSearchNodeId,
minSearchNodeId + count, new NodeRefQueryCallback()
{
public boolean handle(Pair<Long, NodeRef> nodePair)
{
properties.put(PROP_MIN_ID, nodePair.getFirst());
result.add(nodePair.getSecond());
return true;
}
public boolean handle(Pair<Long, NodeRef> nodePair)
{
result.add(nodePair.getSecond());
return true;
}
});
});
minSearchNodeId = minSearchNodeId + count + 1;
}
return result;
}
@@ -137,6 +134,11 @@ public class ImapUnsubscribedAspectPatch extends AbstractPatch
this.nodeDAO = nodeDAO;
}
public void setPatchDAO(PatchDAO patchDAO)
{
this.patchDAO = patchDAO;
}
public void setPersonService(PersonService personService)
{
this.personService = personService;