Browse Source

Implements a simple plaintext in Jersey/Servlet

Mike Smith 5 năm trước cách đây
mục cha
commit
175c86a262

+ 25 - 0
frameworks/Java/jersey/benchmark_config.json

@@ -0,0 +1,25 @@
+{
+  "framework": "jersey",
+  "tests": [
+    {
+      "default": {
+        "plaintext_url": "/plaintext",
+        "port": 8080,
+        "approach": "Realistic",
+        "classification": "Fullstack",
+        "database": "None",
+        "framework": "Jersey",
+        "language": "Java",
+        "flavor": "None",
+        "orm": "Micro",
+        "platform": "Servlet",
+        "webserver": "Resin",
+        "os": "Linux",
+        "database_os": "Linux",
+        "display_name": "Jersey",
+        "notes": "",
+        "versus": "servlet"
+      }
+    }
+  ]
+}

+ 18 - 0
frameworks/Java/jersey/jersey.dockerfile

@@ -0,0 +1,18 @@
+FROM maven:3.6.1-jdk-11-slim as maven
+
+WORKDIR /jersey
+
+COPY src src
+COPY pom.xml pom.xml
+
+RUN mvn -q compile
+RUN mvn -q war:war
+
+FROM openjdk:11.0.3-jdk-stretch
+
+WORKDIR /resin
+RUN curl -sL http://caucho.com/download/resin-4.0.61.tar.gz | tar xz --strip-components=1
+RUN rm -rf webapps/*
+COPY --from=maven /jersey/target/hello.war webapps/ROOT.war
+COPY resin.xml conf/resin.xml
+CMD ["java", "-jar", "lib/resin.jar", "console"]

+ 64 - 0
frameworks/Java/jersey/pom.xml

@@ -0,0 +1,64 @@
+<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>
+
+	<groupId>com.techempower.jersey.hello</groupId>
+	<artifactId>Jersey</artifactId>
+	<packaging>war</packaging>
+	<version>0.0.1</version>
+	<name>hello</name>
+
+	<build>
+		<finalName>hello</finalName>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.5.1</version>
+				<inherited>true</inherited>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.glassfish.jersey</groupId>
+				<artifactId>jersey-bom</artifactId>
+				<version>${jersey.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.glassfish.jersey.containers</groupId>
+			<!-- <artifactId>jersey-container-servlet-core</artifactId> -->
+			<!-- use the following artifactId if you don't need servlet 2.x compatibility -->
+			<artifactId>jersey-container-servlet</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.glassfish.jersey.inject</groupId>
+			<artifactId>jersey-hk2</artifactId>
+		</dependency>
+		<!-- uncomment this to get JSON support
+			<dependency>
+					<groupId>org.glassfish.jersey.media</groupId>
+					<artifactId>jersey-media-json-binding</artifactId>
+			</dependency>
+			-->
+	</dependencies>
+	<properties>
+		<jersey.version>2.30.1</jersey.version>
+		<maven.compiler.source>11</maven.compiler.source>
+		<maven.compiler.target>11</maven.compiler.target>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+	</properties>
+</project>

+ 18 - 0
frameworks/Java/jersey/resin.xml

@@ -0,0 +1,18 @@
+<resin xmlns="http://caucho.com/ns/resin" xmlns:resin="http://caucho.com/ns/resin/core">
+
+  <system-property com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager="true" />
+
+  <cluster id="">
+    <resin:import path="/resin/conf/app-default.xml" />
+
+    <log name="" level="config" path="stdout:" timestamp="[%H:%M:%S.%s] " />
+
+    <server id="">
+      <http port="8080" />
+    </server>
+
+    <host>
+      <web-app-deploy path="/resin/webapps" expand-preserve-fileset="WEB-INF/work/**" />
+    </host>
+  </cluster>
+</resin>

+ 16 - 0
frameworks/Java/jersey/src/main/java/hello/PlaintextService.java

@@ -0,0 +1,16 @@
+package hello;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+@Path("plaintext")
+public class PlaintextService {
+
+	@GET
+	@Produces(MediaType.TEXT_PLAIN)
+	public String getIt() {
+		return "Hello, World!";
+	}
+}

+ 19 - 0
frameworks/Java/jersey/src/main/webapp/WEB-INF/web.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+
+	<servlet>
+		<servlet-name>jersey-serlvet</servlet-name>
+		<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
+		<init-param>
+			<param-name>jersey.config.server.provider.packages</param-name>
+			<param-value>hello</param-value>
+		</init-param>
+		<load-on-startup>1</load-on-startup>
+	</servlet>
+
+	<servlet-mapping>
+		<servlet-name>jersey-serlvet</servlet-name>
+		<url-pattern>*</url-pattern>
+	</servlet-mapping>
+
+</web-app>