Author: [email protected]
Date: Tue Feb  7 14:05:56 2012
New Revision: 2066

Log:
[sandbox] Some testcode fot mt web

Added:
   sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/rest/
   
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/rest/FrameworkResource.java
   
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/rest/ServiceReferencesBean.java
   sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/
   
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestFilter.java
   
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestJspResourceProvider.java
   
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestResource.java
   sandbox/bdekruijff/amdatu-test/src/main/resources/jsp/
   sandbox/bdekruijff/amdatu-test/src/main/resources/jsp/test.jsp
Modified:
   sandbox/bdekruijff/amdatu-test/pom.xml
   
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/osgi/Activator.java

Modified: sandbox/bdekruijff/amdatu-test/pom.xml
==============================================================================
--- sandbox/bdekruijff/amdatu-test/pom.xml      (original)
+++ sandbox/bdekruijff/amdatu-test/pom.xml      Tue Feb  7 14:05:56 2012
@@ -21,6 +21,13 @@
       <type>bundle</type>
     </dependency>
     <dependency>
+      <groupId>org.amdatu.tenant</groupId>
+      <artifactId>org.amdatu.tenant</artifactId>
+      <version>${project.version}</version>
+      <scope>provided</scope>
+      <type>bundle</type>
+    </dependency>
+    <dependency>
       <groupId>org.amdatu.web</groupId>
       <artifactId>org.amdatu.web.httpcontext</artifactId>
       <version>${project.version}</version>
@@ -34,6 +41,20 @@
       <scope>provided</scope>
       <type>bundle</type>
     </dependency>
+    <dependency>
+      <groupId>org.amdatu.web</groupId>
+      <artifactId>org.amdatu.web.jsp</artifactId>
+      <version>${project.version}</version>
+      <scope>provided</scope>
+      <type>bundle</type>
+    </dependency>
+    <dependency>
+      <groupId>org.amdatu.web</groupId>
+      <artifactId>org.amdatu.web.jaxrs</artifactId>
+      <version>${project.version}</version>
+      <scope>provided</scope>
+      <type>bundle</type>
+    </dependency>
   </dependencies>
   <build>
     <plugins>
@@ -42,17 +63,16 @@
         <artifactId>maven-bundle-plugin</artifactId>
         <configuration>
           <instructions>
-            
<MultiTenant-Bundle-Activator>org.amdatu.web.test.osgi.Activator</MultiTenant-Bundle-Activator>
-            <!-- 
-            <MultiTenant-Scope>platform,tenant</MultiTenant-Scope>
-             -->
-            
<Bundle-Activator>org.amdatu.core.tenant.MultiTenantBundleActivator</Bundle-Activator>
-            <Bundle-SymbolicName>org.amdatu.web.test</Bundle-SymbolicName>
-            <Private-Package>org.amdatu.web.test.osgi</Private-Package>
+            
<X-MultiTenant-Bundle-Activator>org.amdatu.web.test.osgi.Activator</X-MultiTenant-Bundle-Activator>
+            <X-MultiTenant-Scope>TENANT</X-MultiTenant-Scope>
+            
<Bundle-Activator>org.amdatu.tenant.adapter.MultiTenantBundleActivator</Bundle-Activator>
             <Import-Package>
-              org.amdatu.core.tenant;version="[1.0,2)",
+              org.amdatu.tenant;version="[1.0,2)",
+              org.amdatu.tenant.adapter;version="[1.0,2)",
               *
             </Import-Package>
+            <Export-Package>
+            </Export-Package>
           </instructions>
         </configuration>
       </plugin>

Modified: 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/osgi/Activator.java
==============================================================================
--- 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/osgi/Activator.java
        (original)
+++ 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/osgi/Activator.java
        Tue Feb  7 14:05:56 2012
@@ -16,6 +16,10 @@
  */
 package org.amdatu.web.test.osgi;
 
+import static org.amdatu.web.jsp.Constants.JSP_ALIAS_KEY;
+import static org.amdatu.web.resource.Constants.RESOURCE_ALIAS_KEY;
+import static org.osgi.framework.Constants.SERVICE_PID;
+
 import java.util.Dictionary;
 import java.util.Hashtable;
 
@@ -23,13 +27,13 @@
 
 import org.amdatu.web.dispatcher.DispatcherService;
 import org.amdatu.web.httpcontext.ResourceProvider;
-import org.amdatu.web.resource.ResourceSupport;
 import org.amdatu.web.test.service.ConfigurationTestServlet;
 import org.amdatu.web.test.service.FaviconResourceProviderImpl;
+import org.amdatu.web.test.servlet.TestJspResourceProvider;
+import org.amdatu.web.test.servlet.TestResource;
 import org.apache.felix.dm.DependencyActivatorBase;
 import org.apache.felix.dm.DependencyManager;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
 import org.osgi.service.cm.ManagedService;
 
 public class Activator extends DependencyActivatorBase {
@@ -37,6 +41,7 @@
     public final static String CONTEXTID = "amdatu-test";
     public final static String FAVICON_ALIAS = "/favicon.ico";
     public final static String SERVLET_ALIAS = "/test";
+    public final static String JSP_ALIAS = "/jsp";
     public final static String SERVLET_PID = "org.amdatu.web.test";
 
     @Override
@@ -44,7 +49,7 @@
 
         Dictionary<String, Object> props1 = new Hashtable<String, Object>();
         props1.put(DispatcherService.CONTEXT_ID_KEY, CONTEXTID);
-        props1.put(ResourceSupport.RESOURCE_ALIAS_KEY, FAVICON_ALIAS);
+        props1.put(RESOURCE_ALIAS_KEY, FAVICON_ALIAS);
 
         
manager.add(createComponent().setInterface(ResourceProvider.class.getName(), 
props1)
             .setImplementation(new FaviconResourceProviderImpl()));
@@ -52,11 +57,26 @@
         Dictionary<String, Object> props2 = new Hashtable<String, Object>();
         props2.put(DispatcherService.CONTEXT_ID_KEY, CONTEXTID);
         props2.put(DispatcherService.ALIAS_KEY, SERVLET_ALIAS);
-        props2.put(Constants.SERVICE_PID, SERVLET_PID);
+        props2.put(SERVICE_PID, SERVLET_PID);
 
         manager.add(createComponent().setInterface(
             new String[] { Servlet.class.getName(), 
ManagedService.class.getName() }, props2)
             .setImplementation(new ConfigurationTestServlet()));
+
+        Dictionary<String, Object> props3 = new Hashtable<String, Object>();
+        props3.put(DispatcherService.CONTEXT_ID_KEY, CONTEXTID);
+        props3.put(JSP_ALIAS_KEY, JSP_ALIAS);
+        props3.put(SERVICE_PID, SERVLET_PID);
+
+        manager.add(createComponent().setInterface(
+            new String[] { ResourceProvider.class.getName() }, props3)
+            .setImplementation(new TestJspResourceProvider()));
+
+        Dictionary<String, Object> props4 = new Hashtable<String, Object>();
+
+        manager.add(createComponent().setInterface(
+            new String[] { Object.class.getName() }, props4)
+            .setImplementation(new TestResource()));
     }
 
     @Override

Added: 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/rest/FrameworkResource.java
==============================================================================
--- (empty file)
+++ 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/rest/FrameworkResource.java
        Tue Feb  7 14:05:56 2012
@@ -0,0 +1,34 @@
+package org.amdatu.web.test.rest;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+
+@Path("services")
+public class FrameworkResource {
+
+    private volatile BundleContext m_context;
+
+    public FrameworkResource(BundleContext context) {
+        m_context = context;
+    }
+
+    @GET
+    @Produces({ MediaType.APPLICATION_JSON })
+    public Response get() {
+        try {
+            ServiceReference[] refs = m_context.getServiceReferences(null, 
null);
+            return Response.ok(ServiceReferencesBean.from(refs), 
MediaType.APPLICATION_JSON).build();
+        }
+        catch (InvalidSyntaxException e) {
+            return Response.serverError().build();
+        }
+    }
+
+}
\ No newline at end of file

Added: 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/rest/ServiceReferencesBean.java
==============================================================================
--- (empty file)
+++ 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/rest/ServiceReferencesBean.java
    Tue Feb  7 14:05:56 2012
@@ -0,0 +1,62 @@
+package org.amdatu.web.test.rest;
+
+import static org.amdatu.tenant.Constants.PID_KEY;
+import static org.osgi.framework.Constants.OBJECTCLASS;
+import static org.osgi.framework.Constants.SERVICE_ID;
+import static org.osgi.framework.Constants.SERVICE_PID;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.osgi.framework.ServiceReference;
+
+@XmlRootElement(name = "framework")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ServiceReferencesBean {
+
+    public static ServiceReferencesBean from(ServiceReference[] references) {
+        ServiceReferenceBean[] services = new 
ServiceReferenceBean[references.length];
+        for (int i = 0; i < references.length; i++) {
+            services[i] = ServiceReferenceBean.from(references[i]);
+        }
+        ServiceReferencesBean holder = new ServiceReferencesBean();
+        holder.services = services;
+        return holder;
+    }
+
+    @XmlElement(name = "services")
+    public ServiceReferenceBean[] services;
+}
+
+@XmlRootElement(name = "service")
+@XmlAccessorType(XmlAccessType.FIELD)
+class ServiceReferenceBean {
+
+    public static ServiceReferenceBean from(ServiceReference reference) {
+        ServiceReferenceBean bean = new ServiceReferenceBean();
+        bean.objectClass = (String[]) reference.getProperty(OBJECTCLASS);
+        bean.serviceId = (Long) reference.getProperty(SERVICE_ID);
+        bean.servicePid = (String) reference.getProperty(SERVICE_PID);
+//        bean.serviceRanking = (Integer) 
reference.getProperty(Constants.SERVICE_RANKING);
+        bean.tenantId = (String) reference.getProperty(PID_KEY);
+        return bean;
+    }
+
+    @XmlElement(name = "objectClass")
+    public String[] objectClass;
+
+    @XmlElement(name = "service.id")
+    public long serviceId;
+
+    @XmlElement(name = "service.pid")
+    public String servicePid;
+
+    @XmlElement(name = "service.ranking")
+    public int serviceRanking;
+
+    @XmlElement(name = "amdatu.tenant", defaultValue="NONE")
+    public String tenantId;
+
+}

Added: 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestFilter.java
==============================================================================
--- (empty file)
+++ 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestFilter.java
    Tue Feb  7 14:05:56 2012
@@ -0,0 +1,39 @@
+package org.amdatu.web.test.servlet;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+import org.amdatu.tenant.Tenant;
+import org.amdatu.web.dispatcher.DispatcherService;
+
+public class TestFilter implements Filter {
+
+    public void init(FilterConfig filterConfig) throws ServletException {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException,
+        ServletException {
+
+        Tenant t = (Tenant) 
request.getAttribute(DispatcherService.TENANT_REQUESTCONTEXT_KEY);
+        if (t == null) {
+            System.err.println("No Tenant..........................");
+            return;
+        }
+        request.setAttribute("TENANTNAME", t.getName());
+        chain.doFilter(request, response);
+    }
+
+    public void destroy() {
+        // TODO Auto-generated method stub
+
+    }
+
+}

Added: 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestJspResourceProvider.java
==============================================================================
--- (empty file)
+++ 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestJspResourceProvider.java
       Tue Feb  7 14:05:56 2012
@@ -0,0 +1,35 @@
+/*
+    Copyright (C) 2010 Amdatu.org
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program 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 General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.amdatu.web.test.servlet;
+
+import java.net.URL;
+
+import org.amdatu.web.httpcontext.ResourceProvider;
+import org.amdatu.web.test.osgi.Activator;
+import org.osgi.framework.BundleContext;
+
+public class TestJspResourceProvider implements ResourceProvider {
+
+    private volatile BundleContext m_bundleContext;
+
+    public URL getResource(String name) {
+        if (name != null && name.startsWith(Activator.JSP_ALIAS)) {
+            return m_bundleContext.getBundle().getResource("jsp/test.jsp");
+        }
+        return null;
+    }
+}

Added: 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestResource.java
==============================================================================
--- (empty file)
+++ 
sandbox/bdekruijff/amdatu-test/src/main/java/org/amdatu/web/test/servlet/TestResource.java
  Tue Feb  7 14:05:56 2012
@@ -0,0 +1,17 @@
+package org.amdatu.web.test.servlet;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+@Path("rest")
+public class TestResource {
+
+    @GET
+    @Produces({ MediaType.TEXT_PLAIN })
+    public String status() {
+        return "Howdy stranger!";
+    }
+
+}

Added: sandbox/bdekruijff/amdatu-test/src/main/resources/jsp/test.jsp
==============================================================================
--- (empty file)
+++ sandbox/bdekruijff/amdatu-test/src/main/resources/jsp/test.jsp      Tue Feb 
 7 14:05:56 2012
@@ -0,0 +1,30 @@
+<%--
+  Copyright (c) 2010, 2011 The Amdatu Foundation
+
+  Licensed 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.verning permissions and limitations
+  under the License.
+--%>
+<%@ page language="java" session="false" buffer="none" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Test</title>
+  </head>
+  <body>
+       Hello <c:out value="${TENANTNAME}"/>!
+       Hello <c:out 
value="${requestScope['org.amdatu.web.dispatcher.TENANTID']}"/>!
+       Hello <c:out 
value="${requestScope['org.amdatu.web.dispatcher.TENANT']}"/>!
+  </body>
+</html>
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to