/*
* Copyright (c) 2009 Mysema Ltd.
* All rights reserved.
*
*/
package com.mysema.rdfbean.tapestry.services;
import java.util.Map;
import org.apache.tapestry5.ioc.ServiceBinder;
import com.mysema.rdfbean.model.Repository;
import com.mysema.rdfbean.object.Configuration;
import com.mysema.rdfbean.object.ObjectRepository;
import com.mysema.rdfbean.object.SessionFactory;
import com.mysema.rdfbean.object.SessionFactoryImpl;
import com.mysema.rdfbean.tapestry.TransactionalAdvisor;
import com.mysema.rdfbean.tapestry.TransactionalAdvisorImpl;
/**
* RDFBeanModule defines an abstract module for Tapestry IoC with a basic
* RDFBean configuration
*
* @author tiwe
*/
public final class RDFBeanModule {
private RDFBeanModule() {
}
public static void bind(ServiceBinder binder) {
binder.bind(TransactionalAdvisor.class, TransactionalAdvisorImpl.class);
binder.bind(SeedEntity.class, SeedEntityImpl.class);
}
public static SessionFactory buildSessionFactory(
Configuration configuration,
Repository repository,
Map<String, ObjectRepository> objectRepositories) {
SessionFactoryImpl sessionFactory = new SessionFactoryImpl();
sessionFactory.setObjectRepositories(objectRepositories);
sessionFactory.setConfiguration(configuration);
sessionFactory.setRepository(repository);
sessionFactory.initialize();
return sessionFactory;
}
}