added scm-agent

This commit is contained in:
Sebastian Sdorra
2010-09-08 12:37:18 +02:00
parent f181b678a6
commit 0276db90ef
4 changed files with 222 additions and 4 deletions

View File

@@ -1,6 +1,5 @@
<?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/maven-v4_0_0.xsd">
<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>
@@ -12,6 +11,7 @@
<modules>
<module>scm-core</module>
<module>scm-agent</module>
<module>scm-webapp</module>
</modules>
@@ -59,8 +59,6 @@
</plugins>
<finalName>scm-webapp</finalName>
</build>
<properties>

81
scm-agent/pom.xml Normal file
View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>scm</artifactId>
<groupId>sonia.scm</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-agent</artifactId>
<version>1.0-SNAPSHOT</version>
<name>scm-agent</name>
<dependencies>
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>com.sun.grizzly</groupId>
<artifactId>grizzly-servlet-webserver</artifactId>
<version>1.9.18-m</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<index>true</index>
<manifest>
<mainClass>sonia.scm.agent.Main</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,103 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sonia.scm.agent;
//~--- JDK imports ------------------------------------------------------------
import com.sun.grizzly.http.SelectorThread;
import com.sun.jersey.api.container.grizzly.GrizzlyWebContainerFactory;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author Sebastian Sdorra
*/
public class Main
{
/** Field description */
private static final int DEFAULT_PORT = 8989;
/** Field description */
private static final String DEFAULT_URI = "http://localhost:{0}/";
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param args
*
* @throws IOException
*/
public static void main(String[] args) throws IOException
{
SelectorThread threadSelector = startServer();
// TODO replace
System.in.read();
System.out.println("Shutting down ...");
threadSelector.stopEndpoint();
System.exit(0);
}
/**
* Method description
*
*
* @return
*
* @throws IOException
*/
protected static SelectorThread startServer() throws IOException
{
final Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages",
"sonia.scm.agent.resources");
System.out.println("Starting grizzly...");
int port = getPort(DEFAULT_PORT);
String uri = MessageFormat.format(DEFAULT_URI, String.valueOf(port));
return GrizzlyWebContainerFactory.create(uri, initParams);
}
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @param defaultPort
*
* @return
*/
private static int getPort(int defaultPort)
{
String port = System.getenv("JERSEY_HTTP_PORT");
if (null != port)
{
try
{
return Integer.parseInt(port);
}
catch (NumberFormatException e) {}
}
return defaultPort;
}
}

View File

@@ -0,0 +1,36 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sonia.scm.agent.resources;
//~--- JDK imports ------------------------------------------------------------
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
/**
*
* @author Sebastian Sdorra
*/
@Path("/agent")
public class AgentResource
{
/**
* Method description
*
*
* @return
*/
@GET
@Produces("text/plain")
public String hello()
{
return "Hello from Agent";
}
}