diff options
Diffstat (limited to 'java')
5 files changed, 85 insertions, 45 deletions
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 @@ <groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca-api</artifactId>
<version>1.4-SNAPSHOT</version>
- <scope>provided</scope>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-web-runtime</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
</dependency>
<dependency>
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("<html><head><title>Apache Tuscany Helloworld Servlet Sample</title></head><body>"); 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 @@ <component name="WebClient">
<implementation.web web-uri=""/>
- <reference name="helloworldService" target="helloworldService"/>
+ <reference name="service" target="HelloworldService"/>
</component>
- <component name="helloworldService">
+ <component name="HelloworldService">
<implementation.java class="sample.HelloworldServiceImpl"/>
</component>
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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. ---> - -<web-app version="2.4" - xmlns="http://java.sun.com/xml/ns/j2ee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > - - <display-name>Apache Tuscany Helloworld Servlet Sample</display-name> -
- <servlet> - <servlet-name>HelloworldServlet</servlet-name> - <servlet-class>sample.HelloworldServlet</servlet-class> - </servlet> - - <servlet-mapping> - <servlet-name>HelloworldServlet</servlet-name> - <url-pattern>/HelloworldServlet</url-pattern> - </servlet-mapping> - +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+
+<web-app version="2.4"
+ xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
+
+ <display-name>Apache Tuscany Helloworld Servlet Sample</display-name>
+
+ <filter>
+ <filter-name>tuscany</filter-name>
+ <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>tuscany</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <servlet>
+ <servlet-name>HelloworldServlet</servlet-name>
+ <servlet-class>sample.HelloworldServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>HelloworldServlet</servlet-name>
+ <url-pattern>/HelloworldServlet</url-pattern>
+ </servlet-mapping>
+
<welcome-file-list id="WelcomeFileList">
<welcome-file>hello.html</welcome-file>
</welcome-file-list>
- -</web-app> +
+</web-app>
|