From 41e952751cd44e16b78d5083e1cc543ef22a47b5 Mon Sep 17 00:00:00 2001 From: antelder Date: Mon, 11 Aug 2008 07:46:36 +0000 Subject: Change to work with the embedded webapp runtime and new implementation.web, and change the service name to make the scdl more obvious git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@684663 13f79535-47bb-0310-9956-ffa450edef68 --- java/sca/samples/helloworld-servlet/pom.xml | 16 +++- .../main/java/sample/HelloworldServiceImpl.java | 3 + .../src/main/java/sample/HelloworldServlet.java | 19 ++++- .../webapp/META-INF/sca-deployables/web.composite | 4 +- .../src/main/webapp/WEB-INF/web.xml | 88 ++++++++++++---------- 5 files changed, 85 insertions(+), 45 deletions(-) (limited to 'java/sca/samples/helloworld-servlet') diff --git a/java/sca/samples/helloworld-servlet/pom.xml b/java/sca/samples/helloworld-servlet/pom.xml index d533f189ab..b970329596 100644 --- a/java/sca/samples/helloworld-servlet/pom.xml +++ b/java/sca/samples/helloworld-servlet/pom.xml @@ -35,7 +35,21 @@ org.apache.tuscany.sca tuscany-sca-api 1.4-SNAPSHOT - provided + compile + + + + org.apache.tuscany.sca + tuscany-implementation-web-runtime + 1.4-SNAPSHOT + runtime + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + 1.4-SNAPSHOT + runtime diff --git a/java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.java b/java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.java index 28d78c5ca8..be83d3b407 100644 --- a/java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.java +++ b/java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.java @@ -1,5 +1,8 @@ package sample; +import org.osoa.sca.annotations.Service; + +@Service(HelloworldService.class) public class HelloworldServiceImpl implements HelloworldService { public String sayHello(String name) { diff --git a/java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServlet.java b/java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServlet.java index 84f46ad4a0..0cdcc32e70 100644 --- a/java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServlet.java +++ b/java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServlet.java @@ -21,25 +21,38 @@ package sample; import java.io.IOException; import java.io.Writer; +import javax.servlet.ServletConfig; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.osoa.sca.ComponentContext; import org.osoa.sca.annotations.Reference; /** */ public class HelloworldServlet extends HttpServlet { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; @Reference - protected HelloworldService helloworldService; + protected HelloworldService service; + @Override + public void init(ServletConfig config) { + if (service == null) { + // The helloworldService reference will only be injected from the @Reference + // annotation in containers supporting SCA "deep" integration. In other + // environments in can be looked up from the ComponentContext. + ComponentContext cc = (ComponentContext)config.getServletContext().getAttribute("org.osoa.sca.ComponentContext"); + service = cc.getService(HelloworldService.class, "service"); + } + } + @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException { String name = request.getParameter("name"); - String greeting = helloworldService.sayHello(name); + String greeting = service.sayHello(name); Writer out = response.getWriter(); out.write("Apache Tuscany Helloworld Servlet Sample"); diff --git a/java/sca/samples/helloworld-servlet/src/main/webapp/META-INF/sca-deployables/web.composite b/java/sca/samples/helloworld-servlet/src/main/webapp/META-INF/sca-deployables/web.composite index b863c16fab..23fd33a408 100644 --- a/java/sca/samples/helloworld-servlet/src/main/webapp/META-INF/sca-deployables/web.composite +++ b/java/sca/samples/helloworld-servlet/src/main/webapp/META-INF/sca-deployables/web.composite @@ -23,10 +23,10 @@ - + - + diff --git a/java/sca/samples/helloworld-servlet/src/main/webapp/WEB-INF/web.xml b/java/sca/samples/helloworld-servlet/src/main/webapp/WEB-INF/web.xml index 0d72802863..28cfdd3f6c 100644 --- a/java/sca/samples/helloworld-servlet/src/main/webapp/WEB-INF/web.xml +++ b/java/sca/samples/helloworld-servlet/src/main/webapp/WEB-INF/web.xml @@ -1,42 +1,52 @@ - - - - - - Apache Tuscany Helloworld Servlet Sample - - - HelloworldServlet - sample.HelloworldServlet - - - - HelloworldServlet - /HelloworldServlet - - + + + + + + Apache Tuscany Helloworld Servlet Sample + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + + HelloworldServlet + sample.HelloworldServlet + + + + HelloworldServlet + /HelloworldServlet + + hello.html - - + + -- cgit v1.2.3