diff options
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java')
-rw-r--r-- | rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java deleted file mode 100644 index c94258ae..00000000 --- a/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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.apache.jk.status; - -import java.io.BufferedOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.ProtocolException; -import java.net.URL; -import java.net.URLConnection; - -import org.apache.catalina.ant.AbstractCatalinaTask; -import org.apache.catalina.util.Base64; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; - -/** - * Ant task that implements mod_jk 1.2.20 result message string - * - * @author Peter Rossbach - * @version $Revision: 802231 $ - * @since mod_jk 1.2.20 - */ -public abstract class AbstractJkStatusTask extends AbstractCatalinaTask { - - /** - * Execute the requested operation. - * - * @exception BuildException - * if an error occurs - */ - public void execute() throws BuildException { - - super.execute(); - checkParameter(); - StringBuffer sb = createLink(); - execute(sb.toString(), null, null, -1); - - } - - protected abstract void checkParameter() ; - protected abstract StringBuffer createLink() ; - - /** - * Execute the specified command, based on the configured properties. - * The input stream will be closed upon completion of this task, whether - * it was executed successfully or not. - * - * @param command Command to be executed - * @param istream InputStream to include in an HTTP PUT, if any - * @param contentType Content type to specify for the input, if any - * @param contentLength Content length to specify for the input, if any - * - * @exception BuildException if an error occurs - */ - public void execute(String command, InputStream istream, - String contentType, int contentLength) - throws BuildException { - - InputStreamReader reader = null; - try { - - HttpURLConnection hconn = send(command, istream, contentType, contentLength); - - // Process the response message - reader = new InputStreamReader(hconn.getInputStream(), "UTF-8"); - String error = null; - error = handleResult(reader, error); - if (error != null && isFailOnError()) { - // exception should be thrown only if failOnError == true - // or error line will be logged twice - throw new BuildException(error); - } - } catch (Throwable t) { - if (isFailOnError()) { - throw new BuildException(t); - } else { - handleErrorOutput(t.getMessage()); - } - } finally { - closeRedirector(); - if (reader != null) { - try { - reader.close(); - } catch (Throwable u) { - ; - } - reader = null; - } - if (istream != null) { - try { - istream.close(); - } catch (Throwable u) { - ; - } - istream = null; - } - } - - } - - private String handleResult(InputStreamReader reader, String error) throws IOException { - StringBuffer buff = new StringBuffer(); - int msgPriority = Project.MSG_INFO; - boolean first = true; - while (true) { - int ch = reader.read(); - if (ch < 0) { - break; - } else if ((ch == '\r') || (ch == '\n')) { - // in Win \r\n would cause handleOutput() to be called - // twice, the second time with an empty string, - // producing blank lines - if (buff.length() > 0) { - String line = buff.toString(); - buff.setLength(0); - if (first) { - if (!line.startsWith("Result: type=OK")) { - error = line; - msgPriority = Project.MSG_ERR; - } - first = false; - } - handleOutput(line, msgPriority); - } - } else { - buff.append((char) ch); - } - } - if (buff.length() > 0) { - handleOutput(buff.toString(), msgPriority); - } - return error; - } - - protected HttpURLConnection send(String command, InputStream istream, String contentType, int contentLength) throws IOException, MalformedURLException, ProtocolException { - URLConnection conn; - // Create a connection for this command - conn = (new URL(url + command)).openConnection(); - HttpURLConnection hconn = (HttpURLConnection) conn; - - // Set up standard connection characteristics - hconn.setAllowUserInteraction(false); - hconn.setDoInput(true); - hconn.setUseCaches(false); - if (istream != null) { - hconn.setDoOutput(true); - hconn.setRequestMethod("PUT"); - if (contentType != null) { - hconn.setRequestProperty("Content-Type", contentType); - } - if (contentLength >= 0) { - hconn.setRequestProperty("Content-Length", - "" + contentLength); - } - } else { - hconn.setDoOutput(false); - hconn.setRequestMethod("GET"); - } - hconn.setRequestProperty("User-Agent", - "JkStatus-Ant-Task/1.1"); - - // Set up an authorization header with our credentials - String input = username + ":" + password; - String output = new String(Base64.encode(input.getBytes())); - hconn.setRequestProperty("Authorization", - "Basic " + output); - - // Establish the connection with the server - hconn.connect(); - // Send the request data (if any) - if (istream != null) { - BufferedOutputStream ostream = - new BufferedOutputStream(hconn.getOutputStream(), 1024); - byte buffer[] = new byte[1024]; - while (true) { - int n = istream.read(buffer); - if (n < 0) { - break; - } - ostream.write(buffer, 0, n); - } - ostream.flush(); - ostream.close(); - istream.close(); - } - return hconn; - } - - -} |