Search in sources :

Example 1 with Feature

use of io.quarkus.deployment.Feature in project quarkus by quarkusio.

the class RestClientReactiveProcessor method registerProvidersFromAnnotations.

/**
 * Creates an implementation of `AnnotationRegisteredProviders` class with a constructor that:
 * <ul>
 * <li>puts all the providers registered by the @RegisterProvider annotation in a
 * map using the {@link AnnotationRegisteredProviders#addProviders(String, Map)} method</li>
 * <li>registers all the provider implementations annotated with @Provider using
 * {@link AnnotationRegisteredProviders#addGlobalProvider(Class, int)}</li>
 * </ul>
 *
 * @param indexBuildItem index
 * @param generatedBeans build producer for generated beans
 */
@BuildStep
void registerProvidersFromAnnotations(CombinedIndexBuildItem indexBuildItem, BuildProducer<GeneratedBeanBuildItem> generatedBeans, BuildProducer<GeneratedClassBuildItem> generatedClasses, BuildProducer<UnremovableBeanBuildItem> unremovableBeans, BuildProducer<ReflectiveClassBuildItem> reflectiveClasses, RestClientReactiveConfig clientConfig) {
    String annotationRegisteredProvidersImpl = AnnotationRegisteredProviders.class.getName() + "Implementation";
    IndexView index = indexBuildItem.getIndex();
    Map<String, List<AnnotationInstance>> annotationsByClassName = new HashMap<>();
    for (AnnotationInstance annotation : index.getAnnotations(REGISTER_PROVIDER)) {
        String targetClass = annotation.target().asClass().name().toString();
        annotationsByClassName.computeIfAbsent(targetClass, key -> new ArrayList<>()).add(annotation);
    }
    for (AnnotationInstance annotation : index.getAnnotations(REGISTER_PROVIDERS)) {
        String targetClass = annotation.target().asClass().name().toString();
        annotationsByClassName.computeIfAbsent(targetClass, key -> new ArrayList<>()).addAll(asList(annotation.value().asNestedArray()));
    }
    try (ClassCreator classCreator = ClassCreator.builder().className(annotationRegisteredProvidersImpl).classOutput(new GeneratedBeanGizmoAdaptor(generatedBeans)).superClass(AnnotationRegisteredProviders.class).build()) {
        classCreator.addAnnotation(Singleton.class.getName());
        MethodCreator constructor = classCreator.getMethodCreator(MethodDescriptor.ofConstructor(annotationRegisteredProvidersImpl));
        constructor.invokeSpecialMethod(MethodDescriptor.ofConstructor(AnnotationRegisteredProviders.class), constructor.getThis());
        if (clientConfig.providerAutodiscovery) {
            for (AnnotationInstance instance : index.getAnnotations(ResteasyReactiveDotNames.PROVIDER)) {
                ClassInfo providerClass = instance.target().asClass();
                // ignore providers annotated with `@ConstrainedTo(SERVER)`
                AnnotationInstance constrainedToInstance = providerClass.classAnnotation(ResteasyReactiveDotNames.CONSTRAINED_TO);
                if (constrainedToInstance != null) {
                    if (RuntimeType.valueOf(constrainedToInstance.value().asEnum()) == RuntimeType.SERVER) {
                        continue;
                    }
                }
                if (providerClass.interfaceNames().contains(ResteasyReactiveDotNames.FEATURE)) {
                    // features should not be automatically registered for the client, see javadoc for Feature
                    continue;
                }
                int priority = getAnnotatedPriority(index, providerClass.name().toString(), Priorities.USER);
                constructor.invokeVirtualMethod(MethodDescriptor.ofMethod(AnnotationRegisteredProviders.class, "addGlobalProvider", void.class, Class.class, int.class), constructor.getThis(), constructor.loadClassFromTCCL(providerClass.name().toString()), constructor.load(priority));
            }
        }
        Map<String, ClientExceptionMapperHandler.Result> ifaceToGeneratedMapper = new HashMap<>();
        ClientExceptionMapperHandler clientExceptionMapperHandler = new ClientExceptionMapperHandler(new GeneratedClassGizmoAdaptor(generatedClasses, true));
        for (AnnotationInstance instance : index.getAnnotations(CLIENT_EXCEPTION_MAPPER)) {
            ClientExceptionMapperHandler.Result result = clientExceptionMapperHandler.generateResponseExceptionMapper(instance);
            if (ifaceToGeneratedMapper.containsKey(result.interfaceName)) {
                throw new IllegalStateException("Only a single instance of '" + CLIENT_EXCEPTION_MAPPER + "' is allowed per REST Client interface. Offending class is '" + result.interfaceName + "'");
            }
            ifaceToGeneratedMapper.put(result.interfaceName, result);
            reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, false, false, result.generatedClassName));
        }
        for (Map.Entry<String, List<AnnotationInstance>> annotationsForClass : annotationsByClassName.entrySet()) {
            ResultHandle map = constructor.newInstance(MethodDescriptor.ofConstructor(HashMap.class));
            for (AnnotationInstance value : annotationsForClass.getValue()) {
                String className = value.value().asString();
                AnnotationValue priorityAnnotationValue = value.value("priority");
                int priority;
                if (priorityAnnotationValue == null) {
                    priority = getAnnotatedPriority(index, className, Priorities.USER);
                } else {
                    priority = priorityAnnotationValue.asInt();
                }
                constructor.invokeInterfaceMethod(MAP_PUT, map, constructor.loadClassFromTCCL(className), constructor.load(priority));
            }
            String ifaceName = annotationsForClass.getKey();
            if (ifaceToGeneratedMapper.containsKey(ifaceName)) {
                // remove the interface from the generated mapper since it's going to be handled now
                // the remaining entries will be handled later
                ClientExceptionMapperHandler.Result result = ifaceToGeneratedMapper.remove(ifaceName);
                constructor.invokeInterfaceMethod(MAP_PUT, map, constructor.loadClass(result.generatedClassName), constructor.load(result.priority));
            }
            constructor.invokeVirtualMethod(MethodDescriptor.ofMethod(AnnotationRegisteredProviders.class, "addProviders", void.class, String.class, Map.class), constructor.getThis(), constructor.load(ifaceName), map);
        }
        // add the remaining generated mappers
        for (Map.Entry<String, ClientExceptionMapperHandler.Result> entry : ifaceToGeneratedMapper.entrySet()) {
            ResultHandle map = constructor.newInstance(MethodDescriptor.ofConstructor(HashMap.class));
            constructor.invokeInterfaceMethod(MAP_PUT, map, constructor.loadClass(entry.getValue().generatedClassName), constructor.load(entry.getValue().priority));
            constructor.invokeVirtualMethod(MethodDescriptor.ofMethod(AnnotationRegisteredProviders.class, "addProviders", void.class, String.class, Map.class), constructor.getThis(), constructor.load(entry.getKey()), map);
        }
        constructor.returnValue(null);
    }
    unremovableBeans.produce(UnremovableBeanBuildItem.beanClassNames(annotationRegisteredProvidersImpl));
}
Also used : GeneratedClassGizmoAdaptor(io.quarkus.deployment.GeneratedClassGizmoAdaptor) AnnotationRegisteredProviders(io.quarkus.rest.client.reactive.runtime.AnnotationRegisteredProviders) UnremovableBeanBuildItem(io.quarkus.arc.deployment.UnremovableBeanBuildItem) Priorities(javax.ws.rs.Priorities) QueryParamStyle(org.eclipse.microprofile.rest.client.ext.QueryParamStyle) ClassInfo(org.jboss.jandex.ClassInfo) RestClientRecorder(io.quarkus.rest.client.reactive.runtime.RestClientRecorder) CombinedIndexBuildItem(io.quarkus.deployment.builditem.CombinedIndexBuildItem) RestClientDefaultProducesBuildItem(io.quarkus.jaxrs.client.reactive.deployment.RestClientDefaultProducesBuildItem) BuildProducer(io.quarkus.deployment.annotations.BuildProducer) GeneratedBeanBuildItem(io.quarkus.arc.deployment.GeneratedBeanBuildItem) Capabilities(io.quarkus.deployment.Capabilities) MediaType(javax.ws.rs.core.MediaType) MethodInfo(org.jboss.jandex.MethodInfo) MAP_PUT(io.quarkus.arc.processor.MethodDescriptors.MAP_PUT) AdditionalBeanBuildItem(io.quarkus.arc.deployment.AdditionalBeanBuildItem) FeatureBuildItem(io.quarkus.deployment.builditem.FeatureBuildItem) CompositeIndex(org.jboss.jandex.CompositeIndex) Arrays.asList(java.util.Arrays.asList) Map(java.util.Map) AnnotationTarget(org.jboss.jandex.AnnotationTarget) ConfigurationTypeBuildItem(io.quarkus.deployment.builditem.ConfigurationTypeBuildItem) REGISTER_PROVIDERS(io.quarkus.rest.client.reactive.deployment.DotNames.REGISTER_PROVIDERS) HeaderCapturingServerFilter(io.quarkus.rest.client.reactive.runtime.HeaderCapturingServerFilter) AnnotationValue(org.jboss.jandex.AnnotationValue) ExtensionSslNativeSupportBuildItem(io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem) RuntimeType(javax.ws.rs.RuntimeType) Collection(java.util.Collection) ExecutionTime(io.quarkus.deployment.annotations.ExecutionTime) RestClientDefaultConsumesBuildItem(io.quarkus.jaxrs.client.reactive.deployment.RestClientDefaultConsumesBuildItem) RestClientConfigUtils(io.quarkus.restclient.config.deployment.RestClientConfigUtils) Set(java.util.Set) NativeImageResourceBuildItem(io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem) Config(org.eclipse.microprofile.config.Config) BuiltinScope(io.quarkus.arc.processor.BuiltinScope) REGISTER_PROVIDER(io.quarkus.rest.client.reactive.deployment.DotNames.REGISTER_PROVIDER) ResteasyReactiveDotNames(org.jboss.resteasy.reactive.common.processor.ResteasyReactiveDotNames) Feature(io.quarkus.deployment.Feature) List(java.util.List) ConfigProvider(org.eclipse.microprofile.config.ConfigProvider) AnnotationInstance(org.jboss.jandex.AnnotationInstance) Modifier(java.lang.reflect.Modifier) ScopeInfo(io.quarkus.arc.processor.ScopeInfo) Optional(java.util.Optional) ResultHandle(io.quarkus.gizmo.ResultHandle) RestClientReactiveConfig(io.quarkus.rest.client.reactive.runtime.RestClientReactiveConfig) CLIENT_HEADER_PARAM(io.quarkus.rest.client.reactive.deployment.DotNames.CLIENT_HEADER_PARAM) CLIENT_EXCEPTION_MAPPER(io.quarkus.rest.client.reactive.deployment.DotNames.CLIENT_EXCEPTION_MAPPER) ReflectiveClassBuildItem(io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem) Record(io.quarkus.deployment.annotations.Record) Logger(org.jboss.logging.Logger) MethodCreator(io.quarkus.gizmo.MethodCreator) REGISTER_CLIENT_HEADERS(io.quarkus.rest.client.reactive.deployment.DotNames.REGISTER_CLIENT_HEADERS) DotName(org.jboss.jandex.DotName) Type(org.jboss.jandex.Type) LaunchMode(io.quarkus.runtime.LaunchMode) HashMap(java.util.HashMap) ClassCreator(io.quarkus.gizmo.ClassCreator) CDI_WRAPPER_SUFFIX(org.jboss.resteasy.reactive.common.processor.EndpointIndexer.CDI_WRAPPER_SUFFIX) SessionScoped(javax.enterprise.context.SessionScoped) Singleton(javax.inject.Singleton) BUILTIN_HTTP_ANNOTATIONS_TO_METHOD(org.jboss.resteasy.reactive.common.processor.scanning.ResteasyReactiveScanner.BUILTIN_HTTP_ANNOTATIONS_TO_METHOD) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) BuildStep(io.quarkus.deployment.annotations.BuildStep) RestClientReactiveCDIWrapperBase(io.quarkus.rest.client.reactive.runtime.RestClientReactiveCDIWrapperBase) AsmUtil(io.quarkus.deployment.util.AsmUtil) JaxrsClientReactiveEnricherBuildItem(io.quarkus.jaxrs.client.reactive.deployment.JaxrsClientReactiveEnricherBuildItem) RestClientsConfig(io.quarkus.restclient.config.RestClientsConfig) IndexView(org.jboss.jandex.IndexView) MethodDescriptor(io.quarkus.gizmo.MethodDescriptor) RestClient(org.eclipse.microprofile.rest.client.inject.RestClient) CustomScopeAnnotationsBuildItem(io.quarkus.arc.deployment.CustomScopeAnnotationsBuildItem) Typed(javax.enterprise.inject.Typed) Capability(io.quarkus.deployment.Capability) CLIENT_HEADER_PARAMS(io.quarkus.rest.client.reactive.deployment.DotNames.CLIENT_HEADER_PARAMS) HeaderContainer(io.quarkus.rest.client.reactive.runtime.HeaderContainer) RestClientDefinitionException(org.eclipse.microprofile.rest.client.RestClientDefinitionException) GeneratedBeanGizmoAdaptor(io.quarkus.arc.deployment.GeneratedBeanGizmoAdaptor) GeneratedClassBuildItem(io.quarkus.deployment.builditem.GeneratedClassBuildItem) RestClientDisableSmartDefaultProduces(io.quarkus.jaxrs.client.reactive.deployment.RestClientDisableSmartDefaultProduces) ContainerRequestFilterBuildItem(io.quarkus.resteasy.reactive.spi.ContainerRequestFilterBuildItem) RegisterRestClient(org.eclipse.microprofile.rest.client.inject.RegisterRestClient) RetentionPolicy(java.lang.annotation.RetentionPolicy) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) AnnotationRegisteredProviders(io.quarkus.rest.client.reactive.runtime.AnnotationRegisteredProviders) ClassCreator(io.quarkus.gizmo.ClassCreator) Arrays.asList(java.util.Arrays.asList) List(java.util.List) ArrayList(java.util.ArrayList) ResultHandle(io.quarkus.gizmo.ResultHandle) IndexView(org.jboss.jandex.IndexView) GeneratedBeanGizmoAdaptor(io.quarkus.arc.deployment.GeneratedBeanGizmoAdaptor) GeneratedClassGizmoAdaptor(io.quarkus.deployment.GeneratedClassGizmoAdaptor) MethodCreator(io.quarkus.gizmo.MethodCreator) Singleton(javax.inject.Singleton) AnnotationValue(org.jboss.jandex.AnnotationValue) Map(java.util.Map) HashMap(java.util.HashMap) AnnotationInstance(org.jboss.jandex.AnnotationInstance) ReflectiveClassBuildItem(io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem) ClassInfo(org.jboss.jandex.ClassInfo) BuildStep(io.quarkus.deployment.annotations.BuildStep)

Example 2 with Feature

use of io.quarkus.deployment.Feature in project quarkus by quarkusio.

the class InfinispanClientProcessor method setup.

@BuildStep
InfinispanPropertiesBuildItem setup(ApplicationArchivesBuildItem applicationArchivesBuildItem, BuildProducer<ReflectiveClassBuildItem> reflectiveClass, BuildProducer<HotDeploymentWatchedFileBuildItem> hotDeployment, BuildProducer<SystemPropertyBuildItem> systemProperties, BuildProducer<FeatureBuildItem> feature, BuildProducer<AdditionalBeanBuildItem> additionalBeans, BuildProducer<ExtensionSslNativeSupportBuildItem> sslNativeSupport, BuildProducer<NativeImageSecurityProviderBuildItem> nativeImageSecurityProviders, BuildProducer<NativeImageConfigBuildItem> nativeImageConfig, CombinedIndexBuildItem applicationIndexBuildItem) throws ClassNotFoundException, IOException {
    feature.produce(new FeatureBuildItem(Feature.INFINISPAN_CLIENT));
    additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf(InfinispanClientProducer.class));
    systemProperties.produce(new SystemPropertyBuildItem("io.netty.noUnsafe", "true"));
    hotDeployment.produce(new HotDeploymentWatchedFileBuildItem(META_INF + File.separator + HOTROD_CLIENT_PROPERTIES));
    // Enable SSL support by default
    sslNativeSupport.produce(new ExtensionSslNativeSupportBuildItem(Feature.INFINISPAN_CLIENT));
    nativeImageSecurityProviders.produce(new NativeImageSecurityProviderBuildItem(SASL_SECURITY_PROVIDER));
    InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(META_INF + "/" + HOTROD_CLIENT_PROPERTIES);
    Properties properties;
    if (stream == null) {
        properties = new Properties();
        if (log.isTraceEnabled()) {
            log.trace("There was no hotrod-client.properties file found - using defaults");
        }
    } else {
        try {
            properties = loadFromStream(stream);
            if (log.isDebugEnabled()) {
                log.debugf("Found HotRod properties of %s", properties);
            }
        } finally {
            Util.close(stream);
        }
        // We use caffeine for bounded near cache - so register that reflection if we have a bounded near cache
        if (properties.containsKey(ConfigurationProperties.NEAR_CACHE_MAX_ENTRIES)) {
            reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, "com.github.benmanes.caffeine.cache.SSMS"));
            reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, "com.github.benmanes.caffeine.cache.PSMS"));
        }
    }
    InfinispanClientProducer.replaceProperties(properties);
    IndexView index = applicationIndexBuildItem.getIndex();
    // This is always non null
    Object marshaller = properties.get(ConfigurationProperties.MARSHALLER);
    if (marshaller instanceof ProtoStreamMarshaller) {
        for (ApplicationArchive applicationArchive : applicationArchivesBuildItem.getAllApplicationArchives()) {
            // If we have properties file we may have to care about
            Path metaPath = applicationArchive.getChildPath(META_INF);
            if (metaPath != null) {
                try (Stream<Path> dirElements = Files.list(metaPath)) {
                    Iterator<Path> protoFiles = dirElements.filter(Files::isRegularFile).filter(p -> p.toString().endsWith(PROTO_EXTENSION)).iterator();
                    // We monitor the entire meta inf directory if properties are available
                    if (protoFiles.hasNext()) {
                    // Quarkus doesn't currently support hot deployment watching directories
                    // hotDeployment.produce(new HotDeploymentConfigFileBuildItem(META_INF));
                    }
                    while (protoFiles.hasNext()) {
                        Path path = protoFiles.next();
                        if (log.isDebugEnabled()) {
                            log.debug("  " + path.toAbsolutePath());
                        }
                        byte[] bytes = Files.readAllBytes(path);
                        // This uses the default file encoding - should we enforce UTF-8?
                        properties.put(InfinispanClientProducer.PROTOBUF_FILE_PREFIX + path.getFileName().toString(), new String(bytes, StandardCharsets.UTF_8));
                    }
                }
            }
        }
        InfinispanClientProducer.handleProtoStreamRequirements(properties);
        Collection<ClassInfo> initializerClasses = index.getAllKnownImplementors(DotName.createSimple(SerializationContextInitializer.class.getName()));
        initializerClasses.addAll(index.getAllKnownImplementors(DotName.createSimple(GeneratedSchema.class.getName())));
        Set<SerializationContextInitializer> initializers = new HashSet<>(initializerClasses.size());
        for (ClassInfo ci : initializerClasses) {
            Class<?> initializerClass = Thread.currentThread().getContextClassLoader().loadClass(ci.toString());
            try {
                SerializationContextInitializer sci = (SerializationContextInitializer) initializerClass.getDeclaredConstructor().newInstance();
                initializers.add(sci);
            } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
                // This shouldn't ever be possible as annotation processor should generate empty constructor
                throw new RuntimeException(e);
            }
        }
        if (!initializers.isEmpty()) {
            properties.put(InfinispanClientProducer.PROTOBUF_INITIALIZERS, initializers);
        }
    }
    // Add any user project listeners to allow reflection in native code
    Collection<AnnotationInstance> listenerInstances = index.getAnnotations(DotName.createSimple(ClientListener.class.getName()));
    for (AnnotationInstance instance : listenerInstances) {
        AnnotationTarget target = instance.target();
        if (target.kind() == AnnotationTarget.Kind.CLASS) {
            reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, target.asClass().name().toString()));
        }
    }
    // This is required for netty to work properly
    reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, "io.netty.channel.socket.nio.NioSocketChannel"));
    // We use reflection to have continuous queries work
    reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, "org.infinispan.client.hotrod.event.impl.ContinuousQueryImpl$ClientEntryListener"));
    // We use reflection to allow for near cache invalidations
    reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, "org.infinispan.client.hotrod.near.NearCacheService$InvalidatedNearCacheListener"));
    // This is required when a cache is clustered to tell us topology
    reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, "org.infinispan.client.hotrod.impl.consistenthash.SegmentConsistentHash"));
    return new InfinispanPropertiesBuildItem(properties);
}
Also used : Log(org.infinispan.client.hotrod.logging.Log) HealthBuildItem(io.quarkus.smallrye.health.deployment.spi.HealthBuildItem) UnremovableBeanBuildItem(io.quarkus.arc.deployment.UnremovableBeanBuildItem) SystemPropertyBuildItem(io.quarkus.deployment.builditem.SystemPropertyBuildItem) MessageMarshaller(org.infinispan.protostream.MessageMarshaller) RawProtobufMarshaller(org.infinispan.protostream.RawProtobufMarshaller) ClassInfo(org.jboss.jandex.ClassInfo) CombinedIndexBuildItem(io.quarkus.deployment.builditem.CombinedIndexBuildItem) BuildProducer(io.quarkus.deployment.annotations.BuildProducer) AdditionalBeanBuildItem(io.quarkus.arc.deployment.AdditionalBeanBuildItem) FeatureBuildItem(io.quarkus.deployment.builditem.FeatureBuildItem) InfinispanClientProducer(io.quarkus.infinispan.client.runtime.InfinispanClientProducer) AnnotationTarget(org.jboss.jandex.AnnotationTarget) Path(java.nio.file.Path) ExtensionSslNativeSupportBuildItem(io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem) ClientListener(org.infinispan.client.hotrod.annotation.ClientListener) Collection(java.util.Collection) GeneratedSchema(org.infinispan.protostream.GeneratedSchema) ExecutionTime(io.quarkus.deployment.annotations.ExecutionTime) Set(java.util.Set) StandardCharsets(java.nio.charset.StandardCharsets) InvocationTargetException(java.lang.reflect.InvocationTargetException) Feature(io.quarkus.deployment.Feature) InfinispanClientBuildTimeConfig(io.quarkus.infinispan.client.runtime.InfinispanClientBuildTimeConfig) InfinispanRecorder(io.quarkus.infinispan.client.runtime.InfinispanRecorder) Stream(java.util.stream.Stream) AnnotationInstance(org.jboss.jandex.AnnotationInstance) NativeImageSecurityProviderBuildItem(io.quarkus.deployment.builditem.nativeimage.NativeImageSecurityProviderBuildItem) ReflectiveClassBuildItem(io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem) Record(io.quarkus.deployment.annotations.Record) EnumMarshaller(org.infinispan.protostream.EnumMarshaller) HotDeploymentWatchedFileBuildItem(io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem) DotName(org.jboss.jandex.DotName) HashSet(java.util.HashSet) LogFactory(org.infinispan.client.hotrod.logging.LogFactory) HotRodClientException(org.infinispan.client.hotrod.exceptions.HotRodClientException) BuildStep(io.quarkus.deployment.annotations.BuildStep) SerializationContextInitializer(org.infinispan.protostream.SerializationContextInitializer) FileDescriptorSource(org.infinispan.protostream.FileDescriptorSource) IndexView(org.jboss.jandex.IndexView) Properties(java.util.Properties) Iterator(java.util.Iterator) ApplicationArchivesBuildItem(io.quarkus.deployment.builditem.ApplicationArchivesBuildItem) Files(java.nio.file.Files) ConfigurationProperties(org.infinispan.client.hotrod.impl.ConfigurationProperties) NativeImageConfigBuildItem(io.quarkus.deployment.builditem.nativeimage.NativeImageConfigBuildItem) Util(org.infinispan.commons.util.Util) IOException(java.io.IOException) File(java.io.File) ApplicationArchive(io.quarkus.deployment.ApplicationArchive) NearCacheMode(org.infinispan.client.hotrod.configuration.NearCacheMode) BeanContainerListenerBuildItem(io.quarkus.arc.deployment.BeanContainerListenerBuildItem) ProtoStreamMarshaller(org.infinispan.commons.marshall.ProtoStreamMarshaller) BaseMarshaller(org.infinispan.protostream.BaseMarshaller) InputStream(java.io.InputStream) NativeImageSecurityProviderBuildItem(io.quarkus.deployment.builditem.nativeimage.NativeImageSecurityProviderBuildItem) GeneratedSchema(org.infinispan.protostream.GeneratedSchema) SystemPropertyBuildItem(io.quarkus.deployment.builditem.SystemPropertyBuildItem) Properties(java.util.Properties) ConfigurationProperties(org.infinispan.client.hotrod.impl.ConfigurationProperties) SerializationContextInitializer(org.infinispan.protostream.SerializationContextInitializer) ApplicationArchive(io.quarkus.deployment.ApplicationArchive) ProtoStreamMarshaller(org.infinispan.commons.marshall.ProtoStreamMarshaller) Files(java.nio.file.Files) HashSet(java.util.HashSet) Path(java.nio.file.Path) AnnotationTarget(org.jboss.jandex.AnnotationTarget) FeatureBuildItem(io.quarkus.deployment.builditem.FeatureBuildItem) ExtensionSslNativeSupportBuildItem(io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem) InputStream(java.io.InputStream) IndexView(org.jboss.jandex.IndexView) HotDeploymentWatchedFileBuildItem(io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem) InvocationTargetException(java.lang.reflect.InvocationTargetException) InfinispanClientProducer(io.quarkus.infinispan.client.runtime.InfinispanClientProducer) ReflectiveClassBuildItem(io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem) AnnotationInstance(org.jboss.jandex.AnnotationInstance) ClassInfo(org.jboss.jandex.ClassInfo) BuildStep(io.quarkus.deployment.annotations.BuildStep)

Aggregations

AdditionalBeanBuildItem (io.quarkus.arc.deployment.AdditionalBeanBuildItem)2 UnremovableBeanBuildItem (io.quarkus.arc.deployment.UnremovableBeanBuildItem)2 Feature (io.quarkus.deployment.Feature)2 BuildProducer (io.quarkus.deployment.annotations.BuildProducer)2 BuildStep (io.quarkus.deployment.annotations.BuildStep)2 ExecutionTime (io.quarkus.deployment.annotations.ExecutionTime)2 Record (io.quarkus.deployment.annotations.Record)2 CombinedIndexBuildItem (io.quarkus.deployment.builditem.CombinedIndexBuildItem)2 ExtensionSslNativeSupportBuildItem (io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem)2 FeatureBuildItem (io.quarkus.deployment.builditem.FeatureBuildItem)2 ReflectiveClassBuildItem (io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem)2 Collection (java.util.Collection)2 HashSet (java.util.HashSet)2 Set (java.util.Set)2 AnnotationInstance (org.jboss.jandex.AnnotationInstance)2 AnnotationTarget (org.jboss.jandex.AnnotationTarget)2 ClassInfo (org.jboss.jandex.ClassInfo)2 DotName (org.jboss.jandex.DotName)2 IndexView (org.jboss.jandex.IndexView)2 BeanContainerListenerBuildItem (io.quarkus.arc.deployment.BeanContainerListenerBuildItem)1