summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/sca/samples/helloworld-servlet/pom.xml16
-rw-r--r--java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.java3
-rw-r--r--java/sca/samples/helloworld-servlet/src/main/java/sample/HelloworldServlet.java19
-rw-r--r--java/sca/samples/helloworld-servlet/src/main/webapp/META-INF/sca-deployables/web.composite4
-rw-r--r--java/sca/samples/helloworld-servlet/src/main/webapp/WEB-INF/web.xml88
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>