Nick Burch 58d491fea4 Initial work on Replication Service
This covers most of the key interfaces, some initial definition load/save, along with the bootstrap+patch to create the new definition storage area in the data dictionary. No action logic is included yet.
Most things are based on the best practices from the Rendition Service.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@20947 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2010-07-05 15:44:39 +00:00

83 lines
2.6 KiB
Java

/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.replication;
import java.io.Serializable;
import java.util.List;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
/**
* This class is used to fully specify an inter-repository replication. It
* specifies which node(s) should be transfered, which associated content
* should be sent with them, and which target they should be sent to.
* <P/>
* Every ReplicationDefinition has a <code>replicationName</code> attribute
* which uniquely identifies it. It also has a single target.
*
* @author Nick Burch
*/
public interface ReplicationDefinition extends Action, Serializable {
/**
* @return the name which uniquely identifies this replication definition.
*/
QName getReplicationName();
/**
* @return the name of the target repository.
*/
String getTargetName();
/**
* Sets the name of the target repository.
*/
void setTargetName(String targetName);
/**
* The list of Nodes to be transfered. This
* list can be edited as required.
* @return An editable list of the nodes to be transfered
*/
List<NodeRef> getPayload();
/**
* Returns the local side of the report on
* the transfer.
* The transfer service generates two reports,
* one on the local repository, and one on the
* remote repository. This returns the
* local version of the report.
* @return The transfer report on the local repository
*/
NodeRef getLocalTransferReport();
/**
* Records the location on the local repository
* of the transfer service report on the
* replication.
*/
void setLocalTransferReport(NodeRef report);
// TODO Persistent action bits of last start, last finish, worked
// TODO Replication options, such as permissions and rules
}