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