That's how I did it.
*dwr.xml*
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<dwr>
<init>
<creator id="guice" class="com.my.web.dwr.GuiceCreator" />
</init>
<allow>
<create creator="guice" javascript="MyBean">
<param name="class" value="com.my.web.dwr.MyBean" />
</create>
<!-- ... -->
</allow>
</dwr>
*com.my.web.drw.GuiceCreator*:
package com.my.web.dwr;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.directwebremoting.create.AbstractCreator;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.my.guice.MyModule;
public class GuiceCreator extends AbstractCreator {
private static Log log = LogFactory.getLog(GuiceCreator.class);
/**
* What sort of class do we create?
* @param classname The name of the class
*/
public void setClass(String classname)
{
try
{
clazz = Class.forName(classname);
}
catch (ClassNotFoundException ex)
{
throw new RuntimeException("Creator.ClassNotFound " + classname,
ex);
}
}
@SuppressWarnings("unchecked")
public Class getType()
{
return clazz;
}
private static Injector injector = Guice.createInjector(new MyModule());
@SuppressWarnings("unchecked")
public Object getInstance() throws InstantiationException {
log.debug("Object getInstance()");
try {
return injector.getInstance(getType()) ;
} catch (Exception e) {
throw new InstantiationException(e.getMessage());
}
}
/**
* Sets the class name to create.
* @param className The name of the class to create
*/
public void setClassName(String className)
{
setClass(className);
}
/**
* Gets the name of the class to create.
* @return The name of the class to create
*/
public String getClassName()
{
return getType().getName();
}
/**
* The type of the class that we are creating
*/
@SuppressWarnings("unchecked")
private Class clazz;
}
Pavel
On Tue, Oct 27, 2009 at 7:31 AM, Patrick Lightbody <[email protected]>wrote:
>
> Anyone doing this? The DWR integration code is still on Guice 1.0 and
> when I tried upgrading I got quite a few errors. Before I dive in to
> this and send the DWR guys a patch, just wanted to check if others
> have already tackled this problem.
>
> Patrick
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en
-~----------~----~----~----~------~----~------~--~---