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.error_committing_transfer=
|
||||||
transfer_service.receiver.transfer_not_found=Failed to find any record of requested transfer: {0}
|
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.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
|
} // 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.
|
* An abstract implementation of TransferEvent.
|
||||||
* Also implements RangedTransferEvent.
|
* Also implements the operations required by RangedTransferEvent.
|
||||||
* @see TransferEvent
|
* @see TransferEvent
|
||||||
* @see RangedTransferEvent
|
* @see RangedTransferEvent
|
||||||
*/
|
*/
|
||||||
@@ -105,14 +105,20 @@ public abstract class TransferEventImpl implements TransferEvent
|
|||||||
return range;
|
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()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "TransferEventImpl : " + this.getTime() + ", " + this.getTransferState();
|
return this.getClass().getSimpleName() + ", " + this.getTime() + ", " + this.getTransferState();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean equals(Object obj)
|
public boolean equals(Object obj)
|
||||||
{
|
{
|
||||||
if(obj instanceof TransferEventImpl)
|
if(obj != null)
|
||||||
|
{
|
||||||
|
if(this.getClass().equals(obj.getClass()))
|
||||||
{
|
{
|
||||||
TransferEventImpl other = (TransferEventImpl)obj;
|
TransferEventImpl other = (TransferEventImpl)obj;
|
||||||
if(other.getTransferState().equals(this.getTransferState()) &&
|
if(other.getTransferState().equals(this.getTransferState()) &&
|
||||||
@@ -122,6 +128,8 @@ public abstract class TransferEventImpl implements TransferEvent
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
// not a match
|
||||||
return false;
|
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.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -35,29 +34,18 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
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.transaction.UserTransaction;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
import javax.xml.parsers.SAXParser;
|
import javax.xml.parsers.SAXParser;
|
||||||
import javax.xml.parsers.SAXParserFactory;
|
import javax.xml.parsers.SAXParserFactory;
|
||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.jlan.smb.dcerpc.UUID;
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
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.TransferManifestDeletedNode;
|
||||||
import org.alfresco.repo.transfer.manifest.TransferManifestHeader;
|
import org.alfresco.repo.transfer.manifest.TransferManifestHeader;
|
||||||
import org.alfresco.repo.transfer.manifest.TransferManifestNode;
|
import org.alfresco.repo.transfer.manifest.TransferManifestNode;
|
||||||
import org.alfresco.repo.transfer.manifest.TransferManifestNodeFactory;
|
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.TransferManifestNodeHelper;
|
||||||
import org.alfresco.repo.transfer.manifest.TransferManifestNormalNode;
|
import org.alfresco.repo.transfer.manifest.TransferManifestNormalNode;
|
||||||
import org.alfresco.repo.transfer.manifest.TransferManifestProcessor;
|
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.action.ActionService;
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.ContentData;
|
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.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.repository.StoreRef;
|
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.search.SearchService;
|
||||||
import org.alfresco.service.cmr.transfer.TransferCallback;
|
import org.alfresco.service.cmr.transfer.TransferCallback;
|
||||||
import org.alfresco.service.cmr.transfer.TransferDefinition;
|
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.TransferException;
|
||||||
import org.alfresco.service.cmr.transfer.TransferProgress;
|
import org.alfresco.service.cmr.transfer.TransferProgress;
|
||||||
import org.alfresco.service.cmr.transfer.TransferService;
|
import org.alfresco.service.cmr.transfer.TransferService;
|
||||||
import org.alfresco.service.cmr.transfer.TransferTarget;
|
import org.alfresco.service.cmr.transfer.TransferTarget;
|
||||||
import org.alfresco.service.namespace.NamespaceService;
|
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.service.namespace.RegexQNamePattern;
|
import org.alfresco.service.namespace.RegexQNamePattern;
|
||||||
import org.alfresco.service.transaction.TransactionService;
|
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.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.springframework.extensions.surf.util.PropertyCheck;
|
import org.springframework.extensions.surf.util.PropertyCheck;
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
|
|
||||||
public class TransferServiceImpl implements TransferService
|
public class TransferServiceImpl implements TransferService
|
||||||
@@ -376,6 +362,13 @@ public class TransferServiceImpl implements TransferService
|
|||||||
eventProcessor.observers.addAll(callbacks);
|
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>();
|
Map<String, Serializable> params = new HashMap<String, Serializable>();
|
||||||
params.put("targetName", targetName);
|
params.put("targetName", targetName);
|
||||||
params.put("definition", definition);
|
params.put("definition", definition);
|
||||||
|
@@ -354,7 +354,6 @@ public class TransferServiceImplTest extends BaseAlfrescoSpringTest
|
|||||||
target.setEndpointPath(endpointPath2);
|
target.setEndpointPath(endpointPath2);
|
||||||
target.setEndpointPort(endpointPort2);
|
target.setEndpointPort(endpointPort2);
|
||||||
target.setEndpointProtocol(endpointProtocol2);
|
target.setEndpointProtocol(endpointProtocol2);
|
||||||
target.setName(updateMe);
|
|
||||||
target.setPassword(password2);
|
target.setPassword(password2);
|
||||||
target.setUsername(username2);
|
target.setUsername(username2);
|
||||||
|
|
||||||
|
@@ -93,10 +93,4 @@ public interface TransferTransmitter
|
|||||||
*/
|
*/
|
||||||
TransferProgress getStatus(Transfer transfer) throws TransferException;
|
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);
|
}, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<TransferMessage> getMessages(Transfer transfer)
|
|
||||||
{
|
|
||||||
String transferId = transfer.getTransferId();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void prepare(Transfer transfer) throws TransferException
|
public void prepare(Transfer transfer) throws TransferException
|
||||||
{
|
{
|
||||||
|
@@ -33,15 +33,19 @@ import java.util.Map;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import org.alfresco.repo.transfer.PathHelper;
|
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.AssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.ContentData;
|
import org.alfresco.service.cmr.repository.ContentData;
|
||||||
import org.alfresco.service.cmr.repository.MLText;
|
import org.alfresco.service.cmr.repository.MLText;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.Path;
|
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.NamespaceException;
|
||||||
import org.alfresco.service.namespace.NamespacePrefixResolver;
|
import org.alfresco.service.namespace.NamespacePrefixResolver;
|
||||||
import org.alfresco.service.namespace.QName;
|
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.Base64;
|
||||||
import org.springframework.extensions.surf.util.I18NUtil;
|
import org.springframework.extensions.surf.util.I18NUtil;
|
||||||
import org.springframework.extensions.surf.util.ISO8601DateFormat;
|
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
|
* 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
|
* @author Mark Rogers
|
||||||
*/
|
*/
|
||||||
@@ -61,15 +65,17 @@ public class XMLTransferManifestReader extends DefaultHandler implements Content
|
|||||||
{
|
{
|
||||||
private TransferManifestProcessor processor;
|
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
|
* These are the namespaces used within the document - there may be a different mapping to
|
||||||
* the namespaces of the Data Dictionary.
|
* 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 TRANSFER_URI = ManifestModel.TRANSFER_MODEL_1_0_URI;
|
||||||
final String XMLNS_URI = "http://www.w3.org/XML/1998/namespace";
|
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)
|
public XMLTransferManifestReader(TransferManifestProcessor snapshotProcessor)
|
||||||
{
|
{
|
||||||
@@ -275,6 +281,7 @@ public class XMLTransferManifestReader extends DefaultHandler implements Content
|
|||||||
}
|
}
|
||||||
else if(elementName.equals(ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED))
|
else if(elementName.equals(ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED))
|
||||||
{
|
{
|
||||||
|
props.put("encoding", atts.getValue("", "encoding"));
|
||||||
buffer = new StringBuffer();
|
buffer = new StringBuffer();
|
||||||
}
|
}
|
||||||
else if(elementName.equals(ManifestModel.LOCALNAME_ELEMENT_MLVALUE))
|
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))
|
else if(elementName.equals(ManifestModel.LOCALNAME_ELEMENT_VALUE_SERIALIZED))
|
||||||
{
|
{
|
||||||
Collection<Serializable> values = (Collection<Serializable>)props.get("values");
|
Collection<Serializable> values = (Collection<Serializable>)props.get("values");
|
||||||
|
String encoding = (String)props.get("encoding");
|
||||||
|
|
||||||
String strValue = buffer.toString();
|
String strValue = buffer.toString();
|
||||||
Object value = null;
|
Object value = null;
|
||||||
|
|
||||||
// TODO assumes "base64/ObjectOutputStream" - should check
|
if(encoding.equalsIgnoreCase("base64/ObjectOutputStream"))
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
byte[] data = Base64.decode(strValue.getBytes("UTF-8"));
|
byte[] data = Base64.decode(strValue.getBytes("UTF-8"));
|
||||||
@@ -495,21 +504,26 @@ public class XMLTransferManifestReader extends DefaultHandler implements Content
|
|||||||
}
|
}
|
||||||
catch (IOException error)
|
catch (IOException error)
|
||||||
{
|
{
|
||||||
//TODO Error handler - should this fail the transfer ?
|
throw new TransferException(MSG_UNABLE_DESERIALIZE, error);
|
||||||
error.printStackTrace();
|
|
||||||
}
|
}
|
||||||
catch (ClassNotFoundException error)
|
catch (ClassNotFoundException error)
|
||||||
{
|
{
|
||||||
//TODO Error handler - should this fail the transfer ?
|
throw new TransferException(MSG_UNABLE_DESERIALIZE, error);
|
||||||
error.printStackTrace();
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new TransferException(MSG_NO_ENCODING, new Object[]{encoding});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(values != null)
|
if(values != null)
|
||||||
{
|
{
|
||||||
|
// This is a values array
|
||||||
values.add((Serializable)value);
|
values.add((Serializable)value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// This is a single value
|
||||||
props.put("value", 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.SAXException;
|
||||||
import org.xml.sax.helpers.AttributesImpl;
|
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
|
* @author Mark Rogers
|
||||||
*/
|
*/
|
||||||
@@ -87,7 +89,9 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
|||||||
this.writer.startPrefixMapping("cm", NamespaceService.CONTENT_MODEL_1_0_URI);
|
this.writer.startPrefixMapping("cm", NamespaceService.CONTENT_MODEL_1_0_URI);
|
||||||
|
|
||||||
// Start Transfer Manifest // uri, name, prefix
|
// 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
|
public void endTransferManifest() throws SAXException
|
||||||
{
|
{
|
||||||
// End Transfer Manifest
|
// 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.endPrefixMapping(PREFIX);
|
||||||
|
|
||||||
writer.endDocument();
|
writer.endDocument();
|
||||||
@@ -107,24 +113,38 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
|||||||
*/
|
*/
|
||||||
public void writeTransferManifestHeader(TransferManifestHeader header) throws SAXException
|
public void writeTransferManifestHeader(TransferManifestHeader header) throws SAXException
|
||||||
{
|
{
|
||||||
if(header.getCreatedDate() != null)
|
if (header.getCreatedDate() != null)
|
||||||
{
|
{
|
||||||
// Start Header
|
// 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
|
// 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());
|
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
|
// 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();
|
char[] nodeCountChars = Integer.toString(header.getNodeCount()).toCharArray();
|
||||||
writer.characters(nodeCountChars, 0, nodeCountChars.length);
|
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
|
// 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
|
public void writeTransferManifestNode(TransferManifestDeletedNode node) throws SAXException
|
||||||
{
|
{
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
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());
|
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
|
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);
|
writeTransferManifestNode(node2);
|
||||||
}
|
}
|
||||||
else if(node instanceof TransferManifestNormalNode)
|
else if (node instanceof TransferManifestNormalNode)
|
||||||
{
|
{
|
||||||
TransferManifestNormalNode node2 = (TransferManifestNormalNode)node;
|
TransferManifestNormalNode node2 = (TransferManifestNormalNode) node;
|
||||||
writeTransferManifestNode(node2);
|
writeTransferManifestNode(node2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -171,18 +197,24 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Write a normal transfer manifest node
|
* Write a normal transfer manifest node
|
||||||
|
*
|
||||||
* @param nodeRef
|
* @param nodeRef
|
||||||
* @throws SAXException
|
* @throws SAXException
|
||||||
*/
|
*/
|
||||||
public void writeTransferManifestNode(TransferManifestNormalNode node) throws SAXException
|
public void writeTransferManifestNode(TransferManifestNormalNode node) throws SAXException
|
||||||
{
|
{
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
AttributesImpl attributes = new AttributesImpl();
|
||||||
attributes.addAttribute("uri", "nodeRef", "nodeRef", "String", node.getNodeRef().toString());
|
attributes
|
||||||
attributes.addAttribute("uri", "nodeType", "nodeType", "String", formatQName(node.getType()));
|
.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());
|
writePrimaryParent(node.getPrimaryParentAssoc(), node.getParentPath());
|
||||||
}
|
}
|
||||||
@@ -199,62 +231,85 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
|||||||
|
|
||||||
writeSourceAssocs(node.getSourceAssocs());
|
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
|
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);
|
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||||
if(properties != null )
|
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());
|
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
|
private void writeProperty(QName name, Serializable value) throws SAXException
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
AttributesImpl attributes = new AttributesImpl();
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "name", "name", "String", formatQName(name));
|
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "name", "name", "String",
|
||||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PROPERTY, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PROPERTY, attributes);
|
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();
|
writeNullValue();
|
||||||
}
|
}
|
||||||
else if(value instanceof ContentData)
|
else if (value instanceof ContentData)
|
||||||
{
|
{
|
||||||
ContentData data = (ContentData)value;
|
ContentData data = (ContentData) value;
|
||||||
AttributesImpl dataAttributes = new AttributesImpl();
|
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, "contentURL",
|
||||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "mimetype", "mimetype", "String", data.getMimetype());
|
"contentURL", "String", data.getContentUrl());
|
||||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "size", "size", "String", Long.toString(data.getSize()));
|
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "mimetype",
|
||||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "encoding", "encoding", "String", data.getEncoding());
|
"mimetype", "String", data.getMimetype());
|
||||||
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "locale", "locale", "String", data.getLocale().toString());
|
dataAttributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "size", "size",
|
||||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_CONTENT_HEADER, dataAttributes);
|
"String", Long.toString(data.getSize()));
|
||||||
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, "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;
|
int index = 0;
|
||||||
for (Object valueInCollection : (Collection)value)
|
for (Object valueInCollection : (Collection) value)
|
||||||
{
|
{
|
||||||
writeValue((Serializable)valueInCollection);
|
writeValue((Serializable) valueInCollection);
|
||||||
index++;
|
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;
|
MLText mltext = (MLText) value;
|
||||||
for(Entry<Locale, String> entry : mltext.entrySet())
|
for (Entry<Locale, String> entry : mltext.entrySet())
|
||||||
{
|
{
|
||||||
writeMLValue(entry.getKey(), entry.getValue());
|
writeMLValue(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
@@ -263,26 +318,32 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
|||||||
{
|
{
|
||||||
writeValue(value);
|
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
|
private void writeValue(Serializable value) throws SAXException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
String strValue = (String)DefaultTypeConverter.INSTANCE.convert(String.class, value);
|
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.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.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)
|
catch (TypeConversionException e)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Can't convert this to a string for transmission
|
* Can't convert this to a string for transmission Need to serialize
|
||||||
*
|
* the Java Object
|
||||||
* Need to serialize the Java Object
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -298,15 +359,22 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
|||||||
String s = new String(Base64.encodeBytes(ba));
|
String s = new String(Base64.encodeBytes(ba));
|
||||||
|
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
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, "className",
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "encoding", "encoding", "String", "base64/ObjectOutputStream");
|
"className", "String", value.getClass().getName());
|
||||||
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, "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.startCDATA();
|
||||||
writer.characters(s.toCharArray(), 0, s.length());
|
writer.characters(s.toCharArray(), 0, s.length());
|
||||||
writer.endCDATA();
|
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)
|
catch (IOException err)
|
||||||
@@ -319,41 +387,58 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
|||||||
private void writeNullValue() throws SAXException
|
private void writeNullValue() throws SAXException
|
||||||
{
|
{
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
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.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_VALUE_NULL);
|
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
|
private void writeMLValue(Locale locale, Serializable value) throws SAXException
|
||||||
{
|
{
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
AttributesImpl attributes = new AttributesImpl();
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "locale", "locale", "String", locale.toString());
|
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "locale", "locale", "String",
|
||||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_MLVALUE, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_MLVALUE, attributes);
|
locale.toString());
|
||||||
String strValue = (String)DefaultTypeConverter.INSTANCE.convert(String.class, value);
|
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.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
|
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);
|
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
|
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);
|
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||||
String name=formatQName(aspect);
|
ManifestModel.LOCALNAME_ELEMENT_ASPECT, PREFIX + ":"
|
||||||
|
+ ManifestModel.LOCALNAME_ELEMENT_ASPECT, EMPTY_ATTRIBUTES);
|
||||||
|
String name = formatQName(aspect);
|
||||||
writer.characters(name.toCharArray(), 0, name.length());
|
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
|
private void writeDate(Date date) throws SAXException
|
||||||
@@ -368,117 +453,170 @@ public class XMLTransferManifestWriter implements TransferManifestWriter
|
|||||||
return qname.toString();
|
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);
|
writeParentAssoc(parentAssoc);
|
||||||
|
|
||||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, EMPTY_ATTRIBUTES);
|
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||||
if(parentPath != null)
|
ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, PREFIX + ":"
|
||||||
|
+ ManifestModel.LOCALNAME_ELEMENT_PRIMARY_PATH, EMPTY_ATTRIBUTES);
|
||||||
|
if (parentPath != null)
|
||||||
{
|
{
|
||||||
String path = parentPath.toString();
|
String path = parentPath.toString();
|
||||||
writer.characters(path.toCharArray(), 0, path.length());
|
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
|
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);
|
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
|
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);
|
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
|
private void writeParentAssoc(ChildAssociationRef assoc) throws SAXException
|
||||||
{
|
{
|
||||||
if(assoc != null)
|
if (assoc != null)
|
||||||
{
|
{
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
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, "from", "from", "String",
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String", formatQName(assoc.getTypeQName()));
|
assoc.getParentRef().toString());
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "isPrimary", "Boolean", assoc.isPrimary()?"true":"false");
|
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String",
|
||||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_PARENT_ASSOC, attributes);
|
formatQName(assoc.getTypeQName()));
|
||||||
String name= formatQName(assoc.getQName());
|
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());
|
writer.characters(name.toCharArray(), 0, name.length());
|
||||||
assoc.isPrimary();
|
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
|
private void writeChildAssoc(ChildAssociationRef assoc) throws SAXException
|
||||||
{
|
{
|
||||||
if(assoc != null)
|
if (assoc != null)
|
||||||
{
|
{
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
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, "to", "to", "String",
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String", formatQName(assoc.getTypeQName()));
|
assoc.getChildRef().toString());
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "isPrimary", "Boolean", assoc.isPrimary()?"true":"false");
|
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String",
|
||||||
writer.startElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_CHILD_ASSOC, attributes);
|
formatQName(assoc.getTypeQName()));
|
||||||
String name= formatQName(assoc.getQName());
|
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.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
|
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);
|
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
|
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);
|
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
|
private void writeAssoc(AssociationRef ref) throws SAXException
|
||||||
{
|
{
|
||||||
AttributesImpl attributes = new AttributesImpl();
|
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, "source", "source", "String",
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "target", "target", "String", ref.getTargetRef().toString());
|
ref.getSourceRef().toString());
|
||||||
attributes.addAttribute(TransferModel.TRANSFER_MODEL_1_0_URI, "type", "type", "String", formatQName(ref.getTypeQName()));
|
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.startElement(TransferModel.TRANSFER_MODEL_1_0_URI,
|
||||||
writer.endElement(TransferModel.TRANSFER_MODEL_1_0_URI, ManifestModel.LOCALNAME_ELEMENT_ASSOC, PREFIX + ":" + ManifestModel.LOCALNAME_ELEMENT_ASSOC);
|
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;
|
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
|
* 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
|
* 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
|
* @author Mark Rogers
|
||||||
*/
|
*/
|
||||||
public interface TransferCallback extends Serializable
|
public interface TransferCallback
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* processEvent
|
* processEvent
|
||||||
|
@@ -39,14 +39,6 @@ public interface TransferTarget
|
|||||||
*/
|
*/
|
||||||
public String getName();
|
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
|
* Get the description for this transfer target
|
||||||
* @return
|
* @return
|
||||||
|
Reference in New Issue
Block a user