// create primitive AE description
primitiveDesc = new AnalysisEngineDescription_impl();
primitiveDesc.setFrameworkImplementation(Constants.JAVA_FRAMEWORK_NAME);
primitiveDesc.setPrimitive(true);
primitiveDesc.setAnnotatorImplementationName("org.apache.uima.examples.TestAnnotator");
AnalysisEngineMetaData md = primitiveDesc.getAnalysisEngineMetaData();
md.setName("Test TAE");
md.setDescription("Does not do anything useful.");
md.setVersion("1.0");
md.setTypeSystem(typeSystem);
md.setTypePriorities(typePriorities);
md.setFsIndexes(new FsIndexDescription[] { index, index2 });
Capability cap1 = new Capability_impl();
cap1.setDescription("First fake capability");
cap1.addOutputType("Fake", false);
cap1.addOutputFeature("TestFeature");
Capability cap2 = new Capability_impl();
cap2.setDescription("Second fake capability");
cap2.addInputType("Fake", true);
cap2.addOutputType("Fake", true);
// SimplePrecondition precond1 = new SimplePrecondition_impl();
// precond1.setFeatureDescription(feature1);
// precond1.setComparisonValue(new String[]{"en,de"});
// precond1.setPredicate(SimplePrecondition.LANGUAGE_SUBSUMED);
// cap1.setPreconditions(new Precondition[]{precond1});
cap1.setLanguagesSupported(new String[] { "en", "de" });
cap1.setMimeTypesSupported(new String[] { "text/plain" });
md.setCapabilities(new Capability[] { cap1, cap2 });
ConfigurationParameter cfgParam1 = new ConfigurationParameter_impl();
cfgParam1.setName("param1");
cfgParam1.setDescription("Test Parameter 1");
cfgParam1.setType("String");
ConfigurationParameter cfgParam2 = new ConfigurationParameter_impl();
cfgParam2.setName("param2");
cfgParam2.setDescription("Test Parameter 2");
cfgParam2.setType("Integer");
ConfigurationGroup cfgGrp1 = new ConfigurationGroup_impl();
cfgGrp1.setNames(new String[] { "cfgGrp1" });
cfgGrp1.setConfigurationParameters(new ConfigurationParameter[] { cfgParam1, cfgParam2 });
ConfigurationParameter cfgParam3 = new ConfigurationParameter_impl();
cfgParam3.setName("param3");
cfgParam3.setDescription("Test Parameter 3");
cfgParam3.setType("Float");
ConfigurationGroup cfgGrp2 = new ConfigurationGroup_impl();
cfgGrp2.setNames(new String[] { "cfgGrp2a", "cfgGrp2b" });
cfgGrp2.setConfigurationParameters(new ConfigurationParameter[] { cfgParam3 });
md.getConfigurationParameterDeclarations().setConfigurationGroups(
new ConfigurationGroup[] { cfgGrp1, cfgGrp2 });
NameValuePair nvp1 = new NameValuePair_impl("param1", "test");
NameValuePair nvp2 = new NameValuePair_impl("param2", Integer.valueOf("42"));
NameValuePair nvp3a = new NameValuePair_impl("param3", Float.valueOf("2.718281828459045"));
NameValuePair nvp3b = new NameValuePair_impl("param3", Float.valueOf("3.1415927"));
ConfigurationParameterSettings settings = md.getConfigurationParameterSettings();
settings.getSettingsForGroups().put("cfgGrp1", new NameValuePair[] { nvp1, nvp2 });
settings.getSettingsForGroups().put("cfgGrp2a", new NameValuePair[] { nvp3a });
settings.getSettingsForGroups().put("cfgGrp2b", new NameValuePair[] { nvp3b });
// create aggregate AE description
aggregateDesc = new AnalysisEngineDescription_impl();
aggregateDesc.setFrameworkImplementation(Constants.JAVA_FRAMEWORK_NAME);
aggregateDesc.setPrimitive(false);
Map<String, MetaDataObject> delegateTaeMap = aggregateDesc.getDelegateAnalysisEngineSpecifiersWithImports();
delegateTaeMap.put("Test", primitiveDesc);
AnalysisEngineDescription_impl primDesc2 = new AnalysisEngineDescription_impl();
primDesc2.setFrameworkImplementation(Constants.JAVA_FRAMEWORK_NAME);
primDesc2.setAnnotatorImplementationName("fakeClass");
primDesc2.getAnalysisEngineMetaData().setName("fakeAnnotator");
primDesc2.getAnalysisEngineMetaData().setCapabilities(
new Capability[] { new Capability_impl() });
delegateTaeMap.put("Empty", primDesc2);
URISpecifier uriSpec = new URISpecifier_impl();
uriSpec.setUri("http://incubator.apache.org/uima");
uriSpec.setProtocol(Constants.PROTOCOL_SOAP);
FlowControllerDeclaration fcDecl = new FlowControllerDeclaration_impl();
fcDecl.setKey("TestFlowController");
FlowControllerDescription fcDesc = new FlowControllerDescription_impl();
fcDesc.getMetaData().setName("MyTestFlowController");
fcDecl.setSpecifier(fcDesc);
aggregateDesc.setFlowControllerDeclaration(fcDecl);
ExternalResourceDependency dep = UIMAFramework.getResourceSpecifierFactory()
.createExternalResourceDependency();
dep.setKey("ResourceKey");
dep.setDescription("Test");
aggregateDesc.setExternalResourceDependencies(new ExternalResourceDependency[] { dep });
ResourceManagerConfiguration resMgrCfg = UIMAFramework.getResourceSpecifierFactory()
.createResourceManagerConfiguration();
ExternalResourceDescription extRes = UIMAFramework.getResourceSpecifierFactory()
.createExternalResourceDescription();
extRes.setResourceSpecifier(uriSpec);
extRes.setName("Resource1");
extRes.setDescription("Test");
resMgrCfg.setExternalResources(new ExternalResourceDescription[] { extRes });
ExternalResourceBinding binding = UIMAFramework.getResourceSpecifierFactory()
.createExternalResourceBinding();
binding.setKey("ResourceKey");
binding.setResourceName("Resource1");
aggregateDesc.setResourceManagerConfiguration(resMgrCfg);
// AsbCreationSpecifier asbSpec = new AsbCreationSpecifier_impl();
// asbSpec.getAsbMetaData().setAsynchronousModeSupported(true);
// asbSpec.getAsbMetaData().setSupportedProtocols(new String[]{Constants.PROTOCOL_SOAP});
// aggregateDesc.setAsbSpecifier(asbSpec);
// AnalysisSequencerCrea1tionSpecifier seqSpec = new
// AnalysisSequencerCreationSpecifier_impl();
// seqSpec.getAnalysisSequencerMetaData().setSupportedPreconditionTypes(
// new String[]{SimplePrecondition.PRECONDITION_TYPE});
// aggregateDesc.setSequencerSpecifier(seqSpec);
md = aggregateDesc.getAnalysisEngineMetaData();
md.setName("Test Aggregate TAE");
md.setDescription("Does not do anything useful.");
md.setVersion("1.0");
// md.setTypeSystem(typeSystem);
// md.setFsIndexes(new FsIndexDescription[]{index});
md.setCapabilities(primitiveDesc.getAnalysisEngineMetaData().getCapabilities());
FixedFlow fixedFlow = new FixedFlow_impl();
fixedFlow.setFixedFlow(new String[] { "Test", "Empty" });
md.setFlowConstraints(fixedFlow);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}