diff --git a/tools/jersey-http-client-tool/pom.xml b/tools/jersey-http-client-tool/pom.xml new file mode 100644 index 000000000..aafcc21f8 --- /dev/null +++ b/tools/jersey-http-client-tool/pom.xml @@ -0,0 +1,41 @@ +<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/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <name>Jersey Http Client Tool</name> + <artifactId>jersey-http-client-test</artifactId> + <packaging>jar</packaging> + + <parent> + <groupId>net.shrine</groupId> + <artifactId>shrine-tools</artifactId> + <version>1.22.4</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.typesafe</groupId> + <artifactId>config</artifactId> + </dependency> + <dependency> + <groupId>net.shrine</groupId> + <artifactId>shrine-client</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + <build> + <sourceDirectory>src/main/scala</sourceDirectory> + <testSourceDirectory>src/test/scala</testSourceDirectory> + <plugins> + <plugin> + <groupId>net.alchim31.maven</groupId> + <artifactId>scala-maven-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <finalName>jersey-http-client-tool-${project.version}</finalName> + <appendAssemblyId>false</appendAssemblyId> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/tools/jersey-http-client-tool/src/main/assembly/assembly.xml b/tools/jersey-http-client-tool/src/main/assembly/assembly.xml new file mode 100644 index 000000000..41f3cf5ee --- /dev/null +++ b/tools/jersey-http-client-tool/src/main/assembly/assembly.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> + <id>dist</id> + <formats> + <format>zip</format> + </formats> + <includeBaseDirectory>true</includeBaseDirectory> + <fileSets> + <fileSet> + <directory>src/main/sh</directory> + <outputDirectory>.</outputDirectory> + <includes> + <include>jersey-http-client-tool</include> + </includes> + </fileSet> + <fileSet> + <directory>src/main/cmd</directory> + <outputDirectory>.</outputDirectory> + <includes> + <include>jersey-http-client-tool.cmd</include> + <include>setup-classpath.cmd</include> + </includes> + </fileSet> + <fileSet> + <directory>src/main/conf</directory> + <outputDirectory>.</outputDirectory> + <includes> + <include>log4j.properties</include> + </includes> + </fileSet> + </fileSets> + <dependencySets> + <dependencySet> + <outputDirectory>lib</outputDirectory> + </dependencySet> + </dependencySets> +</assembly> + diff --git a/tools/jersey-http-client-tool/src/main/cmd/jersey-http-client-tool.cmd b/tools/jersey-http-client-tool/src/main/cmd/jersey-http-client-tool.cmd new file mode 100644 index 000000000..a2798d6a8 --- /dev/null +++ b/tools/jersey-http-client-tool/src/main/cmd/jersey-http-client-tool.cmd @@ -0,0 +1,10 @@ +@echo off + +set CONFIG_HOME=. + +rem Set up the classpath +call %CONFIG_HOME%\setup-classpath.cmd + +@set JVM_ARGS=-Xmx1024m -Xms128m + +@java %JVM_ARGS% -Dlog4j.configuration=log4j.properties -Djavax.net.debug=ssl:handshake -classpath %CONFIG_CP% net.shrine.utilities.jerseyhttpclienttool.JerseyHttpClientTool %* \ No newline at end of file diff --git a/tools/jersey-http-client-tool/src/main/cmd/setup-classpath.cmd b/tools/jersey-http-client-tool/src/main/cmd/setup-classpath.cmd new file mode 100644 index 000000000..1c88ff587 --- /dev/null +++ b/tools/jersey-http-client-tool/src/main/cmd/setup-classpath.cmd @@ -0,0 +1,22 @@ +REM +REM http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true + +@echo off + +@set CONFIG_CP=. +@set LIB_DIR=%CONFIG_CP%\lib + +for /F %%G in ('dir /b %CONFIG_CP%\lib') do (call :append %%G) + +@set CONFIG_DIR=conf + +call :append %CONFIG_DIR% + +REM @echo %CONFIG_CP% + +GOTO :eof + +@REM appending must be done in procedure call otherwise it won't append. Windows=dumb +:append + @set CONFIG_CP=%CONFIG_CP%;%LIB_DIR%\%1 + GOTO :eof diff --git a/tools/jersey-http-client-tool/src/main/conf/log4j.properties b/tools/jersey-http-client-tool/src/main/conf/log4j.properties new file mode 100644 index 000000000..9dc349b78 --- /dev/null +++ b/tools/jersey-http-client-tool/src/main/conf/log4j.properties @@ -0,0 +1,42 @@ +# LOG Pattern Layouts are covered here: http://logging.apache.org/log4j/docs/api/org/apache/log4j/PatternLayout.html + +# ROOT CONFIGURATION +log4j.rootLogger=warn, C, F + +log4j.appender.C=org.apache.log4j.ConsoleAppender +log4j.appender.C.layout=net.shrine.log.CustomPatternLayout +log4j.appender.C.layout.ConversionPattern=%d{yyyy-MMM-dd-HH:mm:ss.SSS} %p [ROOT][%c{1}][%t] %m %n %throwable + +log4j.appender.F=org.apache.log4j.DailyRollingFileAppender +log4j.appender.F.DatePattern='.'yyyy-MM-dd +log4j.appender.F.File=jersey-http-client-tool.log +log4j.appender.F.layout=net.shrine.log.CustomPatternLayout +log4j.appender.F.layout.ConversionPattern=%d{yyyy-MMM-dd-HH:mm:ss.SSS} %p [ROOT][%c{1}][%t] %m %n %throwable + +# Shrine +log4j.logger.net.shrine=info, shrine, shrineFile + +log4j.additivity.net.shrine=false +log4j.appender.shrine=org.apache.log4j.ConsoleAppender +log4j.appender.shrine.layout=net.shrine.log.CustomPatternLayout +log4j.appender.shrine.layout.ConversionPattern=%d{yyyy-MMM-dd-HH:mm:ss.SSS} %p [SHRINE][%c{1}][%t] %m %n %throwable + +log4j.appender.shrineFile=org.apache.log4j.DailyRollingFileAppender +log4j.appender.shrineFile.DatePattern='.'yyyy-MM-dd +log4j.appender.shrineFile.File=jersey-http-client-tool.log +log4j.appender.shrineFile.layout=net.shrine.log.CustomPatternLayout +log4j.appender.shrineFile.layout.ConversionPattern=%d{yyyy-MMM-dd-HH:mm:ss.SSS} %p [SHRINE][%c{1}][%t] %m %n %throwable + +# Spin +#todo look this over +log4j.logger.org.spin=warn, spin, spinFile +log4j.additivity.org.spin=false +log4j.appender.spin=org.apache.log4j.ConsoleAppender +log4j.appender.spin.layout=net.shrine.log.CustomPatternLayout +log4j.appender.spin.layout.ConversionPattern=%d{yyyy-MMM-dd-HH:mm:ss.SSS} %p [SPIN][%c{1}][%t] %m %n %throwable + +log4j.appender.spinFile=org.apache.log4j.DailyRollingFileAppender +log4j.appender.spinFile.DatePattern='.'yyyy-MM-dd +log4j.appender.spinFile.File=jersey-http-client-tool.log +log4j.appender.spinFile.layout=net.shrine.log.CustomPatternLayout +log4j.appender.spinFile.layout.ConversionPattern=%d{yyyy-MMM-dd-HH:mm:ss.SSS} %p [SPIN][%c{1}][%t] %m %n %throwable \ No newline at end of file diff --git a/tools/jersey-http-client-tool/src/main/scala/net/shrine/utilities/jerseyhttpclienttool/JerseyHttpClientTool.scala b/tools/jersey-http-client-tool/src/main/scala/net/shrine/utilities/jerseyhttpclienttool/JerseyHttpClientTool.scala new file mode 100644 index 000000000..4796b8ddb --- /dev/null +++ b/tools/jersey-http-client-tool/src/main/scala/net/shrine/utilities/jerseyhttpclienttool/JerseyHttpClientTool.scala @@ -0,0 +1,43 @@ +package net.shrine.utilities.jerseyhttpclienttool + +import com.typesafe.config.ConfigFactory +import net.shrine.client.{EndpointConfig, JerseyHttpClient} +import net.shrine.crypto.{BouncyKeyStoreCollection, KeyStoreDescriptorParser} +import net.shrine.config.ConfigExtensions + +import scala.util.control.NonFatal + + +/** + * @author dwalend + * @since 1.22.5 + */ + +object JerseyHttpClientTool { + def main(args: Array[String]): Unit = { + + val config = ConfigFactory.load() + + println(config) + + val shrineConfig = config.getConfig("shrine") + val qepConfig = shrineConfig.getConfig("queryEntryPoint") + + val endpoint = EndpointConfig(qepConfig.getConfig("broadcasterServiceEndpoint")) + + lazy val keyStoreDescriptor = KeyStoreDescriptorParser(shrineConfig.getConfig("keystore"), + shrineConfig.getConfigOrEmpty("hub"), + shrineConfig.getConfigOrEmpty("queryEntryPoint")) + + val certCollection: BouncyKeyStoreCollection = BouncyKeyStoreCollection.fromFileRecoverWithClassPath(keyStoreDescriptor) + + val httpClient = JerseyHttpClient(certCollection, endpoint) + + try { + httpClient.post(s"test", endpoint.url.toString) + } + catch { + case NonFatal(x) => x.printStackTrace() + } + } +} \ No newline at end of file diff --git a/tools/jersey-http-client-tool/src/main/sh/jersey-http-client-tool b/tools/jersey-http-client-tool/src/main/sh/jersey-http-client-tool new file mode 100644 index 000000000..9b3d7f52b --- /dev/null +++ b/tools/jersey-http-client-tool/src/main/sh/jersey-http-client-tool @@ -0,0 +1,31 @@ +#!/bin/bash + +CONFIG_HOME=`dirname $0` + +CONFIG_FILE_DIR=${CONFIG_HOME}/conf + +mkdir -p ${CONFIG_FILE_DIR} + +CONFIG_CLASSPATH=.:${CONFIG_FILE_DIR} + +LIB_DIR=${CONFIG_HOME}/lib + +# +#Set up our classpath with our library dependencies... +for jar in `find ${LIB_DIR}/*.jar`; +do + CONFIG_CLASSPATH=${jar}:${CONFIG_CLASSPATH} +done + +# +#Guess JAVA_HOME if it's not set +if [ ${#JAVA_HOME} == 0 ]; then + JAVA_HOME=/usr/local/java +fi + +JVM_ARGS="-Xmx1024m" + +JAVA_COMMAND="java ${JVM_ARGS} -Dlog4j.configuration=log4j.properties -Djavax.net.debug=ssl:handshake -Dconfig.file="/opt/shrine/tomcat/lib/shrine.conf" -cp ${CONFIG_CLASSPATH} net.shrine.utilities.jerseyhttpclienttool.JerseyHttpClientTool $@" + +${JAVA_COMMAND} + diff --git a/tools/jersey-http-client-tool/src/test/resources/jersey-http-client-test.conf b/tools/jersey-http-client-tool/src/test/resources/jersey-http-client-test.conf new file mode 100644 index 000000000..e69de29bb diff --git a/tools/pom.xml b/tools/pom.xml index 224ef8c7a..c0434874d 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -1,80 +1,81 @@ <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <name>SHRINE Tools</name> <artifactId>shrine-tools</artifactId> <packaging>pom</packaging> <parent> <groupId>net.shrine</groupId> <artifactId>shrine-base</artifactId> <version>1.22.4</version> </parent> <properties> <gmaven-plugin-version>1.5</gmaven-plugin-version> <assembly-plugin-version>2.4</assembly-plugin-version> </properties> <modules> + <module>jersey-http-client-tool</module> <module>monitor</module> <module>utility-commons</module> <module>scanner</module> <module>batch-querier</module> <module>adapter-queries-to-qep</module> <module>mapping-automation</module> </modules> <dependencies> <dependency> <groupId>net.shrine</groupId> <artifactId>shrine-protocol</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> <version>${gmaven-plugin-version}</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <debug>true</debug> <verbose>true</verbose> <stacktrace>true</stacktrace> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>${assembly-plugin-version}</version> <executions> <execution> <id>assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <descriptors> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> </project>