Reference

http://code.google.com/p/tapestry5examples/downloads/detail?name=folderTap5_1_0_2-src.jar&can=2&q=
Tapestry Hibernate 

AppModule.java

package com.dash.tapestryiocdao.services;

import java.io.IOException;

import org.apache.tapestry5.*;
import org.apache.tapestry5.ioc.MappedConfiguration;
import org.apache.tapestry5.ioc.OrderedConfiguration;
import org.apache.tapestry5.ioc.ServiceBinder;
import org.apache.tapestry5.ioc.annotations.Local;
import org.apache.tapestry5.services.Request;
import org.apache.tapestry5.services.RequestFilter;
import org.apache.tapestry5.services.RequestHandler;
import org.apache.tapestry5.services.Response;
import org.slf4j.Logger;
import com.dash.tapestryiocdao.dao.*;
import org.apache.tapestry5.ioc.annotations.InjectService;
import org.apache.tapestry5.hibernate.HibernateSessionManager;

/**
 * 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.
 */
public class AppModule
{

    public static void bind(ServiceBinder binder)
    {
        // binder.bind(MyServiceInterface.class, MyServiceImpl.class);
        
        // Make bind() calls on the binder object to define most IoC
services.
        // Use service builder methods (example below) when the
implementation
        // is provided inline, or requires more initialization than simply
        // invoking the constructor.

    }
    
    
    public static void contributeApplicationDefaults(
            MappedConfiguration<String, String> configuration)
    {
        // Contributions to ApplicationDefaults will override any
contributions to
        // FactoryDefaults (with the same key). Here we're restricting the
supported
        // locales to just "en" (English). As you add localised message
catalogs and other assets,
        // you can extend this list of locales (it's a comma separated
series of locale names;
        // the first locale name is the default when there's no reasonable
match).
        
        configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");

        // The factory default is true but during the early stages of an
application
        // overriding to false is a good idea. In addition, this is often
overridden
        // on the command line as -Dtapestry.production-mode=false
        configuration.add(SymbolConstants.PRODUCTION_MODE, "false");

        // The application version number is incorprated into URLs for some
        // assets. Web browsers will cache assets because of the far future
expires
        // header. If existing assets are changed, the version number should
also
        // change, to force the browser to download new versions.
        configuration.add(SymbolConstants.APPLICATION_VERSION,
"1.0-SNAPSHOT");
    }
    

    /**
     * This is a service definition, the service will be named
"TimingFilter". The interface,
     * RequestFilter, is used within the RequestHandler service pipeline,
which is built from the
     * RequestHandler service configuration. Tapestry IoC is responsible for
passing in an
     * appropriate Logger instance. Requests for static resources are
handled at a higher level, so
     * this filter will only be invoked for Tapestry related requests.
     * 
     * <p>
     * Service builder methods are useful when the implementation is inline
as an inner class
     * (as here) or require some other kind of special initialization. In
most cases,
     * use the static bind() method instead. 
     * 
     * <p>
     * If this method was named "build", then the service id would be taken
from the 
     * service interface and would be "RequestFilter".  Since Tapestry
already defines
     * a service named "RequestFilter" we use an explicit service id that we
can reference
     * inside the contribution method.
     */    
    public RequestFilter buildTimingFilter(final Logger log)
    {
        return new RequestFilter()
        {
            public boolean service(Request request, Response response,
RequestHandler handler)
                    throws IOException
            {
                long startTime = System.currentTimeMillis();

                try
                {
                    // The responsibility of a filter is to invoke the
corresponding method
                    // in the handler. When you chain multiple filters
together, each filter
                    // received a handler that is a bridge to the next
filter.
                    
                    return handler.service(request, response);
                }
                finally
                {
                    long elapsed = System.currentTimeMillis() - startTime;

                    log.info(String.format("Request time: %d ms", elapsed));
                }
            }
        };
    }

    /**
     * This is a contribution to the RequestHandler service configuration.
This is how we extend
     * Tapestry using the timing filter. A common use for this kind of
filter is transaction
     * management or security. The @Local annotation selects the desired
service by type, but only
     * from the same module.  Without @Local, there would be an error due to
the other service(s)
     * that implement RequestFilter (defined in other modules).
     */
    public void contributeRequestHandler(OrderedConfiguration<RequestFilter>
configuration,
            @Local
            RequestFilter filter)
    {
        // Each contribution to an ordered configuration has a name, When
necessary, you may
        // set constraints to precisely control the invocation order of the
contributed filter
        // within the pipeline.
        
        configuration.add("Timing", filter);
    }

    // Hibernate DAO
    public static TbEmployeesDAO buildTbEmployeesDAO(
        @InjectService("HibernateSessionManager") HibernateSessionManager
sessionManager)
    {
        TbEmployeesDAOHibernate dao = new TbEmployeesDAOHibernate();
        dao.setSessionManager(sessionManager);
        return dao;
    }

}



TbEmployeesDAO.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.dash.tapestryiocdao.dao;

import com.dash.tapestryiocdao.hb.*;
import java.util.List;

/**
 *
 * @author alan
 */
public interface TbEmployeesDAO {

    List<TbEmployees> getIdcode();

    public void commit();

}



TbEmployeesDAOHibernate

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.dash.tapestryiocdao.dao;

import com.dash.tapestryiocdao.hb.TbEmployees;
import java.util.List;
import org.apache.tapestry5.hibernate.HibernateSessionManager;
import org.hibernate.Criteria;
import org.hibernate.Session;


/**
 *
 * @author alan
 */
public class TbEmployeesDAOHibernate implements TbEmployeesDAO
{
    private HibernateSessionManager sessionMananger;

    public HibernateSessionManager getSessionManager() {
            return sessionMananger;
    }

    public void setSessionManager(HibernateSessionManager manager) {
            sessionMananger = manager;

    }

    public void commit() {
       getSessionManager().commit();
    }

    // DAO
    public List<TbEmployees> getIdcode(){
        Session session = getSessionManager().getSession();
        Criteria crit = session.createCriteria(TbEmployees.class);
        return crit.list();
    }
}



Index.tml

<html t:type="layout" title="TapestryiocDAO Index"
      t:sidebarTitle="Current Time"
      xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd";
      xmlns:p="tapestry:parameter">
        <!-- Most of the page content, including <head>, <body>, etc. tags,
comes from Layout.tml -->

    <p>${message:greeting}</p>

    <p:sidebar>

        <p>
            <t:grid source="List" />
        </p>

        <p>The current time is: ${currentTime}.</p>


        <p>
            [<t:pagelink page="Index">refresh</t:pagelink>]
        </p>
    </p:sidebar>

</html>



Index.java

package com.dash.tapestryiocdao.pages;

import com.dash.tapestryiocdao.dao.TbEmployeesDAO;
import com.dash.tapestryiocdao.hb.TbEmployees;
import java.util.Date;
import java.util.List;
import org.apache.tapestry5.ioc.annotations.Inject;

/**
 * Start page of application TapestryiocDAO.
 */
public class Index
{
    @Inject
    private TbEmployeesDAO tbemployeesdao;

    public Date getCurrentTime()
    {
            return new Date();
    }

    public List<TbEmployees> getList(){

        return tbemployeesdao.getIdcode();
    }
}



Tapestry is very POWERFUL :)
-- 
View this message in context: 
http://tapestry.1045711.n5.nabble.com/T5-Working-Tapestry-Hibernate-with-DAO-tp3229905p3229905.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to