diff options
7 files changed, 2 insertions, 359 deletions
diff --git a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/.settings/com.google.appengine.eclipse.core.prefs b/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/.settings/com.google.appengine.eclipse.core.prefs index 4cb9799348..351c3205e5 100644 --- a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/.settings/com.google.appengine.eclipse.core.prefs +++ b/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/.settings/com.google.appengine.eclipse.core.prefs @@ -1,3 +1,3 @@ -#Mon Sep 21 17:52:18 PDT 2009 +#Thu Oct 15 18:16:29 PDT 2009 eclipse.preferences.version=1 -filesCopiedToWebInfLib=appengine-api-1.0-sdk-1.2.5.jar|appengine-api-labs-1.2.5.jar|datanucleus-appengine-1.0.3.jar|datanucleus-core-1.1.5.jar|datanucleus-jpa-1.1.5.jar|geronimo-jpa_3.0_spec-1.1.1.jar|geronimo-jta_1.1_spec-1.1.1.jar|jdo2-api-2.3-eb.jar +filesCopiedToWebInfLib=appengine-api-1.0-sdk-1.2.6.jar|appengine-api-labs-1.2.6.jar|datanucleus-appengine-1.0.3.jar|datanucleus-core-1.1.5.jar|datanucleus-jpa-1.1.5.jar|geronimo-jpa_3.0_spec-1.1.1.jar|geronimo-jta_1.1_spec-1.1.1.jar|jdo2-api-2.3-eb.jar diff --git a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/log4j.properties b/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/log4j.properties deleted file mode 100644 index d9c3edc9fe..0000000000 --- a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/log4j.properties +++ /dev/null @@ -1,24 +0,0 @@ -# A default log4j configuration for log4j users. -# -# To use this configuration, deploy it into your application's WEB-INF/classes -# directory. You are also encouraged to edit it as you like. - -# Configure the console as our one appender -log4j.appender.A1=org.apache.log4j.ConsoleAppender -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n - -# tighten logging on the DataNucleus Categories -log4j.category.DataNucleus.JDO=WARN, A1 -log4j.category.DataNucleus.Persistence=WARN, A1 -log4j.category.DataNucleus.Cache=WARN, A1 -log4j.category.DataNucleus.MetaData=WARN, A1 -log4j.category.DataNucleus.General=WARN, A1 -log4j.category.DataNucleus.Utility=WARN, A1 -log4j.category.DataNucleus.Transaction=WARN, A1 -log4j.category.DataNucleus.Datastore=WARN, A1 -log4j.category.DataNucleus.ClassLoading=WARN, A1 -log4j.category.DataNucleus.Plugin=WARN, A1 -log4j.category.DataNucleus.ValueGeneration=WARN, A1 -log4j.category.DataNucleus.Enhancer=WARN, A1 -log4j.category.DataNucleus.SchemaTool=WARN, A1 diff --git a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/Expert.java b/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/Expert.java deleted file mode 100644 index 61ac1c12b7..0000000000 --- a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/Expert.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ -package org.apache.tuscany.expertise; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -public class Expert implements Serializable { - private static final long serialVersionUID = 2026687637313310397L; - - private String id; - private String name; - private String location; - private List<String> expertises = new ArrayList<String>(); - - public Expert() { - - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public List<String> getExpertise() { - return this.expertises; - } -} diff --git a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/ExpertRegistry.java b/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/ExpertRegistry.java deleted file mode 100644 index 04dc7424a6..0000000000 --- a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/ExpertRegistry.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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. - */ - -package org.apache.tuscany.expertise.restfull; - -import java.util.List; - -import org.apache.tuscany.expertise.Expert; - -public interface ExpertRegistry { - - void addExpert(Expert expert); - - void removeExpert(Expert expert); - - List<Expert> getExperts(); - - List<Expert> getExpertsByExpertise(String expertise); -}
\ No newline at end of file diff --git a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/ExpertRegistryImpl.java b/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/ExpertRegistryImpl.java deleted file mode 100644 index 800dc101a0..0000000000 --- a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/ExpertRegistryImpl.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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. - */ - -package org.apache.tuscany.expertise.restfull; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.tuscany.expertise.Expert; -import org.oasisopen.sca.annotation.Init; -import org.oasisopen.sca.annotation.Service; - -@Service(ExpertRegistry.class) -public class ExpertRegistryImpl implements ExpertRegistry { - private List<Expert> experts = new ArrayList<Expert>(); - - public ExpertRegistryImpl() { - - } - - @Init - public void init() { - Expert expert; - - expert = new Expert(); - expert.setId("1"); - expert.setName("John Smith"); - expert.setLocation("CA"); - expert.getExpertise().add("SOA"); - expert.getExpertise().add("SCA"); - expert.getExpertise().add("WAS"); - - experts.add(expert); - - expert = new Expert(); - expert.setId("2"); - expert.setName("Ken Johnson"); - expert.setLocation("NY"); - expert.getExpertise().add("Search"); - - experts.add(expert); - - expert = new Expert(); - expert.setId("3"); - expert.setName("Mark Smith"); - expert.setLocation("CA"); - expert.getExpertise().add("SCA"); - expert.getExpertise().add("WASCE"); - - experts.add(expert); - } - - public void addExpert(Expert expert) { - experts.add(expert); - } - - public void removeExpert(Expert expert) { - experts.remove(expert); - } - - public List<Expert> getExperts() { - return experts; - } - - public List<Expert> getExpertsByExpertise(String expertise) { - List<Expert> expertsByExpertise = new ArrayList<Expert>(); - - for (Expert expert : experts) { - if (expert.getExpertise().contains(expertise)) { - expertsByExpertise.add(expert); - } - } - - return expertsByExpertise; - } -} diff --git a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/RestfulExpertiseLocator.java b/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/RestfulExpertiseLocator.java deleted file mode 100644 index 73828c639f..0000000000 --- a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/org/apache/tuscany/expertise/restfull/RestfulExpertiseLocator.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * 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. - */ - -package org.apache.tuscany.expertise.restfull; - -import java.io.IOException; -import java.net.URLDecoder; -import java.util.List; - -import javax.servlet.Servlet; -import javax.servlet.ServletException; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.tuscany.expertise.Expert; -import org.oasisopen.sca.annotation.Reference; -import org.oasisopen.sca.annotation.Scope; -import org.oasisopen.sca.annotation.Service; - -@Service(Servlet.class) -@Scope("COMPOSITE") -public class RestfulExpertiseLocator extends HttpServlet implements Servlet { - - private static final long serialVersionUID = 4021701701436888369L; - - @Reference - protected ExpertRegistry experts; - - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String path = URLDecoder.decode(getRequestPath(request), "UTF-8"); - String expertise = path.substring(1); - - if (expertise != null && expertise.length() > 0 ) { - printExperts(response.getOutputStream(), experts.getExpertsByExpertise(expertise)); - } else { - printExperts(response.getOutputStream(), experts.getExperts()); - } - - } - - - private void printExperts(ServletOutputStream out, List<Expert> experts) throws IOException { - out.print("<html><body>"); - out.print("<h2>Expertise Locator</h2>"); - - if (experts.size() > 0) { - for (Expert expert: experts) { - out.print("<b>Location:</b> " + expert.getLocation() + " - " + expert.getName() +" ==> "); - for (String expertise : expert.getExpertise()) { - out.print(expertise + ";"); - } - out.print("<br/>"); - } - } else { - out.println("No experts found"); - } - out.print("</body></html>"); - } - - /** - * - * @param request - * @return - */ - private static String getRequestPath(HttpServletRequest request) { - // Get the request path - String contextPath = request.getContextPath(); - String servletPath = request.getServletPath(); - String requestURI = request.getRequestURI(); - - int contextPathLength = request.getContextPath().length(); - int servletPathLenght = servletPath.contains(contextPath) ? servletPath.length() - contextPath.length() : servletPath.length(); - - String requestPath = requestURI.substring(contextPathLength + servletPathLenght); - - if (requestURI.startsWith("/")) { - requestPath = requestPath.substring(1); - } - - return requestPath; - } - - -} diff --git a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/rest.composite b/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/rest.composite deleted file mode 100644 index 9e32209a18..0000000000 --- a/sandbox/lresende/sca/samples/expertise-rest-appengine-webapp/src/rest.composite +++ /dev/null @@ -1,38 +0,0 @@ -<?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. ---> -<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" - xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" - targetNamespace="http://sample" - xmlns:s="http://sample" - name="rest" > - <component name="ExpertRegistryComponent"> - <implementation.java class="org.apache.tuscany.expertise.restfull.ExpertRegistryImpl"/> - <service name="ExpertRegistry"> - <interface.java interface="org.apache.tuscany.expertise.restfull.ExpertRegistry"/> - </service> - </component> - <component name="RestExpertiseLocatorComponent"> - <implementation.java class="org.apache.tuscany.expertise.restfull.RestfulExpertiseLocator"/> - <service name="Servlet"> - <tuscany:binding.http uri="/experts"/> - </service> - <reference name="experts" target="ExpertRegistryComponent"/> - </component> -</composite>
\ No newline at end of file |