org.jboss.remoting3.LegacyEndpoint Maven / Gradle / Ivy
Go to download
This artifact provides a single jar that contains all classes required to use remote EJB and JMS, including
all dependencies. It is intended for use by those not using maven, maven users should just import the EJB and
JMS BOM's instead (shaded JAR's cause lots of problems with maven, as it is very easy to inadvertently end up
with different versions on classes on the class path).
/*
* JBoss, Home of Professional Open Source
* Copyright 2010, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.remoting3;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.URI;
import javax.net.ssl.SSLContext;
import javax.security.auth.callback.CallbackHandler;
import org.jboss.remoting3.spi.ConnectionProviderFactory;
import org.wildfly.security.auth.client.AuthenticationConfiguration;
import org.wildfly.security.auth.client.AuthenticationContext;
import org.xnio.IoFuture;
import org.xnio.OptionMap;
import org.xnio.XnioWorker;
/**
* @author bmaxwell
* JBEAP-14783 wraper to imitate Remoting 4.0 behavior
* Wrap endpoint and ignore addConnectionProvider to avoid DuplicateRegistrationException
*/
@Deprecated
public class LegacyEndpoint implements Endpoint {
private final Endpoint endpoint;
public LegacyEndpoint(Endpoint endpoint) {
this.endpoint = endpoint;
// JBEAP-14783 - add a handler to shutdown the xnio worker otherwise legacy Remoting 4.0 will not stop
// completely when endpoint is closed as it did in 4.0
this.endpoint.addCloseHandler(new CloseHandler() {
@Override
public void handleClose(org.jboss.remoting3.Endpoint closed, IOException exception) {
endpoint.getXnioWorker().shutdown();
}
});
}
@Override
public void close() throws IOException {
this.endpoint.close();
}
@Override
public void awaitClosed() throws InterruptedException {
this.endpoint.awaitClosed();
}
@Override
public void awaitClosedUninterruptibly() {
this.endpoint.awaitClosedUninterruptibly();
}
@Override
public void closeAsync() {
this.endpoint.closeAsync();
}
@Override
public org.jboss.remoting3.HandleableCloseable.Key addCloseHandler(CloseHandler super Endpoint> handler) {
return this.endpoint.addCloseHandler(handler);
}
@Override
public boolean isOpen() {
return this.endpoint.isOpen();
}
@Override
public Attachments getAttachments() {
return this.endpoint.getAttachments();
}
@Override
public String getName() {
return this.endpoint.getName();
}
@Override
public Registration registerService(String serviceType, OpenListener openListener, OptionMap optionMap)
throws ServiceRegistrationException {
return this.endpoint.registerService(serviceType, openListener, optionMap);
}
@Override
public IoFuture getConnectedIdentity(URI destination, SSLContext sslContext,
AuthenticationConfiguration authenticationConfiguration) {
return this.endpoint.getConnectedIdentity(destination, sslContext, authenticationConfiguration);
}
@Override
public IoFuture getConnectedIdentityIfExists(URI destination, SSLContext sslContext,
AuthenticationConfiguration authenticationConfiguration) {
return this.endpoint.getConnectedIdentityIfExists(destination, sslContext, authenticationConfiguration);
}
@Override
public IoFuture connect(URI destination, OptionMap connectOptions) {
return this.endpoint.connect(destination, connectOptions);
}
@Override
public IoFuture connect(URI destination, OptionMap connectOptions,
AuthenticationContext authenticationContext) {
return this.endpoint.connect(destination, connectOptions, authenticationContext);
}
@Override
public IoFuture connect(URI destination, InetSocketAddress bindAddress, OptionMap connectOptions,
AuthenticationContext authenticationContext) {
return this.endpoint.connect(destination, bindAddress, connectOptions, authenticationContext);
}
@Override
public IoFuture connect(URI destination, InetSocketAddress bindAddress, OptionMap connectOptions,
SSLContext sslContext, AuthenticationConfiguration connectionConfiguration) {
return this.endpoint.connect(destination, bindAddress, connectOptions, sslContext, connectionConfiguration);
}
@Override
public IoFuture connect(URI destination, OptionMap connectOptions, CallbackHandler callbackHandler)
throws IOException {
return this.endpoint.connect(destination, connectOptions, callbackHandler);
}
@Override
public Registration addConnectionProvider(String uriScheme, ConnectionProviderFactory providerFactory,
OptionMap optionMap) throws DuplicateRegistrationException, IOException {
// do nothing to avoid DuplicateRegistrationException
return null;
}
@Override
public T getConnectionProviderInterface(String uriScheme, Class expectedType)
throws UnknownURISchemeException, ClassCastException {
return this.endpoint.getConnectionProviderInterface(uriScheme, expectedType);
}
@Override
public boolean isValidUriScheme(String uriScheme) {
return this.endpoint.isValidUriScheme(uriScheme);
}
@Override
public XnioWorker getXnioWorker() {
return this.endpoint.getXnioWorker();
}
}