Author: jbonofre Date: Tue Oct 25 15:34:12 2011 New Revision: 1188718 URL: http://svn.apache.org/viewvc?rev=1188718&view=rev Log: Refactoring to create a Kalumet utils module.
Added: incubator/kalumet/trunk/utils/ (with props) incubator/kalumet/trunk/utils/pom.xml incubator/kalumet/trunk/utils/src/ incubator/kalumet/trunk/utils/src/main/ incubator/kalumet/trunk/utils/src/main/java/ incubator/kalumet/trunk/utils/src/main/java/org/ incubator/kalumet/trunk/utils/src/main/java/org/apache/ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/AgentUtils.java - copied, changed from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/AgentUtils.java incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/CommandUtils.java - copied, changed from r1188542, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/CommandUtils.java incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EmailUtils.java - copied, changed from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EmailUtils.java incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EventUtils.java - copied, changed from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EventUtils.java incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/FileUtils.java - copied, changed from r1188542, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/FileUtils.java incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/NotifierUtils.java - copied, changed from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/NotifierUtils.java incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/PublisherUtils.java - copied, changed from r1188542, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/PublisherUtils.java incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/VariableUtils.java - copied, changed from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/VariableUtils.java Removed: incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/AgentUtils.java incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/CommandUtils.java incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EmailUtils.java incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EventUtils.java incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/FileUtils.java incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/NotifierUtils.java incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/PublisherUtils.java incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/VariableUtils.java Modified: incubator/kalumet/trunk/agent/pom.xml incubator/kalumet/trunk/pom.xml Modified: incubator/kalumet/trunk/agent/pom.xml URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/agent/pom.xml?rev=1188718&r1=1188717&r2=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/pom.xml (original) +++ incubator/kalumet/trunk/agent/pom.xml Tue Oct 25 15:34:12 2011 @@ -42,14 +42,6 @@ <artifactId>commons-cli</artifactId> </dependency> <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-email</artifactId> - </dependency> - <dependency> - <groupId>commons-httpclient</groupId> - <artifactId>commons-httpclient</artifactId> - </dependency> - <dependency> <groupId>opensymphony</groupId> <artifactId>quartz</artifactId> </dependency> @@ -58,6 +50,10 @@ <artifactId>org.apache.kalumet.common</artifactId> </dependency> <dependency> + <groupId>org.apache.kalumet</groupId> + <artifactId>org.apache.kalumet.utils</artifactId> + </dependency> + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> Modified: incubator/kalumet/trunk/pom.xml URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/pom.xml?rev=1188718&r1=1188717&r2=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/pom.xml (original) +++ incubator/kalumet/trunk/pom.xml Tue Oct 25 15:34:12 2011 @@ -36,6 +36,7 @@ <modules> <module>common</module> + <module>utils</module> <module>agent</module> </modules> @@ -250,6 +251,11 @@ <version>${project.version}</version> </dependency> <dependency> + <groupId>org.apache.kalumet</groupId> + <artifactId>org.apache.kalumet.utils</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> Propchange: incubator/kalumet/trunk/utils/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Tue Oct 25 15:34:12 2011 @@ -0,0 +1,3 @@ +*.iml +*.ipr +*.iws Added: incubator/kalumet/trunk/utils/pom.xml URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/pom.xml?rev=1188718&view=auto ============================================================================== --- incubator/kalumet/trunk/utils/pom.xml (added) +++ incubator/kalumet/trunk/utils/pom.xml Tue Oct 25 15:34:12 2011 @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <!-- + + 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. + --> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.kalumet</groupId> + <artifactId>kalumet</artifactId> + <version>0.6-incubating</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>org.apache.kalumet.utils</artifactId> + <packaging>jar</packaging> + <name>Apache Kalumet :: Utils</name> + + <dependencies> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-email</artifactId> + </dependency> + <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + </dependency> + <dependency> + <groupId>org.apache.kalumet</groupId> + <artifactId>org.apache.kalumet.common</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + </dependencies> + +</project> \ No newline at end of file Copied: incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/AgentUtils.java (from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/AgentUtils.java) URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/AgentUtils.java?p2=incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/AgentUtils.java&p1=incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/AgentUtils.java&r1=1188165&r2=1188718&rev=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/AgentUtils.java (original) +++ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/AgentUtils.java Tue Oct 25 15:34:12 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.kalumet.agent.utils; +package org.apache.kalumet.utils; /** * Util class to get version from the MANIFEST package specification. Copied: incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/CommandUtils.java (from r1188542, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/CommandUtils.java) URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/CommandUtils.java?p2=incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/CommandUtils.java&p1=incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/CommandUtils.java&r1=1188542&r2=1188718&rev=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/CommandUtils.java (original) +++ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/CommandUtils.java Tue Oct 25 15:34:12 2011 @@ -16,12 +16,17 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.kalumet.agent.utils; +package org.apache.kalumet.utils; import org.apache.kalumet.KalumetException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + /** * Util to execute system commands. */ @@ -34,7 +39,7 @@ public class CommandUtils { * * @param command the system command to execute. * @return he command execution output. - * @throws KalumetException in case of execution failure. + * @throws org.apache.kalumet.KalumetException in case of execution failure. */ public static String execute(String command) throws KalumetException { LOGGER.info("Executing {}", command); @@ -48,23 +53,23 @@ public class CommandUtils { LOGGER.debug("ComSpec MS Windows environment variable found"); shellCommand = new String[]{comSpec, "/C", command}; } else { - LOG.debug("ComSpec MS Windows environment variable is not defined, found the shell command depending of the MS Windows version."); + LOGGER.debug("ComSpec MS Windows environment variable is not defined, found the shell command depending of the MS Windows version."); if (osName.startsWith("Windows 3") || osName.startsWith("Windows 95") || osName.startsWith("Windows 98") || osName.startsWith("Windows ME")) { - LOG.debug("MS Windows 3.1/95/98/Me detected, using: command.com /C " + command); + LOGGER.debug("MS Windows 3.1/95/98/Me detected, using: command.com /C " + command); shellCommand = new String[]{"command.com", "/C", command}; } else { - LOG.debug("MS Windows NT/XP/Vista detected, using: cmd.exe /C " + command); + LOGGER.debug("MS Windows NT/XP/Vista detected, using: cmd.exe /C " + command); shellCommand = new String[]{"cmd.exe", "/C", command}; } } } else { - LOG.debug("Unix platform detected."); + LOGGER.debug("Unix platform detected."); String shell = System.getProperty("SHELL"); if (shell != null) { - LOG.debug("SHELL Unix environment variable is defined, using it: " + shell + " -c " + command); + LOGGER.debug("SHELL Unix environment variable is defined, using it: " + shell + " -c " + command); shellCommand = new String[]{shell, "-c", command}; } else { - LOG.debug("SHELL Unix environment variable is not defined, using the default Unix shell: /bin/sh -c " + command); + LOGGER.debug("SHELL Unix environment variable is not defined, using the default Unix shell: /bin/sh -c " + command); shellCommand = new String[]{"/bin/sh", "-c", command}; } @@ -86,18 +91,51 @@ public class CommandUtils { int exitValue = process.waitFor(); if (exitValue != 0) { // an error occurs - LOG.error("Command {} execution failed: {}", command, errorBuffer.toString()); - throw new AutoDeployException("Command " + command + " execution failed: " + errorBuffer.toString()); + LOGGER.error("Command {} execution failed: {}", command, errorBuffer.toString()); + throw new KalumetException("Command " + command + " execution failed: " + errorBuffer.toString()); } // command is OK - LOG.info("Command {} has been executed successfully", command); - LOG.debug(outputBuffer.toString()); + LOGGER.info("Command {} has been executed successfully", command); + LOGGER.debug(outputBuffer.toString()); return outputBuffer.toString(); } catch (Exception exception) { - LOG.error("Command {} execution failed", command, exception); - throw new AutoDeployException("Command " + command + " execution failed", exception); + LOGGER.error("Command {} execution failed", command, exception); + throw new KalumetException("Command " + command + " execution failed", exception); } } } + +/** + * Inner class to glob stream with a thread. + */ +class StreamGobbler extends Thread { + + private final static transient Logger LOGGER = LoggerFactory.getLogger(StreamGobbler.class); + + InputStream in; + StringBuffer response; + + StreamGobbler(InputStream in, StringBuffer response) { + this.in = in; + this.response = response; + } + + /** + * @see java.lang.Thread#run() + */ + public void run() { + try { + BufferedReader reader = new BufferedReader(new InputStreamReader(in)); + String row = null; + while ((row = reader.readLine()) != null) { + response.append(row + "\n"); + } + } + catch (IOException ioException) { + LOGGER.warn("System command stream gobbler error", ioException); + } + } + +} Copied: incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EmailUtils.java (from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EmailUtils.java) URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EmailUtils.java?p2=incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EmailUtils.java&p1=incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EmailUtils.java&r1=1188165&r2=1188718&rev=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EmailUtils.java (original) +++ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EmailUtils.java Tue Oct 25 15:34:12 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.kalumet.agent.utils; +package org.apache.kalumet.utils; import org.apache.commons.mail.HtmlEmail; import org.apache.kalumet.KalumetException; Copied: incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EventUtils.java (from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EventUtils.java) URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EventUtils.java?p2=incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EventUtils.java&p1=incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EventUtils.java&r1=1188165&r2=1188718&rev=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/EventUtils.java (original) +++ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/EventUtils.java Tue Oct 25 15:34:12 2011 @@ -16,11 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.kalumet.agent.utils; +package org.apache.kalumet.utils; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; -import org.apache.kalumet.agent.Configuration; import org.apache.kalumet.model.Environment; import org.apache.kalumet.model.Kalumet; import org.slf4j.Logger; @@ -40,21 +39,9 @@ public class EventUtils { * @param author the author of the event. * @param severity the severity severity of the event. * @param event the event event. + * @param kalumet the Kalumet configuration. */ - public static void post(Environment environment, String author, String severity, String event) { - LOGGER.debug("Loading configuration from cache"); - Kalumet kalumet = Configuration.CONFIG_CACHE; - if (kalumet == null) { - LOGGER.debug("Configuration not in cache, loading it"); - try { - kalumet = Kalumet.digeste(Configuration.CONFIG_LOCATION); - Configuration.CONFIG_CACHE = kalumet; - } catch (Exception e) { - LOGGER.warn("Can't post event", e); - return; - } - } - + public static void post(Environment environment, String author, String severity, String event, Kalumet kalumet) { LOGGER.debug("Getting LogEventAppender property in Kalumet configuration"); if (kalumet.getProperty("LogEventAppender") == null) { LOGGER.warn("Can't post event because the LogEventAppender is not define in the configuration"); @@ -80,15 +67,4 @@ public class EventUtils { } } - /** - * Post an event to the Kalumet journal. - * - * @param environment the target environment. - * @param severity the event severity level. - * @param event the event message. - */ - public static void post(Environment environment, String severity, String event) { - EventUtils.post(environment, Configuration.AGENT_ID, severity, event); - } - } Copied: incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/FileUtils.java (from r1188542, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/FileUtils.java) URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/FileUtils.java?p2=incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/FileUtils.java&p1=incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/FileUtils.java&r1=1188542&r2=1188718&rev=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/FileUtils.java (original) +++ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/FileUtils.java Tue Oct 25 15:34:12 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.kalumet.agent.utils; +package org.apache.kalumet.utils; import org.apache.commons.io.IOUtils; import org.apache.commons.vfs.FileObject; Copied: incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/NotifierUtils.java (from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/NotifierUtils.java) URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/NotifierUtils.java?p2=incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/NotifierUtils.java&p1=incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/NotifierUtils.java&r1=1188165&r2=1188718&rev=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/NotifierUtils.java (original) +++ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/NotifierUtils.java Tue Oct 25 15:34:12 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.kalumet.agent.utils; +package org.apache.kalumet.utils; import org.apache.kalumet.model.Destination; import org.apache.kalumet.model.Email; Copied: incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/PublisherUtils.java (from r1188542, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/PublisherUtils.java) URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/PublisherUtils.java?p2=incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/PublisherUtils.java&p1=incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/PublisherUtils.java&r1=1188542&r2=1188718&rev=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/PublisherUtils.java (original) +++ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/PublisherUtils.java Tue Oct 25 15:34:12 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.kalumet.agent.utils; +package org.apache.kalumet.utils; import org.apache.commons.io.FileUtils; import org.apache.kalumet.FileManipulator; Copied: incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/VariableUtils.java (from r1188165, incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/VariableUtils.java) URL: http://svn.apache.org/viewvc/incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/VariableUtils.java?p2=incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/VariableUtils.java&p1=incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/VariableUtils.java&r1=1188165&r2=1188718&rev=1188718&view=diff ============================================================================== --- incubator/kalumet/trunk/agent/src/main/java/org/apache/kalumet/agent/utils/VariableUtils.java (original) +++ incubator/kalumet/trunk/utils/src/main/java/org/apache/kalumet/utils/VariableUtils.java Tue Oct 25 15:34:12 2011 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.kalumet.agent.utils; +package org.apache.kalumet.utils; import org.apache.commons.lang.StringUtils; import org.apache.kalumet.model.Variable;