You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2011/10/26 20:26:58 UTC
svn commit: r1189362 [2/2] - in /abdera/abdera2: ./
activities/src/main/java/org/apache/abdera2/activities/model/
activities/src/main/java/org/apache/abdera2/activities/protocol/
activities/src/main/java/org/apache/abdera2/activities/protocol/basic/ co...
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java Wed Oct 26 18:26:55 2011
@@ -43,10 +43,11 @@ public abstract class AbstractAbderaServ
extends HttpServlet {
private static final long serialVersionUID = 2722733242417632126L;
+
+ private final static Log log =
+ LogFactory.getLog(AbstractAbderaServlet.class);
- private final static Log log = LogFactory.getLog(AbstractAbderaServlet.class);
-
- protected ServiceManager<Provider> manager;
+ protected ServiceManager manager;
protected Provider provider;
@Override
@@ -58,12 +59,11 @@ public abstract class AbstractAbderaServ
log.debug("Using provider - " + provider);
}
- protected ServiceManager<Provider> getServiceManager() {
+ protected ServiceManager getServiceManager() {
return manager;
}
- @SuppressWarnings("unchecked")
- protected ServiceManager<Provider> createServiceManager() {
+ protected ServiceManager createServiceManager() {
String prop = this.getInitParameter(ServiceManager.class.getName());
return prop != null ?
ServiceManager.Factory.getInstance(prop) :
@@ -71,14 +71,18 @@ public abstract class AbstractAbderaServ
}
protected Provider createProvider() {
- return manager.newProvider(getProperties(getServletConfig()));
+ return manager.newProvider(
+ getProperties(
+ getServletConfig()));
}
protected void process(
HttpServletRequest request,
HttpServletResponse response,
ServletContext context) {
- RequestContext reqcontext = new ServletRequestContext(provider, request, context);
+ RequestContext reqcontext =
+ new ServletRequestContext(
+ provider, request, context);
try {
output(request, response, provider.apply(reqcontext));
} catch (Throwable t) {
@@ -88,7 +92,10 @@ public abstract class AbstractAbderaServ
log.debug("Request complete");
}
- protected void output(HttpServletRequest request, HttpServletResponse response, ResponseContext context)
+ protected void output(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ ResponseContext context)
throws IOException {
if (context != null) {
response.setStatus(context.getStatus());
@@ -102,8 +109,7 @@ public abstract class AbstractAbderaServ
MimeType ct = context.getContentType();
if (ct != null)
response.setContentType(ct.toString());
- } catch (Exception e) {
- }
+ } catch (Exception e) {}
Iterable<String> names = context.getHeaderNames();
for (String name : names) {
Iterable<Object> headers = context.getHeaders(name);
@@ -122,29 +128,28 @@ public abstract class AbstractAbderaServ
}
}
- protected void error(String message, Throwable t, HttpServletResponse response) {
+ protected void error(
+ String message,
+ Throwable t,
+ HttpServletResponse response) {
try {
- if (t != null)
- log.error(message, t);
- else
- log.error(message);
-
- if (response.isCommitted()) {
- log.error("Could not write an error message as the headers & HTTP status were already committed!");
- } else {
- ResponseContext resp =
- provider.createErrorResponse(500, message, t);
- response.setStatus(500);
+ if (t != null) log.error(message, t);
+ else log.error(message);
+ if (response.isCommitted())
+ log.error("Could not write an error message as the headers & HTTP status were already committed!");
+ else {
response.setCharacterEncoding("UTF-8");
- resp.writeTo(response.getOutputStream());
+ response.setStatus(500);
+ provider.createErrorResponse(500, message, t)
+ .writeTo(response.getOutputStream());
}
} catch (IOException e) {
log.error("Error writing to output stream",e);
}
}
- protected Map<String, String> getProperties(ServletConfig config) {
- Map<String, String> properties = new HashMap<String, String>();
+ protected Map<String, Object> getProperties(ServletConfig config) {
+ Map<String, Object> properties = new HashMap<String, Object>();
Enumeration<String> e = config.getInitParameterNames();
while (e.hasMoreElements()) {
String key = e.nextElement();
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/ServletRequestContext.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/ServletRequestContext.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/ServletRequestContext.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/ServletRequestContext.java Wed Oct 26 18:26:55 2011
@@ -20,11 +20,11 @@ package org.apache.abdera2.common.protoc
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.Enumeration;
-import java.util.List;
+import java.util.Iterator;
import java.util.Locale;
import javax.servlet.ServletContext;
@@ -38,6 +38,8 @@ import org.apache.abdera2.common.protoco
import org.apache.abdera2.common.protocol.Provider;
import org.joda.time.DateTime;
+import com.google.common.collect.Iterators;
+
@SuppressWarnings({ "unchecked" })
public class ServletRequestContext
extends AbstractBaseRequestContext {
@@ -46,12 +48,19 @@ public class ServletRequestContext
private final ServletContext servletContext;
private HttpSession session;
- public ServletRequestContext(Provider provider, HttpServletRequest request, ServletContext servletContext) {
- super(provider, request.getMethod(), initRequestUri(request), initBaseUri(provider, request));
+ public ServletRequestContext(
+ Provider provider,
+ HttpServletRequest request,
+ ServletContext servletContext) {
+ super(
+ provider,
+ request.getMethod(),
+ initRequestUri(request),
+ initBaseUri(provider, request),
+ request.getUserPrincipal());
this.request = request;
this.servletContext = servletContext;
this.session = request.getSession(false);
- this.principal = request.getUserPrincipal();
this.subject = provider.resolveSubject(this);
this.target = initTarget();
}
@@ -99,15 +108,15 @@ public class ServletRequestContext
return this;
}
- public Object getAttribute(Scope scope, String name) {
+ public <T>T getAttribute(Scope scope, String name) {
switch (scope) {
case REQUEST:
- return request.getAttribute(name);
+ return (T)request.getAttribute(name);
case SESSION:
- return (session != null) ? session.getAttribute(name) : null;
+ return session != null ? (T)session.getAttribute(name) : null;
case CONTAINER: {
ServletContext scontext = getServletContext();
- return scontext != null ? scontext.getAttribute(name) : null;
+ return scontext != null ? (T)scontext.getAttribute(name) : null;
}
}
return null;
@@ -135,9 +144,9 @@ public class ServletRequestContext
return enum2array(request.getParameterNames());
}
- public List<String> getParameters(String name) {
+ public Iterable<String> getParameters(String name) {
String[] values = request.getParameterValues(name);
- return values != null ? java.util.Arrays.asList(values) : null;
+ return values != null ? Arrays.<String>asList(values) : null;
}
public DateTime getDateHeader(String name) {
@@ -153,16 +162,18 @@ public class ServletRequestContext
return enum2array(request.getHeaderNames());
}
+ @SuppressWarnings("rawtypes")
public Iterable<Object> getHeaders(String name) {
- Enumeration<?> e = request.getHeaders(name);
- List<Object> list = new ArrayList<Object>();
- while(e.hasMoreElements())
- list.add(e.nextElement());
- return list;
+ final Enumeration e = request.getHeaders(name);
+ return new Iterable<Object>() {
+ public Iterator<Object> iterator() {
+ return Iterators.<Object>forEnumeration(e);
+ }
+ };
}
private static Iterable<String> enum2array(Enumeration<String> e) {
- return java.util.Collections.list(e);
+ return Collections.<String>list(e);
}
private static String getHost(Provider provider, HttpServletRequest request) {
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaAsyncService.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaAsyncService.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaAsyncService.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaAsyncService.java Wed Oct 26 18:26:55 2011
@@ -32,6 +32,9 @@ import org.apache.abdera2.common.pusher.
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import com.google.common.base.Predicate;
+import static com.google.common.base.Preconditions.*;
+
@WebListener
public class AbderaAsyncService
implements ServletContextListener, Runnable {
@@ -53,15 +56,14 @@ public class AbderaAsyncService
private TaskExecutor exec;
private ProcessorQueue queue;
private ChannelManager cm;
- private boolean deployAtompubService;
- private boolean deployChannelService;
+ private Map<String,Object> properties;
public AbderaAsyncService() {
log.debug("Abdera Async Service Created");
}
- protected Map<String, String> getProperties(ServletContext context) {
- Map<String, String> properties = new HashMap<String, String>();
+ protected Map<String, Object> getProperties(ServletContext context) {
+ Map<String, Object> properties = new HashMap<String, Object>();
Enumeration<String> e = context.getInitParameterNames();
while (e.hasMoreElements()) {
String key = e.nextElement();
@@ -71,36 +73,56 @@ public class AbderaAsyncService
return properties;
}
- private int worker_threads(Map<String,String> properties) {
+ private int worker_threads(Map<String,Object> properties) {
int c = DEFAULT_WORKER_THREADS;
if (properties.containsKey(PROPERTY_WORKER_THREADS)) {
- String val = properties.get(PROPERTY_WORKER_THREADS);
- c = Math.max(1,Integer.parseInt(val));
+ Object v = properties.get(PROPERTY_WORKER_THREADS);
+ if (v != null) {
+ if (v instanceof Integer)
+ c = ((Integer)v).intValue();
+ else
+ c = Math.max(1,Integer.parseInt(v.toString()));
+ }
}
return c;
}
- private boolean getBooleanProperty(Map<String, String> properties, String name, boolean def) {
+ private static boolean getBooleanProperty(Map<String, Object> properties, String name, boolean def) {
boolean answer = def;
if (properties.containsKey(name)) {
- String val = properties.get(name);
- answer = "TRUE".equalsIgnoreCase(val) ||
- "1".equals(val) ||
- "YES".equalsIgnoreCase(val);
+ Object v = properties.get(name);
+ if (v == null) answer = false;
+ else if (v instanceof Boolean) answer = ((Boolean)v).booleanValue();
+ else {
+ answer = "TRUE".equalsIgnoreCase(v.toString()) ||
+ "1".equals(v.toString()) ||
+ "YES".equalsIgnoreCase(v.toString());
+ }
}
return answer;
}
- public boolean isDeployAtompubService(Map<String,String> properties) {
- return getBooleanProperty(properties,PROPERTY_ATOMPUB_SERVICE,false);
+ public static final Predicate<Map<String,Object>> DEPLOY_ATOMPUB =
+ isDeployAtompubService();
+ private static Predicate<Map<String,Object>> isDeployAtompubService() {
+ return new Predicate<Map<String,Object>>() {
+ public boolean apply(Map<String,Object> properties) {
+ return getBooleanProperty(properties,PROPERTY_ATOMPUB_SERVICE,false);
+ }
+ };
}
- public boolean isDeployChannelService(Map<String,String> properties) {
- return getBooleanProperty(properties,PROPERTY_CHANNEL_SERVICE,false);
+ public static final Predicate<Map<String,Object>> DEPLOY_CHANNEL =
+ isDeployChannelService();
+ private static Predicate<Map<String,Object>> isDeployChannelService() {
+ return new Predicate<Map<String,Object>>() {
+ public boolean apply(Map<String,Object> properties) {
+ return getBooleanProperty(properties,PROPERTY_CHANNEL_SERVICE,false);
+ }
+ };
}
- @SuppressWarnings("unchecked")
- protected ServiceManager<Provider> createServiceManager(ServletContext context) {
+ protected ServiceManager createServiceManager(ServletContext context) {
String prop = context.getInitParameter(ServiceManager.class.getName());
return prop != null ?
ServiceManager.Factory.getInstance(prop) :
@@ -110,18 +132,14 @@ public class AbderaAsyncService
public void contextInitialized(ServletContextEvent event) {
this.context = event.getServletContext();
- Map<String,String> properties = getProperties(context);
- this.deployAtompubService = isDeployAtompubService(properties);
- this.deployChannelService = isDeployChannelService(properties);
- ServiceManager<Provider> manager =
- createServiceManager(context);
+ this.properties = getProperties(context);
+ ServiceManager manager =
+ createServiceManager(context);
+ checkState(
+ manager != null,
+ "Service Manager is null");
- if (manager == null) {
- log.error("Service Manager is null. Application can not function correctly");
- throw new IllegalStateException("Service Manager is null");
- }
-
- if (deployAtompubService) {
+ if (DEPLOY_ATOMPUB.apply(properties)) {
log.debug("Initializing Abdera Atompub Service...");
queue = manager.newProcessorQueue(properties);
exec = manager.newTaskExecutor(properties);
@@ -134,42 +152,25 @@ public class AbderaAsyncService
log.debug(String.format("Service Manager: %s",manager));
log.debug(String.format("Provider: %s",provider));
- if (processor != null)
- context.setAttribute(Processor.NAME, processor);
- else {
- log.error("Queue Processor is null. Application can not function correctly");
- throw new IllegalStateException("Queue Processor is null");
- }
- if (exec != null)
- context.setAttribute(RUNNER, exec);
- else {
- log.error("Task Executor is null. Application can not function correctly");
- throw new IllegalStateException("Task Executor is null");
- }
- if (provider != null)
- context.setAttribute(PROVIDER, provider);
- else {
- log.error("Provider is null. Application can not function correctly");
- throw new IllegalStateException("Provider is null");
- }
- if (queue != null)
- context.setAttribute(QUEUE, queue);
- else {
- log.error("Queue is null. Application can not function correctly");
- throw new IllegalStateException("Queue is null");
- }
+ checkState(processor != null, "Queue Processor is null");
+ checkState(exec != null, "Task Executor is null");
+ checkState(provider != null, "Provider is null");
+ checkState(queue != null, "Queue is null");
+
+ context.setAttribute(Processor.NAME, processor);
+ context.setAttribute(RUNNER, exec);
+ context.setAttribute(PROVIDER, provider);
+ context.setAttribute(QUEUE, queue);
context.setAttribute(SERVICEMANAGER, manager);
-
int ct = worker_threads(properties);
log.debug(String.format("Launching watcher threads [%d]",ct));
- for (int c = 0; c < ct; c++)
- exec.startWorker(this);
+ exec.startWorker(ct,this);
log.debug("Abdera Atompub Service is ready...");
}
- if (deployChannelService) {
+ if (DEPLOY_ATOMPUB.apply(properties)) {
log.debug("Initializing Abdera Channel Service");
cm = manager.newChannelManager(properties);
log.debug(String.format("Channel Manager: %s", cm));
@@ -182,7 +183,7 @@ public class AbderaAsyncService
public void contextDestroyed(ServletContextEvent event) {
ServletContext context = event.getServletContext();
- if (deployAtompubService) {
+ if (DEPLOY_ATOMPUB.apply(properties)) {
log.debug("Shutting down the Abdera Service...");
if (exec != null)
exec.shutdown();
@@ -197,7 +198,7 @@ public class AbderaAsyncService
context.removeAttribute(PROVIDER);
context.removeAttribute(QUEUE);
}
- if (deployChannelService) {
+ if (DEPLOY_ATOMPUB.apply(properties)) {
if (cm != null)
cm.shutdown();
context.removeAttribute(CM);
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaChannelServlet.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaChannelServlet.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaChannelServlet.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaChannelServlet.java Wed Oct 26 18:26:55 2011
@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.abdera2.common.http.Preference;
import org.apache.abdera2.common.pusher.ChannelManager;
import org.apache.abdera2.common.pusher.Listener;
import org.apache.abdera2.common.pusher.Receiver;
@@ -47,7 +48,28 @@ public abstract class AbderaChannelServl
protected abstract AsyncListener<?> createListener(AsyncContext context);
- protected abstract long getTimeout(ServletConfig config, ServletContext context);
+ protected long getMaxTimeout(ServletConfig config, ServletContext context) {
+ return 30 * 1000;
+ }
+
+ /**
+ * By default, we look for the Prefer: wait=<n> header to grab the
+ * wait time, or return -1 to skip setting the timeout
+ */
+ protected long getTimeout(HttpServletRequest req, ServletConfig config, ServletContext context) {
+ return Math.min(getMaxTimeout(config,context),timeout(req));
+ }
+
+ private static long timeout(HttpServletRequest req) {
+ try {
+ Iterable<Preference> i = Preference.parse(req.getHeader("Prefer"));
+ Preference waitPref = Preference.get(i, Preference.WAIT);
+ long wait = waitPref != null ? waitPref.getLongValue() : -1;
+ return Math.max(0, wait);
+ } catch (Throwable t) {
+ return -1;
+ }
+ }
protected void doGet(
final HttpServletRequest request,
@@ -57,7 +79,9 @@ public abstract class AbderaChannelServl
final ChannelManager cm = (ChannelManager) sc.getAttribute(AbderaAsyncService.CM);
if (cm == null || !cm.isShutdown()) {
final AsyncContext context = request.startAsync(request, response);
- context.setTimeout(getTimeout(getServletConfig(),sc));
+ long timeout = getTimeout(request,getServletConfig(),sc);
+ if (timeout > -1)
+ context.setTimeout(timeout);
context.start(
new Runnable() {
public void run() {
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java Wed Oct 26 18:26:55 2011
@@ -42,11 +42,14 @@ public class AbderaTask {
private final RequestContext requestContext;
private final Provider provider;
- AbderaTask(AsyncContext context, Provider provider, RequestContext requestContext) {
- this.context = context;
- this.provider = provider;
- this.requestContext = requestContext;
- this.id = UUID.randomUUID().toString();
+ AbderaTask(
+ AsyncContext context,
+ Provider provider,
+ RequestContext requestContext) {
+ this.context = context;
+ this.provider = provider;
+ this.requestContext = requestContext;
+ this.id = UUID.randomUUID().toString();
}
public String getId() {
@@ -159,11 +162,10 @@ public class AbderaTask {
if (response.isCommitted()) {
log.error("Could not write an error message as the headers & HTTP status were already committed!");
} else {
- ResponseContext resp =
- provider.createErrorResponse(500, message, t);
- response.setStatus(500);
response.setCharacterEncoding("UTF-8");
- resp.writeTo(response.getOutputStream());
+ response.setStatus(500);
+ provider.createErrorResponse(500, message, t)
+ .writeTo(response.getOutputStream());
}
} catch (IOException e) {
log.error(String.format("Error writing to output stream (%s)",getId()),e);
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AsyncAbderaServlet.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AsyncAbderaServlet.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AsyncAbderaServlet.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AsyncAbderaServlet.java Wed Oct 26 18:26:55 2011
@@ -18,7 +18,12 @@
package org.apache.abdera2.common.protocol.servlet.async;
import java.io.IOException;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
import javax.servlet.AsyncContext;
+import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
@@ -26,13 +31,27 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.abdera2.common.http.Preference;
import org.apache.abdera2.common.protocol.Provider;
+import org.apache.abdera2.common.protocol.RequestContext;
+import org.apache.abdera2.common.protocol.ServiceManager;
import org.apache.abdera2.common.protocol.servlet.ServletRequestContext;
@WebServlet(asyncSupported=true)
public class AsyncAbderaServlet
extends HttpServlet {
+ protected Map<String, Object> getProperties(ServletConfig config) {
+ Map<String, Object> properties = new HashMap<String, Object>();
+ Enumeration<String> e = config.getInitParameterNames();
+ while (e.hasMoreElements()) {
+ String key = e.nextElement();
+ String val = config.getInitParameter(key);
+ properties.put(key, val);
+ }
+ return properties;
+ }
+
private static final long serialVersionUID = 2086707888078611321L;
@Override
protected void service(
@@ -41,10 +60,13 @@ public class AsyncAbderaServlet
throws ServletException, IOException {
ServletContext sc = getServletContext();
Processor proc = (Processor) sc.getAttribute(Processor.NAME);
- if (proc == null || !proc.isShutdown()) {
+ if (proc != null && !proc.isShutdown()) {
final AsyncContext context = request.startAsync(request, response);
- Provider provider = (Provider) sc.getAttribute(AbderaAsyncService.PROVIDER);
- ServletRequestContext reqcontext = new ServletRequestContext(provider, request, sc);
+ ServiceManager sm = (ServiceManager) sc.getAttribute(ServiceManager.class.getName());
+ Provider provider = sm.newProvider(getProperties(getServletConfig()));
+ ServletRequestContext reqcontext = new ServletRequestContext(provider, request, sc);
+ long timeout = getTimeout(reqcontext);
+ if (timeout > -1) context.setTimeout(timeout);
proc.submit(context,provider,reqcontext);
} else {
response.sendError(
@@ -52,4 +74,23 @@ public class AsyncAbderaServlet
"Abdera Service in unavailable");
}
}
+
+ public static long getTimeout(RequestContext req) {
+ return Math.min(getMaxTimeout(req),timeout(req));
+ }
+
+ public static long getMaxTimeout(RequestContext req) {
+ return 30 * 1000;
+ }
+
+ private static long timeout(RequestContext req) {
+ try {
+ Iterable<Preference> i = req.getPrefer();
+ Preference waitPref = Preference.get(i, Preference.WAIT);
+ long wait = waitPref != null ? waitPref.getLongValue() : -1;
+ return Math.max(0, wait);
+ } catch (Throwable t) {
+ return -1;
+ }
+ }
}
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/DefaultProcessor.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/DefaultProcessor.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/DefaultProcessor.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/DefaultProcessor.java Wed Oct 26 18:26:55 2011
@@ -17,6 +17,7 @@
*/
package org.apache.abdera2.common.protocol.servlet.async;
+import java.util.Map;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -62,4 +63,6 @@ public class DefaultProcessor
next().cancel();
}
+ public void init(Map<String, Object> properties) {}
+
}
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/DefaultTaskExecutor.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/DefaultTaskExecutor.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/DefaultTaskExecutor.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/DefaultTaskExecutor.java Wed Oct 26 18:26:55 2011
@@ -38,10 +38,10 @@ public class DefaultTaskExecutor
exec.execute(task);
}
- public void init(Map<String, String> properties) {
+ public void init(Map<String, Object> properties) {
exec = (ThreadPoolExecutor) Executors.newCachedThreadPool();
if (properties.containsKey(TERMINATION_TIMEOUT)) {
- String val = properties.get(TERMINATION_TIMEOUT);
+ String val = (String)properties.get(TERMINATION_TIMEOUT);
terminationTimeout = Math.max(1,Long.parseLong(val));
}
}
@@ -49,6 +49,11 @@ public class DefaultTaskExecutor
public void startWorker(Runnable worker) {
exec.execute(worker);
}
+
+ public void startWorker(int count, Runnable worker) {
+ for (int n = 0; n < count; n++)
+ startWorker(worker);
+ }
public void shutdown() {
exec.shutdown();
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/ProcessorQueue.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/ProcessorQueue.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/ProcessorQueue.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/ProcessorQueue.java Wed Oct 26 18:26:55 2011
@@ -17,7 +17,10 @@
*/
package org.apache.abdera2.common.protocol.servlet.async;
-public interface ProcessorQueue {
+import org.apache.abdera2.common.misc.Initializable;
+
+public interface ProcessorQueue
+ extends Initializable {
boolean hasNext();
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/TaskExecutor.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/TaskExecutor.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/TaskExecutor.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/TaskExecutor.java Wed Oct 26 18:26:55 2011
@@ -17,15 +17,17 @@
*/
package org.apache.abdera2.common.protocol.servlet.async;
-import java.util.Map;
import java.util.concurrent.Executor;
-public interface TaskExecutor extends Executor {
+import org.apache.abdera2.common.misc.Initializable;
- void init(Map<String,String> properties);
+public interface TaskExecutor
+ extends Executor, Initializable {
void startWorker(Runnable runnable);
+ void startWorker(int count, Runnable runnable);
+
void shutdown();
boolean isRunning();
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/pusher/ChannelManager.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/pusher/ChannelManager.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/pusher/ChannelManager.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/pusher/ChannelManager.java Wed Oct 26 18:26:55 2011
@@ -17,7 +17,7 @@
*/
package org.apache.abdera2.common.pusher;
-import java.util.Map;
+import org.apache.abdera2.common.misc.Initializable;
/**
* A "Channel" is a logical pairing of related Pusher and Receiver interfaces.
@@ -26,14 +26,13 @@ import java.util.Map;
* generic as possible, allowing channels to be implemented in a broad variety
* of ways.
*/
-public interface ChannelManager extends Iterable<String> {
+public interface ChannelManager
+ extends Iterable<String>, Initializable {
<T>Pusher<T> getPusher(String channel);
<T>Receiver<T> getReceiver(String channel);
- void init(Map<String,String> properties);
-
void shutdown();
boolean isShutdown();
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/pusher/MapChannelManager.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/pusher/MapChannelManager.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/pusher/MapChannelManager.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/pusher/MapChannelManager.java Wed Oct 26 18:26:55 2011
@@ -98,5 +98,5 @@ public abstract class MapChannelManager
return shuttingDown;
}
- public void init(Map<String,String> properties) {}
+ public void init(Map<String,Object> properties) {}
}
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/text/Codec.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/text/Codec.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/text/Codec.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/text/Codec.java Wed Oct 26 18:26:55 2011
@@ -45,7 +45,7 @@ public enum Codec {
switch (this) {
case Q: e = new QCodec(charset); break;
case B: e = new BCodec(charset); break;
- case STAR: e = new StarCodec(charset); break;
+ default: e = new StarCodec(charset); break;
}
return e.encode(value);
} catch (Exception e) {
@@ -161,6 +161,7 @@ public enum Codec {
}
}
+ @SuppressWarnings("synthetic-access")
public static Function<String,String> decode() {
return new DecodeFunction();
}
Modified: abdera/abdera2/examples/src/main/java/org/apache/abdera2/examples/activities/ActivitiesServlet.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/examples/src/main/java/org/apache/abdera2/examples/activities/ActivitiesServlet.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/examples/src/main/java/org/apache/abdera2/examples/activities/ActivitiesServlet.java (original)
+++ abdera/abdera2/examples/src/main/java/org/apache/abdera2/examples/activities/ActivitiesServlet.java Wed Oct 26 18:26:55 2011
@@ -9,11 +9,7 @@ import org.apache.abdera2.common.protoco
initParams={
@WebInitParam(
name="org.apache.abdera2.common.protocol.ServiceManager",
- value="org.apache.abdera2.activities.protocol.ActivitiesServiceManager"
- ),
- @WebInitParam(
- name="org.apache.abdera2.common.protocol.Provider",
- value="org.apache.abdera2.activities.protocol.basic.BasicProvider"
+ value="org.apache.abdera2.activities.protocol.basic.BasicServiceManager"
)
}
)
Modified: abdera/abdera2/examples/src/main/java/org/apache/abdera2/examples/appserver/employee/AppServer.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/examples/src/main/java/org/apache/abdera2/examples/appserver/employee/AppServer.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/examples/src/main/java/org/apache/abdera2/examples/appserver/employee/AppServer.java (original)
+++ abdera/abdera2/examples/src/main/java/org/apache/abdera2/examples/appserver/employee/AppServer.java Wed Oct 26 18:26:55 2011
@@ -17,7 +17,6 @@
*/
package org.apache.abdera2.examples.appserver.employee;
-import org.apache.abdera2.Abdera;
import org.apache.abdera2.common.protocol.Provider;
import org.apache.abdera2.common.protocol.servlet.AbderaServlet;
import org.apache.abdera2.protocol.server.impl.DefaultAtompubProvider;
@@ -26,7 +25,6 @@ import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
-
public class AppServer {
public static void main(String... args) throws Exception {
@@ -46,10 +44,8 @@ public class AppServer {
server.join();
}
- // START SNIPPET: servlet
public static final class EmployeeProviderServlet extends AbderaServlet {
private static final long serialVersionUID = -549428240693531463L;
-
protected Provider createProvider() {
EmployeeCollectionAdapter ca = new EmployeeCollectionAdapter("employee");
DefaultAtompubProvider provider =
@@ -61,10 +57,8 @@ public class AppServer {
.title("Employee Directory Workspace")
.collection(ca)
.get());
-
- provider.init(Abdera.getInstance(), null);
+ provider.init(null);
return provider;
}
}
- // END SNIPPET: servlet
}
Modified: abdera/abdera2/security/src/main/java/org/apache/abdera2/security/Security.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/security/src/main/java/org/apache/abdera2/security/Security.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/security/src/main/java/org/apache/abdera2/security/Security.java (original)
+++ abdera/abdera2/security/src/main/java/org/apache/abdera2/security/Security.java Wed Oct 26 18:26:55 2011
@@ -128,7 +128,7 @@ public class Security {
public <T extends Element>Predicate<T> isVerified(final SignatureOptions options) {
return new Predicate<T>() {
public boolean apply(T input) {
- return verifier(options).apply(input);
+ return verifier(options).apply(input);
}
};
}
Modified: abdera/abdera2/security/src/main/java/org/apache/abdera2/security/xmlsec/XmlSignature.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/security/src/main/java/org/apache/abdera2/security/xmlsec/XmlSignature.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/security/src/main/java/org/apache/abdera2/security/xmlsec/XmlSignature.java (original)
+++ abdera/abdera2/security/src/main/java/org/apache/abdera2/security/xmlsec/XmlSignature.java Wed Oct 26 18:26:55 2011
@@ -214,7 +214,6 @@ public class XmlSignature extends Signat
}
}
}
-
return answer;
}
Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/AtompubProvider.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/AtompubProvider.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/AtompubProvider.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/AtompubProvider.java Wed Oct 26 18:26:55 2011
@@ -17,8 +17,6 @@
*/
package org.apache.abdera2.protocol.server;
-import java.util.Map;
-
import org.apache.abdera2.Abdera;
import org.apache.abdera2.common.protocol.Provider;
import org.apache.abdera2.common.protocol.TargetType;
@@ -31,11 +29,6 @@ import org.apache.abdera2.common.protoco
public interface AtompubProvider extends Provider {
/**
- * Initialize the Provider.
- */
- void init(Abdera abdera, Map<String, String> properties);
-
- /**
* Retrieve the Abdera instance associated with this provider
*/
Abdera getAbdera();
Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/AtompubServiceManager.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/AtompubServiceManager.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/AtompubServiceManager.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/AtompubServiceManager.java Wed Oct 26 18:26:55 2011
@@ -20,39 +20,36 @@ package org.apache.abdera2.protocol.serv
import java.util.Map;
import org.apache.abdera2.Abdera;
-import org.apache.abdera2.common.Discover;
-import org.apache.abdera2.common.Localizer;
+import org.apache.abdera2.common.misc.MoreFunctions;
import org.apache.abdera2.common.protocol.AbstractServiceManager;
+import org.apache.abdera2.common.protocol.Provider;
import org.apache.abdera2.protocol.server.impl.DefaultAtompubProvider;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
/**
- * The ServiceManager is used by the AbderaServlet to bootstrap the server instance. There should be little to no reason
- * why an end user would need to use this class directly.
+ * The ServiceManager is used by the AbderaServlet to bootstrap the server
+ * instance. There should be little to no reason why an end user would need
+ * to use this class directly.
*/
public class AtompubServiceManager
- extends AbstractServiceManager<AtompubProvider> {
+ extends AbstractServiceManager {
- private final static Log log = LogFactory.getLog(AtompubServiceManager.class);
+ private final Abdera abdera;
- private final Abdera abdera = Abdera.getInstance();
-
- public AtompubServiceManager() {}
-
- public Abdera getAbdera() {
- return abdera;
+ public AtompubServiceManager() {
+ this.abdera = Abdera.getInstance();
+ }
+
+ public AtompubServiceManager(Abdera abdera) {
+ this.abdera = abdera;
}
- public AtompubProvider newProvider(Map<String, String> properties) {
- Abdera abdera = getAbdera();
- String instance = properties.get(PROVIDER);
- if (instance == null)
- instance = DefaultAtompubProvider.class.getName();
- log.debug(Localizer.sprintf("CREATING.NEW.INSTANCE", "Provider"));
- AtompubProvider provider = (AtompubProvider)Discover.locate(AtompubProvider.class, instance);
- log.debug(Localizer.sprintf("INITIALIZING.INSTANCE", "Provider"));
- provider.init(abdera, properties);
- return provider;
+ @SuppressWarnings("unchecked")
+ public <P extends Provider>P newProvider(
+ Map<String, Object> properties) {
+ properties.put("abdera",abdera);
+ return (P)MoreFunctions
+ .discoverInitializable(
+ Provider.class,
+ DefaultAtompubProvider.class).apply(properties);
}
}
Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubProvider.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubProvider.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubProvider.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubProvider.java Wed Oct 26 18:26:55 2011
@@ -124,9 +124,13 @@ public abstract class AbstractAtompubPro
workspaceManager));
}
- public void init(Abdera abdera, Map<String, String> properties) {
- this.abdera = abdera == null ? abdera : Abdera.getInstance();
- this.init(properties);
+ public void init(Map<String, Object> properties) {
+ this.abdera =
+ properties != null &&
+ properties.containsKey("abdera") ?
+ (Abdera)properties.get("abdera") :
+ Abdera.getInstance();
+ super.init(properties);
}
public Abdera getAbdera() {
Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java Wed Oct 26 18:26:55 2011
@@ -70,9 +70,13 @@ public abstract class AbstractAtompubWor
this));
}
- public void init(Abdera abdera, Map<String, String> properties) {
+ public void init(Map<String, Object> properties) {
+ this.abdera =
+ properties != null &&
+ properties.containsKey("abdera") ?
+ (Abdera)properties.get("abdera") :
+ Abdera.getInstance();
super.init(properties);
- this.abdera = abdera;
}
public Abdera getAbdera() {
Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/DefaultAtompubProvider.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/DefaultAtompubProvider.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/DefaultAtompubProvider.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/DefaultAtompubProvider.java Wed Oct 26 18:26:55 2011
@@ -21,7 +21,6 @@ import java.util.Collection;
import javax.security.auth.Subject;
-import org.apache.abdera2.common.misc.Resolver;
import org.apache.abdera2.common.protocol.DefaultWorkspaceManager;
import org.apache.abdera2.common.protocol.RequestContext;
import org.apache.abdera2.common.protocol.Request;
@@ -32,6 +31,8 @@ import org.apache.abdera2.common.protoco
import org.apache.abdera2.common.protocol.WorkspaceInfo;
import org.apache.abdera2.common.protocol.WorkspaceManager;
+import com.google.common.base.Function;
+
/**
* The DefaultProvider is the default Provider implementation for Abdera. It supports multiple collections and assumes a
* simple http://.../{collection}/{entry} URL structure. Media-link entries are not supported.
@@ -39,8 +40,8 @@ import org.apache.abdera2.common.protoco
public class DefaultAtompubProvider
extends AbstractAtompubProvider {
- protected Resolver<Target,RequestContext> targetResolver;
- protected Resolver<Subject,Request> subjectResolver;
+ protected Function<RequestContext,Target> targetResolver;
+ protected Function<Request,Subject> subjectResolver;
protected TargetBuilder<?> targetBuilder;
protected RouteManager<TargetType,RequestContext> routeManager;
@@ -68,27 +69,27 @@ public class DefaultAtompubProvider
return routeManager;
}
- protected Resolver<Target,RequestContext> getTargetResolver(RequestContext request) {
+ protected Function<RequestContext,Target> getTargetResolver(RequestContext request) {
return targetResolver;
}
- public void setTargetResolver(Resolver<Target,RequestContext> targetResolver) {
+ public void setTargetResolver(Function<RequestContext,Target> targetResolver) {
this.targetResolver = targetResolver;
}
- protected Resolver<Subject,Request> getSubjectResolver(RequestContext request) {
+ protected Function<Request,Subject> getSubjectResolver(RequestContext request) {
return subjectResolver;
}
- public void setSubjectResolver(Resolver<Subject,Request> subjectResolver) {
+ public void setSubjectResolver(Function<Request,Subject> subjectResolver) {
this.subjectResolver = subjectResolver;
}
- public Resolver<Target,RequestContext> getTargetResolver() {
+ public Function<RequestContext,Target> getTargetResolver() {
return targetResolver;
}
- public Resolver<Subject,Request> getSubjectResolver() {
+ public Function<Request,Subject> getSubjectResolver() {
return subjectResolver;
}
Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/processors/MultipartRelatedServiceRequestProcessor.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/processors/MultipartRelatedServiceRequestProcessor.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/processors/MultipartRelatedServiceRequestProcessor.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/processors/MultipartRelatedServiceRequestProcessor.java Wed Oct 26 18:26:55 2011
@@ -35,6 +35,8 @@ import org.apache.abdera2.protocol.serve
import org.apache.abdera2.protocol.server.multipart.MultipartRelatedCollectionInfo;
import org.apache.abdera2.writer.StreamWriter;
+import com.google.common.base.Predicate;
+
/**
* {@link org.apache.AtompubRequestProcessor.protocol.server.RequestProcessor} implementation which processes requests for service
* documents. It writes multipart/related accept attributes when is enabled.
@@ -42,11 +44,18 @@ import org.apache.abdera2.writer.StreamW
public class MultipartRelatedServiceRequestProcessor
extends ServiceRequestProcessor {
- protected MultipartRelatedServiceRequestProcessor(
+ public MultipartRelatedServiceRequestProcessor(
WorkspaceManager workspaceManager,
CollectionAdapter adapter) {
super(workspaceManager, adapter);
}
+
+ public MultipartRelatedServiceRequestProcessor(
+ WorkspaceManager workspaceManager,
+ CollectionAdapter adapter,
+ Predicate<RequestContext> predicate) {
+ super(workspaceManager, adapter, predicate);
+ }
protected ResponseContext getServiceDocument(
final RequestContext request,
Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/processors/ServiceRequestProcessor.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/processors/ServiceRequestProcessor.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/processors/ServiceRequestProcessor.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/processors/ServiceRequestProcessor.java Wed Oct 26 18:26:55 2011
@@ -21,6 +21,7 @@ import java.io.IOException;
import org.apache.abdera2.common.Constants;
import org.apache.abdera2.common.http.EntityTag;
+import org.apache.abdera2.common.misc.ExceptionHelper;
import org.apache.abdera2.common.protocol.RequestContext;
import org.apache.abdera2.common.protocol.ResponseContext;
import org.apache.abdera2.common.protocol.CollectionAdapter;
@@ -36,6 +37,8 @@ import org.apache.abdera2.protocol.serve
import org.apache.abdera2.writer.StreamWriter;
import org.joda.time.DateTime;
+import com.google.common.base.Predicate;
+
/**
* {@link org.apache.AtompubRequestProcessor.protocol.server.RequestProcessor} implementation which processes requests for service
* documents.
@@ -43,11 +46,19 @@ import org.joda.time.DateTime;
public class ServiceRequestProcessor
extends RequestProcessor {
- protected ServiceRequestProcessor(
+ public ServiceRequestProcessor(
WorkspaceManager workspaceManager,
CollectionAdapter adapter) {
super(workspaceManager, adapter);
}
+
+ public ServiceRequestProcessor(
+ WorkspaceManager workspaceManager,
+ CollectionAdapter adapter,
+ Predicate<RequestContext> predicate) {
+ super(workspaceManager, adapter,predicate);
+ }
+
public ResponseContext apply(
RequestContext request) {
@@ -59,7 +70,7 @@ public class ServiceRequestProcessor
WorkspaceManager workspaceManager) {
String method = context.getMethod();
if (method.equalsIgnoreCase("GET")) {
- return this.getServiceDocument(context, workspaceManager);
+ return getServiceDocument(context, workspaceManager);
} else {
return null;
}
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/AsyncBasicTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/AsyncBasicTest.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/AsyncBasicTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/AsyncBasicTest.java Wed Oct 26 18:26:55 2011
@@ -32,8 +32,6 @@ import org.apache.abdera2.activities.mod
import org.apache.abdera2.activities.model.Verb;
import org.apache.abdera2.activities.model.objects.NoteObject;
import org.apache.abdera2.activities.model.objects.PersonObject;
-import org.apache.abdera2.activities.protocol.ActivitiesServiceManager;
-import org.apache.abdera2.activities.protocol.basic.BasicProvider;
import org.apache.abdera2.common.http.ResponseType;
import org.apache.abdera2.protocol.client.BasicClient;
import org.apache.abdera2.protocol.client.ClientResponse;
@@ -55,8 +53,7 @@ public class AsyncBasicTest {
if (server == null) {
server = new JettyServer();
server.startAsync(
- ActivitiesServiceManager.class,
- BasicProvider.class,
+ BasicActivitiesServiceManager.class,
new TestChannelServlet());
}
}
Added: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicActivitiesServiceManager.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicActivitiesServiceManager.java?rev=1189362&view=auto
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicActivitiesServiceManager.java (added)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicActivitiesServiceManager.java Wed Oct 26 18:26:55 2011
@@ -0,0 +1,21 @@
+package org.apache.abdera2.test.activities.server;
+
+import java.util.Map;
+
+import org.apache.abdera2.activities.protocol.ActivitiesServiceManager;
+import org.apache.abdera2.activities.protocol.basic.BasicProvider;
+import org.apache.abdera2.common.protocol.Provider;
+
+public class BasicActivitiesServiceManager
+ extends ActivitiesServiceManager {
+
+ public BasicActivitiesServiceManager() {}
+
+ @SuppressWarnings("unchecked")
+ public <P extends Provider> P newProvider(Map<String, Object> properties) {
+ BasicProvider bp = new BasicProvider();
+ bp.init(properties);
+ return (P)bp;
+ }
+
+}
Propchange: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicActivitiesServiceManager.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicTest.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/BasicTest.java Wed Oct 26 18:26:55 2011
@@ -32,8 +32,6 @@ import org.apache.abdera2.activities.mod
import org.apache.abdera2.activities.model.Verb;
import org.apache.abdera2.activities.model.objects.NoteObject;
import org.apache.abdera2.activities.model.objects.PersonObject;
-import org.apache.abdera2.activities.protocol.ActivitiesServiceManager;
-import org.apache.abdera2.activities.protocol.basic.BasicProvider;
import org.apache.abdera2.protocol.client.BasicClient;
import org.apache.abdera2.protocol.client.ClientResponse;
import org.apache.abdera2.protocol.client.Client;
@@ -56,7 +54,7 @@ public class BasicTest {
public static void setUp() throws Exception {
if (server == null) {
server = new JettyServer();
- server.start(ActivitiesServiceManager.class, BasicProvider.class);
+ server.start(BasicActivitiesServiceManager.class);
}
}
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/TestChannelServlet.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/TestChannelServlet.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/TestChannelServlet.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/server/TestChannelServlet.java Wed Oct 26 18:26:55 2011
@@ -3,8 +3,6 @@ package org.apache.abdera2.test.activiti
import java.io.Writer;
import javax.servlet.AsyncContext;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -42,9 +40,4 @@ public class TestChannelServlet
};
}
- @Override
- protected long getTimeout(ServletConfig config, ServletContext context) {
- return 60 * 1000;
- }
-
}
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/misc/MiscTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/misc/MiscTest.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/misc/MiscTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/misc/MiscTest.java Wed Oct 26 18:26:55 2011
@@ -8,7 +8,6 @@ import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
-import org.apache.abdera2.common.misc.PoolManager;
import org.junit.Test;
import com.google.common.collect.Iterators;
@@ -37,23 +36,4 @@ public class MiscTest {
assertFalse(mi.hasNext());
}
- @Test
- public void poolManagerTest() {
- PoolManager<String,String> pm =
- new PoolManager<String,String>(2) {
- private int c = 0;
- protected String internalNewInstance() {
- return "A"+(c++);
- }
- };
- assertEquals("A0",pm.get(""));
- assertEquals("A1",pm.get(""));
- pm.release("A0");
- assertEquals("A0",pm.get(""));
- pm.release("A0");
- pm.release("A1");
- pm.release("A2");
- assertEquals("A1",pm.get(""));
- assertEquals("A2",pm.get(""));
- }
}
Added: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/CustomAtompubServiceManager.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/CustomAtompubServiceManager.java?rev=1189362&view=auto
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/CustomAtompubServiceManager.java (added)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/CustomAtompubServiceManager.java Wed Oct 26 18:26:55 2011
@@ -0,0 +1,18 @@
+package org.apache.abdera2.test.security.filter;
+
+import java.util.Map;
+
+import org.apache.abdera2.common.protocol.Provider;
+import org.apache.abdera2.protocol.server.AtompubServiceManager;
+
+public class CustomAtompubServiceManager extends AtompubServiceManager {
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <P extends Provider> P newProvider(Map<String, Object> properties) {
+ CustomProvider cp = new CustomProvider("/");
+ cp.init(properties);
+ return (P)cp;
+ }
+
+}
Propchange: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/CustomAtompubServiceManager.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/JettyServer.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/JettyServer.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/JettyServer.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/JettyServer.java Wed Oct 26 18:26:55 2011
@@ -18,8 +18,8 @@
package org.apache.abdera2.test.security.filter;
import org.apache.abdera2.common.protocol.Provider;
+import org.apache.abdera2.common.protocol.ServiceManager;
import org.apache.abdera2.common.protocol.servlet.AbderaServlet;
-import org.apache.abdera2.protocol.server.AtompubServiceManager;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
@@ -40,13 +40,13 @@ public class JettyServer {
this.port = port;
}
- public void start(Class<? extends Provider> _class) throws Exception {
+ public void start(Class<? extends ServiceManager> _class) throws Exception {
server = new Server(port);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
ServletHolder servletHolder = new ServletHolder(new AbderaServlet());
- servletHolder.setInitParameter(AtompubServiceManager.PROVIDER, _class.getName());
+ servletHolder.setInitParameter(ServiceManager.class.getName(), _class.getName());
context.addServlet(servletHolder, "/*");
server.start();
}
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/SecurityFilterTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/SecurityFilterTest.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/SecurityFilterTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/SecurityFilterTest.java Wed Oct 26 18:26:55 2011
@@ -54,7 +54,7 @@ public class SecurityFilterTest {
try {
server = new JettyServer();
- server.start(CustomProvider.class);
+ server.start(CustomAtompubServiceManager.class);
} catch (Exception e) {
e.printStackTrace();
}
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/SimpleAdapter.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/SimpleAdapter.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/SimpleAdapter.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/security/filter/SimpleAdapter.java Wed Oct 26 18:26:55 2011
@@ -156,9 +156,17 @@ public class SimpleAdapter extends Abstr
feed.setUpdated(DateTime.now());
FOMResponseContext<?> rc =
(FOMResponseContext<?>)AbstractAtompubProvider.returnBase(entry_doc, 201, entry.getEdited());
- return rc.setLocation(ProviderHelper.resolveBase(request).resolve(entry.getEditLinkResolvedHref())
- .toString()).setContentLocation(rc.getLocation().toString()).setEntityTag(AbstractAtompubProvider
- .calculateEntityTag(entry));
+ return rc
+ .setLocation(
+ ProviderHelper
+ .resolveBase(request)
+ .resolve(entry.getEditLinkResolvedHref()))
+ .setContentLocation(
+ rc.getLocation()
+ .toString())
+ .setEntityTag(
+ AbstractAtompubProvider
+ .calculateEntityTag(entry));
} else {
return ProviderHelper.badrequest(request);
}
@@ -184,7 +192,7 @@ public class SimpleAdapter extends Abstr
Map<String, String> params = new HashMap<String, String>();
params.put("collection", request.getTarget().getParameter("collection"));
params.put("entry", entryid);
- return request.urlFor(TargetType.TYPE_ENTRY, params);
+ return request.urlFor("entry",params);
}
private Function<RequestContext,ResponseContext> putItem() {
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/JettyServer.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/JettyServer.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/JettyServer.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/JettyServer.java Wed Oct 26 18:26:55 2011
@@ -25,36 +25,22 @@ import org.apache.abdera2.common.protoco
import org.apache.abdera2.common.protocol.servlet.async.AbderaAsyncService;
import org.apache.abdera2.common.protocol.servlet.async.AbderaChannelServlet;
import org.apache.abdera2.common.protocol.servlet.async.AsyncAbderaServlet;
-import org.apache.abdera2.protocol.server.AtompubServiceManager;
import org.apache.abdera2.test.JettyUtil;
import org.eclipse.jetty.servlet.ServletHolder;
public class JettyServer {
- public void start(Class<? extends Provider> _class) throws Exception {
- ServletHolder servletHolder = new ServletHolder(new AbderaServlet());
- servletHolder.setInitParameter(AtompubServiceManager.PROVIDER, _class.getName());
-
- JettyUtil.addServlet(servletHolder, "/*");
- JettyUtil.start();
- }
-
-
public void start(
- Class<? extends ServiceManager<?>> _smclass,
- Class<? extends Provider> _class) throws Exception {
+ Class<? extends ServiceManager> _smclass) throws Exception {
ServletHolder servletHolder = new ServletHolder(new AbderaServlet());
- servletHolder.setInitParameter(ServiceManager.PROVIDER, _class.getName());
servletHolder.setInitParameter(ServiceManager.class.getName(), _smclass.getName());
JettyUtil.addServlet(servletHolder, "/*");
JettyUtil.start();
}
-
public void startAsync(
- Class<? extends ServiceManager<?>> _smclass,
- Class<? extends Provider> _class,
+ Class<? extends ServiceManager> _smclass,
AbderaChannelServlet acs) throws Exception {
ServletHolder servletHolder = new ServletHolder(new AsyncAbderaServlet());
@@ -72,7 +58,6 @@ public class JettyServer {
JettyUtil.getSch().setInitParameter("AbderaAtompubService", "true");
JettyUtil.getSch().setInitParameter("AbderaChannelService", "true");
JettyUtil.getSch().setInitParameter(ServiceManager.class.getName(), _smclass.getName());
- JettyUtil.getSch().setInitParameter(ServiceManager.PROVIDER, _class.getName());
JettyUtil.getSch().setEventListeners(listeners);
JettyUtil.start();
}
Added: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicAtompubServiceManager.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicAtompubServiceManager.java?rev=1189362&view=auto
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicAtompubServiceManager.java (added)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicAtompubServiceManager.java Wed Oct 26 18:26:55 2011
@@ -0,0 +1,23 @@
+package org.apache.abdera2.test.server.basic;
+
+import java.util.Map;
+
+import org.apache.abdera2.common.protocol.Provider;
+import org.apache.abdera2.protocol.server.AtompubServiceManager;
+import org.apache.abdera2.protocol.server.provider.basic.BasicProvider;
+
+public class BasicAtompubServiceManager
+ extends AtompubServiceManager {
+
+ public BasicAtompubServiceManager() {}
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <P extends Provider> P newProvider(
+ Map<String, Object> properties) {
+ BasicProvider bp = new BasicProvider();
+ bp.init(properties);
+ return (P)bp;
+ }
+
+}
Propchange: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicAtompubServiceManager.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicTest.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/basic/BasicTest.java Wed Oct 26 18:26:55 2011
@@ -38,7 +38,6 @@ import org.apache.abdera2.protocol.clien
import org.apache.abdera2.protocol.client.ClientResponse;
import org.apache.abdera2.protocol.client.RequestOptions;
import org.apache.abdera2.protocol.client.Session;
-import org.apache.abdera2.protocol.server.provider.basic.BasicProvider;
import org.apache.abdera2.test.server.JettyServer;
import org.apache.abdera2.common.Constants;
import org.apache.abdera2.common.http.ResponseType;
@@ -60,7 +59,7 @@ public class BasicTest {
public static void setUp() throws Exception {
if (server == null) {
server = new JettyServer();
- server.start(BasicProvider.class);
+ server.start(BasicAtompubServiceManager.class);
}
}
Added: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomAtompubServiceManager.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomAtompubServiceManager.java?rev=1189362&view=auto
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomAtompubServiceManager.java (added)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomAtompubServiceManager.java Wed Oct 26 18:26:55 2011
@@ -0,0 +1,18 @@
+package org.apache.abdera2.test.server.custom;
+
+import java.util.Map;
+
+import org.apache.abdera2.common.protocol.Provider;
+import org.apache.abdera2.protocol.server.AtompubServiceManager;
+
+public class CustomAtompubServiceManager extends AtompubServiceManager {
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <P extends Provider> P newProvider(Map<String, Object> properties) {
+ CustomProvider cp = new CustomProvider("/");
+ cp.init(properties);
+ return (P)cp;
+ }
+
+}
Propchange: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomAtompubServiceManager.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomProviderTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomProviderTest.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomProviderTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/custom/CustomProviderTest.java Wed Oct 26 18:26:55 2011
@@ -61,7 +61,7 @@ public class CustomProviderTest {
public static void setUp() throws Exception {
try {
server = new JettyServer();
- server.start(CustomProvider.class);
+ server.start(CustomAtompubServiceManager.class);
} catch (Exception e) {
e.printStackTrace();
}
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/customer/CustomerAdapterTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/customer/CustomerAdapterTest.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/customer/CustomerAdapterTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/customer/CustomerAdapterTest.java Wed Oct 26 18:26:55 2011
@@ -196,7 +196,7 @@ public class CustomerAdapterTest {
JettyUtil.addServlet(new ServletHolder(new AbderaServlet() {
@Override
protected AtompubProvider createProvider() {
- customerProvider.init(Abdera.getInstance(), null);
+ customerProvider.init(null);
return customerProvider;
}
}), "/*");
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/multipart/MultipartRelatedTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/multipart/MultipartRelatedTest.java?rev=1189362&r1=1189361&r2=1189362&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/multipart/MultipartRelatedTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/server/multipart/MultipartRelatedTest.java Wed Oct 26 18:26:55 2011
@@ -47,8 +47,7 @@ public class MultipartRelatedTest {
RequestProcessor.forClass(
MultipartRelatedServiceRequestProcessor.class,
provider.getWorkspaceManager()));
- provider.addRequestProcessors(map);
-
+ provider.addRequestProcessors(map);
MultipartRelatedAdapter ca = new MultipartRelatedAdapter("media");
provider
@@ -59,7 +58,7 @@ public class MultipartRelatedTest {
.collection(ca)
.get());
- provider.init(Abdera.getInstance(), null);
+ provider.init(null);
return provider;
}
}), "/*");