package org.tynamo.model.jpa; import org.apache.tapestry5.internal.InternalConstants; import org.apache.tapestry5.internal.InternalSymbols; import org.apache.tapestry5.ioc.Configuration; import org.apache.tapestry5.ioc.LoggerSource; import org.apache.tapestry5.ioc.MappedConfiguration; import org.apache.tapestry5.ioc.annotations.Autobuild; import org.apache.tapestry5.ioc.annotations.Contribute; import org.apache.tapestry5.ioc.annotations.Symbol; import org.apache.tapestry5.ioc.services.ApplicationDefaults; import org.apache.tapestry5.ioc.services.SymbolProvider; import org.apache.tapestry5.jpa.JpaEntityPackageManager; import org.tynamo.descriptor.factories.DescriptorFactory; import org.tynamo.model.jpa.internal.ConfigurableEntityManagerProvider; import org.tynamo.model.jpa.services.JpaDescriptorDecorator; import org.tynamo.model.test.entities.Foo; public class TestModule { @Contribute(SymbolProvider.class) @ApplicationDefaults public static void defaultsSymbols(MappedConfiguration<String, Object> configuration) { configuration.add(InternalConstants.TAPESTRY_APP_PACKAGE_PARAM, "org.tynamo.model.jpa"); configuration.add(InternalSymbols.APP_PACKAGE_PATH, "org/tynamo/model/jpa"); // JpaDescriptorDecoratorTest doesn't include TynamoJpaModule at all, but JpaDescriptorDecorator expects persistenceunit to be configured configuration.add(TynamoJpaSymbols.LARGE_COLUMN_LENGTH, "100"); configuration.add(TynamoJpaSymbols.IGNORE_NON_JPA_TYPES, true); configuration.add(TynamoJpaSymbols.PERSISTENCEUNIT, ""); } @Contribute(JpaEntityPackageManager.class) public static void addPackages(Configuration<String> configuration) { configuration.add(Foo.class.getPackage().getName()); } public static JpaDescriptorDecorator buildJPADescriptorDecorator(@Autobuild ConfigurableEntityManagerProvider entityManagerProvider, DescriptorFactory descriptorFactory, @Symbol(TynamoJpaSymbols.LARGE_COLUMN_LENGTH) int largeColumnLength, @Symbol(TynamoJpaSymbols.IGNORE_NON_JPA_TYPES) boolean ignoreNonHibernateTypes, LoggerSource loggerSource) { return new JpaDescriptorDecorator( descriptorFactory, entityManagerProvider, largeColumnLength, ignoreNonHibernateTypes, loggerSource.getLogger(JpaDescriptorDecorator.class)); } }