I always use constructor injection. Did you try that ?

regards
Taha

On Wed, Jun 8, 2011 at 12:50 PM, ael <alan-lua...@dash.com.ph> wrote:

> Yes in the AppModule
>
>
>
> package com.dash.t5wdb.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 org.apache.tapestry5.hibernate.HibernateSessionManager;
>
> import com.dash.t5wdb.daoservices.*;
> import org.apache.tapestry5.ioc.annotations.InjectService;
> import org.apache.tapestry5.upload.services.UploadSymbols;
>
> /**
>  * 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&lt;String, String&gt; 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");
>
>        // File Upload Configuration. 500kb
>        configuration.add(UploadSymbols.FILESIZE_MAX, "512000");
>    }
>
>
>    /**
>     * 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);
>    }
>
>
>    //////////////////////////////// DAO HIBERNATE
> //////////////////////////////////
>    public static AuthenticationDAO buildAuthenticationDAO(
>        @InjectService("HibernateSessionManager") HibernateSessionManager
> sessionManager)
>    {
>        AuthenticationDAOHibernate dao = new AuthenticationDAOHibernate();
>        dao.setSessionManager(sessionManager);
>        return dao;
>    }
>
>    public static TbSetupDAO buildTbSetupDAO(
>        @InjectService("HibernateSessionManager") HibernateSessionManager
> sessionManager)
>    {
>        TbSetupDAOHibernate dao = new TbSetupDAOHibernate();
>        dao.setSessionManager(sessionManager);
>        return dao;
>    }
>
>    public static TbAdminsDAO buildTbAdminsDAO(
>        @InjectService("HibernateSessionManager") HibernateSessionManager
> sessionManager)
>    {
>        TbAdminsDAOHibernate dao = new TbAdminsDAOHibernate();
>        dao.setSessionManager(sessionManager);
>        return dao;
>    }
>
>    public static TbGuestDAO buildTbGuestDAO(
>        @InjectService("HibernateSessionManager") HibernateSessionManager
> sessionManager)
>    {
>        TbGuestDAOHibernate dao = new TbGuestDAOHibernate();
>        dao.setSessionManager(sessionManager);
>        return dao;
>    }
> }
>
>
>
>
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/T5-Using-DAO-within-a-DAO-causes-NPE-tp4467009p4468053.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