From: <id...@us...> - 2009-04-21 21:22:36
|
Revision: 146 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=146&view=rev Author: idueppe Date: 2009-04-21 21:22:23 +0000 (Tue, 21 Apr 2009) Log Message: ----------- in progress: added rest client to sc-mapper Modified Paths: -------------- trunk/sandbox/cse-ip/build.xml trunk/sandbox/cse-ip/pom.xml trunk/sandbox/cse-ip/sc-mapper/pom.xml Added Paths: ----------- trunk/sandbox/cse-ip/sc-mapper-rest/ trunk/sandbox/cse-ip/sc-mapper-rest/build.xml trunk/sandbox/cse-ip/sc-mapper-rest/pom.xml trunk/sandbox/cse-ip/sc-mapper-rest/src/ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/IdentityMapperRestBean.java trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/MappedObject.java trunk/sandbox/cse-ip/sc-mapper-rest/src/main/resources/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestIdentityMapperIntegrationTest.java trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestfulTest.java trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/META-INF/ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/META-INF/persistence.xml trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/log4j.properties Modified: trunk/sandbox/cse-ip/build.xml =================================================================== --- trunk/sandbox/cse-ip/build.xml 2009-04-21 19:27:23 UTC (rev 145) +++ trunk/sandbox/cse-ip/build.xml 2009-04-21 21:22:23 UTC (rev 146) @@ -1,4 +1,4 @@ -<project name="cse-ip" default="install" basedir="."> +<project name="cse-ip :: build" default="install" basedir="."> <condition property="maven.executable" value="mvn.bat" else="mvn"><os family="windows" /></condition> <condition property="asadmin.executable" value="asadmin.bat" else="asadmin"><os family="windows"/></condition> Modified: trunk/sandbox/cse-ip/pom.xml =================================================================== --- trunk/sandbox/cse-ip/pom.xml 2009-04-21 19:27:23 UTC (rev 145) +++ trunk/sandbox/cse-ip/pom.xml 2009-04-21 21:22:23 UTC (rev 146) @@ -109,11 +109,18 @@ <module>sc-common</module> <module>sc-mapper</module> <module>sc-cdmm</module> + <module>sc-mapper-rest</module> <module>cse-ip-application</module> </modules> <repositories> + <repository> + <id>jboss</id> + <name>JBoss</name> + <url>http://repository.jboss.com/maven2</url> + <layout>default</layout> + </repository> <repository> <id>download-java-net</id> <name>Repository Java.Net</name> Modified: trunk/sandbox/cse-ip/sc-mapper/pom.xml =================================================================== --- trunk/sandbox/cse-ip/sc-mapper/pom.xml 2009-04-21 19:27:23 UTC (rev 145) +++ trunk/sandbox/cse-ip/sc-mapper/pom.xml 2009-04-21 21:22:23 UTC (rev 146) @@ -22,16 +22,16 @@ <scope>test</scope> </dependency> <dependency> + <groupId>de.campussource.cse</groupId> + <artifactId>sc-common</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <scope>compile</scope> </dependency> <dependency> - <groupId>de.campussource.cse</groupId> - <artifactId>sc-common</artifactId> - <version>${pom.version}</version> - </dependency> - <dependency> <groupId>javax.ejb</groupId> <artifactId>ejb-api</artifactId> <version>3.0</version> Added: trunk/sandbox/cse-ip/sc-mapper-rest/build.xml =================================================================== --- trunk/sandbox/cse-ip/sc-mapper-rest/build.xml (rev 0) +++ trunk/sandbox/cse-ip/sc-mapper-rest/build.xml 2009-04-21 21:22:23 UTC (rev 146) @@ -0,0 +1,28 @@ +<project name="cse-ip :: sc :: mapper :: rest :: build" default="install" basedir="."> + <condition property="maven.executable" value="mvn.bat" else="mvn"><os family="windows" /></condition> + + <target name="compile"> + <exec executable="${maven.executable}"> + <arg line="install"/> + </exec> + </target> + + <target name="clean"> + <exec executable="${maven.executable}"> + <arg line="clean"/> + </exec> + </target> + + <target name="install" depends="clean"> + <exec executable="${maven.executable}"> + <arg line="install"/> + </exec> + </target> + + <target name="eclipse"> + <exec executable="${maven.executable}"> + <arg line="eclipse:clean eclipse:eclipse"/> + </exec> + </target> + +</project> Property changes on: trunk/sandbox/cse-ip/sc-mapper-rest/build.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/sandbox/cse-ip/sc-mapper-rest/pom.xml =================================================================== --- trunk/sandbox/cse-ip/sc-mapper-rest/pom.xml (rev 0) +++ trunk/sandbox/cse-ip/sc-mapper-rest/pom.xml 2009-04-21 21:22:23 UTC (rev 146) @@ -0,0 +1,48 @@ +<?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"> + <parent> + <artifactId>cse-ip</artifactId> + <groupId>de.campussource.cse</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + <groupId>de.campussource.cse</groupId> + <artifactId>sc-mapper-rest</artifactId> + <packaging>war</packaging> + <name>Service Component Mapper REST</name> + <version>1.0-SNAPSHOT</version> + + + + <dependencies> + <dependency> + <groupId>de.campussource.cse</groupId> + <artifactId>sc-mapper</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>de.campussource.cse</groupId> + <artifactId>test-utilities</artifactId> + <version>${pom.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-server</artifactId> + <version>1.0.1</version> + </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + +</project> \ No newline at end of file Property changes on: trunk/sandbox/cse-ip/sc-mapper-rest/pom.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/IdentityMapperRestBean.java =================================================================== --- trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/IdentityMapperRestBean.java (rev 0) +++ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/IdentityMapperRestBean.java 2009-04-21 21:22:23 UTC (rev 146) @@ -0,0 +1,69 @@ +package de.campussource.cse.mapper.rest; + +import java.util.HashMap; +import java.util.Map; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; + +import de.campussource.cse.common.exception.IdNotFoundException; + +@Path("/mapper") +public class IdentityMapperRestBean { + + private Map<Long, String> busToClient = new HashMap<Long, String>(); + private Map<String, Long> clientToBus = new HashMap<String, Long>(); + + private Long toBus(String client) { + Long bus = clientToBus.get(client); + if (bus == null) { + bus = System.currentTimeMillis(); + busToClient.put(bus, client); + clientToBus.put(client, bus); + } + + return bus; + } + + private String toClient(Long bus) { + return busToClient.get(bus); + } + + @GET + @Path("/client/{instanceid}/{objectid}") + @Produces("application/xml") + public MappedObject toBusId(@PathParam("instanceid") Long clientInstanceId, + @PathParam("objectid") String clientObjectId) { + + MappedObject mapped = new MappedObject(); + mapped.setBusId(toBus(clientObjectId)); +// mapped.setBusId(mapper.toBusId(clientInstanceId, clientObjectId)); + mapped.setClientInstanceId(clientInstanceId); + mapped.setClientObjectId(clientObjectId); + + return mapped; + } + + @GET + @Path("/bus/{busid}/{instanceid}") + @Produces("application/xml") + public MappedObject toClientObjectId( + @PathParam("busid") Long busId, + @PathParam("instanceid") Long clientInstanceId) throws IdNotFoundException { + MappedObject mapped = new MappedObject(); + mapped.setBusId(busId); + mapped.setClientInstanceId(clientInstanceId); + mapped.setClientObjectId(toClient(busId)); +// mapped.setClientObjectId(mapper.toClientObjectId(busId, clientInstanceId)); + + return mapped; + } + + +// public static void setMapper(IdentityMapper identityMapper) { +// mapper = identityMapper; +// } + +} Property changes on: trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/IdentityMapperRestBean.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/MappedObject.java =================================================================== --- trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/MappedObject.java (rev 0) +++ trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/MappedObject.java 2009-04-21 21:22:23 UTC (rev 146) @@ -0,0 +1,48 @@ +package de.campussource.cse.mapper.rest; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +@XmlRootElement(name="Mapped") +@XmlType(name="MappedObjectType", namespace="http://cse.campussource.de/mapper") +@XmlAccessorType(XmlAccessType.FIELD) +public class MappedObject { + + @XmlElement(name="BusId") + private Long busId; + + @XmlElement(name="ClientInstanceId") + private Long clientInstanceId; + + @XmlElement(name="ClientObjectId") + private String clientObjectId; + + public Long getBusId() { + return busId; + } + + public void setBusId(Long busId) { + this.busId = busId; + } + + public Long getClientInstanceId() { + return clientInstanceId; + } + + public void setClientInstanceId(Long clientInstanceId) { + this.clientInstanceId = clientInstanceId; + } + + public String getClientObjectId() { + return clientObjectId; + } + + public void setClientObjectId(String clientObjectId) { + this.clientObjectId = clientObjectId; + } + +} Property changes on: trunk/sandbox/cse-ip/sc-mapper-rest/src/main/java/de/campussource/cse/mapper/rest/MappedObject.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestIdentityMapperIntegrationTest.java =================================================================== --- trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestIdentityMapperIntegrationTest.java (rev 0) +++ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestIdentityMapperIntegrationTest.java 2009-04-21 21:22:23 UTC (rev 146) @@ -0,0 +1,91 @@ +package de.campussource.cse.mapper.rest; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.sun.jersey.api.container.httpserver.HttpServerFactory; +import com.sun.net.httpserver.HttpServer; + +public class RestIdentityMapperIntegrationTest{ + + private static final String LOCALHOST = "http://localhost:8888/"; + private static HttpServer server; + + @BeforeClass + public static void setUp() throws Exception { + System.out.println("Creating Server..."); + + + server = HttpServerFactory.create(LOCALHOST); + server.start(); + + + System.out.println("HTTP Server started."); + System.out.println("Running tests..."); + + } + +// @Before +// public void setup() { +// IdentityMapper mapper = new IdentityMapperBean(); +// autowireByType(mapper); +// IdentityMapperRestBean.setMapper(mapper); +// JOptionPane.showMessageDialog(null, "JAX-RS Server is running!"); +// } + + private static String testResourceAtUrl(URL url) throws Exception { + try { + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + connection.setRequestMethod("GET"); + connection.connect(); + + InputStream is = connection.getInputStream(); + + BufferedReader reader = new BufferedReader(new InputStreamReader(is)); + StringBuilder buffer = new StringBuilder(); + String line = null; + while ((line = reader.readLine()) != null) { + buffer.append(line); + } + System.out.println("Read: " + buffer.toString()); + + connection.disconnect(); + + return buffer.toString(); + + } catch (IOException e) { + e.printStackTrace(); + } + throw new Exception("Could not establish connection to " + url.toExternalForm()); + } + + @Test + public void testRest() throws Exception { + String activationText = testResourceAtUrl(new URL(LOCALHOST + "mapper/client/12345/objectid")); + assertNotNull(activationText); + assertFalse(activationText.isEmpty()); + } + + @AfterClass + public static void tearDown() throws IOException { + if (server != null) { + System.out.println("Stopping server..."); + server.stop(0); + System.out.println("Server stopped"); + } + + } + +} Property changes on: trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestIdentityMapperIntegrationTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestfulTest.java =================================================================== --- trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestfulTest.java (rev 0) +++ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestfulTest.java 2009-04-21 21:22:23 UTC (rev 146) @@ -0,0 +1,96 @@ +package de.campussource.cse.mapper.rest; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +import javax.swing.JOptionPane; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.sun.jersey.api.container.httpserver.HttpServerFactory; +import com.sun.net.httpserver.HttpServer; + +@Path("/unittest") +public class RestfulTest { + + private static final String LOCALHOST = "http://localhost:8888/"; + + private static HttpServer server; + + @GET + @Produces("text/plain") + public String testSystem() { + return "Hello. This is a test"; + } + + @BeforeClass + public static void setUp() throws Exception { + System.out.println("Creating Server..."); + + server = HttpServerFactory.create(LOCALHOST); + server.start(); + + JOptionPane.showMessageDialog(null, "JAX-RS Server is running!"); + + System.out.println("HTTP Server started."); + System.out.println("Running tests..."); + + } + + private static String testResourceAtUrl(URL url) throws Exception { + try { + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + connection.setRequestMethod("GET"); + connection.connect(); + + InputStream is = connection.getInputStream(); + + BufferedReader reader = new BufferedReader(new InputStreamReader(is)); + StringBuilder buffer = new StringBuilder(); + String line = null; + while ((line = reader.readLine()) != null) { + buffer.append(line); + } + System.out.println("Read: " + buffer.toString()); + + connection.disconnect(); + + return buffer.toString(); + + } catch (IOException e) { + e.printStackTrace(); + } + throw new Exception("Could not establish connection to " + url.toExternalForm()); + } + + @Test + public void testRest() throws Exception { + String activationText = testResourceAtUrl(new URL(LOCALHOST + "/mapper")); + assertNotNull(activationText); + assertFalse(activationText.isEmpty()); + } + + @AfterClass + public static void tearDown() throws IOException { + if (server != null) { + System.out.println("Stopping server..."); + server.stop(0); + System.out.println("Server stopped"); + } + + } + +} Property changes on: trunk/sandbox/cse-ip/sc-mapper-rest/src/test/java/de/campussource/cse/mapper/rest/RestfulTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/META-INF/persistence.xml =================================================================== --- trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/META-INF/persistence.xml (rev 0) +++ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/META-INF/persistence.xml 2009-04-21 21:22:23 UTC (rev 146) @@ -0,0 +1,21 @@ +<persistence xmlns="http://java.sun.com/xml/ns/persistence" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" + version="1.0"> + <persistence-unit name="cseip-test" transaction-type="RESOURCE_LOCAL"> + <provider>oracle.toplink.essentials.PersistenceProvider</provider> + <class>de.campussource.cse.mapper.MappedClientObject</class> + <properties> + <property name="toplink.ddl-generation" value="drop-and-create-tables" /> + <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver" /> + <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/cseiptest?createDatabaseIfNotExist=true" /> + <property name="toplink.jdbc.user" value="root" /> + <property name="toplink.jdbc.password" value="masterkey" /> + </properties> + </persistence-unit> +</persistence> + + + + + \ No newline at end of file Property changes on: trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/META-INF/persistence.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/log4j.properties =================================================================== --- trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/log4j.properties (rev 0) +++ trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/log4j.properties 2009-04-21 21:22:23 UTC (rev 146) @@ -0,0 +1,15 @@ +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n + +log4j.rootCategory=debug, stdout + +log4j.logger.org.hibernate=info + +log4j.logger.oracle.toplink=debug + +log4j.logger.org.hibernate.SQL=debug +log4j.logger.org.hibernate.type=debug +log4j.logger.org.hibernate.id=debug +log4j.logger.org.hibernate.cache=debug \ No newline at end of file Property changes on: trunk/sandbox/cse-ip/sc-mapper-rest/src/test/resources/log4j.properties ___________________________________________________________________ Added: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |