Browse Source

update redkale 2.3.0-snapshot (#6329)

* update redkale 2.3.0-snapshot

* update redkale 2.3.0-snapshot

* update redkale 2.3.0-test

* update redkale 2.3.0-snapshot

* update redkale 2.3.0-snapshot

* update redkale 2.3.0 snapshot

* update redkale 2.3.0
Redkale 4 years ago
parent
commit
efed13de29

+ 5 - 21
frameworks/Java/redkale/benchmark_config.json

@@ -4,27 +4,11 @@
     "default": {
     "default": {
       "json_url": "/json",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "plaintext_url": "/plaintext",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "database": "None",
-      "framework": "Redkale",
-      "language": "Java",
-      "flavor": "None",
-      "orm": "Raw",
-      "platform": "Redkale",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "redkale",
-      "notes": "",
-      "versus": ""
-    },
-	"postgres": {
-      "db_url": "/db",
-      "query_url": "/queries?queries=",
-      "fortune_url": "/fortunes",
-      "update_url": "/updates?queries=",
+      "db_url2": "/db",
+      "query_url2": "/queries?queries=",
+      "fortune_url2": "/fortunes",
+      "update_url2": "/updates?queries=",
+      "cached_query_url2": "/cached-worlds?count=",
       "port": 8080,
       "port": 8080,
       "approach": "Realistic",
       "approach": "Realistic",
       "classification": "Fullstack",
       "classification": "Fullstack",

+ 7 - 10
frameworks/Java/redkale/conf/application.xml

@@ -5,24 +5,21 @@
     <!--  see: http://redkale.org/redkale.html#redkale_confxml  -->
     <!--  see: http://redkale.org/redkale.html#redkale_confxml  -->
     
     
     <resources>
     <resources>
-	<properties>		
-            <property name="system.property.sun.nio.ch.disableSynchronousRead" value="true"/>
-            <property name="system.property.sun.nio.ch.maxCompletionHandlersOnStack" value="56"/>
+		<properties>		
             <property name="system.property.http.response.header.server" value="redkale"/>
             <property name="system.property.http.response.header.server" value="redkale"/>
+            <property name="system.property.http.response.header.connection" value="none"/>
         </properties>
         </properties>
     </resources> 
     </resources> 
         
         
-    <server protocol="HTTP" host="0.0.0.0" port="8080" threads="28" aliveTimeoutSeconds="300">      
+    <server protocol="HTTP" host="0.0.0.0" port="8080" netimpl="nio">      
                 
                 
         <response>
         <response>
-	    <contenttype plain="text/plain" json="application/json"/>  
-	    <date period="1000"/>
-	</response>
+			<contenttype plain="text/plain" json="application/json"/>  
+			<date period="1000"/>
+		</response>
 
 
-        <services autoload="true"/>
-        
+        <services autoload="true"/>        
         <rest autoload="true"/>
         <rest autoload="true"/>
-
         <servlets autoload="true"/>
         <servlets autoload="true"/>
         
         
     </server>
     </server>

+ 1 - 2
frameworks/Java/redkale/conf/persistence.xml

@@ -6,8 +6,7 @@
         <shared-cache-mode>ALL</shared-cache-mode>
         <shared-cache-mode>ALL</shared-cache-mode>
         <properties>
         <properties>
             <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://tfb-database:5432/hello_world"/>
             <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://tfb-database:5432/hello_world"/>
-            <property name="javax.persistence.connections.limit" value="28"/>
-            <property name="javax.persistence.datasource" value="org.redkalex.source.pgsql.PgSQLDataSource"/>
+            <property name="javax.persistence.connections.limit" value="56"/>
             <property name="javax.persistence.jdbc.user" value="benchmarkdbuser"/>
             <property name="javax.persistence.jdbc.user" value="benchmarkdbuser"/>
             <property name="javax.persistence.jdbc.password" value="benchmarkdbpass"/>
             <property name="javax.persistence.jdbc.password" value="benchmarkdbpass"/>
         </properties>
         </properties>

+ 113 - 84
frameworks/Java/redkale/pom.xml

@@ -1,94 +1,123 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 <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">
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.redkalex</groupId>
-	<artifactId>redkale-benchmark</artifactId>
-	<version>0.0.1</version>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.redkalex</groupId>
+    <artifactId>redkale-benchmark</artifactId>
+    <version>1.0.0</version>
 
 
-	<properties>
-		<!-- the main class -->
-		<main.class>org.redkale.boot.Application</main.class>
-		<stack.version>0.0.1</stack.version>
+    <properties>
+        <!-- the main class -->
+        <main.class>org.redkale.boot.Application</main.class>
+        <stack.version>1.0.0</stack.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <maven.compiler.target>11</maven.compiler.target>
-	</properties>
+    </properties> 
 
 
-	<dependencies>
-  
-		<dependency>
-			<groupId>org.redkale</groupId>
-			<artifactId>redkale</artifactId>
-			<version>2.0.0.alpha1</version>
-		</dependency>
+    <dependencies>  
+        <dependency>
+            <groupId>org.redkale</groupId>
+            <artifactId>redkale</artifactId>
+            <version>2.3.0-SNAPSHOT</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.redkalex</groupId>
+            <artifactId>redkale-plugins</artifactId>
+            <version>2.3.0-SNAPSHOT</version>
+        </dependency>
+        
+        <dependency> 
+            <groupId>com.fizzed</groupId>
+            <artifactId>rocker-compiler</artifactId>
+            <version>1.3.0</version>
+        </dependency>        
+    </dependencies>
 
 
-		<dependency>
-			<groupId>org.redkalex</groupId>
-			<artifactId>redkale-plugins</artifactId>
-			<version>2.0.0.alpha1</version>
-		</dependency>
-		<dependency>
-			<groupId>com.fizzed</groupId>
-			<artifactId>rocker-compiler</artifactId>
-			<version>1.2.1</version>
-		</dependency>
-	</dependencies>
+    <repositories>
+        <repository>
+            <id>central</id>
+            <name>Central Repository</name>
+            <url>https://repo.maven.apache.org/maven2</url>
+        </repository>
+        <repository>
+            <id>sonatype-nexus-snapshots</id>
+            <name>Sonatype Nexus Snapshots</name>
+            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+        </repository>
+    </repositories>
+    
+    <pluginRepositories>
+        <pluginRepository>
+            <id>central</id>
+            <name>Central Repository</name>
+            <url>https://repo.maven.apache.org/maven2</url>
+        </pluginRepository>
+        <pluginRepository>
+            <id>sonatype-nexus-snapshots</id>
+            <name>Sonatype Nexus Snapshots</name>
+            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </pluginRepository> 
+    </pluginRepositories>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.0</version>                         
+            </plugin>
+            <plugin>
+                <groupId>com.fizzed</groupId>
+                <artifactId>rocker-maven-plugin</artifactId>
+                <version>1.3.0</version>
+                <executions>
+                    <execution>
+                        <id>generate-rocker-templates</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                        <configuration>
+                            <javaVersion>1.8</javaVersion>
+                            <templateDirectory>${basedir}/src/main/templates</templateDirectory>
+                            <outputDirectory>${basedir}/target/generated-sources/rocker</outputDirectory>
+                            <discardLogicWhitespace>false</discardLogicWhitespace>
+                            <addAsSources>true</addAsSources>
+                            <optimize>true</optimize>
+                            <failOnError>true</failOnError>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>3.1.1</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <transformers>
+                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                                    <mainClass>${main.class}</mainClass>
+                                </transformer>
+                            </transformers>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
 
 
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.0</version>
-                <configuration>
-                    <debug>false</debug>
-                </configuration>
-			</plugin>
-			<plugin>
-				<groupId>com.fizzed</groupId>
-				<artifactId>rocker-maven-plugin</artifactId>
-				<version>1.2.1</version>
-				<executions>
-					<execution>
-						<id>generate-rocker-templates</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>generate</goal>
-						</goals>
-						<configuration>
-							<javaVersion>11</javaVersion>
-							<templateDirectory>${basedir}/src/main/templates</templateDirectory>
-							<outputDirectory>${basedir}/target/generated-sources/rocker</outputDirectory>
-							<discardLogicWhitespace>false</discardLogicWhitespace>
-							<addAsSources>true</addAsSources>
-							<optimize>true</optimize>
-							<failOnError>true</failOnError>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-shade-plugin</artifactId>
-				<version>3.1.1</version>
-				<executions>
-					<execution>
-						<phase>package</phase>
-						<goals>
-							<goal>shade</goal>
-						</goals>
-						<configuration>
-							<transformers>
-								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-								  <mainClass>${main.class}</mainClass>
-								</transformer>
-							  </transformers>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-
-	</build>
+    </build>
 
 
 </project>
 </project>

+ 0 - 15
frameworks/Java/redkale/redkale-postgres.dockerfile

@@ -1,15 +0,0 @@
-FROM maven:3.6.1-jdk-11-slim as maven
-WORKDIR /redkale
-COPY src src
-COPY conf conf
-COPY pom.xml pom.xml
-RUN mvn package -q
-
-FROM openjdk:12
-WORKDIR /redkale
-COPY conf conf
-COPY --from=maven /redkale/target/redkale-benchmark-0.0.1.jar redkale-benchmark.jar
-
-EXPOSE 8080
-
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 2 - 5
frameworks/Java/redkale/redkale.dockerfile

@@ -5,11 +5,8 @@ COPY conf conf
 COPY pom.xml pom.xml
 COPY pom.xml pom.xml
 RUN mvn package -q
 RUN mvn package -q
 
 
-FROM openjdk:12
+FROM openjdk:11.0.3-jdk-slim
 WORKDIR /redkale
 WORKDIR /redkale
 COPY conf conf
 COPY conf conf
-COPY --from=maven /redkale/target/redkale-benchmark-0.0.1.jar redkale-benchmark.jar
-
-EXPOSE 8080
-
+COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
 CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
 CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 1 - 1
frameworks/Java/redkale/setup.bat

@@ -2,4 +2,4 @@
 
 
 call mvn clean package
 call mvn clean package
 
 
-call java -DAPP_HOME=./ -jar target/redkale-benchmark-0.0.1.jar 
+call java -DAPP_HOME=./ -jar target/redkale-benchmark-1.0.0.jar 

+ 18 - 0
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/CachedWorld.java

@@ -0,0 +1,18 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.redkalex.benchmark;
+
+import javax.persistence.*;
+
+/**
+ *
+ * @author zhangjx
+ */
+@Cacheable
+@Table(name = "World")
+public class CachedWorld extends World {
+
+}

+ 3 - 1
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Message.java

@@ -5,14 +5,16 @@
  */
  */
 package org.redkalex.benchmark;
 package org.redkalex.benchmark;
 
 
+import org.redkale.convert.ConvertSmallString;
 import org.redkale.convert.json.JsonConvert;
 import org.redkale.convert.json.JsonConvert;
 
 
 /**
 /**
  *
  *
  * @author zhangjx
  * @author zhangjx
  */
  */
-public class Message { 
+public class Message {
 
 
+    @ConvertSmallString
     private String message;
     private String message;
 
 
     public Message() {
     public Message() {

+ 36 - 16
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Service.java

@@ -5,13 +5,13 @@
  */
  */
 package org.redkalex.benchmark;
 package org.redkalex.benchmark;
 
 
-import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletableFuture;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import org.redkale.net.http.*;
 import org.redkale.net.http.*;
 import org.redkale.service.AbstractService;
 import org.redkale.service.AbstractService;
-import org.redkale.source.DataSource;
+import org.redkale.source.*;
+import org.redkale.util.AnyValue;
 
 
 /**
 /**
  *
  *
@@ -27,6 +27,11 @@ public class Service extends AbstractService {
     @Resource
     @Resource
     private DataSource source;
     private DataSource source;
 
 
+    @Override
+    public void init(AnyValue conf) {
+        source.queryList(CachedWorld.class);
+    }
+
     @RestMapping(name = "json")
     @RestMapping(name = "json")
     public Message getHelloMessage() {
     public Message getHelloMessage() {
         return new Message("Hello, World!");
         return new Message("Hello, World!");
@@ -43,25 +48,40 @@ public class Service extends AbstractService {
     }
     }
 
 
     @RestMapping(name = "queries")
     @RestMapping(name = "queries")
-    public World[] queryWorld(@RestParam(name = "queries") int count) {
-        count = Math.min(500, Math.max(1, count));
-        final World[] rs = new World[count];
-        for (int i = 0; i < count; i++) {
-            rs[i] = source.find(World.class, randomId());
+    public CompletableFuture<World[]> queryWorld(@RestParam(name = "queries") int count) {
+        final int size = Math.min(500, Math.max(1, count));
+        final World[] worlds = new World[size];
+        final CompletableFuture[] futures = new CompletableFuture[size];
+        for (int i = 0; i < size; i++) {
+            final int index = i;
+            futures[index] = source.findAsync(World.class, randomId()).thenApply(r -> worlds[index] = r);
+        }
+        return CompletableFuture.allOf(futures).thenApply(v -> worlds);
+    }
+
+    @RestMapping(name = "cached-worlds")
+    public CachedWorld[] cachedWorlds(@RestParam(name = "count") int count) {
+        final int size = Math.min(500, Math.max(1, count));
+        final CachedWorld[] worlds = new CachedWorld[size];
+        for (int i = 0; i < size; i++) {
+            worlds[i] = source.find(CachedWorld.class, randomId());
         }
         }
-        return rs;
+        return worlds;
     }
     }
 
 
     @RestMapping(name = "updates")
     @RestMapping(name = "updates")
-    public World[] updateWorld(@RestParam(name = "queries") int count) {
-        count = Math.min(500, Math.max(1, count));
-        final World[] rs = new World[count];
-        for (int i = 0; i < count; i++) {
-            rs[i] = source.find(World.class, randomId());
-            rs[i].setRandomNumber(randomId());
+    public CompletableFuture<World[]> updateWorld(@RestParam(name = "queries") int count) {
+        final int size = Math.min(500, Math.max(1, count));
+        final World[] worlds = new World[size];
+        final CompletableFuture[] futures = new CompletableFuture[size];
+        for (int i = 0; i < size; i++) {
+            final int index = i;
+            futures[index] = source.findAsync(World.class, randomId()).thenAccept((World r) -> {
+                r.setRandomNumber(randomId());
+                worlds[index] = r;
+            });
         }
         }
-		source.update(rs);
-        return rs;
+        return CompletableFuture.allOf(futures).thenCompose(v -> source.updateAsync(worlds)).thenApply(v -> worlds);
     }
     }
 
 
     @RestMapping(name = "fortunes")
     @RestMapping(name = "fortunes")