diff --git a/demo/pom.xml b/demo/pom.xml new file mode 100644 index 000000000..1245ad00e --- /dev/null +++ b/demo/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + com.taobao.arthas + arthas-all + 3.0.5-SNAPSHOT + + arthas-demo + arthas-demo + + + arthas-demo + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.6 + 1.6 + UTF-8 + true + + + + org.apache.maven.plugins + maven-jar-plugin + + + + demo.MathGame + + + + + + + + diff --git a/demo/src/main/java/demo/MathGame.java b/demo/src/main/java/demo/MathGame.java new file mode 100644 index 000000000..51fd45a82 --- /dev/null +++ b/demo/src/main/java/demo/MathGame.java @@ -0,0 +1,63 @@ +package demo; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.concurrent.TimeUnit; + +public class MathGame { + private static Random random = new Random(); + + private int illegalArgumentCount = 0; + + public static void main(String[] args) throws InterruptedException { + MathGame game = new MathGame(); + while (true) { + game.run(); + TimeUnit.SECONDS.sleep(1); + } + } + + public void run() throws InterruptedException { + try { + int number = random.nextInt(); + List primeFactors = primeFactors(number); + print(number, primeFactors); + + } catch (Exception e) { + System.out.println(String.format("illegalArgumentCount:%3d, ", illegalArgumentCount) + e.getMessage()); + } + } + + public static void print(int number, List primeFactors) { + StringBuffer sb = new StringBuffer(number + "="); + for (int factor : primeFactors) { + sb.append(factor).append('*'); + } + if (sb.charAt(sb.length() - 1) == '*') { + sb.deleteCharAt(sb.length() - 1); + } + System.out.println(sb); + } + + public List primeFactors(int number) { + if (number < 2) { + illegalArgumentCount++; + throw new IllegalArgumentException("number is: " + number + ", need >= 2"); + } + + List result = new ArrayList(); + int i = 2; + while (i <= number) { + if (number % i == 0) { + result.add(i); + number = number / i; + i = 2; + } else { + i++; + } + } + + return result; + } +} diff --git a/packaging/src/main/assembly/assembly.xml b/packaging/src/main/assembly/assembly.xml index 88892660e..7d950acb2 100644 --- a/packaging/src/main/assembly/assembly.xml +++ b/packaging/src/main/assembly/assembly.xml @@ -28,6 +28,10 @@ ../boot/target/arthas-boot-jar-with-dependencies.jar arthas-boot.jar + + ../demo/target/arthas-demo.jar + arthas-demo.jar + ../bin/install-local.sh diff --git a/pom.xml b/pom.xml index c065c5b53..58c585f42 100644 --- a/pom.xml +++ b/pom.xml @@ -61,6 +61,7 @@ agent client boot + demo testcase site packaging