/** * Create a new external resource binding. * * @param aDesc * the specifier to create the binding in. * @param aBindTo * what key to bind to. * @param aRes * the resource that should be bound. */ public static void bindExternalResource(ResourceCreationSpecifier aDesc, String aBindTo, ExternalResourceDescription aRes) { ResourceManagerConfiguration resMgrCfg = aDesc.getResourceManagerConfiguration(); if (resMgrCfg == null) { resMgrCfg = new ResourceManagerConfiguration_impl(); aDesc.setResourceManagerConfiguration(resMgrCfg); } bindExternalResource(resMgrCfg, aBindTo, aRes); }
/** * Create a new external resource binding. * * @param aDesc * the specifier to create the binding in. * @param aBindTo * what key to bind to. * @param aRes * the resource that should be bound. */ public static void bindExternalResource(ResourceCreationSpecifier aDesc, String aBindTo, String aRes) { ResourceManagerConfiguration resMgrCfg = aDesc.getResourceManagerConfiguration(); if (resMgrCfg == null) { resMgrCfg = new ResourceManagerConfiguration_impl(); aDesc.setResourceManagerConfiguration(resMgrCfg); } bindExternalResource(resMgrCfg, aBindTo, aRes); }
/** * Scan the given resource specifier for external resource dependencies and whenever a dependency * a compatible type is found, the given resource is bound to it. * * @param aDesc * a description. * @param aResDesc * the resource description. */ private static void bind(AnalysisEngineDescription aDesc, ExternalResourceDescription aResDesc) throws InvalidXMLException, ClassNotFoundException { // Recursively address delegates if (!aDesc.isPrimitive()) { for (Object delegate : aDesc.getDelegateAnalysisEngineSpecifiers().values()) { bindResource((ResourceSpecifier) delegate, aResDesc); } } // Bind if necessary Class<?> resClass = Class.forName(getImplementationName(aResDesc)); for (ExternalResourceDependency dep : aDesc.getExternalResourceDependencies()) { Class<?> apiClass = Class.forName(dep.getInterfaceName()); // Never bind fields of type Object. See also ExternalResourceInitializer#getApi() if (apiClass.equals(Object.class)) { continue; } if (apiClass.isAssignableFrom(resClass)) { bindExternalResource(aDesc, dep.getKey(), aResDesc); } } }
/** * Scan the given resource specifier for external resource dependencies and whenever a dependency * with the given key is encountered, the given resource is bound to it. * * @param aDesc * a description. * @param aKey * the key to bind to. * @param aResDesc * the resource description. */ private static void bind(AnalysisEngineDescription aDesc, String aKey, ExternalResourceDescription aResDesc) throws InvalidXMLException { // Recursively address delegates if (!aDesc.isPrimitive()) { for (Object delegate : aDesc.getDelegateAnalysisEngineSpecifiers().values()) { bindResource((ResourceSpecifier) delegate, aKey, aResDesc); } } // Bind if necessary for (ExternalResourceDependency dep : aDesc.getExternalResourceDependencies()) { if (aKey.equals(dep.getKey())) { bindExternalResource(aDesc, aKey, aResDesc); } } }
bindExternalResource(desc, e.getKey(), e.getValue());
@SuppressWarnings("unchecked") public static <T extends Resource> T createResource(TcFeature feature) throws ResourceInitializationException, ResourceAccessException { // Configure external resource ExternalResourceDescription desc = feature.getActualValue(); // Configure resource manager ResourceManagerConfiguration cfg = UIMAFramework.getResourceSpecifierFactory() .createResourceManagerConfiguration(); ExternalResourceFactory.bindExternalResource(cfg, "rootResource", desc); // Instantiate resource manager (internally instantiates resources) final ResourceManager manager = new ResourceManager_impl(); manager.initializeExternalResources(cfg, "/", null); T res = (T) manager.getResource("/rootResource"); // Initialize nested resources UimaContextAdmin ctx = new RootUimaContext_impl() { @Override public ResourceManager getResourceManager() { return manager; }; }; ExternalResourceInitializer.initialize(res, ctx); // Get resource instance return res; }
@SuppressWarnings("unchecked") public static <T extends Resource> T createResource(TcFeature feature) throws ResourceInitializationException, ResourceAccessException { // Configure external resource ExternalResourceDescription desc = feature.getActualValue(); // Configure resource manager ResourceManagerConfiguration cfg = UIMAFramework.getResourceSpecifierFactory() .createResourceManagerConfiguration(); ExternalResourceFactory.bindExternalResource(cfg, "rootResource", desc); // Instantiate resource manager (internally instantiates resources) final ResourceManager manager = new ResourceManager_impl(); manager.initializeExternalResources(cfg, "/", null); T res = (T) manager.getResource("/rootResource"); // Initialize nested resources UimaContextAdmin ctx = new RootUimaContext_impl() { @Override public ResourceManager getResourceManager() { return manager; }; }; ExternalResourceInitializer.initialize(res, ctx); // Get resource instance return res; }
@SuppressWarnings("unchecked") public static <T extends Resource> T createResource(Class<T> aClass, Object... aParam) throws ResourceInitializationException, ResourceAccessException { // Configure external resource ExternalResourceDescription desc = ExternalResourceFactory .createExternalResourceDescription(aClass, aParam); // Configure resource manager ResourceManagerConfiguration cfg = UIMAFramework.getResourceSpecifierFactory() .createResourceManagerConfiguration(); ExternalResourceFactory.bindExternalResource(cfg, "rootResource", desc); // Instantiate resource manager (internally instantiates resources) final ResourceManager manager = new ResourceManager_impl(); manager.initializeExternalResources(cfg, "/", null); T res = (T) manager.getResource("/rootResource"); // Initialize nested resources UimaContextAdmin ctx = new RootUimaContext_impl() { @Override public ResourceManager getResourceManager() { return manager; }; }; ExternalResourceInitializer.initialize(res, ctx); // Get resource instance return res; }
@SuppressWarnings("unchecked") public static <T extends Resource> T createResource(Class<T> aClass, Object... aParam) throws ResourceInitializationException, ResourceAccessException { // Configure external resource ExternalResourceDescription desc = ExternalResourceFactory .createExternalResourceDescription(aClass, aParam); // Configure resource manager ResourceManagerConfiguration cfg = UIMAFramework.getResourceSpecifierFactory() .createResourceManagerConfiguration(); ExternalResourceFactory.bindExternalResource(cfg, "rootResource", desc); // Instantiate resource manager (internally instantiates resources) final ResourceManager manager = new ResourceManager_impl(); manager.initializeExternalResources(cfg, "/", null); T res = (T) manager.getResource("/rootResource"); // Initialize nested resources UimaContextAdmin ctx = new RootUimaContext_impl() { @Override public ResourceManager getResourceManager() { return manager; }; }; ExternalResourceInitializer.initialize(res, ctx); // Get resource instance return res; }
bindExternalResource(desc, e.getKey(), e.getValue());
bindExternalResource(desc, e.getKey(), e.getValue());