/* * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jboss.cdi.tck.tests.extensions.configurators; import java.util.concurrent.atomic.AtomicBoolean; import javax.enterprise.context.RequestScoped; import javax.enterprise.event.Observes; import javax.enterprise.inject.spi.Extension; import javax.enterprise.inject.spi.ProcessAnnotatedType; import javax.enterprise.inject.spi.ProcessBeanAttributes; import javax.enterprise.inject.spi.ProcessInjectionPoint; import javax.enterprise.inject.spi.ProcessObserverMethod; import javax.enterprise.inject.spi.configurator.AnnotatedTypeConfigurator; import javax.enterprise.inject.spi.configurator.BeanAttributesConfigurator; import javax.enterprise.inject.spi.configurator.InjectionPointConfigurator; import javax.enterprise.inject.spi.configurator.ObserverMethodConfigurator; public class DummyConfiguringExtension implements Extension { private AtomicBoolean sameATConfiguratorReturned = new AtomicBoolean(false); private AtomicBoolean sameIPConfiguratorReturned = new AtomicBoolean(false); private AtomicBoolean sameBAConfiguratorReturned = new AtomicBoolean(false); private AtomicBoolean sameOMConfiguratorReturned = new AtomicBoolean(false); void observesFooPAT(@Observes ProcessAnnotatedType<Foo> event) { AnnotatedTypeConfigurator<Foo> annotatedTypeConfigurator = event.configureAnnotatedType(); annotatedTypeConfigurator.remove(p -> p.annotationType().equals(RequestScoped.class)); sameATConfiguratorReturned.set(annotatedTypeConfigurator.equals(event.configureAnnotatedType())); } void observesFooPIP(@Observes ProcessInjectionPoint<Foo, Bar> event) { InjectionPointConfigurator injectionPointConfigurator = event.configureInjectionPoint(); injectionPointConfigurator.transientField(true); sameIPConfiguratorReturned.set(injectionPointConfigurator.equals(event.configureInjectionPoint())); } void observesFooPBA(@Observes ProcessBeanAttributes<Foo> event) { BeanAttributesConfigurator<Foo> beanAttributesConfigurator = event.configureBeanAttributes(); beanAttributesConfigurator.name(Foo.class.getSimpleName()); sameBAConfiguratorReturned.set(beanAttributesConfigurator.equals(event.configureBeanAttributes())); } void observesFooPOM(@Observes ProcessObserverMethod<Bar, Foo> event){ ObserverMethodConfigurator<Bar> observerMethodConfigurator = event.configureObserverMethod(); observerMethodConfigurator.priority(1000); sameOMConfiguratorReturned.set(observerMethodConfigurator.equals(event.configureObserverMethod())); } public AtomicBoolean isSameATConfiguratorReturned() { return sameATConfiguratorReturned; } public AtomicBoolean isSameIPConfiguratorReturned() { return sameIPConfiguratorReturned; } public AtomicBoolean isSameBAConfiguratorReturned() { return sameBAConfiguratorReturned; } public AtomicBoolean isSameOMConfiguratorReturned() { return sameOMConfiguratorReturned; } }