diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.http/src/org')
13 files changed, 738 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/HTTPUtil.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/HTTPUtil.java new file mode 100644 index 0000000000..d466a3b032 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/HTTPUtil.java @@ -0,0 +1,42 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.http; + +import org.eclipse.net4j.internal.http.HTTPAcceptorFactory; +import org.eclipse.net4j.internal.http.HTTPConnectorFactory; +import org.eclipse.net4j.util.container.IManagedContainer; + +/** + * @author Eike Stepper + */ +public final class HTTPUtil +{ + private HTTPUtil() + { + } + + public static void prepareContainer(IManagedContainer container) + { + container.registerFactory(new HTTPAcceptorFactory()); + container.registerFactory(new HTTPConnectorFactory()); + } + + public static IHTTPAcceptor getAcceptor(IManagedContainer container, String description) + { + return (IHTTPAcceptor)container.getElement(HTTPAcceptorFactory.PRODUCT_GROUP, HTTPAcceptorFactory.TYPE, description); + } + + public static IHTTPConnector getConnector(IManagedContainer container, String description) + { + return (IHTTPConnector)container + .getElement(HTTPConnectorFactory.PRODUCT_GROUP, HTTPConnectorFactory.TYPE, description); + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/IHTTPAcceptor.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/IHTTPAcceptor.java new file mode 100644 index 0000000000..97400163aa --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/IHTTPAcceptor.java @@ -0,0 +1,23 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.http; + +import org.eclipse.net4j.acceptor.IAcceptor; + +/** + * @author Eike Stepper + */ +public interface IHTTPAcceptor extends IAcceptor +{ + public static final int DEFAULT_PORT = 80; + + public int getPort(); +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/IHTTPConnector.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/IHTTPConnector.java new file mode 100644 index 0000000000..e78c0887a5 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/IHTTPConnector.java @@ -0,0 +1,23 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.http; + +import org.eclipse.net4j.connector.IConnector; + +/** + * @author Eike Stepper + */ +public interface IHTTPConnector extends IConnector +{ + public static final int DEFAULT_PORT = IHTTPAcceptor.DEFAULT_PORT; + + public String getURL(); +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/INet4jTransportServlet.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/INet4jTransportServlet.java new file mode 100644 index 0000000000..56dddc7cf4 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/INet4jTransportServlet.java @@ -0,0 +1,31 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.http; + +import javax.servlet.Servlet; + +/** + * @author Eike Stepper + */ +public interface INet4jTransportServlet extends Servlet +{ + public RequestHandler getRequestHandler(); + + public void setRequestHandler(RequestHandler handler); + + /** + * @author Eike Stepper + */ + public interface RequestHandler + { + public void connectRequested(String user); + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/package.html b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/package.html new file mode 100644 index 0000000000..0b3e577cb7 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/http/package.html @@ -0,0 +1,43 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 2004 - 2008 Eike Stepper, Germany. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + Eike Stepper - Initial API and implementation + +--> +</head> +<body bgcolor="white"> + +Transport layer extension with support for HTTP connections. +<p> + +<!-- + +<h2>Package Specification</h2> + +##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT ##### +<ul> + <li><a href="">##### REFER TO ANY FRAMEMAKER SPECIFICATION HERE #####</a> +</ul> + +<h2>Related Documentation</h2> + +For overviews, tutorials, examples, guides, and tool documentation, please see: +<ul> + <li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a> +</ul> + +--> + +<!-- Put @see and @since tags down here. --> + +</body> +</html> diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptor.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptor.java new file mode 100644 index 0000000000..27e0775def --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptor.java @@ -0,0 +1,120 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.internal.http; + +import org.eclipse.net4j.http.IHTTPAcceptor; +import org.eclipse.net4j.http.INet4jTransportServlet; +import org.eclipse.net4j.internal.http.bundle.OM; +import org.eclipse.net4j.internal.util.lifecycle.Worker; +import org.eclipse.net4j.internal.util.om.trace.ContextTracer; + +import org.eclipse.internal.net4j.acceptor.Acceptor; + +import java.io.IOException; +import java.text.MessageFormat; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +/** + * @author Eike Stepper + */ +public class HTTPAcceptor extends Acceptor implements IHTTPAcceptor, INet4jTransportServlet.RequestHandler +{ + public static final boolean DEFAULT_START_SYNCHRONOUSLY = true; + + public static final long DEFAULT_SYNCHRONOUS_START_TIMEOUT = 2 * Worker.DEFAULT_TIMEOUT; + + private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, HTTPAcceptor.class); + + private boolean startSynchronously = DEFAULT_START_SYNCHRONOUSLY; + + private long synchronousStartTimeout = DEFAULT_SYNCHRONOUS_START_TIMEOUT; + + private CountDownLatch startLatch; + + private int port = DEFAULT_PORT; + + public HTTPAcceptor() + { + } + + public int getPort() + { + return port; + } + + public void setPort(int port) + { + this.port = port; + } + + public boolean isStartSynchronously() + { + return startSynchronously; + } + + public void setStartSynchronously(boolean startSynchronously) + { + this.startSynchronously = startSynchronously; + } + + public long getSynchronousStartTimeout() + { + return synchronousStartTimeout; + } + + public void setSynchronousStartTimeout(long synchronousStartTimeout) + { + this.synchronousStartTimeout = synchronousStartTimeout; + } + + public void connectRequested(String user) + { + } + + @Override + public String toString() + { + return MessageFormat.format("HTTPAcceptor[{0}]", port); //$NON-NLS-1$ + } + + @Override + protected void doBeforeActivate() throws Exception + { + super.doBeforeActivate(); + if (startSynchronously) + { + startLatch = new CountDownLatch(1); + } + } + + @Override + protected void doActivate() throws Exception + { + super.doActivate(); + + if (startLatch != null) + { + if (!startLatch.await(synchronousStartTimeout, TimeUnit.MILLISECONDS)) + { + startLatch = null; + // IOUtil.closeSilent(serverSocketChannel); + throw new IOException("Registration with selector timed out after " + synchronousStartTimeout + " millis"); + } + } + } + + @Override + protected void doDeactivate() throws Exception + { + super.doDeactivate(); + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptorFactory.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptorFactory.java new file mode 100644 index 0000000000..97ee530f42 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPAcceptorFactory.java @@ -0,0 +1,66 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.internal.http; + +import org.eclipse.internal.net4j.acceptor.AcceptorFactory; + +/** + * @author Eike Stepper + */ +public class HTTPAcceptorFactory extends AcceptorFactory +{ + public static final String TYPE = "tcp"; + + private static final String SEPARATOR = ":"; //$NON-NLS-1$ + + public HTTPAcceptorFactory() + { + super(TYPE); + } + + public HTTPAcceptor create(String description) + { + // String address = IHTTPAcceptor.DEFAULT_ADDRESS; + // int port = IHTTPAcceptor.DEFAULT_PORT; + // + // if (!StringUtil.isEmpty(description)) + // { + // String[] tokens = description.split(SEPARATOR); + // if (!StringUtil.isEmpty(tokens[0])) + // { + // address = tokens[0]; + // } + // + // if (tokens.length > 1 && !StringUtil.isEmpty(tokens[1])) + // { + // port = Integer.parseInt(tokens[1]); + // } + // } + + HTTPAcceptor acceptor = new HTTPAcceptor(); + // acceptor.setAddress(address); + // acceptor.setPort(port); + return acceptor; + } + + @Override + public String getDescriptionFor(Object object) + { + // if (object instanceof HTTPAcceptor) + // { + // HTTPAcceptor acceptor = (HTTPAcceptor)object; + // return acceptor.getAddress() + SEPARATOR + acceptor.getPort(); + // } + + return null; + + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java new file mode 100644 index 0000000000..e35f226007 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java @@ -0,0 +1,66 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.internal.http; + +import org.eclipse.net4j.connector.ConnectorLocation; +import org.eclipse.net4j.http.IHTTPConnector; + +import java.text.MessageFormat; + +/** + * @author Eike Stepper + */ +public class HTTPClientConnector extends HTTPConnector implements IHTTPConnector +{ + private String url; + + public HTTPClientConnector() + { + } + + public ConnectorLocation getLocation() + { + return ConnectorLocation.CLIENT; + } + + @Override + public String getURL() + { + return url; + } + + @Override + public void setURL(String url) + { + this.url = url; + } + + @Override + public String toString() + { + if (getUserID() == null) + { + return MessageFormat.format("HTTPClientConnector[{0}]", getURL()); //$NON-NLS-1$ + } + + return MessageFormat.format("HTTPClientConnector[{1}@{0}]", getURL(), getUserID()); //$NON-NLS-1$ + } + + @Override + protected void doBeforeActivate() throws Exception + { + super.doBeforeActivate(); + if (url == null) + { + throw new IllegalStateException("url == null"); + } + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java new file mode 100644 index 0000000000..e2b9a6c991 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnector.java @@ -0,0 +1,74 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.internal.http; + +import org.eclipse.net4j.channel.IChannel; +import org.eclipse.net4j.connector.ConnectorException; +import org.eclipse.net4j.internal.http.bundle.OM; +import org.eclipse.net4j.internal.util.om.trace.ContextTracer; +import org.eclipse.net4j.protocol.IProtocol; +import org.eclipse.net4j.util.security.INegotiationContext; + +import org.eclipse.internal.net4j.connector.Connector; + +/** + * @author Eike Stepper + */ +public abstract class HTTPConnector extends Connector +{ + private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, HTTPConnector.class); + + private String url; + + public HTTPConnector() + { + } + + public String getURL() + { + return url; + } + + public void setURL(String url) + { + this.url = url; + } + + /** + * Called by an {@link IChannel} each time a new buffer is available for multiplexing. This or another buffer can be + * dequeued from the outputQueue of the {@link IChannel}. + */ + public void multiplexChannel(IChannel channel) + { + } + + @Override + protected void registerChannelWithPeer(int channelID, short channelIndex, IProtocol protocol) + throws ConnectorException + { + } + + @Override + protected INegotiationContext createNegotiationContext() + { + throw new UnsupportedOperationException(); + } + + @Override + protected void doBeforeActivate() throws Exception + { + super.doBeforeActivate(); + if (url == null) + { + throw new IllegalStateException("url == null"); + } + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnectorFactory.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnectorFactory.java new file mode 100644 index 0000000000..5781b6c3f2 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPConnectorFactory.java @@ -0,0 +1,80 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.internal.http; + +import org.eclipse.internal.net4j.connector.ConnectorFactory; + +/** + * @author Eike Stepper + */ +public class HTTPConnectorFactory extends ConnectorFactory +{ + public static final String TYPE = "tcp"; + + private static final String URL_SCHEME = "http://"; + + public HTTPConnectorFactory() + { + super(TYPE); + } + + public HTTPClientConnector create(String description) + { + // try + // { + // // TODO Don't use URL + // // Scheme "tcp://" would be rejected! + // URL url = new URL(URL_SCHEME + description); + // String userID = url.getUserInfo(); + // String host = url.getHost(); + // int port = url.getPort(); + // if (port == -1) + // { + // port = IHTTPConnector.DEFAULT_PORT; + // } + + HTTPClientConnector connector = new HTTPClientConnector(); + // connector.setUserID(userID); + // connector.setHost(host); + // connector.setPort(port); + return connector; + // } + // catch (MalformedURLException ex) + // { + // throw new ProductCreationException(ex); + // } + } + + @Override + public String getDescriptionFor(Object object) + { + // if (object instanceof HTTPClientConnector) + // { + // HTTPClientConnector connector = (HTTPClientConnector)object; + // String description = connector.getHost(); + // String userID = connector.getUserID(); + // if (!StringUtil.isEmpty(userID)) + // { + // description = userID + "@" + description; + // } + // + // int port = connector.getPort(); + // if (port != IHTTPConnector.DEFAULT_PORT) + // { + // description = description + ":" + port; + // } + // + // return description; + // } + + return null; + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPServerConnector.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPServerConnector.java new file mode 100644 index 0000000000..fa7d7101d3 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPServerConnector.java @@ -0,0 +1,49 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.internal.http; + +import org.eclipse.net4j.connector.ConnectorLocation; + +import java.text.MessageFormat; + +/** + * @author Eike Stepper + */ +public class HTTPServerConnector extends HTTPConnector +{ + private HTTPAcceptor acceptor; + + public HTTPServerConnector(HTTPAcceptor acceptor) + { + this.acceptor = acceptor; + } + + public HTTPAcceptor getAcceptor() + { + return acceptor; + } + + public ConnectorLocation getLocation() + { + return ConnectorLocation.SERVER; + } + + @Override + public String toString() + { + if (getUserID() == null) + { + return MessageFormat.format("HTTPServerConnector[{0}]", acceptor); //$NON-NLS-1$ + } + + return MessageFormat.format("HTTPServerConnector[{1}@{0}]", acceptor, getUserID()); //$NON-NLS-1$ + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/Net4jTransportServlet.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/Net4jTransportServlet.java new file mode 100644 index 0000000000..611fd5edbd --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/Net4jTransportServlet.java @@ -0,0 +1,74 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.internal.http; + +import org.eclipse.net4j.http.INet4jTransportServlet; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import java.io.BufferedReader; +import java.io.IOException; + +/** + * @author Eike Stepper + */ +public class Net4jTransportServlet extends HttpServlet implements INet4jTransportServlet +{ + private static final long serialVersionUID = 1L; + + private RequestHandler requestHandler; + + public Net4jTransportServlet() + { + } + + public RequestHandler getRequestHandler() + { + return requestHandler; + } + + public void setRequestHandler(RequestHandler requestHandler) + { + this.requestHandler = requestHandler; + } + + @Override + protected final void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException + { + doPost(req, resp); + } + + @Override + protected final void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException + { + handleRequest(req, resp); + } + + protected void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException + { + BufferedReader reader = req.getReader(); + String op = reader.readLine(); + if ("connect".equals(op)) + { + handleConnect(reader, req, resp); + } + } + + protected void handleConnect(BufferedReader reader, HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException + { + String user = reader.readLine(); + requestHandler.connectRequested(user); + } +} diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/bundle/OM.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/bundle/OM.java new file mode 100644 index 0000000000..063ac90ce0 --- /dev/null +++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/bundle/OM.java @@ -0,0 +1,47 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2008 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.internal.http.bundle; + +import org.eclipse.net4j.util.om.OMBundle; +import org.eclipse.net4j.util.om.OMPlatform; +import org.eclipse.net4j.util.om.OSGiActivator; +import org.eclipse.net4j.util.om.log.OMLogger; +import org.eclipse.net4j.util.om.trace.OMTracer; + +/** + * The <em>Operations & Maintenance</em> class of this bundle. + * + * @author Eike Stepper + */ +public abstract class OM +{ + public static final String BUNDLE_ID = "org.eclipse.net4j.http"; //$NON-NLS-1$ + + public static final OMBundle BUNDLE = OMPlatform.INSTANCE.bundle(BUNDLE_ID, OM.class); + + public static final OMTracer DEBUG = BUNDLE.tracer("debug"); //$NON-NLS-1$ + + public static final int PROTOCOL_REGISTRATION_TIMEOUT = BUNDLE.getDebugSupport().getDebugOption( + "protocol.registration.timeout", 10000); //$NON-NLS-1$ + + public static final OMLogger LOG = BUNDLE.logger(); + + /** + * @author Eike Stepper + */ + public static final class Activator extends OSGiActivator + { + public Activator() + { + super(BUNDLE); + } + } +} |