Hi Jerome,

Would you be able to get a signed JCA back to us?

Sure.  I'll send that to you tonight.

Once done I'll happily add
your classes and unit tests to the SVN trunk.
http://www.restlet.org/community/contribute

I'm looking at creating a patch that I can hand off to you containing all the source & the unit tests. It looks like all the tests for all the extensions go in modules/org.restlet.test. Is that correct, or am I missing something?

Rhett

On Jan 28, 2008, at 4:38 PM, Jerome Louvel wrote:


Hi Rhett,

Thanks for providing this nice alternative. Spring integration has been a major pain for Restlet users in the past. I'm happy to see that 1.1 will
bring concrete progress to them.

Would you be able to get a signed JCA back to us? Once done I'll happily add
your classes and unit tests to the SVN trunk.
http://www.restlet.org/community/contribute

Best regards,
Jerome

-----Message d'origine-----
De : Rhett Sutphin [mailto:[EMAIL PROTECTED]
Envoyé : vendredi 25 janvier 2008 18:13
À : [email protected]
Objet : Re: Spring ServerServlet?

Hi,

I'm a bit late to this party, but I've been playing around with
another way of integrating Restlets into an existing
Spring-based web
application.  It uses ServletConverter in a subclass Spring's
FrameworkServlet class so that configuring the Restlet
servlet is just
like configuring a Spring-MVC servlet.  It's still experimental, but
it seems to be working all right so far.

The servlet is here:

https://svn.bioinformatics.northwestern.edu/studycalendar/trun
k/src/main/java/edu/northwestern/bioinformatics/studycalendar/
restlets/RestletSpringServlet.java

You add it to your web.xml like so:

    <servlet>
        <servlet-name>restful-api</servlet-name>
        <servlet-
class

edu
.northwestern
.bioinformatics.studycalendar.restlets.RestletSpringServlet</servlet-
class>
        <init-param>
            <param-name>targetRestletBeanName</param-name>
            <param-value>router</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>restful-api</servlet-name>
        <url-pattern>/api/v1/*</url-pattern>
    </servlet-mapping>

And then configure it in a file named WEB-INF/<servlet-name>-
servlet.xml.  For this example, that would be WEB-INF/restful-api-
servlet.xml .  The "targetRestletBeanName" points to a bean in that
file which the ServletConverter will delegate to (e.g., a Router).

I've also implemented an alternate Router (BeanNameRouter)
which works
like Spring-MVC's BeanNameUrlHandlerMapping.  With it, you
can have a
restful-api-servlet.xml doc like this:

<beans  xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        ">

    <bean name="router"
class
=
"edu
.northwestern.bioinformatics.studycalendar.restlets.BeanNameRouter"/>

    <bean name="/studies"
          id="studiesResource" autowire="byName" scope="prototype"

class
=
"edu.northwestern.bioinformatics.studycalendar.restlets.Studie
sResource"
          />

    <bean name="/studies/{study-identifier}/template"
          id="templateResource" autowire="byName" scope="prototype"

class
=
"edu
.northwestern.bioinformatics.studycalendar.restlets.TemplateResource"
          />

</beans>

This file defines two resources -- /studies and /studies/{study-
identifier}/template .  The BeanNameRouter takes care of creating
appropriate Finders for each resource and attaching them to
the router
via Spring's BeanFactoryPostProcessor mechanism.  BeanNameRouter is
here:

https://svn.bioinformatics.northwestern.edu/studycalendar/trun
k/src/main/java/edu/northwestern/bioinformatics/studycalendar/
restlets/BeanNameRouter.java

It depends on SpringBeanFinder:

https://svn.bioinformatics.northwestern.edu/studycalendar/trun
k/src/main/java/edu/northwestern/bioinformatics/studycalendar/
restlets/SpringBeanFinder.java

SpringBeanFinder is a Finder that resolves Resources out of a
BeanFactory by name (an alternative to the cglib-based lookup-method
approach suggested with SpringFinder).

Caveat coder: I've only tested this with 1.1-M1, and I think some of
the spring integration these classes depend on is only available in
that version.  I'd be happy to contribute any or all of this code to
the Restlet spring extension if it would be useful.  (And I've even
got unit tests for it.)

Rhett

On Jan 24, 2008, at 9:11 AM, Barry wrote:

Hi all,

I'm quite new to this so let me know if I'm missing
something obvious.

I'm trying to create a Spring configured Restlet Application that
will run
in a servlet container.

As far as I can see I don't think this is supported (as the
ServerServlet
creates the application). Is there a way to do this?

If not I may create a SpringServerServlet that looks the
Application
that
willget the application from the spring config.

Or alternatively create an an application that proxies its
calls to a
application looked up from the spring context.

Which sounds better (or are they both horrible)?

Barry






Reply via email to