Revision: 19624 http://sourceforge.net/p/gate/code/19624 Author: markagreenwood Date: 2016-10-04 09:25:59 +0000 (Tue, 04 Oct 2016) Log Message: ----------- started to merge in more complex tests and fixed a long standing typo in an exception message
Modified Paths: -------------- gate/branches/sawdust2/gate-core/src/main/java/gate/creole/CreoleRegisterImpl.java gate/branches/sawdust2/gate-core/src/test/resources/gate/resources/gate.ac.uk/tests/creole.xml Added Paths: ----------- gate/branches/sawdust2/gate-core/src/test/java/gate/creole/ gate/branches/sawdust2/gate-core/src/test/java/gate/creole/TestCreole.java Removed Paths: ------------- gate/branches/sawdust2/gate-core/src/test/disabled/gate/creole/TestCreole.java Modified: gate/branches/sawdust2/gate-core/src/main/java/gate/creole/CreoleRegisterImpl.java =================================================================== --- gate/branches/sawdust2/gate-core/src/main/java/gate/creole/CreoleRegisterImpl.java 2016-10-04 07:17:31 UTC (rev 19623) +++ gate/branches/sawdust2/gate-core/src/main/java/gate/creole/CreoleRegisterImpl.java 2016-10-04 09:25:59 UTC (rev 19624) @@ -237,7 +237,7 @@ registerPlugin(plugin); } catch(Exception e) { - throw new GateException("Faailed to load plugin", e); + throw new GateException("Failed to load plugin", e); } } Deleted: gate/branches/sawdust2/gate-core/src/test/disabled/gate/creole/TestCreole.java =================================================================== --- gate/branches/sawdust2/gate-core/src/test/disabled/gate/creole/TestCreole.java 2016-10-04 07:17:31 UTC (rev 19623) +++ gate/branches/sawdust2/gate-core/src/test/disabled/gate/creole/TestCreole.java 2016-10-04 09:25:59 UTC (rev 19624) @@ -1,686 +0,0 @@ -/* - * TestCreole.java - * - * Copyright (c) 1995-2012, The University of Sheffield. See the file - * COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt - * - * This file is part of GATE (see http://gate.ac.uk/), and is free - * software, licenced under the GNU Library General Public License, - * Version 2, June 1991 (in the distribution as file licence.html, - * and also available at http://gate.ac.uk/gate/licence.html). - * - * Hamish Cunningham, 16/Mar/00 - * - * $Id$ - */ - -package gate.creole; - -import java.beans.*; -import java.lang.reflect.Method; -import java.net.URL; -import java.util.*; - -import junit.framework.*; - -import gate.*; -import gate.corpora.TestDocument; -import gate.util.GateException; -import gate.util.Out; - -/** CREOLE test class - */ -public class TestCreole extends TestCase -{ - /** Debug flag */ - private static final boolean DEBUG = false; - - /** Construction */ - public TestCreole(String name) throws GateException { super(name); } - - /** Local shorthand for the CREOLE register */ - private CreoleRegister reg; - - /** Fixture set up */ - @Override - public void setUp() throws Exception { - // Initialise the GATE library and creole register - Gate.init(); - - // clear the register and the creole directory set - reg = Gate.getCreoleRegister(); - reg.clear(); - - // find a URL for finding test files and add to the directory set - URL testUrl = new URL(TestDocument.getTestServerName()+"tests/"); - reg.registerDirectories(testUrl); - - if(DEBUG) { - Iterator<ResourceData> iter = reg.values().iterator(); - while(iter.hasNext()) Out.println(iter.next()); - } - } // setUp - - /** Put things back as they should be after running tests - * (reinitialise the CREOLE register). - */ - @Override - public void tearDown() throws Exception { - reg.clear(); - Gate.init(); - } // tearDown - - /** Test the getInstances methods on CreoleRegister */ - public void testInstanceLists() throws Exception { - // misc locals - List<? extends Resource> l; - CreoleRegister cr = Gate.getCreoleRegister(); - int numLrInstances = 0; - - // The only instances of any type should be autoloading ones - l = cr.getVrInstances(); - if(! allAutoloaders(l)) - fail(" non-autoloading resources already present (1)"); - l = cr.getLrInstances(); - numLrInstances = l.size(); - if(! allAutoloaders(l)) - fail(" non-autoloading resources already present (2)"); - l = cr.getPrInstances(); - if(! allAutoloaders(l)) - fail(" non-autoloading resources already present (3)"); - - // Create an LR - FeatureMap params = Factory.newFeatureMap(); - params.put("features", Factory.newFeatureMap()); - params.put(Document.DOCUMENT_URL_PARAMETER_NAME, new URL(TestDocument.getTestServerName()+"tests/doc0.html")); - Factory.createResource("gate.corpora.DocumentImpl", params); - - // lr instances list should be one longer now - if(! (cr.getLrInstances().size() == numLrInstances + 1)) - fail("wrong number of LRs"); - - // Create another LR - params = Factory.newFeatureMap(); - params.put("features", Factory.newFeatureMap()); - params.put(Document.DOCUMENT_URL_PARAMETER_NAME, new URL(TestDocument.getTestServerName()+"tests/doc0.html")); - Factory.createResource("gate.corpora.DocumentImpl", params); - - // lr instances list should be two longer now - if(! (cr.getLrInstances().size() == numLrInstances + 2)) - fail("wrong number of LRs"); - - // we should have two instances of type document - l = cr.getLrInstances("gate.corpora.DocumentImpl"); - if(l.size() != 2) - fail("wrong number of documents"); - } // testInstanceLists - - - /** Test view registration */ - public void testViews() throws Exception { - List<String> smallViews1 = - reg.getSmallVRsForResource("gate.persist.SerialDataStore"); - String className1 = new String(""); - if (smallViews1!= null && smallViews1.size()>0) - className1 = smallViews1.get(0); - assertTrue( - "Found "+className1+ - " as small viewer for gate.persist.SerialDataStore, "+ - "instead of gate.gui.SerialDatastoreViewer", - smallViews1.size() == 1 && - "gate.gui.SerialDatastoreViewer".equals(className1) - ); - - List<String> largeViews1 = - reg.getLargeVRsForResource("gate.Corpus"); - assertTrue( - "Found "+largeViews1.size()+" wich are " +largeViews1 + - " as large viewers for gate.Corpus, "+ - "instead of 1 which is [gate.gui.CorpusEditor]", - largeViews1.size() == 1 - ); - - List<String> largeViews2 = - reg.getLargeVRsForResource("gate.Document"); - assertTrue( - "Found "+largeViews2.size()+" wich are " +largeViews2 + - " as large viewers for gate.Document, "+ - "instead of 0", - largeViews2.size() == 0 - ); - - List<String> annotViews1 = - reg.getAnnotationVRs(); - assertTrue( - "Found "+annotViews1.size()+" wich are " +annotViews1 + - " as annotation viewers for all types annotations, "+ - "instead of 0", - annotViews1.size() == 0 - ); - } // testViews() - - /** Utility method to check that a list of resources are all - * auto-loading. - */ - protected boolean allAutoloaders(List<? extends Resource> l) { - if(l != null) { - Resource res = null; - ResourceData resData = null; - CreoleRegister cr = Gate.getCreoleRegister(); - Iterator<? extends Resource> iter = l.iterator(); - while(iter.hasNext()) { - res = iter.next(); - if(DEBUG) Out.prln(res); - resData = cr.get(res.getClass().getName()); - if(DEBUG) Out.prln(resData); - if(! resData.isAutoLoading()) - return false; - } - } - - return true; - } // allAutoloaders - - /** Test resource discovery */ - public void testDiscovery() throws Exception { - - CreoleRegister reg = Gate.getCreoleRegister(); - if(DEBUG) { - Iterator<ResourceData> iter = reg.values().iterator(); - while(iter.hasNext()) Out.println(iter.next()); - } - - ResourceData rd = reg.get("gate.creole.tokeniser.DefaultTokeniser"); - assertNotNull("couldn't find unicode tok in register of resources", rd); - assertTrue(rd.getName().equals("ANNIE Unicode Tokeniser")); - - String docFormatName = "gate.corpora.XmlDocumentFormat"; - ResourceData xmlDocFormatRD = reg.get(docFormatName); - assertTrue(xmlDocFormatRD.getName().equals("Sheffield XML Document Format")); - assertTrue(xmlDocFormatRD.isAutoLoading()); - - rd = reg.get("testpkg.TestPR1"); - assertTrue(rd.getJarFileName().equals("TestResources.jar")); - } // testDiscovery() - - /** Test resource metadata */ - public void testMetadata() throws Exception { - - // get some res data from the register - ResourceData pr1rd = reg.get("testpkg.TestPR1"); - ResourceData pr2rd = reg.get("testpkg.TestPR2"); - assertTrue(pr1rd != null & pr2rd != null); - assertTrue(pr2rd.getName().equals("Sheffield Test PR 2")); - - // checks values of parameters of param0 in test pr 1 - assertTrue(pr1rd.getClassName().equals("testpkg.TestPR1")); - Iterator<List<Parameter>> iter = pr1rd.getParameterList().getRuntimeParameters().iterator(); - Iterator<Parameter> iter2 = null; - Parameter param = null; - while(iter.hasNext()) { - iter2 = iter.next().iterator(); - while(iter2.hasNext()) { - param = iter2.next(); - if(param.typeName.equals("param0")) - break; - } - if(param.typeName.equals("param0")) - break; - } - - assertTrue("param0 was null", param != null); - assertTrue(param.typeName.equals("java.lang.String")); - assertTrue(param.optional); - assertTrue(! param.runtime); - assertTrue(param.comment == null); - assertTrue(param.name.equals("thing")); - - reg.clear(); - } // testMetadata() - - /** Test TOOLS and PRIVATE attributes */ - public void testToolsAndPrivate() throws Exception { - ResourceData pr3rd = reg.get("testpkg.PrintOutTokens"); - assertTrue("couldn't get PR3", pr3rd != null); - assertTrue("PR3 not a tool", pr3rd.isTool()); - if(DEBUG) Out.prln(pr3rd.getFeatures()); - - String docFormatName = "gate.corpora.XmlDocumentFormat"; - ResourceData xmlDocFormatRD = reg.get(docFormatName); - assertTrue("Xml doc format not PRIVATE", xmlDocFormatRD.isPrivate()); - if(DEBUG) Out.prln(xmlDocFormatRD.getFeatures()); - - // this used to test the number of public and private LR - // instances known to the creole register, but this is no - // longer reliable as extras may (will) be defined by - // @CreoleResource annotations. - - } // testToolsAndPrivate() - - /** Test resource loading */ - public void testLoading() throws Exception { - - // get some res data from the register - assertTrue( - "wrong number of resources in the register: " + reg.size(), - reg.size() == 11 - ); - ResourceData pr1rd = reg.get("testpkg.TestPR1"); - ResourceData pr2rd = reg.get("testpkg.TestPR2"); - assertTrue("couldn't find PR1/PR2 res data", pr1rd != null && pr2rd != null); - assertTrue("wrong name on PR1", pr1rd.getName().equals("Sheffield Test PR 1")); - - // instantiation - ProcessingResource pr1 = (ProcessingResource) - Factory.createResource("testpkg.TestPR1", Factory.newFeatureMap()); - ProcessingResource pr2 = (ProcessingResource) - Factory.createResource("testpkg.TestPR2", Factory.newFeatureMap()); - - // run the beasts - FeatureMap pr1features = pr1.getFeatures(); - FeatureMap pr2features = pr2.getFeatures(); - assertNotNull("PR1 features are null", pr1features); - assertTrue( - "PR2 got wrong features: " + pr2features, - pr2features != null && pr2features.size() != 1 - ); - pr1.execute(); - pr2.execute(); - assertTrue( - "PR1 feature not present", - pr1.getFeatures().get("I").equals("have been run, thankyou") - ); - assertTrue( - "PR2 feature not present", - pr2.getFeatures().get("I").equals("am in a bad mood") - ); - - reg.clear(); - } // testLoading() - - /** Test resource indexing by class */ - public void testClassIndex() throws Exception { - - ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); - assertNotNull("couldn't find document res data", docRd); - assertTrue( - "doc res data has wrong class name", - docRd.getClassName().equals("gate.corpora.DocumentImpl") - ); - assertTrue( - "doc res data has wrong interface name", - docRd.getInterfaceName().equals("gate.Document") - ); - - Class<?> docClass = docRd.getResourceClass(); - assertNotNull("couldn't get doc class", docClass); - LanguageResource docRes = (LanguageResource) docClass.newInstance(); - assertTrue( - "instance of doc is wrong type", - docRes instanceof gate.Document - ); - - reg.clear(); - } // testClassIndex() - - /** Test type lists */ - public void testTypeLists() throws Exception { - Set<String> vrs = reg.getVrTypes(); - Set<String> prs = reg.getPrTypes(); - Set<String> lrs = reg.getLrTypes(); - - assertTrue("wrong number vrs in reg: " + vrs.size(), vrs.size() == 3); - assertTrue("wrong number prs in reg: " + prs.size(), prs.size() == 5); - assertTrue("wrong number lrs in reg: " + lrs.size(), lrs.size() == 3); - } // testTypeLists() - - /** Test comments on resources */ - public void testComments() throws Exception { - - ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); - assertNotNull("testComments: couldn't find document res data", docRd); - String comment = docRd.getComment(); - assertTrue( - "testComments: incorrect or missing COMMENT on document", - comment != null && comment.equals("GATE document") - ); - } // testComments() - - /** Test parameter defaults */ - public void testParameterDefaults1() throws Exception { - - ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); - assertNotNull("Couldn: couldn't find document res data", docRd); - if(DEBUG) Out.prln(docRd.getParameterList().getInitimeParameters()); - ParameterList paramList = docRd.getParameterList(); - if(DEBUG) Out.prln(docRd); - - // runtime params - none for a document - Iterator<List<Parameter>> iter = paramList.getRuntimeParameters().iterator(); - assertTrue("Document has runtime params: " + paramList, ! iter.hasNext()); - - // init time params - Parameter param = null; - iter = paramList.getInitimeParameters().iterator(); - int paramDisjNumber = -1; - while(iter.hasNext()) { - List<Parameter> paramDisj = iter.next(); - Iterator<Parameter> iter2 = paramDisj.iterator(); - paramDisjNumber++; - - while(iter2.hasNext()) { - param = iter2.next(); - - switch(paramDisjNumber) { - case 0: - assertTrue( - "Doc param 0 wrong type: " + param.getTypeName(), - param.getTypeName().equals("java.lang.String") - ); - assertTrue( - "Doc param 0 wrong name: " + param.getName(), - param.getName().equals("sourceUrlName") - ); - Object defaultValue = param.calculateDefaultValue(); - assertTrue( - "Doc param 0 default should be null but was: " + defaultValue, - defaultValue == null - ); - break; - case 1: - assertTrue( - "Doc param 1 wrong name: " + param.getName(), - param.getName().equals(Document.DOCUMENT_ENCODING_PARAMETER_NAME) - ); - break; - case 2: - assertTrue( - "Doc param 2 wrong name: " + param.getName(), - param.getName().equals(Document.DOCUMENT_START_OFFSET_PARAMETER_NAME) - ); - break; - case 3: - assertTrue( - "Doc param 3 wrong name: " + param.getName(), - param.getName().equals(Document.DOCUMENT_END_OFFSET_PARAMETER_NAME) - ); - break; - default: - //fail("Doc has more than 4 params; 5th is: " + param); - // don't fail if document has more than 4 params - it now pulls in - // extra ones from the @CreoleParameter annotations - } // switch - } - } - - } // testParameterDefaults1() - - /** Test parameter defaults (2) */ - public void testParameterDefaults2() throws Exception { - - ResourceData rd = reg.get("testpkg.PrintOutTokens"); - assertNotNull("Couldn't find testpkg.POT res data", rd); - - // create a document, so that the parameter default will pick it up - Factory.newDocument(new URL(TestDocument.getTestServerName()+"tests/doc0.html")); - - ParameterList paramList = rd.getParameterList(); - if(DEBUG) Out.prln(rd); - - // init time params - none for this one - Iterator<List<Parameter>> iter = paramList.getInitimeParameters().iterator(); - assertTrue("POT has initime params: " + paramList, ! iter.hasNext()); - - // runtime params - Parameter param = null; - iter = paramList.getRuntimeParameters().iterator(); - int paramDisjNumber = -1; - while(iter.hasNext()) { - List<Parameter> paramDisj = iter.next(); - Iterator<Parameter> iter2 = paramDisj.iterator(); - paramDisjNumber++; - - while(iter2.hasNext()) { - param = iter2.next(); - - switch(paramDisjNumber) { - case 0: - assertTrue( - "POT param 0 wrong type: " + param.getTypeName(), - param.getTypeName().equals("gate.corpora.DocumentImpl") - ); - assertTrue( - "POT param 0 wrong name: " + param.getName(), - param.getName().equals("document") - ); - Object defaultValue = param.calculateDefaultValue(); - assertNull( - "POT param 0 default should be null", - defaultValue - ); - break; - default: - fail("POT has more than 1 param; 2nd is: " + param); - } // switch - } - } - - } // testParameterDefaults2() - - /** Test param as lists*/ - public void testParamAsLists() throws Exception{ - ResourceData rd = reg.get("testpkg.TestPR3"); - assertNotNull("Couldn: couldn't find testPR3 res data", rd); - - ParameterList paramList = rd.getParameterList(); - // runtime params - none for a document - List<List<Parameter>> runTime = paramList.getRuntimeParameters(); - assertTrue("PR3 should have 4 runtime params: " + paramList, runTime.size()==4); - }// End testParamAsLists(); - - /** Test parameters */ - public void testParameters() throws Exception { - - ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); - assertNotNull("Couldn: couldn't find document res data", docRd); - - ParameterList paramList = docRd.getParameterList(); - if(DEBUG) Out.prln(docRd); - - // runtime params - none for a document - Iterator<List<Parameter>> iter = paramList.getRuntimeParameters().iterator(); - assertTrue("Document has runtime params: " + paramList, ! iter.hasNext()); - - // init time params - Parameter param = null; - List<List<Parameter>> initimeParams = paramList.getInitimeParameters(); - // only check the four parameters we can control in tests/creole.xml - // there are more parameters after the fourth, but these come from - // @CreoleParameter annotations so we can't reliably control for them - // in this test - for(int paramDisjNumber = 0; paramDisjNumber < 4; paramDisjNumber++) { - List<Parameter> paramDisj = initimeParams.get(paramDisjNumber); - Iterator<Parameter> iter2 = paramDisj.iterator(); - - int paramDisjLen = paramDisj.size(); - assertTrue( - "param disj wrong length: " + paramDisjLen, - paramDisjLen == 1 - ); - - while(iter2.hasNext()) { - param = iter2.next(); - - switch(paramDisjNumber) { - case 0: - assertTrue( - "Doc param 0 wrong type: " + param.getTypeName(), - param.getTypeName().equals("java.lang.String") - ); - assertTrue( - "Doc param 0 wrong name: " + param.getName(), - param.getName().equals("sourceUrlName") - ); - Object defaultValue = param.calculateDefaultValue(); - assertTrue( - "Doc param 0 default should be null but was: " + defaultValue, - defaultValue == null - ); - break; - case 1: - assertTrue( - "Doc param 1 wrong name: " + param.getName(), - param.getName().equals(Document.DOCUMENT_ENCODING_PARAMETER_NAME) - ); - break; - case 2: - assertTrue( - "Doc param 2 wrong name: " + param.getName(), - param.getName().equals(Document.DOCUMENT_START_OFFSET_PARAMETER_NAME) - ); - defaultValue = param.getDefaultValue(); - break; - case 3: - assertTrue( - "Doc param 3 wrong name: " + param.getName(), - param.getName().equals(Document.DOCUMENT_END_OFFSET_PARAMETER_NAME) - ); - break; - default: - // can't be reached - } // switch - } - } - - } // testParameters() - - /** Test default run() on processing resources */ - public void testDefaultRun() throws Exception { - @SuppressWarnings("serial") - ProcessingResource defaultPr = new AbstractProcessingResource() { - }; - boolean gotExceptionAsExpected = false; - try { - defaultPr.execute(); - } catch(ExecutionException e) { - gotExceptionAsExpected = true; - } - - assertTrue("check should have thrown exception", gotExceptionAsExpected); - } // testDefaultRun() - - /** Test arbitrary metadata elements on resources */ - public void testArbitraryMetadata() throws Exception { - - ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); - assertNotNull("testArbitraryMetadata: couldn't find doc res data", docRd); - FeatureMap features = docRd.getFeatures(); - String comment = (String) features.get("FUNKY-METADATA-THAING"); - assertTrue( - "testArbitraryMetadata: incorrect FUNKY-METADATA-THAING on document", - comment != null && comment.equals("hubba hubba") - ); - } // testArbitraryMetadata() - - /** Test resource introspection */ - @SuppressWarnings("unused") - public void testIntrospection() throws Exception { - // get the gate.Document resource and its class - ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); - assertNotNull("couldn't find document res data (2)", docRd); - Class<?> resClass = docRd.getResourceClass(); - - // get the beaninfo and property descriptors for the resource - BeanInfo docBeanInfo = Introspector.getBeanInfo(resClass, Object.class); - PropertyDescriptor[] propDescrs = docBeanInfo.getPropertyDescriptors(); - - // print all the properties in the reource's bean info; - // remember the setFeatures method - Method setFeaturesMethod = null; - for(int i = 0; i<propDescrs.length; i++) { - Method getMethodDescr = null; - Method setMethodDescr = null; - Class<?> propClass = null; - - PropertyDescriptor propDescr = propDescrs[i]; - propClass = propDescr.getPropertyType(); - getMethodDescr = propDescr.getReadMethod(); - setMethodDescr = propDescr.getWriteMethod(); - - if( - setMethodDescr != null && - setMethodDescr.getName().equals("setFeatures") - ) - setFeaturesMethod = setMethodDescr; - - if(DEBUG) printProperty(propDescrs[i]); - } - - // try setting the features property - // invoke(Object obj, Object[] args) - LanguageResource res = (LanguageResource) resClass.newInstance(); - FeatureMap feats = Factory.newFeatureMap(); - feats.put("things are sunny in sunny countries", "aren't they?"); - Object[] args = new Object[1]; - args[0] = feats; - setFeaturesMethod.invoke(res, args); - assertTrue( - "features not added to resource properly", - res.getFeatures().get("things are sunny in sunny countries") - .equals("aren't they?") - ); - } // testIntrospection - - /** Test the Factory resource creation provisions */ - public void testFactory() throws Exception { - FeatureMap params = Factory.newFeatureMap(); - params.put("features", Factory.newFeatureMap()); - params.put(Document.DOCUMENT_URL_PARAMETER_NAME, new URL(TestDocument.getTestServerName()+"tests/doc0.html")); - Resource res = - Factory.createResource("gate.corpora.DocumentImpl", params); - - assertNotNull("unable to create document", res); - } // testFactory - - /** Utility method to print out the values of a property descriptor - * @see java.beans.PropertyDescriptor - */ - public static void printProperty(PropertyDescriptor prop) { - Class<?> propClass = prop.getPropertyType(); - Method getMethodDescr = prop.getReadMethod(); - Method setMethodDescr = prop.getWriteMethod(); - Out.pr("prop dispname= " + prop.getDisplayName() + "; "); - Out.pr("prop type name= " + propClass.getName() + "; "); - if(getMethodDescr != null) - Out.pr("get meth name= " + getMethodDescr.getName() + "; "); - if(setMethodDescr != null) - Out.pr("set meth name= " + setMethodDescr.getName() + "; "); - Out.prln(); - } // printProperty - - /** Example of what bean info classes do. - * If this was a public class in gate.corpora it would be used - * by the beans Introspector to generation bean info for the - * gate.corpora.DocumentImpl class. It inherits from SimpleBeanInfo - * whose default behaviour is to return null for the various methods; - * this tells the Introspector to do its own investigations. - */ - class DocumentImplBeanInfo extends SimpleBeanInfo { - - /** Override the SimpleBeanInfo behaviour and return a 0-length - * array of properties; this will be passed on by the Introspector, - * the effect being to block info on the properties of the bean. - */ - @Override - public PropertyDescriptor[] getPropertyDescriptors() { - return new PropertyDescriptor[0]; - } // getPropertyDescriptors - - } // DocumentImplBeanInfo - - /** Test suite routine for the test runner */ - public static Test suite() { - return new TestSuite(TestCreole.class); - } // suite - -} // class TestCreole Copied: gate/branches/sawdust2/gate-core/src/test/java/gate/creole/TestCreole.java (from rev 19623, gate/branches/sawdust2/gate-core/src/test/disabled/gate/creole/TestCreole.java) =================================================================== --- gate/branches/sawdust2/gate-core/src/test/java/gate/creole/TestCreole.java (rev 0) +++ gate/branches/sawdust2/gate-core/src/test/java/gate/creole/TestCreole.java 2016-10-04 09:25:59 UTC (rev 19624) @@ -0,0 +1,696 @@ +/* + * TestCreole.java + * + * Copyright (c) 1995-2012, The University of Sheffield. See the file + * COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt + * + * This file is part of GATE (see http://gate.ac.uk/), and is free + * software, licenced under the GNU Library General Public License, + * Version 2, June 1991 (in the distribution as file licence.html, + * and also available at http://gate.ac.uk/gate/licence.html). + * + * Hamish Cunningham, 16/Mar/00 + * + * $Id$ + */ + +package gate.creole; + +import java.beans.BeanInfo; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.beans.SimpleBeanInfo; +import java.lang.reflect.Method; +import java.net.URL; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import gate.CreoleRegister; +import gate.Document; +import gate.Factory; +import gate.FeatureMap; +import gate.Gate; +import gate.LanguageResource; +import gate.ProcessingResource; +import gate.Resource; +import gate.corpora.TestDocument; +import gate.util.GateException; +import gate.util.Out; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** CREOLE test class + */ +public class TestCreole extends TestCase +{ + /** Debug flag */ + private static final boolean DEBUG = false; + + /** Construction */ + public TestCreole(String name) throws GateException { super(name); } + + /** Local shorthand for the CREOLE register */ + private CreoleRegister reg; + + /** Fixture set up */ + @Override + public void setUp() throws Exception { + // Initialise the GATE library and creole register + Gate.init(); + + // clear the register and the creole directory set + reg = Gate.getCreoleRegister(); + reg.clear(); + + // find a URL for finding test files and add to the directory set + URL testUrl = new URL(TestDocument.getTestServerName()+"tests/"); + reg.registerDirectories(testUrl); + + if(DEBUG) { + Iterator<ResourceData> iter = reg.values().iterator(); + while(iter.hasNext()) Out.println(iter.next()); + } + } // setUp + + /** Put things back as they should be after running tests + * (reinitialise the CREOLE register). + */ + @Override + public void tearDown() throws Exception { + reg.clear(); + Gate.init(); + } // tearDown + + /** Test the getInstances methods on CreoleRegister */ + public void testInstanceLists() throws Exception { + // misc locals + List<? extends Resource> l; + CreoleRegister cr = Gate.getCreoleRegister(); + int numLrInstances = 0; + + // The only instances of any type should be autoloading ones + l = cr.getVrInstances(); + if(! allAutoloaders(l)) + fail(" non-autoloading resources already present (1)"); + l = cr.getLrInstances(); + numLrInstances = l.size(); + if(! allAutoloaders(l)) + fail(" non-autoloading resources already present (2)"); + l = cr.getPrInstances(); + if(! allAutoloaders(l)) + fail(" non-autoloading resources already present (3)"); + + // Create an LR + FeatureMap params = Factory.newFeatureMap(); + params.put("features", Factory.newFeatureMap()); + params.put(Document.DOCUMENT_URL_PARAMETER_NAME, new URL(TestDocument.getTestServerName()+"tests/doc0.html")); + Factory.createResource("gate.corpora.DocumentImpl", params); + + // lr instances list should be one longer now + if(! (cr.getLrInstances().size() == numLrInstances + 1)) + fail("wrong number of LRs"); + + // Create another LR + params = Factory.newFeatureMap(); + params.put("features", Factory.newFeatureMap()); + params.put(Document.DOCUMENT_URL_PARAMETER_NAME, new URL(TestDocument.getTestServerName()+"tests/doc0.html")); + Factory.createResource("gate.corpora.DocumentImpl", params); + + // lr instances list should be two longer now + if(! (cr.getLrInstances().size() == numLrInstances + 2)) + fail("wrong number of LRs"); + + // we should have two instances of type document + l = cr.getLrInstances("gate.corpora.DocumentImpl"); + if(l.size() != 2) + fail("wrong number of documents"); + } // testInstanceLists + + + /** Test view registration */ + public void testViews() throws Exception { + List<String> smallViews1 = + reg.getSmallVRsForResource("gate.persist.SerialDataStore"); + String className1 = new String(""); + if (smallViews1!= null && smallViews1.size()>0) + className1 = smallViews1.get(0); + assertTrue( + "Found "+className1+ + " as small viewer for gate.persist.SerialDataStore, "+ + "instead of gate.gui.SerialDatastoreViewer", + smallViews1.size() == 1 && + "gate.gui.SerialDatastoreViewer".equals(className1) + ); + + List<String> largeViews1 = + reg.getLargeVRsForResource("gate.Corpus"); + assertTrue( + "Found "+largeViews1.size()+" wich are " +largeViews1 + + " as large viewers for gate.Corpus, "+ + "instead of 1 which is [gate.gui.CorpusEditor]", + largeViews1.size() == 1 + ); + + List<String> largeViews2 = + reg.getLargeVRsForResource("gate.Document"); + assertTrue( + "Found "+largeViews2.size()+" wich are " +largeViews2 + + " as large viewers for gate.Document, "+ + "instead of 0", + largeViews2.size() == 0 + ); + + List<String> annotViews1 = + reg.getAnnotationVRs(); + assertTrue( + "Found "+annotViews1.size()+" wich are " +annotViews1 + + " as annotation viewers for all types annotations, "+ + "instead of 0", + annotViews1.size() == 0 + ); + } // testViews() + + /** Utility method to check that a list of resources are all + * auto-loading. + */ + protected boolean allAutoloaders(List<? extends Resource> l) { + if(l != null) { + Resource res = null; + ResourceData resData = null; + CreoleRegister cr = Gate.getCreoleRegister(); + Iterator<? extends Resource> iter = l.iterator(); + while(iter.hasNext()) { + res = iter.next(); + if(DEBUG) Out.prln(res); + resData = cr.get(res.getClass().getName()); + if(DEBUG) Out.prln(resData); + if(! resData.isAutoLoading()) + return false; + } + } + + return true; + } // allAutoloaders + + /** Test resource discovery */ + public void testDiscovery() throws Exception { + + CreoleRegister reg = Gate.getCreoleRegister(); + if(DEBUG) { + Iterator<ResourceData> iter = reg.values().iterator(); + while(iter.hasNext()) Out.println(iter.next()); + } + + //ResourceData rd = reg.get("gate.creole.tokeniser.DefaultTokeniser"); + //assertNotNull("couldn't find unicode tok in register of resources", rd); + //assertTrue(rd.getName().equals("ANNIE Unicode Tokeniser")); + + String docFormatName = "gate.corpora.XmlDocumentFormat"; + ResourceData xmlDocFormatRD = reg.get(docFormatName); + assertTrue(xmlDocFormatRD.getName().equals("Sheffield XML Document Format")); + assertTrue(xmlDocFormatRD.isAutoLoading()); + + ResourceData rd = reg.get("testpkg.TestPR1"); + assertTrue(rd.getJarFileName().equals("TestResources.jar")); + } // testDiscovery() + + /** Test resource metadata */ + public void testMetadata() throws Exception { + + // get some res data from the register + ResourceData pr1rd = reg.get("testpkg.TestPR1"); + ResourceData pr2rd = reg.get("testpkg.TestPR2"); + assertTrue(pr1rd != null & pr2rd != null); + assertTrue(pr2rd.getName().equals("Sheffield Test PR 2")); + + // checks values of parameters of param0 in test pr 1 + assertTrue(pr1rd.getClassName().equals("testpkg.TestPR1")); + Iterator<List<Parameter>> iter = pr1rd.getParameterList().getRuntimeParameters().iterator(); + Iterator<Parameter> iter2 = null; + Parameter param = null; + while(iter.hasNext()) { + iter2 = iter.next().iterator(); + while(iter2.hasNext()) { + param = iter2.next(); + if(param.typeName.equals("param0")) + break; + } + if(param.typeName.equals("param0")) + break; + } + + assertTrue("param0 was null", param != null); + assertTrue(param.typeName.equals("java.lang.String")); + assertTrue(param.optional); + assertTrue(! param.runtime); + assertTrue(param.comment == null); + assertTrue(param.name.equals("thing")); + + reg.clear(); + } // testMetadata() + + /** Test TOOLS and PRIVATE attributes */ + public void testToolsAndPrivate() throws Exception { + ResourceData pr3rd = reg.get("testpkg.PrintOutTokens"); + assertTrue("couldn't get PR3", pr3rd != null); + assertTrue("PR3 not a tool", pr3rd.isTool()); + if(DEBUG) Out.prln(pr3rd.getFeatures()); + + String docFormatName = "gate.corpora.XmlDocumentFormat"; + ResourceData xmlDocFormatRD = reg.get(docFormatName); + assertTrue("Xml doc format not PRIVATE", xmlDocFormatRD.isPrivate()); + if(DEBUG) Out.prln(xmlDocFormatRD.getFeatures()); + + // this used to test the number of public and private LR + // instances known to the creole register, but this is no + // longer reliable as extras may (will) be defined by + // @CreoleResource annotations. + + } // testToolsAndPrivate() + + /** Test resource loading */ + public void testLoading() throws Exception { + + // get some res data from the register + assertEquals("wrong number of resources in the register: " + reg.size(), 9, reg.size()); + ResourceData pr1rd = reg.get("testpkg.TestPR1"); + ResourceData pr2rd = reg.get("testpkg.TestPR2"); + assertTrue("couldn't find PR1/PR2 res data", pr1rd != null && pr2rd != null); + assertTrue("wrong name on PR1", pr1rd.getName().equals("Sheffield Test PR 1")); + + // instantiation + ProcessingResource pr1 = (ProcessingResource) + Factory.createResource("testpkg.TestPR1", Factory.newFeatureMap()); + ProcessingResource pr2 = (ProcessingResource) + Factory.createResource("testpkg.TestPR2", Factory.newFeatureMap()); + + // run the beasts + FeatureMap pr1features = pr1.getFeatures(); + FeatureMap pr2features = pr2.getFeatures(); + assertNotNull("PR1 features are null", pr1features); + assertTrue( + "PR2 got wrong features: " + pr2features, + pr2features != null && pr2features.size() != 1 + ); + pr1.execute(); + pr2.execute(); + assertTrue( + "PR1 feature not present", + pr1.getFeatures().get("I").equals("have been run, thankyou") + ); + assertTrue( + "PR2 feature not present", + pr2.getFeatures().get("I").equals("am in a bad mood") + ); + + reg.clear(); + } // testLoading() + + /** Test resource indexing by class */ + public void testClassIndex() throws Exception { + + ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); + assertNotNull("couldn't find document res data", docRd); + assertTrue( + "doc res data has wrong class name", + docRd.getClassName().equals("gate.corpora.DocumentImpl") + ); + assertTrue( + "doc res data has wrong interface name", + docRd.getInterfaceName().equals("gate.Document") + ); + + Class<?> docClass = docRd.getResourceClass(); + assertNotNull("couldn't get doc class", docClass); + LanguageResource docRes = (LanguageResource) docClass.newInstance(); + assertTrue( + "instance of doc is wrong type", + docRes instanceof gate.Document + ); + + reg.clear(); + } // testClassIndex() + + /** Test type lists */ + public void testTypeLists() throws Exception { + Set<String> vrs = reg.getVrTypes(); + Set<String> prs = reg.getPrTypes(); + Set<String> lrs = reg.getLrTypes(); + + assertTrue("wrong number vrs in reg: " + vrs.size(), vrs.size() == 2); + assertTrue("wrong number prs in reg: " + prs.size(), prs.size() == 4); + assertTrue("wrong number lrs in reg: " + lrs.size(), lrs.size() == 3); + } // testTypeLists() + + /** Test comments on resources */ + public void testComments() throws Exception { + + ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); + assertNotNull("testComments: couldn't find document res data", docRd); + String comment = docRd.getComment(); + assertTrue( + "testComments: incorrect or missing COMMENT on document", + comment != null && comment.equals("GATE document") + ); + } // testComments() + + /** Test parameter defaults */ + public void testParameterDefaults1() throws Exception { + + ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); + assertNotNull("Couldn: couldn't find document res data", docRd); + if(DEBUG) Out.prln(docRd.getParameterList().getInitimeParameters()); + ParameterList paramList = docRd.getParameterList(); + if(DEBUG) Out.prln(docRd); + + // runtime params - none for a document + Iterator<List<Parameter>> iter = paramList.getRuntimeParameters().iterator(); + assertTrue("Document has runtime params: " + paramList, ! iter.hasNext()); + + // init time params + Parameter param = null; + iter = paramList.getInitimeParameters().iterator(); + int paramDisjNumber = -1; + while(iter.hasNext()) { + List<Parameter> paramDisj = iter.next(); + Iterator<Parameter> iter2 = paramDisj.iterator(); + paramDisjNumber++; + + while(iter2.hasNext()) { + param = iter2.next(); + + switch(paramDisjNumber) { + case 0: + assertTrue( + "Doc param 0 wrong type: " + param.getTypeName(), + param.getTypeName().equals("java.lang.String") + ); + assertTrue( + "Doc param 0 wrong name: " + param.getName(), + param.getName().equals("sourceUrlName") + ); + Object defaultValue = param.calculateDefaultValue(); + assertTrue( + "Doc param 0 default should be null but was: " + defaultValue, + defaultValue == null + ); + break; + case 1: + assertTrue( + "Doc param 1 wrong name: " + param.getName(), + param.getName().equals(Document.DOCUMENT_ENCODING_PARAMETER_NAME) + ); + break; + case 2: + assertTrue( + "Doc param 2 wrong name: " + param.getName(), + param.getName().equals(Document.DOCUMENT_START_OFFSET_PARAMETER_NAME) + ); + break; + case 3: + assertTrue( + "Doc param 3 wrong name: " + param.getName(), + param.getName().equals(Document.DOCUMENT_END_OFFSET_PARAMETER_NAME) + ); + break; + default: + //fail("Doc has more than 4 params; 5th is: " + param); + // don't fail if document has more than 4 params - it now pulls in + // extra ones from the @CreoleParameter annotations + } // switch + } + } + + } // testParameterDefaults1() + + /** Test parameter defaults (2) */ + public void testParameterDefaults2() throws Exception { + + ResourceData rd = reg.get("testpkg.PrintOutTokens"); + assertNotNull("Couldn't find testpkg.POT res data", rd); + + // create a document, so that the parameter default will pick it up + Factory.newDocument(new URL(TestDocument.getTestServerName()+"tests/doc0.html")); + + ParameterList paramList = rd.getParameterList(); + if(DEBUG) Out.prln(rd); + + // init time params - none for this one + Iterator<List<Parameter>> iter = paramList.getInitimeParameters().iterator(); + assertTrue("POT has initime params: " + paramList, ! iter.hasNext()); + + // runtime params + Parameter param = null; + iter = paramList.getRuntimeParameters().iterator(); + int paramDisjNumber = -1; + while(iter.hasNext()) { + List<Parameter> paramDisj = iter.next(); + Iterator<Parameter> iter2 = paramDisj.iterator(); + paramDisjNumber++; + + while(iter2.hasNext()) { + param = iter2.next(); + + switch(paramDisjNumber) { + case 0: + assertTrue( + "POT param 0 wrong type: " + param.getTypeName(), + param.getTypeName().equals("gate.corpora.DocumentImpl") + ); + assertTrue( + "POT param 0 wrong name: " + param.getName(), + param.getName().equals("document") + ); + Object defaultValue = param.calculateDefaultValue(); + assertNull( + "POT param 0 default should be null", + defaultValue + ); + break; + default: + fail("POT has more than 1 param; 2nd is: " + param); + } // switch + } + } + + } // testParameterDefaults2() + + /** Test param as lists*/ + public void testParamAsLists() throws Exception{ + ResourceData rd = reg.get("testpkg.TestPR3"); + assertNotNull("Couldn: couldn't find testPR3 res data", rd); + + ParameterList paramList = rd.getParameterList(); + // runtime params - none for a document + List<List<Parameter>> runTime = paramList.getRuntimeParameters(); + assertTrue("PR3 should have 4 runtime params: " + paramList, runTime.size()==4); + }// End testParamAsLists(); + + /** Test parameters */ + public void testParameters() throws Exception { + + ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); + assertNotNull("Couldn: couldn't find document res data", docRd); + + ParameterList paramList = docRd.getParameterList(); + if(DEBUG) Out.prln(docRd); + + // runtime params - none for a document + Iterator<List<Parameter>> iter = paramList.getRuntimeParameters().iterator(); + assertTrue("Document has runtime params: " + paramList, ! iter.hasNext()); + + // init time params + Parameter param = null; + List<List<Parameter>> initimeParams = paramList.getInitimeParameters(); + // only check the four parameters we can control in tests/creole.xml + // there are more parameters after the fourth, but these come from + // @CreoleParameter annotations so we can't reliably control for them + // in this test + for(int paramDisjNumber = 0; paramDisjNumber < 4; paramDisjNumber++) { + List<Parameter> paramDisj = initimeParams.get(paramDisjNumber); + Iterator<Parameter> iter2 = paramDisj.iterator(); + + int paramDisjLen = paramDisj.size(); + assertTrue( + "param disj wrong length: " + paramDisjLen, + paramDisjLen == 1 + ); + + while(iter2.hasNext()) { + param = iter2.next(); + + switch(paramDisjNumber) { + case 0: + assertTrue( + "Doc param 0 wrong type: " + param.getTypeName(), + param.getTypeName().equals("java.lang.String") + ); + assertTrue( + "Doc param 0 wrong name: " + param.getName(), + param.getName().equals("sourceUrlName") + ); + Object defaultValue = param.calculateDefaultValue(); + assertTrue( + "Doc param 0 default should be null but was: " + defaultValue, + defaultValue == null + ); + break; + case 1: + assertTrue( + "Doc param 1 wrong name: " + param.getName(), + param.getName().equals(Document.DOCUMENT_ENCODING_PARAMETER_NAME) + ); + break; + case 2: + assertTrue( + "Doc param 2 wrong name: " + param.getName(), + param.getName().equals(Document.DOCUMENT_START_OFFSET_PARAMETER_NAME) + ); + defaultValue = param.getDefaultValue(); + break; + case 3: + assertTrue( + "Doc param 3 wrong name: " + param.getName(), + param.getName().equals(Document.DOCUMENT_END_OFFSET_PARAMETER_NAME) + ); + break; + default: + // can't be reached + } // switch + } + } + + } // testParameters() + + /** Test default run() on processing resources */ + public void testDefaultRun() throws Exception { + @SuppressWarnings("serial") + ProcessingResource defaultPr = new AbstractProcessingResource() { + }; + boolean gotExceptionAsExpected = false; + try { + defaultPr.execute(); + } catch(ExecutionException e) { + gotExceptionAsExpected = true; + } + + assertTrue("check should have thrown exception", gotExceptionAsExpected); + } // testDefaultRun() + + /** Test arbitrary metadata elements on resources */ + public void testArbitraryMetadata() throws Exception { + + ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); + assertNotNull("testArbitraryMetadata: couldn't find doc res data", docRd); + FeatureMap features = docRd.getFeatures(); + String comment = (String) features.get("FUNKY-METADATA-THAING"); + assertTrue( + "testArbitraryMetadata: incorrect FUNKY-METADATA-THAING on document", + comment != null && comment.equals("hubba hubba") + ); + } // testArbitraryMetadata() + + /** Test resource introspection */ + @SuppressWarnings("unused") + public void testIntrospection() throws Exception { + // get the gate.Document resource and its class + ResourceData docRd = reg.get("gate.corpora.DocumentImpl"); + assertNotNull("couldn't find document res data (2)", docRd); + Class<?> resClass = docRd.getResourceClass(); + + // get the beaninfo and property descriptors for the resource + BeanInfo docBeanInfo = Introspector.getBeanInfo(resClass, Object.class); + PropertyDescriptor[] propDescrs = docBeanInfo.getPropertyDescriptors(); + + // print all the properties in the reource's bean info; + // remember the setFeatures method + Method setFeaturesMethod = null; + for(int i = 0; i<propDescrs.length; i++) { + Method getMethodDescr = null; + Method setMethodDescr = null; + Class<?> propClass = null; + + PropertyDescriptor propDescr = propDescrs[i]; + propClass = propDescr.getPropertyType(); + getMethodDescr = propDescr.getReadMethod(); + setMethodDescr = propDescr.getWriteMethod(); + + if( + setMethodDescr != null && + setMethodDescr.getName().equals("setFeatures") + ) + setFeaturesMethod = setMethodDescr; + + if(DEBUG) printProperty(propDescrs[i]); + } + + // try setting the features property + // invoke(Object obj, Object[] args) + LanguageResource res = (LanguageResource) resClass.newInstance(); + FeatureMap feats = Factory.newFeatureMap(); + feats.put("things are sunny in sunny countries", "aren't they?"); + Object[] args = new Object[1]; + args[0] = feats; + setFeaturesMethod.invoke(res, args); + assertTrue( + "features not added to resource properly", + res.getFeatures().get("things are sunny in sunny countries") + .equals("aren't they?") + ); + } // testIntrospection + + /** Test the Factory resource creation provisions */ + public void testFactory() throws Exception { + FeatureMap params = Factory.newFeatureMap(); + params.put("features", Factory.newFeatureMap()); + params.put(Document.DOCUMENT_URL_PARAMETER_NAME, new URL(TestDocument.getTestServerName()+"tests/doc0.html")); + Resource res = + Factory.createResource("gate.corpora.DocumentImpl", params); + + assertNotNull("unable to create document", res); + } // testFactory + + /** Utility method to print out the values of a property descriptor + * @see java.beans.PropertyDescriptor + */ + public static void printProperty(PropertyDescriptor prop) { + Class<?> propClass = prop.getPropertyType(); + Method getMethodDescr = prop.getReadMethod(); + Method setMethodDescr = prop.getWriteMethod(); + Out.pr("prop dispname= " + prop.getDisplayName() + "; "); + Out.pr("prop type name= " + propClass.getName() + "; "); + if(getMethodDescr != null) + Out.pr("get meth name= " + getMethodDescr.getName() + "; "); + if(setMethodDescr != null) + Out.pr("set meth name= " + setMethodDescr.getName() + "; "); + Out.prln(); + } // printProperty + + /** Example of what bean info classes do. + * If this was a public class in gate.corpora it would be used + * by the beans Introspector to generation bean info for the + * gate.corpora.DocumentImpl class. It inherits from SimpleBeanInfo + * whose default behaviour is to return null for the various methods; + * this tells the Introspector to do its own investigations. + */ + class DocumentImplBeanInfo extends SimpleBeanInfo { + + /** Override the SimpleBeanInfo behaviour and return a 0-length + * array of properties; this will be passed on by the Introspector, + * the effect being to block info on the properties of the bean. + */ + @Override + public PropertyDescriptor[] getPropertyDescriptors() { + return new PropertyDescriptor[0]; + } // getPropertyDescriptors + + } // DocumentImplBeanInfo + + /** Test suite routine for the test runner */ + public static Test suite() { + return new TestSuite(TestCreole.class); + } // suite + +} // class TestCreole Modified: gate/branches/sawdust2/gate-core/src/test/resources/gate/resources/gate.ac.uk/tests/creole.xml =================================================================== --- gate/branches/sawdust2/gate-core/src/test/resources/gate/resources/gate.ac.uk/tests/creole.xml 2016-10-04 07:17:31 UTC (rev 19623) +++ gate/branches/sawdust2/gate-core/src/test/resources/gate/resources/gate.ac.uk/tests/creole.xml 2016-10-04 09:25:59 UTC (rev 19624) @@ -45,7 +45,7 @@ </RESOURCE> </CREOLE> <!-- creole.xml for tokeniser --> - <CREOLE> + <!-- <CREOLE> <RESOURCE> <NAME>ANNIE Unicode Tokeniser</NAME> <CLASS>gate.creole.tokeniser.DefaultTokeniser</CLASS> @@ -57,7 +57,7 @@ <PARAMETER NAME="annotationSetName" RUNTIME="true" COMMENT="The annotation set to be used for the generated annotations" OPTIONAL="true">java.lang.String</PARAMETER> <ICON>shefTokeniser</ICON> </RESOURCE> - </CREOLE> + </CREOLE> --> <!-- creole.xml for doc formats --> <CREOLE> <RESOURCE> @@ -110,14 +110,13 @@ </GUI> </RESOURCE> <!-- VR def for gate Syntax Tree Editor/Viewer --> - <RESOURCE> + <!-- RESOURCE> <NAME>Syntax tree viewer</NAME> <CLASS>gate.gui.SyntaxTreeViewer</CLASS> - <!-- type values can be "large" or "small"--> <GUI> <MAIN_VIEWER/> <ANNOTATION_TYPE_DISPLAYED>Tree</ANNOTATION_TYPE_DISPLAYED> </GUI> - </RESOURCE> + </RESOURCE> --> </CREOLE> </CREOLE-DIRECTORY> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ GATE-cvs mailing list GATE-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gate-cvs