desc.setFrameworkImplementation(Constants.JAVA_FRAMEWORK_NAME); desc.setPrimitive(false); allowMultipleDeploy &= d.getAnalysisEngineMetaData().getOperationalProperties() .isMultipleDeploymentAllowed(); desc.getAnalysisEngineMetaData().getOperationalProperties() .setMultipleDeploymentAllowed(allowMultipleDeploy); String componentName = aed.getImplementationName() + "-" + i; desc.getDelegateAnalysisEngineSpecifiersWithImports().put(componentName, aed); flowNames.add(componentName); desc.getAnalysisEngineMetaData().setFlowConstraints(fixedFlow);
private static String getTokenDescPath(AnalysisEngineDescription tokenDesc) throws IOException, ResourceInitializationException, SAXException { if (tokenDescrPath != null) return tokenDescrPath.getAbsolutePath(); tokenDescrPath = File.createTempFile("tmp", "TokenizerAnnotator.xml"); tokenDesc.toXML(new FileWriter(tokenDescrPath)); return tokenDescrPath.getAbsolutePath(); }
/** * This method simply calls {@link #add(String, AnalysisEngineDescription, String...)} using the * result of {@link AnalysisEngineDescription#getAnnotatorImplementationName()} for the component * name * * @param aed * an analysis engine description to add to the aggregate analysis engine * @param viewNames * pairs of view names corresponding to a componentSofaName followed by the * aggregateSofaName that it is mapped to. An even number of names must be passed in or * else an IllegalArgumentException will be thrown. See * {@link SofaMappingFactory#createSofaMapping(String, String, String)} * * @return the name of the component generated for the {@link AnalysisEngineDescription} */ public String add(AnalysisEngineDescription aed, String... viewNames) { String componentName = aed.getAnalysisEngineMetaData().getName(); if (componentName == null || componentName.equals("")) { if (aed.isPrimitive()) { componentName = aed.getAnnotatorImplementationName(); } else { componentName = "aggregate"; } } if (componentNames.contains(componentName)) { componentName = componentName + "." + (componentNames.size() + 1); } add(componentName, aed, viewNames); return componentName; }
private static void writeDesc(File descDir, String name, AnalysisEngineDescription desc) throws SAXException, IOException { // set the name (not done by uimaFIT) desc.getMetaData().setName(name); File descFile = new File(descDir, name + ".xml"); System.err.println("Writing description to " + descFile); FileOutputStream output = new FileOutputStream(descFile); desc.toXML(output); output.close(); } }
@Override public void write(OutputStream aStream) throws Exception { AnalysisEngineDescription analysisDesc = getAnalysisEngineDescription(aContext); // FIXME should use the same resource manager here // as the engine uses! analysisDesc.resolveImports(UIMAFramework.newDefaultResourceManager()); analysisDesc.toXML(aStream); } });
/** * Link common collection descriptors from ae. * * @param r the r */ private void linkCommonCollectionDescriptorsFromAe(ResourceCreationSpecifier r) { r.setExternalResourceDependencies(aeDescription.getExternalResourceDependencies()); r.setMetaData(convertFromAeMetaData((AnalysisEngineMetaData) aeDescription.getMetaData())); r.setResourceManagerConfiguration(aeDescription.getResourceManagerConfiguration()); }
/** * Gets the analysis engine meta data. * * @return the analysis engine meta data */ public AnalysisEngineMetaData getAnalysisEngineMetaData() { return editor.getAeDescription().getAnalysisEngineMetaData(); }
private static void consolidateAggregate(AnalysisEngineDescription aDesc, ResourceManager aResMgr) throws ResourceInitializationException, InvalidXMLException { if (aDesc.isPrimitive() || aDesc.getDelegateAnalysisEngineSpecifiers().isEmpty()) { return; for (ResourceSpecifier delegate : aDesc.getDelegateAnalysisEngineSpecifiers().values()) { consolidateAggregate((AnalysisEngineDescription) delegate, aResMgr); for (ResourceSpecifier delegate : aDesc.getDelegateAnalysisEngineSpecifiers().values()) { AnalysisEngineDescription aeDelegate = (AnalysisEngineDescription) delegate; aeDelegate.getAnalysisEngineMetaData().setTypeSystem(null); aeDelegate.getAnalysisEngineMetaData().setTypePriorities(null); aeDelegate.getAnalysisEngineMetaData().setFsIndexCollection(null); firstDelegate.getAnalysisEngineMetaData().setTypeSystem(meta.getTypeSystem()); aDesc.getAnalysisEngineMetaData().setTypePriorities(meta.getTypePriorities()); aDesc.getAnalysisEngineMetaData().setFsIndexCollection(meta.getFsIndexCollection()); for (ResourceSpecifier delegate : aDesc.getDelegateAnalysisEngineSpecifiers().values()) { AnalysisEngineDescription aeDelegate = (AnalysisEngineDescription) delegate; ResourceManagerConfiguration delegateResMgrCfg = aeDelegate.getResourceManagerConfiguration(); for (ExternalResourceDescription res : delegateResMgrCfg.getExternalResources()) { resources.put(res.getName(), res); ResourceManagerConfiguration resMgrCfg = aDesc.getResourceManagerConfiguration(); if (resMgrCfg == null) { resMgrCfg = UIMAFramework.getResourceSpecifierFactory().createResourceManagerConfiguration(); aDesc.setResourceManagerConfiguration(resMgrCfg);
analysisDesc.resolveImports(resMgr); if (analysisDesc.getMetaData().getName() == null) { analysisDesc.getMetaData().setName("Analysis for "+aConfiguration.getType()); if (analysisDesc.isPrimitive()) { engine = new PrimitiveAnalysisEngine_impl();
.getDelegateAnalysisEngineSpecifiers(createResourceManager())); } catch (InvalidXMLException e) { throw new ResourceInitializationException(e); AnalysisEngineMetaData md = aeDescription.getAnalysisEngineMetaData(); resolvedExternalResourcesAndBindings = aeDescription.getResourceManagerConfiguration(); resolvedFlowControllerDeclaration = aeDescription.getFlowControllerDeclaration(); setTypeSystemDescription(aeDescription.isPrimitive() ? md.getTypeSystem() : null);
if (xmlTag != null && xmlTag.length() > 0) { xmlDetaggerDesc = XmlDetagger.getDescription(); ConfigurationParameterSettings xmlDetaggerParamSettings = xmlDetaggerDesc.getMetaData() .getConfigurationParameterSettings(); xmlDetaggerParamSettings.setParameterValue(XmlDetagger.PARAM_TEXT_TAG, xmlTag); aggDesc.setPrimitive(false); aggDesc.getDelegateAnalysisEngineSpecifiersWithImports().put("UserAE", aeSpecifier); aggDesc.getDelegateAnalysisEngineSpecifiersWithImports().put("XmiWriter", casConsumerDesc); FixedFlow flow = UIMAFramework.getResourceSpecifierFactory().createFixedFlow(); aggDesc.getDelegateAnalysisEngineSpecifiersWithImports().put("XmlDetagger", xmlDetaggerDesc); flow.setFixedFlow(new String[] {"XmlDetagger", "UserAE", "XmiWriter"}); aggDesc.setSofaMappings(new SofaMapping[] {sofaMapping1, sofaMapping2, sofaMapping3}); aggDesc.getAnalysisEngineMetaData().setName("DocumentAnalyzerAE"); aggDesc.getAnalysisEngineMetaData().setFlowConstraints(flow); aggDesc.getAnalysisEngineMetaData().getOperationalProperties().setMultipleDeploymentAllowed( false); progressMonitor.setProgress(1); ArrayList<String> outputTypeList = new ArrayList<String>(); Capability[] capabilities = ((AnalysisEngineDescription) aeSpecifier) .getAnalysisEngineMetaData().getCapabilities(); for (int i = 0; i < capabilities.length; i++) { TypeOrFeature[] outputs = capabilities[i].getOutputs();
ConfigurationParameter resultParam, AnalysisEngineDescription aggrDesc, Map<String, String> delegateParameterNames) { AnalysisEngineMetaData aggrMeta = aggrDesc.getAnalysisEngineMetaData(); if (aggrDesc.isPrimitive()) { throw new IllegalArgumentException(String.format( "The provided AE descriptor (name=%s) is primitive", if (!aggrDesc.getDelegateAnalysisEngineSpecifiersWithImports().containsKey(delegateKey)) { throw new IllegalArgumentException(String.format( "There is no delegate with key '%s' in the description named '%s'",
private static void setImportsByLocation(File dir, String descName) { FileOutputStream fos = null; try { File file = new File(dir, descName); AnalysisEngineDescription description = UIMAFramework.getXMLParser() .parseAnalysisEngineDescription(new XMLInputSource(file)); Import[] imports = description.getAnalysisEngineMetaData().getTypeSystem().getImports(); for (Import each : imports) { String name = each.getName(); String[] split = name.split("[.]"); String location = split[split.length - 1] + ".xml"; each.setName(null); each.setLocation(location); } fos = new FileOutputStream(file); description.toXML(fos); } catch (InvalidXMLException | IOException | SAXException e) { RutaIdeUIPlugin.error(e); } finally { IOUtils.closeQuietly(fos); } }
desc.setFrameworkImplementation(Constants.JAVA_FRAMEWORK_NAME); desc.setPrimitive(true); desc.setAnnotatorImplementationName(componentClass.getName()); org.apache.uima.fit.descriptor.OperationalProperties componentAnno = ReflectionUtil .getInheritableAnnotation(org.apache.uima.fit.descriptor.OperationalProperties.class, componentClass); if (componentAnno != null) { OperationalProperties op = desc.getAnalysisEngineMetaData().getOperationalProperties(); op.setMultipleDeploymentAllowed(componentAnno.multipleDeploymentAllowed()); op.setModifiesCas(componentAnno.modifiesCas()); op.setOutputsNewCASes(componentAnno.outputsNewCases()); } else { OperationalProperties op = desc.getAnalysisEngineMetaData().getOperationalProperties(); op.setMultipleDeploymentAllowed(MULTIPLE_DEPLOYMENT_ALLOWED_DEFAULT); op.setModifiesCas(MODIFIES_CAS_DEFAULT); AnalysisEngineMetaData meta = desc.getAnalysisEngineMetaData(); ResourceMetaDataFactory.configureResourceMetaData(meta, componentClass); desc.getAnalysisEngineMetaData().setTypeSystem(typeSystem); desc.getAnalysisEngineMetaData().setTypePriorities(typePriorities); FsIndexCollection aggIndexColl = CasCreationUtils.mergeFsIndexes(fsIndexes, ResourceManagerFactory.newResourceManager()); desc.getAnalysisEngineMetaData().setFsIndexCollection(aggIndexColl); desc.getAnalysisEngineMetaData().setCapabilities(capabilities); } else {
/** * Checks if is primitive. * * @return true, if is primitive */ protected boolean isPrimitive() { return editor.getAeDescription().isPrimitive(); }
/** * Validate. * * @throws ResourceInitializationException the resource initialization exception */ public void validate() throws ResourceInitializationException { AnalysisEngineDescription ae = (AnalysisEngineDescription) modelRoot.getAeDescription().clone(); // speedup = replace typeSystem with resolved imports version if (ae.isPrimitive()) { TypeSystemDescription tsd = modelRoot.getMergedTypeSystemDescription(); if (null != tsd) tsd = (TypeSystemDescription) tsd.clone(); ae.getAnalysisEngineMetaData().setTypeSystem(tsd); } ae.getAnalysisEngineMetaData().setFsIndexCollection(modelRoot.getMergedFsIndexCollection()); ae.getAnalysisEngineMetaData().setTypePriorities(modelRoot.getMergedTypePriorities()); try { // long time = System.currentTimeMillis(); // System.out.println("Creating TCas model"); cachedResult = modelRoot.createCas(ae, casCreateProperties, modelRoot.createResourceManager()); // System.out.println("Finished Creating TCas model; time= " + // (System.currentTimeMillis() - time)); if (null == cachedResult) throw new InternalErrorCDE("null result from createTCas"); } catch (CASAdminException e) { throw new ResourceInitializationException(e); } dirty = false; modelRoot.allTypes.dirty = true; }
aggDescription.setPrimitive(false); Map delegatesMap = aggDescription.getDelegateAnalysisEngineSpecifiersWithImports(); AnalysisEngineMetaData aggMetadata = aggDescription.getAnalysisEngineMetaData(); .getAnalysisEngineMetaData();
/** * Gets the configuration parameter settings. * * @return the configuration parameter settings */ public ConfigurationParameterSettings getConfigurationParameterSettings() { return editor.getAeDescription().getMetaData().getConfigurationParameterSettings(); }
/** * Checks that this @param aed is provided with the right {@link Annotation} * s in the upstream of this pipeline, and prints an error log otherwise. * Add this aed's capabilities for other downstream aeds. */ private void checkAndAddCapabilities(AnalysisEngineDescription aed) { for (Capability capability : aed.getAnalysisEngineMetaData() .getCapabilities()) { for (TypeOrFeature input : capability.getInputs()) if (!outputTypes.contains(input.getName())) LOG.error("AnalysisEngine " + aed.getAnnotatorImplementationName() + " is missing input @TypeCapability: " + input.getName()); } for (Capability capability : aed.getAnalysisEngineMetaData() .getCapabilities()) { for (TypeOrFeature output : capability.getOutputs()) { // LOG.info("add @TypeCapability: " + output.getName()); outputTypes.add(output.getName()); } } }
/** * Sets the imported fs index collection. * * @throws ResourceInitializationException the resource initialization exception */ private void setImportedFsIndexCollection() throws ResourceInitializationException { AnalysisEngineDescription localAe = (AnalysisEngineDescription) aeDescription.clone(); localAe.getAnalysisEngineMetaData().setFsIndexCollection(null); importedFsIndexCollection = CasCreationUtils.mergeDelegateAnalysisEngineFsIndexCollections( localAe, createResourceManager()); }