• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ControllerService类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.nifi.controller.ControllerService的典型用法代码示例。如果您正苦于以下问题:Java ControllerService类的具体用法?Java ControllerService怎么用?Java ControllerService使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ControllerService类属于org.apache.nifi.controller包,在下文中一共展示了ControllerService类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: checkControllerServiceReferenceEligibility

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
private static boolean checkControllerServiceReferenceEligibility(final ConfigurableComponent component, final ClassLoader classLoader) {
    // if the extension does not require instance classloading, its eligible
    final boolean requiresInstanceClassLoading = component.getClass().isAnnotationPresent(RequiresInstanceClassLoading.class);

    final Set<Class> cobundledApis = new HashSet<>();
    try (final NarCloseable closeable = NarCloseable.withComponentNarLoader(component.getClass().getClassLoader())) {
        final List<PropertyDescriptor> descriptors = component.getPropertyDescriptors();
        if (descriptors != null && !descriptors.isEmpty()) {
            for (final PropertyDescriptor descriptor : descriptors) {
                final Class<? extends ControllerService> serviceApi = descriptor.getControllerServiceDefinition();
                if (serviceApi != null && classLoader.equals(serviceApi.getClassLoader())) {
                    cobundledApis.add(serviceApi);
                }
            }
        }
    }

    if (!cobundledApis.isEmpty()) {
        logger.warn(String.format(
                "Component %s is bundled with its referenced Controller Service APIs %s. The service APIs should not be bundled with component implementations that reference it.",
                component.getClass().getName(), StringUtils.join(cobundledApis.stream().map(cls -> cls.getName()).collect(Collectors.toSet()), ", ")));
    }

    // the component is eligible when it does not require instance classloading or when the supporting APIs are bundled in a parent NAR
    return requiresInstanceClassLoading == false || cobundledApis.isEmpty();
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:27,代码来源:ExtensionManager.java


示例2: findReachableApiBundles

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
/**
 * Find the bundle coordinates for any service APIs that are referenced by this component and not part of the same bundle.
 *
 * @param component the component being instantiated
 */
protected static Set<BundleCoordinate> findReachableApiBundles(final ConfigurableComponent component) {
    final Set<BundleCoordinate> reachableApiBundles = new HashSet<>();

    try (final NarCloseable closeable = NarCloseable.withComponentNarLoader(component.getClass().getClassLoader())) {
        final List<PropertyDescriptor> descriptors = component.getPropertyDescriptors();
        if (descriptors != null && !descriptors.isEmpty()) {
            for (final PropertyDescriptor descriptor : descriptors) {
                final Class<? extends ControllerService> serviceApi = descriptor.getControllerServiceDefinition();
                if (serviceApi != null && !component.getClass().getClassLoader().equals(serviceApi.getClassLoader())) {
                    final Bundle apiBundle = classLoaderBundleLookup.get(serviceApi.getClassLoader());
                    reachableApiBundles.add(apiBundle.getBundleDetails().getCoordinate());
                }
            }
        }
    }

    return reachableApiBundles;
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:24,代码来源:ExtensionManager.java


示例3: validateServiceIsLocatableViaServiceLoader

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
@Test
public void validateServiceIsLocatableViaServiceLoader() {
    ServiceLoader<ControllerService> loader = ServiceLoader.<ControllerService> load(ControllerService.class);
    Iterator<ControllerService> iter = loader.iterator();
    boolean present = false;
    while (iter.hasNext()) {
        ControllerService cs = iter.next();
        assertTrue(cs instanceof JMSConnectionFactoryProviderDefinition);
        present = true;
    }
    assertTrue(present);
}
 
开发者ID:lsac,项目名称:nifi-jms-jndi,代码行数:13,代码来源:JMSConnectionFactoryProviderTest.java


示例4: validateServiceIsLocatableViaServiceLoader

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
@Test
public void validateServiceIsLocatableViaServiceLoader() {
    ServiceLoader<ControllerService> loader = ServiceLoader.<ControllerService>load(ControllerService.class);
    Iterator<ControllerService> iter = loader.iterator();
    boolean present = false;
    while (iter.hasNext()) {
        ControllerService cs = iter.next();
        if (cs instanceof JMSConnectionFactoryProviderDefinition) {
            present = true;
            break;
        }
    }
    assertTrue(present);
}
 
开发者ID:lsac,项目名称:nifi-jms-jndi,代码行数:15,代码来源:JNDIConnectionFactoryProviderTest.java


示例5: createComponentInitializer

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
/**
 * Returns a ConfigurableComponentInitializer for the type of component.
 * Currently Processor, ControllerService and ReportingTask are supported.
 *
 * @param componentClass the class that requires a ConfigurableComponentInitializer
 * @return a ConfigurableComponentInitializer capable of initializing that specific type of class
 */
public static ConfigurableComponentInitializer createComponentInitializer(final Class<? extends ConfigurableComponent> componentClass) {
    if (Processor.class.isAssignableFrom(componentClass)) {
        return new ProcessorInitializer();
    } else if (ControllerService.class.isAssignableFrom(componentClass)) {
        return new ControllerServiceInitializer();
    } else if (ReportingTask.class.isAssignableFrom(componentClass)) {
        return new ReportingTaskingInitializer();
    }

    return null;
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:19,代码来源:ConfigurableComponentInitializerFactory.java


示例6: initialize

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
@Override
public void initialize(ConfigurableComponent component) throws InitializationException {
    ControllerService controllerService = (ControllerService) component;
    ControllerServiceInitializationContext context = new MockControllerServiceInitializationContext();
    try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(component.getClass(), context.getIdentifier())) {
        controllerService.initialize(context);
    }
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:9,代码来源:ControllerServiceInitializer.java


示例7: teardown

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
@Override
public void teardown(ConfigurableComponent component) {
    try (NarCloseable narCloseable = NarCloseable.withComponentNarLoader(component.getClass(), component.getIdentifier())) {
        ControllerService controllerService = (ControllerService) component;

        final ComponentLog logger = new MockComponentLogger();
        final MockConfigurationContext context = new MockConfigurationContext();
        ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnShutdown.class, controllerService, logger, context);
    } finally {
        ExtensionManager.removeInstanceClassLoader(component.getIdentifier());
    }
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:13,代码来源:ControllerServiceInitializer.java


示例8: getControllerService

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
@Override
public ControllerService getControllerService(final String serviceIdentifier) {
    return null;
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:5,代码来源:MockControllerServiceLookup.java


示例9: isControllerServiceEnabled

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
@Override
public boolean isControllerServiceEnabled(final ControllerService service) {
    return false;
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:5,代码来源:MockControllerServiceLookup.java


示例10: getControllerServiceIdentifiers

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
@Override
public Set<String> getControllerServiceIdentifiers(final Class<? extends ControllerService> serviceType) throws IllegalArgumentException {
    return Collections.emptySet();
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:5,代码来源:MockControllerServiceLookup.java


示例11: loadExtensions

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
/**
 * Loads extensions from the specified bundle.
 *
 * @param bundle from which to load extensions
 */
@SuppressWarnings("unchecked")
private static void loadExtensions(final Bundle bundle) {
    for (final Map.Entry<Class, Set<Class>> entry : definitionMap.entrySet()) {
        final boolean isControllerService = ControllerService.class.equals(entry.getKey());
        final boolean isProcessor = Processor.class.equals(entry.getKey());
        final boolean isReportingTask = ReportingTask.class.equals(entry.getKey());

        final ServiceLoader<?> serviceLoader = ServiceLoader.load(entry.getKey(), bundle.getClassLoader());
        for (final Object o : serviceLoader) {
            // create a cache of temp ConfigurableComponent instances, the initialize here has to happen before the checks below
            if ((isControllerService || isProcessor || isReportingTask) && o instanceof ConfigurableComponent) {
                final ConfigurableComponent configurableComponent = (ConfigurableComponent) o;
                initializeTempComponent(configurableComponent);

                final String cacheKey = getClassBundleKey(o.getClass().getCanonicalName(), bundle.getBundleDetails().getCoordinate());
                tempComponentLookup.put(cacheKey, (ConfigurableComponent) o);
            }

            // only consider extensions discovered directly in this bundle
            boolean registerExtension = bundle.getClassLoader().equals(o.getClass().getClassLoader());

            if (registerExtension) {
                final Class extensionType = o.getClass();
                if (isControllerService && !checkControllerServiceEligibility(extensionType)) {
                    registerExtension = false;
                    logger.error(String.format(
                            "Skipping Controller Service %s because it is bundled with its supporting APIs and requires instance class loading.", extensionType.getName()));
                }

                final boolean canReferenceControllerService = (isControllerService || isProcessor || isReportingTask) && o instanceof ConfigurableComponent;
                if (canReferenceControllerService && !checkControllerServiceReferenceEligibility((ConfigurableComponent) o, bundle.getClassLoader())) {
                    registerExtension = false;
                    logger.error(String.format(
                            "Skipping component %s because it is bundled with its referenced Controller Service APIs and requires instance class loading.", extensionType.getName()));
                }

                if (registerExtension) {
                    registerServiceClass(o.getClass(), classNameBundleLookup, bundle, entry.getValue());
                }
            }

        }

        classLoaderBundleLookup.put(bundle.getClassLoader(), bundle);
    }
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:52,代码来源:ExtensionManager.java


示例12: multipleVersionsAllowed

import org.apache.nifi.controller.ControllerService; //导入依赖的package包/类
/**
 * @param type a Class that we found from a service loader
 * @return true if the given class is a processor, controller service, or reporting task
 */
private static boolean multipleVersionsAllowed(Class<?> type) {
    return Processor.class.isAssignableFrom(type) || ControllerService.class.isAssignableFrom(type) || ReportingTask.class.isAssignableFrom(type);
}
 
开发者ID:apache,项目名称:nifi-minifi,代码行数:8,代码来源:ExtensionManager.java



注:本文中的org.apache.nifi.controller.ControllerService类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java CorruptFileBlocksProto类代码示例发布时间:2022-05-22
下一篇:
Java Condition类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap