mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Implementing (some of) transfer service review rework.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19000 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -23,3 +23,5 @@ transfer_service.receiver.no_snapshot_received=
|
||||
transfer_service.receiver.error_committing_transfer=
|
||||
transfer_service.receiver.transfer_not_found=Failed to find any record of requested transfer: {0}
|
||||
transfer_service.receiver.transfer_cancelled=Transfer has been cancelled: {0}
|
||||
transfer_service.no_encoding=Unable to deserialize value, no transfermation for encoding {0}
|
||||
transfer_service.unable_to_deserialise=Unable to deserialize value
|
@@ -492,64 +492,6 @@ public class HttpClientTransmitterImpl implements TransferTransmitter
|
||||
}
|
||||
} // end of sendContent
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public Set<TransferMessage> getMessages(Transfer transfer)
|
||||
{
|
||||
// TODO How to signal last message ? return null rather than empty
|
||||
Set<TransferMessage> messages = new HashSet<TransferMessage>();
|
||||
|
||||
TransferTarget target = transfer.getTransferTarget();
|
||||
HttpMethod messagesRequest = new GetMethod();
|
||||
try
|
||||
{
|
||||
HostConfiguration hostConfig = getHostConfig(target);
|
||||
HttpState httpState = getHttpState(target);
|
||||
|
||||
messagesRequest.setPath(target.getEndpointPath() + "/messages");
|
||||
//Put the transferId on the query string
|
||||
messagesRequest.setQueryString(
|
||||
new NameValuePair[] {new NameValuePair("transferId", transfer.getTransferId())});
|
||||
|
||||
try
|
||||
{
|
||||
int responseStatus = httpClient.executeMethod(hostConfig, messagesRequest, httpState);
|
||||
checkResponseStatus("getMessages", responseStatus, messagesRequest);
|
||||
//If we get here then we've received a 200 response
|
||||
//We're expecting the transfer id encoded in a JSON object...
|
||||
|
||||
JSONObject lookupResult = new JSONObject(messagesRequest.getResponseBodyAsString());
|
||||
JSONArray data = lookupResult.getJSONArray("data");
|
||||
|
||||
for(int i = 0; i < data.length(); i++)
|
||||
{
|
||||
JSONObject obj = data.getJSONObject(i);
|
||||
String message = obj.getString("message");
|
||||
//TODO Need some sort of TransferMessage impl
|
||||
// messages.add(new TransferMessageImpl());
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
catch (RuntimeException e)
|
||||
{
|
||||
throw e;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
String error = "Failed to execute HTTP request to target";
|
||||
log.debug(error, e);
|
||||
throw new TransferException(MSG_HTTP_REQUEST_FAILED, new Object[]{"getMessages", target.toString(), e.toString()}, e);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
messagesRequest.releaseConnection();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@@ -24,7 +24,7 @@ import org.alfresco.service.cmr.transfer.TransferEvent;
|
||||
|
||||
/**
|
||||
* An abstract implementation of TransferEvent.
|
||||
* Also implements RangedTransferEvent.
|
||||
* Also implements the operations required by RangedTransferEvent.
|
||||
* @see TransferEvent
|
||||
* @see RangedTransferEvent
|
||||
*/
|
||||
@@ -105,14 +105,20 @@ public abstract class TransferEventImpl implements TransferEvent
|
||||
return range;
|
||||
}
|
||||
|
||||
/**
|
||||
* A simple human readable summary of this event, the format of this string is
|
||||
* not guaranteed and is liable to change.
|
||||
*/
|
||||
public String toString()
|
||||
{
|
||||
return "TransferEventImpl : " + this.getTime() + ", " + this.getTransferState();
|
||||
return this.getClass().getSimpleName() + ", " + this.getTime() + ", " + this.getTransferState();
|
||||
}
|
||||
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if(obj instanceof TransferEventImpl)
|
||||
if(obj != null)
|
||||
{
|
||||
if(this.getClass().equals(obj.getClass()))
|
||||
{
|
||||
TransferEventImpl other = (TransferEventImpl)obj;
|
||||
if(other.getTransferState().equals(this.getTransferState()) &&
|
||||
@@ -122,6 +128,8 @@ public abstract class TransferEventImpl implements TransferEvent
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// not a match
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2009-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.repo.transfer;
|
||||
|
||||
public interface TransferMessage
|
||||
{
|
||||
String getMessage();
|
||||
|
||||
}
|
@@ -24,7 +24,6 @@ import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -35,29 +34,18 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import org.alfresco.service.cmr.transfer.TransferEvent;
|
||||
|
||||
import javax.transaction.HeuristicMixedException;
|
||||
import javax.transaction.HeuristicRollbackException;
|
||||
import javax.transaction.NotSupportedException;
|
||||
import javax.transaction.RollbackException;
|
||||
import javax.transaction.SystemException;
|
||||
import javax.transaction.UserTransaction;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParser;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.jlan.smb.dcerpc.UUID;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||
import org.alfresco.repo.transfer.manifest.TestTransferManifestProcessor;
|
||||
import org.alfresco.repo.transfer.manifest.TransferManifestDeletedNode;
|
||||
import org.alfresco.repo.transfer.manifest.TransferManifestHeader;
|
||||
import org.alfresco.repo.transfer.manifest.TransferManifestNode;
|
||||
import org.alfresco.repo.transfer.manifest.TransferManifestNodeFactory;
|
||||
import org.alfresco.repo.transfer.manifest.TransferManifestNodeFactoryImpl;
|
||||
import org.alfresco.repo.transfer.manifest.TransferManifestNodeHelper;
|
||||
import org.alfresco.repo.transfer.manifest.TransferManifestNormalNode;
|
||||
import org.alfresco.repo.transfer.manifest.TransferManifestProcessor;
|
||||
@@ -69,7 +57,6 @@ import org.alfresco.service.cmr.action.Action;
|
||||
import org.alfresco.service.cmr.action.ActionService;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.ContentData;
|
||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
@@ -77,11 +64,11 @@ import org.alfresco.service.cmr.search.ResultSet;
|
||||
import org.alfresco.service.cmr.search.SearchService;
|
||||
import org.alfresco.service.cmr.transfer.TransferCallback;
|
||||
import org.alfresco.service.cmr.transfer.TransferDefinition;
|
||||
import org.alfresco.service.cmr.transfer.TransferEvent;
|
||||
import org.alfresco.service.cmr.transfer.TransferException;
|
||||
import org.alfresco.service.cmr.transfer.TransferProgress;
|
||||
import org.alfresco.service.cmr.transfer.TransferService;
|
||||
import org.alfresco.service.cmr.transfer.TransferTarget;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.service.namespace.RegexQNamePattern;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
@@ -89,7 +76,6 @@ import org.alfresco.util.TempFileProvider;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.extensions.surf.util.PropertyCheck;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
|
||||
public class TransferServiceImpl implements TransferService
|
||||
@@ -376,6 +362,13 @@ public class TransferServiceImpl implements TransferService
|
||||
eventProcessor.observers.addAll(callbacks);
|
||||
}
|
||||
|
||||
/*
|
||||
* Note:
|
||||
* callback should be Serializable to be passed through the action API
|
||||
* However Serializable is not used so it does not matter. Perhaps the action API should be
|
||||
* changed? Or we could add a Serializable proxy here.
|
||||
*/
|
||||
|
||||
Map<String, Serializable> params = new HashMap<String, Serializable>();
|
||||
params.put("targetName", targetName);
|
||||
params.put("definition", definition);
|
||||
|
@@ -354,7 +354,6 @@ public class TransferServiceImplTest extends BaseAlfrescoSpringTest
|
||||
target.setEndpointPath(endpointPath2);
|
||||
target.setEndpointPort(endpointPort2);
|
||||
target.setEndpointProtocol(endpointProtocol2);
|
||||
target.setName(updateMe);
|
||||
target.setPassword(password2);
|
||||
target.setUsername(username2);
|
||||
|
||||
|
@@ -93,10 +93,4 @@ public interface TransferTransmitter
|
||||
*/
|
||||
TransferProgress getStatus(Transfer transfer) throws TransferException;
|
||||
|
||||
/**
|
||||
* Get Async Messages for a transfer.
|
||||
* Server Side Messages.
|
||||
* @return messages
|
||||
*/
|
||||
Set<TransferMessage> getMessages(Transfer transfer);
|
||||
}
|
@@ -100,11 +100,6 @@ public class UnitTestInProcessTransmitterImpl implements TransferTransmitter
|
||||
}, false, true);
|
||||
}
|
||||
|
||||
public Set<TransferMessage> getMessages(Transfer transfer)
|
||||
{
|
||||
String transferId = transfer.getTransferId();
|
||||
return null;
|
||||
}
|
||||
|
||||
public void prepare(Transfer transfer) throws TransferException
|
||||
{
|
||||
|
@@ -33,15 +33,19 @@ import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.alfresco.repo.transfer.PathHelper;
|
||||
import org.alfresco.repo.transfer.TransferServiceImpl;
|
||||
import org.alfresco.service.cmr.repository.AssociationRef;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.ContentData;
|
||||
import org.alfresco.service.cmr.repository.MLText;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.Path;
|
||||
import org.alfresco.service.cmr.transfer.TransferException;
|
||||
import org.alfresco.service.namespace.NamespaceException;
|
||||
import org.alfresco.service.namespace.NamespacePrefixResolver;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.extensions.surf.util.Base64;
|
||||
import org.springframework.extensions.surf.util.I18NUtil;
|
||||
import org.springframework.extensions.surf.util.ISO8601DateFormat;
|
||||
@@ -53,7 +57,7 @@ import org.xml.sax.helpers.DefaultHandler;
|
||||
|
||||
/**
|
||||
* SAX XML Content Handler to read a transfer manifest XML Stream and
|
||||
* delegate processing to the specified TransferManifestProcessor
|
||||
* delegate processing of the manifest to the specified TransferManifestProcessor
|
||||
*
|
||||
* @author Mark Rogers
|
||||
*/
|
||||
@@ -61,15 +65,17 @@ public class XMLTransferManifestReader extends DefaultHandler implements Content
|
||||
{
|
||||
private TransferManifestProcessor processor;
|
||||
|
||||
private static Log logger = LogFactory.getLog(XMLTransferManifestReader.class);
|
||||
private static final String MSG_NO_ENCODING = "transfer_service.no_encoding";
|
||||
private static final String MSG_UNABLE_DESERIALIZE = "transfer_service.unable_to_deserialise";
|
||||
|
||||
/**
|
||||
* These are the namespaces used within the document - there may be a different mapping to
|
||||
* the namespaces of the Data Dictionary.
|
||||
*/
|
||||
// Map<String, String> documentNamespaces = new HashMap<String, String>();
|
||||
|
||||
LinkedList<HashMap<String, String>> namespaces = new LinkedList<HashMap<String, String>>();
|
||||
final String TRANSFER_URI = ManifestModel.TRANSFER_MODEL_1_0_URI;
|
||||
final String XMLNS_URI = "http://www.w3.org/XML/1998/namespace";
|
||||
LinkedList<HashMap<String, String>> namespaces = new LinkedList<HashMap<String, String>>();
|
||||
|
||||
public XMLTransferManifestReader(TransferManifestProcessor snapshotProcessor)
|
||||
{
|
||||
@@ -275,6 +281,7 @@ public class XMLTransferManifestReader extends DefaultHandler implements Content
|
||||
}
|
||||
else if(elementName.equals(ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED))
|
||||
{
|
||||
props.put("encoding", atts.getValue("", "encoding"));
|
||||
buffer = new StringBuffer();
|
||||
}
|
||||
else if(elementName.equals(ManifestModel.LOCALNAME_ELEMENT_MLVALUE))
|
||||
@@ -482,11 +489,13 @@ public class XMLTransferManifestReader extends DefaultHandler implements Content
|
||||
else if(elementName.equals(ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED))
|
||||
{
|
||||
Collection<Serializable> values = (Collection<Serializable>)props.get("values");
|
||||
String encoding = (String)props.get("encoding");
|
||||
|
||||
String strValue = buffer.toString();
|
||||
Object value = null;
|
||||
|
||||
// TODO assumes "base64/ObjectOutputStream" - should check
|
||||
if(encoding.equalsIgnoreCase("base64/ObjectOutputStream"))
|
||||
{
|
||||
try
|
||||
{
|
||||
byte[] data = Base64.decode(strValue.getBytes("UTF-8"));
|
||||
@@ -495,21 +504,26 @@ public class XMLTransferManifestReader extends DefaultHandler implements Content
|
||||
}
|
||||
catch (IOException error)
|
||||
{
|
||||
//TODO Error handler - should this fail the transfer ?
|
||||
error.printStackTrace();
|
||||
throw new TransferException(MSG_UNABLE_DESERIALIZE, error);
|
||||
}
|
||||
catch (ClassNotFoundException error)
|
||||
{
|
||||
//TODO Error handler - should this fail the transfer ?
|
||||
error.printStackTrace();
|
||||
throw new TransferException(MSG_UNABLE_DESERIALIZE, error);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new TransferException(MSG_NO_ENCODING, new Object[]{encoding});
|
||||
}
|
||||
|
||||
if(values != null)
|
||||
{
|
||||
// This is a values array
|
||||
values.add((Serializable)value);
|
||||
}
|
||||
else
|
||||
{
|
||||
// This is a single value
|
||||
props.put("value", value);
|
||||
}
|
||||
}
|
||||
|
@@ -49,12 +49,14 @@ import org.springframework.extensions.surf.util.ISO8601DateFormat;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.helpers.AttributesImpl;
|
||||
|
||||
//import com.sun.org.apache.xml.internal.security.utils.Base64;
|
||||
|
||||
/**
|
||||
* XMLTransferManifestWriter
|
||||
* Writes the transfer manifest out in XML format to the specified writer.
|
||||
*
|
||||
* Writes the transfer manifest out to XML format.
|
||||
* XMLTransferManifestWriter is a statefull object used for writing out a single transfer manifest
|
||||
* file in XML format to the writer passed in via startTransferManifest.
|
||||
*
|
||||
* Call startTransferManifest, writeTransferManifestHeader, writeTransferManifestNode (0 to many),
|
||||
* endTransferManifest.
|
||||
*
|
||||
* @author Mark Rogers
|
||||
*/
|
||||
@@ -87,7 +89,9 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
this.writer.startPrefixMapping("cm", NamespaceService.CONTENT_MODEL_1_0_URI);
|
||||
|
||||
// Start Transfer Manifest // uri, name, prefix
|
||||
this.writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_TRANSFER_MAINIFEST, PREFIX + ":" + ManifestModel.LOCALNAME_TRANSFER_MAINIFEST, EMPTY_ATTRIBUTES);
|
||||
this.writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_TRANSFER_MAINIFEST, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_TRANSFER_MAINIFEST, EMPTY_ATTRIBUTES);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -96,7 +100,9 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
public void endTransferManifest() throws SAXException
|
||||
{
|
||||
// End Transfer Manifest
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_TRANSFER_MAINIFEST, PREFIX + ":" + ManifestModel.LOCALNAME_TRANSFER_MAINIFEST);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_TRANSFER_MAINIFEST, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_TRANSFER_MAINIFEST);
|
||||
writer.endPrefixMapping(PREFIX);
|
||||
|
||||
writer.endDocument();
|
||||
@@ -107,24 +113,38 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
*/
|
||||
public void writeTransferManifestHeader(TransferManifestHeader header) throws SAXException
|
||||
{
|
||||
if(header.getCreatedDate() != null)
|
||||
if (header.getCreatedDate() != null)
|
||||
{
|
||||
// Start Header
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_TRANSFER_HEADER, PREFIX + ":" + ManifestModel.LOCALNAME_TRANSFER_HEADER, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_TRANSFER_HEADER, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_TRANSFER_HEADER, EMPTY_ATTRIBUTES);
|
||||
|
||||
// Created Date
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_HEADER_CREATED_DATE, PREFIX + ":" + ManifestModel.LOCALNAME_HEADER_CREATED_DATE, EMPTY_ATTRIBUTES);
|
||||
writer
|
||||
.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_HEADER_CREATED_DATE, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_HEADER_CREATED_DATE,
|
||||
EMPTY_ATTRIBUTES);
|
||||
writeDate(header.getCreatedDate());
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_HEADER_CREATED_DATE, PREFIX + ":" + ManifestModel.LOCALNAME_HEADER_CREATED_DATE);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_HEADER_CREATED_DATE, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_HEADER_CREATED_DATE);
|
||||
|
||||
// Node count
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_HEADER_NODE_COUNT, PREFIX + ":" + ManifestModel.LOCALNAME_HEADER_NODE_COUNT, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_HEADER_NODE_COUNT, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_HEADER_NODE_COUNT, EMPTY_ATTRIBUTES);
|
||||
char[] nodeCountChars = Integer.toString(header.getNodeCount()).toCharArray();
|
||||
writer.characters(nodeCountChars, 0, nodeCountChars.length);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_HEADER_NODE_COUNT, PREFIX + ":" + ManifestModel.LOCALNAME_HEADER_NODE_COUNT);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_HEADER_NODE_COUNT, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_HEADER_NODE_COUNT);
|
||||
|
||||
// End Header
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_TRANSFER_HEADER, PREFIX + ":" + ManifestModel.LOCALNAME_TRANSFER_HEADER);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_TRANSFER_HEADER, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_TRANSFER_HEADER);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,29 +157,35 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
public void writeTransferManifestNode(TransferManifestDeletedNode node) throws SAXException
|
||||
{
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
attributes.addAttribute("uri", "nodeRef", "nodeRef", "String", node.getNodeRef().toString());
|
||||
attributes
|
||||
.addAttribute("uri", "nodeRef", "nodeRef", "String", node.getNodeRef()
|
||||
.toString());
|
||||
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_NODE, PREFIX + ":" +ManifestModel.LOCALNAME_ELEMENT_DELETED_NODE, attributes);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_NODE, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_DELETED_NODE, attributes);
|
||||
|
||||
if(node.getPrimaryParentAssoc() != null)
|
||||
if (node.getPrimaryParentAssoc() != null)
|
||||
{
|
||||
writePrimaryParent(node.getPrimaryParentAssoc(), node.getParentPath());
|
||||
}
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_NODE, PREFIX + ":" +ManifestModel.LOCALNAME_ELEMENT_DELETED_NODE);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_NODE, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_DELETED_NODE);
|
||||
|
||||
}
|
||||
|
||||
public void writeTransferManifestNode(TransferManifestNode node) throws SAXException
|
||||
{
|
||||
if(node instanceof TransferManifestDeletedNode)
|
||||
if (node instanceof TransferManifestDeletedNode)
|
||||
{
|
||||
TransferManifestDeletedNode node2 = (TransferManifestDeletedNode)node;
|
||||
TransferManifestDeletedNode node2 = (TransferManifestDeletedNode) node;
|
||||
writeTransferManifestNode(node2);
|
||||
}
|
||||
else if(node instanceof TransferManifestNormalNode)
|
||||
else if (node instanceof TransferManifestNormalNode)
|
||||
{
|
||||
TransferManifestNormalNode node2 = (TransferManifestNormalNode)node;
|
||||
TransferManifestNormalNode node2 = (TransferManifestNormalNode) node;
|
||||
writeTransferManifestNode(node2);
|
||||
}
|
||||
else
|
||||
@@ -171,18 +197,24 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
|
||||
/**
|
||||
* Write a normal transfer manifest node
|
||||
*
|
||||
* @param nodeRef
|
||||
* @throws SAXException
|
||||
*/
|
||||
public void writeTransferManifestNode(TransferManifestNormalNode node) throws SAXException
|
||||
{
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
attributes.addAttribute("uri", "nodeRef", "nodeRef", "String", node.getNodeRef().toString());
|
||||
attributes.addAttribute("uri", "nodeType", "nodeType", "String", formatQName(node.getType()));
|
||||
attributes
|
||||
.addAttribute("uri", "nodeRef", "nodeRef", "String", node.getNodeRef()
|
||||
.toString());
|
||||
attributes.addAttribute("uri", "nodeType", "nodeType", "String",
|
||||
formatQName(node.getType()));
|
||||
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_NODE, PREFIX + ":" +ManifestModel.LOCALNAME_ELEMENT_NODE, attributes);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_NODE, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_NODE, attributes);
|
||||
|
||||
if(node.getPrimaryParentAssoc() != null)
|
||||
if (node.getPrimaryParentAssoc() != null)
|
||||
{
|
||||
writePrimaryParent(node.getPrimaryParentAssoc(), node.getParentPath());
|
||||
}
|
||||
@@ -199,62 +231,85 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
|
||||
writeSourceAssocs(node.getSourceAssocs());
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_NODE, PREFIX + ":" +ManifestModel.LOCALNAME_ELEMENT_NODE);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_NODE, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_NODE);
|
||||
}
|
||||
|
||||
private void writeProperties(Map<QName, Serializable> properties) throws SAXException
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PROPERTIES, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PROPERTIES, EMPTY_ATTRIBUTES);
|
||||
if(properties != null )
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PROPERTIES, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PROPERTIES, EMPTY_ATTRIBUTES);
|
||||
if (properties != null)
|
||||
{
|
||||
for(Entry<QName, Serializable> entry : properties.entrySet())
|
||||
for (Entry<QName, Serializable> entry : properties.entrySet())
|
||||
{
|
||||
writeProperty(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PROPERTIES, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PROPERTIES);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PROPERTIES, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PROPERTIES);
|
||||
}
|
||||
|
||||
private void writeProperty(QName name, Serializable value) throws SAXException
|
||||
{
|
||||
{
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "name", "name", "String", formatQName(name));
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PROPERTY, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PROPERTY, attributes);
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "name", "name", "String",
|
||||
formatQName(name));
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PROPERTY, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PROPERTY, attributes);
|
||||
}
|
||||
|
||||
if(value == null)
|
||||
if (value == null)
|
||||
{
|
||||
writeNullValue();
|
||||
}
|
||||
else if(value instanceof ContentData)
|
||||
else if (value instanceof ContentData)
|
||||
{
|
||||
ContentData data = (ContentData)value;
|
||||
ContentData data = (ContentData) value;
|
||||
AttributesImpl dataAttributes = new AttributesImpl();
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "contentURL","contentURL", "String", data.getContentUrl());
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "mimetype", "mimetype", "String", data.getMimetype());
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "size", "size", "String", Long.toString(data.getSize()));
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "encoding", "encoding", "String", data.getEncoding());
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "locale", "locale", "String", data.getLocale().toString());
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER, dataAttributes);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER);
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "contentURL",
|
||||
"contentURL", "String", data.getContentUrl());
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "mimetype",
|
||||
"mimetype", "String", data.getMimetype());
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "size", "size",
|
||||
"String", Long.toString(data.getSize()));
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "encoding",
|
||||
"encoding", "String", data.getEncoding());
|
||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "locale", "locale",
|
||||
"String", data.getLocale().toString());
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER,
|
||||
dataAttributes);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER);
|
||||
}
|
||||
else if(value instanceof Collection)
|
||||
else if (value instanceof Collection)
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUES, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUES, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_VALUES, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_VALUES, EMPTY_ATTRIBUTES);
|
||||
int index = 0;
|
||||
for (Object valueInCollection : (Collection)value)
|
||||
for (Object valueInCollection : (Collection) value)
|
||||
{
|
||||
writeValue((Serializable)valueInCollection);
|
||||
writeValue((Serializable) valueInCollection);
|
||||
index++;
|
||||
}
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUES, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUES);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_VALUES, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_VALUES);
|
||||
}
|
||||
else if(value instanceof MLText)
|
||||
else if (value instanceof MLText)
|
||||
{
|
||||
MLText mltext = (MLText)value;
|
||||
for(Entry<Locale, String> entry : mltext.entrySet())
|
||||
MLText mltext = (MLText) value;
|
||||
for (Entry<Locale, String> entry : mltext.entrySet())
|
||||
{
|
||||
writeMLValue(entry.getKey(), entry.getValue());
|
||||
}
|
||||
@@ -263,26 +318,32 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
{
|
||||
writeValue(value);
|
||||
}
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PROPERTY, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PROPERTY);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PROPERTY, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PROPERTY);
|
||||
}
|
||||
|
||||
private void writeValue(Serializable value) throws SAXException
|
||||
{
|
||||
try
|
||||
{
|
||||
String strValue = (String)DefaultTypeConverter.INSTANCE.convert(String.class, value);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUE_STRING, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUE_STRING, EMPTY_ATTRIBUTES);
|
||||
String strValue = (String) DefaultTypeConverter.INSTANCE.convert(String.class, value);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_VALUE_STRING, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_VALUE_STRING,
|
||||
EMPTY_ATTRIBUTES);
|
||||
|
||||
writer.characters(strValue.toCharArray(), 0, strValue.length());
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUE_STRING, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUE_STRING);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_VALUE_STRING, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_VALUE_STRING);
|
||||
}
|
||||
catch (TypeConversionException e)
|
||||
{
|
||||
/**
|
||||
* Can't convert this to a string for transmission
|
||||
*
|
||||
* Need to serialize the Java Object
|
||||
* Can't convert this to a string for transmission Need to serialize
|
||||
* the Java Object
|
||||
*/
|
||||
|
||||
try
|
||||
@@ -298,15 +359,22 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
String s = new String(Base64.encodeBytes(ba));
|
||||
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "className", "className", "String", value.getClass().getName());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "encoding", "encoding", "String", "base64/ObjectOutputStream");
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED, attributes);
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "className",
|
||||
"className", "String", value.getClass().getName());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "encoding",
|
||||
"encoding", "String", "base64/ObjectOutputStream");
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED,
|
||||
attributes);
|
||||
|
||||
writer.startCDATA();
|
||||
writer.characters(s.toCharArray(), 0, s.length());
|
||||
writer.endCDATA();
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED);
|
||||
|
||||
}
|
||||
catch (IOException err)
|
||||
@@ -319,41 +387,58 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
private void writeNullValue() throws SAXException
|
||||
{
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL, attributes);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL, attributes);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL);
|
||||
}
|
||||
|
||||
private void writeMLValue(Locale locale, Serializable value) throws SAXException
|
||||
{
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "locale", "locale", "String", locale.toString());
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_MLVALUE, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_MLVALUE, attributes);
|
||||
String strValue = (String)DefaultTypeConverter.INSTANCE.convert(String.class, value);
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "locale", "locale", "String",
|
||||
locale.toString());
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_MLVALUE, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_MLVALUE, attributes);
|
||||
String strValue = (String) DefaultTypeConverter.INSTANCE.convert(String.class, value);
|
||||
writer.characters(strValue.toCharArray(), 0, strValue.length());
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_MLVALUE, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_MLVALUE);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_MLVALUE, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_MLVALUE);
|
||||
}
|
||||
|
||||
private void writeAspects(Set<QName> aspects) throws SAXException
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_ASPECTS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_ASPECTS, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_ASPECTS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_ASPECTS, EMPTY_ATTRIBUTES);
|
||||
|
||||
if(aspects != null)
|
||||
if (aspects != null)
|
||||
{
|
||||
for(QName aspect : aspects)
|
||||
for (QName aspect : aspects)
|
||||
{
|
||||
writeAspect(aspect);
|
||||
}
|
||||
}
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_ASPECTS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_ASPECTS);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_ASPECTS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_ASPECTS);
|
||||
}
|
||||
|
||||
private void writeAspect(QName aspect) throws SAXException
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_ASPECT, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_ASPECT, EMPTY_ATTRIBUTES);
|
||||
String name=formatQName(aspect);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_ASPECT, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_ASPECT, EMPTY_ATTRIBUTES);
|
||||
String name = formatQName(aspect);
|
||||
writer.characters(name.toCharArray(), 0, name.length());
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_ASPECT, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_ASPECT);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_ASPECT, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_ASPECT);
|
||||
}
|
||||
|
||||
private void writeDate(Date date) throws SAXException
|
||||
@@ -368,117 +453,170 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
||||
return qname.toString();
|
||||
}
|
||||
|
||||
private void writePrimaryParent(ChildAssociationRef parentAssoc, Path parentPath) throws SAXException
|
||||
private void writePrimaryParent(ChildAssociationRef parentAssoc, Path parentPath)
|
||||
throws SAXException
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PARENT, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PARENT, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PARENT, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PARENT, EMPTY_ATTRIBUTES);
|
||||
|
||||
writeParentAssoc(parentAssoc);
|
||||
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, EMPTY_ATTRIBUTES);
|
||||
if(parentPath != null)
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, EMPTY_ATTRIBUTES);
|
||||
if (parentPath != null)
|
||||
{
|
||||
String path = parentPath.toString();
|
||||
writer.characters(path.toCharArray(), 0, path.length());
|
||||
}
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH);
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PARENT, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PARENT);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PARENT, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PARENT);
|
||||
}
|
||||
|
||||
private void writeParentAssocs(List<ChildAssociationRef> refs) throws SAXException
|
||||
{
|
||||
if(refs != null)
|
||||
if (refs != null)
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOCS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOCS, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOCS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOCS,
|
||||
EMPTY_ATTRIBUTES);
|
||||
|
||||
for(ChildAssociationRef assoc : refs)
|
||||
for (ChildAssociationRef assoc : refs)
|
||||
{
|
||||
writeParentAssoc(assoc);
|
||||
}
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOCS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOCS);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOCS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOCS);
|
||||
}
|
||||
}
|
||||
|
||||
private void writeChildAssocs(List<ChildAssociationRef> refs) throws SAXException
|
||||
{
|
||||
if(refs != null)
|
||||
if (refs != null)
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOCS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOCS, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOCS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOCS,
|
||||
EMPTY_ATTRIBUTES);
|
||||
|
||||
for(ChildAssociationRef assoc : refs)
|
||||
for (ChildAssociationRef assoc : refs)
|
||||
{
|
||||
writeChildAssoc(assoc);
|
||||
}
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOCS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOCS);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOCS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOCS);
|
||||
}
|
||||
}
|
||||
|
||||
private void writeParentAssoc(ChildAssociationRef assoc) throws SAXException
|
||||
{
|
||||
if(assoc != null)
|
||||
if (assoc != null)
|
||||
{
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "from", "from", "String", assoc.getParentRef().toString());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String", formatQName(assoc.getTypeQName()));
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "isPrimary", "Boolean", assoc.isPrimary()?"true":"false");
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC, attributes);
|
||||
String name= formatQName(assoc.getQName());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "from", "from", "String",
|
||||
assoc.getParentRef().toString());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String",
|
||||
formatQName(assoc.getTypeQName()));
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "isPrimary",
|
||||
"Boolean", assoc.isPrimary() ? "true" : "false");
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC, attributes);
|
||||
String name = formatQName(assoc.getQName());
|
||||
writer.characters(name.toCharArray(), 0, name.length());
|
||||
assoc.isPrimary();
|
||||
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC);
|
||||
}
|
||||
}
|
||||
|
||||
private void writeChildAssoc(ChildAssociationRef assoc) throws SAXException
|
||||
{
|
||||
if(assoc != null)
|
||||
if (assoc != null)
|
||||
{
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "to", "to", "String", assoc.getChildRef().toString());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String", formatQName(assoc.getTypeQName()));
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "isPrimary", "Boolean", assoc.isPrimary()?"true":"false");
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC, attributes);
|
||||
String name= formatQName(assoc.getQName());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "to", "to", "String",
|
||||
assoc.getChildRef().toString());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String",
|
||||
formatQName(assoc.getTypeQName()));
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "isPrimary",
|
||||
"Boolean", assoc.isPrimary() ? "true" : "false");
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC, attributes);
|
||||
String name = formatQName(assoc.getQName());
|
||||
writer.characters(name.toCharArray(), 0, name.length());
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC);
|
||||
}
|
||||
}
|
||||
|
||||
private void writeTargetAssocs(List<AssociationRef> refs) throws SAXException
|
||||
{
|
||||
if(refs != null)
|
||||
if (refs != null)
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_TARGET_ASSOCS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_TARGET_ASSOCS, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_TARGET_ASSOCS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_TARGET_ASSOCS,
|
||||
EMPTY_ATTRIBUTES);
|
||||
|
||||
for(AssociationRef assoc : refs)
|
||||
for (AssociationRef assoc : refs)
|
||||
{
|
||||
writeAssoc(assoc);
|
||||
}
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_TARGET_ASSOCS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_TARGET_ASSOCS);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_TARGET_ASSOCS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_TARGET_ASSOCS);
|
||||
}
|
||||
}
|
||||
|
||||
private void writeSourceAssocs(List<AssociationRef> refs) throws SAXException
|
||||
{
|
||||
if(refs != null)
|
||||
if (refs != null)
|
||||
{
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_SOURCE_ASSOCS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_SOURCE_ASSOCS, EMPTY_ATTRIBUTES);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_SOURCE_ASSOCS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_SOURCE_ASSOCS,
|
||||
EMPTY_ATTRIBUTES);
|
||||
|
||||
for(AssociationRef assoc : refs)
|
||||
for (AssociationRef assoc : refs)
|
||||
{
|
||||
writeAssoc(assoc);
|
||||
}
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_SOURCE_ASSOCS, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_SOURCE_ASSOCS);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_SOURCE_ASSOCS, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_SOURCE_ASSOCS);
|
||||
}
|
||||
}
|
||||
|
||||
private void writeAssoc(AssociationRef ref) throws SAXException
|
||||
{
|
||||
AttributesImpl attributes = new AttributesImpl();
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "source", "source", "String", ref.getSourceRef().toString());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "target", "target", "String", ref.getTargetRef().toString());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String", formatQName(ref.getTypeQName()));
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "source", "source", "String",
|
||||
ref.getSourceRef().toString());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "target", "target", "String",
|
||||
ref.getTargetRef().toString());
|
||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String",
|
||||
formatQName(ref.getTypeQName()));
|
||||
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_ASSOC, attributes);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_ASSOC);
|
||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_ASSOC, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_ASSOC, attributes);
|
||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||
ManifestModel.LOCALNAME_ELEMENT_ASSOC, PREFIX + ":"
|
||||
+ ManifestModel.LOCALNAME_ELEMENT_ASSOC);
|
||||
}
|
||||
}
|
||||
|
@@ -18,8 +18,6 @@
|
||||
*/
|
||||
package org.alfresco.service.cmr.transfer;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* The transfer callback is called during a transfer, it allows the real-time feedback of
|
||||
* an in progress transfer. It can be used to populate a deployment report or to display
|
||||
@@ -27,7 +25,7 @@ import java.io.Serializable;
|
||||
*
|
||||
* @author Mark Rogers
|
||||
*/
|
||||
public interface TransferCallback extends Serializable
|
||||
public interface TransferCallback
|
||||
{
|
||||
/**
|
||||
* processEvent
|
||||
|
@@ -39,14 +39,6 @@ public interface TransferTarget
|
||||
*/
|
||||
public String getName();
|
||||
|
||||
/**
|
||||
* Set the name of this transfer target. Please note that you can't update the name of a
|
||||
* transfer target.
|
||||
*
|
||||
* @param name
|
||||
*/
|
||||
public void setName(String name);
|
||||
|
||||
/**
|
||||
* Get the description for this transfer target
|
||||
* @return
|
||||
|
Reference in New Issue
Block a user