Intersult Connection ist eine Abstraktion von java.net.URLConnection und javax.servlet.Servlet. Ziel ist die Vereinheitlichung von Software für Server und Client. Intersult Connection ist Bestandteil der Design-Utils.
Anwendung#
Das Interface der Connection sieht wie folgt aus:public interface Connection { URL getUrl() throws IOException; void setUrl(URL url) throws IOException; InputStream getInputStream() throws IOException; OutputStream getOutputStream() throws IOException; void setProperty(String name, String value); String getProperty(String name); }
Die Methoden sind unabhängig davon, ob es sich um eine ServletConnection oder UrlConnection handelt. Mit dem InputStream und OutputStream werden die Daten empfangen und gesendet, über die Properties werden HTTP-Header-Informationen ausgetauscht. Über die URL wird die Navigation durchgeführt und ausgelesen.
Beispiel#
Bei der Implementierung eines Transport-Layer für einen Remote-Client werden Marshalling- und Unmarshalling-Routinen sowohl für den Client als auch für den Server verwendet.Eine Implementierung der Unmarshal-Routine für den SOAP-Transport kann zum Beispiel so aussehen:
@Override public Envelope unmarshal(XmlConfig config, Connection connection) throws IOException { SoapUnmarshallerImpl unmarshaller = new SoapUnmarshallerImpl(); unmarshaller.setConfig(config); Envelope soapRequest = (Envelope)unmarshaller.unmarshal(connection.getInputStream()); return soapRequest; }
Erklärung: Das Unmarshalling findet über eine Connection statt. Es ist dabei egal, ob der Aufruf auf dem Server oder vom Client erfolgt. Auf dem Server wäre die konkrete Implementierung eine ServletConnection, beim Client wäre es UrlConnection.