Enhancements to FSR.

1) Performance imporvements (client and server are now multi-threaded + other performance work)
2) Pluggable transport protocols (ENH-145)
3) Changes to initialisation (ALFCOM-135)
4) Changes to the action service to enable multiple async event queues.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@11022 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Mark Rogers
2008-09-25 15:10:58 +00:00
parent 2a4b7c9eef
commit e98ab1750a
31 changed files with 1890 additions and 500 deletions

View File

@@ -62,6 +62,7 @@ import org.alfresco.service.cmr.thumbnail.ThumbnailService;
import org.alfresco.service.cmr.version.VersionService;
import org.alfresco.service.cmr.view.ExporterService;
import org.alfresco.service.cmr.view.ImporterService;
import org.alfresco.service.cmr.avm.deploy.DeploymentService;
import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.descriptor.DescriptorService;
import org.alfresco.service.namespace.NamespaceService;
@@ -125,6 +126,7 @@ public interface ServiceRegistry
static final QName VIRT_SERVER_REGISTRY = QName.createQName(NamespaceService.ALFRESCO_URI, "VirtServerRegistry");
static final QName THUMBNAIL_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ThumbnailService");
static final QName TAGGING_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "TaggingService");
static final QName DEPLOYMENT_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "DeploymentService");
/**
* Get the list of services provided by the Repository
@@ -411,4 +413,11 @@ public interface ServiceRegistry
*/
@NotAuditable
TaggingService getTaggingService();
/**
* Get the Deployment Service
* @return the deployment service (or null, if one is not provided)
*/
@NotAuditable
DeploymentService getDeploymentService();
}

View File

@@ -0,0 +1,46 @@
/*
* Copyright (C) 2005-2008 Alfresco Software Limited.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception. You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing"
*/
package org.alfresco.service.cmr.avm.deploy;
public class DeploymentReportCallback implements DeploymentCallback
{
private DeploymentReport report;
public DeploymentReportCallback(DeploymentReport report )
{
this.report = report;
}
/**
* Called each time something happens during deployment.
* This is called synchronously by the deployer and should
* therefore be handled rapidly, if possible.
* @param event The event that occurred.
*/
public void eventOccurred(DeploymentEvent event){
report.add(event);
}
}

View File

@@ -3,6 +3,7 @@
*/
package org.alfresco.service.cmr.avm.deploy;
import java.util.Set;
import java.util.List;
import org.alfresco.service.cmr.action.ActionService;
@@ -29,9 +30,11 @@ public interface DeploymentService
* @param dontDo If this is set then this is a dry run.
* @param callback A possibly null callback.
*/
public DeploymentReport deployDifference(int version, String srcPath,
String hostName, int port,
String userName, String password,
public void deployDifference(int version, String srcPath,
String hostName,
int port,
String userName,
String password,
String dstPath,
NameMatcher matcher,
boolean createDst,
@@ -54,23 +57,37 @@ public interface DeploymentService
* Deploy to a filesystem on another machine.
* @param version The version to deploy from.
* @param srcPath The path to deploy from.
* @param adapterName The name of the transport adapter to connect to the remote system.
* The value "default" means use the traditional RMI used for versions of Alfresco prior to 3.0
* @param hostName The hostname of the filesystem receiver.
* @param port The port to connect to.
* @param userName The username for authentication
* @param password The password for authentication
* @param userName The username for authentication of the target
* @param password The password for authentication of the target
* @param dstTarget The target on the deployment receiver.
* @param createDst Flag for whether a missing destination should be created.
* @param dontDelete Don't delete deleted nodes from destination.
* @param dontDo If this is set, this is a dry run.
* @param callback A possibly null callback.
*/
public DeploymentReport deployDifferenceFS(int version, String srcPath,
String hostName, int port,
String userName, String password,
String dstTarget,
NameMatcher matcher,
boolean createDst,
boolean dontDelete,
boolean dontDo,
List<DeploymentCallback> callback);
public void deployDifferenceFS(int version,
String srcPath,
String adapterName,
String hostName,
int port,
String userName,
String password,
String dstTarget,
NameMatcher matcher,
boolean createDst,
boolean dontDelete,
boolean dontDo,
List<DeploymentCallback> callback);
/**
* Get the names of the transport adapters.
*
* @return the adapters
*/
public Set<String> getAdapterNames();
}