Skip to content

Commit

Permalink
Support EAP in web.
Browse files Browse the repository at this point in the history
The biggest change here is WildflyWeb is now ServletWeb, a pure-servlet
Web interface implementation (instead of extending UndertowWeb), so it
now works in both WildFly and EAP (probably only 6.3+).

There are caveats around WebSockets in EAP, but those will be documented
elsewhere.
  • Loading branch information
tobias committed Jul 10, 2015
1 parent 8769bb0 commit 9a09fb1
Show file tree
Hide file tree
Showing 28 changed files with 575 additions and 342 deletions.
85 changes: 85 additions & 0 deletions modules/as-support/pom.xml
@@ -0,0 +1,85 @@
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<parent>
<groupId>org.projectodd.wunderboss</groupId>
<artifactId>wunderboss-modules</artifactId>
<version>0.8.2-SNAPSHOT</version>
</parent>

<modelVersion>4.0.0</modelVersion>

<groupId>org.projectodd.wunderboss</groupId>
<artifactId>wunderboss-as-support</artifactId>
<name>WunderBoss Application Server Support Module</name>

<packaging>jar</packaging>

<properties>
<version.jboss.modules>1.3.6.Final</version.jboss.modules>
<version.wildfly>8.2.0.Final</version.wildfly>
<version.jgroups>3.2.13.Final</version.jgroups> <!-- the version used by EAP 6.4 -->
<version.jboss-msc>1.1.5.Final</version.jboss-msc> <!-- the version used by EAP 6.4 -->
</properties>

<dependencies>
<dependency>
<groupId>org.projectodd.wunderboss</groupId>
<artifactId>wunderboss-core</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jgroups</groupId>
<artifactId>jgroups</artifactId>
<version>${version.jgroups}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.msc</groupId>
<artifactId>jboss-msc</artifactId>
<version>${version.jboss-msc}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.projectodd.wunderboss</groupId>
<artifactId>wunderboss-messaging-hornetq</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectodd.wunderboss</groupId>
<artifactId>wunderboss-web</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectodd.wunderboss</groupId>
<artifactId>wunderboss-caching</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectodd.wunderboss</groupId>
<artifactId>wunderboss-transactions</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.jboss.modules</groupId>
<artifactId>jboss-modules</artifactId>
<version>${version.jboss.modules}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-messaging</artifactId>
<version>${version.wildfly}</version>
<scope>provided</scope>
</dependency>
</dependencies>

</project>
@@ -0,0 +1,51 @@
/*
* Copyright 2014-2015 Red Hat, Inc, and individual contributors.
*
* 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.
*/

package org.projectodd.wunderboss.as;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;

public class ActionConduit {
public synchronized void close() {
if (!queue.isEmpty()) {
throw new RuntimeException("Can't close non-empty conduit");
}
this.open = false;
}

public synchronized boolean add(Runnable action) {
if (!isOpen()) {

return false;
}

this.queue.add(action);

return true;
}

public synchronized Runnable poll() {
return this.queue.poll();
}

public synchronized boolean isOpen() {
return this.open;
}

private final BlockingQueue<Runnable> queue = new LinkedBlockingQueue<>();
private boolean open = true;
}
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package org.projectodd.wunderboss.wildfly;
package org.projectodd.wunderboss.as;

import org.projectodd.wunderboss.ComponentProvider;
import org.projectodd.wunderboss.Options;
Expand Down
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package org.projectodd.wunderboss.wildfly;
package org.projectodd.wunderboss.as;

import org.jgroups.Address;
import org.jgroups.Channel;
Expand Down
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package org.projectodd.wunderboss.wildfly;
package org.projectodd.wunderboss.as;

import org.jboss.msc.service.ServiceController;
import org.jboss.msc.service.ServiceRegistry;
Expand Down
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package org.projectodd.wunderboss.wildfly;
package org.projectodd.wunderboss.as;

import org.jboss.logging.Logger;
import org.jboss.msc.service.Service;
Expand All @@ -25,6 +25,9 @@
import org.jboss.msc.service.StartException;
import org.jboss.msc.service.StopContext;
import org.projectodd.wunderboss.WunderBoss;
import org.projectodd.wunderboss.as.wildfly.WildFlyCachingProvider;
import org.projectodd.wunderboss.as.wildfly.WildFlyMessagingProvider;
import org.projectodd.wunderboss.as.wildfly.WildFlyTransactionProvider;
import org.projectodd.wunderboss.caching.Caching;
import org.projectodd.wunderboss.messaging.Messaging;
import org.projectodd.wunderboss.singleton.SingletonContext;
Expand All @@ -38,8 +41,11 @@
import javax.naming.Context;
import java.lang.management.ManagementFactory;

public class WildFlyService implements Service<WildFlyService> {
public static final String KEY = "wildfly-service";
public class MSCService implements Service<MSCService> {
public static final String KEY = "wunderboss-msc-service";
public static final ServiceName JMS_MANAGER_SERVICE_NAME = ServiceName.JBOSS.append("messaging", "default", "jms", "manager");
public static final ServiceName WEB_CACHE_MANAGER = ServiceName.JBOSS.append("infinispan", "web");
public static final ServiceName TRANSACTION_MANAGER = ServiceName.JBOSS.append("txn", "TransactionManager");

public static ServiceName parentServiceName(String deploymentName) {
return ServiceName.JBOSS.append("deployment").append("unit").append(deploymentName);
Expand All @@ -49,7 +55,7 @@ public static ServiceName serviceName(String deploymentName) {
return parentServiceName(deploymentName).append("wunderboss");
}

public WildFlyService(String deploymentName, ServiceRegistry registry, ServiceTarget serviceTarget, Context namingContext) {
public MSCService(String deploymentName, ServiceRegistry registry, ServiceTarget serviceTarget, Context namingContext) {
this.deploymentName = deploymentName;
this.serviceRegistry = registry;
this.serviceTarget = serviceTarget;
Expand Down Expand Up @@ -88,7 +94,7 @@ public void stop(StopContext context) {
}

@Override
public WildFlyService getValue() throws IllegalStateException, IllegalArgumentException {
public MSCService getValue() throws IllegalStateException, IllegalArgumentException {
return this;
}

Expand Down Expand Up @@ -130,9 +136,5 @@ public Context namingContext() {
private final ServiceTarget serviceTarget;
private final Context namingContext;

private static final Logger log = Logger.getLogger("org.projectodd.wunderboss.wildfly");

static final ServiceName JMS_MANAGER_SERVICE_NAME = ServiceName.JBOSS.append("messaging", "default", "jms", "manager");
static final ServiceName WEB_CACHE_MANAGER = ServiceName.JBOSS.append("infinispan", "web");
static final ServiceName TRANSACTION_MANAGER = ServiceName.JBOSS.append("txn", "TransactionManager");
private static final Logger log = Logger.getLogger("org.projectodd.wunderboss.as");
}
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package org.projectodd.wunderboss.wildfly;
package org.projectodd.wunderboss.as;

import org.jboss.modules.Module;
import org.jboss.modules.ModuleClassLoader;
Expand Down

0 comments on commit 9a09fb1

Please sign in to comment.