Revision: 18176
http://sourceforge.net/p/gate/code/18176
Author: johann_p
Date: 2014-07-11 15:45:13 +0000 (Fri, 11 Jul 2014)
Log Message:
-----------
Add support for overriding init parameters to the Persistence
objects. Also, make each Persistence know the name of the
containing controller, if any. This can be used by Resources
that want to prepare the overriding of their contained
resources. If not used, everything works as before.
Modified Paths:
--------------
gate/trunk/src/main/gate/util/persistence/AnalyserRunningStrategyPersistence.java
gate/trunk/src/main/gate/util/persistence/CollectionPersistence.java
gate/trunk/src/main/gate/util/persistence/ConditionalControllerPersistence.java
gate/trunk/src/main/gate/util/persistence/ConditionalSerialAnalyserControllerPersistence.java
gate/trunk/src/main/gate/util/persistence/ControllerPersistence.java
gate/trunk/src/main/gate/util/persistence/CorpusPersistence.java
gate/trunk/src/main/gate/util/persistence/DSPersistence.java
gate/trunk/src/main/gate/util/persistence/LRPersistence.java
gate/trunk/src/main/gate/util/persistence/LanguageAnalyserPersistence.java
gate/trunk/src/main/gate/util/persistence/MapPersistence.java
gate/trunk/src/main/gate/util/persistence/PRPersistence.java
gate/trunk/src/main/gate/util/persistence/PersistenceManager.java
gate/trunk/src/main/gate/util/persistence/ResourcePersistence.java
gate/trunk/src/main/gate/util/persistence/SerialAnalyserControllerPersistence.java
gate/trunk/src/main/gate/util/persistence/UnconditionalRunningStrategyPersistence.java
Modified:
gate/trunk/src/main/gate/util/persistence/AnalyserRunningStrategyPersistence.java
===================================================================
---
gate/trunk/src/main/gate/util/persistence/AnalyserRunningStrategyPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++
gate/trunk/src/main/gate/util/persistence/AnalyserRunningStrategyPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -11,7 +11,7 @@
* Persistent holder for {@link gate.creole.AnalyserRunningStrategy}.
*/
-public class AnalyserRunningStrategyPersistence implements Persistence {
+public class AnalyserRunningStrategyPersistence extends AbstractPersistence {
@Override
public void extractDataFromSource(Object source) throws PersistenceException
{
@@ -32,9 +32,9 @@
@Override
public Object createObject() throws PersistenceException,
ResourceInstantiationException {
- return new AnalyserRunningStrategy((LanguageAnalyser)
- PersistenceManager.
- getTransientRepresentation(pr),
+ return new AnalyserRunningStrategy(
+ (LanguageAnalyser)PersistenceManager.getTransientRepresentation(
+ pr,containingControllerName,initParamOverrides),
runMode, featureName, featureValue);
}
Modified: gate/trunk/src/main/gate/util/persistence/CollectionPersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/CollectionPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/CollectionPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -26,7 +26,7 @@
import java.util.List;
-public class CollectionPersistence implements Persistence {
+public class CollectionPersistence extends AbstractPersistence {
/**
* Populates this Persistence with the data that needs to be stored from the
@@ -79,7 +79,8 @@
//now we have the collection let's populate it
for(Object local : localList) {
try {
- result.add(PersistenceManager.getTransientRepresentation(local));
+ result.add(PersistenceManager.getTransientRepresentation(
+ local,containingControllerName,initParamOverrides));
}
catch(PersistenceException pe) {
exceptionsOccurred.add(pe.getMessage());
Modified:
gate/trunk/src/main/gate/util/persistence/ConditionalControllerPersistence.java
===================================================================
---
gate/trunk/src/main/gate/util/persistence/ConditionalControllerPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++
gate/trunk/src/main/gate/util/persistence/ConditionalControllerPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -49,12 +49,10 @@
public Object createObject()throws PersistenceException,
ResourceInstantiationException{
ConditionalController controller =
- (ConditionalController)super.createObject();
-// if(controller.getRunningStrategies().isEmpty()){
+ (ConditionalController)super.createObject();
controller.setRunningStrategies(
- (Collection<RunningStrategy>)PersistenceManager.
- getTransientRepresentation(strategiesList));
-// }
+
(Collection<RunningStrategy>)PersistenceManager.getTransientRepresentation(
+ strategiesList,resourceName,initParamOverrides));
return controller;
}
protected Serializable strategiesList;
Modified:
gate/trunk/src/main/gate/util/persistence/ConditionalSerialAnalyserControllerPersistence.java
===================================================================
---
gate/trunk/src/main/gate/util/persistence/ConditionalSerialAnalyserControllerPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++
gate/trunk/src/main/gate/util/persistence/ConditionalSerialAnalyserControllerPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -54,7 +54,8 @@
ResourceInstantiationException{
ConditionalSerialAnalyserController sac =
(ConditionalSerialAnalyserController)
super.createObject();
-
sac.setCorpus((Corpus)PersistenceManager.getTransientRepresentation(corpus));
+ sac.setCorpus((Corpus)PersistenceManager.getTransientRepresentation(
+ corpus,resourceName,initParamOverrides));
return sac;
}
protected Object corpus;
Modified: gate/trunk/src/main/gate/util/persistence/ControllerPersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/ControllerPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/ControllerPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -59,14 +59,12 @@
@Override
public Object createObject()throws PersistenceException,
ResourceInstantiationException{
-
Controller controller = (Controller)super.createObject();
-
if(controller.getPRs().isEmpty()){
- prList = PersistenceManager.getTransientRepresentation(prList);
+ prList = PersistenceManager.getTransientRepresentation(
+ prList,resourceName,initParamOverrides);
controller.setPRs((Collection<ProcessingResource>)prList);
}
-
return controller;
}
Modified: gate/trunk/src/main/gate/util/persistence/CorpusPersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/CorpusPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/CorpusPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -74,8 +74,8 @@
if(!docList.isEmpty() && corpus.isEmpty()){
Iterator<Serializable> docIter = docList.iterator();
while(docIter.hasNext()){
- corpus.add((Document) PersistenceManager.
- getTransientRepresentation(docIter.next()));
+ corpus.add((Document) PersistenceManager.getTransientRepresentation(
+ docIter.next(),containingControllerName,initParamOverrides));
}
}
Modified: gate/trunk/src/main/gate/util/persistence/DSPersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/DSPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/DSPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -22,7 +22,7 @@
import gate.persist.PersistenceException;
import java.net.URL;
-public class DSPersistence implements Persistence{
+public class DSPersistence extends AbstractPersistence{
/**
Modified: gate/trunk/src/main/gate/util/persistence/LRPersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/LRPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/LRPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -65,10 +65,11 @@
if(dsData == null) return super.createObject();
else{
//persistent doc
- initParams = PersistenceManager.getTransientRepresentation(initParams);
+ initParams = PersistenceManager.getTransientRepresentation(
+ initParams,containingControllerName,initParamOverrides);
- DataStore ds = (DataStore)PersistenceManager.
- getTransientRepresentation(dsData);
+ DataStore ds = (DataStore)PersistenceManager.getTransientRepresentation(
+ dsData,containingControllerName,initParamOverrides);
((Map<Object,Object>)initParams).put(DataStore.DATASTORE_FEATURE_NAME,
ds);
((Map<Object,Object>)initParams).put(DataStore.LR_ID_FEATURE_NAME,
persistenceID);
return super.createObject();
Modified:
gate/trunk/src/main/gate/util/persistence/LanguageAnalyserPersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/LanguageAnalyserPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/LanguageAnalyserPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -52,8 +52,8 @@
ResourceInstantiationException{
LanguageAnalyser la = (LanguageAnalyser)super.createObject();
la.setCorpus((Corpus)PersistenceManager.getTransientRepresentation(corpus));
- la.setDocument((Document)PersistenceManager.
- getTransientRepresentation(document));
+ la.setDocument((Document)PersistenceManager.getTransientRepresentation(
+ document,containingControllerName,initParamOverrides));
return la;
}
Modified: gate/trunk/src/main/gate/util/persistence/MapPersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/MapPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/MapPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -22,7 +22,7 @@
import java.util.Iterator;
import java.util.Map;
-public class MapPersistence implements Persistence {
+public class MapPersistence extends AbstractPersistence {
/**
* Populates this Persistence with the data that needs to be stored from the
* original source object.
@@ -75,7 +75,8 @@
Object value = localMap.get(key);
key = PersistenceManager.getTransientRepresentation(key);
- value = PersistenceManager.getTransientRepresentation(value);
+ value = PersistenceManager.getTransientRepresentation(
+ value,containingControllerName,initParamOverrides);
result.put(key, value);
}
Modified: gate/trunk/src/main/gate/util/persistence/PRPersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/PRPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/PRPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -86,10 +86,10 @@
//now add the runtime parameters
if(runtimeParams != null){
runtimeParams = PersistenceManager.
- getTransientRepresentation(runtimeParams);
+ getTransientRepresentation(
+ runtimeParams,containingControllerName,initParamOverrides);
((Resource)res).setParameterValues((FeatureMap)runtimeParams);
}
-
return res;
}
Modified: gate/trunk/src/main/gate/util/persistence/PersistenceManager.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/PersistenceManager.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/PersistenceManager.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -469,6 +469,12 @@
public static Object getTransientRepresentation(Object target)
throws PersistenceException, ResourceInstantiationException {
+ return getTransientRepresentation(target,null,null);
+ }
+
+ public static Object getTransientRepresentation(Object target,
+ String containingControllerName, Map<String,Map<String,Object>>
initParamOverrides)
+ throws PersistenceException, ResourceInstantiationException {
if(target == null || target instanceof SlashDevSlashNull) return null;
if(target instanceof Persistence) {
@@ -478,6 +484,10 @@
if(result != null) return result;
// we didn't find the value: create it
+ if(containingControllerName != null && target instanceof
AbstractPersistence) {
+ ((AbstractPersistence)target).containingControllerName =
containingControllerName;
+ ((AbstractPersistence)target).initParamOverrides = initParamOverrides;
+ }
result = ((Persistence)target).createObject();
existingTransientValues.get().getFirst().put(resultKey, result);
return result;
Modified: gate/trunk/src/main/gate/util/persistence/ResourcePersistence.java
===================================================================
--- gate/trunk/src/main/gate/util/persistence/ResourcePersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++ gate/trunk/src/main/gate/util/persistence/ResourcePersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -27,14 +27,19 @@
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
+import org.apache.log4j.Logger;
+
/**
* Holds the data needed to serialise and recreate a {@link Resource}.
* This data is considered to be: the resource class name, the resource name,
* the resource features and the resource initialistion parameters.
*/
-class ResourcePersistence implements Persistence{
+class ResourcePersistence extends AbstractPersistence{
+ protected static final Logger log =
Logger.getLogger(ResourcePersistence.class);
+
@Override
public void extractDataFromSource(Object source) throws PersistenceException{
if(! (source instanceof Resource)){
@@ -85,9 +90,33 @@
public Object createObject()throws PersistenceException,
ResourceInstantiationException {
if(initParams != null)
- initParams = PersistenceManager.getTransientRepresentation(initParams);
+ initParams = PersistenceManager.getTransientRepresentation(
+ initParams,containingControllerName,initParamOverrides);
if(features != null)
- features = PersistenceManager.getTransientRepresentation(features);
+ features = PersistenceManager.getTransientRepresentation(
+ features,containingControllerName,initParamOverrides);
+ if(initParamOverrides != null) {
+ // check if there is a map for this resource Id in the overrides
+ String containingControllerNameToUse =
+ containingControllerName == null ? "" : containingControllerName;
+ String resourceId = containingControllerNameToUse+"\t"+resourceName;
+ if(initParamOverrides.containsKey(resourceId)) {
+ Map<String,Object> parmOverrides = initParamOverrides.get(resourceId);
+ if(initParams instanceof FeatureMap) {
+ FeatureMap fm = (FeatureMap)initParams;
+ // override the values
+ // do this in a loop instead of using putAll so we can log the
changes
+ for(String name : parmOverrides.keySet()) {
+ Object obj = parmOverrides.get(name);
+ log.info(
+ "Overriding init parameter "+name+
+ " for "+containingControllerNameToUse+
+ "//"+resourceName+" with "+obj);
+ fm.put(name, obj);
+ }
+ }
+ }
+ }
Resource res = Factory.createResource(resourceType, (FeatureMap)initParams,
(FeatureMap)features,resourceName);
return res;
Modified:
gate/trunk/src/main/gate/util/persistence/SerialAnalyserControllerPersistence.java
===================================================================
---
gate/trunk/src/main/gate/util/persistence/SerialAnalyserControllerPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++
gate/trunk/src/main/gate/util/persistence/SerialAnalyserControllerPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -54,7 +54,8 @@
ResourceInstantiationException{
SerialAnalyserController sac = (SerialAnalyserController)
super.createObject();
-
sac.setCorpus((Corpus)PersistenceManager.getTransientRepresentation(corpus));
+ sac.setCorpus((Corpus)PersistenceManager.getTransientRepresentation(
+ corpus,resourceName,initParamOverrides));
return sac;
}
protected Object corpus;
Modified:
gate/trunk/src/main/gate/util/persistence/UnconditionalRunningStrategyPersistence.java
===================================================================
---
gate/trunk/src/main/gate/util/persistence/UnconditionalRunningStrategyPersistence.java
2014-07-11 01:19:37 UTC (rev 18175)
+++
gate/trunk/src/main/gate/util/persistence/UnconditionalRunningStrategyPersistence.java
2014-07-11 15:45:13 UTC (rev 18176)
@@ -11,7 +11,7 @@
* Persistent holder for {@link
gate.creole.RunningStrategy.UnconditionalRunningStrategy}.
*/
-public class UnconditionalRunningStrategyPersistence implements Persistence {
+public class UnconditionalRunningStrategyPersistence extends
AbstractPersistence {
@Override
public void extractDataFromSource(Object source) throws PersistenceException
{
@@ -32,7 +32,7 @@
ResourceInstantiationException {
return new UnconditionalRunningStrategy(
(ProcessingResource)PersistenceManager.
- getTransientRepresentation(pr),
+
getTransientRepresentation(pr,containingControllerName,initParamOverrides),
shouldRun);
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs