This is an automated email from the ASF dual-hosted git repository. ningjiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git
The following commit(s) were added to refs/heads/master by this push: new 0d04161 SCB-390 Update to introduece the byteman to the acceptance tests 0d04161 is described below commit 0d04161b9ea1ea1793fb1a0c9c64a08103488867 Author: Zheng Feng <zh.f...@gmail.com> AuthorDate: Tue Mar 20 14:05:47 2018 +0800 SCB-390 Update to introduece the byteman to the acceptance tests --- acceptance-tests/acceptance-pack/pom.xml | 38 ++++++++++++++++++++-- .../org/apache/servicecomb/saga/PackStepdefs.java | 11 +++++++ pom.xml | 2 ++ saga-demo/booking/booking/pom.xml | 11 +++++++ saga-demo/booking/car/pom.xml | 11 +++++++ saga-demo/booking/hotel/pom.xml | 11 +++++++ saga-demo/pom.xml | 34 +++++++++++++++++++ 7 files changed, 115 insertions(+), 3 deletions(-) diff --git a/acceptance-tests/acceptance-pack/pom.xml b/acceptance-tests/acceptance-pack/pom.xml index 49bd70b..232c73b 100644 --- a/acceptance-tests/acceptance-pack/pom.xml +++ b/acceptance-tests/acceptance-pack/pom.xml @@ -40,6 +40,11 @@ <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> + <dependency> + <groupId>org.jboss.byteman</groupId> + <artifactId>byteman-submit</artifactId> + <version>${byteman.version}</version> + </dependency> </dependencies> <profiles> @@ -111,13 +116,17 @@ <alias>car</alias> <run> <env> - <JAVA_OPTS /> + <JAVA_OPTS> + -Dorg.jboss.byteman.debug=true -Dorg.jboss.byteman.verbose=true + -javaagent:/maven/saga/byteman.jar=port:9091,address:0.0.0.0,listener:true + </JAVA_OPTS> </env> <wait> <log>Started [a-zA-Z]+ in [0-9.]+ seconds</log> <tcp> <ports> <port>8080</port> + <port>9091</port> </ports> </tcp> <time>120000</time> @@ -127,6 +136,7 @@ </links> <ports> <port>car.port:8080</port> + <port>car.byteman.port:9091</port> </ports> </run> </image> @@ -135,13 +145,17 @@ <alias>hotel</alias> <run> <env> - <JAVA_OPTS /> + <JAVA_OPTS> + -Dorg.jboss.byteman.debug=true -Dorg.jboss.byteman.verbose=true + -javaagent:/maven/saga/byteman.jar=port:9091,address:0.0.0.0,listener:true + </JAVA_OPTS> </env> <wait> <log>Started [a-zA-Z]+ in [0-9.]+ seconds</log> <tcp> <ports> <port>8080</port> + <port>9091</port> </ports> </tcp> <time>120000</time> @@ -151,6 +165,7 @@ </links> <ports> <port>hotel.port:8080</port> + <port>hotel.byteman.port:9091</port> </ports> </run> </image> @@ -159,13 +174,17 @@ <alias>booking</alias> <run> <env> - <JAVA_OPTS /> + <JAVA_OPTS> + -Dorg.jboss.byteman.debug=true -Dorg.jboss.byteman.verbose=true + -javaagent:/maven/saga/byteman.jar=port:9091,address:0.0.0.0,listener:true + </JAVA_OPTS> </env> <wait> <log>Started [a-zA-Z]+ in [0-9.]+ seconds</log> <tcp> <ports> <port>8080</port> + <port>9091</port> </ports> </tcp> <time>120000</time> @@ -177,6 +196,7 @@ </links> <ports> <port>booking.port:8080</port> + <port>booking.byteman.port:9091</port> </ports> </run> </image> @@ -242,6 +262,18 @@ <spring.datasource.url> jdbc:postgresql://${docker.hostname}:${postgres.port}/saga?useSSL=false </spring.datasource.url> + <byteman.address> + ${docker.hostname} + </byteman.address> + <car.byteman.port> + ${car.byteman.port} + </car.byteman.port> + <hotel.byteman.port> + ${hotel.byteman.port} + </hotel.byteman.port> + <booking.byteman.port> + ${booking.byteman.port} + </booking.byteman.port> </systemPropertyVariables> <argLine>${jacoco.failsafe.argLine}</argLine> </configuration> diff --git a/acceptance-tests/acceptance-pack/src/test/java/org/apache/servicecomb/saga/PackStepdefs.java b/acceptance-tests/acceptance-pack/src/test/java/org/apache/servicecomb/saga/PackStepdefs.java index a433f65..2646b1b 100644 --- a/acceptance-tests/acceptance-pack/src/test/java/org/apache/servicecomb/saga/PackStepdefs.java +++ b/acceptance-tests/acceptance-pack/src/test/java/org/apache/servicecomb/saga/PackStepdefs.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; +import org.jboss.byteman.agent.submit.Submit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,6 +66,16 @@ public class PackStepdefs implements En { probe(System.getProperty(ALPHA_REST_ADDRESS)); }); + Given("^Install the byteman script ([A-Za-z0-9_\\.]+) to ([A-Za-z]+) Service$", (String script, String service) -> { + String address = System.getProperty("byteman.address"); + String port = System.getProperty(service.toLowerCase() + ".byteman.port"); + log.info("Install the byteman script {} to {} service with {}:{}", script, service, address, port); + Submit bm = new Submit(address, Integer.parseInt(port)); + List<String> rules = new ArrayList<>(); + rules.add("target/test-classes/" + script); + bm.addRulesFromFiles(rules); + }); + When("^User ([A-Za-z]+) requests to book ([0-9]+) cars and ([0-9]+) rooms$", (username, cars, rooms) -> { log.info("Received request from user {} to book {} cars and {} rooms", username, cars, rooms); diff --git a/pom.xml b/pom.xml index 8445c76..8e62bbd 100755 --- a/pom.xml +++ b/pom.xml @@ -58,6 +58,8 @@ <javax.transaction.version>1.2</javax.transaction.version> <eclipse.link.version>2.7.1</eclipse.link.version> <jackson.version>2.9.0</jackson.version> + <byteman.version>4.0.1</byteman.version> + <maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version> </properties> <name>ServiceComb Saga</name> diff --git a/saga-demo/booking/booking/pom.xml b/saga-demo/booking/booking/pom.xml index 98f5f59..624eb32 100644 --- a/saga-demo/booking/booking/pom.xml +++ b/saga-demo/booking/booking/pom.xml @@ -77,6 +77,17 @@ </plugins> </build> </profile> + <profile> + <id>demo</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + </plugin> + </plugins> + </build> + </profile> </profiles> </project> diff --git a/saga-demo/booking/car/pom.xml b/saga-demo/booking/car/pom.xml index 9e7a05c..95db68d 100644 --- a/saga-demo/booking/car/pom.xml +++ b/saga-demo/booking/car/pom.xml @@ -77,6 +77,17 @@ </plugins> </build> </profile> + <profile> + <id>demo</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + </plugin> + </plugins> + </build> + </profile> </profiles> </project> diff --git a/saga-demo/booking/hotel/pom.xml b/saga-demo/booking/hotel/pom.xml index 56f1d1c..a8285e4 100644 --- a/saga-demo/booking/hotel/pom.xml +++ b/saga-demo/booking/hotel/pom.xml @@ -77,6 +77,17 @@ </plugins> </build> </profile> + <profile> + <id>demo</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + </plugin> + </plugins> + </build> + </profile> </profiles> </project> diff --git a/saga-demo/pom.xml b/saga-demo/pom.xml index 2fb54fa..804f536 100644 --- a/saga-demo/pom.xml +++ b/saga-demo/pom.xml @@ -54,6 +54,11 @@ <type>pom</type> <scope>import</scope> </dependency> + <dependency> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>${maven-dependency-plugin.version}</version> + </dependency> </dependencies> </dependencyManagement> @@ -66,6 +71,35 @@ </dependencies> <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>byteman.copy</id> + <phase>process-test-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.jboss.byteman</groupId> + <artifactId>byteman</artifactId> + <version>${byteman.version}</version> + </artifactItem> + </artifactItems> + <outputDirectory>${project.build.directory}/saga</outputDirectory> + <stripVersion>true</stripVersion> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </pluginManagement> + <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> -- To stop receiving notification emails like this one, please contact ningji...@apache.org.