com.noelios.restlet.ServerHelper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.apache.servicemix.bundles.restlet
Show all versions of org.apache.servicemix.bundles.restlet
This OSGi bundle wraps org.restlet, and com.noelios.restlet ${pkgVersion} jar files.
The newest version!
/**
* Copyright 2005-2008 Noelios Technologies.
*
* The contents of this file are subject to the terms of the following open
* source licenses: LGPL 3.0 or LGPL 2.1 or CDDL 1.0 (the "Licenses"). You can
* select the license that you prefer but you may not use this file except in
* compliance with one of these Licenses.
*
* You can obtain a copy of the LGPL 3.0 license at
* http://www.gnu.org/licenses/lgpl-3.0.html
*
* You can obtain a copy of the LGPL 2.1 license at
* http://www.gnu.org/licenses/lgpl-2.1.html
*
* You can obtain a copy of the CDDL 1.0 license at
* http://www.sun.com/cddl/cddl.html
*
* See the Licenses for the specific language governing permissions and
* limitations under the Licenses.
*
* Alternatively, you can obtain a royaltee free commercial license with less
* limitations, transferable or non-transferable, directly at
* http://www.noelios.com/products/restlet-engine
*
* Restlet is a registered trademark of Noelios Technologies.
*/
package com.noelios.restlet;
import java.net.ServerSocket;
import org.restlet.Server;
import org.restlet.data.Request;
import org.restlet.data.Response;
/**
* Server connector helper.
*
* @author Jerome Louvel
*/
public class ServerHelper extends ConnectorHelper {
/**
* Constructor.
*
* @param server
* The client to help.
*/
public ServerHelper(Server server) {
super(server);
// Clear the ephemeral port
getAttributes().put("ephemeralPort", -1);
}
/**
* Handles a call by invoking the helped Server's
* {@link Server#handle(Request, Response)} method.
*
* @param request
* The request to handle.
* @param response
* The response to update.
*/
@Override
public void handle(Request request, Response response) {
super.handle(request, response);
getHelped().handle(request, response);
}
/**
* Sets the ephemeral port in the attributes map if necessary.
*
* @param localPort
* The ephemeral local port.
*/
public void setEphemeralPort(int localPort) {
// If an ephemeral port is used, make sure we update the attribute for
// the API
if (getHelped().getPort() == 0) {
getAttributes().put("ephemeralPort", localPort);
}
}
/**
* Sets the ephemeral port in the attributes map if necessary.
*
* @param socket
* The bound server socket.
*/
public void setEphemeralPort(ServerSocket socket) {
setEphemeralPort(socket.getLocalPort());
}
@Override
public synchronized void stop() throws Exception {
super.stop();
// Clear the ephemeral port
getAttributes().put("ephemeralPort", -1);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy