package org.tynamo.examples.simple.services; import org.apache.tapestry5.internal.jpa.CommitAfterMethodAdvice; import org.apache.tapestry5.ioc.Configuration; import org.apache.tapestry5.ioc.OrderedConfiguration; import org.apache.tapestry5.ioc.annotations.Contribute; import org.apache.tapestry5.ioc.annotations.Primary; import org.apache.tapestry5.ioc.annotations.SubModule; import org.apache.tapestry5.jpa.EntityManagerManager; import org.apache.tapestry5.jpa.JpaEntityPackageManager; import org.apache.tapestry5.plastic.MethodAdvice; import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2; import org.tynamo.model.jpa.services.TynamoJpaModule; @SubModule(value = { TynamoJpaModule.class, org.apache.tapestry5.jpa.modules.JpaModule.class }) public class JpaModule { /** * By default tapestry-jpa will scan * InternalConstants.TAPESTRY_APP_PACKAGE_PARAM + ".entities" (witch is equal to "org.tynamo.examples.simple.simple.entities") * for annotated entity classes. * <p/> * Contributes the package "org.tynamo.examples.simple.simple.model" to the configuration, so that it will be * scanned for annotated entity classes. */ @Contribute(JpaEntityPackageManager.class) public static void addPackagesToScan(Configuration<String> configuration) { // If you want to scan other packages add them here: // configuration.add("org.tynamo.examples.simple.simple.model"); } @Contribute(ComponentClassTransformWorker2.class) @Primary public static void provideClassTransformWorkers(OrderedConfiguration<ComponentClassTransformWorker2> configuration, EntityManagerManager manager) { /** * WARN: This JPACommitAfter worker doesn't support @PersistenceContext */ MethodAdvice advice = new CommitAfterMethodAdvice(manager); configuration.add("TynamoExampleJPACommitAfter", new CommitAfterWorker(advice), "after:Log"); } }