Seam SVN: r10967 - in branches/community/Seam_2_1: examples/restbay/src/org/jboss/seam/example/restbay/resteasy and 12 other directories.
by seam-commits@lists.jboss.org
Author: christian.bauer(a)jboss.com
Date: 2009-05-25 10:19:52 -0400 (Mon, 25 May 2009)
New Revision: 10967
Added:
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/applicationcomponent/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/applicationcomponent/ApplicationComponentTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/eventcomponent/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/eventcomponent/EventComponentTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/InterfaceApplicationComponentTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/InterfaceApplicationComponentTestResourceBean.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/InterfaceEventComponentTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/InterfaceEventComponentTestResourceBean.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/InterfaceStatelessComponentTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/InterfaceStatelessComponentTestResourceBean.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/plain/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/plain/PlainTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/ApplicationComponentTestProvider.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/InterfaceApplicationComponenTestProviderBean.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/InterfaceApplicationComponentTestProvider.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/PlainResteasyStringConverterProvider.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/PlainTestProvider.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelesscomponent/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelesscomponent/StatelessComponentTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/StatelessEjbTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/StatelessEjbTestResourceBean.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResourceBean.java
Removed:
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/CalendarConverter.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/EventComponentTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/PlainTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResourceBean.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestProvider.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyDispatcher.java
Modified:
branches/community/Seam_2_1/examples/restbay/resources/WEB-INF/components.xml
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestComponent.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestResource.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/BasicServiceTest.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/SecurityTest.java
branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/testng.xml
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/AbstractResource.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/Application.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/EntityHomeWrapper.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResourceHome.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResourceQuery.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyBootstrap.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyContextInjectionInterceptor.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyResourceAdapter.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/SeamResteasyProviderFactory.java
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/SeamResteasyResourceFactory.java
Log:
JBSEAM-4167, improved RESTEasy bootstrap code, many new tests
Modified: branches/community/Seam_2_1/examples/restbay/resources/WEB-INF/components.xml
===================================================================
--- branches/community/Seam_2_1/examples/restbay/resources/WEB-INF/components.xml 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/resources/WEB-INF/components.xml 2009-05-25 14:19:52 UTC (rev 10967)
@@ -37,7 +37,7 @@
<resteasy:application resource-path-prefix="/restv1">
<resteasy:resource-class-names>
- <value>org.jboss.seam.example.restbay.resteasy.StatelessEjbTestResourceBean</value>
+ <value>org.jboss.seam.example.restbay.resteasy.statelessejb.StatelessEjbTestResourceBean</value>
</resteasy:resource-class-names>
</resteasy:application>
Deleted: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/CalendarConverter.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/CalendarConverter.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/CalendarConverter.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,41 +0,0 @@
-package org.jboss.seam.example.restbay.resteasy;
-
-import org.jboss.resteasy.spi.StringConverter;
-
-import javax.ws.rs.ext.Provider;
-import java.util.GregorianCalendar;
-import java.text.SimpleDateFormat;
-import java.text.ParseException;
-
-/**
- * Converts QueryParam etc. strings to GregorianCalendar if they are in ISO date format
- * @author Christian Bauer
- */
-@Provider
-public class CalendarConverter implements StringConverter<GregorianCalendar>
-{
- public static final String ISO_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ";
-
- public GregorianCalendar fromString(String s)
- {
- SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT);
- GregorianCalendar cal = new GregorianCalendar();
- try
- {
- cal.setTime(sdf.parse(s));
- }
- catch (ParseException e)
- {
- throw new RuntimeException(e);
- }
- return cal;
-
- }
-
- // TODO: RESTEasy doesn't seem to use that at all
- public String toString(GregorianCalendar gregorianCalendar)
- {
- SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT);
- return sdf.format(gregorianCalendar.getTime());
- }
-}
Deleted: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/EventComponentTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/EventComponentTestResource.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/EventComponentTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,138 +0,0 @@
-package org.jboss.seam.example.restbay.resteasy;
-
-import org.jboss.resteasy.annotations.Form;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.In;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.CookieParam;
-import javax.ws.rs.Encoded;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MultivaluedMap;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-/**
- * @author Christian Bauer
- */
-@Name("eventComponentTestResource")
-@Path("/eventComponentTest")
-public class EventComponentTestResource extends TestResource
-{
-
- @In
- TestComponent testComponent;
-
- @GET
- @Path("/echouri")
- @Override
- public String echoUri()
- {
- return super.echoUri();
- }
-
- @GET
- @Path("/echoquery")
- @Override
- public String echoQueryParam(@QueryParam("bar") String bar)
- {
- return super.echoQueryParam(bar);
- }
-
- @GET
- @Path("/echoheader")
- @Override
- public String echoHeaderParam(@HeaderParam("bar") String bar)
- {
- return super.echoHeaderParam(bar);
- }
-
- @GET
- @Path("/echocookie")
- @Override
- public String echoCookieParam(@CookieParam("bar") String bar)
- {
- return super.echoCookieParam(bar);
- }
-
- @GET
- @Path("/echotwoparams/{1}/{2}")
- @Override
- public String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two)
- {
- return super.echoTwoParams(one, two);
- }
-
- @GET
- @Path("/echoencoded/{val}")
- @Override
- public String echoEncoded(@PathParam("val") @Encoded String val)
- {
- return super.echoEncoded(val);
- }
-
- @POST
- @Path("/echoformparams")
- @Consumes("application/x-www-form-urlencoded")
- @Override
- public String echoFormParams(MultivaluedMap<String, String> formMap)
- {
- return super.echoFormParams(formMap);
- }
-
- @POST
- @Path("/echoformparams2")
- @Override
- public String echoFormParams2(@FormParam("foo") String[] foo)
- {
- return super.echoFormParams2(foo);
- }
-
- @POST
- @Path("/echoformparams3")
- @Override
- public String echoFormParams3(@Form TestForm form)
- {
- return super.echoFormParams3(form);
- }
-
- @Path("/foo/bar/{baz}")
- @Override
- public SubResource getBar(@PathParam("baz") String baz)
- {
- return super.getBar(baz);
- }
-
- @GET
- @Path("/convertDate/{isoDate}")
- @Override
- public long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate)
- {
- return super.convertPathParam(isoDate);
- }
-
- @GET
- @Path("/trigger/unsupported")
- @Override
- public String throwException()
- {
- return super.throwException();
- }
-
- @GET
- @Path("/commaSeparated")
- @Produces("text/csv")
- @Override
- public List<String[]> getCommaSeparated()
- {
- return testComponent.getCommaSeparated();
- }
-
-}
Deleted: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/PlainTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/PlainTestResource.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/PlainTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,121 +0,0 @@
-package org.jboss.seam.example.restbay.resteasy;
-
-import org.jboss.resteasy.annotations.Form;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MultivaluedMap;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-/**
- * @author Christian Bauer
- */
-@Path("/plainTest")
-public class PlainTestResource extends TestResource
-{
-
- @GET
- @Path("/echouri")
- @Override
- public String echoUri()
- {
- return super.echoUri();
- }
-
- @GET
- @Path("/echoquery")
- @Override
- public String echoQueryParam(@QueryParam("bar") String bar)
- {
- return super.echoQueryParam(bar);
- }
-
- @GET
- @Path("/echoheader")
- @Override
- public String echoHeaderParam(@HeaderParam("bar") String bar)
- {
- return super.echoHeaderParam(bar);
- }
-
- @GET
- @Path("/echocookie")
- @Override
- public String echoCookieParam(@CookieParam("bar") String bar)
- {
- return super.echoCookieParam(bar);
- }
-
- @GET
- @Path("/echotwoparams/{1}/{2}")
- @Override
- public String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two)
- {
- return super.echoTwoParams(one, two);
- }
-
- @GET
- @Path("/echoencoded/{val}")
- @Override
- public String echoEncoded(@PathParam("val") @Encoded String val)
- {
- return super.echoEncoded(val);
- }
-
- @POST
- @Path("/echoformparams")
- @Consumes("application/x-www-form-urlencoded")
- @Override
- public String echoFormParams(MultivaluedMap<String, String> formMap)
- {
- return super.echoFormParams(formMap);
- }
-
- @POST
- @Path("/echoformparams2")
- @Override
- public String echoFormParams2(@FormParam("foo") String[] foo)
- {
- return super.echoFormParams2(foo);
- }
-
- @POST
- @Path("/echoformparams3")
- @Override
- public String echoFormParams3(@Form TestForm form)
- {
- return super.echoFormParams3(form);
- }
-
- @Path("/foo/bar/{baz}")
- @Override
- public SubResource getBar(@PathParam("baz") String baz)
- {
- return super.getBar(baz);
- }
-
- @GET
- @Path("/convertDate/{isoDate}")
- @Override
- public long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate)
- {
- return super.convertPathParam(isoDate);
- }
-
- @GET
- @Path("/trigger/unsupported")
- @Override
- public String throwException()
- {
- return super.throwException();
- }
-
- @GET
- @Path("/commaSeparated")
- @Produces("text/csv")
- @Override
- public List<String[]> getCommaSeparated()
- {
- return super.getCommaSeparated();
- }
-}
Deleted: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResource.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,93 +0,0 @@
-package org.jboss.seam.example.restbay.resteasy;
-
-import org.jboss.resteasy.annotations.Form;
-
-import javax.ejb.Local;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.Path;
-import javax.ws.rs.GET;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.CookieParam;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Encoded;
-import javax.ws.rs.POST;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.Produces;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-/**
- * @author Christian Bauer
- */
-@Local
-@Path("/statelessEjbTest")
-public interface StatelessEjbTestResource
-{
-
- // TODO: RESTEasy can not inject setter/fields on plain EJBs, see https://jira.jboss.org/jira/browse/RESTEASY-151
- // That's why we have to do it through parameter injection below
- @Context
- public void setUriInfo(UriInfo uriInfo);
-
- @Context
- public void setHeaders(HttpHeaders headers);
-
-
- @GET
- @Path("/echouri")
- String echoUri(@Context UriInfo uriInfo); // TODO
-
- @GET
- @Path("/echoquery")
- String echoQueryParam(@QueryParam("bar") String bar);
-
- @GET
- @Path("/echoheader")
- String echoHeaderParam(@HeaderParam("bar") String bar);
-
- @GET
- @Path("/echocookie")
- String echoCookieParam(@CookieParam("bar") String bar);
-
- @GET
- @Path("/echotwoparams/{1}/{2}")
- String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two);
-
- @GET
- @Path("/echoencoded/{val}")
- String echoEncoded(@PathParam("val") @Encoded String val);
-
- @POST
- @Path("/echoformparams")
- @Consumes("application/x-www-form-urlencoded")
- String echoFormParams(MultivaluedMap<String, String> formMap);
-
- @POST
- @Path("/echoformparams2")
- String echoFormParams2(@FormParam("foo") String[] foo);
-
- @POST
- @Path("/echoformparams3")
- String echoFormParams3(@Form TestForm form);
-
- @Path("/foo/bar/{baz}")
- SubResource getBar(@PathParam("baz") String baz);
-
- @GET
- @Path("/convertDate/{isoDate}")
- long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate);
-
- @GET
- @Path("/trigger/unsupported")
- String throwException();
-
- @GET
- @Path("/commaSeparated")
- @Produces("text/csv")
- List<String[]> getCommaSeparated(@Context HttpHeaders headers); // TODO
-}
Deleted: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResourceBean.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResourceBean.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResourceBean.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,101 +0,0 @@
-package org.jboss.seam.example.restbay.resteasy;
-
-import javax.ejb.Stateless;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.UriInfo;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-/**
- * @author Christian Bauer
- */
-@Stateless
-public class StatelessEjbTestResourceBean extends TestResource implements StatelessEjbTestResource
-{
-
- @javax.annotation.Resource // EJB injection!
- javax.ejb.SessionContext ejbSessionContext;
-
-
- public String echoUri(@Context UriInfo uriInfo)
- {
- assert ejbSessionContext != null; // Ensure this is executed in the EJB container
- setUriInfo(uriInfo);
- return super.echoUri();
- }
-
- @Override
- public String echoQueryParam(String bar)
- {
- return super.echoQueryParam(bar);
- }
-
- @Override
- public String echoHeaderParam(String bar)
- {
- return super.echoHeaderParam(bar);
- }
-
- @Override
- public String echoCookieParam(String bar)
- {
- return super.echoCookieParam(bar);
- }
-
- @Override
- public String echoTwoParams(String one, String two)
- {
- return super.echoTwoParams(one, two);
- }
-
- @Override
- public String echoEncoded(String val)
- {
- return super.echoEncoded(val);
- }
-
- @Override
- public String echoFormParams(MultivaluedMap<String, String> formMap)
- {
- return super.echoFormParams(formMap);
- }
-
- @Override
- public String echoFormParams2(String[] foo)
- {
- return super.echoFormParams2(foo);
- }
-
- @Override
- public String echoFormParams3(TestForm form)
- {
- return super.echoFormParams3(form);
- }
-
- @Override
- public SubResource getBar(String baz)
- {
- return super.getBar(baz);
- }
-
- @Override
- public long convertPathParam(GregorianCalendar isoDate)
- {
- return super.convertPathParam(isoDate);
- }
-
- @Override
- public String throwException()
- {
- return super.throwException();
- }
-
- public List<String[]> getCommaSeparated(@Context HttpHeaders headers)
- {
- setHeaders(headers);
- return super.getCommaSeparated();
- }
-
-}
\ No newline at end of file
Modified: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestComponent.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestComponent.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestComponent.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -20,4 +20,8 @@
csv.add(new String[]{"asdf", "123"});
return csv;
}
+
+ public String getTestString() {
+ return "abc";
+ }
}
Deleted: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestProvider.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestProvider.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestProvider.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,50 +0,0 @@
-package org.jboss.seam.example.restbay.resteasy;
-
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyWriter;
-import javax.ws.rs.ext.Provider;
-import java.lang.reflect.Type;
-import java.lang.annotation.Annotation;
-import java.io.OutputStream;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author Christian Bauer
- */
-@Provider
-@Produces("text/csv")
-public class TestProvider implements MessageBodyWriter
-{
-
- public boolean isWriteable(Class aClass, Type type, Annotation[] annotations, MediaType mediaType)
- {
- return List.class.isAssignableFrom(aClass);
- }
-
- public long getSize(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType)
- {
- return -1;
- }
-
- public void writeTo(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType,
- MultivaluedMap httpHeaders, OutputStream outputStream) throws IOException, WebApplicationException
- {
- List<String[]> lines = (List<String[]>) o;
- StringBuilder cvs = new StringBuilder();
- for (String[] line : lines)
- {
- for (String field : line)
- {
- cvs.append(field).append(",");
- }
- cvs.deleteCharAt(cvs.length() - 1);
- cvs.append("\r\n");
- }
- outputStream.write(cvs.toString().getBytes());
-
- }
-}
Modified: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestResource.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -7,6 +7,10 @@
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.Collections;
+import java.util.Arrays;
/**
* Plain JAX RS root resource, no Seam components/lifecycle.
@@ -109,5 +113,12 @@
return new TestComponent().getCommaSeparated();
}
+ public String[] getCommaSeparatedStrings() {
+ return new String[] {"foo", "bar", "baz"};
+ }
+ public Integer[] getCommaSeparatedIntegers() {
+ return new Integer[] {1, 2, 3};
+ }
+
}
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/applicationcomponent/ApplicationComponentTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/applicationcomponent/ApplicationComponentTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/applicationcomponent/ApplicationComponentTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,194 @@
+package org.jboss.seam.example.restbay.resteasy.applicationcomponent;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.contexts.Contexts;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.CookieParam;
+import javax.ws.rs.Encoded;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MultivaluedMap;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("applicationComponentTestResource")
+@Path("/applicationComponentTest")
+(a)Scope(ScopeType.APPLICATION)
+public class ApplicationComponentTestResource extends TestResource
+{
+ protected final String INSTANCE_CODE_KEY = "applicationComponentTestResource.instanceCode";
+
+ // We want to verify that this is really an application-scoped single instance
+ public ApplicationComponentTestResource()
+ {
+ // Yes, this check is really required, probably because Seam instantiates this twice or something for proxying?! :)
+ if (Contexts.getApplicationContext().get(INSTANCE_CODE_KEY) == null)
+ {
+ Contexts.getApplicationContext().set(INSTANCE_CODE_KEY, hashCode());
+ }
+ }
+
+ protected void assertSingleton()
+ {
+ assert Contexts.getApplicationContext().get(INSTANCE_CODE_KEY).equals(hashCode());
+ }
+
+ @In
+ TestComponent testComponent;
+
+ @GET
+ @Path("/echouri")
+ @Override
+ public String echoUri()
+ {
+ assertSingleton();
+ return super.echoUri();
+ }
+
+ @GET
+ @Path("/echoquery")
+ @Override
+ public String echoQueryParam(@QueryParam("bar") String bar)
+ {
+ assertSingleton();
+ return super.echoQueryParam(bar);
+ }
+
+ @GET
+ @Path("/echoheader")
+ @Override
+ public String echoHeaderParam(@HeaderParam("bar") String bar)
+ {
+ assertSingleton();
+ return super.echoHeaderParam(bar);
+ }
+
+ @GET
+ @Path("/echocookie")
+ @Override
+ public String echoCookieParam(@CookieParam("bar") String bar)
+ {
+ assertSingleton();
+ return super.echoCookieParam(bar);
+ }
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ @Override
+ public String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two)
+ {
+ assertSingleton();
+ return super.echoTwoParams(one, two);
+ }
+
+ @GET
+ @Path("/echoencoded/{val}")
+ @Override
+ public String echoEncoded(@PathParam("val") @Encoded String val)
+ {
+ assertSingleton();
+ return super.echoEncoded(val);
+ }
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ @Override
+ public String echoFormParams(MultivaluedMap<String, String> formMap)
+ {
+ assertSingleton();
+ return super.echoFormParams(formMap);
+ }
+
+ @POST
+ @Path("/echoformparams2")
+ @Override
+ public String echoFormParams2(@FormParam("foo") String[] foo)
+ {
+ assertSingleton();
+ return super.echoFormParams2(foo);
+ }
+
+ @POST
+ @Path("/echoformparams3")
+ @Override
+ public String echoFormParams3(@Form TestForm form)
+ {
+ assertSingleton();
+ return super.echoFormParams3(form);
+ }
+
+ @Path("/foo/bar/{baz}")
+ @Override
+ public SubResource getBar(@PathParam("baz") String baz)
+ {
+ assertSingleton();
+ return super.getBar(baz);
+ }
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ @Override
+ public long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate)
+ {
+ assertSingleton();
+ return super.convertPathParam(isoDate);
+ }
+
+ @GET
+ @Path("/trigger/unsupported")
+ @Override
+ public String throwException()
+ {
+ assertSingleton();
+ return super.throwException();
+ }
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ @Override
+ public List<String[]> getCommaSeparated()
+ {
+ assertSingleton();
+ return testComponent.getCommaSeparated();
+ }
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ @Override
+ public String[] getCommaSeparatedStrings()
+ {
+ assertSingleton();
+ return super.getCommaSeparatedStrings();
+ }
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ @Override
+ public Integer[] getCommaSeparatedIntegers()
+ {
+ assertSingleton();
+ return super.getCommaSeparatedIntegers();
+ }
+}
\ No newline at end of file
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/eventcomponent/EventComponentTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/eventcomponent/EventComponentTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/eventcomponent/EventComponentTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,159 @@
+package org.jboss.seam.example.restbay.resteasy.eventcomponent;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.CookieParam;
+import javax.ws.rs.Encoded;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MultivaluedMap;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("eventComponentTestResource")
+@Path("/eventComponentTest")
+public class EventComponentTestResource extends TestResource
+{
+
+ @In
+ TestComponent testComponent;
+
+ @GET
+ @Path("/echouri")
+ @Override
+ public String echoUri()
+ {
+ return super.echoUri();
+ }
+
+ @GET
+ @Path("/echoquery")
+ @Override
+ public String echoQueryParam(@QueryParam("bar") String bar)
+ {
+ return super.echoQueryParam(bar);
+ }
+
+ @GET
+ @Path("/echoheader")
+ @Override
+ public String echoHeaderParam(@HeaderParam("bar") String bar)
+ {
+ return super.echoHeaderParam(bar);
+ }
+
+ @GET
+ @Path("/echocookie")
+ @Override
+ public String echoCookieParam(@CookieParam("bar") String bar)
+ {
+ return super.echoCookieParam(bar);
+ }
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ @Override
+ public String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two)
+ {
+ return super.echoTwoParams(one, two);
+ }
+
+ @GET
+ @Path("/echoencoded/{val}")
+ @Override
+ public String echoEncoded(@PathParam("val") @Encoded String val)
+ {
+ return super.echoEncoded(val);
+ }
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ @Override
+ public String echoFormParams(MultivaluedMap<String, String> formMap)
+ {
+ return super.echoFormParams(formMap);
+ }
+
+ @POST
+ @Path("/echoformparams2")
+ @Override
+ public String echoFormParams2(@FormParam("foo") String[] foo)
+ {
+ return super.echoFormParams2(foo);
+ }
+
+ @POST
+ @Path("/echoformparams3")
+ @Override
+ public String echoFormParams3(@Form TestForm form)
+ {
+ return super.echoFormParams3(form);
+ }
+
+ @Path("/foo/bar/{baz}")
+ @Override
+ public SubResource getBar(@PathParam("baz") String baz)
+ {
+ return super.getBar(baz);
+ }
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ @Override
+ public long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate)
+ {
+ return super.convertPathParam(isoDate);
+ }
+
+ @GET
+ @Path("/trigger/unsupported")
+ @Override
+ public String throwException()
+ {
+ return super.throwException();
+ }
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ @Override
+ public List<String[]> getCommaSeparated()
+ {
+ return testComponent.getCommaSeparated();
+ }
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ @Override
+ public String[] getCommaSeparatedStrings()
+ {
+ return super.getCommaSeparatedStrings();
+ }
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ @Override
+ public Integer[] getCommaSeparatedIntegers()
+ {
+ return super.getCommaSeparatedIntegers();
+ }
+}
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/InterfaceApplicationComponentTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/InterfaceApplicationComponentTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/InterfaceApplicationComponentTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,101 @@
+package org.jboss.seam.example.restbay.resteasy.interfaceapplicationcomponent;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.CookieParam;
+import javax.ws.rs.Encoded;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.UriInfo;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Path("/interfaceApplicationComponentTest")
+public interface InterfaceApplicationComponentTestResource
+{
+
+ @Context
+ public void setUriInfo(UriInfo uriInfo);
+
+ @Context
+ public void setHeaders(HttpHeaders headers);
+
+ @GET
+ @Path("/echouri")
+ String echoUri();
+
+ @GET
+ @Path("/echoquery")
+ String echoQueryParam(@QueryParam("bar") String bar);
+
+ @GET
+ @Path("/echoheader")
+ String echoHeaderParam(@HeaderParam("bar") String bar);
+
+ @GET
+ @Path("/echocookie")
+ String echoCookieParam(@CookieParam("bar") String bar);
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two);
+
+ @GET
+ @Path("/echoencoded/{val}")
+ String echoEncoded(@PathParam("val") @Encoded String val);
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ String echoFormParams(MultivaluedMap<String, String> formMap);
+
+ @POST
+ @Path("/echoformparams2")
+ String echoFormParams2(@FormParam("foo") String[] foo);
+
+ @POST
+ @Path("/echoformparams3")
+ String echoFormParams3(@Form TestForm form);
+
+ @Path("/foo/bar/{baz}")
+ SubResource getBar(@PathParam("baz") String baz);
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate);
+
+ @GET
+ @Path("/trigger/unsupported")
+ String throwException();
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ List<String[]> getCommaSeparated();
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ String[] getCommaSeparatedStrings();
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ Integer[] getCommaSeparatedIntegers();
+
+}
\ No newline at end of file
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/InterfaceApplicationComponentTestResourceBean.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/InterfaceApplicationComponentTestResourceBean.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceapplicationcomponent/InterfaceApplicationComponentTestResourceBean.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.restbay.resteasy.interfaceapplicationcomponent;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("interfaceApplicationComponentTestResource")
+(a)Scope(ScopeType.EVENT)
+public class InterfaceApplicationComponentTestResourceBean extends TestResource implements InterfaceApplicationComponentTestResource
+{
+
+ @In
+ TestComponent testComponent;
+
+ @Override
+ public List<String[]> getCommaSeparated()
+ {
+ assert headers.getAcceptableMediaTypes().size() == 2;
+ assert headers.getAcceptableMediaTypes().get(0).toString().equals("text/plain");
+ assert headers.getAcceptableMediaTypes().get(1).toString().equals("text/csv");
+ return testComponent.getCommaSeparated();
+ }
+
+}
\ No newline at end of file
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/InterfaceEventComponentTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/InterfaceEventComponentTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/InterfaceEventComponentTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,101 @@
+package org.jboss.seam.example.restbay.resteasy.interfaceeventcomponent;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.CookieParam;
+import javax.ws.rs.Encoded;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.UriInfo;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Path("/interfaceEventComponentTest")
+public interface InterfaceEventComponentTestResource
+{
+
+ @Context
+ public void setUriInfo(UriInfo uriInfo);
+
+ @Context
+ public void setHeaders(HttpHeaders headers);
+
+ @GET
+ @Path("/echouri")
+ String echoUri();
+
+ @GET
+ @Path("/echoquery")
+ String echoQueryParam(@QueryParam("bar") String bar);
+
+ @GET
+ @Path("/echoheader")
+ String echoHeaderParam(@HeaderParam("bar") String bar);
+
+ @GET
+ @Path("/echocookie")
+ String echoCookieParam(@CookieParam("bar") String bar);
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two);
+
+ @GET
+ @Path("/echoencoded/{val}")
+ String echoEncoded(@PathParam("val") @Encoded String val);
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ String echoFormParams(MultivaluedMap<String, String> formMap);
+
+ @POST
+ @Path("/echoformparams2")
+ String echoFormParams2(@FormParam("foo") String[] foo);
+
+ @POST
+ @Path("/echoformparams3")
+ String echoFormParams3(@Form TestForm form);
+
+ @Path("/foo/bar/{baz}")
+ SubResource getBar(@PathParam("baz") String baz);
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate);
+
+ @GET
+ @Path("/trigger/unsupported")
+ String throwException();
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ List<String[]> getCommaSeparated();
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ String[] getCommaSeparatedStrings();
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ Integer[] getCommaSeparatedIntegers();
+
+}
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/InterfaceEventComponentTestResourceBean.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/InterfaceEventComponentTestResourceBean.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfaceeventcomponent/InterfaceEventComponentTestResourceBean.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.restbay.resteasy.interfaceeventcomponent;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("interfaceEventComponentTestResource")
+(a)Scope(ScopeType.EVENT)
+public class InterfaceEventComponentTestResourceBean extends TestResource implements InterfaceEventComponentTestResource
+{
+
+ @In
+ TestComponent testComponent;
+
+ @Override
+ public List<String[]> getCommaSeparated()
+ {
+ assert headers.getAcceptableMediaTypes().size() == 2;
+ assert headers.getAcceptableMediaTypes().get(0).toString().equals("text/plain");
+ assert headers.getAcceptableMediaTypes().get(1).toString().equals("text/csv");
+ return testComponent.getCommaSeparated();
+ }
+
+}
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/InterfaceStatelessComponentTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/InterfaceStatelessComponentTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/InterfaceStatelessComponentTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,101 @@
+package org.jboss.seam.example.restbay.resteasy.interfacestatelesscomponent;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.CookieParam;
+import javax.ws.rs.Encoded;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.UriInfo;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Path("/interfaceStatelessComponentTest")
+public interface InterfaceStatelessComponentTestResource
+{
+
+ @Context
+ public void setUriInfo(UriInfo uriInfo);
+
+ @Context
+ public void setHeaders(HttpHeaders headers);
+
+ @GET
+ @Path("/echouri")
+ String echoUri();
+
+ @GET
+ @Path("/echoquery")
+ String echoQueryParam(@QueryParam("bar") String bar);
+
+ @GET
+ @Path("/echoheader")
+ String echoHeaderParam(@HeaderParam("bar") String bar);
+
+ @GET
+ @Path("/echocookie")
+ String echoCookieParam(@CookieParam("bar") String bar);
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two);
+
+ @GET
+ @Path("/echoencoded/{val}")
+ String echoEncoded(@PathParam("val") @Encoded String val);
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ String echoFormParams(MultivaluedMap<String, String> formMap);
+
+ @POST
+ @Path("/echoformparams2")
+ String echoFormParams2(@FormParam("foo") String[] foo);
+
+ @POST
+ @Path("/echoformparams3")
+ String echoFormParams3(@Form TestForm form);
+
+ @Path("/foo/bar/{baz}")
+ SubResource getBar(@PathParam("baz") String baz);
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate);
+
+ @GET
+ @Path("/trigger/unsupported")
+ String throwException();
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ List<String[]> getCommaSeparated();
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ String[] getCommaSeparatedStrings();
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ Integer[] getCommaSeparatedIntegers();
+
+}
\ No newline at end of file
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/InterfaceStatelessComponentTestResourceBean.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/InterfaceStatelessComponentTestResourceBean.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/interfacestatelesscomponent/InterfaceStatelessComponentTestResourceBean.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,153 @@
+package org.jboss.seam.example.restbay.resteasy.interfacestatelesscomponent;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+
+import javax.ws.rs.core.MultivaluedMap;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("interfaceStatelessComponentTestResource")
+(a)Scope(ScopeType.EVENT)
+public class InterfaceStatelessComponentTestResourceBean extends TestResource implements InterfaceStatelessComponentTestResource
+{
+
+ protected final String INSTANCE_CODE_KEY = "interfaceStatelessComponentTestResource.instanceCode";
+
+ // We want to verify that this is really stateless (Seam doesn't pool POJO instances, so that should work)
+ public InterfaceStatelessComponentTestResourceBean()
+ {
+ Integer instanceCode;
+ if ((instanceCode = (Integer)Contexts.getApplicationContext().get(INSTANCE_CODE_KEY)) != null)
+ {
+ assert !instanceCode.equals(hashCode());
+ }
+ Contexts.getApplicationContext().set(INSTANCE_CODE_KEY, hashCode());
+ }
+
+ protected void assertStateless()
+ {
+ assert !Contexts.getApplicationContext().get(INSTANCE_CODE_KEY).equals(hashCode());
+ }
+
+ @In
+ TestComponent testComponent;
+
+ @Override
+ public String echoUri()
+ {
+ assertStateless();
+ return super.echoUri();
+ }
+
+ @Override
+ public String echoQueryParam(String bar)
+ {
+ assertStateless();
+ return super.echoQueryParam(bar);
+ }
+
+ @Override
+ public String echoHeaderParam(String bar)
+ {
+ assertStateless();
+ return super.echoHeaderParam(bar);
+ }
+
+ @Override
+ public String echoCookieParam(String bar)
+ {
+ assertStateless();
+ return super.echoCookieParam(bar);
+ }
+
+ @Override
+ public String echoTwoParams(String one, String two)
+ {
+ assertStateless();
+ return super.echoTwoParams(one, two);
+ }
+
+ @Override
+ public String echoEncoded(String val)
+ {
+ assertStateless();
+ return super.echoEncoded(val);
+ }
+
+ @Override
+ public String echoFormParams(MultivaluedMap<String, String> formMap)
+ {
+ assertStateless();
+ return super.echoFormParams(formMap);
+ }
+
+ @Override
+ public String echoFormParams2(String[] foo)
+ {
+ assertStateless();
+ return super.echoFormParams2(foo);
+ }
+
+ @Override
+ public String echoFormParams3(TestForm form)
+ {
+ assertStateless();
+ return super.echoFormParams3(form);
+ }
+
+ @Override
+ public SubResource getBar(String baz)
+ {
+ assertStateless();
+ return super.getBar(baz);
+ }
+
+ @Override
+ public long convertPathParam(GregorianCalendar isoDate)
+ {
+ assertStateless();
+ return super.convertPathParam(isoDate);
+ }
+
+ @Override
+ public String throwException()
+ {
+ assertStateless();
+ return super.throwException();
+ }
+
+ @Override
+ public List<String[]> getCommaSeparated()
+ {
+ assertStateless();
+ assert headers.getAcceptableMediaTypes().size() == 2;
+ assert headers.getAcceptableMediaTypes().get(0).toString().equals("text/plain");
+ assert headers.getAcceptableMediaTypes().get(1).toString().equals("text/csv");
+ return testComponent.getCommaSeparated();
+ }
+
+ @Override
+ public String[] getCommaSeparatedStrings()
+ {
+ assertStateless();
+ return super.getCommaSeparatedStrings();
+ }
+
+ @Override
+ public Integer[] getCommaSeparatedIntegers()
+ {
+ assertStateless();
+ return super.getCommaSeparatedIntegers();
+ }
+}
\ No newline at end of file
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/plain/PlainTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/plain/PlainTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/plain/PlainTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,142 @@
+package org.jboss.seam.example.restbay.resteasy.plain;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MultivaluedMap;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Path("/plainTest")
+public class PlainTestResource extends TestResource
+{
+
+ @GET
+ @Path("/echouri")
+ @Override
+ public String echoUri()
+ {
+ return super.echoUri();
+ }
+
+ @GET
+ @Path("/echoquery")
+ @Override
+ public String echoQueryParam(@QueryParam("bar") String bar)
+ {
+ return super.echoQueryParam(bar);
+ }
+
+ @GET
+ @Path("/echoheader")
+ @Override
+ public String echoHeaderParam(@HeaderParam("bar") String bar)
+ {
+ return super.echoHeaderParam(bar);
+ }
+
+ @GET
+ @Path("/echocookie")
+ @Override
+ public String echoCookieParam(@CookieParam("bar") String bar)
+ {
+ return super.echoCookieParam(bar);
+ }
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ @Override
+ public String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two)
+ {
+ return super.echoTwoParams(one, two);
+ }
+
+ @GET
+ @Path("/echoencoded/{val}")
+ @Override
+ public String echoEncoded(@PathParam("val") @Encoded String val)
+ {
+ return super.echoEncoded(val);
+ }
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ @Override
+ public String echoFormParams(MultivaluedMap<String, String> formMap)
+ {
+ return super.echoFormParams(formMap);
+ }
+
+ @POST
+ @Path("/echoformparams2")
+ @Override
+ public String echoFormParams2(@FormParam("foo") String[] foo)
+ {
+ return super.echoFormParams2(foo);
+ }
+
+ @POST
+ @Path("/echoformparams3")
+ @Override
+ public String echoFormParams3(@Form TestForm form)
+ {
+ return super.echoFormParams3(form);
+ }
+
+ @Path("/foo/bar/{baz}")
+ @Override
+ public SubResource getBar(@PathParam("baz") String baz)
+ {
+ return super.getBar(baz);
+ }
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ @Override
+ public long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate)
+ {
+ return super.convertPathParam(isoDate);
+ }
+
+ @GET
+ @Path("/trigger/unsupported")
+ @Override
+ public String throwException()
+ {
+ return super.throwException();
+ }
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ @Override
+ public List<String[]> getCommaSeparated()
+ {
+ return super.getCommaSeparated();
+ }
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ @Override
+ public String[] getCommaSeparatedStrings()
+ {
+ return super.getCommaSeparatedStrings();
+ }
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ @Override
+ public Integer[] getCommaSeparatedIntegers()
+ {
+ return super.getCommaSeparatedIntegers();
+ }
+}
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/ApplicationComponentTestProvider.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/ApplicationComponentTestProvider.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/ApplicationComponentTestProvider.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,63 @@
+package org.jboss.seam.example.restbay.resteasy.provider;
+
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.ScopeType;
+
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("applicationComponentTestProvider")
+(a)Scope(ScopeType.APPLICATION)
+@Provider
+@Produces("text/plain")
+public class ApplicationComponentTestProvider implements MessageBodyWriter
+{
+
+ @In
+ TestComponent testComponent;
+
+ public boolean isWriteable(Class aClass, Type type, Annotation[] annotations, MediaType mediaType)
+ {
+ return aClass.isArray() && (aClass.getComponentType().equals(String.class)) ;
+ }
+
+ public long getSize(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType)
+ {
+ return -1;
+ }
+
+ public void writeTo(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType,
+ MultivaluedMap httpHeaders, OutputStream outputStream) throws IOException, WebApplicationException
+ {
+ String[] strings = (String[])o;
+
+ StringBuilder line = new StringBuilder();
+
+ line.append(testComponent.getTestString()).append(",");
+
+ for (String string : strings)
+ {
+ line.append(string).append(",");
+ }
+ if (line.length()>0) {
+ line.deleteCharAt(line.length() - 1);
+ }
+
+ outputStream.write(line.toString().getBytes());
+
+ }
+}
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/InterfaceApplicationComponenTestProviderBean.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/InterfaceApplicationComponenTestProviderBean.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/InterfaceApplicationComponenTestProviderBean.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,58 @@
+package org.jboss.seam.example.restbay.resteasy.provider;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
+
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.MediaType;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("interfaceApplicationComponentTestProvider")
+(a)Scope(ScopeType.APPLICATION)
+public class InterfaceApplicationComponenTestProviderBean implements InterfaceApplicationComponentTestProvider
+{
+
+ @In
+ TestComponent testComponent;
+
+ public boolean isWriteable(Class aClass, Type type, Annotation[] annotations, MediaType mediaType)
+ {
+ return aClass.isArray() && (aClass.getComponentType().equals(Integer.class)) ;
+ }
+
+ public long getSize(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType)
+ {
+ return -1;
+ }
+
+ public void writeTo(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType,
+ MultivaluedMap httpHeaders, OutputStream outputStream) throws IOException, WebApplicationException
+ {
+ Integer[] integers = (Integer[])o;
+
+ StringBuilder line = new StringBuilder();
+
+ line.append(testComponent.getTestString()).append(",");
+
+ for (Integer integer : integers)
+ {
+ line.append(integer).append(",");
+ }
+ if (line.length()>0) {
+ line.deleteCharAt(line.length() - 1);
+ }
+
+ outputStream.write(line.toString().getBytes());
+
+ }
+}
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/InterfaceApplicationComponentTestProvider.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/InterfaceApplicationComponentTestProvider.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/InterfaceApplicationComponentTestProvider.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,15 @@
+package org.jboss.seam.example.restbay.resteasy.provider;
+
+import javax.ws.rs.Produces;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+
+/**
+ * @author Christian Bauer
+ */
+@Provider
+@Produces("text/plain")
+public interface InterfaceApplicationComponentTestProvider extends MessageBodyWriter
+{
+
+}
\ No newline at end of file
Copied: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/PlainResteasyStringConverterProvider.java (from rev 10932, branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/CalendarConverter.java)
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/PlainResteasyStringConverterProvider.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/PlainResteasyStringConverterProvider.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,42 @@
+package org.jboss.seam.example.restbay.resteasy.provider;
+
+import org.jboss.resteasy.spi.StringConverter;
+
+import javax.ws.rs.ext.Provider;
+import java.util.GregorianCalendar;
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
+
+/**
+ * Converts QueryParam etc. strings to GregorianCalendar if they are in ISO date format
+ *
+ * @author Christian Bauer
+ */
+@Provider
+public class PlainResteasyStringConverterProvider implements StringConverter<GregorianCalendar>
+{
+ public static final String ISO_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ";
+
+ public GregorianCalendar fromString(String s)
+ {
+ SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT);
+ GregorianCalendar cal = new GregorianCalendar();
+ try
+ {
+ cal.setTime(sdf.parse(s));
+ }
+ catch (ParseException e)
+ {
+ throw new RuntimeException(e);
+ }
+ return cal;
+
+ }
+
+ // TODO: RESTEasy doesn't seem to use that at all
+ public String toString(GregorianCalendar gregorianCalendar)
+ {
+ SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT);
+ return sdf.format(gregorianCalendar.getTime());
+ }
+}
Copied: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/PlainTestProvider.java (from rev 10932, branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/TestProvider.java)
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/PlainTestProvider.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/provider/PlainTestProvider.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,50 @@
+package org.jboss.seam.example.restbay.resteasy.provider;
+
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Provider
+@Produces("text/csv")
+public class PlainTestProvider implements MessageBodyWriter
+{
+
+ public boolean isWriteable(Class aClass, Type type, Annotation[] annotations, MediaType mediaType)
+ {
+ return List.class.isAssignableFrom(aClass);
+ }
+
+ public long getSize(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType)
+ {
+ return -1;
+ }
+
+ public void writeTo(Object o, Class aClass, Type type, Annotation[] annotations, MediaType mediaType,
+ MultivaluedMap httpHeaders, OutputStream outputStream) throws IOException, WebApplicationException
+ {
+ List<String[]> lines = (List<String[]>) o;
+ StringBuilder cvs = new StringBuilder();
+ for (String[] line : lines)
+ {
+ for (String field : line)
+ {
+ cvs.append(field).append(",");
+ }
+ cvs.deleteCharAt(cvs.length() - 1);
+ cvs.append("\r\n");
+ }
+ outputStream.write(cvs.toString().getBytes());
+
+ }
+}
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelesscomponent/StatelessComponentTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelesscomponent/StatelessComponentTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelesscomponent/StatelessComponentTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,199 @@
+package org.jboss.seam.example.restbay.resteasy.statelesscomponent;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.contexts.Contexts;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.CookieParam;
+import javax.ws.rs.Encoded;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MultivaluedMap;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("statelessComponentTestResource")
+@Path("/statelessComponentTest")
+(a)Scope(ScopeType.STATELESS)
+public class StatelessComponentTestResource extends TestResource
+{
+
+ protected final String INSTANCE_CODE_KEY = "statelessComponentTestResource.instanceCode";
+
+ // We want to verify that this is really stateless (Seam doesn't pool POJO instances, so that should work)
+ public StatelessComponentTestResource()
+ {
+ Integer instanceCode;
+ if ((instanceCode = (Integer)Contexts.getApplicationContext().get(INSTANCE_CODE_KEY)) != null)
+ {
+ assert !instanceCode.equals(hashCode());
+ }
+ Contexts.getApplicationContext().set(INSTANCE_CODE_KEY, hashCode());
+ }
+
+ protected void assertStateless()
+ {
+ assert !Contexts.getApplicationContext().get(INSTANCE_CODE_KEY).equals(hashCode());
+ }
+
+ @In
+ TestComponent testComponent;
+
+ @GET
+ @Path("/echouri")
+ @Override
+ public String echoUri()
+ {
+ assertStateless();
+ return super.echoUri();
+ }
+
+ @GET
+ @Path("/echoquery")
+ @Override
+ public String echoQueryParam(@QueryParam("bar") String bar)
+ {
+ assertStateless();
+ return super.echoQueryParam(bar);
+ }
+
+ @GET
+ @Path("/echoheader")
+ @Override
+ public String echoHeaderParam(@HeaderParam("bar") String bar)
+ {
+ assertStateless();
+ return super.echoHeaderParam(bar);
+ }
+
+ @GET
+ @Path("/echocookie")
+ @Override
+ public String echoCookieParam(@CookieParam("bar") String bar)
+ {
+ assertStateless();
+ return super.echoCookieParam(bar);
+ }
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ @Override
+ public String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two)
+ {
+ assertStateless();
+ return super.echoTwoParams(one, two);
+ }
+
+ @GET
+ @Path("/echoencoded/{val}")
+ @Override
+ public String echoEncoded(@PathParam("val") @Encoded String val)
+ {
+ assertStateless();
+ return super.echoEncoded(val);
+ }
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ @Override
+ public String echoFormParams(MultivaluedMap<String, String> formMap)
+ {
+ assertStateless();
+ return super.echoFormParams(formMap);
+ }
+
+ @POST
+ @Path("/echoformparams2")
+ @Override
+ public String echoFormParams2(@FormParam("foo") String[] foo)
+ {
+ assertStateless();
+ return super.echoFormParams2(foo);
+ }
+
+ @POST
+ @Path("/echoformparams3")
+ @Override
+ public String echoFormParams3(@Form TestForm form)
+ {
+ assertStateless();
+ return super.echoFormParams3(form);
+ }
+
+ @Path("/foo/bar/{baz}")
+ @Override
+ public SubResource getBar(@PathParam("baz") String baz)
+ {
+ assertStateless();
+ return super.getBar(baz);
+ }
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ @Override
+ public long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate)
+ {
+ assertStateless();
+ return super.convertPathParam(isoDate);
+ }
+
+ @GET
+ @Path("/trigger/unsupported")
+ @Override
+ public String throwException()
+ {
+ assertStateless();
+ return super.throwException();
+ }
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ @Override
+ public List<String[]> getCommaSeparated()
+ {
+ assertStateless();
+ assert headers.getAcceptableMediaTypes().size() == 2;
+ assert headers.getAcceptableMediaTypes().get(0).toString().equals("text/plain");
+ assert headers.getAcceptableMediaTypes().get(1).toString().equals("text/csv");
+ return testComponent.getCommaSeparated();
+ }
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ @Override
+ public String[] getCommaSeparatedStrings()
+ {
+ assertStateless();
+ return super.getCommaSeparatedStrings();
+ }
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ @Override
+ public Integer[] getCommaSeparatedIntegers()
+ {
+ assertStateless();
+ return super.getCommaSeparatedIntegers();
+ }
+}
\ No newline at end of file
Copied: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/StatelessEjbTestResource.java (from rev 10932, branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResource.java)
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/StatelessEjbTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/StatelessEjbTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,106 @@
+package org.jboss.seam.example.restbay.resteasy.statelessejb;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+
+import javax.ejb.Local;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.UriInfo;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.Path;
+import javax.ws.rs.GET;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.CookieParam;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Encoded;
+import javax.ws.rs.POST;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.Produces;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Local
+@Path("/statelessEjbTest")
+public interface StatelessEjbTestResource
+{
+
+ // TODO: RESTEasy can not inject setter/fields on plain EJBs, see https://jira.jboss.org/jira/browse/RESTEASY-151
+ // That's why we have to do it through parameter injection below
+ @Context
+ public void setUriInfo(UriInfo uriInfo);
+
+ @Context
+ public void setHeaders(HttpHeaders headers);
+
+
+ @GET
+ @Path("/echouri")
+ String echoUri(@Context UriInfo uriInfo); // TODO
+
+ @GET
+ @Path("/echoquery")
+ String echoQueryParam(@QueryParam("bar") String bar);
+
+ @GET
+ @Path("/echoheader")
+ String echoHeaderParam(@HeaderParam("bar") String bar);
+
+ @GET
+ @Path("/echocookie")
+ String echoCookieParam(@CookieParam("bar") String bar);
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two);
+
+ @GET
+ @Path("/echoencoded/{val}")
+ String echoEncoded(@PathParam("val") @Encoded String val);
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ String echoFormParams(MultivaluedMap<String, String> formMap);
+
+ @POST
+ @Path("/echoformparams2")
+ String echoFormParams2(@FormParam("foo") String[] foo);
+
+ @POST
+ @Path("/echoformparams3")
+ String echoFormParams3(@Form TestForm form);
+
+ @Path("/foo/bar/{baz}")
+ SubResource getBar(@PathParam("baz") String baz);
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate);
+
+ @GET
+ @Path("/trigger/unsupported")
+ String throwException();
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ List<String[]> getCommaSeparated(@Context HttpHeaders headers); // TODO
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ String[] getCommaSeparatedStrings();
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ Integer[] getCommaSeparatedIntegers();
+
+}
Copied: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/StatelessEjbTestResourceBean.java (from rev 10932, branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResourceBean.java)
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/StatelessEjbTestResourceBean.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejb/StatelessEjbTestResourceBean.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,35 @@
+package org.jboss.seam.example.restbay.resteasy.statelessejb;
+
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+
+import javax.ejb.Stateless;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.UriInfo;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Stateless
+public class StatelessEjbTestResourceBean extends TestResource implements StatelessEjbTestResource
+{
+
+ @javax.annotation.Resource // EJB injection!
+ javax.ejb.SessionContext ejbSessionContext;
+
+
+ public String echoUri(@Context UriInfo uriInfo)
+ {
+ assert ejbSessionContext != null; // Ensure this is executed in the EJB container
+ setUriInfo(uriInfo);
+ return super.echoUri();
+ }
+
+ public List<String[]> getCommaSeparated(@Context HttpHeaders headers)
+ {
+ setHeaders(headers);
+ return super.getCommaSeparated();
+ }
+
+}
\ No newline at end of file
Added: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResource.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,105 @@
+package org.jboss.seam.example.restbay.resteasy.statelessejbcomponent;
+
+import org.jboss.resteasy.annotations.Form;
+import org.jboss.seam.example.restbay.resteasy.TestForm;
+import org.jboss.seam.example.restbay.resteasy.SubResource;
+
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.GET;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Encoded;
+import javax.ws.rs.CookieParam;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
+import javax.ejb.Local;
+import java.util.List;
+import java.util.GregorianCalendar;
+
+/**
+ * @author Christian Bauer
+ */
+@Local
+@Path("/statelessEjbComponentTest")
+public interface StatelessEjbComponentTestResource
+{
+ // TODO: RESTEasy can not inject setter/fields on plain EJBs, see https://jira.jboss.org/jira/browse/RESTEASY-151
+ // That's why we have to do it through parameter injection below
+ @Context
+ public void setUriInfo(UriInfo uriInfo);
+
+ @Context
+ public void setHeaders(HttpHeaders headers);
+
+
+ @GET
+ @Path("/echouri")
+ String echoUri(@Context UriInfo uriInfo); // TODO
+
+ @GET
+ @Path("/echoquery")
+ String echoQueryParam(@QueryParam("bar") String bar);
+
+ @GET
+ @Path("/echoheader")
+ String echoHeaderParam(@HeaderParam("bar") String bar);
+
+ @GET
+ @Path("/echocookie")
+ String echoCookieParam(@CookieParam("bar") String bar);
+
+ @GET
+ @Path("/echotwoparams/{1}/{2}")
+ String echoTwoParams(@PathParam("1") String one, @PathParam("2") String two);
+
+ @GET
+ @Path("/echoencoded/{val}")
+ String echoEncoded(@PathParam("val") @Encoded String val);
+
+ @POST
+ @Path("/echoformparams")
+ @Consumes("application/x-www-form-urlencoded")
+ String echoFormParams(MultivaluedMap<String, String> formMap);
+
+ @POST
+ @Path("/echoformparams2")
+ String echoFormParams2(@FormParam("foo") String[] foo);
+
+ @POST
+ @Path("/echoformparams3")
+ String echoFormParams3(@Form TestForm form);
+
+ @Path("/foo/bar/{baz}")
+ SubResource getBar(@PathParam("baz") String baz);
+
+ @GET
+ @Path("/convertDate/{isoDate}")
+ long convertPathParam(@PathParam("isoDate") GregorianCalendar isoDate);
+
+ @GET
+ @Path("/trigger/unsupported")
+ String throwException();
+
+ @GET
+ @Path("/commaSeparated")
+ @Produces("text/csv")
+ List<String[]> getCommaSeparated(@Context HttpHeaders headers); // TODO
+
+ @GET
+ @Path("/commaSeparatedStrings")
+ @Produces("text/plain")
+ String[] getCommaSeparatedStrings();
+
+ @GET
+ @Path("/commaSeparatedIntegers")
+ @Produces("text/plain")
+ Integer[] getCommaSeparatedIntegers();
+
+}
Copied: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResourceBean.java (from rev 10628, branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/StatelessEjbTestResourceBean.java)
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResourceBean.java (rev 0)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResourceBean.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -0,0 +1,45 @@
+package org.jboss.seam.example.restbay.resteasy.statelessejbcomponent;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.example.restbay.resteasy.TestComponent;
+import org.jboss.seam.example.restbay.resteasy.TestResource;
+
+import javax.ejb.Stateless;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.UriInfo;
+import java.util.List;
+
+/**
+ * @author Christian Bauer
+ */
+@Name("statelessEjbComponentTestResource")
+(a)Scope(ScopeType.STATELESS)
+@Stateless
+public class StatelessEjbComponentTestResourceBean extends TestResource implements StatelessEjbComponentTestResource
+{
+
+ @javax.annotation.Resource // EJB injection!
+ javax.ejb.SessionContext ejbSessionContext;
+
+ @In
+ TestComponent testComponent;
+
+ public String echoUri(@Context UriInfo uriInfo)
+ {
+ assert ejbSessionContext != null; // Ensure this is executed in the EJB container
+ setUriInfo(uriInfo);
+ return super.echoUri();
+ }
+
+ public List<String[]> getCommaSeparated(@Context HttpHeaders headers)
+ {
+ setHeaders(headers);
+ super.getCommaSeparated(); // Ignore return, just to run the assertions
+ return testComponent.getCommaSeparated();
+ }
+
+}
\ No newline at end of file
Property changes on: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/resteasy/statelessejbcomponent/StatelessEjbComponentTestResourceBean.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/BasicServiceTest.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/BasicServiceTest.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/BasicServiceTest.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -12,6 +12,58 @@
import java.util.Map;
import java.util.HashMap;
+/**
+ * <p>
+ * This is the test matrix for resources:
+ * </p>
+ *
+ * <pre>
+ * | EVENT | CONVERSATION | SESSION | APPLICATION | STATELESS
+ * ---------------------------------------------------------------------------------------------
+ * Plain JAX-RS Resource | OK | - | - | - | -
+ * ---------------------------------------------------------------------------------------------
+ * POJO Seam Component Resource | OK | ? | ? | OK | OK
+ * ---------------------------------------------------------------------------------------------
+ * POJO interface-annotated Component | OK | ? | ? | OK | OK
+ * ---------------------------------------------------------------------------------------------
+ * EJB Plain SLSB Resource | - | - | - | - | OK
+ * ---------------------------------------------------------------------------------------------
+ * EJB SLSB Seam Component Resource | - | - | - | - | OK
+ * ---------------------------------------------------------------------------------------------
+ * EJB SFSB Seam Component Resource | ? | ? | ? | ? | -
+ * ---------------------------------------------------------------------------------------------
+ * </pre>
+ *
+ * <p>
+ * Note that all EJB resources are always @Path annotated on their interface, not the implementation class.
+ * </p>
+ *
+ * <p>
+ * This is the test matrix for providers:
+ * </p>
+ *
+ * <pre>
+ * | EVENT | CONVERSATION | SESSION | APPLICATION | STATELESS
+ * ---------------------------------------------------------------------------------------------
+ * Plain JAX-RS Provider | - | - | - | - | OK
+ * ---------------------------------------------------------------------------------------------
+ * RESTEasy StringConverter Provider | - | - | - | - | OK
+ * ---------------------------------------------------------------------------------------------
+ * RESTEasy StringConverter Component | ? | - | - | ? | ?
+ * ---------------------------------------------------------------------------------------------
+ * POJO Seam Component Provider | ? | - | - | OK | ?
+ * ---------------------------------------------------------------------------------------------
+ * POJO interface-annotated Component | ? | - | - | OK | ?
+ * ---------------------------------------------------------------------------------------------
+ * EJB Plain SLSB Provider | - | - | - | - | ?
+ * ---------------------------------------------------------------------------------------------
+ * EJB SLSB Seam Component Provider | - | - | - | - | ?
+ * ---------------------------------------------------------------------------------------------
+ * EJB SFSB Seam Component Resource | ? | - | - | ? | -
+ * ---------------------------------------------------------------------------------------------
+ * </pre>
+ *
+ */
public class BasicServiceTest extends ResourceSeamTest
{
@@ -29,8 +81,17 @@
{
return new String[][] {
{ "/restv1/plainTest" },
+
{ "/restv1/eventComponentTest" },
- { "/restv1/statelessEjbTest" }
+ { "/restv1/applicationComponentTest" },
+ { "/restv1/statelessComponentTest" },
+
+ { "/restv1/interfaceEventComponentTest" },
+ { "/restv1/interfaceApplicationComponentTest" },
+ { "/restv1/interfaceStatelessComponentTest" },
+
+ { "/restv1/statelessEjbTest" },
+ { "/restv1/statelessEjbComponentTest" }
};
}
@@ -270,5 +331,41 @@
}.run();
+ new ResourceRequest(Method.GET, resourcePath + "/commaSeparatedStrings")
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ request.addHeader("Accept", "text/plain");
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ assert response.getStatus() == 200;
+ assert response.getContentAsString().equals("abc,foo,bar,baz");
+ }
+
+ }.run();
+
+ new ResourceRequest(Method.GET, resourcePath + "/commaSeparatedIntegers")
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ request.addHeader("Accept", "text/plain");
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ assert response.getStatus() == 200;
+ assert response.getContentAsString().equals("abc,1,2,3");
+ }
+
+ }.run();
+
}
}
Modified: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/SecurityTest.java
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/SecurityTest.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/SecurityTest.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -8,7 +8,8 @@
import org.testng.annotations.Test;
/**
- * This class tests RESTEasy integration with together with Seam Security
+ * This class tests RESTEasy integration together with Seam Security.
+ *
* @author Jozef Hartinger
*
*/
Modified: branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/testng.xml
===================================================================
--- branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/testng.xml 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/examples/restbay/src/org/jboss/seam/example/restbay/test/testng.xml 2009-05-25 14:19:52 UTC (rev 10967)
@@ -13,19 +13,19 @@
<class name="org.jboss.seam.example.restbay.test.AuctionServiceTest"/>
</classes>
</test>
-
+
<test name="RestBay: ResourceHome">
<classes>
<class name="org.jboss.seam.example.restbay.test.ResourceHomeTest"/>
</classes>
</test>
-
+
<test name="RestBay: ResourceQuery">
<classes>
<class name="org.jboss.seam.example.restbay.test.ResourceQueryTest"/>
</classes>
</test>
-
+
<!-- <test name="RestBay: Security">
<classes>
<class name="org.jboss.seam.example.restbay.test.SecurityTest"/>
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/AbstractResource.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/AbstractResource.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/AbstractResource.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -32,9 +32,8 @@
* Resource class used by ResourceHome and ResourceQuery components. Contains
* information about path, media types and entity class the component operates
* on.
- *
+ *
* @author Jozef Hartinger
- *
* @param <T> entity class
*/
public abstract class AbstractResource<T>
@@ -49,7 +48,7 @@
public AbstractResource()
{
- mediaTypes = new MediaType[] { MediaType.APPLICATION_XML_TYPE };
+ mediaTypes = new MediaType[]{MediaType.APPLICATION_XML_TYPE};
}
public String[] getMediaTypes()
@@ -79,7 +78,7 @@
/**
* Retrieve entity class. If not set, type parameters of a superclass are
* examined.
- *
+ *
* @return entity class
*/
public Class<T> getEntityClass()
@@ -105,9 +104,9 @@
/**
* Retrieve a suffix of this resource's URI. See {@link #setPath(String path)}
- *
- * @see javax.ws.rs.Path
+ *
* @return path
+ * @see javax.ws.rs.Path
*/
public String getPath()
{
@@ -118,7 +117,7 @@
* Set the path this resource will operate on. This method is intended to be
* used only by Seam to create a resource configured in component descriptor.
* To specify the path in other cases, use @Path annotation. See
- *
+ *
* @param path
*/
public void setPath(String path)
@@ -130,7 +129,7 @@
* Select a media type that will be used for marshalling entity. Media type
* is selected from the intersection of media types supported by this
* resource and media types accepted by client.
- *
+ *
* @return selected media type, returns null if no suitable media type is
* found
*/
@@ -149,7 +148,7 @@
/**
* Check if media type passed as parameter is supported by this resource.
- *
+ *
* @param mediaType
* @return true if and only if the media type is accepted by this resource
*/
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/Application.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/Application.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/Application.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,3 +1,24 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.seam.resteasy;
import org.jboss.seam.ScopeType;
@@ -11,8 +32,8 @@
import java.util.*;
/**
- * Resteasy and JAX-RS configuration, override in components.xml to
- * customize Resteasy settings.
+ * RESTEasy and JAX-RS configuration, override in components.xml to
+ * customize RESTful request processing and RESTEasy settings.
*
* @author Christian Bauer
*/
@@ -25,37 +46,37 @@
final private Map<Class<?>, Set<Component>> providerClasses = new HashMap<Class<?>, Set<Component>>();
final private Map<Class<?>, Set<Component>> resourceClasses = new HashMap<Class<?>, Set<Component>>();
-
- private List<String> providerClassNames = new ArrayList<String>();
- private List<String> resourceClassNames = new ArrayList<String>();
- private Map<String, String> mediaTypeMappings = new HashMap<String, String>();
- private Map<String, String> languageMappings = new HashMap<String, String>();
+ private List<String> providerClassNames = new ArrayList<String>();
+ private List<String> resourceClassNames = new ArrayList<String>();
- private boolean scanProviders = true;
- private boolean scanResources = true;
- private boolean useBuiltinProviders = true;
- private boolean destroySessionAfterRequest = true;
+ private Map<String, String> mediaTypeMappings = new HashMap<String, String>();
+ private Map<String, String> languageMappings = new HashMap<String, String>();
- private String resourcePathPrefix = "/rest";
- private boolean stripSeamResourcePath = true;
+ private boolean scanProviders = true;
+ private boolean scanResources = true;
+ private boolean useBuiltinProviders = true;
+ private boolean destroySessionAfterRequest = true;
- public Application()
- {
- super();
- }
+ private String resourcePathPrefix = "/rest";
+ private boolean stripSeamResourcePath = true;
- public Set<Class<?>> getProviderClasses()
- {
- return providerClasses.keySet();
- }
+ public Application()
+ {
+ super();
+ }
- @Override
- public Set<Class<?>> getClasses()
- {
- return resourceClasses.keySet();
- }
+ public Set<Class<?>> getProviderClasses()
+ {
+ return providerClasses.keySet();
+ }
+ @Override
+ public Set<Class<?>> getClasses()
+ {
+ return resourceClasses.keySet();
+ }
+
public void addProviderClass(Class<?> clazz)
{
providerClasses.put(clazz, null);
@@ -72,10 +93,10 @@
components.add(component);
}
- public void removeProviderClass(Class<?> clazz)
- {
- providerClasses.remove(clazz);
- }
+ public void removeProviderClass(Class<?> clazz)
+ {
+ providerClasses.remove(clazz);
+ }
public void addResourceClass(Class<?> clazz)
{
@@ -93,10 +114,10 @@
components.addAll(newComponents);
}
- public void removeResourceClass(Class<?> clazz)
- {
- resourceClasses.remove(clazz);
- }
+ public void removeResourceClass(Class<?> clazz)
+ {
+ resourceClasses.remove(clazz);
+ }
public Set<Component> getProviderClassComponent(Class clazz)
{
@@ -108,109 +129,109 @@
return resourceClasses.get(clazz) != null ? resourceClasses.get(clazz) : null;
}
- public Map<String, MediaType> getMediaTypeMappings()
- {
- Map<String, MediaType> extMap = new HashMap<String, MediaType>();
- for (String ext : mediaTypeMappings.keySet())
- {
- String value = mediaTypeMappings.get(ext);
- extMap.put(ext, MediaType.valueOf(value));
- }
- return extMap;
- }
+ public Map<String, MediaType> getMediaTypeMappings()
+ {
+ Map<String, MediaType> extMap = new HashMap<String, MediaType>();
+ for (String ext : mediaTypeMappings.keySet())
+ {
+ String value = mediaTypeMappings.get(ext);
+ extMap.put(ext, MediaType.valueOf(value));
+ }
+ return extMap;
+ }
- public void setMediaTypeMappings(Map<String, String> mediaTypeMappings)
- {
- this.mediaTypeMappings = mediaTypeMappings;
- }
+ public void setMediaTypeMappings(Map<String, String> mediaTypeMappings)
+ {
+ this.mediaTypeMappings = mediaTypeMappings;
+ }
- public Map<String, String> getLanguageMappings()
- {
- return languageMappings;
- }
+ public Map<String, String> getLanguageMappings()
+ {
+ return languageMappings;
+ }
- public void setLanguageMappings(Map<String, String> languageMappings)
- {
- this.languageMappings = languageMappings;
- }
+ public void setLanguageMappings(Map<String, String> languageMappings)
+ {
+ this.languageMappings = languageMappings;
+ }
- public List<String> getProviderClassNames()
- {
- return providerClassNames;
- }
+ public List<String> getProviderClassNames()
+ {
+ return providerClassNames;
+ }
- public void setProviderClassNames(List<String> providerClassNames)
- {
- this.providerClassNames = providerClassNames;
- }
+ public void setProviderClassNames(List<String> providerClassNames)
+ {
+ this.providerClassNames = providerClassNames;
+ }
- public List<String> getResourceClassNames()
- {
- return resourceClassNames;
- }
+ public List<String> getResourceClassNames()
+ {
+ return resourceClassNames;
+ }
- public void setResourceClassNames(List<String> resourceClassNames)
- {
- this.resourceClassNames = resourceClassNames;
- }
+ public void setResourceClassNames(List<String> resourceClassNames)
+ {
+ this.resourceClassNames = resourceClassNames;
+ }
- public boolean isScanProviders()
- {
- return scanProviders;
- }
+ public boolean isScanProviders()
+ {
+ return scanProviders;
+ }
- public void setScanProviders(boolean scanProviders)
- {
- this.scanProviders = scanProviders;
- }
+ public void setScanProviders(boolean scanProviders)
+ {
+ this.scanProviders = scanProviders;
+ }
- public boolean isScanResources()
- {
- return scanResources;
- }
+ public boolean isScanResources()
+ {
+ return scanResources;
+ }
- public void setScanResources(boolean scanResources)
- {
- this.scanResources = scanResources;
- }
+ public void setScanResources(boolean scanResources)
+ {
+ this.scanResources = scanResources;
+ }
- public boolean isUseBuiltinProviders()
- {
- return useBuiltinProviders;
- }
+ public boolean isUseBuiltinProviders()
+ {
+ return useBuiltinProviders;
+ }
- public void setUseBuiltinProviders(boolean useBuiltinProviders)
- {
- this.useBuiltinProviders = useBuiltinProviders;
- }
+ public void setUseBuiltinProviders(boolean useBuiltinProviders)
+ {
+ this.useBuiltinProviders = useBuiltinProviders;
+ }
- public boolean isDestroySessionAfterRequest()
- {
- return destroySessionAfterRequest;
- }
+ public boolean isDestroySessionAfterRequest()
+ {
+ return destroySessionAfterRequest;
+ }
- public void setDestroySessionAfterRequest(boolean destroySessionAfterRequest)
- {
- this.destroySessionAfterRequest = destroySessionAfterRequest;
- }
+ public void setDestroySessionAfterRequest(boolean destroySessionAfterRequest)
+ {
+ this.destroySessionAfterRequest = destroySessionAfterRequest;
+ }
- public String getResourcePathPrefix()
- {
- return resourcePathPrefix;
- }
+ public String getResourcePathPrefix()
+ {
+ return resourcePathPrefix;
+ }
- public void setResourcePathPrefix(String resourcePathPrefix)
- {
- this.resourcePathPrefix = resourcePathPrefix;
- }
+ public void setResourcePathPrefix(String resourcePathPrefix)
+ {
+ this.resourcePathPrefix = resourcePathPrefix;
+ }
- public boolean isStripSeamResourcePath()
- {
- return stripSeamResourcePath;
- }
+ public boolean isStripSeamResourcePath()
+ {
+ return stripSeamResourcePath;
+ }
- public void setStripSeamResourcePath(boolean stripSeamResourcePath)
- {
- this.stripSeamResourcePath = stripSeamResourcePath;
- }
+ public void setStripSeamResourcePath(boolean stripSeamResourcePath)
+ {
+ this.stripSeamResourcePath = stripSeamResourcePath;
+ }
}
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/EntityHomeWrapper.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/EntityHomeWrapper.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/EntityHomeWrapper.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -18,7 +18,7 @@
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+ */
package org.jboss.seam.resteasy;
import org.jboss.seam.framework.EntityHome;
@@ -28,12 +28,10 @@
/**
* This class provides an unified interface for accessing EntityHome and
* HibernateEntityHome instances.
- *
+ *
* @author Jozef Hartinger
- *
* @see org.jboss.seam.framework.EntityHome
* @see org.jboss.seam.framework.HibernateEntityHome
- *
*/
public class EntityHomeWrapper<T>
{
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResourceHome.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResourceHome.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResourceHome.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -18,7 +18,7 @@
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+ */
package org.jboss.seam.resteasy;
import java.io.InputStream;
@@ -52,15 +52,14 @@
/**
* This component exposes EntityHome and HibernateEntityHome components as a
* REST resource.
- *
+ *
* @author Jozef Hartinger
- *
* @param <T> Entity class
* @param <T2> Entity id class
*/
// Empty @Path because it's ignored by second-stage bootstrap if not subclassed or in components.xml
// but we need it as a marker so we'll find components.xml declarations during first stage of bootstrap.
-@Path("")
+@Path("")
public class ResourceHome<T, T2> extends AbstractResource<T>
{
private EntityHomeWrapper<T> entityHome = null;
@@ -93,10 +92,10 @@
* Called by RESTEasy when HTTP GET request is received. String form of
* entity identifier is passed as a parameter. Returns a response containing
* database entity.
- *
- * @see #getEntity
+ *
* @param rawId String form of entity identifier
* @return response
+ * @see #getEntity
*/
@Path("/{id}")
@GET
@@ -118,7 +117,7 @@
/**
* Retrieve an entity identified by id parameter.
- *
+ *
* @param id entity identifier
* @return entity database entity
*/
@@ -133,10 +132,10 @@
* Called by RESTEasy when HTTP POST request is received. Persists received
* entity and returns 201 HTTP status code with location header set to new
* URI if operation succeeds.
- *
- * @see #createEntity
+ *
* @param messageBody HTTP request body
* @return response
+ * @see #createEntity
*/
@POST
public Response createResource(InputStream messageBody)
@@ -162,7 +161,7 @@
/**
* Store entity passed as a parameter in the database.
- *
+ *
* @param entity Object to be persisted
* @return id identifier assigned to the entity
*/
@@ -176,11 +175,11 @@
/**
* Called by RESTEasy when HTTP PUT request is received. Merges the state of
* the database entity with the received representation.
- *
- * @see #updateEntity
- * @param rawId String form of entity identifier
+ *
+ * @param rawId String form of entity identifier
* @param messageBody HTTP request body
* @return response
+ * @see #updateEntity
*/
@Path("/{id}")
@PUT
@@ -215,7 +214,7 @@
* Merge the state of the database entity with the entity passed as a
* parameter. Override to customize the update strategy - for instance to
* update specific fields only instead of a full merge.
- *
+ *
* @param entity
*/
public void updateEntity(T entity, T2 id)
@@ -226,10 +225,10 @@
/**
* Called by RESTEasy when HTTP DELETE request is received. Deletes a
* database entity.
- *
- * @see #deleteEntity
+ *
* @param rawId String form of entity identifier
* @return response
+ * @see #deleteEntity
*/
@Path("/{id}")
@DELETE
@@ -247,7 +246,7 @@
/**
* Delete database entity.
- *
+ *
* @param id entity identifier
*/
public void deleteEntity(T2 id)
@@ -258,7 +257,7 @@
/**
* Convert HTTP request body into entity class instance.
- *
+ *
* @param is HTTP request body
* @return entity
*/
@@ -284,7 +283,7 @@
/**
* Converts String form of entity identifier to it's natural type.
- *
+ *
* @param id String form of entity identifier
* @return entity identifier
*/
@@ -298,7 +297,7 @@
* EntityHome component getter. Override this method to set the EntityHome
* this resource will operate on. You can use either EntityHome or
* HibernateEntityHome instance.
- *
+ *
* @return entity home
*/
public Home<?, T> getEntityHome()
@@ -308,7 +307,7 @@
/**
* EntityHome component setter
- *
+ *
* @param entityHome
*/
public void setEntityHome(Home<?, T> entityHome)
@@ -331,7 +330,7 @@
* If set to read-only mode, this resource will only response to GET
* requests. HTTP 415 status code (method not allowed) will returned in all
* other cases.
- *
+ *
* @param readonly
*/
public void setReadonly(boolean readonly)
@@ -342,7 +341,7 @@
/**
* Retrieve entity identifier's class. If not set, type parameters of a
* superclass are examined.
- *
+ *
* @return class of entity identifier
*/
public Class getEntityIdClass()
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResourceQuery.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResourceQuery.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResourceQuery.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -18,7 +18,7 @@
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+ */
package org.jboss.seam.resteasy;
import java.lang.reflect.ParameterizedType;
@@ -37,15 +37,15 @@
import org.jboss.seam.annotations.Create;
import org.jboss.seam.framework.EntityQuery;
import org.jboss.seam.framework.Query;
+
import static javax.ws.rs.core.Response.Status.UNSUPPORTED_MEDIA_TYPE;
import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
/**
* This component exposes EntityQuery component as a REST resource responding to
* HTTP GET request.
- *
+ *
* @author Jozef Hartinger
- *
* @param <T> entity type
*/
// Empty @Path because it's ignored by second-stage bootstrap if not subclassed or in components.xml
@@ -73,11 +73,11 @@
* Called by RESTEasy to respond for an HTTP GET request. Retrieves a list of
* entities matching criteria set by query parameters from database and
* returns it wrapped in Response instance.
- *
- * @see #getEntityList
+ *
* @param start first entity in the list
- * @param show maximum size of the list
+ * @param show maximum size of the list
* @return representation of a list of database entries
+ * @see #getEntityList
*/
@GET
@Wrapped
@@ -111,7 +111,7 @@
public Type[] getActualTypeArguments()
{
- return new Type[] { getEntityClass() };
+ return new Type[]{getEntityClass()};
}
};
return Response.ok(new GenericEntity(result, responseType)
@@ -121,9 +121,9 @@
/**
* Retrieve a list of database entities.
- *
+ *
* @param start first entity in the list
- * @param show maximum size of the list, 0 for unlimited
+ * @param show maximum size of the list, 0 for unlimited
* @return list of database entries
*/
public List<T> getEntityList(int start, int show)
@@ -138,7 +138,7 @@
/**
* EntityQuery getter
- *
+ *
* @return EntityQuery instance
*/
public Query<?, T> getEntityQuery()
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyBootstrap.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyBootstrap.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyBootstrap.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,33 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.seam.resteasy;
+import org.jboss.resteasy.core.Dispatcher;
+import org.jboss.resteasy.core.SynchronousDispatcher;
+import org.jboss.resteasy.core.ThreadLocalResteasyProviderFactory;
+import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
+import org.jboss.resteasy.plugins.server.resourcefactory.POJOResourceFactory;
+import org.jboss.resteasy.spi.ResourceFactory;
+import org.jboss.resteasy.spi.StringConverter;
import org.jboss.seam.Component;
import org.jboss.seam.ScopeType;
+import org.jboss.seam.Seam;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Create;
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Install;
+import org.jboss.seam.annotations.JndiName;
+import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Startup;
-import org.jboss.seam.annotations.AutoCreate;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Logger;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Create;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.core.Init;
import org.jboss.seam.deployment.AnnotationDeploymentHandler;
import org.jboss.seam.deployment.DeploymentStrategy;
-import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.log.Log;
+import org.jboss.seam.util.EJB;
import org.jboss.seam.util.Reflections;
-import org.jboss.seam.util.EJB;
-import org.jboss.resteasy.core.ThreadLocalResteasyProviderFactory;
+import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.HashSet;
-import java.util.Map;
-import java.util.HashMap;
import java.util.Set;
/**
- * Scans annoated JAX-RS resources and providers, optionally registers them as Seam components.
- * It does so by populating the <tt>Application</tt> instance, which is then processed further
- * by the <tt>ResteasyDispatcher</tt> during startup.
+ * Detects (through scanning and configuration) JAX-RS resources and providers, then
+ * registers them with RESTEasy.
+ * <p>
+ * This class is a factory for <tt>org.jboss.seam.resteasy.dispatcher</tt> and it has been
+ * designed for extension. Alternatively, you can ignore what this class is doing and provide a
+ * different <tt>org.jboss.seam.resteasy.dispatcher</tt> yourself without extending this class.
+ * </p>
+ * <p>
+ * The main methods of this class are <tt>registerProviders()</tt> and <tt>registerResources()</tt>.
+ * These methods call out to the individual fine-grained registration procedures, which you can override
+ * if a different registration strategy for a particular type/component is desired.
+ * </p>
*
* @author Christian Bauer
*/
@@ -39,167 +78,454 @@
public class ResteasyBootstrap
{
- @Logger
- Log log;
+ @Logger
+ Log log;
- @In
- protected Application application;
+ @In
+ protected Application application;
- private SeamResteasyProviderFactory providerFactory;
- public SeamResteasyProviderFactory getProviderFactory()
- {
- return providerFactory;
- }
+ // The job of this class is to initialize and configure the RESTEasy Dispatcher instance
+ protected Dispatcher dispatcher;
- @Create
- public void init()
- {
- log.info("starting RESTEasy with custom SeamResteasyProviderFactory");
- providerFactory = new SeamResteasyProviderFactory();
+ @Factory("org.jboss.seam.resteasy.dispatcher")
+ public Dispatcher getDispatcher()
+ {
+ return dispatcher;
+ }
- // Always use the "deployment sensitive" factory - that means it is handled through ThreadLocal, not static
- SeamResteasyProviderFactory.setInstance(new ThreadLocalResteasyProviderFactory(getProviderFactory()));
+ @Create
+ public void init()
+ {
+ log.info("bootstrapping JAX-RS application");
- log.info("deploying JAX-RS application");
+ // Custom ResteasyProviderFactory that understands Seam component lookup at runtime
+ SeamResteasyProviderFactory providerFactory = createProviderFactory();
+ dispatcher = createDispatcher(providerFactory);
+ initDispatcher();
- Collection<Class<?>> annotatedProviderClasses = null;
- Collection<Class<?>> annotatedResourceClasses = null;
- if (application.isScanProviders() || application.isScanResources())
- {
- log.debug("scanning all classes for JAX-RS annotations");
+ // Always use the "deployment sensitive" factory - that means it is handled through ThreadLocal, not static
+ // TODO: How does that actually work? It's never used because the dispatcher is created with the original one
+ SeamResteasyProviderFactory.setInstance(new ThreadLocalResteasyProviderFactory(providerFactory));
- DeploymentStrategy deployment = (DeploymentStrategy) Component.getInstance("deploymentStrategy");
- AnnotationDeploymentHandler handler =
- (AnnotationDeploymentHandler) deployment.getDeploymentHandlers().get(AnnotationDeploymentHandler.NAME);
+ // Seam can scan the classes for us, we just have to list them in META-INF/seam-deployment.properties
+ DeploymentStrategy deployment = (DeploymentStrategy) Component.getInstance("deploymentStrategy");
+ AnnotationDeploymentHandler handler =
+ (AnnotationDeploymentHandler) deployment.getDeploymentHandlers().get(AnnotationDeploymentHandler.NAME);
- annotatedProviderClasses = handler.getClassMap().get(javax.ws.rs.ext.Provider.class.getName());
- annotatedResourceClasses = handler.getClassMap().get(javax.ws.rs.Path.class.getName());
- }
+ Collection<Class<?>> providers = findProviders(handler);
+ Collection<Class<?>> resources = findResources(handler);
+ Collection<Component> seamComponents = findSeamComponents();
- log.debug("finding all Seam component classes");
- Map<Class, Set<Component>> seamComponents = new HashMap<Class, Set<Component>>();
- String[] applicationContextNames = Contexts.getApplicationContext().getNames();
- for (String applicationContextName : applicationContextNames)
- {
- if (applicationContextName.endsWith(".component"))
- {
- Component seamComponent =
- (Component) Component.getInstance(applicationContextName, ScopeType.APPLICATION);
- // TODO: This should consider EJB components/annotations on interfaces somehow?
- Class beanClass = seamComponent.getBeanClass();
- if (!seamComponents.containsKey(beanClass))
- {
- seamComponents.put(beanClass, new HashSet<Component>());
- }
- seamComponents.get(beanClass).add(seamComponent);
- }
- }
+ registerProviders(seamComponents, providers);
+ registerResources(seamComponents, resources);
+ }
- registerProviders(seamComponents, annotatedProviderClasses);
- registerResources(seamComponents, annotatedResourceClasses);
- }
+ protected SeamResteasyProviderFactory createProviderFactory()
+ {
+ return new SeamResteasyProviderFactory();
+ }
- // Load all provider classes, either scanned or through explicit configuration
- protected void registerProviders(Map<Class, Set<Component>> seamComponents, Collection annotatedProviderClasses)
- {
- Collection<Class> providerClasses = new HashSet<Class>();
- try
- {
- if (application.isScanProviders() && annotatedProviderClasses != null)
- providerClasses.addAll(annotatedProviderClasses);
+ protected Dispatcher createDispatcher(SeamResteasyProviderFactory providerFactory)
+ {
+ return new SynchronousDispatcher(providerFactory);
+ }
- for (String s : new HashSet<String>(application.getProviderClassNames()))
- providerClasses.add(Reflections.classForName(s));
+ protected void initDispatcher()
+ {
+ getDispatcher().setLanguageMappings(application.getLanguageMappings());
+ getDispatcher().setMediaTypeMappings(application.getMediaTypeMappings());
+ }
- }
- catch (ClassNotFoundException ex)
- {
- log.error("error loading JAX-RS provider class: " + ex.getMessage());
- }
- for (Class providerClass : providerClasses)
- {
- // Ignore built-in providers, we register them manually later
- if (providerClass.getName().startsWith("org.jboss.resteasy.plugins.providers")) continue;
+ protected Collection<Class<?>> findProviders(AnnotationDeploymentHandler handler)
+ {
+ return findTypes(
+ handler,
+ application.isScanProviders(),
+ javax.ws.rs.ext.Provider.class.getName(),
+ application.getProviderClassNames()
+ );
+ }
- // Check if this is also a Seam component bean class
- if (seamComponents.containsKey(providerClass))
- {
- for (Component seamComponent : seamComponents.get(providerClass))
+ protected Collection<Class<?>> findResources(AnnotationDeploymentHandler handler)
+ {
+ return findTypes(
+ handler,
+ application.isScanResources(),
+ javax.ws.rs.Path.class.getName(),
+ application.getResourceClassNames()
+ );
+ }
+
+ protected Collection<Class<?>> findTypes(AnnotationDeploymentHandler handler, boolean scanClasspathForAnnotations,
+ String annotationFQName, Collection<String> includeTypeNames)
+ {
+
+ Collection<Class<?>> types = new HashSet();
+
+ if (scanClasspathForAnnotations)
+ {
+ Collection<Class<?>> annotatedTypes = handler.getClassMap().get(annotationFQName);
+ if (annotatedTypes != null) types.addAll(annotatedTypes);
+ }
+
+ try
+ {
+ for (String s : new HashSet<String>(includeTypeNames))
+ {
+ types.add(Reflections.classForName(s));
+ }
+ }
+ catch (ClassNotFoundException ex)
+ {
+ log.error("error loading JAX-RS type: " + ex.getMessage(), ex);
+ }
+
+ return types;
+ }
+
+
+ protected Collection<Component> findSeamComponents()
+ {
+ // Iterate through all variables in the application context that end with ".component"
+ log.debug("discovering all Seam components");
+ Collection<Component> seamComponents = new HashSet();
+ String[] applicationContextNames = Contexts.getApplicationContext().getNames();
+ for (String applicationContextName : applicationContextNames)
+ {
+ if (applicationContextName.endsWith(".component"))
+ {
+ Component seamComponent =
+ (Component) Component.getInstance(applicationContextName, ScopeType.APPLICATION);
+ seamComponents.add(seamComponent);
+ }
+ }
+ return seamComponents;
+ }
+
+
+ protected void registerProviders(Collection<Component> seamComponents, Collection<Class<?>> providerClasses)
+ {
+
+ // RESTEasy built-in providers first
+ if (application.isUseBuiltinProviders())
+ {
+ log.info("registering built-in RESTEasy providers");
+ RegisterBuiltin.register(getDispatcher().getProviderFactory());
+ }
+
+ Set<Class> handledProviders = new HashSet(); // Stuff we don't want to examine twice
+
+ for (Component seamComponent : seamComponents)
+ {
+ // The component can have one (not many) @Provider annotated business interface
+ Class providerInterface = getAnnotatedInterface(javax.ws.rs.ext.Provider.class, seamComponent);
+
+ // How we register it depends on the component type
+ switch (seamComponent.getType())
+ {
+
+ // TODO: We don't support EJB Seam components as providers
+
+ case JAVA_BEAN:
+
+ // We are only interested in components that have a @Provider annotation on iface or bean
+ if (providerInterface == null
+ && !seamComponent.getBeanClass().isAnnotationPresent(javax.ws.rs.ext.Provider.class))
{
- // Needs to be APPLICATION or STATELESS
- if (!seamComponent.getScope().equals(ScopeType.APPLICATION) &&
- !seamComponent.getScope().equals(ScopeType.STATELESS))
- {
- log.warn("can't add provider Seam component, not APPLICATION or STATELESS scope: " + seamComponent.getName());
- log.warn("this provider class will be registered without Seam injection or lifecycle!");
- seamComponent = null;
- }
- if (seamComponent != null)
- {
- log.debug("adding provider Seam component: " + seamComponent.getName());
- application.addProviderClass(providerClass, seamComponent);
- }
- else
- {
- log.debug("adding provider class: " + providerClass.getName());
- application.addProviderClass(providerClass);
- }
+ break;
}
- }
- else
- {
- log.debug("adding provider class: " + providerClass.getName());
- application.addProviderClass(providerClass);
- }
+
+ // They also have to be in the right scope, otherwise we can't handle their lifecylce (yet)
+ switch (seamComponent.getScope())
+ {
+ case APPLICATION:
+
+ // StringConverter is a special case
+ if (StringConverter.class.isAssignableFrom(seamComponent.getBeanClass()))
+ {
+ getDispatcher().getProviderFactory().addStringConverter(
+ (StringConverter) Component.getInstance(seamComponent.getName())
+ );
+ }
+ else
+ {
+ registerSeamComponentProvider(seamComponent);
+ }
+ break;
+
+ default:
+ throw new RuntimeException(
+ "Provider Seam component '" + seamComponent.getName() + "' must be scoped " +
+ "APPLICATION"
+ );
+ }
+ break;
}
- if (application.getProviderClasses().size() == 0 &&
- !application.isUseBuiltinProviders())
- {
- log.info("no RESTEasy provider classes added");
- }
- }
- // Load all resource classes, either scanned or through explicit configuration
- protected void registerResources(Map<Class, Set<Component>> seamComponents, Collection annotatedResourceClasses)
- {
- Collection<Class> resourceClasses = new HashSet<Class>();
- try
- {
- if (application.isScanResources() && annotatedResourceClasses != null)
- resourceClasses.addAll(annotatedResourceClasses);
+ // We simply add everything we have seen so far... it's not really necessary but it doesn't hurt (does it?)
+ handledProviders.add(seamComponent.getBeanClass());
+ handledProviders.addAll(seamComponent.getBusinessInterfaces());
+ }
- for (String s : new HashSet<String>(application.getResourceClassNames()))
- resourceClasses.add(Reflections.classForName(s));
+ for (Class<?> providerClass : providerClasses)
+ {
- }
- catch (ClassNotFoundException ex)
- {
- log.error("error loading JAX-RS resource class: " + ex.getMessage());
- }
- for (Class<Object> resourceClass : resourceClasses)
- {
- // Check if this is also a Seam component bean class
- if (seamComponents.containsKey(resourceClass))
+ // An @Provider annotated type may:
+
+ // - have been already handled as a Seam component in the previous routine
+ if (handledProviders.contains(providerClass)) continue;
+
+ // - be a RESTEasy built-in provider
+ if (providerClass.getName().startsWith("org.jboss.resteasy.plugins.providers")) continue;
+
+ // - be an interface, which we don't care about if we don't have an implementation
+ if (providerClass.isInterface()) continue;
+
+ // - be just plain RESTEasy, no Seam component lookup or lifecycle
+ if (StringConverter.class.isAssignableFrom(providerClass))
+ {
+ log.debug("registering provider as RESTEasy StringConverter: {0}", providerClass);
+ getDispatcher().getProviderFactory().addStringConverter((Class<? extends StringConverter>) providerClass);
+ }
+ else
+ {
+ log.debug("registering provider as plain JAX-RS type: {0}", providerClass);
+ getDispatcher().getProviderFactory().registerProvider(providerClass);
+ }
+ }
+ }
+
+ protected void registerResources(Collection<Component> seamComponents, Collection<Class<?>> resourceClasses)
+ {
+
+ Set<Class> handledResources = new HashSet(); // Stuff we don't want to examine twice
+
+ for (Component seamComponent : seamComponents)
+ {
+
+ // A bean class of type (not subtypes) ResourceHome or ResourceQuery annotated with @Path, then
+ // it's a Seam component resource we need to register with getPath() on the instance, it has been
+ // configured in components.xml
+ if (seamComponent.getBeanClass().equals(ResourceHome.class) ||
+ seamComponent.getBeanClass().equals(ResourceQuery.class))
+ {
+ registerHomeQueryResources(seamComponent);
+ handledResources.add(ResourceHome.class);
+ handledResources.add(ResourceQuery.class);
+ continue;
+ }
+
+ // The component can have one (not many) @Path annotated business interface
+ Class resourceInterface = getAnnotatedInterface(javax.ws.rs.Path.class, seamComponent);
+
+ // How we register it depends on the component type
+ switch (seamComponent.getType())
+ {
+ case STATELESS_SESSION_BEAN:
+ // EJB seam component resources must be @Path annotated on one of their business interfaces
+ if (resourceInterface != null)
+ {
+ // TODO: Do we have to consider the scope? It should be stateless, right?
+ registerInterfaceSeamComponentResource(seamComponent, resourceInterface);
+ }
+ break;
+ case STATEFUL_SESSION_BEAN:
+ // EJB seam component resources must be @Path annotated on one of their business interfaces
+ if (resourceInterface != null)
+ {
+ log.error("Not implemented: Stateful EJB Seam component resource: " + seamComponent);
+ // TODO: registerStatefulEJBSeamComponentResource(seamComponent);
+ }
+ break;
+ case JAVA_BEAN:
+
+ // We are only interested in components that have a @Path annotation on iface or bean
+ if (resourceInterface == null
+ && !seamComponent.getBeanClass().isAnnotationPresent(javax.ws.rs.Path.class))
+ {
+ break;
+ }
+
+ // They also have to be in the right scope, otherwise we can't handle their lifecylce (yet)
+ switch (seamComponent.getScope())
+ {
+ case EVENT:
+ case APPLICATION:
+ case STATELESS:
+ case SESSION:
+ if (resourceInterface != null)
+ {
+ registerInterfaceSeamComponentResource(seamComponent, resourceInterface);
+ }
+ else if (seamComponent.getBeanClass().isAnnotationPresent(javax.ws.rs.Path.class))
+ {
+ registerSeamComponentResource(seamComponent);
+ }
+ break;
+ default:
+ throw new RuntimeException(
+ "Resource Seam component '" + seamComponent.getName() + "' must be scoped either " +
+ "EVENT, APPLICATION, STATELESS, or SESSION"
+ );
+ }
+ break;
+ }
+
+ // We simply add everything we have seen so far... it's not really necessary but it doesn't hurt (does it?)
+ handledResources.add(seamComponent.getBeanClass());
+ handledResources.addAll(seamComponent.getBusinessInterfaces());
+
+ }
+
+ for (Class<?> resourceClass : resourceClasses)
+ {
+ // An @Path annotated type may:
+
+ // - have been already handled as a Seam component in the previous routine
+ if (handledResources.contains(resourceClass)) continue;
+
+ // - be an interface, which we don't care about if we don't have an implementation
+ if (resourceClass.isInterface()) continue;
+
+ // - be a @Stateless EJB implementation class that was listed in components.xml
+ if (resourceClass.isAnnotationPresent(EJB.STATELESS))
+ {
+ registerStatelessEJBResource(resourceClass);
+ }
+ // - be a @Stateful EJB implementation class that was listed in components.xml
+ else if (resourceClass.isAnnotationPresent(EJB.STATEFUL))
+ {
+ throw new RuntimeException(
+ "Only stateless EJBs can be JAX-RS resources, remove from configuration: " + resourceClass.getName()
+ );
+ }
+ else
+ {
+ // - just be a regular JAX-RS lifecycle instance that can created/destroyed by RESTEasy
+ registerPlainResource(resourceClass);
+ }
+ }
+
+ }
+
+ protected void registerHomeQueryResources(Component seamComponent)
+ {
+ // We can always instantiate this safely here because it can't have dependencies!
+ AbstractResource instance = (AbstractResource) seamComponent.newInstance();
+ String path = instance.getPath();
+ if (instance.getPath() != null)
+ {
+ log.debug(
+ "registering resource, configured ResourceHome/Query on path {1}, as Seam component: {0}",
+ seamComponent.getName(),
+ path
+ );
+
+ ResourceFactory factory = new SeamResteasyResourceFactory(
+ seamComponent.getBeanClass(),
+ seamComponent,
+ getDispatcher().getProviderFactory()
+ );
+
+ getDispatcher().getRegistry().addResourceFactory(factory, path);
+ }
+ else
+ {
+ log.error("Unable to register {0} resource on null path, check components.xml", seamComponent.getName());
+ }
+ }
+
+ protected void registerSeamComponentResource(Component seamComponent)
+ {
+ log.debug("registering resource as Seam component: {0}", seamComponent.getName());
+
+ ResourceFactory factory = new SeamResteasyResourceFactory(
+ seamComponent.getBeanClass(),
+ seamComponent,
+ getDispatcher().getProviderFactory()
+ );
+
+ getDispatcher().getRegistry().addResourceFactory(factory);
+ }
+
+ protected void registerInterfaceSeamComponentResource(Component seamComponent, Class resourceInterface)
+ {
+ log.debug(
+ "registering resource, annotated interface {1}, as Seam component: {0}",
+ seamComponent.getName(),
+ resourceInterface.getName()
+ );
+
+ ResourceFactory factory = new SeamResteasyResourceFactory(
+ resourceInterface,
+ seamComponent,
+ getDispatcher().getProviderFactory()
+ );
+
+ getDispatcher().getRegistry().addResourceFactory(factory);
+ }
+
+ protected void registerStatelessEJBResource(Class ejbImplementationClass)
+ {
+ String jndiName = getJndiName(ejbImplementationClass);
+
+ log.debug(
+ "registering resource, stateless EJB implementation {1}, as RESTEasy JNDI resource name: {0}",
+ jndiName,
+ ejbImplementationClass.getName()
+ );
+ getDispatcher().getRegistry().addJndiResource(jndiName);
+ }
+
+ protected void registerPlainResource(Class plainResourceClass)
+ {
+ log.debug("registering resource, event-scoped JAX-RS lifecycle: {0}", plainResourceClass.getName());
+ getDispatcher().getRegistry().addResourceFactory(new POJOResourceFactory(plainResourceClass));
+ }
+
+ protected void registerSeamComponentProvider(Component seamComponent)
+ {
+ log.debug("registering provider as Seam component: {0}", seamComponent.getName());
+ getDispatcher().getProviderFactory().registerProviderInstance(
+ Component.getInstance(seamComponent.getName())
+ );
+ }
+
+ protected Class getAnnotatedInterface(Class<? extends Annotation> annotation, Component seamComponent)
+ {
+ Class resourceInterface = null;
+ for (Class anInterface : seamComponent.getBusinessInterfaces())
+ {
+ if (anInterface.isAnnotationPresent(annotation))
+ {
+ if (resourceInterface != null)
{
- Set<Component> components = seamComponents.get(resourceClass);
- log.debug("adding resource Seam components {0} for class {1}", components, resourceClass);
- application.addResourceClass(resourceClass, components);
+ throw new IllegalStateException("Only one business interface can be annotated " + annotation + ": " + seamComponent);
}
- // Check if it is a @Path annotated EJB interface
- else if (resourceClass.isAnnotationPresent(EJB.LOCAL) ||
- resourceClass.isAnnotationPresent(EJB.REMOTE))
- {
- log.debug("ignoring @Path annotated EJB interface, add the bean " +
- "implementation to <resteasy:resource-class-names/>: " + resourceClass.getName());
- }
- else
- {
- log.debug("adding resource class: " + resourceClass.getName());
- application.addResourceClass(resourceClass);
- }
- }
- if (application.getClasses().size() == 0)
- log.info("no JAX-RS resource classes registered");
- }
+ resourceInterface = anInterface;
+ }
+ }
+ return resourceInterface;
+ }
+ protected String getJndiName(Class<?> beanClass)
+ {
+ if (beanClass.isAnnotationPresent(JndiName.class))
+ {
+ return beanClass.getAnnotation(JndiName.class).value();
+ }
+ else
+ {
+ String jndiPattern = Init.instance().getJndiPattern();
+ if (jndiPattern == null)
+ {
+ throw new IllegalArgumentException(
+ "You must specify org.jboss.seam.core.init.jndiPattern or use @JndiName: " + beanClass.getName()
+ );
+ }
+ return jndiPattern.replace("#{ejbName}", Seam.getEjbName(beanClass));
+ }
+ }
+
+
}
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyContextInjectionInterceptor.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyContextInjectionInterceptor.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyContextInjectionInterceptor.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,13 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.seam.resteasy;
+import org.jboss.resteasy.spi.HttpRequest;
+import org.jboss.resteasy.spi.HttpResponse;
+import org.jboss.resteasy.spi.PropertyInjector;
+import org.jboss.seam.Component;
import org.jboss.seam.annotations.intercept.Interceptor;
-import org.jboss.seam.core.BijectionInterceptor;
import org.jboss.seam.intercept.AbstractInterceptor;
import org.jboss.seam.intercept.InvocationContext;
-import org.jboss.seam.Component;
-import org.jboss.resteasy.spi.PropertyInjector;
-import org.jboss.resteasy.spi.HttpRequest;
-import org.jboss.resteasy.spi.HttpResponse;
/**
* Runs after Seam injection and provides JAX RS @Context handling, required for
@@ -15,32 +35,32 @@
*
* @author Christian Bauer
*/
-@Interceptor(stateless=true)
+@Interceptor(stateless = true)
public class ResteasyContextInjectionInterceptor extends AbstractInterceptor
{
- public static final String RE_HTTP_REQUEST_VAR = "org.jboss.resteasy.spi.HttpRequest";
- public static final String RE_HTTP_RESPONSE_VAR = "org.jboss.resteasy.spi.HttpResponse";
+ public static final String RE_HTTP_REQUEST_VAR = "org.jboss.resteasy.spi.HttpRequest";
+ public static final String RE_HTTP_RESPONSE_VAR = "org.jboss.resteasy.spi.HttpResponse";
- private final PropertyInjector propertyInjector;
+ private final PropertyInjector propertyInjector;
- public ResteasyContextInjectionInterceptor(PropertyInjector propertyInjector)
- {
- this.propertyInjector = propertyInjector;
- }
+ public ResteasyContextInjectionInterceptor(PropertyInjector propertyInjector)
+ {
+ this.propertyInjector = propertyInjector;
+ }
- public Object aroundInvoke(InvocationContext ic) throws Exception
- {
- HttpRequest request = (HttpRequest) Component.getInstance(RE_HTTP_REQUEST_VAR);
- HttpResponse response = (HttpResponse)Component.getInstance(RE_HTTP_RESPONSE_VAR);
+ public Object aroundInvoke(InvocationContext ic) throws Exception
+ {
+ HttpRequest request = (HttpRequest) Component.getInstance(RE_HTTP_REQUEST_VAR);
+ HttpResponse response = (HttpResponse) Component.getInstance(RE_HTTP_RESPONSE_VAR);
- propertyInjector.inject(request, response, ic.getTarget());
+ propertyInjector.inject(request, response, ic.getTarget());
- return ic.proceed();
- }
+ return ic.proceed();
+ }
- public boolean isInterceptorEnabled()
- {
- return true;
- }
+ public boolean isInterceptorEnabled()
+ {
+ return true;
+ }
}
Deleted: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyDispatcher.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyDispatcher.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyDispatcher.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,238 +0,0 @@
-package org.jboss.seam.resteasy;
-
-import org.jboss.resteasy.core.SynchronousDispatcher;
-import org.jboss.resteasy.plugins.providers.RegisterBuiltin;
-import org.jboss.resteasy.plugins.server.resourcefactory.POJOResourceFactory;
-import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
-import org.jboss.resteasy.spi.ResourceFactory;
-import org.jboss.resteasy.spi.StringConverter;
-import org.jboss.seam.Component;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.Seam;
-import org.jboss.seam.core.Init;
-import org.jboss.seam.util.EJB;
-import org.jboss.seam.annotations.AutoCreate;
-import org.jboss.seam.annotations.Create;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Logger;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.Startup;
-import org.jboss.seam.annotations.JndiName;
-import org.jboss.seam.log.Log;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import java.util.Set;
-
-/**
- * An extended version of the RESTEasy dispatcher, configured on Seam application
- * startup with a custom JAX RS <tt>Application</tt> instance. Registers custom resource
- * and provider lifecycle handlers with RESTEasy, depending on configured/detected resources
- * from <tt>ResteasyBootstrap</tt>.
- *
- * @author Christian Bauer
- */
-@Name("org.jboss.seam.resteasy.dispatcher")
-(a)Scope(ScopeType.APPLICATION)
-@Startup(depends = "org.jboss.seam.resteasy.bootstrap")
-@AutoCreate
-public class ResteasyDispatcher extends HttpServletDispatcher
-{
-
- @In
- protected Application application;
-
- @In
- protected ResteasyBootstrap bootstrap;
-
- @Logger
- private Log log;
-
- @Create
- public void init()
- {
- try
- {
- init(null);
- }
- catch (ServletException ex)
- {
- // Can never happen
- }
- }
-
- @Override
- public void init(ServletConfig servletConfig) throws ServletException
- {
- // We can skip the init, it only sets up the provider factory (did that already in bootstrap) and
- // the other stuff we do in onStartup(). We also do NOT put the ResteasyProviderFactory, the Dispatcher,
- // nor the Registry into the servlet context. Let's hope RESTEasy code is sane enough not to access the
- // servlet context at runtime...
- log.debug("registering RESTEasy and JAX RS resources and providers");
- setDispatcher(new SynchronousDispatcher(bootstrap.getProviderFactory()));
-
- getDispatcher().setLanguageMappings(application.getLanguageMappings());
- getDispatcher().setMediaTypeMappings(application.getMediaTypeMappings());
-
- // Provider registration
- if (application.isUseBuiltinProviders())
- {
- log.info("registering built-in RESTEasy providers");
- RegisterBuiltin.register(getDispatcher().getProviderFactory());
- }
-
- for (Class providerClass : application.getProviderClasses())
- {
- Set<Component> components = application.getProviderClassComponent(providerClass);
- if (components != null)
- {
- registerSeamComponentProviders(components, providerClass);
- }
- else
- {
- registerProvider(providerClass);
- }
- }
-
- // Resource registration
- for (final Class resourceClass : application.getClasses())
- {
- // First check if it's a class that is a Seam component
- Set<Component> components = application.getResourceClassComponent(resourceClass);
- if (components != null)
- {
- registerSeamComponentResources(components, resourceClass);
- }
- else
- {
- registerResource(resourceClass);
- }
- }
-
- }
-
-
- protected void registerSeamComponentProviders(Set<Component> components, Class providerClass) {
- for (Component seamComponent : components)
- {
- if (ScopeType.STATELESS.equals(seamComponent.getScope()))
- {
- throw new RuntimeException(
- "Registration of STATELESS Seam components as RESTEasy providers not implemented!"
- );
- }
- else if (ScopeType.APPLICATION.equals(seamComponent.getScope()))
- {
- Object providerInstance = Component.getInstance(seamComponent.getName());
- boolean isStringConverter = false;
- for (Class componentIface : seamComponent.getBusinessInterfaces())
- {
- if (StringConverter.class.isAssignableFrom(componentIface))
- {
- isStringConverter = true;
- break;
- }
- }
- if (isStringConverter)
- {
- log.error("can't register Seam component as RESTEasy StringConverter, see: https://jira.jboss.org/jira/browse/JBSEAM-4020");
- //log.debug("registering Seam component as custom RESTEasy string converter provider: " + seamComponent.getName());
- //getDispatcher().getProviderFactory().addStringConverter((StringConverter)providerInstance);
- }
- else
- {
- getDispatcher().getProviderFactory().registerProviderInstance(providerInstance);
- }
- }
- }
- }
-
- protected void registerSeamComponentResources(Set<Component> components, Class resourceClass) {
- for (final Component seamComponent : components)
- {
- // Seam component lookup when call is dispatched to resource
- ResourceFactory factory =
- new SeamResteasyResourceFactory(resourceClass, seamComponent, getDispatcher().getProviderFactory());
-
- // Register component on specific path if the component is a ResourceHome or ResourceQuery component configured in components.xml
- if (seamComponent.getBeanClass().equals(ResourceHome.class) || seamComponent.getBeanClass().equals(ResourceQuery.class))
- {
-
- // We can always instantiate this safely here because it can't have dependencies!
- AbstractResource instance = (AbstractResource) seamComponent.newInstance();
- String path = instance.getPath();
- if (instance.getPath() != null)
- {
- log.debug("registering resource {0} on path {1} with Seam component lifecycle", seamComponent.getName(), path);
- getDispatcher().getRegistry().addResourceFactory(factory, path);
- }
- else
- {
- log.warn("Unable to register {0} resource on null path, check components.xml", seamComponent.getName());
- }
- }
- else
- {
- log.debug("registering resource {0} with Seam component lifecycle", seamComponent.getName());
- getDispatcher().getRegistry().addResourceFactory(factory);
- }
- }
-
- }
-
- protected void registerProvider(Class providerClass) {
- // Just plain RESTEasy, no Seam component lookup or lifecycle
- if (StringConverter.class.isAssignableFrom(providerClass))
- {
- log.debug("registering as custom RESTEasy string converter provider class: " + providerClass);
- getDispatcher().getProviderFactory().addStringConverter(providerClass);
- }
- else
- {
- getDispatcher().getProviderFactory().registerProvider(providerClass);
- }
- }
-
- protected void registerResource(Class resourceClass) {
- // ResourceHome and ResourceQuery have an empty @Path("") and are supposed to be subclassed before use
- // (or through components.xml) - they should be ignored if they are not proper Seam components
- if (ResourceHome.class.equals(resourceClass) || ResourceQuery.class.equals(resourceClass))
- return;
-
- // Plain EJBs (not a Seam component) can be registered in RESTEasy by JNDI name
- if (resourceClass.isAnnotationPresent(EJB.STATELESS) || resourceClass.isAnnotationPresent(EJB.STATEFUL))
- {
- String jndiName = getJndiName(resourceClass);
- log.debug("registering plain EJB resource as RESTEasy JNDI resource name: " + jndiName);
- getDispatcher().getRegistry().addJndiResource(jndiName);
-
- }
- else
- {
- // JAX-RS default lifecycle
- log.debug("registering resource {0} with default JAX-RS lifecycle", resourceClass.getName());
- getDispatcher().getRegistry().addResourceFactory(new POJOResourceFactory(resourceClass));
- }
- }
-
- protected String getJndiName(Class<?> beanClass)
- {
- if (beanClass.isAnnotationPresent(JndiName.class))
- {
- return beanClass.getAnnotation(JndiName.class).value();
- }
- else
- {
- String jndiPattern = Init.instance().getJndiPattern();
- if (jndiPattern == null)
- {
- throw new IllegalArgumentException(
- "You must specify org.jboss.seam.core.init.jndiPattern or use @JndiName: " + beanClass.getName()
- );
- }
- return jndiPattern.replace("#{ejbName}", Seam.getEjbName(beanClass));
- }
- }
-
-}
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyResourceAdapter.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyResourceAdapter.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/ResteasyResourceAdapter.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,3 +1,24 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.seam.resteasy;
import org.jboss.seam.Component;
@@ -13,6 +34,7 @@
import org.jboss.seam.web.Session;
import org.jboss.resteasy.core.SynchronousDispatcher;
import org.jboss.resteasy.core.ThreadLocalResteasyProviderFactory;
+import org.jboss.resteasy.core.Dispatcher;
import org.jboss.resteasy.plugins.server.servlet.HttpServletInputMessage;
import org.jboss.resteasy.plugins.server.servlet.HttpServletResponseWrapper;
import org.jboss.resteasy.plugins.server.servlet.ServletSecurityContext;
@@ -38,7 +60,7 @@
import java.util.List;
/**
- * Accepts incoming HTTP request throug the SeamResourceServlet and
+ * Accepts incoming HTTP requests through the <tt>SeamResourceServlet</tt> and
* dispatches the call to RESTEasy. Wraps the call in Seam contexts.
*
* @author Christian Bauer
@@ -49,134 +71,144 @@
public class ResteasyResourceAdapter extends AbstractResource
{
- @Logger
- Log log;
+ @Logger
+ Log log;
- protected ResteasyDispatcher dispatcher;
- protected Application application;
+ protected Dispatcher dispatcher;
+ protected Application application;
- @Create
- public void init()
- {
- // No injection, so lookup on first request
- dispatcher = (ResteasyDispatcher) Component.getInstance(ResteasyDispatcher.class);
- application = (Application) Component.getInstance(Application.class);
- }
+ @Create
+ public void init()
+ {
+ // No injection, so lookup on first request
+ dispatcher = (Dispatcher) Component.getInstance("org.jboss.seam.resteasy.dispatcher");
+ application = (Application) Component.getInstance(Application.class);
+ if (dispatcher == null) {
+ throw new IllegalStateException(
+ "ReasteasyDispatcher not available, make sure RESTEasy and all required JARs are on your classpath"
+ );
+ }
+ }
- @Override
- public String getResourcePath()
- {
- return application.getResourcePathPrefix();
- }
+ @Override
+ public String getResourcePath()
+ {
+ return application.getResourcePathPrefix();
+ }
- @Override
- public void getResource(final HttpServletRequest request, final HttpServletResponse response)
- throws ServletException, IOException
- {
+ @Override
+ public void getResource(final HttpServletRequest request, final HttpServletResponse response)
+ throws ServletException, IOException
+ {
- try
- {
- log.debug("processing REST request");
+ try
+ {
+ log.debug("processing REST request");
- // Wrap in RESTEasy thread-local factory handling
- ThreadLocalResteasyProviderFactory.push(dispatcher.getDispatcher().getProviderFactory());
+ // TODO: As far as I can tell from tracing RE code: All this thread-local stuff has no effect because
+ // the "default" provider factory is always used. But we do it anyway, just to mimic the servlet handler
+ // in RE...
- // Wrap in RESTEasy contexts (this also puts stuff in a thread-local)
- SeamResteasyProviderFactory.pushContext(HttpServletRequest.class, request);
- SeamResteasyProviderFactory.pushContext(HttpServletResponse.class, response);
- SeamResteasyProviderFactory.pushContext(SecurityContext.class, new ServletSecurityContext(request));
+ // Wrap in RESTEasy thread-local factory handling
+ ThreadLocalResteasyProviderFactory.push(dispatcher.getProviderFactory());
- // Wrap in Seam contexts
- new ContextualHttpServletRequest(request)
+ // Wrap in RESTEasy contexts (this also puts stuff in a thread-local)
+ SeamResteasyProviderFactory.pushContext(HttpServletRequest.class, request);
+ SeamResteasyProviderFactory.pushContext(HttpServletResponse.class, response);
+ SeamResteasyProviderFactory.pushContext(SecurityContext.class, new ServletSecurityContext(request));
+
+ // Wrap in Seam contexts
+ new ContextualHttpServletRequest(request)
+ {
+ @Override
+ public void process() throws ServletException, IOException
{
- @Override
- public void process() throws ServletException, IOException
- {
- HttpHeaders headers = ServletUtil.extractHttpHeaders(request);
- UriInfoImpl uriInfo = extractUriInfo(request);
+ HttpHeaders headers = ServletUtil.extractHttpHeaders(request);
+ UriInfoImpl uriInfo = extractUriInfo(request);
- HttpResponse theResponse = new HttpServletResponseWrapper(
- response,
- dispatcher.getDispatcher().getProviderFactory()
- );
+ HttpResponse theResponse = new HttpServletResponseWrapper(
+ response,
+ dispatcher.getProviderFactory()
+ );
- HttpRequest in = new HttpServletInputMessage(
- request,
- theResponse,
- headers,
- uriInfo,
- request.getMethod().toUpperCase(),
- (SynchronousDispatcher) dispatcher.getDispatcher()
- );
+ // TODO: This requires a SynchronousDispatcher
+ HttpRequest in = new HttpServletInputMessage(
+ request,
+ theResponse,
+ headers,
+ uriInfo,
+ request.getMethod().toUpperCase(),
+ (SynchronousDispatcher) dispatcher
+ );
- dispatcher.getDispatcher().invoke(in, theResponse);
+ dispatcher.invoke(in, theResponse);
- // Prevent anemic sessions clog up the server
- if (request.getSession().isNew()
- && application.isDestroySessionAfterRequest()
- && !Session.instance().isInvalid())
- {
- log.debug("Destroying HttpSession after REST request");
- Session.instance().invalidate();
- }
- }
- }.run();
+ // Prevent anemic sessions clog up the server
+ if (request.getSession().isNew()
+ && application.isDestroySessionAfterRequest()
+ && !Session.instance().isInvalid())
+ {
+ log.debug("Destroying HttpSession after REST request");
+ Session.instance().invalidate();
+ }
+ }
+ }.run();
- }
- finally
- {
- // Clean up the thread-locals
- SeamResteasyProviderFactory.clearContextData();
- ThreadLocalResteasyProviderFactory.pop();
- log.debug("completed processing of REST request");
- }
- }
+ }
+ finally
+ {
+ // Clean up the thread-locals
+ SeamResteasyProviderFactory.clearContextData();
+ ThreadLocalResteasyProviderFactory.pop();
+ log.debug("completed processing of REST request");
+ }
+ }
- // Replaces the static ServletUtil.extractUriInfo(), removes the Seam-related sub-path
- protected UriInfoImpl extractUriInfo(HttpServletRequest request)
- {
- String contextPath = request.getContextPath();
- URI absolutePath;
- try
- {
- URL absolute = new URL(request.getRequestURL().toString());
+ // Replaces the static ServletUtil.extractUriInfo(), removes the Seam-related sub-path
+ protected UriInfoImpl extractUriInfo(HttpServletRequest request)
+ {
+ String contextPath = request.getContextPath();
+ URI absolutePath;
+ try
+ {
+ URL absolute = new URL(request.getRequestURL().toString());
- UriBuilderImpl builder = new UriBuilderImpl();
- builder.scheme(absolute.getProtocol());
- builder.host(absolute.getHost());
- builder.port(absolute.getPort());
- builder.path(absolute.getPath());
- builder.replaceQuery(absolute.getQuery());
- absolutePath = builder.build();
- }
- catch (MalformedURLException e)
- {
- throw new RuntimeException(e);
- }
+ UriBuilderImpl builder = new UriBuilderImpl();
+ builder.scheme(absolute.getProtocol());
+ builder.host(absolute.getHost());
+ builder.port(absolute.getPort());
+ builder.path(absolute.getPath());
+ builder.replaceQuery(absolute.getQuery());
+ absolutePath = builder.build();
+ }
+ catch (MalformedURLException e)
+ {
+ throw new RuntimeException(e);
+ }
- String path = PathHelper.getEncodedPathInfo(absolutePath.getRawPath(), contextPath);
+ String path = PathHelper.getEncodedPathInfo(absolutePath.getRawPath(), contextPath);
- if (application.isStripSeamResourcePath())
- {
- log.debug("removing SeamResourceServlet url-pattern and dispatcher prefix from request path");
- path = path.substring(path.indexOf(getResourcePath()) + getResourcePath().length());
- }
+ if (application.isStripSeamResourcePath())
+ {
+ log.debug("removing SeamResourceServlet url-pattern and dispatcher prefix from request path");
+ path = path.substring(path.indexOf(getResourcePath()) + getResourcePath().length());
+ }
- List<PathSegment> pathSegments = PathSegmentImpl.parseSegments(path);
- URI baseURI = absolutePath;
- if (!path.trim().equals(""))
- {
- String tmpContextPath = contextPath;
- if (!tmpContextPath.endsWith("/")) tmpContextPath += "/";
- baseURI = UriBuilder.fromUri(absolutePath).replacePath(tmpContextPath).build();
- }
+ List<PathSegment> pathSegments = PathSegmentImpl.parseSegments(path);
+ URI baseURI = absolutePath;
+ if (!path.trim().equals(""))
+ {
+ String tmpContextPath = contextPath;
+ if (!tmpContextPath.endsWith("/")) tmpContextPath += "/";
+ baseURI = UriBuilder.fromUri(absolutePath).replacePath(tmpContextPath).build();
+ }
- log.debug("UriInfo, absolute URI : " + absolutePath);
- log.debug("UriInfo, base URI : " + baseURI);
- log.debug("UriInfo, relative path/@Path: " + path);
- log.debug("UriInfo, query string : " + request.getQueryString());
+ log.debug("UriInfo, absolute URI : " + absolutePath);
+ log.debug("UriInfo, base URI : " + baseURI);
+ log.debug("UriInfo, relative path/@Path: " + path);
+ log.debug("UriInfo, query string : " + request.getQueryString());
- return new UriInfoImpl(absolutePath, baseURI, path, request.getQueryString(), pathSegments);
- }
+ return new UriInfoImpl(absolutePath, baseURI, path, request.getQueryString(), pathSegments);
+ }
}
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/SeamResteasyProviderFactory.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/SeamResteasyProviderFactory.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/SeamResteasyProviderFactory.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,3 +1,24 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.seam.resteasy;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
@@ -5,21 +26,21 @@
/**
* TODO: We need to significantly extend and change that class so we can lookup provider instances
* through Seam at runtime. The original class has only been designed for registration of "singleton"
- * providers during startup.
+ * providers during startup. See comment about the TL handling in ResteasyResourceAdapter.java.
*
* @author Christian Bauer
*/
public class SeamResteasyProviderFactory extends ResteasyProviderFactory
{
- public static void setInstance(ResteasyProviderFactory factory)
- {
- ResteasyProviderFactory.setInstance(factory);
- }
+ public static void setInstance(ResteasyProviderFactory factory)
+ {
+ ResteasyProviderFactory.setInstance(factory);
+ }
- public static ResteasyProviderFactory getInstance()
- {
- return ResteasyProviderFactory.getInstance();
- }
+ public static ResteasyProviderFactory getInstance()
+ {
+ return ResteasyProviderFactory.getInstance();
+ }
}
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/SeamResteasyResourceFactory.java
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/SeamResteasyResourceFactory.java 2009-05-25 14:14:02 UTC (rev 10966)
+++ branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/SeamResteasyResourceFactory.java 2009-05-25 14:19:52 UTC (rev 10967)
@@ -1,3 +1,24 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.seam.resteasy;
import org.jboss.resteasy.spi.ResourceFactory;
@@ -13,61 +34,61 @@
import org.jboss.seam.log.Logging;
/**
- * Looks up Seam component in Seam contexts when a JAX RS resource is requested.
+ * Looks up Seam component in Seam contexts when a JAX-RS resource is requested.
*
* @author Christian Bauer
*/
public class SeamResteasyResourceFactory implements ResourceFactory
{
- Log log = Logging.getLog(SeamResteasyResourceFactory.class);
+ Log log = Logging.getLog(SeamResteasyResourceFactory.class);
- private final Class<?> resourceClass;
- private final Component seamComponent;
- private final ResteasyProviderFactory providerFactory;
+ private final Class<?> resourceType;
+ private final Component seamComponent;
+ private final ResteasyProviderFactory providerFactory;
- public SeamResteasyResourceFactory(Class<?> resourceClass, Component seamComponent, ResteasyProviderFactory providerFactory)
- {
- this.resourceClass = resourceClass;
- this.seamComponent = seamComponent;
- this.providerFactory = providerFactory;
- }
+ public SeamResteasyResourceFactory(Class<?> resourceType, Component seamComponent, ResteasyProviderFactory providerFactory)
+ {
+ this.resourceType = resourceType;
+ this.seamComponent = seamComponent;
+ this.providerFactory = providerFactory;
+ }
- public Class<?> getScannableClass()
- {
- return resourceClass;
- }
+ public Class<?> getScannableClass()
+ {
+ return resourceType;
+ }
- public void registered(InjectorFactory factory)
- {
- // Wrap the Resteasy PropertyInjectorImpl in a Seam interceptor (for @Context injection)
- seamComponent.addInterceptor(
- new ResteasyContextInjectionInterceptor(
- new PropertyInjectorImpl(getScannableClass(), providerFactory)
- )
- );
+ public void registered(InjectorFactory factory)
+ {
+ // Wrap the Resteasy PropertyInjectorImpl in a Seam interceptor (for @Context injection)
+ seamComponent.addInterceptor(
+ new ResteasyContextInjectionInterceptor(
+ new PropertyInjectorImpl(getScannableClass(), providerFactory)
+ )
+ );
- // NOTE: Adding an interceptor to Component at this stage means that the interceptor is
- // always executed last in the chain. The sorting of interceptors of a Component occurs
- // only when the Component metadata is instantiated. This is OK in this case, as the
- // JAX RS @Context injection can occur last after all other interceptors executed.
+ // NOTE: Adding an interceptor to Component at this stage means that the interceptor is
+ // always executed last in the chain. The sorting of interceptors of a Component occurs
+ // only when the Component metadata is instantiated. This is OK in this case, as the
+ // JAX RS @Context injection can occur last after all other interceptors executed.
- }
+ }
- public Object createResource(HttpRequest request, HttpResponse response, InjectorFactory factory)
- {
- // Push this onto event context so we have it available in ResteasyContextInjectionInterceptor
- Contexts.getEventContext().set(ResteasyContextInjectionInterceptor.RE_HTTP_REQUEST_VAR, request);
- Contexts.getEventContext().set(ResteasyContextInjectionInterceptor.RE_HTTP_RESPONSE_VAR, response);
- log.debug("creating RESTEasy resource instance by looking up Seam component: " + seamComponent.getName());
- return Component.getInstance(seamComponent.getName());
- }
+ public Object createResource(HttpRequest request, HttpResponse response, InjectorFactory factory)
+ {
+ // Push this onto event context so we have it available in ResteasyContextInjectionInterceptor
+ Contexts.getEventContext().set(ResteasyContextInjectionInterceptor.RE_HTTP_REQUEST_VAR, request);
+ Contexts.getEventContext().set(ResteasyContextInjectionInterceptor.RE_HTTP_RESPONSE_VAR, response);
+ log.debug("creating RESTEasy resource instance by looking up Seam component: " + seamComponent.getName());
+ return Component.getInstance(seamComponent.getName());
+ }
- public void requestFinished(HttpRequest request, HttpResponse response, Object resource)
- {
- }
+ public void requestFinished(HttpRequest request, HttpResponse response, Object resource)
+ {
+ }
- public void unregistered()
- {
- }
+ public void unregistered()
+ {
+ }
}
15 years, 6 months
Seam SVN: r10966 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-25 10:14:02 -0400 (Mon, 25 May 2009)
New Revision: 10966
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Events.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Events.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Events.po 2009-05-25 14:13:52 UTC (rev 10965)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Events.po 2009-05-25 14:14:02 UTC (rev 10966)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-03-31 09:07+0000\n"
-"PO-Revision-Date: 2009-05-25 14:16+0100\n"
+"PO-Revision-Date: 2009-05-25 15:35+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -1424,7 +1424,7 @@
#: Events.xml:622
#, no-c-format
msgid "EJB 3.0 introduced a standard interceptor model for session bean components. To add an interceptor to a bean, you need to write a class with a method annotated <literal>@AroundInvoke</literal> and annotate the bean with an <literal>@Interceptors</literal> annotation that specifies the name of the interceptor class. For example, the following interceptor checks that the user is logged in before allowing invoking an action listener method:"
-msgstr "EJB 3.0 ha introdotto un modello standard di interceptor per componenti session bean. Per aggiungere un interceptor ad un bean, occorre scrivere una classe con un metodo annotato con <literal>@AroundInvoke</literal> ed annotare il bean con l'annotazione <literal>@Interceptors</literal> che specifica ilnome della classe interceptor. Per esempio, il seguente interceptor controlla che l'utente sia loggato prima di consentire l'invocazione di un metodo action listener:"
+msgstr "EJB 3.0 ha introdotto un modello standard di interceptor per componenti session bean. Per aggiungere un interceptor ad un bean, occorre scrivere una classe con un metodo annotato con <literal>@AroundInvoke</literal> ed annotare il bean con l'annotazione <literal>@Interceptors</literal> che specifica il nome della classe interceptor. Per esempio, il seguente interceptor controlla che l'utente sia loggato prima di consentire l'invocazione di un metodo action listener:"
#. Tag: programlisting
#: Events.xml:631
15 years, 6 months
Seam SVN: r10965 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-25 10:13:52 -0400 (Mon, 25 May 2009)
New Revision: 10965
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Components.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Components.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Components.po 2009-05-25 12:33:29 UTC (rev 10964)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Components.po 2009-05-25 14:13:52 UTC (rev 10965)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-05-05 12:31+0000\n"
-"PO-Revision-Date: 2009-04-09 15:27+0100\n"
+"PO-Revision-Date: 2009-05-25 15:03+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -22,30 +22,14 @@
#. Tag: para
#: Components.xml:6
#, no-c-format
-msgid ""
-"This chapter describes Seam's built-in components, and their configuration "
-"properties. The built-in components will be created even if they are not "
-"listed in your <literal>components.xml</literal> file, but if you need to "
-"override default properties or specify more than one component of a certain "
-"type, <literal>components.xml</literal> is used."
-msgstr ""
-"Questo capitolo descrive i componenti predefiniti di Seam e le loro "
-"proprietà di configurazione. I componenti predefiniti verranno creati anche "
-"se non sono elencati nel file <literal>components.xml</literal>, ma occorre "
-"fare l'override delle proprietà di default o specificare più di un "
-"compoenente di un certo tipo, viene usato <literal>components.xml</literal>."
+msgid "This chapter describes Seam's built-in components, and their configuration properties. The built-in components will be created even if they are not listed in your <literal>components.xml</literal> file, but if you need to override default properties or specify more than one component of a certain type, <literal>components.xml</literal> is used."
+msgstr "Questo capitolo descrive i componenti predefiniti di Seam e le loro proprietà di configurazione. I componenti predefiniti verranno creati anche se non sono elencati nel file <literal>components.xml</literal>, ma occorre fare l'override delle proprietà di default o specificare più di un compoenente di un certo tipo, viene usato <literal>components.xml</literal>."
#. Tag: para
#: Components.xml:14
#, no-c-format
-msgid ""
-"Note that you can replace any of the built in components with your own "
-"implementations simply by specifying the name of one of the built in "
-"components on your own class using <literal>@Name</literal>."
-msgstr ""
-"Si noti che si puà sostituire uno dei componenti predefiniti con le proprie "
-"implementazioni semplicemente specificando il nome di uno dei componenti "
-"predefiniti nella propria classe usando <literal>@Name</literal>."
+msgid "Note that you can replace any of the built in components with your own implementations simply by specifying the name of one of the built in components on your own class using <literal>@Name</literal>."
+msgstr "Si noti che si puà sostituire uno dei componenti predefiniti con le proprie implementazioni semplicemente specificando il nome di uno dei componenti predefiniti nella propria classe usando <literal>@Name</literal>."
#. Tag: title
#: Components.xml:22
@@ -56,15 +40,8 @@
#. Tag: para
#: Components.xml:23
#, no-c-format
-msgid ""
-"The first set of built in components exist purely to support injection of "
-"various contextual objects. For example, the following component instance "
-"variable would have the Seam session context object injected:"
-msgstr ""
-"Il primo set di componenti predefiniti esiste solamente per supportare "
-"l'injection di vari oggetti contestuali. Per esempio, la seguente variabile "
-"d'istanza di componente vedrebbe iniettato l'oggetto del contesto di "
-"sessione di Seam:"
+msgid "The first set of built in components exist purely to support injection of various contextual objects. For example, the following component instance variable would have the Seam session context object injected:"
+msgstr "Il primo set di componenti predefiniti esiste solamente per supportare l'injection di vari oggetti contestuali. Per esempio, la seguente variabile d'istanza di componente vedrebbe iniettato l'oggetto del contesto di sessione di Seam:"
#. Tag: programlisting
#: Components.xml:30
@@ -81,13 +58,8 @@
#. Tag: para
#: Components.xml:36
#, no-c-format
-msgid ""
-"Component that provides access to Seam Context objects, for example "
-"<literal>org.jboss.seam.core.contexts.sessionContext['user']</literal>."
-msgstr ""
-"Componente che fornisce accesso agli oggetti del contesto di Seam, per "
-"esempio <literal>org.jboss.seam.core.contexts.sessionContext['user']</"
-"literal>."
+msgid "Component that provides access to Seam Context objects, for example <literal>org.jboss.seam.core.contexts.sessionContext['user']</literal>."
+msgstr "Componente che fornisce accesso agli oggetti del contesto di Seam, per esempio <literal>org.jboss.seam.core.contexts.sessionContext['user']</literal>."
#. Tag: literal
#: Components.xml:43
@@ -98,15 +70,14 @@
#. Tag: para
#: Components.xml:45
#, no-c-format
-msgid ""
-"Manager component for the <literal>FacesContext</literal> context object "
-"(not a true Seam context)"
-msgstr ""
-"Componente manager per l'oggetto del contesto <literal>FacesContext</"
-"literal> (non un vero contesto di Seam)"
+msgid "Manager component for the <literal>FacesContext</literal> context object (not a true Seam context)"
+msgstr "Componente manager per l'oggetto del contesto <literal>FacesContext</literal> (non un vero contesto di Seam)"
#. Tag: para
-#: Components.xml:53 Components.xml:335 Components.xml:545 Components.xml:697
+#: Components.xml:53
+#: Components.xml:335
+#: Components.xml:545
+#: Components.xml:697
#, no-c-format
msgid "All of these components are always installed."
msgstr "Tutti questi componenti vengono sempre installati."
@@ -132,43 +103,20 @@
#. Tag: para
#: Components.xml:69
#, no-c-format
-msgid ""
-"Provides a default JSF converter for properties of type <literal>java.util."
-"Date</literal>."
-msgstr ""
-"Fornisce un converter JSF di default per le proprietà di tipo <literal>java."
-"util.Date</literal>."
+msgid "Provides a default JSF converter for properties of type <literal>java.util.Date</literal>."
+msgstr "Fornisce un converter JSF di default per le proprietà di tipo <literal>java.util.Date</literal>."
#. Tag: para
#: Components.xml:74
#, no-c-format
-msgid ""
-"This converter is automatically registered with JSF. It is provided to save "
-"a developer from having to specify a DateTimeConverter on an input field or "
-"page parameter. By default, it assumes the type to be a date (as opposed to "
-"a time or date plus time) and uses the short input style adjusted to the "
-"Locale of the user. For Locale.US, the input pattern is mm/DD/yy. However, "
-"to comply with Y2K, the year is changed from two digits to four (e.g., mm/DD/"
-"yyyy)."
-msgstr ""
-"Questo converter è automaticamente registrato con JSF. E' fornito per "
-"risparmiare allo sviluppatore il dover specificare un DateTimeConverter su "
-"un campo d'input o su un parametro di pagina. Di default, si assume che il "
-"tipo sia una data (in opposto a tempo o tempo e data) ed usa lo stile "
-"d'input short corretto con il locale dell'utente. Per Locale.US, il pattern "
-"d'input è mm/DD/yy. Comunque in accordo con Y2K, l'anno è cambiato da due "
-"cifre a quattro (es. mm/DD/yyyy)."
+msgid "This converter is automatically registered with JSF. It is provided to save a developer from having to specify a DateTimeConverter on an input field or page parameter. By default, it assumes the type to be a date (as opposed to a time or date plus time) and uses the short input style adjusted to the Locale of the user. For Locale.US, the input pattern is mm/DD/yy. However, to comply with Y2K, the year is changed from two digits to four (e.g., mm/DD/yyyy)."
+msgstr "Questo converter è automaticamente registrato con JSF. E' fornito per risparmiare allo sviluppatore il dover specificare un DateTimeConverter su un campo d'input o su un parametro di pagina. Di default, si assume che il tipo sia una data (in opposto a tempo o tempo e data) ed usa lo stile d'input short corretto con il locale dell'utente. Per Locale.US, il pattern d'input è mm/DD/yy. Comunque in accordo con Y2K, l'anno è cambiato da due cifre a quattro (es. mm/DD/yyyy)."
#. Tag: para
#: Components.xml:85
#, no-c-format
-msgid ""
-"It's possible to override the input pattern globally using component "
-"configuration. Consult the JavaDoc for this class to see examples."
-msgstr ""
-"E' possibile eseguire l'override del pattern d'input in modo globale, usando "
-"la configurazione dei componenti. Per vedere alcuni esempi consultare la "
-"JavaDoc per questa classe."
+msgid "It's possible to override the input pattern globally using component configuration. Consult the JavaDoc for this class to see examples."
+msgstr "E' possibile eseguire l'override del pattern d'input in modo globale, usando la configurazione dei componenti. Per vedere alcuni esempi consultare la JavaDoc per questa classe."
#. Tag: literal
#: Components.xml:93
@@ -180,67 +128,37 @@
#: Components.xml:95
#, no-c-format
msgid "Allows faces success messages to propagate across a browser redirect."
-msgstr ""
-"Consentono ai messaggi faces di successo di essere propagati lungo i "
-"redirect del browser."
+msgstr "Consentono ai messaggi faces di successo di essere propagati lungo i redirect del browser."
#. Tag: para
#: Components.xml:100
#, no-c-format
-msgid ""
-"<literal>add(FacesMessage facesMessage)</literal> — add a faces "
-"message, which will be displayed during the next render response phase that "
-"occurs in the current conversation."
-msgstr ""
-"<literal>add(FacesMessage facesMessage)</literal> — aggiunge un "
-"messaggio faces, che verrà mostrato durante la prossima fase di render "
-"response che avviene nella conversazione corrente."
+msgid "<literal>add(FacesMessage facesMessage)</literal> — add a faces message, which will be displayed during the next render response phase that occurs in the current conversation."
+msgstr "<literal>add(FacesMessage facesMessage)</literal> — aggiunge un messaggio faces, che verrà mostrato durante la prossima fase di render response che avviene nella conversazione corrente."
#. Tag: para
#: Components.xml:107
#, no-c-format
-msgid ""
-"<literal>add(String messageTemplate)</literal> — add a faces message, "
-"rendered from the given message template which may contain EL expressions."
-msgstr ""
-"<literal>add(String messageTemplate)</literal> — aggiunge un messaggio "
-"faces, generato dal template di messaggio che può contenere espressioni EL."
+msgid "<literal>add(String messageTemplate)</literal> — add a faces message, rendered from the given message template which may contain EL expressions."
+msgstr "<literal>add(String messageTemplate)</literal> — aggiunge un messaggio faces, generato dal template di messaggio che può contenere espressioni EL."
#. Tag: para
#: Components.xml:114
#, no-c-format
-msgid ""
-"<literal>add(Severity severity, String messageTemplate)</literal> — "
-"add a faces message, rendered from the given message template which may "
-"contain EL expressions."
-msgstr ""
-"<literal>add(Severity severity, String messageTemplate)</literal> — "
-"aggiunge un messaggio faces, generato dal template di messaggio che può "
-"contenere espressioni EL."
+msgid "<literal>add(Severity severity, String messageTemplate)</literal> — add a faces message, rendered from the given message template which may contain EL expressions."
+msgstr "<literal>add(Severity severity, String messageTemplate)</literal> — aggiunge un messaggio faces, generato dal template di messaggio che può contenere espressioni EL."
#. Tag: para
#: Components.xml:121
#, no-c-format
-msgid ""
-"<literal>addFromResourceBundle(String key)</literal> — add a faces "
-"message, rendered from a message template defined in the Seam resource "
-"bundle which may contain EL expressions."
-msgstr ""
-"<literal>addFromResourceBundle(String key)</literal> — aggiunge un "
-"messaggio faces, generato dal template di messaggio che può contenere "
-"espressioni EL."
+msgid "<literal>addFromResourceBundle(String key)</literal> — add a faces message, rendered from a message template defined in the Seam resource bundle which may contain EL expressions."
+msgstr "<literal>addFromResourceBundle(String key)</literal> — aggiunge un messaggio faces, generato dal template di messaggio che può contenere espressioni EL."
#. Tag: para
#: Components.xml:128
#, no-c-format
-msgid ""
-"<literal>addFromResourceBundle(Severity severity, String key)</literal> "
-"— add a faces message, rendered from a message template defined in the "
-"Seam resource bundle which may contain EL expressions."
-msgstr ""
-"<literal>addFromResourceBundle(Severity severity, String key)</literal> "
-"— aggiunge un messaggio faces, generato dal template di messaggio "
-"definito nel resource bundle di Seam e che può contenete espressioni EL."
+msgid "<literal>addFromResourceBundle(Severity severity, String key)</literal> — add a faces message, rendered from a message template defined in the Seam resource bundle which may contain EL expressions."
+msgstr "<literal>addFromResourceBundle(Severity severity, String key)</literal> — aggiunge un messaggio faces, generato dal template di messaggio definito nel resource bundle di Seam e che può contenete espressioni EL."
#. Tag: para
#: Components.xml:135
@@ -257,60 +175,38 @@
#. Tag: para
#: Components.xml:145
#, no-c-format
-msgid ""
-"A convenient API for performing redirects with parameters (this is "
-"especially useful for bookmarkable search results screens)."
-msgstr ""
-"Un'API per l'esecuzione dei redirect con parametri (utile specialmente per "
-"le schermate con risultati di ricerca memorizzabili come segnalibro)."
+msgid "A convenient API for performing redirects with parameters (this is especially useful for bookmarkable search results screens)."
+msgstr "Un'API per l'esecuzione dei redirect con parametri (utile specialmente per le schermate con risultati di ricerca memorizzabili come segnalibro)."
#. Tag: para
#: Components.xml:151
#, no-c-format
-msgid ""
-"<literal>redirect.viewId</literal> — the JSF view id to redirect to."
-msgstr ""
-"<literal>redirect.viewId</literal> — l'id della vista JSF a cui fare "
-"il redirect."
+msgid "<literal>redirect.viewId</literal> — the JSF view id to redirect to."
+msgstr "<literal>redirect.viewId</literal> — l'id della vista JSF a cui fare il redirect."
#. Tag: para
#: Components.xml:157
#, no-c-format
-msgid ""
-"<literal>redirect.conversationPropagationEnabled</literal> — "
-"determines whether the conversation will propagate across the redirect."
-msgstr ""
-"<literal>redirect.conversationPropagationEnabled</literal> — determina "
-"se la conversazione verrà propagata assieme al redirect."
+msgid "<literal>redirect.conversationPropagationEnabled</literal> — determines whether the conversation will propagate across the redirect."
+msgstr "<literal>redirect.conversationPropagationEnabled</literal> — determina se la conversazione verrà propagata assieme al redirect."
#. Tag: para
#: Components.xml:164
#, no-c-format
-msgid ""
-"<literal>redirect.parameters</literal> — a map of request parameter "
-"name to value, to be passed in the redirect request."
-msgstr ""
-"<literal>redirect.parameters</literal> — una mappa di nomi di "
-"parametri di richiesta da valorizzare, da passare alla richiesta di redirect."
+msgid "<literal>redirect.parameters</literal> — a map of request parameter name to value, to be passed in the redirect request."
+msgstr "<literal>redirect.parameters</literal> — una mappa di nomi di parametri di richiesta da valorizzare, da passare alla richiesta di redirect."
#. Tag: para
#: Components.xml:171
#, no-c-format
msgid "<literal>execute()</literal> — perform the redirect immediately."
-msgstr ""
-"<literal>execute()</literal> — esegue immediatamente il redirect."
+msgstr "<literal>execute()</literal> — esegue immediatamente il redirect."
#. Tag: para
#: Components.xml:177
#, no-c-format
-msgid ""
-"<literal>captureCurrentRequest()</literal> — stores the view id and "
-"request parameters of the current GET request (in the conversation context), "
-"for later use by calling <literal>execute()</literal>."
-msgstr ""
-"<literal>captureCurrentRequest()</literal> — memorizza l'id della "
-"vista ed i parametri di richiesta della richesta GET corrente (nel contesto "
-"conversazione), per poi essere usato chiamando <literal>execute()</literal>."
+msgid "<literal>captureCurrentRequest()</literal> — stores the view id and request parameters of the current GET request (in the conversation context), for later use by calling <literal>execute()</literal>."
+msgstr "<literal>captureCurrentRequest()</literal> — memorizza l'id della vista ed i parametri di richiesta della richesta GET corrente (nel contesto conversazione), per poi essere usato chiamando <literal>execute()</literal>."
#. Tag: literal
#: Components.xml:188
@@ -333,55 +229,26 @@
#. Tag: para
#: Components.xml:198
#, no-c-format
-msgid ""
-"A component (session-scoped by default) responsible for maintaining a "
-"collection of render stamps. A render stamp is an indicator as to whether a "
-"form which was rendered has been submitted. This store is useful when the "
-"client-side state saving method of JSF is being used because it puts the "
-"determination of whether a form has been posted in the control of the server "
-"rather than in the component tree which is maintained on the client."
-msgstr ""
-"Un componente (di default con scope sessione) responsabile del mantenimento "
-"della collezione di stampe da renderizzare. Una stampa da renderizzare è un "
-"indicatore che mostra se una form renderizzata è stata inviata. Questa "
-"memorizzazione è utile quando viene il metodo JSF di salvataggio dello stato "
-"lato client, poiché determina se la form è stata mandata sotto il controllo "
-"del server anziché nell'albero dei componenti che viene mantenuto sul client."
+msgid "A component (session-scoped by default) responsible for maintaining a collection of render stamps. A render stamp is an indicator as to whether a form which was rendered has been submitted. This store is useful when the client-side state saving method of JSF is being used because it puts the determination of whether a form has been posted in the control of the server rather than in the component tree which is maintained on the client."
+msgstr "Un componente (di default con scope sessione) responsabile del mantenimento della collezione di stampe da renderizzare. Una stampa da renderizzare è un indicatore che mostra se una form renderizzata è stata inviata. Questa memorizzazione è utile quando viene il metodo JSF di salvataggio dello stato lato client, poiché determina se la form è stata mandata sotto il controllo del server anziché nell'albero dei componenti che viene mantenuto sul client."
#. Tag: para
#: Components.xml:206
#, no-c-format
-msgid ""
-"To unbind this check from the session (which is one of the main design goals "
-"of client-side state saving) an implementation must be provided that stores "
-"the render stamps in the application (valid as long as the application is "
-"running) or the database (valid across server restarts)."
-msgstr ""
-"Per disassociare questo check dalla sessione (che è uno dei principali "
-"obiettivi di design del salvataggio di stato lato client) deve essere "
-"fornita un'implementazione che memorizzi le stampe da renderizzare "
-"nell'applicazione (valida a lungo quanto l'esecuzione dell'applicazione) o "
-"il database (valido fino al riavvio del server)."
+msgid "To unbind this check from the session (which is one of the main design goals of client-side state saving) an implementation must be provided that stores the render stamps in the application (valid as long as the application is running) or the database (valid across server restarts)."
+msgstr "Per disassociare questo check dalla sessione (che è uno dei principali obiettivi di design del salvataggio di stato lato client) deve essere fornita un'implementazione che memorizzi le stampe da renderizzare nell'applicazione (valida a lungo quanto l'esecuzione dell'applicazione) o il database (valido fino al riavvio del server)."
#. Tag: para
#: Components.xml:214
#, no-c-format
-msgid ""
-"<literal>maxSize</literal> — The maximum number of stamps to be kept "
-"in the store. Default: 100"
-msgstr ""
-"<literal>maxSize</literal> — Il numero massimo di stampe da mantenere "
-"in memoria. Default: 100"
+msgid "<literal>maxSize</literal> — The maximum number of stamps to be kept in the store. Default: 100"
+msgstr "<literal>maxSize</literal> — Il numero massimo di stampe da mantenere in memoria. Default: 100"
#. Tag: para
#: Components.xml:224
#, no-c-format
-msgid ""
-"These components are installed when the class <literal>javax.faces.context."
-"FacesContext</literal> is available on the classpath."
-msgstr ""
-"Tutti questi componenti vengono installati quando la classe <literal>javax."
-"faces.context.FacesContext</literal> è disponibile nel classpath."
+msgid "These components are installed when the class <literal>javax.faces.context.FacesContext</literal> is available on the classpath."
+msgstr "Tutti questi componenti vengono installati quando la classe <literal>javax.faces.context.FacesContext</literal> è disponibile nel classpath."
#. Tag: title
#: Components.xml:231
@@ -404,53 +271,32 @@
#. Tag: para
#: Components.xml:240
#, no-c-format
-msgid ""
-"An API for raising events that can be observed via <literal>@Observer</"
-"literal> methods, or method bindings in <literal>components.xml</literal>."
-msgstr ""
-"Un'API per sollevare eventi che possono essere osservati tramite i metodi "
-"<literal>@Observer</literal>, o binding di metodo in <literal>components."
-"xml</literal>."
+msgid "An API for raising events that can be observed via <literal>@Observer</literal> methods, or method bindings in <literal>components.xml</literal>."
+msgstr "Un'API per sollevare eventi che possono essere osservati tramite i metodi <literal>@Observer</literal>, o binding di metodo in <literal>components.xml</literal>."
#. Tag: para
#: Components.xml:247
#, no-c-format
-msgid ""
-"<literal>raiseEvent(String type)</literal> — raise an event of a "
-"particular type and distribute to all observers."
-msgstr ""
-"<literal>raiseEvent(String type)</literal> — solleva un evento di un "
-"tipo particolare e lo distribuisce a tutti gli osservatori."
+msgid "<literal>raiseEvent(String type)</literal> — raise an event of a particular type and distribute to all observers."
+msgstr "<literal>raiseEvent(String type)</literal> — solleva un evento di un tipo particolare e lo distribuisce a tutti gli osservatori."
#. Tag: para
#: Components.xml:254
#, no-c-format
-msgid ""
-"<literal>raiseAsynchronousEvent(String type)</literal> — raise an "
-"event to be processed asynchronously by the EJB3 timer service."
-msgstr ""
-"<literal>raiseAsynchronousEvent(String type)</literal> — solleva un "
-"evento da processare in modo asincrono da parte del servizio timer di EJB3."
+msgid "<literal>raiseAsynchronousEvent(String type)</literal> — raise an event to be processed asynchronously by the EJB3 timer service."
+msgstr "<literal>raiseAsynchronousEvent(String type)</literal> — solleva un evento da processare in modo asincrono da parte del servizio timer di EJB3."
#. Tag: para
#: Components.xml:261
#, no-c-format
-msgid ""
-"<literal>raiseTimedEvent(String type, ....)</literal> — schedule an "
-"event to be processed asynchronously by the EJB3 timer service."
-msgstr ""
-"<literal>raiseTimedEvent(String type, ....)</literal> — schedula un "
-"evento da processare in modo asincrono dal servizio timer di EJB3."
+msgid "<literal>raiseTimedEvent(String type, ....)</literal> — schedule an event to be processed asynchronously by the EJB3 timer service."
+msgstr "<literal>raiseTimedEvent(String type, ....)</literal> — schedula un evento da processare in modo asincrono dal servizio timer di EJB3."
#. Tag: para
#: Components.xml:268
#, no-c-format
-msgid ""
-"<literal>addListener(String type, String methodBinding)</literal> — "
-"add an observer for a particular event type."
-msgstr ""
-"<literal>addListener(String type, String methodBinding)</literal> — "
-"aggiunge un observer per un particolare tipo di evento."
+msgid "<literal>addListener(String type, String methodBinding)</literal> — add an observer for a particular event type."
+msgstr "<literal>addListener(String type, String methodBinding)</literal> — aggiunge un observer per un particolare tipo di evento."
#. Tag: literal
#: Components.xml:277
@@ -467,14 +313,8 @@
#. Tag: para
#: Components.xml:285
#, no-c-format
-msgid ""
-"<literal>interpolate(String template)</literal> — scan the template "
-"for JSF EL expressions of the form <literal>#{...}</literal> and replace "
-"them with their evaluated values."
-msgstr ""
-"<literal>interpolate(String template)</literal> — analizza il template "
-"per espressioni EL JSF della forma <literal>#{...}</literal> e li "
-"sostituisce con i loro valori valutati."
+msgid "<literal>interpolate(String template)</literal> — scan the template for JSF EL expressions of the form <literal>#{...}</literal> and replace them with their evaluated values."
+msgstr "<literal>interpolate(String template)</literal> — analizza il template per espressioni EL JSF della forma <literal>#{...}</literal> e li sostituisce con i loro valori valutati."
#. Tag: literal
#: Components.xml:295
@@ -491,25 +331,18 @@
#. Tag: para
#: Components.xml:302
#, no-c-format
-msgid ""
-"<literal>createValueBinding(String expression)</literal> — create a "
-"value binding object."
-msgstr ""
-"<literal>createValueBinding(String expression)</literal> — crea un "
-"oggetto per il binding di valore."
+msgid "<literal>createValueBinding(String expression)</literal> — create a value binding object."
+msgstr "<literal>createValueBinding(String expression)</literal> — crea un oggetto per il binding di valore."
#. Tag: para
#: Components.xml:308
#, no-c-format
-msgid ""
-"<literal>createMethodBinding(String expression)</literal> — create a "
-"method binding object."
-msgstr ""
-"<literal>createMethodBinding(String expression)</literal> — crea un "
-"oggetto per il binding di metodo."
+msgid "<literal>createMethodBinding(String expression)</literal> — create a method binding object."
+msgstr "<literal>createMethodBinding(String expression)</literal> — crea un oggetto per il binding di metodo."
#. Tag: literal
-#: Components.xml:317 Components.xml:1375
+#: Components.xml:317
+#: Components.xml:1375
#, no-c-format
msgid "org.jboss.seam.core.pojoCache"
msgstr "org.jboss.seam.core.pojoCache"
@@ -517,21 +350,14 @@
#. Tag: para
#: Components.xml:319
#, no-c-format
-msgid ""
-"Manager component for a JBoss Cache <literal>PojoCache</literal> instance."
-msgstr ""
-"Componente manager per un'istanza <literal>PojoCache</literal> di JBoss "
-"Cache."
+msgid "Manager component for a JBoss Cache <literal>PojoCache</literal> instance."
+msgstr "Componente manager per un'istanza <literal>PojoCache</literal> di JBoss Cache."
#. Tag: para
#: Components.xml:325
#, no-c-format
-msgid ""
-"<literal>pojoCache.cfgResourceName</literal> — the name of the "
-"configuration file. Default to <literal>treecache.xml</literal>."
-msgstr ""
-"<literal>pojoCache.cfgResourceName</literal> — il nome del file di "
-"configurazione. Di default è <literal>treecache.xml</literal>."
+msgid "<literal>pojoCache.cfgResourceName</literal> — the name of the configuration file. Default to <literal>treecache.xml</literal>."
+msgstr "<literal>pojoCache.cfgResourceName</literal> — il nome del file di configurazione. Di default è <literal>treecache.xml</literal>."
#. Tag: title
#: Components.xml:341
@@ -542,12 +368,8 @@
#. Tag: para
#: Components.xml:342
#, no-c-format
-msgid ""
-"The next group of components make it easy to build internationalized user "
-"interfaces using Seam."
-msgstr ""
-"Il prossimo gruppo di componenti semplifica la costruzione di interfacce "
-"utente internazionalizzate usando Seam."
+msgid "The next group of components make it easy to build internationalized user interfaces using Seam."
+msgstr "Il prossimo gruppo di componenti semplifica la costruzione di interfacce utente internazionalizzate usando Seam."
#. Tag: literal
#: Components.xml:349
@@ -582,14 +404,8 @@
#. Tag: para
#: Components.xml:367
#, no-c-format
-msgid ""
-"The Seam resource bundle. The resource bundle is stateless. The Seam "
-"resource bundle performs a depth-first search for keys in a list of Java "
-"resource bundles."
-msgstr ""
-"Il resource bundle di Seam. Il resource bundle è stateless. Il resource "
-"bundle di Seam esegue una ricerca delle chiavi in una lista di resource "
-"bundle di Java."
+msgid "The Seam resource bundle. The resource bundle is stateless. The Seam resource bundle performs a depth-first search for keys in a list of Java resource bundles."
+msgstr "Il resource bundle di Seam. Il resource bundle è stateless. Il resource bundle di Seam esegue una ricerca delle chiavi in una lista di resource bundle di Java."
#. Tag: literal
#: Components.xml:375
@@ -600,24 +416,14 @@
#. Tag: para
#: Components.xml:377
#, no-c-format
-msgid ""
-"The resource loader provides access to application resources and resource "
-"bundles."
-msgstr ""
-"Il resource loader fornisce accesso alle risorce dell'applicazione ed ai "
-"resource bundle."
+msgid "The resource loader provides access to application resources and resource bundles."
+msgstr "Il resource loader fornisce accesso alle risorce dell'applicazione ed ai resource bundle."
#. Tag: para
#: Components.xml:382
#, no-c-format
-msgid ""
-"<literal>resourceLoader.bundleNames</literal> — the names of the Java "
-"resource bundles to search when the Seam resource bundle is used. Default to "
-"<literal>messages</literal>."
-msgstr ""
-"<literal>resourceLoader.bundleNames</literal> — i nomi dei resource "
-"bundle da cerca quando viene usato il resource bundle di Seam. Di default è "
-"<literal>messages</literal>."
+msgid "<literal>resourceLoader.bundleNames</literal> — the names of the Java resource bundles to search when the Seam resource bundle is used. Default to <literal>messages</literal>."
+msgstr "<literal>resourceLoader.bundleNames</literal> — i nomi dei resource bundle da cerca quando viene usato il resource bundle di Seam. Di default è <literal>messages</literal>."
#. Tag: literal
#: Components.xml:392
@@ -628,15 +434,12 @@
#. Tag: para
#: Components.xml:394
#, no-c-format
-msgid ""
-"Supports selection of the locale either at configuration time, or by the "
-"user at runtime."
-msgstr ""
-"Supporta la selezione del locale o a configuration time, o dall'utente a "
-"runtime."
+msgid "Supports selection of the locale either at configuration time, or by the user at runtime."
+msgstr "Supporta la selezione del locale o a configuration time, o dall'utente a runtime."
#. Tag: para
-#: Components.xml:400 Components.xml:459
+#: Components.xml:400
+#: Components.xml:459
#, no-c-format
msgid "<literal>select()</literal> — select the specified locale."
msgstr "<literal>select()</literal> — seleziona il locale specificato."
@@ -644,74 +447,44 @@
#. Tag: para
#: Components.xml:405
#, no-c-format
-msgid ""
-"<literal>localeSelector.locale</literal> — the actual <literal>java."
-"util.Locale</literal>."
-msgstr ""
-"<literal>localeSelector.locale</literal> — l'attuale <literal>java."
-"util.Locale</literal>."
+msgid "<literal>localeSelector.locale</literal> — the actual <literal>java.util.Locale</literal>."
+msgstr "<literal>localeSelector.locale</literal> — l'attuale <literal>java.util.Locale</literal>."
#. Tag: para
#: Components.xml:411
#, no-c-format
-msgid ""
-"<literal>localeSelector.localeString</literal> — the stringified "
-"representation of the locale."
-msgstr ""
-"<literal>localeSelector.localeString</literal> — la rappresentazione "
-"in stringa del locale."
+msgid "<literal>localeSelector.localeString</literal> — the stringified representation of the locale."
+msgstr "<literal>localeSelector.localeString</literal> — la rappresentazione in stringa del locale."
#. Tag: para
#: Components.xml:417
#, no-c-format
-msgid ""
-"<literal>localeSelector.language</literal> — the language for the "
-"specified locale."
-msgstr ""
-"<literal>localeSelector.language</literal> — il linguaggio per il "
-"locale specificato."
+msgid "<literal>localeSelector.language</literal> — the language for the specified locale."
+msgstr "<literal>localeSelector.language</literal> — il linguaggio per il locale specificato."
#. Tag: para
#: Components.xml:423
#, no-c-format
-msgid ""
-"<literal>localeSelector.country</literal> — the country for the "
-"specified locale."
-msgstr ""
-"<literal>localeSelector.country</literal> — il paese del locale "
-"specificato."
+msgid "<literal>localeSelector.country</literal> — the country for the specified locale."
+msgstr "<literal>localeSelector.country</literal> — il paese del locale specificato."
#. Tag: para
#: Components.xml:429
#, no-c-format
-msgid ""
-"<literal>localeSelector.variant</literal> — the variant for the "
-"specified locale."
-msgstr ""
-"<literal>localeSelector.variant</literal> — la variante del locale "
-"specificato."
+msgid "<literal>localeSelector.variant</literal> — the variant for the specified locale."
+msgstr "<literal>localeSelector.variant</literal> — la variante del locale specificato."
#. Tag: para
#: Components.xml:435
#, no-c-format
-msgid ""
-"<literal>localeSelector.supportedLocales</literal> — a list of "
-"<literal>SelectItem</literal>s representing the supported locales listed in "
-"<literal>jsf-config.xml</literal>."
-msgstr ""
-"<literal>localeSelector.supportedLocales</literal> — una lista di "
-"<literal>SelectItem</literal>che rappresenta il locale supportati elencati "
-"in <literal>jsf-config.xml</literal>."
+msgid "<literal>localeSelector.supportedLocales</literal> — a list of <literal>SelectItem</literal>s representing the supported locales listed in <literal>jsf-config.xml</literal>."
+msgstr "<literal>localeSelector.supportedLocales</literal> — una lista di <literal>SelectItem</literal>che rappresenta il locale supportati elencati in <literal>jsf-config.xml</literal>."
#. Tag: para
#: Components.xml:442
#, no-c-format
-msgid ""
-"<literal>localeSelector.cookieEnabled</literal> — specifies that the "
-"locale selection should be persisted via a cookie."
-msgstr ""
-"<literal>localeSelector.cookieEnabled</literal> — specifica che la "
-"selezione del locale debba essere memorizzata in un cookie."
+msgid "<literal>localeSelector.cookieEnabled</literal> — specifies that the locale selection should be persisted via a cookie."
+msgstr "<literal>localeSelector.cookieEnabled</literal> — specifica che la selezione del locale debba essere memorizzata in un cookie."
#. Tag: literal
#: Components.xml:451
@@ -722,42 +495,26 @@
#. Tag: para
#: Components.xml:453
#, no-c-format
-msgid ""
-"Supports selection of the timezone either at configuration time, or by the "
-"user at runtime."
-msgstr ""
-"Supporta la selezione della timezone o a configuration time o da parte "
-"dell'utente a runtime."
+msgid "Supports selection of the timezone either at configuration time, or by the user at runtime."
+msgstr "Supporta la selezione della timezone o a configuration time o da parte dell'utente a runtime."
#. Tag: para
#: Components.xml:464
#, no-c-format
-msgid ""
-"<literal>timezoneSelector.timezone</literal> — the actual "
-"<literal>java.util.TimeZone</literal>."
-msgstr ""
-"<literal>timezoneSelector.timezone</literal> — la <literal>java.util."
-"TimeZone</literal> corrente."
+msgid "<literal>timezoneSelector.timezone</literal> — the actual <literal>java.util.TimeZone</literal>."
+msgstr "<literal>timezoneSelector.timezone</literal> — la <literal>java.util.TimeZone</literal> corrente."
#. Tag: para
#: Components.xml:470
#, no-c-format
-msgid ""
-"<literal>timezoneSelector.timeZoneId</literal> — the stringified "
-"representation of the timezone."
-msgstr ""
-"<literal>timezoneSelector.timeZoneId</literal> — la rappresentazione "
-"in stringa della timezone."
+msgid "<literal>timezoneSelector.timeZoneId</literal> — the stringified representation of the timezone."
+msgstr "<literal>timezoneSelector.timeZoneId</literal> — la rappresentazione in stringa della timezone."
#. Tag: para
#: Components.xml:476
#, no-c-format
-msgid ""
-"<literal>timezoneSelector.cookieEnabled</literal> — specifies that the "
-"timezone selection should be persisted via a cookie."
-msgstr ""
-"<literal>timezoneSelector.cookieEnabled</literal> — specificare che la "
-"selezione della timezone debba essere memorizzata in un cookie."
+msgid "<literal>timezoneSelector.cookieEnabled</literal> — specifies that the timezone selection should be persisted via a cookie."
+msgstr "<literal>timezoneSelector.cookieEnabled</literal> — specificare che la selezione della timezone debba essere memorizzata in un cookie."
#. Tag: literal
#: Components.xml:485
@@ -768,12 +525,8 @@
#. Tag: para
#: Components.xml:487
#, no-c-format
-msgid ""
-"A map containing internationalized messages rendered from message templates "
-"defined in the Seam resource bundle."
-msgstr ""
-"Una mappa contenente messaggi internazionalizzati generati da template di "
-"messaggi definiti nel resource bundle di Seam."
+msgid "A map containing internationalized messages rendered from message templates defined in the Seam resource bundle."
+msgstr "Una mappa contenente messaggi internazionalizzati generati da template di messaggi definiti nel resource bundle di Seam."
#. Tag: literal
#: Components.xml:494
@@ -784,12 +537,8 @@
#. Tag: para
#: Components.xml:496
#, no-c-format
-msgid ""
-"Supports selection of the theme either at configuration time, or by the user "
-"at runtime."
-msgstr ""
-"Supporta la selezione di temi o a configuration time, o da parte dell'utente "
-"a runtime."
+msgid "Supports selection of the theme either at configuration time, or by the user at runtime."
+msgstr "Supporta la selezione di temi o a configuration time, o da parte dell'utente a runtime."
#. Tag: para
#: Components.xml:502
@@ -800,10 +549,8 @@
#. Tag: para
#: Components.xml:507
#, no-c-format
-msgid ""
-"<literal>theme.availableThemes</literal> — the list of defined themes."
-msgstr ""
-"<literal>theme.availableThemes</literal> — la lista dei temi definiti."
+msgid "<literal>theme.availableThemes</literal> — the list of defined themes."
+msgstr "<literal>theme.availableThemes</literal> — la lista dei temi definiti."
#. Tag: para
#: Components.xml:513
@@ -814,22 +561,14 @@
#. Tag: para
#: Components.xml:519
#, no-c-format
-msgid ""
-"<literal>themeSelector.themes</literal> — a list of "
-"<literal>SelectItem</literal>s representing the defined themes."
-msgstr ""
-"<literal>themeSelector.themes</literal> — una lista di "
-"<literal>SelectItem</literal> che rappresentano il temi definiti."
+msgid "<literal>themeSelector.themes</literal> — a list of <literal>SelectItem</literal>s representing the defined themes."
+msgstr "<literal>themeSelector.themes</literal> — una lista di <literal>SelectItem</literal> che rappresentano il temi definiti."
#. Tag: para
#: Components.xml:526
#, no-c-format
-msgid ""
-"<literal>themeSelector.cookieEnabled</literal> — specifies that the "
-"theme selection should be persisted via a cookie."
-msgstr ""
-"<literal>themeSelector.cookieEnabled</literal> — specifica che la "
-"selezione del tema sia memorizzata in un cookie."
+msgid "<literal>themeSelector.cookieEnabled</literal> — specifies that the theme selection should be persisted via a cookie."
+msgstr "<literal>themeSelector.cookieEnabled</literal> — specifica che la selezione del tema sia memorizzata in un cookie."
#. Tag: literal
#: Components.xml:535
@@ -852,12 +591,8 @@
#. Tag: para
#: Components.xml:552
#, no-c-format
-msgid ""
-"The next group of components allow control of conversations by the "
-"application or user interface."
-msgstr ""
-"Il prossimo gruppo di componenti consente il controllo delle conversazioni "
-"da parte dell'applicazione o dell'interfaccia utente."
+msgid "The next group of components allow control of conversations by the application or user interface."
+msgstr "Il prossimo gruppo di componenti consente il controllo delle conversazioni da parte dell'applicazione o dell'interfaccia utente."
#. Tag: literal
#: Components.xml:559
@@ -868,175 +603,105 @@
#. Tag: para
#: Components.xml:561
#, no-c-format
-msgid ""
-"API for application control of attributes of the current Seam conversation."
-msgstr ""
-"API per il controllo dell'applicazione degli attributi della conversazione "
-"di Seam."
+msgid "API for application control of attributes of the current Seam conversation."
+msgstr "API per il controllo dell'applicazione degli attributi della conversazione di Seam."
#. Tag: para
-#: Components.xml:566 Components.xml:583
+#: Components.xml:566
+#: Components.xml:583
#, no-c-format
msgid "<literal>getId()</literal> — returns the current conversation id"
-msgstr ""
-"<literal>getId()</literal> — restituisce l'id della conversazione "
-"corrente"
+msgstr "<literal>getId()</literal> — restituisce l'id della conversazione corrente"
#. Tag: para
#: Components.xml:571
#, no-c-format
-msgid ""
-"<literal>isNested()</literal> — is the current conversation a nested "
-"conversation?"
-msgstr ""
-"<literal>isNested()</literal> — l'attuale conversazione è una "
-"conversazione annidata?"
+msgid "<literal>isNested()</literal> — is the current conversation a nested conversation?"
+msgstr "<literal>isNested()</literal> — l'attuale conversazione è una conversazione annidata?"
#. Tag: para
#: Components.xml:577
#, no-c-format
-msgid ""
-"<literal>isLongRunning()</literal> — is the current conversation a "
-"long-running conversation?"
-msgstr ""
-"<literal>isLongRunning()</literal> — l'attuale conversazione è una "
-"conversazione long-running?"
+msgid "<literal>isLongRunning()</literal> — is the current conversation a long-running conversation?"
+msgstr "<literal>isLongRunning()</literal> — l'attuale conversazione è una conversazione long-running?"
#. Tag: para
#: Components.xml:588
#, no-c-format
-msgid ""
-"<literal>getParentId()</literal> — returns the conversation id of the "
-"parent conversation"
-msgstr ""
-"<literal>getParentId()</literal> — restituisce l'id della "
-"conversazione padre"
+msgid "<literal>getParentId()</literal> — returns the conversation id of the parent conversation"
+msgstr "<literal>getParentId()</literal> — restituisce l'id della conversazione padre"
#. Tag: para
#: Components.xml:594
#, no-c-format
-msgid ""
-"<literal>getRootId()</literal> — returns the conversation id of the "
-"root conversation"
-msgstr ""
-"<literal>getRootId()</literal> — restituisce l'id della conversazione "
-"radice"
+msgid "<literal>getRootId()</literal> — returns the conversation id of the root conversation"
+msgstr "<literal>getRootId()</literal> — restituisce l'id della conversazione radice"
#. Tag: para
#: Components.xml:600
#, no-c-format
-msgid ""
-"<literal>setTimeout(int timeout)</literal> — sets the timeout for the "
-"current conversation"
-msgstr ""
-"<literal>setTimeout(int timeout)</literal> — imposta il timeout della "
-"conversazione attuale"
+msgid "<literal>setTimeout(int timeout)</literal> — sets the timeout for the current conversation"
+msgstr "<literal>setTimeout(int timeout)</literal> — imposta il timeout della conversazione attuale"
#. Tag: para
#: Components.xml:606
#, no-c-format
-msgid ""
-"<literal>setViewId(String outcome)</literal> — sets the view id to be "
-"used when switching back to the current conversation from the conversation "
-"switcher, conversation list, or breadcrumbs."
-msgstr ""
-"<literal>setViewId(String outcome)</literal> — imposta l'id della "
-"vista da usare quando si torna alla conversazione corrente dallo switcher di "
-"conversazione, dalla lista di conversazioni o dai breadcrumbs."
+msgid "<literal>setViewId(String outcome)</literal> — sets the view id to be used when switching back to the current conversation from the conversation switcher, conversation list, or breadcrumbs."
+msgstr "<literal>setViewId(String outcome)</literal> — imposta l'id della vista da usare quando si torna alla conversazione corrente dallo switcher di conversazione, dalla lista di conversazioni o dai breadcrumbs."
#. Tag: para
#: Components.xml:613
#, no-c-format
-msgid ""
-"<literal>setDescription(String description)</literal> — sets the "
-"description of the current conversation to be displayed in the conversation "
-"switcher, conversation list, or breadcrumbs."
-msgstr ""
-"<literal>setDescription(String description)</literal> — imposta la "
-"descrizione della conversazione corrente da mostrare nello switcher di "
-"conversazione, nella lista di conversazioni o nel breadcrumbs."
+msgid "<literal>setDescription(String description)</literal> — sets the description of the current conversation to be displayed in the conversation switcher, conversation list, or breadcrumbs."
+msgstr "<literal>setDescription(String description)</literal> — imposta la descrizione della conversazione corrente da mostrare nello switcher di conversazione, nella lista di conversazioni o nel breadcrumbs."
#. Tag: para
#: Components.xml:620
#, no-c-format
-msgid ""
-"<literal>redirect()</literal> — redirect to the last well-defined view "
-"id for this conversation (useful after login challenges)."
-msgstr ""
-"<literal>redirect()</literal> — redirige all'ultimo id di vista ben-"
-"definito per questa conversazione (utile dopo i login)."
+msgid "<literal>redirect()</literal> — redirect to the last well-defined view id for this conversation (useful after login challenges)."
+msgstr "<literal>redirect()</literal> — redirige all'ultimo id di vista ben-definito per questa conversazione (utile dopo i login)."
#. Tag: para
#: Components.xml:626
#, no-c-format
-msgid ""
-"<literal>leave()</literal> — exit the scope of this conversation, "
-"without actually ending the conversation."
-msgstr ""
-"<literal>leave()</literal> — esce dallo scope di questa conversazione, "
-"senza terminare la conversazione."
+msgid "<literal>leave()</literal> — exit the scope of this conversation, without actually ending the conversation."
+msgstr "<literal>leave()</literal> — esce dallo scope di questa conversazione, senza terminare la conversazione."
#. Tag: para
#: Components.xml:632
#, no-c-format
-msgid ""
-"<literal>begin()</literal> — begin a long-running conversation "
-"(equivalent to <literal>@Begin</literal>)."
-msgstr ""
-"<literal>begin()</literal> — inizia una conversazione long-running "
-"(equivalente a <literal>@Begin</literal>)."
+msgid "<literal>begin()</literal> — begin a long-running conversation (equivalent to <literal>@Begin</literal>)."
+msgstr "<literal>begin()</literal> — inizia una conversazione long-running (equivalente a <literal>@Begin</literal>)."
#. Tag: para
#: Components.xml:638
#, no-c-format
-msgid ""
-"<literal>beginPageflow(String pageflowName)</literal> — begin a long-"
-"running conversation with a pageflow (equivalent to <literal>@Begin(pageflow="
-"\"...\")</literal>)."
-msgstr ""
-"<literal>beginPageflow(String pageflowName)</literal> — inizia una "
-"conversazione long-running con un pageflow (equivalente a <literal>@Begin"
-"(pageflow=\"...\")</literal>)."
+msgid "<literal>beginPageflow(String pageflowName)</literal> — begin a long-running conversation with a pageflow (equivalent to <literal>@Begin(pageflow=\"...\")</literal>)."
+msgstr "<literal>beginPageflow(String pageflowName)</literal> — inizia una conversazione long-running con un pageflow (equivalente a <literal>@Begin(pageflow=\"...\")</literal>)."
#. Tag: para
#: Components.xml:645
#, no-c-format
-msgid ""
-"<literal>end()</literal> — end a long-running conversation (equivalent "
-"to <literal>@End</literal>)."
-msgstr ""
-"<literal>end()</literal> — termina una conversazione long-running "
-"(equivalente a <literal>@End</literal>)."
+msgid "<literal>end()</literal> — end a long-running conversation (equivalent to <literal>@End</literal>)."
+msgstr "<literal>end()</literal> — termina una conversazione long-running (equivalente a <literal>@End</literal>)."
#. Tag: para
#: Components.xml:651
#, no-c-format
-msgid ""
-"<literal>pop()</literal> — pop the conversation stack, returning to "
-"the parent conversation."
-msgstr ""
-"<literal>pop()</literal> — estrae dallo stack di conversazione, "
-"restituendo la conversazione padre."
+msgid "<literal>pop()</literal> — pop the conversation stack, returning to the parent conversation."
+msgstr "<literal>pop()</literal> — estrae dallo stack di conversazione, restituendo la conversazione padre."
#. Tag: para
#: Components.xml:657
#, no-c-format
-msgid ""
-"<literal>root()</literal> — return to the root conversation of the "
-"conversation stack."
-msgstr ""
-"<literal>root()</literal> — ritorna la conversazione root dello stack "
-"di conversazioni."
+msgid "<literal>root()</literal> — return to the root conversation of the conversation stack."
+msgstr "<literal>root()</literal> — ritorna la conversazione root dello stack di conversazioni."
#. Tag: para
#: Components.xml:663
#, no-c-format
-msgid ""
-"<literal>changeFlushMode(FlushModeType flushMode)</literal> — change "
-"the flush mode of the conversation."
-msgstr ""
-"<literal>changeFlushMode(FlushModeType flushMode)</literal> — cambia "
-"la modalità flush della conversazione."
+msgid "<literal>changeFlushMode(FlushModeType flushMode)</literal> — change the flush mode of the conversation."
+msgstr "<literal>changeFlushMode(FlushModeType flushMode)</literal> — cambia la modalità flush della conversazione."
#. Tag: literal
#: Components.xml:672
@@ -1101,42 +766,26 @@
#. Tag: para
#: Components.xml:718
#, no-c-format
-msgid ""
-"<literal>isInProcess()</literal> — returns <literal>true</literal> if "
-"there is currently a pageflow in process"
-msgstr ""
-"<literal>isInProcess()</literal> — ritorna <literal>true</literal> se "
-"c'è un pageflow nel processo"
+msgid "<literal>isInProcess()</literal> — returns <literal>true</literal> if there is currently a pageflow in process"
+msgstr "<literal>isInProcess()</literal> — ritorna <literal>true</literal> se c'è un pageflow nel processo"
#. Tag: para
#: Components.xml:724
#, no-c-format
-msgid ""
-"<literal>getProcessInstance()</literal> — returns jBPM "
-"<literal>ProcessInstance</literal> for the current pageflow"
-msgstr ""
-"<literal>getProcessInstance()</literal> — restituisce una "
-"<literal>ProcessInstance</literal> jBPM per il pageflow corrente"
+msgid "<literal>getProcessInstance()</literal> — returns jBPM <literal>ProcessInstance</literal> for the current pageflow"
+msgstr "<literal>getProcessInstance()</literal> — restituisce una <literal>ProcessInstance</literal> jBPM per il pageflow corrente"
#. Tag: para
#: Components.xml:730
#, no-c-format
-msgid ""
-"<literal>begin(String pageflowName)</literal> — begin a pageflow in "
-"the context of the current conversation"
-msgstr ""
-"<literal>begin(String pageflowName)</literal> — inizia un pageflow nel "
-"contesto della conversazione corrente"
+msgid "<literal>begin(String pageflowName)</literal> — begin a pageflow in the context of the current conversation"
+msgstr "<literal>begin(String pageflowName)</literal> — inizia un pageflow nel contesto della conversazione corrente"
#. Tag: para
#: Components.xml:736
#, no-c-format
-msgid ""
-"<literal>reposition(String nodeName)</literal> — reposition the "
-"current pageflow to a particular node"
-msgstr ""
-"<literal>reposition(String nodeName)</literal> — riposiziona il "
-"pageflow corrente in un particolare nodo"
+msgid "<literal>reposition(String nodeName)</literal> — reposition the current pageflow to a particular node"
+msgstr "<literal>reposition(String nodeName)</literal> — riposiziona il pageflow corrente in un particolare nodo"
#. Tag: literal
#: Components.xml:745
@@ -1147,33 +796,20 @@
#. Tag: para
#: Components.xml:747
#, no-c-format
-msgid ""
-"API for application control of attributes of the jBPM actor associated with "
-"the current session."
-msgstr ""
-"API per il controllo dell'applicazione degli attributi dell'attore jBPM "
-"associato alla sessione corrente."
+msgid "API for application control of attributes of the jBPM actor associated with the current session."
+msgstr "API per il controllo dell'applicazione degli attributi dell'attore jBPM associato alla sessione corrente."
#. Tag: para
#: Components.xml:753
#, no-c-format
-msgid ""
-"<literal>setId(String actorId)</literal> — sets the jBPM actor id of "
-"the current user."
-msgstr ""
-"<literal>setId(String actorId)</literal> — imposta l'id dell'attore "
-"jBPM dell'utente corrente."
+msgid "<literal>setId(String actorId)</literal> — sets the jBPM actor id of the current user."
+msgstr "<literal>setId(String actorId)</literal> — imposta l'id dell'attore jBPM dell'utente corrente."
#. Tag: para
#: Components.xml:759
#, no-c-format
-msgid ""
-"<literal>getGroupActorIds()</literal> — returns a <literal>Set</"
-"literal> to which jBPM actor ids for the current users groups may be added."
-msgstr ""
-"<literal>getGroupActorIds()</literal> — ritorna un <literal>Set</"
-"literal> a cui gli id degli attori jBPM per i gruppi degli utenti correnti "
-"possono essere aggiunti."
+msgid "<literal>getGroupActorIds()</literal> — returns a <literal>Set</literal> to which jBPM actor ids for the current users groups may be added."
+msgstr "<literal>getGroupActorIds()</literal> — ritorna un <literal>Set</literal> a cui gli id degli attori jBPM per i gruppi degli utenti correnti possono essere aggiunti."
#. Tag: literal
#: Components.xml:769
@@ -1184,23 +820,14 @@
#. Tag: para
#: Components.xml:771
#, no-c-format
-msgid ""
-"API for application control of the jBPM transition for the current task."
-msgstr ""
-"API per il controllo dell'applicazione della transizione jBPM per il task "
-"corrente."
+msgid "API for application control of the jBPM transition for the current task."
+msgstr "API per il controllo dell'applicazione della transizione jBPM per il task corrente."
#. Tag: para
#: Components.xml:777
#, no-c-format
-msgid ""
-"<literal>setName(String transitionName)</literal> — sets the jBPM "
-"transition name to be used when the current task is ended via "
-"<literal>@EndTask</literal>."
-msgstr ""
-"<literal>setName(String transitionName)</literal> — imposta il nome "
-"della transizione jBPM da usare quando il task corrente viene terminato "
-"tramite <literal>@EndTask</literal>."
+msgid "<literal>setName(String transitionName)</literal> — sets the jBPM transition name to be used when the current task is ended via <literal>@EndTask</literal>."
+msgstr "<literal>setName(String transitionName)</literal> — imposta il nome della transizione jBPM da usare quando il task corrente viene terminato tramite <literal>@EndTask</literal>."
#. Tag: literal
#: Components.xml:787
@@ -1211,112 +838,68 @@
#. Tag: para
#: Components.xml:789
#, no-c-format
-msgid ""
-"API for programmatic control of the association between the conversation and "
-"business process."
-msgstr ""
-"API per il controllo programmatico dell'associazione tra la conversazione ed "
-"il processo di business."
+msgid "API for programmatic control of the association between the conversation and business process."
+msgstr "API per il controllo programmatico dell'associazione tra la conversazione ed il processo di business."
#. Tag: para
#: Components.xml:795
#, no-c-format
-msgid ""
-"<literal>businessProcess.taskId</literal> — the id of the task "
-"associated with the current conversation."
-msgstr ""
-"<literal>businessProcess.taskId</literal> — l'id del task associato "
-"alla conversazione corrente."
+msgid "<literal>businessProcess.taskId</literal> — the id of the task associated with the current conversation."
+msgstr "<literal>businessProcess.taskId</literal> — l'id del task associato alla conversazione corrente."
#. Tag: para
#: Components.xml:801
#, no-c-format
-msgid ""
-"<literal>businessProcess.processId</literal> — the id of the process "
-"associated with the current conversation."
-msgstr ""
-"<literal>businessProcess.processId</literal> — l'id del processo "
-"associato alla conversazione corrente."
+msgid "<literal>businessProcess.processId</literal> — the id of the process associated with the current conversation."
+msgstr "<literal>businessProcess.processId</literal> — l'id del processo associato alla conversazione corrente."
#. Tag: para
#: Components.xml:807
#, no-c-format
-msgid ""
-"<literal>businessProcess.hasCurrentTask()</literal> — is a task "
-"instance associated with the current conversation?"
-msgstr ""
-"<literal>businessProcess.hasCurrentTask()</literal> — l'istanza del "
-"task è associata alla conversazione corrente?"
+msgid "<literal>businessProcess.hasCurrentTask()</literal> — is a task instance associated with the current conversation?"
+msgstr "<literal>businessProcess.hasCurrentTask()</literal> — l'istanza del task è associata alla conversazione corrente?"
#. Tag: para
#: Components.xml:813
#, no-c-format
-msgid ""
-"<literal>businessProcess.hasCurrentProcess()</literal> — is a process "
-"instance associated with the current conversation."
-msgstr ""
-"<literal>businessProcess.hasCurrentProcess()</literal> — l'istanza del "
-"processo è associata alla conversazione corrente?"
+msgid "<literal>businessProcess.hasCurrentProcess()</literal> — is a process instance associated with the current conversation."
+msgstr "<literal>businessProcess.hasCurrentProcess()</literal> — l'istanza del processo è associata alla conversazione corrente?"
#. Tag: para
#: Components.xml:819
#, no-c-format
-msgid ""
-"<literal>createProcess(String name)</literal> — create an instance of "
-"the named process definition and associate it with the current conversation."
-msgstr ""
-"<literal>createProcess(String name)</literal> — crea un'istanza della "
-"definizione del processo (con nome) e l'associa alla conversazione corrente."
+msgid "<literal>createProcess(String name)</literal> — create an instance of the named process definition and associate it with the current conversation."
+msgstr "<literal>createProcess(String name)</literal> — crea un'istanza della definizione del processo (con nome) e l'associa alla conversazione corrente."
#. Tag: para
#: Components.xml:826
#, no-c-format
-msgid ""
-"<literal>startTask()</literal> — start the task associated with the "
-"current conversation."
-msgstr ""
-"<literal>startTask()</literal> — avvia il task associato alla "
-"conversazione corrente."
+msgid "<literal>startTask()</literal> — start the task associated with the current conversation."
+msgstr "<literal>startTask()</literal> — avvia il task associato alla conversazione corrente."
#. Tag: para
#: Components.xml:832
#, no-c-format
-msgid ""
-"<literal>endTask(String transitionName)</literal> — end the task "
-"associated with the current conversation."
-msgstr ""
-"<literal>endTask(String transitionName)</literal> — termina il task "
-"associato alla conversazione corrente."
+msgid "<literal>endTask(String transitionName)</literal> — end the task associated with the current conversation."
+msgstr "<literal>endTask(String transitionName)</literal> — termina il task associato alla conversazione corrente."
#. Tag: para
#: Components.xml:838
#, no-c-format
-msgid ""
-"<literal>resumeTask(Long id)</literal> — associate the task with the "
-"given id with the current conversation."
-msgstr ""
-"<literal>resumeTask(Long id)</literal> — associa il task con l'id dato "
-"alla conversazione corrente."
+msgid "<literal>resumeTask(Long id)</literal> — associate the task with the given id with the current conversation."
+msgstr "<literal>resumeTask(Long id)</literal> — associa il task con l'id dato alla conversazione corrente."
#. Tag: para
#: Components.xml:844
#, no-c-format
-msgid ""
-"<literal>resumeProcess(Long id)</literal> — associate the process with "
-"the given id with the current conversation."
-msgstr ""
-"<literal>resumeProcess(Long id)</literal> — associa il processo con "
-"l'id dato alla conversazione corrente."
+msgid "<literal>resumeProcess(Long id)</literal> — associate the process with the given id with the current conversation."
+msgstr "<literal>resumeProcess(Long id)</literal> — associa il processo con l'id dato alla conversazione corrente."
#. Tag: para
#: Components.xml:850
#, no-c-format
-msgid ""
-"<literal>transition(String transitionName)</literal> — trigger the "
-"transition."
-msgstr ""
-"<literal>transition(String transitionName)</literal> — avvia una "
-"transizione."
+msgid "<literal>transition(String transitionName)</literal> — trigger the transition."
+msgstr "<literal>transition(String transitionName)</literal> — avvia una transizione."
#. Tag: literal
#: Components.xml:859
@@ -1352,8 +935,7 @@
#: Components.xml:877
#, no-c-format
msgid "Manager component for an event-scoped <literal>JbpmContext</literal>."
-msgstr ""
-"Componente gestore per il <literal>JbpmContext</literal> con scope evento."
+msgstr "Componente gestore per il <literal>JbpmContext</literal> con scope evento."
#. Tag: literal
#: Components.xml:883
@@ -1430,12 +1012,8 @@
#. Tag: para
#: Components.xml:932
#, no-c-format
-msgid ""
-"All of these components are installed whenever the component <literal>org."
-"jboss.seam.bpm.jbpm</literal> is installed."
-msgstr ""
-"Tutti questi componenti vengono installati quando viene installato il "
-"componente <literal>org.jboss.seam.bpm.jbpm</literal>."
+msgid "All of these components are installed whenever the component <literal>org.jboss.seam.bpm.jbpm</literal> is installed."
+msgstr "Tutti questi componenti vengono installati quando viene installato il componente <literal>org.jboss.seam.bpm.jbpm</literal>."
#. Tag: title
#: Components.xml:940
@@ -1470,14 +1048,8 @@
#. Tag: para
#: Components.xml:957
#, no-c-format
-msgid ""
-"Allows JSF pages to choose to render a control, depending upon the roles "
-"available to the current principal. <literal><h:commandButton value=\"edit"
-"\" rendered=\"#{isUserInRole['admin']}\"/></literal>."
-msgstr ""
-"Consente alla pagine JSF di scegliere di generare un controllo, dipendente "
-"dai ruoli disponibili al principal corrente. <literal><h:commandButton "
-"value=\"edit\" rendered=\"#{isUserInRole['admin']}\"/></literal>."
+msgid "Allows JSF pages to choose to render a control, depending upon the roles available to the current principal. <literal><h:commandButton value=\"edit\" rendered=\"#{isUserInRole['admin']}\"/></literal>."
+msgstr "Consente alla pagine JSF di scegliere di generare un controllo, dipendente dai ruoli disponibili al principal corrente. <literal><h:commandButton value=\"edit\" rendered=\"#{isUserInRole['admin']}\"/></literal>."
#. Tag: title
#: Components.xml:968
@@ -1488,12 +1060,8 @@
#. Tag: para
#: Components.xml:969
#, no-c-format
-msgid ""
-"These components are for use with managed <literal>TopicPublisher</literal>s "
-"and <literal>QueueSender</literal>s (see below)."
-msgstr ""
-"Questi componenti sono per l'uso di <literal>TopicPublisher</literal> e "
-"<literal>QueueSender</literal> gestite (vedere sotto)."
+msgid "These components are for use with managed <literal>TopicPublisher</literal>s and <literal>QueueSender</literal>s (see below)."
+msgstr "Questi componenti sono per l'uso di <literal>TopicPublisher</literal> e <literal>QueueSender</literal> gestite (vedere sotto)."
#. Tag: literal
#: Components.xml:976
@@ -1540,98 +1108,56 @@
#. Tag: para
#: Components.xml:1004
#, no-c-format
-msgid ""
-"Manager component for a JavaMail <literal>Session</literal>. The session can "
-"be either looked up in the JNDI context (by setting the "
-"<literal>sessionJndiName</literal> property) or it can created from the "
-"configuration options in which case the <literal>host</literal> is mandatory."
-msgstr ""
-"Componente gestore di una <literal>Session</literal> JavaMail. La sessione "
-"può essere o ricercata in un contesto JNDI (impostando la proprietà "
-"<literal>sessionJndiName</literal>) o creata dalle opzioni di configurazione "
-"nel qual caso è obbligatori l'<literal>host</literal>."
+msgid "Manager component for a JavaMail <literal>Session</literal>. The session can be either looked up in the JNDI context (by setting the <literal>sessionJndiName</literal> property) or it can created from the configuration options in which case the <literal>host</literal> is mandatory."
+msgstr "Componente gestore di una <literal>Session</literal> JavaMail. La sessione può essere o ricercata in un contesto JNDI (impostando la proprietà <literal>sessionJndiName</literal>) o creata dalle opzioni di configurazione nel qual caso è obbligatorio l'<literal>host</literal>."
#. Tag: para
#: Components.xml:1013
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.mail.mailSession.host</literal> — the hostname "
-"of the SMTP server to use"
-msgstr ""
-"<literal>org.jboss.seam.mail.mailSession.host</literal> — l'hostname "
-"del server SMTP da usare."
+msgid "<literal>org.jboss.seam.mail.mailSession.host</literal> — the hostname of the SMTP server to use"
+msgstr "<literal>org.jboss.seam.mail.mailSession.host</literal> — l'hostname del server SMTP da usare."
#. Tag: para
#: Components.xml:1018
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.mail.mailSession.port</literal> — the port of "
-"the SMTP server to use"
-msgstr ""
-"<literal>org.jboss.seam.mail.mailSession.port</literal> — la porta del "
-"server SMTP da usare."
+msgid "<literal>org.jboss.seam.mail.mailSession.port</literal> — the port of the SMTP server to use"
+msgstr "<literal>org.jboss.seam.mail.mailSession.port</literal> — la porta del server SMTP da usare."
#. Tag: para
#: Components.xml:1023
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.mail.mailSession.username</literal> — the "
-"username to use to connect to the SMTP server."
-msgstr ""
-"<literal>org.jboss.seam.mail.mailSession.username</literal> — lo "
-"username da usare per connettersi al server SMTP."
+msgid "<literal>org.jboss.seam.mail.mailSession.username</literal> — the username to use to connect to the SMTP server."
+msgstr "<literal>org.jboss.seam.mail.mailSession.username</literal> — lo username da usare per connettersi al server SMTP."
#. Tag: para
#: Components.xml:1028
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.mail.mailSession.password</literal> — the "
-"password to use to connect to the SMTP server"
-msgstr ""
-"<literal>org.jboss.seam.mail.mailSession.password</literal> — la "
-"password da usare per connettersi al server SMTP."
+msgid "<literal>org.jboss.seam.mail.mailSession.password</literal> — the password to use to connect to the SMTP server"
+msgstr "<literal>org.jboss.seam.mail.mailSession.password</literal> — la password da usare per connettersi al server SMTP."
#. Tag: para
#: Components.xml:1033
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.mail.mailSession.debug</literal> — enable "
-"JavaMail debugging (very verbose)"
-msgstr ""
-"<literal>org.jboss.seam.mail.mailSession.debug</literal> — abilita il "
-"debugging JavaMail (molto verboso)."
+msgid "<literal>org.jboss.seam.mail.mailSession.debug</literal> — enable JavaMail debugging (very verbose)"
+msgstr "<literal>org.jboss.seam.mail.mailSession.debug</literal> — abilita il debugging JavaMail (molto verboso)."
#. Tag: para
#: Components.xml:1038
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.mail.mailSession.ssl</literal> — enable SSL "
-"connection to SMTP (will default to port 465)"
-msgstr ""
-"<literal>org.jboss.seam.mail.mailSession.ssl</literal> — abilita la "
-"connessioneSSL all'SMTP (porta 465 di default)."
+msgid "<literal>org.jboss.seam.mail.mailSession.ssl</literal> — enable SSL connection to SMTP (will default to port 465)"
+msgstr "<literal>org.jboss.seam.mail.mailSession.ssl</literal> — abilita la connessioneSSL all'SMTP (porta 465 di default)."
#. Tag: para
#: Components.xml:1041
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.mail.mailSession.tls</literal> — by default "
-"true, enable TLS support in the mail session"
-msgstr ""
-"<literal>org.jboss.seam.mail.mailSession.tls</literal> — di default è "
-"true, abilita il supporto TLS nella sessione mail."
+msgid "<literal>org.jboss.seam.mail.mailSession.tls</literal> — by default true, enable TLS support in the mail session"
+msgstr "<literal>org.jboss.seam.mail.mailSession.tls</literal> — di default è true, abilita il supporto TLS nella sessione mail."
#. Tag: para
#: Components.xml:1046
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.mail.mailSession.sessionJndiName</literal> — "
-"name under which a javax.mail.Session is bound to JNDI. If supplied, all "
-"other properties will be ignored."
-msgstr ""
-"<literal>org.jboss.seam.mail.mailSession.sessionJndiName</literal> — "
-"nome sotto cui una javax.mail.Session è legata a JNDI. Se fornito, tutte le "
-"proprietà verranno ignorate."
+msgid "<literal>org.jboss.seam.mail.mailSession.sessionJndiName</literal> — name under which a javax.mail.Session is bound to JNDI. If supplied, all other properties will be ignored."
+msgstr "<literal>org.jboss.seam.mail.mailSession.sessionJndiName</literal> — nome sotto cui una javax.mail.Session è legata a JNDI. Se fornito, tutte le proprietà verranno ignorate."
#. Tag: title
#: Components.xml:1058
@@ -1642,15 +1168,8 @@
#. Tag: para
#: Components.xml:1059
#, no-c-format
-msgid ""
-"These components provide critical platform infrastructure. You can install a "
-"component which isn't installed by default by setting <literal>install=\"true"
-"\"</literal> on the component in <literal>components.xml</literal>."
-msgstr ""
-"Questi componenti forniscono un'infrastruttura critica di piattaforma. Si "
-"può installare un componente che non è installato di default impostando "
-"<literal>install=\"true\"</literal> nel componente in <literal>components."
-"xml</literal>."
+msgid "These components provide critical platform infrastructure. You can install a component which isn't installed by default by setting <literal>install=\"true\"</literal> on the component in <literal>components.xml</literal>."
+msgstr "Questi componenti forniscono un'infrastruttura critica di piattaforma. Si può installare un componente che non è installato di default impostando <literal>install=\"true\"</literal> nel componente in <literal>components.xml</literal>."
#. Tag: literal
#: Components.xml:1067
@@ -1667,38 +1186,20 @@
#. Tag: para
#: Components.xml:1074
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.core.init.jndiPattern</literal> — the JNDI "
-"pattern used for looking up session beans"
-msgstr ""
-"<literal>org.jboss.seam.core.init.jndiPattern</literal> — il pattern "
-"JNDI usato per la ricerca dei bean di sessione"
+msgid "<literal>org.jboss.seam.core.init.jndiPattern</literal> — the JNDI pattern used for looking up session beans"
+msgstr "<literal>org.jboss.seam.core.init.jndiPattern</literal> — il pattern JNDI usato per la ricerca dei bean di sessione"
#. Tag: para
#: Components.xml:1080
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.core.init.debug</literal> — enable Seam debug "
-"mode. This should be set to false when in production. You may see errors if "
-"the system is placed under any load and debug is enabled."
-msgstr ""
-"<literal>org.jboss.seam.core.init.debug</literal> — abilita la "
-"modalità di debug di Seam. Questo può essere impostato a false in "
-"produzione. Si possono vedere gli errori se il sistema è messo sotto carico "
-"ed il debug è abilitato."
+msgid "<literal>org.jboss.seam.core.init.debug</literal> — enable Seam debug mode. This should be set to false when in production. You may see errors if the system is placed under any load and debug is enabled."
+msgstr "<literal>org.jboss.seam.core.init.debug</literal> — abilita la modalità di debug di Seam. Questo può essere impostato a false in produzione. Si possono vedere gli errori se il sistema è messo sotto carico ed il debug è abilitato."
#. Tag: para
#: Components.xml:1087
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.core.init.clientSideConversations</literal> — "
-"if set to <literal>true</literal>, Seam will save conversation context "
-"variables in the client instead of in the <literal>HttpSession</literal>."
-msgstr ""
-"<literal>org.jboss.seam.core.init.clientSideConversations</literal> — "
-"se impostato a <literal>true</literal>, Seam salverà le variabili del "
-"contestodi conversazione nel client anziché in <literal>HttpSession</"
-"literal>."
+msgid "<literal>org.jboss.seam.core.init.clientSideConversations</literal> — if set to <literal>true</literal>, Seam will save conversation context variables in the client instead of in the <literal>HttpSession</literal>."
+msgstr "<literal>org.jboss.seam.core.init.clientSideConversations</literal> — se impostato a <literal>true</literal>, Seam salverà le variabili del contestodi conversazione nel client anziché in <literal>HttpSession</literal>."
#. Tag: literal
#: Components.xml:1097
@@ -1709,72 +1210,38 @@
#. Tag: para
#: Components.xml:1099
#, no-c-format
-msgid ""
-"Internal component for Seam page and conversation context management. Always "
-"installed."
-msgstr ""
-"Il componente interno per la pagina Seam e la gestione del contesto di "
-"conversazione. Sempre installato."
+msgid "Internal component for Seam page and conversation context management. Always installed."
+msgstr "Il componente interno per la pagina Seam e la gestione del contesto di conversazione. Sempre installato."
#. Tag: para
#: Components.xml:1105
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.core.manager.conversationTimeout</literal> — "
-"the conversation context timeout in milliseconds."
-msgstr ""
-"<literal>org.jboss.seam.core.manager.conversationTimeout</literal> — "
-"il timeout del contesto di conversazione espresso in millisecondi."
+msgid "<literal>org.jboss.seam.core.manager.conversationTimeout</literal> — the conversation context timeout in milliseconds."
+msgstr "<literal>org.jboss.seam.core.manager.conversationTimeout</literal> — il timeout del contesto di conversazione espresso in millisecondi."
#. Tag: para
#: Components.xml:1111
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
-"— maximum wait time for a thread attempting to gain a lock on the long-"
-"running conversation context."
-msgstr ""
-"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
-"— massimo tempo di attesa per un thread che tenta di ottenere il "
-"locksul contesto di conversazione long-running."
+msgid "<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> — maximum wait time for a thread attempting to gain a lock on the long-running conversation context."
+msgstr "<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> — massimo tempo di attesa per un thread che tenta di ottenere il locksul contesto di conversazione long-running."
#. Tag: para
#: Components.xml:1118
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.core.manager.conversationIdParameter</literal> "
-"— the request parameter used to propagate the conversation id, default "
-"to <literal>conversationId</literal>."
-msgstr ""
-"<literal>org.jboss.seam.core.manager.conversationIdParameter</literal> "
-"— il parametro di richiesta usato per propagare l'id di conversazione, "
-"di default è <literal>conversationId</literal>."
+msgid "<literal>org.jboss.seam.core.manager.conversationIdParameter</literal> — the request parameter used to propagate the conversation id, default to <literal>conversationId</literal>."
+msgstr "<literal>org.jboss.seam.core.manager.conversationIdParameter</literal> — il parametro di richiesta usato per propagare l'id di conversazione, di default è <literal>conversationId</literal>."
#. Tag: para
#: Components.xml:1125
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.core.manager.conversationIsLongRunningParameter</"
-"literal> — the request parameter used to propagate information about "
-"whether the conversation is long-running, default to "
-"<literal>conversationIsLongRunning</literal>."
-msgstr ""
-"<literal>org.jboss.seam.core.manager.conversationIsLongRunningParameter</"
-"literal> — il parametro di richiesta usato per propagare "
-"l'informazione se la conversazione è long-running, di default è "
-"<literal>conversationIsLongRunning</literal>."
+msgid "<literal>org.jboss.seam.core.manager.conversationIsLongRunningParameter</literal> — the request parameter used to propagate information about whether the conversation is long-running, default to <literal>conversationIsLongRunning</literal>."
+msgstr "<literal>org.jboss.seam.core.manager.conversationIsLongRunningParameter</literal> — il parametro di richiesta usato per propagare l'informazione se la conversazione è long-running, di default è <literal>conversationIsLongRunning</literal>."
#. Tag: para
#: Components.xml:1132
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.core.manager.defaultFlushMode</literal> — set "
-"the flush mode set by default on any Seam Managed Persistence Context. By "
-"default <literal>AUTO</literal>."
-msgstr ""
-"<literal>org.jboss.seam.core.manager.defaultFlushMode</literal> — "
-"imposta la modalità flush impostata di default su ogni contesto di "
-"persistenza gestito da Seam. Di default è <literal>AUTO</literal>."
+msgid "<literal>org.jboss.seam.core.manager.defaultFlushMode</literal> — set the flush mode set by default on any Seam Managed Persistence Context. By default <literal>AUTO</literal>."
+msgstr "<literal>org.jboss.seam.core.manager.defaultFlushMode</literal> — imposta la modalità flush impostata di default su ogni contesto di persistenza gestito da Seam. Di default è <literal>AUTO</literal>."
#. Tag: literal
#: Components.xml:1142
@@ -1786,66 +1253,37 @@
#: Components.xml:1144
#, no-c-format
msgid "Internal component for Seam workspace management. Always installed."
-msgstr ""
-"Componente interno per la gestione del workspace di Seam. Sempre installato."
+msgstr "Componente interno per la gestione del workspace di Seam. Sempre installato."
#. Tag: para
#: Components.xml:1149
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.navigation.pages.noConversationViewId</literal> "
-"— global setting for the view id to redirect to when a conversation "
-"entry is not found on the server side."
-msgstr ""
-"<literal>org.jboss.seam.navigation.pages.noConversationViewId</literal> "
-"— impostazione globale per l'id di vista a cui fare redirect quando "
-"un'entry di conversazione non viene trovata lato server."
+msgid "<literal>org.jboss.seam.navigation.pages.noConversationViewId</literal> — global setting for the view id to redirect to when a conversation entry is not found on the server side."
+msgstr "<literal>org.jboss.seam.navigation.pages.noConversationViewId</literal> — impostazione globale per l'id di vista a cui fare redirect quando un'entry di conversazione non viene trovata lato server."
#. Tag: para
#: Components.xml:1156
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.navigation.pages.loginViewId</literal> — "
-"global setting for the view id to redirect to when an unauthenticated user "
-"tries to access a protected view."
-msgstr ""
-"<literal>org.jboss.seam.navigation.pages.loginViewId</literal> — "
-"impostazione globale per l'id della vista a cui fare redirect quando un "
-"utente non autenticato prova ad accedere ad una vista protetta."
+msgid "<literal>org.jboss.seam.navigation.pages.loginViewId</literal> — global setting for the view id to redirect to when an unauthenticated user tries to access a protected view."
+msgstr "<literal>org.jboss.seam.navigation.pages.loginViewId</literal> — impostazione globale per l'id della vista a cui fare redirect quando un utente non autenticato prova ad accedere ad una vista protetta."
#. Tag: para
#: Components.xml:1163
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.navigation.pages.httpPort</literal> — global "
-"setting for the port to use when the http scheme is requested."
-msgstr ""
-"<literal>org.jboss.seam.navigation.pages.httpPort</literal> — "
-"impostazione globale per la porta da usare quando uno schema http viene "
-"richiesto."
+msgid "<literal>org.jboss.seam.navigation.pages.httpPort</literal> — global setting for the port to use when the http scheme is requested."
+msgstr "<literal>org.jboss.seam.navigation.pages.httpPort</literal> — impostazione globale per la porta da usare quando uno schema http viene richiesto."
#. Tag: para
#: Components.xml:1170
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.navigation.pages.httpsPort</literal> — global "
-"setting for the port to use when the https scheme is requested."
-msgstr ""
-"<literal>org.jboss.seam.navigation.pages.httpsPort</literal> — "
-"impostazione globale per la porta da usare quando uno schema https viene "
-"richiesto."
+msgid "<literal>org.jboss.seam.navigation.pages.httpsPort</literal> — global setting for the port to use when the https scheme is requested."
+msgstr "<literal>org.jboss.seam.navigation.pages.httpsPort</literal> — impostazione globale per la porta da usare quando uno schema https viene richiesto."
#. Tag: para
#: Components.xml:1177
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.navigation.pages.resources</literal> — a list "
-"of resources to search for <literal>pages.xml</literal> style resources. "
-"Defaults to <literal>WEB-INF/pages.xml</literal>."
-msgstr ""
-"<literal>org.jboss.seam.navigation.pages.resources</literal> — una "
-"lista di risorse da cercare per le risorse di stile <literal>pages.xml</"
-"literal>. Di default è <literal>WEB-INF/pages.xml</literal>."
+msgid "<literal>org.jboss.seam.navigation.pages.resources</literal> — a list of resources to search for <literal>pages.xml</literal> style resources. Defaults to <literal>WEB-INF/pages.xml</literal>."
+msgstr "<literal>org.jboss.seam.navigation.pages.resources</literal> — una lista di risorse da cercare per le risorse di stile <literal>pages.xml</literal>. Di default è <literal>WEB-INF/pages.xml</literal>."
#. Tag: literal
#: Components.xml:1187
@@ -1856,36 +1294,20 @@
#. Tag: para
#: Components.xml:1189
#, no-c-format
-msgid ""
-"Bootstraps a <literal>JbpmConfiguration</literal>. Install as class "
-"<literal>org.jboss.seam.bpm.Jbpm</literal>."
-msgstr ""
-"Avvia una <literal>JbpmConfiguration</literal>. Installa <literal>org.jboss."
-"seam.bpm.Jbpm</literal> come classe."
+msgid "Bootstraps a <literal>JbpmConfiguration</literal>. Install as class <literal>org.jboss.seam.bpm.Jbpm</literal>."
+msgstr "Avvia una <literal>JbpmConfiguration</literal>. Installa <literal>org.jboss.seam.bpm.Jbpm</literal> come classe."
#. Tag: para
#: Components.xml:1195
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.bpm.jbpm.processDefinitions</literal> — a list "
-"of resource names of jPDL files to be used for orchestration of business "
-"processes."
-msgstr ""
-"<literal>org.jboss.seam.bpm.jbpm.processDefinitions</literal> — una "
-"lista di nomi di risorsa di file jPDL da usare per l'orchestrazione dei "
-"processi di business."
+msgid "<literal>org.jboss.seam.bpm.jbpm.processDefinitions</literal> — a list of resource names of jPDL files to be used for orchestration of business processes."
+msgstr "<literal>org.jboss.seam.bpm.jbpm.processDefinitions</literal> — una lista di nomi di risorsa di file jPDL da usare per l'orchestrazione dei processi di business."
#. Tag: para
#: Components.xml:1202
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.bpm.jbpm.pageflowDefinitions</literal> — a "
-"list of resource names of jPDL files to be used for orchestration of "
-"conversation page flows."
-msgstr ""
-"<literal>org.jboss.seam.bpm.jbpm.pageflowDefinitions</literal> — una "
-"lista di nomi di risorsa di file jPDL da usare per l'orchestrazione dei "
-"pageflow di conversazione."
+msgid "<literal>org.jboss.seam.bpm.jbpm.pageflowDefinitions</literal> — a list of resource names of jPDL files to be used for orchestration of conversation page flows."
+msgstr "<literal>org.jboss.seam.bpm.jbpm.pageflowDefinitions</literal> — una lista di nomi di risorsa di file jPDL da usare per l'orchestrazione dei pageflow di conversazione."
#. Tag: literal
#: Components.xml:1212
@@ -1896,12 +1318,8 @@
#. Tag: para
#: Components.xml:1214
#, no-c-format
-msgid ""
-"Internal session-scoped component recording the active long-running "
-"conversations between requests."
-msgstr ""
-"Componente interno con scope sessione che registra le conversazioni long-"
-"running attive tra le richieste."
+msgid "Internal session-scoped component recording the active long-running conversations between requests."
+msgstr "Componente interno con scope sessione che registra le conversazioni long-running attive tra le richieste."
#. Tag: literal
#: Components.xml:1221
@@ -1912,12 +1330,8 @@
#. Tag: para
#: Components.xml:1223
#, no-c-format
-msgid ""
-"Internal page-scoped component recording the conversation context associated "
-"with a page."
-msgstr ""
-"Componente interno con scope pagina che registra il contesto di "
-"conversazione associato alla pagina."
+msgid "Internal page-scoped component recording the conversation context associated with a page."
+msgstr "Componente interno con scope pagina che registra il contesto di conversazione associato alla pagina."
#. Tag: literal
#: Components.xml:1230
@@ -1928,12 +1342,8 @@
#. Tag: para
#: Components.xml:1232
#, no-c-format
-msgid ""
-"Internal component recording the persistence contexts which were used in the "
-"current conversation."
-msgstr ""
-"Componente interno che registra i contesti di persistenza usati nell'attuale "
-"conversazione."
+msgid "Internal component recording the persistence contexts which were used in the current conversation."
+msgstr "Componente interno che registra i contesti di persistenza usati nell'attuale conversazione."
#. Tag: literal
#: Components.xml:1239
@@ -1944,24 +1354,14 @@
#. Tag: para
#: Components.xml:1241
#, no-c-format
-msgid ""
-"Manages a JMS <literal>QueueConnection</literal>. Installed whenever managed "
-"<literal>QueueSender</literal> is installed."
-msgstr ""
-"Gestisce una <literal>QueueConnection</literal> JMS. Installata ogni volta "
-"che viene installata una <literal>QueueSender</literal> gestita."
+msgid "Manages a JMS <literal>QueueConnection</literal>. Installed whenever managed <literal>QueueSender</literal> is installed."
+msgstr "Gestisce una <literal>QueueConnection</literal> JMS. Installata ogni volta che viene installata una <literal>QueueSender</literal> gestita."
#. Tag: para
#: Components.xml:1247
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.jms.queueConnection.queueConnectionFactoryJndiName</"
-"literal> — the JNDI name of a JMS <literal>QueueConnectionFactory</"
-"literal>. Default to <literal>UIL2ConnectionFactory</literal>"
-msgstr ""
-"<literal>org.jboss.seam.jms.queueConnection.queueConnectionFactoryJndiName</"
-"literal> — il nome JNDI di un <literal>QueueConnectionFactory</"
-"literal> JMS. Di default è <literal>UIL2ConnectionFactory</literal>"
+msgid "<literal>org.jboss.seam.jms.queueConnection.queueConnectionFactoryJndiName</literal> — the JNDI name of a JMS <literal>QueueConnectionFactory</literal>. Default to <literal>UIL2ConnectionFactory</literal>"
+msgstr "<literal>org.jboss.seam.jms.queueConnection.queueConnectionFactoryJndiName</literal> — il nome JNDI di un <literal>QueueConnectionFactory</literal> JMS. Di default è <literal>UIL2ConnectionFactory</literal>"
#. Tag: literal
#: Components.xml:1257
@@ -1972,24 +1372,14 @@
#. Tag: para
#: Components.xml:1259
#, no-c-format
-msgid ""
-"Manages a JMS <literal>TopicConnection</literal>. Installed whenever managed "
-"<literal>TopicPublisher</literal> is installed."
-msgstr ""
-"Gestisce una <literal>TopicConnection</literal> JMS. Installata ogni volta "
-"che viene installata una <literal>TopicPublisher</literal> gestita."
+msgid "Manages a JMS <literal>TopicConnection</literal>. Installed whenever managed <literal>TopicPublisher</literal> is installed."
+msgstr "Gestisce una <literal>TopicConnection</literal> JMS. Installata ogni volta che viene installata una <literal>TopicPublisher</literal> gestita."
#. Tag: para
#: Components.xml:1265
#, no-c-format
-msgid ""
-"<literal>org.jboss.seam.jms.topicConnection.topicConnectionFactoryJndiName</"
-"literal> — the JNDI name of a JMS <literal>TopicConnectionFactory</"
-"literal>. Default to <literal>UIL2ConnectionFactory</literal>"
-msgstr ""
-"<literal>org.jboss.seam.jms.topicConnection.topicConnectionFactoryJndiName</"
-"literal> — il nome JNDIdi un <literal>TopicConnectionFactory</literal> "
-"JMS . Di default è <literal>UIL2ConnectionFactory</literal>"
+msgid "<literal>org.jboss.seam.jms.topicConnection.topicConnectionFactoryJndiName</literal> — the JNDI name of a JMS <literal>TopicConnectionFactory</literal>. Default to <literal>UIL2ConnectionFactory</literal>"
+msgstr "<literal>org.jboss.seam.jms.topicConnection.topicConnectionFactoryJndiName</literal> — il nome JNDIdi un <literal>TopicConnectionFactory</literal> JMS . Di default è <literal>UIL2ConnectionFactory</literal>"
#. Tag: literal
#: Components.xml:1275
@@ -2001,8 +1391,7 @@
#: Components.xml:1277
#, no-c-format
msgid "Abstraction layer for non-standardized features of JPA provider."
-msgstr ""
-"Layer d'astrazione per le funzionalità non standardizzate del provider JPA."
+msgstr "Layer d'astrazione per le funzionalità non standardizzate del provider JPA."
#. Tag: literal
#: Components.xml:1283
@@ -2013,11 +1402,8 @@
#. Tag: para
#: Components.xml:1285
#, no-c-format
-msgid ""
-"Caches instances of Hibernate Validator <literal>ClassValidator</literal>."
-msgstr ""
-"Mette in cache istanze di <literal>ClassValidator</literal> di Hibernate "
-"Validator."
+msgid "Caches instances of Hibernate Validator <literal>ClassValidator</literal>."
+msgstr "Mette in cache istanze di <literal>ClassValidator</literal> di Hibernate Validator."
#. Tag: literal
#: Components.xml:1291
@@ -2028,12 +1414,8 @@
#. Tag: para
#: Components.xml:1293
#, no-c-format
-msgid ""
-"Allows the application to determine whether validation failed or was "
-"successful."
-msgstr ""
-"Consente all'applicazione di determinare se la validazione ha fallito o ha "
-"avuto successo."
+msgid "Allows the application to determine whether validation failed or was successful."
+msgstr "Consente all'applicazione di determinare se la validazione ha fallito o ha avuto successo."
#. Tag: literal
#: Components.xml:1300
@@ -2042,7 +1424,8 @@
msgstr "org.jboss.seam.debug.introspector"
#. Tag: para
-#: Components.xml:1302 Components.xml:1310
+#: Components.xml:1302
+#: Components.xml:1310
#, no-c-format
msgid "Support for the Seam Debug Page."
msgstr "Supporto per la pagina di debug di Seam."
@@ -2074,13 +1457,8 @@
#. Tag: para
#: Components.xml:1326
#, no-c-format
-msgid ""
-"API for controlling transactions and abstracting the underlying transaction "
-"management implementation behind a JTA-compatible interface."
-msgstr ""
-"API per controllare le transazioni ed astrarre l'implementazione della "
-"gestione delle transazioni sottostante dietro all'interfaccia compatibile-"
-"JTA."
+msgid "API for controlling transactions and abstracting the underlying transaction management implementation behind a JTA-compatible interface."
+msgstr "API per controllare le transazioni ed astrarre l'implementazione della gestione delle transazioni sottostante dietro all'interfaccia compatibile-JTA."
#. Tag: literal
#: Components.xml:1334
@@ -2091,12 +1469,8 @@
#. Tag: para
#: Components.xml:1336
#, no-c-format
-msgid ""
-"Decides if an action expression in an incoming URL is safe. This is done by "
-"checking that the action expression exists in the view."
-msgstr ""
-"Decide se un'espressione d'azione in un URL entrante è sicura. Questo viene "
-"fatto controllando che l'espressione d'azione esista nella vista."
+msgid "Decides if an action expression in an incoming URL is safe. This is done by checking that the action expression exists in the view."
+msgstr "Decide se un'espressione d'azione in un URL entrante è sicura. Questo viene fatto controllando che l'espressione d'azione esista nella vista."
#. Tag: title
#: Components.xml:1346
@@ -2150,8 +1524,7 @@
#: Components.xml:1388
#, no-c-format
msgid "Manages a map of UIComponents keyed by component id."
-msgstr ""
-"Gestisce una mappa per i UIComponent aventi come chiave l'id del componente."
+msgstr "Gestisce una mappa per i UIComponent aventi come chiave l'id del componente."
#. Tag: title
#: Components.xml:1400
@@ -2162,16 +1535,8 @@
#. Tag: para
#: Components.xml:1401
#, no-c-format
-msgid ""
-"Certain special Seam component classes are installable multiple times under "
-"names specified in the Seam configuration. For example, the following lines "
-"in <literal>components.xml</literal> install and configure two Seam "
-"components:"
-msgstr ""
-"Alcune classi speciali di componenti Seam sono installabili più volte sotto "
-"nomi specificati nella configurazione Seam. Per esempio, le seguenti linee "
-"in <literal>components.xml</literal> installano e configurano due componenti "
-"Seam:"
+msgid "Certain special Seam component classes are installable multiple times under names specified in the Seam configuration. For example, the following lines in <literal>components.xml</literal> install and configure two Seam components:"
+msgstr "Alcune classi speciali di componenti Seam sono installabili più volte sotto nomi specificati nella configurazione Seam. Per esempio, le seguenti linee in <literal>components.xml</literal> installano e configurano due componenti Seam:"
#. Tag: programlisting
#: Components.xml:1407
@@ -2179,37 +1544,29 @@
msgid ""
"<![CDATA[<component name=\"bookingDatabase\"\n"
" class=\"org.jboss.seam.persistence.ManagedPersistenceContext\">\n"
-" <property name=\"persistenceUnitJndiName\">java:/comp/emf/"
-"bookingPersistence</property>\n"
+" <property name=\"persistenceUnitJndiName\">java:/comp/emf/bookingPersistence</property>\n"
"</component>\n"
"\n"
"<component name=\"userDatabase\"\n"
" class=\"org.jboss.seam.persistence.ManagedPersistenceContext\">\n"
-" <property name=\"persistenceUnitJndiName\">java:/comp/emf/"
-"userPersistence</property>\n"
+" <property name=\"persistenceUnitJndiName\">java:/comp/emf/userPersistence</property>\n"
"</component>]]>"
msgstr ""
"<![CDATA[<component name=\"bookingDatabase\"\n"
" class=\"org.jboss.seam.persistence.ManagedPersistenceContext\">\n"
-" <property name=\"persistenceUnitJndiName\">java:/comp/emf/"
-"bookingPersistence</property>\n"
+" <property name=\"persistenceUnitJndiName\">java:/comp/emf/bookingPersistence</property>\n"
"</component>\n"
"\n"
"<component name=\"userDatabase\"\n"
" class=\"org.jboss.seam.persistence.ManagedPersistenceContext\">\n"
-" <property name=\"persistenceUnitJndiName\">java:/comp/emf/"
-"userPersistence</property>\n"
+" <property name=\"persistenceUnitJndiName\">java:/comp/emf/userPersistence</property>\n"
"</component>]]>"
#. Tag: para
#: Components.xml:1409
#, no-c-format
-msgid ""
-"The Seam component names are <literal>bookingDatabase</literal> and "
-"<literal>userDatabase</literal>."
-msgstr ""
-"I nomi dei componenti Seam sono <literal>bookingDatabase</literal> e "
-"<literal>userDatabase</literal>."
+msgid "The Seam component names are <literal>bookingDatabase</literal> and <literal>userDatabase</literal>."
+msgstr "I nomi dei componenti Seam sono <literal>bookingDatabase</literal> e <literal>userDatabase</literal>."
#. Tag: emphasis
#: Components.xml:1416
@@ -2226,36 +1583,20 @@
#. Tag: para
#: Components.xml:1419
#, no-c-format
-msgid ""
-"Manager component for a conversation scoped managed <literal>EntityManager</"
-"literal> with an extended persistence context."
-msgstr ""
-"Componente gestore per un <literal>EntityManager</literal> gestito con scope "
-"conversazione con un contesto di persistenza esteso."
+msgid "Manager component for a conversation scoped managed <literal>EntityManager</literal> with an extended persistence context."
+msgstr "Componente gestore per un <literal>EntityManager</literal> gestito con scope conversazione con un contesto di persistenza esteso."
#. Tag: para
#: Components.xml:1425
#, no-c-format
-msgid ""
-"<emphasis><entityManager></emphasis>.entityManagerFactory — a "
-"value binding expression that evaluates to an instance of "
-"<literal>EntityManagerFactory</literal>."
-msgstr ""
-"<emphasis><entityManager></emphasis>.entityManagerFactory — "
-"un'espressione di value binding che valuta un'istanza di "
-"<literal>EntityManagerFactory</literal>."
+msgid "<emphasis><entityManager></emphasis>.entityManagerFactory — a value binding expression that evaluates to an instance of <literal>EntityManagerFactory</literal>."
+msgstr "<emphasis><entityManager></emphasis>.entityManagerFactory — un'espressione di value binding che valuta un'istanza di <literal>EntityManagerFactory</literal>."
#. Tag: para
#: Components.xml:1430
#, no-c-format
-msgid ""
-"<emphasis><entityManager></emphasis>.persistenceUnitJndiName — "
-"the JNDI name of the entity manager factory, default to java:/<emphasis><"
-"managedPersistenceContext></emphasis>."
-msgstr ""
-"<emphasis><entityManager></emphasis>.persistenceUnitJndiName — "
-"il nome JNDI di un entity manager factory, il valore di default è java:/"
-"<emphasis><managedPersistenceContext></emphasis>."
+msgid "<emphasis><entityManager></emphasis>.persistenceUnitJndiName — the JNDI name of the entity manager factory, default to java:/<emphasis><managedPersistenceContext></emphasis>."
+msgstr "<emphasis><entityManager></emphasis>.persistenceUnitJndiName — il nome JNDI di un entity manager factory, il valore di default è java:/<emphasis><managedPersistenceContext></emphasis>."
#. Tag: emphasis
#: Components.xml:1440
@@ -2272,25 +1613,18 @@
#. Tag: para
#: Components.xml:1443
#, no-c-format
-msgid ""
-"Manages a JPA <literal>EntityManagerFactory</literal>. This is most useful "
-"when using JPA outside of an EJB 3.0 supporting environment."
-msgstr ""
-"Gestisce una <literal>EntityManagerFactory</literal> JPA. Questo è utile "
-"quando sia usa JPA fuori dall'ambiente EJB3.0."
+msgid "Manages a JPA <literal>EntityManagerFactory</literal>. This is most useful when using JPA outside of an EJB 3.0 supporting environment."
+msgstr "Gestisce una <literal>EntityManagerFactory</literal> JPA. Questo è utile quando sia usa JPA fuori dall'ambiente EJB3.0."
#. Tag: para
#: Components.xml:1449
#, no-c-format
-msgid ""
-"<literal>entityManagerFactory.persistenceUnitName</literal> — the name "
-"of the persistence unit."
-msgstr ""
-"<literal>entityManagerFactory.persistenceUnitName</literal> — il nome "
-"dell'unità di persistenza."
+msgid "<literal>entityManagerFactory.persistenceUnitName</literal> — the name of the persistence unit."
+msgstr "<literal>entityManagerFactory.persistenceUnitName</literal> — il nome dell'unità di persistenza."
#. Tag: para
-#: Components.xml:1455 Components.xml:1498
+#: Components.xml:1455
+#: Components.xml:1498
#, no-c-format
msgid "See the API JavaDoc for further configuration properties."
msgstr "Si vede la API JavaDoc per ulteriori proprietà di configurazione."
@@ -2310,35 +1644,20 @@
#. Tag: para
#: Components.xml:1464
#, no-c-format
-msgid ""
-"Manager component for a conversation scoped managed Hibernate "
-"<literal>Session</literal>."
-msgstr ""
-"Componente gestore per una <literal>Session</literal> HIbernate gestita con "
-"scope di conversazione."
+msgid "Manager component for a conversation scoped managed Hibernate <literal>Session</literal>."
+msgstr "Componente gestore per una <literal>Session</literal> HIbernate gestita con scope di conversazione."
#. Tag: para
#: Components.xml:1469
#, no-c-format
-msgid ""
-"<emphasis><session></emphasis>.sessionFactory — a value binding "
-"expression that evaluates to an instance of <literal>SessionFactory</"
-"literal>."
-msgstr ""
-"<emphasis><session></emphasis>.sessionFactory — un'espressione "
-"di binding che valuta un'istanza di <literal>SessionFactory</literal>."
+msgid "<emphasis><session></emphasis>.sessionFactory — a value binding expression that evaluates to an instance of <literal>SessionFactory</literal>."
+msgstr "<emphasis><session></emphasis>.sessionFactory — un'espressione di binding che valuta un'istanza di <literal>SessionFactory</literal>."
#. Tag: para
#: Components.xml:1474
#, no-c-format
-msgid ""
-"<emphasis><session></emphasis>.sessionFactoryJndiName — the JNDI "
-"name of the session factory, default to java:/<emphasis><"
-"managedSession></emphasis>."
-msgstr ""
-"<emphasis><session></emphasis>.sessionFactoryJndiName — il nome "
-"JNDI della factory di sessione, di default è java:/<emphasis><"
-"managedSession></emphasis>."
+msgid "<emphasis><session></emphasis>.sessionFactoryJndiName — the JNDI name of the session factory, default to java:/<emphasis><managedSession></emphasis>."
+msgstr "<emphasis><session></emphasis>.sessionFactoryJndiName — il nome JNDI della factory di sessione, di default è java:/<emphasis><managedSession></emphasis>."
#. Tag: emphasis
#: Components.xml:1484
@@ -2361,13 +1680,8 @@
#. Tag: para
#: Components.xml:1492
#, no-c-format
-msgid ""
-"<literal><sessionFactory>.cfgResourceName</literal> — the path "
-"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
-msgstr ""
-"<literal><sessionFactory>.cfgResourceName</literal> — il "
-"percorso al file di configurazione. Di default è <literal>hibernate.cfg.xml</"
-"literal>."
+msgid "<literal><sessionFactory>.cfgResourceName</literal> — the path to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr "<literal><sessionFactory>.cfgResourceName</literal> — il percorso al file di configurazione. Di default è <literal>hibernate.cfg.xml</literal>."
#. Tag: emphasis
#: Components.xml:1504
@@ -2384,22 +1698,14 @@
#. Tag: para
#: Components.xml:1507
#, no-c-format
-msgid ""
-"Manager component for an event scoped managed JMS <literal>QueueSender</"
-"literal>."
-msgstr ""
-"Componente gestore per un <literal>QueueSender</literal> JMS gestito con "
-"scope evento."
+msgid "Manager component for an event scoped managed JMS <literal>QueueSender</literal>."
+msgstr "Componente gestore per un <literal>QueueSender</literal> JMS gestito con scope evento."
#. Tag: para
#: Components.xml:1512
#, no-c-format
-msgid ""
-"<emphasis><managedQueueSender></emphasis>.queueJndiName — the "
-"JNDI name of the JMS queue."
-msgstr ""
-"<emphasis><managedQueueSender></emphasis>.queueJndiName — il "
-"nome JNDI della coda JMS."
+msgid "<emphasis><managedQueueSender></emphasis>.queueJndiName — the JNDI name of the JMS queue."
+msgstr "<emphasis><managedQueueSender></emphasis>.queueJndiName — il nome JNDI della coda JMS."
#. Tag: emphasis
#: Components.xml:1521
@@ -2416,22 +1722,14 @@
#. Tag: para
#: Components.xml:1524
#, no-c-format
-msgid ""
-"Manager component for an event scoped managed JMS <literal>TopicPublisher</"
-"literal>."
-msgstr ""
-"Componente gestore per un <literal>TopicPublisher</literal> JMS gestito con "
-"scope evento."
+msgid "Manager component for an event scoped managed JMS <literal>TopicPublisher</literal>."
+msgstr "Componente gestore per un <literal>TopicPublisher</literal> JMS gestito con scope evento."
#. Tag: para
#: Components.xml:1529
#, no-c-format
-msgid ""
-"<emphasis><managedTopicPublisher></emphasis>.topicJndiName — the "
-"JNDI name of the JMS topic."
-msgstr ""
-"<emphasis><managedTopicPublisher></emphasis>.topicJndiName — il "
-"nome JNDI del topic JMS."
+msgid "<emphasis><managedTopicPublisher></emphasis>.topicJndiName — the JNDI name of the JMS topic."
+msgstr "<emphasis><managedTopicPublisher></emphasis>.topicJndiName — il nome JNDI del topic JMS."
#. Tag: emphasis
#: Components.xml:1538
@@ -2448,22 +1746,14 @@
#. Tag: para
#: Components.xml:1541
#, no-c-format
-msgid ""
-"Manager component for a conversation scoped managed Drools "
-"<literal>WorkingMemory</literal>."
-msgstr ""
-"Componente gestore di una <literal>WorkingMemory</literal> di Drools gestita "
-"con scope di conversazione."
+msgid "Manager component for a conversation scoped managed Drools <literal>WorkingMemory</literal>."
+msgstr "Componente gestore di una <literal>WorkingMemory</literal> di Drools gestita con scope di conversazione."
#. Tag: para
#: Components.xml:1546
#, no-c-format
-msgid ""
-"<emphasis><managedWorkingMemory></emphasis>.ruleBase — a value "
-"expression that evaluates to an instance of <literal>RuleBase</literal>."
-msgstr ""
-"<emphasis><managedWorkingMemory></emphasis>.ruleBase — "
-"un'espressione che valuta un'istanza di <literal>RuleBase</literal>."
+msgid "<emphasis><managedWorkingMemory></emphasis>.ruleBase — a value expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr "<emphasis><managedWorkingMemory></emphasis>.ruleBase — un'espressione che valuta un'istanza di <literal>RuleBase</literal>."
#. Tag: emphasis
#: Components.xml:1555
@@ -2480,36 +1770,20 @@
#. Tag: para
#: Components.xml:1558
#, no-c-format
-msgid ""
-"Manager component for an application scoped Drools <literal>RuleBase</"
-"literal>. <emphasis>Note that this is not really intended for production "
-"usage, since it does not support dynamic installation of new rules.</"
-"emphasis>"
-msgstr ""
-"Componente gestore di una <literal>RuleBase</literal> di Drools con scope di "
-"applicazione. <emphasis>Si noti che questo non è inteso per l'uso in "
-"produzione, poiché non supporta l'installazione dinamica di nuove regole.</"
-"emphasis>"
+msgid "Manager component for an application scoped Drools <literal>RuleBase</literal>. <emphasis>Note that this is not really intended for production usage, since it does not support dynamic installation of new rules.</emphasis>"
+msgstr "Componente gestore di una <literal>RuleBase</literal> di Drools con scope di applicazione. <emphasis>Si noti che questo non è inteso per l'uso in produzione, poiché non supporta l'installazione dinamica di nuove regole.</emphasis>"
#. Tag: para
#: Components.xml:1565
#, no-c-format
-msgid ""
-"<emphasis><ruleBase></emphasis>.ruleFiles — a list of files "
-"containing Drools rules."
-msgstr ""
-"<emphasis><ruleBase></emphasis>.ruleFiles — una lista di file "
-"contenenti regole Drools."
+msgid "<emphasis><ruleBase></emphasis>.ruleFiles — a list of files containing Drools rules."
+msgstr "<emphasis><ruleBase></emphasis>.ruleFiles — una lista di file contenenti regole Drools."
#. Tag: para
#: Components.xml:1569
#, no-c-format
-msgid ""
-"<emphasis><ruleBase></emphasis>.dslFile — a Drools DSL "
-"definition."
-msgstr ""
-"<emphasis><ruleBase></emphasis>.dslFile — una definizione DSL di "
-"Drools."
+msgid "<emphasis><ruleBase></emphasis>.dslFile — a Drools DSL definition."
+msgstr "<emphasis><ruleBase></emphasis>.dslFile — una definizione DSL di Drools."
#. Tag: emphasis
#: Components.xml:1578
@@ -2567,3 +1841,4 @@
#~ "<literal>org.jboss.seam.core.init.userTransactionName</literal> — "
#~ "il nome JNDI da usare quando si ricerca l'oggetto "
#~ "<literal>UserTransaction</literal> JTA."
+
15 years, 6 months
Seam SVN: r10964 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-25 08:33:29 -0400 (Mon, 25 May 2009)
New Revision: 10964
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Concepts.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Events.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Concepts.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Concepts.po 2009-05-25 04:13:03 UTC (rev 10963)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Concepts.po 2009-05-25 12:33:29 UTC (rev 10964)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 15:00+0000\n"
-"PO-Revision-Date: 2009-05-12 23:43+0100\n"
+"PO-Revision-Date: 2009-05-25 14:18+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -87,7 +87,7 @@
#: Concepts.xml:234
#, no-c-format
msgid "<para>Business process context</para>"
-msgstr "<para>contesto processo di Business</para>"
+msgstr "<para>contesto Processo di Business</para>"
#. Tag: para
#: Concepts.xml:45
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Events.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Events.po 2009-05-25 04:13:03 UTC (rev 10963)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Events.po 2009-05-25 12:33:29 UTC (rev 10964)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-03-31 09:07+0000\n"
-"PO-Revision-Date: 2009-05-23 00:10+0100\n"
+"PO-Revision-Date: 2009-05-25 14:16+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -1172,7 +1172,7 @@
#: Events.xml:564
#, no-c-format
msgid "Seam defines a number of built-in events that the application can use to perform special kinds of framework integration. The events are:"
-msgstr "Seam definisce un numero di eventi predefinito che l'applicazione può usare per eseguire l'integrazione col framework. Questi eventi sono:"
+msgstr "Seam definisce un numero di eventi predefiniti che l'applicazione può usare per eseguire l'integrazione col framework. Questi eventi sono:"
#. Tag: para
#: Events.xml:570
@@ -1424,7 +1424,7 @@
#: Events.xml:622
#, no-c-format
msgid "EJB 3.0 introduced a standard interceptor model for session bean components. To add an interceptor to a bean, you need to write a class with a method annotated <literal>@AroundInvoke</literal> and annotate the bean with an <literal>@Interceptors</literal> annotation that specifies the name of the interceptor class. For example, the following interceptor checks that the user is logged in before allowing invoking an action listener method:"
-msgstr "EJB 3.0 ha introdotto un modello di interceptor standard per componenti session bean. Per aggiungere un interceptor ad un bean, occorre scrivere una classe con un metodo annotato con <literal>@AroundInvoke</literal> ed annotare il bean con l'annotazione <literal>@Interceptors</literal> che specifica ilnome della classe interceptor. Per esempio, il seguente interceptor controlla che l'utente sia loggato prima di consentire l'invocazione di un metodo action listener:"
+msgstr "EJB 3.0 ha introdotto un modello standard di interceptor per componenti session bean. Per aggiungere un interceptor ad un bean, occorre scrivere una classe con un metodo annotato con <literal>@AroundInvoke</literal> ed annotare il bean con l'annotazione <literal>@Interceptors</literal> che specifica ilnome della classe interceptor. Per esempio, il seguente interceptor controlla che l'utente sia loggato prima di consentire l'invocazione di un metodo action listener:"
#. Tag: programlisting
#: Events.xml:631
15 years, 6 months
Seam SVN: r10963 - branches/community/Seam_2_1.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-25 00:13:03 -0400 (Mon, 25 May 2009)
New Revision: 10963
Modified:
branches/community/Seam_2_1/build.xml
Log:
dist metawidget JARs (correctly this time)
Modified: branches/community/Seam_2_1/build.xml
===================================================================
--- branches/community/Seam_2_1/build.xml 2009-05-25 03:35:13 UTC (rev 10962)
+++ branches/community/Seam_2_1/build.xml 2009-05-25 04:13:03 UTC (rev 10963)
@@ -639,7 +639,7 @@
<target name="copyexamples">
<ant dir="examples" target="copyextradependencies" inheritall="false">
- <property name="lib.dir" value="../${dist.lib.dir}"/>
+ <property name="lib.dir" value="${dist.lib.dir}"/>
<property name="metawidget-war.lib" value="true"/>
<property name="metawidget-ear.lib" value="true"/>
</ant>
15 years, 6 months
Seam SVN: r10962 - branches/community/Seam_2_1/seam-gen/view.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-24 23:35:13 -0400 (Sun, 24 May 2009)
New Revision: 10962
Modified:
branches/community/Seam_2_1/seam-gen/view/index.html
Log:
remove endlines
Modified: branches/community/Seam_2_1/seam-gen/view/index.html
===================================================================
--- branches/community/Seam_2_1/seam-gen/view/index.html 2009-05-25 03:28:02 UTC (rev 10961)
+++ branches/community/Seam_2_1/seam-gen/view/index.html 2009-05-25 03:35:13 UTC (rev 10962)
@@ -1,5 +1 @@
-<html>
-<head>
- <meta http-equiv="Refresh" content="0; URL=home.seam">
-</head>
-</html>
\ No newline at end of file
+<html><head><meta http-equiv="Refresh" content="0; URL=home.seam"/></head></html>
15 years, 6 months
Seam SVN: r10961 - in branches/community/Seam_2_1/examples: booking/view/css and 14 other directories.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-24 23:28:02 -0400 (Sun, 24 May 2009)
New Revision: 10961
Modified:
branches/community/Seam_2_1/examples/booking/view/css/screen.css
branches/community/Seam_2_1/examples/booking/view/home.xhtml
branches/community/Seam_2_1/examples/booking/view/register.xhtml
branches/community/Seam_2_1/examples/groovybooking/resources/import-dev.sql
branches/community/Seam_2_1/examples/groovybooking/resources/import-prod.sql
branches/community/Seam_2_1/examples/groovybooking/resources/import-test.sql
branches/community/Seam_2_1/examples/groovybooking/view/css/screen.css
branches/community/Seam_2_1/examples/groovybooking/view/home.xhtml
branches/community/Seam_2_1/examples/groovybooking/view/register.xhtml
branches/community/Seam_2_1/examples/hibernate/view/home.xhtml
branches/community/Seam_2_1/examples/hibernate/view/register.xhtml
branches/community/Seam_2_1/examples/icefaces/resources/import.sql
branches/community/Seam_2_1/examples/icefaces/view/register.xhtml
branches/community/Seam_2_1/examples/icefaces/view/template.xhtml
branches/community/Seam_2_1/examples/jee5/booking/resources/import.sql
branches/community/Seam_2_1/examples/jee5/booking/view/home.xhtml
branches/community/Seam_2_1/examples/jee5/booking/view/register.xhtml
branches/community/Seam_2_1/examples/jee5/remoting/resources/import.sql
branches/community/Seam_2_1/examples/jpa/view/home.xhtml
branches/community/Seam_2_1/examples/jpa/view/register.xhtml
branches/community/Seam_2_1/examples/nestedbooking/view/home.xhtml
branches/community/Seam_2_1/examples/nestedbooking/view/register.xhtml
branches/community/Seam_2_1/examples/nestedbooking/view/template.xhtml
branches/community/Seam_2_1/examples/spring/resources/import.sql
branches/community/Seam_2_1/examples/spring/view/home.xhtml
branches/community/Seam_2_1/examples/spring/view/register.xhtml
branches/community/Seam_2_1/examples/spring/view/template.xhtml
branches/community/Seam_2_1/examples/wicket/resources/import.sql
Log:
fix spelling of hotel name
change MyFaces references to JSF (Mojarra) in footer
Modified: branches/community/Seam_2_1/examples/booking/view/css/screen.css
===================================================================
--- branches/community/Seam_2_1/examples/booking/view/css/screen.css 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/booking/view/css/screen.css 2009-05-25 03:28:02 UTC (rev 10961)
@@ -240,6 +240,8 @@
#content table.radio {
border: 0px;
}
+#content .input table,
+#content .input tbody tr td,
#content table.radio tbody tr td {
border: 0px;
border-left: 0px;
Modified: branches/community/Seam_2_1/examples/booking/view/home.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/booking/view/home.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/booking/view/home.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -74,7 +74,7 @@
</div>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</f:view>
</body>
Modified: branches/community/Seam_2_1/examples/booking/view/register.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/booking/view/register.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/booking/view/register.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -93,7 +93,7 @@
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
Modified: branches/community/Seam_2_1/examples/groovybooking/resources/import-dev.sql
===================================================================
--- branches/community/Seam_2_1/examples/groovybooking/resources/import-dev.sql 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/groovybooking/resources/import-dev.sql 2009-05-25 03:28:02 UTC (rev 10961)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'MarriottDowntown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
Modified: branches/community/Seam_2_1/examples/groovybooking/resources/import-prod.sql
===================================================================
--- branches/community/Seam_2_1/examples/groovybooking/resources/import-prod.sql 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/groovybooking/resources/import-prod.sql 2009-05-25 03:28:02 UTC (rev 10961)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'MarriottDowntown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
Modified: branches/community/Seam_2_1/examples/groovybooking/resources/import-test.sql
===================================================================
--- branches/community/Seam_2_1/examples/groovybooking/resources/import-test.sql 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/groovybooking/resources/import-test.sql 2009-05-25 03:28:02 UTC (rev 10961)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'MarriottDowntown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
Modified: branches/community/Seam_2_1/examples/groovybooking/view/css/screen.css
===================================================================
--- branches/community/Seam_2_1/examples/groovybooking/view/css/screen.css 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/groovybooking/view/css/screen.css 2009-05-25 03:28:02 UTC (rev 10961)
@@ -231,6 +231,8 @@
#radio table {
border: 0px;
}
+#content .input table,
+#content .input tbody tr td,
#radio table tr td {
border: 0px;
border-left: 0px;
Modified: branches/community/Seam_2_1/examples/groovybooking/view/home.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/groovybooking/view/home.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/groovybooking/view/home.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -42,7 +42,7 @@
</h:form>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</f:view>
</body>
Modified: branches/community/Seam_2_1/examples/groovybooking/view/register.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/groovybooking/view/register.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/groovybooking/view/register.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -96,7 +96,7 @@
</div>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/hibernate/view/home.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/hibernate/view/home.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/hibernate/view/home.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -42,7 +42,7 @@
</h:form>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</f:view>
</body>
Modified: branches/community/Seam_2_1/examples/hibernate/view/register.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/hibernate/view/register.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/hibernate/view/register.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -98,7 +98,7 @@
</div>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/icefaces/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/icefaces/resources/import.sql 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/icefaces/resources/import.sql 2009-05-25 03:28:02 UTC (rev 10961)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'MarriottDowntown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
Modified: branches/community/Seam_2_1/examples/icefaces/view/register.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/icefaces/view/register.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/icefaces/view/register.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -93,7 +93,7 @@
</ice:panelGroup>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</ice:panelGroup>
Modified: branches/community/Seam_2_1/examples/icefaces/view/template.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/icefaces/view/template.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/icefaces/view/template.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -34,7 +34,7 @@
<ui:include src="conversations.xhtml" />
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, ICEfaces and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), ICEfaces and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/jee5/booking/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/jee5/booking/resources/import.sql 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/jee5/booking/resources/import.sql 2009-05-25 03:28:02 UTC (rev 10961)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'MarriottDowntown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
Modified: branches/community/Seam_2_1/examples/jee5/booking/view/home.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/jee5/booking/view/home.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/jee5/booking/view/home.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -42,7 +42,7 @@
</h:form>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</f:view>
</body>
Modified: branches/community/Seam_2_1/examples/jee5/booking/view/register.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/jee5/booking/view/register.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/jee5/booking/view/register.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -98,7 +98,7 @@
</div>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/jee5/remoting/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/jee5/remoting/resources/import.sql 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/jee5/remoting/resources/import.sql 2009-05-25 03:28:02 UTC (rev 10961)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'MarriottDowntown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
Modified: branches/community/Seam_2_1/examples/jpa/view/home.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/jpa/view/home.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/jpa/view/home.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -42,7 +42,7 @@
</h:form>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</f:view>
</body>
Modified: branches/community/Seam_2_1/examples/jpa/view/register.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/jpa/view/register.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/jpa/view/register.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -98,7 +98,7 @@
</div>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/nestedbooking/view/home.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/nestedbooking/view/home.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/nestedbooking/view/home.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -44,7 +44,7 @@
<div id="content">
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</f:view>
</body>
Modified: branches/community/Seam_2_1/examples/nestedbooking/view/register.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/nestedbooking/view/register.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/nestedbooking/view/register.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -68,7 +68,7 @@
</div>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/nestedbooking/view/template.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/nestedbooking/view/template.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/nestedbooking/view/template.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -30,7 +30,7 @@
<ui:include src="conversations.xhtml" />
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/spring/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/spring/resources/import.sql 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/spring/resources/import.sql 2009-05-25 03:28:02 UTC (rev 10961)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'MarriottDowntown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
Modified: branches/community/Seam_2_1/examples/spring/view/home.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/spring/view/home.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/spring/view/home.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -62,7 +62,7 @@
</div>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</f:view>
</body>
Modified: branches/community/Seam_2_1/examples/spring/view/register.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/spring/view/register.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/spring/view/register.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -111,7 +111,7 @@
</div>
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/spring/view/template.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/spring/view/template.xhtml 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/spring/view/template.xhtml 2009-05-25 03:28:02 UTC (rev 10961)
@@ -30,7 +30,7 @@
<ui:include src="conversations.xhtml" />
</div>
</div>
- <div id="footer">Created with JBoss EJB 3.0, Seam, MyFaces, and Facelets</div>
+ <div id="footer">Created with JBoss EJB 3.0, Seam, JSF (Mojarra), and Facelets</div>
</div>
</body>
</html>
Modified: branches/community/Seam_2_1/examples/wicket/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/wicket/resources/import.sql 2009-05-25 03:27:14 UTC (rev 10960)
+++ branches/community/Seam_2_1/examples/wicket/resources/import.sql 2009-05-25 03:28:02 UTC (rev 10961)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'MarriottDowntown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
15 years, 6 months
Seam SVN: r10960 - in branches/community/Seam_2_1/examples/metawidget: booking/resources/META-INF and 4 other directories.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-24 23:27:14 -0400 (Sun, 24 May 2009)
New Revision: 10960
Added:
branches/community/Seam_2_1/examples/metawidget/booking/resources/META-INF/jboss-app.xml
branches/community/Seam_2_1/examples/metawidget/dvdstore/resources/META-INF/jboss-app.xml
branches/community/Seam_2_1/examples/metawidget/groovybooking/resources/WEB-INF/jboss-web.xml
Modified:
branches/community/Seam_2_1/examples/metawidget/booking/build.xml
branches/community/Seam_2_1/examples/metawidget/booking/resources/META-INF/application.xml
branches/community/Seam_2_1/examples/metawidget/dvdstore/build.xml
branches/community/Seam_2_1/examples/metawidget/dvdstore/resources/META-INF/application.xml
branches/community/Seam_2_1/examples/metawidget/groovybooking/build.xml
Log:
introduce jboss-*.xml files so classloaders don't conflict with those from original examples
fix Groovy compilation problem on explode in metawidget-groovybooking
rename ds files
Modified: branches/community/Seam_2_1/examples/metawidget/booking/build.xml
===================================================================
--- branches/community/Seam_2_1/examples/metawidget/booking/build.xml 2009-05-25 02:34:03 UTC (rev 10959)
+++ branches/community/Seam_2_1/examples/metawidget/booking/build.xml 2009-05-25 03:27:14 UTC (rev 10960)
@@ -3,7 +3,7 @@
<!-- Naming -->
<property name="Name" value="Seam Metawidget Booking Example"/>
- <property name="example.name" value="jboss-seam-metawidget-booking"/>
+ <property name="example.name" value="seam-metawidget-booking"/>
<property file="${basedir}/build.properties" />
@@ -23,7 +23,7 @@
<property name="metawidget-ear.lib" value="yes"/>
<!-- Datasource -->
- <property name="example.ds" value="jboss-seam-metawidget-booking-ds.xml"/>
+ <property name="example.ds" value="seam-metawidget-booking-ds.xml"/>
<target name="init" depends="stage">
<antcall target="SeamExample.init"/>
Modified: branches/community/Seam_2_1/examples/metawidget/booking/resources/META-INF/application.xml
===================================================================
--- branches/community/Seam_2_1/examples/metawidget/booking/resources/META-INF/application.xml 2009-05-25 02:34:03 UTC (rev 10959)
+++ branches/community/Seam_2_1/examples/metawidget/booking/resources/META-INF/application.xml 2009-05-25 03:27:14 UTC (rev 10960)
@@ -8,13 +8,13 @@
<module>
<web>
- <web-uri>jboss-seam-metawidget-booking.war</web-uri>
+ <web-uri>seam-metawidget-booking.war</web-uri>
<context-root>/seam-metawidget-booking</context-root>
</web>
</module>
<module>
- <ejb>jboss-seam-metawidget-booking.jar</ejb>
+ <ejb>seam-metawidget-booking.jar</ejb>
</module>
<module>
Added: branches/community/Seam_2_1/examples/metawidget/booking/resources/META-INF/jboss-app.xml
===================================================================
--- branches/community/Seam_2_1/examples/metawidget/booking/resources/META-INF/jboss-app.xml (rev 0)
+++ branches/community/Seam_2_1/examples/metawidget/booking/resources/META-INF/jboss-app.xml 2009-05-25 03:27:14 UTC (rev 10960)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jboss-app PUBLIC "-//JBoss//DTD J2EE Application 4.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd">
+<jboss-app>
+ <loader-repository>
+ seam.jboss.org:loader=seam-metawidget-booking
+ </loader-repository>
+</jboss-app>
Modified: branches/community/Seam_2_1/examples/metawidget/dvdstore/build.xml
===================================================================
--- branches/community/Seam_2_1/examples/metawidget/dvdstore/build.xml 2009-05-25 02:34:03 UTC (rev 10959)
+++ branches/community/Seam_2_1/examples/metawidget/dvdstore/build.xml 2009-05-25 03:27:14 UTC (rev 10960)
@@ -3,7 +3,7 @@
<!-- Naming -->
<property name="Name" value="Seam DVD Store Example"/>
- <property name="example.name" value="jboss-seam-metawidget-dvdstore"/>
+ <property name="example.name" value="seam-metawidget-dvdstore"/>
<property file="${basedir}/build.properties" />
@@ -25,7 +25,7 @@
<property name="metawidget-ear.lib" value="yes"/>
<!-- Datasource -->
- <property name="example.ds" value="jboss-seam-metawidget-dvdstore-ds.xml"/>
+ <property name="example.ds" value="seam-metawidget-dvdstore-ds.xml"/>
<target name="init" depends="stage">
<antcall target="SeamExample.init"/>
Modified: branches/community/Seam_2_1/examples/metawidget/dvdstore/resources/META-INF/application.xml
===================================================================
--- branches/community/Seam_2_1/examples/metawidget/dvdstore/resources/META-INF/application.xml 2009-05-25 02:34:03 UTC (rev 10959)
+++ branches/community/Seam_2_1/examples/metawidget/dvdstore/resources/META-INF/application.xml 2009-05-25 03:27:14 UTC (rev 10960)
@@ -7,17 +7,17 @@
<display-name>Metawidget DVD Store</display-name>
<module>
- <ejb>jboss-seam-metawidget-dvdstore.jar</ejb>
- </module>
-
- <module>
<web>
- <web-uri>jboss-seam-metawidget-dvdstore.war</web-uri>
+ <web-uri>seam-metawidget-dvdstore.war</web-uri>
<context-root>/seam-metawidget-dvdstore</context-root>
</web>
</module>
<module>
+ <ejb>seam-metawidget-dvdstore.jar</ejb>
+ </module>
+
+ <module>
<ejb>jboss-seam.jar</ejb>
</module>
Added: branches/community/Seam_2_1/examples/metawidget/dvdstore/resources/META-INF/jboss-app.xml
===================================================================
--- branches/community/Seam_2_1/examples/metawidget/dvdstore/resources/META-INF/jboss-app.xml (rev 0)
+++ branches/community/Seam_2_1/examples/metawidget/dvdstore/resources/META-INF/jboss-app.xml 2009-05-25 03:27:14 UTC (rev 10960)
@@ -0,0 +1,7 @@
+<!DOCTYPE jboss-app PUBLIC "-//JBoss//DTD J2EE Application 4.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd">
+<jboss-app>
+ <loader-repository>
+ seam.jboss.org:loader=seam-metawidget-dvdstore
+ </loader-repository>
+</jboss-app>
Modified: branches/community/Seam_2_1/examples/metawidget/groovybooking/build.xml
===================================================================
--- branches/community/Seam_2_1/examples/metawidget/groovybooking/build.xml 2009-05-25 02:34:03 UTC (rev 10959)
+++ branches/community/Seam_2_1/examples/metawidget/groovybooking/build.xml 2009-05-25 03:27:14 UTC (rev 10960)
@@ -3,7 +3,7 @@
<!-- Naming -->
<property name="Name" value="Seam Metawidget Groovy Booking Example"/>
- <property name="example.name" value="jboss-seam-metawidget-groovybooking"/>
+ <property name="example.name" value="seam-metawidget-groovybooking"/>
<property file="${basedir}/build.properties" />
@@ -115,6 +115,12 @@
</target>
<target name="compilemodel" depends="groovy.init">
+ <!-- We have to delete, otherwise Groovy fails to compile for some reason when files already exist in destination -->
+ <delete>
+ <fileset dir="${classes.model.dir}">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
<groovyc classpathref="build.classpath" destdir="${classes.model.dir}" srcdir="${src.model.dir}" />
</target>
Added: branches/community/Seam_2_1/examples/metawidget/groovybooking/resources/WEB-INF/jboss-web.xml
===================================================================
--- branches/community/Seam_2_1/examples/metawidget/groovybooking/resources/WEB-INF/jboss-web.xml (rev 0)
+++ branches/community/Seam_2_1/examples/metawidget/groovybooking/resources/WEB-INF/jboss-web.xml 2009-05-25 03:27:14 UTC (rev 10960)
@@ -0,0 +1,10 @@
+<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
+<jboss-web>
+ <class-loading java2ClassLoadingCompliance="false">
+ <loader-repository>
+ seam.jboss.org:loader=seam-metawidget-groovybooking
+ <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
+ </loader-repository>
+ </class-loading>
+</jboss-web>
15 years, 6 months
Seam SVN: r10959 - branches/community/Seam_2_1/examples/booking/resources.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-24 22:34:03 -0400 (Sun, 24 May 2009)
New Revision: 10959
Modified:
branches/community/Seam_2_1/examples/booking/resources/import.sql
Log:
fix spelling of hotel
Modified: branches/community/Seam_2_1/examples/booking/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/booking/resources/import.sql 2009-05-24 17:26:28 UTC (rev 10958)
+++ branches/community/Seam_2_1/examples/booking/resources/import.sql 2009-05-25 02:34:03 UTC (rev 10959)
@@ -9,7 +9,7 @@
insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80, 'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire', 'WI', '54703', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90, 'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
-insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriot Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160, 'Marriott Downtown', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'Spain')
insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'Israel')
insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240, 'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo', '', '105', 'Japan')
15 years, 6 months
Seam SVN: r10958 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-24 13:26:28 -0400 (Sun, 24 May 2009)
New Revision: 10958
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Remoting.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Spring.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Weblogic.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Remoting.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Remoting.po 2009-05-24 13:12:26 UTC (rev 10957)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Remoting.po 2009-05-24 17:26:28 UTC (rev 10958)
@@ -6,8 +6,8 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-05-23 11:30+0000\n"
-"PO-Revision-Date: 2009-05-24 14:06+0100\n"
-"Last-Translator: Francesco Milesi <milesif(a)gmail.com>\n"
+"PO-Revision-Date: 2009-05-24 19:14+0100\n"
+"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1286,7 +1286,7 @@
#: Remoting.xml:610
#, no-c-format
msgid "Before you can subscribe to a JMS topic, you must first configure a list of the topics that can be subscribed to by Seam Remoting. List the topics under <literal>org.jboss.seam.remoting.messaging.subscriptionRegistry.allowedTopics</literal> in <literal>seam.properties</literal>, <literal>web.xml</literal> or <literal>components.xml</literal>."
-msgstr "Prima di sottoscrivere una topic JMS, occorre configurare la lista di topic che Seam Remoting può sottoscrivere. Occorre elencare le topic nella proprietà <literal>org.jboss.seam.remoting.messaging.subscriptionRegistry.allowedTopics</literal> in <literal>seam.properties</literal>, <literal>web.xml</literal> o <literal>components.xml</literal>."
+msgstr "Prima di sottoscrivere una topic JMS, occorre configurare la lista di topic che Seam Remoting può sottoscrivere. Occorre elencare i topic nella proprietà <literal>org.jboss.seam.remoting.messaging.subscriptionRegistry.allowedTopics</literal> in <literal>seam.properties</literal>, <literal>web.xml</literal> o <literal>components.xml</literal>."
#. Tag: programlisting
#: Remoting.xml:615
@@ -1299,13 +1299,13 @@
#: Remoting.xml:620
#, no-c-format
msgid "Subscribing to a JMS Topic"
-msgstr "Iscriversi ad un Topic JMS"
+msgstr "Sottoscrivere ad un topic JMS"
#. Tag: para
#: Remoting.xml:622
#, no-c-format
msgid "The following example demonstrates how to subscribe to a JMS Topic:"
-msgstr "L'esempio seguente mostra come sottoscrivere una topic JMS:"
+msgstr "L'esempio seguente mostra come sottoscrivere un topic JMS:"
#. Tag: programlisting
#: Remoting.xml:624
@@ -1331,7 +1331,7 @@
#: Remoting.xml:626
#, no-c-format
msgid "The <literal>Seam.Remoting.subscribe()</literal> method accepts two parameters, the first being the name of the JMS Topic to subscribe to, the second being the callback function to invoke when a message is received."
-msgstr "Il metodo <literal>Seam.Remoting.subscribe()</literal> accetta due parametri, di cui il primo è il nome della topic JMS da sottoscrivere e il secondo la funzione di callback che deve essere invocata quando si riceve un messaggio."
+msgstr "Il metodo <literal>Seam.Remoting.subscribe()</literal> accetta due parametri, di cui il primo è il nome del topic JMS da sottoscrivere e il secondo la funzione di callback che deve essere invocata quando si riceve un messaggio."
# messaggi testuali e messaggi con oggetti.
#. Tag: para
@@ -1344,14 +1344,14 @@
#: Remoting.xml:639
#, no-c-format
msgid "Unsubscribing from a Topic"
-msgstr "Disiscriversi da un Topic"
+msgstr "Disiscriversi da un topic"
# una topic o un topic?
#. Tag: para
#: Remoting.xml:641
#, no-c-format
msgid "To unsubscribe from a topic, call <literal>Seam.Remoting.unsubscribe()</literal> and pass in the topic name:"
-msgstr "Per annullare la sottoscrizione ad una topic, bisogna fare una chiamata a <literal>Seam.Remoting.unsubscribe()</literal> passando il nome della topic come parametro:"
+msgstr "Per annullare la sottoscrizione ad un topic, bisogna fare una chiamata a <literal>Seam.Remoting.unsubscribe()</literal> passando il nome del topic come parametro:"
#. Tag: programlisting
#: Remoting.xml:644
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Spring.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Spring.po 2009-05-24 13:12:26 UTC (rev 10957)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Spring.po 2009-05-24 17:26:28 UTC (rev 10958)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-04-15 13:52+0000\n"
-"PO-Revision-Date: 2009-05-24 13:27+0100\n"
+"PO-Revision-Date: 2009-05-24 19:21+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -83,13 +83,13 @@
#: Spring.xml:40
#, no-c-format
msgid "Support for Spring <literal>TaskExecutors</literal> to back <literal>@Asynchronous</literal> calls"
-msgstr ""
+msgstr "Supporto per <literal>TaskExecutors</literal> di Spring alle chiamate <literal>@Asynchronous</literal>"
#. Tag: title
#: Spring.xml:45
#, no-c-format
msgid "Injecting Seam components into Spring beans"
-msgstr ""
+msgstr "Iniezione dei componenti Seam nei bean Spring"
#. Tag: para
#: Spring.xml:47
@@ -235,19 +235,19 @@
#: Spring.xml:90
#, no-c-format
msgid "It is even easier to inject Spring beans into Seam component instances. Actually, there are two possible approaches:"
-msgstr ""
+msgstr "E' ancora più facile iniettare i bean Spring nelle istanze dei componenti Seam. In verità ci sono due approcci:"
#. Tag: para
#: Spring.xml:95
#, no-c-format
msgid "inject a Spring bean using an EL expression"
-msgstr ""
+msgstr "iniettare un bean Spring usando un'espressione EL"
#. Tag: para
#: Spring.xml:98
#, no-c-format
msgid "make the Spring bean a Seam component"
-msgstr ""
+msgstr "rendere il bean Spring un componente Seam"
#. Tag: para
#: Spring.xml:102
@@ -339,7 +339,7 @@
#: Spring.xml:145
#, no-c-format
msgid "Seam-scoped Spring beans"
-msgstr ""
+msgstr "Bean Spring con scope di Seam"
#. Tag: para
#: Spring.xml:147
@@ -545,7 +545,7 @@
#: Spring.xml:255
#, no-c-format
msgid "The <literal>applicationContext.xml</literal> might look like:"
-msgstr ""
+msgstr "<literal>applicationContext.xml</literal> potrebbe apparire come:"
#. Tag: programlisting
#: Spring.xml:256
@@ -611,7 +611,7 @@
#: Spring.xml:268
#, no-c-format
msgid "Using a Seam Managed Hibernate Session in Spring"
-msgstr ""
+msgstr "Uso di una sessione Hibernate gestita da Seam in Spring"
#. Tag: para
#: Spring.xml:270
@@ -705,7 +705,7 @@
#: Spring.xml:313
#, no-c-format
msgid "Using a Spring TaskExecutor for @Asynchronous"
-msgstr ""
+msgstr "Uso di TaskExecutor di Spring per @Asynchronous"
#. Tag: para
#: Spring.xml:315
@@ -723,7 +723,7 @@
#: Spring.xml:322
#, no-c-format
msgid "Because a Spring <literal>TaskExecutor</literal> does not support scheduling of an asynchronous event a fallback Seam <literal>Dispatcher</literal> can be provided to handle scheduled asynchronous event like so:"
-msgstr ""
+msgstr "Poiché un <literal>TaskExecutor</literal> di Spring non supporta lo scheduling di eventi asincroni, può essere fornito un <literal>Dispatcher</literal> di Seam per gestire gli eventi asincroni schedulati in questo modo:"
#. Tag: programlisting
#: Spring.xml:325
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Weblogic.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Weblogic.po 2009-05-24 13:12:26 UTC (rev 10957)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Weblogic.po 2009-05-24 17:26:28 UTC (rev 10958)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-11-06 00:24+0000\n"
-"PO-Revision-Date: 2009-02-07 21:32+0100\n"
+"PO-Revision-Date: 2009-05-24 19:25+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -17,7 +17,7 @@
#: Weblogic.xml:2
#, no-c-format
msgid "Seam on BEA's Weblogic"
-msgstr ""
+msgstr "Seam su Weblogic di BEA"
#. Tag: para
#: Weblogic.xml:4
@@ -83,7 +83,7 @@
#: Weblogic.xml:65
#, no-c-format
msgid "Installing 10.3"
-msgstr ""
+msgstr "Installare 10.3"
#. Tag: para
#: Weblogic.xml:67
@@ -113,7 +113,7 @@
#: Weblogic.xml:91
#, no-c-format
msgid "Execute the install:"
-msgstr ""
+msgstr "Eseguire l'install:"
#. Tag: programlisting
#: Weblogic.xml:92
@@ -149,7 +149,7 @@
#: Weblogic.xml:115
#, no-c-format
msgid "Creating your Weblogic domain"
-msgstr ""
+msgstr "Creazione del domino Weblogic"
#. Tag: para
#: Weblogic.xml:116
@@ -567,13 +567,13 @@
#: Weblogic.xml:514
#, no-c-format
msgid "Select <literal>Next</literal> button"
-msgstr ""
+msgstr "Selezionare il pulsante <literal>Next</literal>"
#. Tag: para
#: Weblogic.xml:456
#, no-c-format
msgid "Select <literal>Next</literal> button on the <literal>Transaction Options</literal> page"
-msgstr ""
+msgstr "Selezionare il pulsante <literal>Next</literal> nella pagina <literal>Transaction Options</literal>"
#. Tag: para
#: Weblogic.xml:461
@@ -911,7 +911,7 @@
#: Weblogic.xml:679
#, no-c-format
msgid "We need to add the follow so that the <literal> weblogic-application.xml </literal> will be packaged."
-msgstr ""
+msgstr "Occorre aggiungere la seguente riga affinché venga impacchettato <literal> weblogic-application.xml </literal>."
#. Tag: programlisting
#: Weblogic.xml:686
@@ -955,7 +955,7 @@
#: Weblogic.xml:700
#, no-c-format
msgid "This is the change discussed above in <xref linkend=\"weblogic-ejb-issues\"/> . There are really two options."
-msgstr ""
+msgstr "Questo è il cambiamento discusso in <xref linkend=\"weblogic-ejb-issues\"/>. Ci sono due opzioni."
#. Tag: para
#: Weblogic.xml:707
@@ -1037,7 +1037,7 @@
#: Weblogic.xml:791
#, no-c-format
msgid "Setting up the datasource"
-msgstr ""
+msgstr "Configurazione del datasource"
#. Tag: para
#: Weblogic.xml:793
@@ -1067,7 +1067,7 @@
#: Weblogic.xml:826
#, no-c-format
msgid "Building the example"
-msgstr ""
+msgstr "Build dell'esempio"
#. Tag: para
#: Weblogic.xml:828
@@ -1080,7 +1080,7 @@
#: Weblogic.xml:1259
#, no-c-format
msgid "Deploying the example"
-msgstr ""
+msgstr "Deploy dell'esempio"
#. Tag: para
#: Weblogic.xml:840
15 years, 6 months