package com.tap5.hotelbooking.services;
import org.apache.tapestry5.SymbolConstants;
import org.apache.tapestry5.ioc.MappedConfiguration;
import org.apache.tapestry5.ioc.OrderedConfiguration;
import org.apache.tapestry5.ioc.ServiceBinder;
import org.apache.tapestry5.ioc.annotations.Contribute;
import org.apache.tapestry5.ioc.annotations.SubModule;
import org.apache.tapestry5.ioc.services.ApplicationDefaults;
import org.apache.tapestry5.ioc.services.SymbolProvider;
import org.apache.tapestry5.services.ComponentRequestFilter;
import org.apache.tapestry5.services.ComponentRequestHandler;
import org.apache.tapestry5.validator.ValidatorMacro;
import com.tap5.hotelbooking.dal.DataModule;
import com.tap5.hotelbooking.dal.HibernateModule;
import com.tap5.hotelbooking.security.AuthenticationFilter;
/**
* This module is automatically included as part of the Tapestry IoC Registry, it's a good place to
* configure and extend Tapestry, or to place your own service definitions.
*/
@SubModule(
{ HibernateModule.class, DataModule.class })
public class HotelBookingModule
{
public static void bind(ServiceBinder binder)
{
binder.bind(Authenticator.class, BasicAuthenticator.class);
}
@ApplicationDefaults
@Contribute(SymbolProvider.class)
public static void configureTapestryHotelBooking(
MappedConfiguration<String, String> configuration)
{
configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
configuration.add(SymbolConstants.APPLICATION_VERSION, "1.2-SNAPSHOT");
}
@Contribute(ValidatorMacro.class)
public static void combineValidators(MappedConfiguration<String, String> configuration)
{
configuration.add("username", "required, minlength=3, maxlength=15");
configuration.add("password", "required, minlength=6, maxlength=12");
}
@Contribute(ComponentRequestHandler.class)
public static void contributeComponentRequestHandler(
OrderedConfiguration<ComponentRequestFilter> configuration)
{
configuration.addInstance("RequiresLogin", AuthenticationFilter.class);
}
}