Author: burn
Date: Tue Jun 28 18:24:08 2016
New Revision: 1750552
URL: http://svn.apache.org/viewvc?rev=1750552&view=rev
Log:
UIMA_4990 Drop incorrect use of XmiSerializationSharedData (is only for a
service when serializing a reply to a deserialized request)
Modified:
uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/DuccUimaSerializer.java
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/JdUserCollectionReader.java
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/DuccAbstractProcessContainer.java
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaASProcessContainer.java
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java
Modified:
uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java?rev=1750552&r1=1750551&r2=1750552&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java
(original)
+++
uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java
Tue Jun 28 18:24:08 2016
@@ -30,8 +30,6 @@ public class AllInOne {
private static DuccUimaSerializer uimaSerializer = new
DuccUimaSerializer();
- private static XmiSerializationSharedData xmiSerializationSharedData =
new XmiSerializationSharedData();
-
private MsgHandler mh = new MsgHandler();
private Properties jobRequestProperties = new Properties();
@@ -54,7 +52,7 @@ public class AllInOne {
CasGenerator casGenerator;
CasPipeline casPipeline;
- private boolean timestamp;
+ //private boolean timestamp;
private boolean debug;
@@ -68,7 +66,7 @@ public class AllInOne {
}
}
// Properties will have been validated in AllInOneLauncher
- timestamp = jobRequestProperties.containsKey(Timestamp);
+ //timestamp = jobRequestProperties.containsKey(Timestamp);
debug = jobRequestProperties.containsKey(Debug);
}
@@ -102,9 +100,9 @@ public class AllInOne {
mh.frameworkDebug(cid, mid, "cas:"+count);
// Emulate a DUCC job by serializing then deserializing
into the aggregate's possibly larger typesystem
- String serializedCas =
uimaSerializer.serializeCasToXmi(cas, xmiSerializationSharedData);
+ String serializedCas =
uimaSerializer.serializeCasToXmi(cas);
CAS cas2 = casPipeline.getEmptyCas(); // Always
returns the same CAS
- uimaSerializer.deserializeCasFromXmi(serializedCas,
cas2, xmiSerializationSharedData, true, -1);
+ uimaSerializer.deserializeCasFromXmi(serializedCas,
cas2);
casPipeline.process(cas2);
count++;
Modified:
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/DuccUimaSerializer.java
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/DuccUimaSerializer.java?rev=1750552&r1=1750551&r2=1750552&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/DuccUimaSerializer.java
(original)
+++
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/DuccUimaSerializer.java
Tue Jun 28 18:24:08 2016
@@ -19,10 +19,7 @@
package org.apache.uima.ducc.user.common;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.OutputStream;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
@@ -30,23 +27,10 @@ import java.io.Writer;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import org.apache.uima.aae.InProcessCache.CacheEntry;
import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.Marker;
-import org.apache.uima.cas.SerialFormat;
-import org.apache.uima.cas.TypeSystem;
-import org.apache.uima.cas.impl.AllowPreexistingFS;
-import org.apache.uima.cas.impl.BinaryCasSerDes6;
-import org.apache.uima.cas.impl.BinaryCasSerDes6.ReuseInfo;
-import org.apache.uima.cas.impl.MarkerImpl;
-import org.apache.uima.cas.impl.OutOfTypeSystemData;
-import org.apache.uima.cas.impl.Serialization;
-import org.apache.uima.cas.impl.TypeSystemImpl;
import org.apache.uima.cas.impl.XmiCasDeserializer;
import org.apache.uima.cas.impl.XmiCasSerializer;
-import org.apache.uima.cas.impl.XmiSerializationSharedData;
import org.apache.uima.util.XMLSerializer;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
@@ -59,58 +43,17 @@ import org.xml.sax.helpers.XMLReaderFact
//import java.util.concurrent.ConcurrentHashMap;
public class DuccUimaSerializer {
- private final ThreadLocal<XMLReader> localXmlReader = new
ThreadLocal<XMLReader>();
-
-
- /**
- * Serializes CAS into a given OutputStream in Xmi format
- *
- * @param stream
- * @param aCAS
- * @param encoding
- * @param typeSystem
- * @throws IOException
- * @throws SAXException
- */
- public void serializeToXMI(OutputStream stream, CAS aCAS, String encoding,
TypeSystem typeSystem,
- OutOfTypeSystemData otsd) throws IOException, SAXException {
-
- if (typeSystem == null)
- typeSystem = aCAS.getTypeSystem();
- XMLSerializer xmlSer = new XMLSerializer(stream, false);
- if (encoding != null)
- xmlSer.setOutputProperty(OutputKeys.ENCODING, encoding);
-
- XmiCasSerializer ser = new XmiCasSerializer(typeSystem);
-
- ser.serialize(aCAS, xmlSer.getContentHandler());
- }
/**
* Utility method for serializing a CAS to an XMI String
*/
- public String serializeCasToXmi(CAS aCAS, XmiSerializationSharedData
serSharedData)
+ public String serializeCasToXmi(CAS aCAS)
throws Exception {
Writer writer = new StringWriter();
try {
XMLSerializer xmlSer = new XMLSerializer(writer, false);
XmiCasSerializer ser = new XmiCasSerializer(aCAS.getTypeSystem());
- ser.serialize(aCAS, xmlSer.getContentHandler(), null, serSharedData);
- return writer.toString();
- } catch (SAXException e) {
- throw e;
- } finally {
- writer.close();
- }
- }
-
- public String serializeCasToXmi(CAS aCAS, XmiSerializationSharedData
serSharedData, Marker aMarker)
- throws Exception {
- Writer writer = new StringWriter();
- try {
- XMLSerializer xmlSer = new XMLSerializer(writer, false);
- XmiCasSerializer ser = new XmiCasSerializer(aCAS.getTypeSystem());
- ser.serialize(aCAS, xmlSer.getContentHandler(), null, serSharedData,
aMarker);
+ ser.serialize(aCAS, xmlSer.getContentHandler());
return writer.toString();
} catch (SAXException e) {
throw e;
@@ -124,122 +67,15 @@ public class DuccUimaSerializer {
* Does both processing of requests arriving to this service
* and responses returning to this service, or to a client.
*/
- public void deserializeCasFromXmi(String anXmlStr, CAS aCAS,
- XmiSerializationSharedData aSharedData, boolean aLenient, int
aMergePoint)
+ public void deserializeCasFromXmi(String anXmlStr, CAS aCAS)
throws FactoryConfigurationError, ParserConfigurationException,
SAXException, IOException {
- if (localXmlReader.get() == null) {
- localXmlReader.set(XMLReaderFactory.createXMLReader());
- }
XMLReader xmlReader = XMLReaderFactory.createXMLReader(); //
localXmlReader.get();
-
- Reader reader = new StringReader(anXmlStr);
- XmiCasDeserializer deser = new XmiCasDeserializer(aCAS.getTypeSystem());
- ContentHandler handler = deser.getXmiCasHandler(aCAS, aLenient,
aSharedData, aMergePoint);
- xmlReader.setContentHandler(handler);
- xmlReader.parse(new InputSource(reader));
- }
-
- /**
- * Only does the processing of responses (not requests) returning from
remotes.
- * Has extra param: AllowPreexistingFS which can be allow, disallow, and
ignore
- * This is for parallel dispatch of remotes, normally configured to
disallow
- * modifications below the delta-cas point
- * 3 cases: allow - for non parallel
- * disallow - for parallel, with delta cas being returned
- * ignore - for parallel, with no delta cas being returned
- * because earlier version of client wasn't supporting
delta cas
- * See above method for requests and responses
- */
- public void deserializeCasFromXmi(String anXmlStr, CAS aCAS,
- XmiSerializationSharedData aSharedData, boolean aLenient, int
aMergePoint,
- AllowPreexistingFS allow) throws FactoryConfigurationError,
ParserConfigurationException,
- SAXException, IOException {
-
- if (localXmlReader.get() == null) {
- localXmlReader.set(XMLReaderFactory.createXMLReader());
- }
- XMLReader xmlReader = localXmlReader.get();
Reader reader = new StringReader(anXmlStr);
XmiCasDeserializer deser = new XmiCasDeserializer(aCAS.getTypeSystem());
- ContentHandler handler = deser
- .getXmiCasHandler(aCAS, aLenient, aSharedData, aMergePoint, allow);
+ ContentHandler handler = deser.getXmiCasHandler(aCAS);
xmlReader.setContentHandler(handler);
xmlReader.parse(new InputSource(reader));
}
-
- /** Utility method for deserializing a CAS from a binary */
- public SerialFormat deserializeCasFromBinary(byte[] binarySource, CAS aCAS)
throws Exception {
- ByteArrayInputStream fis = null;
- try {
- fis = new ByteArrayInputStream(binarySource);
- return Serialization.deserializeCAS(aCAS, fis);
- } catch (Exception e) {
- throw e;
- } finally {
- if (fis != null) {
- fis.close();
- }
- }
- }
-
- public byte[] serializeCasToBinary(CAS aCAS) throws Exception {
- ByteArrayOutputStream fos = null;
- try {
- fos = new ByteArrayOutputStream();
- Serialization.serializeCAS(aCAS, fos);
- return fos.toByteArray();
- } catch (Exception e) {
- throw e;
- } finally {
- if (fos != null) {
- fos.close();
- }
- }
- }
-
- public byte[] serializeCasToBinary(CAS aCAS, Marker aMark) throws Exception {
- ByteArrayOutputStream fos = null;
- try {
- fos = new ByteArrayOutputStream();
- Serialization.serializeCAS(aCAS, fos, aMark);
- return fos.toByteArray();
- } catch (Exception e) {
- throw e;
- } finally {
- if (fos != null) {
- fos.close();
- }
- }
- }
-
- // used to return non-delta cas's (used if delta cas disallowed, for
instance by having a CPP delegate)
- public byte[] serializeCasToBinary6(CAS aCAS) throws Exception {
- ByteArrayOutputStream fos = null;
- fos = new ByteArrayOutputStream();
- BinaryCasSerDes6 bcs = new BinaryCasSerDes6(aCAS);
- bcs.serialize(fos);
- return fos.toByteArray();
- }
-
- // used to send CASes to remotes
- public byte[] serializeCasToBinary6(CAS aCAS, CacheEntry entry,
TypeSystemImpl tgtTs) throws Exception {
- ByteArrayOutputStream fos = null;
- fos = new ByteArrayOutputStream();
- BinaryCasSerDes6 bcs = new BinaryCasSerDes6(aCAS, tgtTs);
- bcs.serialize(fos);
- entry.setCompress6ReuseInfo(bcs.getReuseInfo());
- return fos.toByteArray();
- }
-
- public byte[] serializeCasToBinary6(CAS aCAS, Marker aMark, ReuseInfo
reuseInfo) throws Exception {
- ByteArrayOutputStream fos = null;
- fos = new ByteArrayOutputStream();
- BinaryCasSerDes6 bcs = new BinaryCasSerDes6(aCAS, (MarkerImpl) aMark,
null, reuseInfo);
- bcs.serialize(fos);
- return fos.toByteArray();
- }
-
-
}
Modified:
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/JdUserCollectionReader.java
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/JdUserCollectionReader.java?rev=1750552&r1=1750551&r2=1750552&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/JdUserCollectionReader.java
(original)
+++
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/JdUserCollectionReader.java
Tue Jun 28 18:24:08 2016
@@ -25,12 +25,8 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.atomic.AtomicInteger;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-
import org.apache.uima.UIMAFramework;
import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.impl.XmiSerializationSharedData;
import org.apache.uima.collection.CollectionException;
import org.apache.uima.collection.CollectionReader;
import org.apache.uima.ducc.CasHelper;
@@ -49,12 +45,10 @@ import org.apache.uima.util.InvalidXMLEx
import org.apache.uima.util.Progress;
import org.apache.uima.util.XMLInputSource;
import org.apache.uima.util.XMLParser;
-import org.xml.sax.SAXException;
public class JdUserCollectionReader {
private static DuccUimaSerializer uimaSerializer = new
DuccUimaSerializer();
- private static XmiSerializationSharedData xmiSerializationSharedData =
new XmiSerializationSharedData();
private String crXml = null;
private String crCfg = null;
@@ -183,18 +177,10 @@ public class JdUserCollectionReader {
}
public String serialize(CAS cas) throws Exception {
- String serializedCas = uimaSerializer.serializeCasToXmi(cas,
xmiSerializationSharedData);
+ String serializedCas = uimaSerializer.serializeCasToXmi(cas);
return serializedCas;
}
- public CAS deserialize(String serializedCas) throws
ResourceInitializationException, FactoryConfigurationError,
ParserConfigurationException, SAXException, IOException {
- CAS cas = cm.getEmptyCas();
- boolean lenient = true;
- int mergePoint = -1;
- uimaSerializer.deserializeCasFromXmi(serializedCas, cas,
xmiSerializationSharedData, lenient, mergePoint);
- return cas;
- }
-
public void recycle(CAS cas) {
cm.recycle(cas);
}
Modified:
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/DuccAbstractProcessContainer.java
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/DuccAbstractProcessContainer.java?rev=1750552&r1=1750551&r2=1750552&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/DuccAbstractProcessContainer.java
(original)
+++
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/DuccAbstractProcessContainer.java
Tue Jun 28 18:24:08 2016
@@ -28,7 +28,6 @@ import java.util.Properties;
import org.apache.uima.UIMAFramework;
import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.impl.XmiSerializationSharedData;
import org.apache.uima.ducc.CasHelper;
import org.apache.uima.ducc.user.common.DuccUimaSerializer;
import org.apache.uima.ducc.user.jp.iface.IProcessContainer;
@@ -74,9 +73,7 @@ public abstract class DuccAbstractProces
cas = CasCreationUtils.createCas(tsd, tp, fsid, props);
}
// deserialize the CAS
- XmiSerializationSharedData deserSharedData = new
XmiSerializationSharedData();
- getUimaSerializer().
- deserializeCasFromXmi((String)xmi, cas, deserSharedData,
true,-1);
+ getUimaSerializer().deserializeCasFromXmi((String)xmi, cas);
String key = CasHelper.getId(cas);
cas.release();
Modified:
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaASProcessContainer.java
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaASProcessContainer.java?rev=1750552&r1=1750551&r2=1750552&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaASProcessContainer.java
(original)
+++
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaASProcessContainer.java
Tue Jun 28 18:24:08 2016
@@ -48,7 +48,6 @@ import org.apache.uima.aae.monitor.stati
import org.apache.uima.adapter.jms.client.BaseUIMAAsynchronousEngine_impl;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.impl.XmiSerializationSharedData;
import org.apache.uima.collection.EntityProcessStatus;
import org.apache.uima.ducc.IUser;
import org.apache.uima.util.Level;
@@ -69,10 +68,7 @@ public class UimaASProcessContainer ext
protected Object initializeMonitor = new Object();
public volatile boolean initialized = false;
private static final Class<?> CLASS_NAME = UimaASProcessContainer.class;
- private static final char FS =
System.getProperty("file.separator").charAt(
- 0);
- // use this map to pin each thread to its own instance of UimaSerializer
-// private static Map<Long, UimaSerializer> serializerMap = new
HashMap<Long, UimaSerializer>();
+ private static final char FS =
System.getProperty("file.separator").charAt(0);
private String[] deploymentDescriptors = null;
private String[] ids = null;
private String duccHome=null;
@@ -124,8 +120,7 @@ public class UimaASProcessContainer ext
public byte[] getLastSerializedError() throws Exception {
if (lastError != null) {
-
- return super.serialize(lastError);
+ return serialize(lastError);
}
return null;
@@ -180,8 +175,6 @@ public class UimaASProcessContainer ext
} finally {
}
- // Pin thread to its own CAS serializer
-// serializerMap.put( Thread.currentThread().getId(), new
UimaSerializer());
}
}
public static void dump(ClassLoader cl, int numLevels) {
@@ -344,10 +337,8 @@ public class UimaASProcessContainer ext
try {
// reset last error
lastError = null;
- XmiSerializationSharedData deserSharedData = new
XmiSerializationSharedData();
// Use thread dedicated UimaSerializer to de-serialize
the CAS
- super.getUimaSerializer().
- deserializeCasFromXmi((String)xmi, cas,
deserSharedData, true,-1);
+ getUimaSerializer().deserializeCasFromXmi((String)xmi,
cas);
/*
* The following code commented for now. Re-enable when
uima-as
Modified:
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java?rev=1750552&r1=1750551&r2=1750552&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java
(original)
+++
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java
Tue Jun 28 18:24:08 2016
@@ -34,7 +34,6 @@ import org.apache.uima.analysis_engine.A
import org.apache.uima.analysis_engine.AnalysisEngineManagement;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.cas.CAS;
-import org.apache.uima.cas.impl.XmiSerializationSharedData;
import org.apache.uima.ducc.user.common.UimaUtils;
import
org.apache.uima.ducc.user.jp.uima.UimaAnalysisEngineInstancePoolWithThreadAffinity;
import org.apache.uima.impl.UimaVersion;
@@ -107,8 +106,7 @@ public class UimaProcessContainer extend
public byte[] getLastSerializedError() throws Exception {
if (lastError != null) {
-
- return super.serialize(lastError);
+ return serialize(lastError);
}
return null;
@@ -188,10 +186,8 @@ public class UimaProcessContainer extend
try {
// reset last error
lastError = null;
- XmiSerializationSharedData deserSharedData = new
XmiSerializationSharedData();
// deserialize the CAS
- super.getUimaSerializer().
- deserializeCasFromXmi((String)xmi, cas,
deserSharedData, true,-1);
+ getUimaSerializer().deserializeCasFromXmi((String)xmi,
cas);
// the following checks out AE instance pinned to this
thread
ae = instanceMap.checkout();
@@ -222,7 +218,7 @@ public class UimaProcessContainer extend
return metricsList;
} catch( Throwable e ) {
- super.lastError = e;
+ lastError = e;
Logger logger = UIMAFramework.getLogger();
logger.log(Level.WARNING, "UimaProcessContainer", e);
e.printStackTrace();