Skip to content

Commit

Permalink
Update Atmosphere to 2.4.3
Browse files Browse the repository at this point in the history
Unit tests now pass!
Deployment at Tomcat (8.0.17) fails with:

java.lang.NullPointerException
  org.atmosphere.handler.ReflectorServletProcessor.loadServlet(ReflectorServletProcessor.java:104)
  org.atmosphere.handler.ReflectorServletProcessor.loadWebApplication(ReflectorServletProcessor.java:84)
  org.atmosphere.handler.ReflectorServletProcessor.init(ReflectorServletProcessor.java:172)
  org.atmosphere.cpr.AtmosphereFramework.initAtmosphereHandler(AtmosphereFramework.java:1732)
  org.atmosphere.cpr.AtmosphereFramework.initAtmosphereHandler(AtmosphereFramework.java:1721)
  org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:917)
  org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:838)
  org.atmosphere.cpr.AtmosphereFrameworkInitializer.configureFramework(AtmosphereFrameworkInitializer.java:75)
  org.atmosphere.cpr.AtmosphereServlet.configureFramework(AtmosphereServlet.java:84)
  org.atmosphere.cpr.AtmosphereServlet.configureFramework(AtmosphereServlet.java:80)
  org.atmosphere.cpr.AtmosphereServlet.init(AtmosphereServlet.java:75)
  org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
...
  • Loading branch information
martin-g committed Mar 6, 2016
1 parent 65f86a1 commit ebfa1bb
Show file tree
Hide file tree
Showing 21 changed files with 183 additions and 157 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -405,7 +405,7 @@
<dependency>
<groupId>org.apache.wicket.experimental.wicket7</groupId>
<artifactId>wicket-atmosphere</artifactId>
<version>0.24-SNAPSHOT</version>
<version>0.26-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
Expand Down
4 changes: 2 additions & 2 deletions wicket-experimental/wicket-atmosphere/pom.xml
Expand Up @@ -41,7 +41,7 @@
</repository>
</repositories>
<properties>
<atmosphere.version>2.4.2</atmosphere.version>
<atmosphere.version>2.4.3</atmosphere.version>
<jquery.atmosphere.version>2.2.7</jquery.atmosphere.version>
</properties>
<dependencyManagement>
Expand Down Expand Up @@ -87,7 +87,6 @@
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-core</artifactId>
<version>7.2.0</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
Expand All @@ -96,6 +95,7 @@
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery-atmosphere</artifactId>
<version>${jquery.atmosphere.version}</version>
</dependency>
</dependencies>
<build>
Expand Down
Expand Up @@ -34,7 +34,20 @@
import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.resource.CoreLibrariesContributor;
import org.apache.wicket.util.string.Strings;
import org.atmosphere.cpr.*;
import org.atmosphere.cpr.Action;
import org.atmosphere.cpr.AsyncSupport;
import org.atmosphere.cpr.AtmosphereRequest;
import org.atmosphere.cpr.AtmosphereRequestImpl;
import org.atmosphere.cpr.AtmosphereResource;
import org.atmosphere.cpr.AtmosphereResourceEvent;
import org.atmosphere.cpr.AtmosphereResourceEventListener;
import org.atmosphere.cpr.AtmosphereResourceImpl;
import org.atmosphere.cpr.AtmosphereResponse;
import org.atmosphere.cpr.AtmosphereResponseImpl;
import org.atmosphere.cpr.Broadcaster;
import org.atmosphere.cpr.FrameworkConfig;
import org.atmosphere.cpr.HeaderConfig;
import org.atmosphere.cpr.Meteor;
import org.atmosphere.handler.AtmosphereHandlerAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -54,7 +67,7 @@
*/
public class AtmosphereBehavior extends AbstractAjaxBehavior
implements
AtmosphereResourceEventListener
AtmosphereResourceEventListener
{
private static final Logger log = LoggerFactory.getLogger(AtmosphereBehavior.class);

Expand Down Expand Up @@ -107,20 +120,21 @@ public void onRequest()
RequestCycle requestCycle = RequestCycle.get();
ServletWebRequest request = (ServletWebRequest)requestCycle.getRequest();
WebResponse response = (WebResponse)requestCycle.getResponse();
AtmosphereRequest aRequest = AtmosphereRequestImpl.newInstance();
aRequest.setRequest(request.getContainerRequest());
AtmosphereResponse aResponse = AtmosphereResponseImpl.newInstance();
aResponse.setResponse((ServletResponse)response.getContainerResponse());
AtmosphereRequest atmosphereRequest = AtmosphereRequestImpl.newInstance();
atmosphereRequest.setRequest(request.getContainerRequest());
AtmosphereResponse atmosphereResponse = AtmosphereResponseImpl.newInstance();
atmosphereResponse.setResponse((ServletResponse)response.getContainerResponse());

Broadcaster broadcaster = EventBus.get().getBroadcaster();

AtmosphereResource atmosphereResource = new AtmosphereResourceImpl();
// TODO This is bad! Atmosphere should detect/provide the impl. We should not hardcode !
TesterAsyncSupport asyncSupport = new TesterAsyncSupport();
atmosphereResource.initialize(
broadcaster.getBroadcasterConfig().getAtmosphereConfig(),
broadcaster,
aRequest,
aResponse,
atmosphereRequest,
atmosphereResponse,
asyncSupport,
new AtmosphereHandlerAdapter()
);
Expand Down Expand Up @@ -289,18 +303,7 @@ public static String getUUID(Page page)
return page.getMetaData(ATMOSPHERE_UUID);
}

/**
* @param resource
* @return the unique id for the given suspended connection
* @deprecated use {@link AtmosphereResource#uuid()}
*/
@Deprecated
public static String getUUID(AtmosphereResource resource)
{
return resource.uuid();
}

class TesterAsyncSupport<E extends AtmosphereResource> implements AsyncSupport<E>
private static class TesterAsyncSupport<E extends AtmosphereResource> implements AsyncSupport<E>
{
@Override
public String getContainerName()
Expand Down
Expand Up @@ -16,19 +16,20 @@
*/
package org.apache.wicket.atmosphere;

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.collect.ImmutableList;
import java.lang.reflect.Method;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;

import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.application.IComponentOnBeforeRenderListener;
import org.apache.wicket.behavior.Behavior;

import java.lang.reflect.Method;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.collect.ImmutableList;

/**
* Collects {@linkplain Subscribe event subscriptions} on components. Subscriptions are refreshed on
Expand All @@ -40,8 +41,8 @@
*/
public class AtmosphereEventSubscriptionCollector implements IComponentOnBeforeRenderListener
{
private Cache<Class<?>, Iterable<Method>> subscribedMethodsCache;
private EventBus eventBus;
private final Cache<Class<?>, Iterable<Method>> subscribedMethodsCache;
private final EventBus eventBus;

/**
* Construct.
Expand Down
Expand Up @@ -16,6 +16,8 @@
*/
package org.apache.wicket.atmosphere;

import java.util.Iterator;

import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.Session;
Expand All @@ -29,8 +31,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Iterator;

/**
* Handles pseudo requests triggered by an event. An {@link AjaxRequestTarget} is scheduled and the
* subscribed methods are invoked.
Expand Down
Expand Up @@ -16,6 +16,14 @@
*/
package org.apache.wicket.atmosphere;

import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.wicket.protocol.http.RequestUtils;
Expand All @@ -26,13 +34,6 @@
import org.apache.wicket.util.lang.Bytes;
import org.apache.wicket.util.time.Time;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;

/**
* Internal request to signal the processing of an event. This request will be mapped by
* {@link AtmosphereRequestMapper} to an {@link AtmosphereRequestHandler}. The response will be
Expand Down
Expand Up @@ -16,13 +16,13 @@
*/
package org.apache.wicket.atmosphere;

import javax.servlet.http.Cookie;

import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.time.Time;
import org.atmosphere.cpr.AtmosphereResponse;

import javax.servlet.http.Cookie;

/**
* Internal response class to wrap {@code AtmosphereResponse} to a {@link WebResponse}.
*
Expand Down
Expand Up @@ -16,29 +16,49 @@
*/
package org.apache.wicket.atmosphere;

import com.google.common.collect.*;
import org.apache.wicket.*;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.CopyOnWriteArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

import org.apache.wicket.Application;
import org.apache.wicket.Component;
import org.apache.wicket.MetaDataKey;
import org.apache.wicket.Page;
import org.apache.wicket.Session;
import org.apache.wicket.ThreadContext;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.application.IComponentOnBeforeRenderListener;
import org.apache.wicket.atmosphere.config.AtmosphereParameters;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.WicketFilter;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import org.apache.wicket.request.Response;
import org.apache.wicket.session.ISessionStore.UnboundListener;
import org.atmosphere.cpr.*;
import org.atmosphere.cpr.AtmosphereConfig;
import org.atmosphere.cpr.AtmosphereFramework;
import org.atmosphere.cpr.AtmosphereResource;
import org.atmosphere.cpr.AtmosphereResourceFactory;
import org.atmosphere.cpr.Broadcaster;
import org.atmosphere.cpr.BroadcasterFactory;
import org.atmosphere.cpr.BroadcasterLifeCyclePolicy;
import org.atmosphere.cpr.DefaultAtmosphereResourceFactory;
import org.atmosphere.cpr.DefaultBroadcasterFactory;
import org.atmosphere.util.SimpleBroadcaster;
import org.atmosphere.util.Version;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.CopyOnWriteArrayList;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;

/**
* Broadcasts events to methods on components annotated with {@link Subscribe}.
Expand Down Expand Up @@ -109,6 +129,7 @@ public static boolean isInstalled(Application application)

private Broadcaster broadcaster;

// TODO make final!
private AtmosphereFramework framework;

/**
Expand Down
Expand Up @@ -16,14 +16,15 @@
*/
package org.apache.wicket.atmosphere;

import com.google.common.base.Objects;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import java.lang.reflect.Method;

import org.apache.wicket.Component;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.behavior.Behavior;

import java.lang.reflect.Method;
import com.google.common.base.Objects;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;

/**
* The subscription of a method on a component to certain events. This is used by {@link EventBus}
Expand Down
Expand Up @@ -16,12 +16,13 @@
*/
package org.apache.wicket.atmosphere;

import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
import java.util.List;

import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.resource.JQueryPluginResourceReference;

import java.util.List;
import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;

/**
* Resource reference for the jquery.atmosphere.js module and the wicket glue.
Expand Down
Expand Up @@ -16,16 +16,17 @@
*/
package org.apache.wicket.atmosphere;

import com.google.common.base.Predicate;
import org.apache.wicket.Session;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.request.cycle.RequestCycle;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.apache.wicket.Session;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.request.cycle.RequestCycle;

import com.google.common.base.Predicate;

/**
* Subscribes a method on a component to receive events of a certain type. The method should have 2
* parameters: the first must be {@link AjaxRequestTarget}, the second defines the type of events to
Expand Down
Expand Up @@ -16,12 +16,12 @@
*/
package org.apache.wicket.atmosphere;

import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestTarget;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestTarget;

/**
* Handles invocations of methods annotated with {@link Subscribe} annotation.
*/
Expand Down
Expand Up @@ -16,12 +16,12 @@
*/
package org.apache.wicket.atmosphere.config;

import java.util.List;

import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.json.JSONException;
import org.apache.wicket.ajax.json.JSONObject;

import java.util.List;

/**
* Contains the parameters passed to the Atmosphere JQuery plugin. See
* {@link "https://github.com/Atmosphere/atmosphere/wiki/jQuery.atmosphere.js-API"} for details.
Expand Down

0 comments on commit ebfa1bb

Please sign in to comment.