Tapestry-cdi allows you to inject JSR 299 managed beans into tapestry services and components.
Contributes to InjectionProvider so that we can use @Inject (from tap5 or javax.inject).
Alternatively the @CDI annotation can be used which uses own annotation worker and objectfactory.
If you have a beans.xml in your tapestry project then cdi could attempt to manage tapestry services. This is undesirable. An easy solution exist for WELD. You can exclude classes from scanning. http://docs.jboss.org/weld/reference/1.1.0.Final/en-US/html_single/#d0e5767
<?xml version="1.0"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd
http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd">
<weld:scan>
<weld:exclude name="com.tapestry.app.**" />
</weld:scan>
</beans>