本文整理汇总了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;未经允许,请勿转载。 |
请发表评论