diff --git a/.DS_Store b/.DS_Store
index 92cac90..454757c 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/pom.xml b/pom.xml
old mode 100755
new mode 100644
index 2b70625..3222c94
--- a/pom.xml
+++ b/pom.xml
@@ -85,7 +85,7 @@
org.testng
testng
- 7.0.0-beta3
+ 7.5.1
compile
@@ -103,18 +103,6 @@
netty-all
4.1.15.Final
-
-
- com.lmax
- disruptor
- 3.4.2
-
-
-
- net.openhft
- affinity
- 3.2.2
-
@@ -127,4 +115,4 @@
-
\ No newline at end of file
+
diff --git a/src/main/java/AppendixA/Main.java b/src/main/java/AppendixA/Main.java
index 1fc6c3f..ebfb1b9 100644
--- a/src/main/java/AppendixA/Main.java
+++ b/src/main/java/AppendixA/Main.java
@@ -1,4 +1,4 @@
-package AppendixA;
+package main.java.AppendixA;
public class Main {
public static void main(String[] args) {
diff --git a/src/main/java/AppendixA/MyFrame.java b/src/main/java/AppendixA/MyFrame.java
index ee89266..7e8fa87 100644
--- a/src/main/java/AppendixA/MyFrame.java
+++ b/src/main/java/AppendixA/MyFrame.java
@@ -1,4 +1,4 @@
-package AppendixA;
+package main.java.AppendixA;
import javax.swing.JFrame;
import javax.swing.JButton;
diff --git a/src/main/java/Balking/Q5/TestThread.java b/src/main/java/Balking/Q5/TestThread.java
index 243a58c..2c4466f 100644
--- a/src/main/java/Balking/Q5/TestThread.java
+++ b/src/main/java/Balking/Q5/TestThread.java
@@ -1,4 +1,4 @@
-package Balking.Q5;
+package main.java.Balking.Q5;
public class TestThread extends Thread {
public void run() {
diff --git a/src/main/java/Immutable/Q2/Main.java b/src/main/java/Immutable/Q2/Main.java
index 2709ba1..8216518 100644
--- a/src/main/java/Immutable/Q2/Main.java
+++ b/src/main/java/Immutable/Q2/Main.java
@@ -1,4 +1,4 @@
-package Immutable.Q2;
+package main.java.Immutable.Q2;
public class Main {
public static void main(String[] args) {
diff --git a/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java b/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java
index edd52be..aec342b 100755
--- a/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java
+++ b/src/main/java/com/javaedge/concurrency/ConcurrencyApplication.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency;
+package main.java.com.javaedge.concurrency;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java b/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java
index 2967863..12867a7 100755
--- a/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java
+++ b/src/main/java/com/javaedge/concurrency/ConcurrencyTest.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency;
+package main.java.com.javaedge.concurrency;
import com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/HttpFilter.java b/src/main/java/com/javaedge/concurrency/HttpFilter.java
index 8cf2ea1..87dcb65 100755
--- a/src/main/java/com/javaedge/concurrency/HttpFilter.java
+++ b/src/main/java/com/javaedge/concurrency/HttpFilter.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency;
+package main.java.com.javaedge.concurrency;
import com.javaedge.concurrency.threadLocal.RequestHolder;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/HttpInterceptor.java b/src/main/java/com/javaedge/concurrency/HttpInterceptor.java
index f7ef14f..5172654 100755
--- a/src/main/java/com/javaedge/concurrency/HttpInterceptor.java
+++ b/src/main/java/com/javaedge/concurrency/HttpInterceptor.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency;
+package main.java.com.javaedge.concurrency;
import com.javaedge.concurrency.threadLocal.RequestHolder;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/LockSupportBlockerTest.java b/src/main/java/com/javaedge/concurrency/LockSupportBlockerTest.java
index 2413f45..7b9ae45 100644
--- a/src/main/java/com/javaedge/concurrency/LockSupportBlockerTest.java
+++ b/src/main/java/com/javaedge/concurrency/LockSupportBlockerTest.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency;
+package main.java.com.javaedge.concurrency;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.LockSupport;
diff --git a/src/main/java/com/javaedge/concurrency/LockSupportTest.java b/src/main/java/com/javaedge/concurrency/LockSupportTest.java
index ac4b4a0..6b3f543 100644
--- a/src/main/java/com/javaedge/concurrency/LockSupportTest.java
+++ b/src/main/java/com/javaedge/concurrency/LockSupportTest.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency;
+package main.java.com.javaedge.concurrency;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.LockSupport;
diff --git a/src/main/java/com/javaedge/concurrency/TestController.java b/src/main/java/com/javaedge/concurrency/TestController.java
index bc49c01..1429afc 100755
--- a/src/main/java/com/javaedge/concurrency/TestController.java
+++ b/src/main/java/com/javaedge/concurrency/TestController.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency;
+package main.java.com.javaedge.concurrency;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
diff --git a/src/main/java/com/javaedge/concurrency/UnsafeTest.java b/src/main/java/com/javaedge/concurrency/UnsafeTest.java
index a41a003..6459a0a 100644
--- a/src/main/java/com/javaedge/concurrency/UnsafeTest.java
+++ b/src/main/java/com/javaedge/concurrency/UnsafeTest.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency;
+package main.java.com.javaedge.concurrency;
import sun.misc.Unsafe;
diff --git a/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java b/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java
index b1f1268..51563d1 100755
--- a/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java
+++ b/src/main/java/com/javaedge/concurrency/annoations/NotRecommend.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.annoations;
+package main.java.com.javaedge.concurrency.annoations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java b/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java
index 3413bd8..479d656 100755
--- a/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java
+++ b/src/main/java/com/javaedge/concurrency/annoations/NotThreadSafe.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.annoations;
+package main.java.com.javaedge.concurrency.annoations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/com/javaedge/concurrency/annoations/Recommend.java b/src/main/java/com/javaedge/concurrency/annoations/Recommend.java
index 6e8c350..ca616cc 100755
--- a/src/main/java/com/javaedge/concurrency/annoations/Recommend.java
+++ b/src/main/java/com/javaedge/concurrency/annoations/Recommend.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.annoations;
+package main.java.com.javaedge.concurrency.annoations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java b/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java
index 643c425..e248e53 100755
--- a/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java
+++ b/src/main/java/com/javaedge/concurrency/annoations/ThreadSafe.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.annoations;
+package main.java.com.javaedge.concurrency.annoations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -6,7 +6,7 @@
import java.lang.annotation.Target;
/**
- * 标记【线程安全】的类或者写法
+ * 课程里用来标记【线程安全】的类或者写法
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
diff --git a/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample1.java b/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample1.java
index 08dc6bb..7cbc186 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample1.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs;
+package main.java.com.javaedge.concurrency.aqs;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample2.java b/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample2.java
index 85b9727..2ae325e 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample2.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/CountDownLatchExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs;
+package main.java.com.javaedge.concurrency.aqs;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample1.java b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample1.java
index 796faee..694afd5 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample1.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs;
+package main.java.com.javaedge.concurrency.aqs;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample2.java b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample2.java
index 1b3dc99..3894267 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample2.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs;
+package main.java.com.javaedge.concurrency.aqs;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample3.java b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample3.java
index 1c84811..18f0926 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample3.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/CyclicBarrierExample3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs;
+package main.java.com.javaedge.concurrency.aqs;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/SampleLock.java b/src/main/java/com/javaedge/concurrency/aqs/SampleLock.java
index d81c83f..b2334f1 100644
--- a/src/main/java/com/javaedge/concurrency/aqs/SampleLock.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/SampleLock.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs;
+package main.java.com.javaedge.concurrency.aqs;
/**
* @author JavaEdge
diff --git a/src/main/java/com/javaedge/concurrency/aqs/SimpleLock.java b/src/main/java/com/javaedge/concurrency/aqs/SimpleLock.java
index d2294c5..86d9fdd 100644
--- a/src/main/java/com/javaedge/concurrency/aqs/SimpleLock.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/SimpleLock.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs;
+package main.java.com.javaedge.concurrency.aqs;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.AbstractQueuedSynchronizer;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/semaphore/MicrowaveOvenPool.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/MicrowaveOvenPool.java
index e9fe730..50ccf81 100644
--- a/src/main/java/com/javaedge/concurrency/aqs/semaphore/MicrowaveOvenPool.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/MicrowaveOvenPool.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs.semaphore;
+package main.java.com.javaedge.concurrency.aqs.semaphore;
import javax.validation.constraints.NotNull;
import java.util.List;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/semaphore/ObjPool.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/ObjPool.java
index 6d38de4..d1397cb 100644
--- a/src/main/java/com/javaedge/concurrency/aqs/semaphore/ObjPool.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/ObjPool.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs.semaphore;
+package main.java.com.javaedge.concurrency.aqs.semaphore;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample1.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample1.java
index 2fa7ec8..bcf563b 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample1.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs.semaphore;
+package main.java.com.javaedge.concurrency.aqs.semaphore;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample2.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample2.java
index 353122c..b3c55b3 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample2.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs.semaphore;
+package main.java.com.javaedge.concurrency.aqs.semaphore;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample3.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample3.java
index eebaf66..f9fe06d 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample3.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs.semaphore;
+package main.java.com.javaedge.concurrency.aqs.semaphore;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample4.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample4.java
index 626cd26..29a3658 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample4.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample4.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs.semaphore;
+package main.java.com.javaedge.concurrency.aqs.semaphore;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample5.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample5.java
index d8dd064..b462d07 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample5.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample5.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs.semaphore;
+package main.java.com.javaedge.concurrency.aqs.semaphore;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample6.java b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample6.java
index d077a61..ecdd6ba 100755
--- a/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample6.java
+++ b/src/main/java/com/javaedge/concurrency/aqs/semaphore/SemaphoreExample6.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.aqs.semaphore;
+package main.java.com.javaedge.concurrency.aqs.semaphore;
import java.util.concurrent.Semaphore;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample1.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample1.java
index 49b6a09..f309866 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample1.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample1.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample2.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample2.java
index c973571..42aed35 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample2.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample2.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample3.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample3.java
index 0dc4b0e..ece69ca 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample3.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample3.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample4.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample4.java
index 5b531df..1238f30 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample4.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample4.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.atomic.AtomicReference;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample5.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample5.java
index c00ca65..0c37a22 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample5.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample5.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample6.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample6.java
index e653475..b5a4f7b 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/AtomicExample6.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicExample6.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/AtomicTest.java b/src/main/java/com/javaedge/concurrency/atomic/AtomicTest.java
index f7f478f..8cbc04a 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/AtomicTest.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/AtomicTest.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
import java.util.concurrent.atomic.AtomicInteger;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/LockCASDemo.java b/src/main/java/com/javaedge/concurrency/atomic/LockCASDemo.java
index 7ed1a99..e7c03d9 100644
--- a/src/main/java/com/javaedge/concurrency/atomic/LockCASDemo.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/LockCASDemo.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
import sun.misc.Unsafe;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/LongAccumulatorDemo.java b/src/main/java/com/javaedge/concurrency/atomic/LongAccumulatorDemo.java
index 7175d82..d78dc47 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/LongAccumulatorDemo.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/LongAccumulatorDemo.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
import java.util.concurrent.atomic.LongAccumulator;
import java.util.function.LongBinaryOperator;
diff --git a/src/main/java/com/javaedge/concurrency/atomic/LongAdderDemo.java b/src/main/java/com/javaedge/concurrency/atomic/LongAdderDemo.java
index 71f4175..b415904 100755
--- a/src/main/java/com/javaedge/concurrency/atomic/LongAdderDemo.java
+++ b/src/main/java/com/javaedge/concurrency/atomic/LongAdderDemo.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.atomic;
+package main.java.com.javaedge.concurrency.atomic;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.LongAdder;
diff --git a/src/main/java/com/javaedge/concurrency/cache/CacheController.java b/src/main/java/com/javaedge/concurrency/cache/CacheController.java
index 96afcd4..321d024 100755
--- a/src/main/java/com/javaedge/concurrency/cache/CacheController.java
+++ b/src/main/java/com/javaedge/concurrency/cache/CacheController.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.cache;
+package main.java.com.javaedge.concurrency.cache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
diff --git a/src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample2.java b/src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample2.java
index 9811b24..5548124 100755
--- a/src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample2.java
+++ b/src/main/java/com/javaedge/concurrency/cache/GuavaCacheExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.cache;
+package main.java.com.javaedge.concurrency.cache;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
diff --git a/src/main/java/com/javaedge/concurrency/cache/RedisClient.java b/src/main/java/com/javaedge/concurrency/cache/RedisClient.java
index b9ba1cc..d985089 100755
--- a/src/main/java/com/javaedge/concurrency/cache/RedisClient.java
+++ b/src/main/java/com/javaedge/concurrency/cache/RedisClient.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.cache;
+package main.java.com.javaedge.concurrency.cache;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
diff --git a/src/main/java/com/javaedge/concurrency/cache/RedisConfig.java b/src/main/java/com/javaedge/concurrency/cache/RedisConfig.java
index 0a68a45..7b7aaed 100755
--- a/src/main/java/com/javaedge/concurrency/cache/RedisConfig.java
+++ b/src/main/java/com/javaedge/concurrency/cache/RedisConfig.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.cache;
+package main.java.com.javaedge.concurrency.cache;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
diff --git a/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java b/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java
index 49129e3..97e53e9 100755
--- a/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java
+++ b/src/main/java/com/javaedge/concurrency/cas/demo/ConcurrentStack.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.cas.demo;
+package main.java.com.javaedge.concurrency.cas.demo;
import com.javaedge.concurrency.cas.demo.Node;
diff --git a/src/main/java/com/javaedge/concurrency/cas/demo/Node.java b/src/main/java/com/javaedge/concurrency/cas/demo/Node.java
index 8efedc0..14a1fa4 100755
--- a/src/main/java/com/javaedge/concurrency/cas/demo/Node.java
+++ b/src/main/java/com/javaedge/concurrency/cas/demo/Node.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.cas.demo;
+package main.java.com.javaedge.concurrency.cas.demo;
/**
* 存储在栈里面元素 -- 对象
diff --git a/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java b/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java
index f118e6c..36b908e 100644
--- a/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java
+++ b/src/main/java/com/javaedge/concurrency/cas/demo/Stack.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.cas.demo;
+package main.java.com.javaedge.concurrency.cas.demo;
import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/com/javaedge/concurrency/cas/demo/Test.java b/src/main/java/com/javaedge/concurrency/cas/demo/Test.java
index 722a19c..b90d2ac 100755
--- a/src/main/java/com/javaedge/concurrency/cas/demo/Test.java
+++ b/src/main/java/com/javaedge/concurrency/cas/demo/Test.java
@@ -1,4 +1,7 @@
-package com.javaedge.concurrency.cas.demo;
+package main.java.com.javaedge.concurrency.cas.demo;
+
+import com.javaedge.concurrency.cas.demo.Node;
+import main.java.com.javaedge.concurrency.cas.demo.Stack;
public class Test {
public static void main(String[] args) throws InterruptedException {
diff --git a/src/main/java/com/javaedge/concurrency/common/Nap.java b/src/main/java/com/javaedge/concurrency/common/Nap.java
index c2b9752..adb7c4c 100644
--- a/src/main/java/com/javaedge/concurrency/common/Nap.java
+++ b/src/main/java/com/javaedge/concurrency/common/Nap.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common;
+package main.java.com.javaedge.concurrency.common;
import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/com/javaedge/concurrency/common/Timer.java b/src/main/java/com/javaedge/concurrency/common/Timer.java
index caadf6d..77a3da4 100644
--- a/src/main/java/com/javaedge/concurrency/common/Timer.java
+++ b/src/main/java/com/javaedge/concurrency/common/Timer.java
@@ -2,7 +2,7 @@
// (c)2017 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.
-package com.javaedge.concurrency.common;
+package main.java.com.javaedge.concurrency.common;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
diff --git a/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java b/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java
index d803764..eecd77a 100644
--- a/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java
+++ b/src/main/java/com/javaedge/concurrency/common/closure/ThreadClosure.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.closure;
+package main.java.com.javaedge.concurrency.common.closure;
import org.testng.annotations.Test;
diff --git a/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java b/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java
index b21f240..ba94398 100644
--- a/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java
+++ b/src/main/java/com/javaedge/concurrency/common/communication/ThreadCommunication.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.communication;
+package main.java.com.javaedge.concurrency.common.communication;
import java.util.concurrent.locks.LockSupport;
diff --git a/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java b/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java
index 21ee75a..f123ad2 100644
--- a/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java
+++ b/src/main/java/com/javaedge/concurrency/common/state/ThreadState.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.state;
+package main.java.com.javaedge.concurrency.common.state;
/**
* 多线程运行状态切换
diff --git a/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java b/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java
index 65dd10d..7201e65 100644
--- a/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java
+++ b/src/main/java/com/javaedge/concurrency/common/stop/FlagStopThread.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.stop;
+package main.java.com.javaedge.concurrency.common.stop;
/**
* 通过状态位来判断
diff --git a/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java b/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java
index 627bb83..9ac8877 100644
--- a/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java
+++ b/src/main/java/com/javaedge/concurrency/common/stop/PrimeGenerator.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.common.stop;
+package main.java.com.javaedge.concurrency.common.stop;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.concurrent.GuardedBy;
diff --git a/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java b/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java
index 06e76d9..501b5b0 100755
--- a/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java
+++ b/src/main/java/com/javaedge/concurrency/common/stop/StopThread.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.stop;
+package main.java.com.javaedge.concurrency.common.stop;
/**
* @author JavaEdge
diff --git a/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java b/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java
index d4fb9a9..6fe9aca 100644
--- a/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java
+++ b/src/main/java/com/javaedge/concurrency/common/stop/ThreadStop.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.stop;
+package main.java.com.javaedge.concurrency.common.stop;
/**
* @author JavaEdge
diff --git a/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java
index 085d1d8..5247ab5 100644
--- a/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java
+++ b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.volatiletest;
+package main.java.com.javaedge.concurrency.common.volatiletest;
/**
* @author JavaEdge
diff --git a/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java
index 19169ba..8956eb2 100755
--- a/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java
+++ b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.volatiletest;
+package main.java.com.javaedge.concurrency.common.volatiletest;
import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java
index edf43d4..04bb23a 100755
--- a/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java
+++ b/src/main/java/com/javaedge/concurrency/common/volatiletest/VisibilityDemo2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.common.volatiletest;
+package main.java.com.javaedge.concurrency.common.volatiletest;
import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/com/javaedge/concurrency/commonunsafe/ArrayListExample.java b/src/main/java/com/javaedge/concurrency/commonunsafe/ArrayListExample.java
index a3b7787..29541aa 100755
--- a/src/main/java/com/javaedge/concurrency/commonunsafe/ArrayListExample.java
+++ b/src/main/java/com/javaedge/concurrency/commonunsafe/ArrayListExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.commonunsafe;
+package main.java.com.javaedge.concurrency.commonunsafe;
import com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample1.java b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample1.java
index 8245415..bceba91 100755
--- a/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample1.java
+++ b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.commonunsafe;
+package main.java.com.javaedge.concurrency.commonunsafe;
import com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample2.java b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample2.java
index e9a7d50..809e505 100755
--- a/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample2.java
+++ b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.commonunsafe;
+package main.java.com.javaedge.concurrency.commonunsafe;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample3.java b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample3.java
index 2974b42..8057e44 100755
--- a/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample3.java
+++ b/src/main/java/com/javaedge/concurrency/commonunsafe/DateFormatExample3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.commonunsafe;
+package main.java.com.javaedge.concurrency.commonunsafe;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/commonunsafe/HashMapExample.java b/src/main/java/com/javaedge/concurrency/commonunsafe/HashMapExample.java
index e1d8225..b6eb68b 100755
--- a/src/main/java/com/javaedge/concurrency/commonunsafe/HashMapExample.java
+++ b/src/main/java/com/javaedge/concurrency/commonunsafe/HashMapExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.commonunsafe;
+package main.java.com.javaedge.concurrency.commonunsafe;
import com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/commonunsafe/HashSetExample.java b/src/main/java/com/javaedge/concurrency/commonunsafe/HashSetExample.java
index e2620e9..69b9a57 100755
--- a/src/main/java/com/javaedge/concurrency/commonunsafe/HashSetExample.java
+++ b/src/main/java/com/javaedge/concurrency/commonunsafe/HashSetExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.commonunsafe;
+package main.java.com.javaedge.concurrency.commonunsafe;
import com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample1.java b/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample1.java
index e23281e..e445ff8 100755
--- a/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample1.java
+++ b/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.commonunsafe;
+package main.java.com.javaedge.concurrency.commonunsafe;
import com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample2.java b/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample2.java
index 9746c3e..00594c1 100755
--- a/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample2.java
+++ b/src/main/java/com/javaedge/concurrency/commonunsafe/StringExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.commonunsafe;
+package main.java.com.javaedge.concurrency.commonunsafe;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentHashMapExample.java b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentHashMapExample.java
index 36cb774..4a7d217 100755
--- a/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentHashMapExample.java
+++ b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentHashMapExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.concurrent;
+package main.java.com.javaedge.concurrency.concurrent;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListMapExample.java b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListMapExample.java
index 602dd71..1d39bd0 100755
--- a/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListMapExample.java
+++ b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListMapExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.concurrent;
+package main.java.com.javaedge.concurrency.concurrent;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListSetExample.java b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListSetExample.java
index 1f53ad5..b197d1b 100755
--- a/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListSetExample.java
+++ b/src/main/java/com/javaedge/concurrency/concurrent/ConcurrentSkipListSetExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.concurrent;
+package main.java.com.javaedge.concurrency.concurrent;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArrayListExample.java b/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArrayListExample.java
index 7177bdb..de26588 100755
--- a/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArrayListExample.java
+++ b/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArrayListExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.concurrent;
+package main.java.com.javaedge.concurrency.concurrent;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArraySetExample.java b/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArraySetExample.java
index 9b71037..7d9c882 100755
--- a/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArraySetExample.java
+++ b/src/main/java/com/javaedge/concurrency/concurrent/CopyOnWriteArraySetExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.concurrent;
+package main.java.com.javaedge.concurrency.concurrent;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/condition/BlockedQueue.java b/src/main/java/com/javaedge/concurrency/condition/BlockedQueue.java
index 0f104c9..75936aa 100644
--- a/src/main/java/com/javaedge/concurrency/condition/BlockedQueue.java
+++ b/src/main/java/com/javaedge/concurrency/condition/BlockedQueue.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.condition;
+package main.java.com.javaedge.concurrency.condition;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
diff --git a/src/main/java/com/javaedge/concurrency/condition/DubboCondition.java b/src/main/java/com/javaedge/concurrency/condition/DubboCondition.java
index 34a7298..17f492c 100644
--- a/src/main/java/com/javaedge/concurrency/condition/DubboCondition.java
+++ b/src/main/java/com/javaedge/concurrency/condition/DubboCondition.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.condition;
+package main.java.com.javaedge.concurrency.condition;
import redis.clients.jedis.Response;
diff --git a/src/main/java/com/javaedge/concurrency/count/CountExample1.java b/src/main/java/com/javaedge/concurrency/count/CountExample1.java
index 8747197..d3f4817 100755
--- a/src/main/java/com/javaedge/concurrency/count/CountExample1.java
+++ b/src/main/java/com/javaedge/concurrency/count/CountExample1.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.count;
+package main.java.com.javaedge.concurrency.count;
-import com.javaedge.concurrency.annoations.NotThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/count/CountExample2.java b/src/main/java/com/javaedge/concurrency/count/CountExample2.java
index 334afca..5499fa8 100755
--- a/src/main/java/com/javaedge/concurrency/count/CountExample2.java
+++ b/src/main/java/com/javaedge/concurrency/count/CountExample2.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.count;
+package main.java.com.javaedge.concurrency.count;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/count/CountExample3.java b/src/main/java/com/javaedge/concurrency/count/CountExample3.java
index 29d3772..402cbdb 100755
--- a/src/main/java/com/javaedge/concurrency/count/CountExample3.java
+++ b/src/main/java/com/javaedge/concurrency/count/CountExample3.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.count;
+package main.java.com.javaedge.concurrency.count;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/count/CountExample4.java b/src/main/java/com/javaedge/concurrency/count/CountExample4.java
index 773c526..a3b87ae 100755
--- a/src/main/java/com/javaedge/concurrency/count/CountExample4.java
+++ b/src/main/java/com/javaedge/concurrency/count/CountExample4.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.count;
+package main.java.com.javaedge.concurrency.count;
-import com.javaedge.concurrency.annoations.NotThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/deadLock/DeadLock.java b/src/main/java/com/javaedge/concurrency/deadLock/DeadLock.java
index d4868ac..0719f17 100755
--- a/src/main/java/com/javaedge/concurrency/deadLock/DeadLock.java
+++ b/src/main/java/com/javaedge/concurrency/deadLock/DeadLock.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.deadLock;
+package main.java.com.javaedge.concurrency.deadLock;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/disruptor/DisruptorExceptionHandler.java b/src/main/java/com/javaedge/concurrency/disruptor/DisruptorExceptionHandler.java
deleted file mode 100644
index bd60902..0000000
--- a/src/main/java/com/javaedge/concurrency/disruptor/DisruptorExceptionHandler.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.javaedge.concurrency.disruptor;
-
-import com.lmax.disruptor.ExceptionHandler;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.function.BiConsumer;
-
-@Slf4j
-@AllArgsConstructor
-public class DisruptorExceptionHandler implements ExceptionHandler {
-
- public final String name;
-
- public final BiConsumer onException;
-
- @Override
- public void handleEventException(Throwable ex, long sequence, T event) {
- System.out.println("handleEventException: " + ex.getMessage());
- onException.accept(ex, sequence);
- }
-
- @Override
- public void handleOnStartException(Throwable ex) {
- System.out.println("handleOnStartException: " + ex.getMessage());
- }
-
- @Override
- public void handleOnShutdownException(Throwable ex) {
- System.out.println("handleOnShutdownException: " + ex.getMessage());
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/javaedge/concurrency/disruptor/RbCmd.java b/src/main/java/com/javaedge/concurrency/disruptor/RbCmd.java
deleted file mode 100644
index d6be19c..0000000
--- a/src/main/java/com/javaedge/concurrency/disruptor/RbCmd.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.javaedge.concurrency.disruptor;
-
-import lombok.Builder;
-import lombok.Data;
-
-@Builder
-@Data
-public class RbCmd {
-
- private int code;
- public String msg;
-}
\ No newline at end of file
diff --git a/src/main/java/com/javaedge/concurrency/disruptor/RbCmdFactory.java b/src/main/java/com/javaedge/concurrency/disruptor/RbCmdFactory.java
deleted file mode 100644
index eaca548..0000000
--- a/src/main/java/com/javaedge/concurrency/disruptor/RbCmdFactory.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.javaedge.concurrency.disruptor;
-
-import com.lmax.disruptor.EventFactory;
-import lombok.RequiredArgsConstructor;
-
-@RequiredArgsConstructor
-public class RbCmdFactory implements EventFactory {
- @Override
- public RbCmd newInstance() {
- return RbCmd.builder()
- .code(0)
- .msg("")
- .build();
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/javaedge/concurrency/disruptor/RbData.java b/src/main/java/com/javaedge/concurrency/disruptor/RbData.java
deleted file mode 100644
index 015e11a..0000000
--- a/src/main/java/com/javaedge/concurrency/disruptor/RbData.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.javaedge.concurrency.disruptor;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@NoArgsConstructor
-@AllArgsConstructor
-@Data
-public class RbData {
-
- private int code;
- public String msg;
-}
\ No newline at end of file
diff --git a/src/main/java/com/javaedge/concurrency/disruptor/Test.java b/src/main/java/com/javaedge/concurrency/disruptor/Test.java
deleted file mode 100644
index 52f248a..0000000
--- a/src/main/java/com/javaedge/concurrency/disruptor/Test.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.javaedge.concurrency.disruptor;
-
-import com.lmax.disruptor.BlockingWaitStrategy;
-import com.lmax.disruptor.EventHandler;
-import com.lmax.disruptor.EventTranslatorOneArg;
-import com.lmax.disruptor.dsl.Disruptor;
-import com.lmax.disruptor.dsl.ProducerType;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicInteger;
-
-@Slf4j
-public class Test {
-
- public static void main(String[] args) {
- Test test = new Test();
- test.initDisruptor();
- }
-
- private Disruptor disruptor;
-
- private static final EventTranslatorOneArg RUB_TRANSLSLATOR = (rbCmd, seq, rbData) -> {
- rbCmd.setCode(rbData.getCode());
- rbCmd.setMsg(rbData.getMsg());
- };
-
- public void initDisruptor() {
- ThreadFactory threadFactory = new ThreadFactory() {
- private final AtomicInteger threadNum = new AtomicInteger(1);
-
- @Override
- public Thread newThread(Runnable r) {
- Thread t = new Thread(r, "aft_core-" + threadNum.getAndIncrement());
- t.setDaemon(true);
- return t;
- }
- };
-
- disruptor = new Disruptor<>(
- new RbCmdFactory(),
- 1024,
- threadFactory,
- ProducerType.SINGLE,
- new BlockingWaitStrategy()
- );
-
- final DisruptorExceptionHandler exceptionHandler = new DisruptorExceptionHandler<>(
- "disruptor-1",
- (ex, seq) -> {
- log.error("exception thrown on seq={}", seq, ex);
- });
- disruptor.setDefaultExceptionHandler(exceptionHandler);
-
- ConsumerA consumerA = new ConsumerA();
- ConsumerB consumerB = new ConsumerB();
- disruptor.handleEventsWith(consumerA).then(consumerB);
- disruptor.start();
-
- new Timer().schedule(new ProductTask(), 2000, 1000);
- }
-
- private int index = 0;
-
- private class ProductTask extends TimerTask {
-
- @Override
- public void run() {
- disruptor.getRingBuffer().publishEvent(RUB_TRANSLSLATOR, new RbData(index, "msg-" + index));
- index++;
- }
- }
-
- private class ConsumerA implements EventHandler {
- @Override
- public void onEvent(RbCmd event, long sequence, boolean endOfBatch) throws Exception {
- log.info("ConsumerA recv: {}", event);
- }
- }
-
- private class ConsumerB implements EventHandler {
- @Override
- public void onEvent(RbCmd event, long sequence, boolean endOfBatch) throws Exception {
- log.info("ConsumerB recv: {}", event);
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample.java b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample.java
index 3af369c..58b2c59 100755
--- a/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample.java
+++ b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.forkjoin;
+package main.java.com.javaedge.concurrency.forkjoin;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample2.java b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample2.java
index 6e38a6e..4621040 100755
--- a/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample2.java
+++ b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.forkjoin;
+package main.java.com.javaedge.concurrency.forkjoin;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample3.java b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample3.java
index cbfe57e..a33e195 100755
--- a/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample3.java
+++ b/src/main/java/com/javaedge/concurrency/forkjoin/ForkJoinTaskExample3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.forkjoin;
+package main.java.com.javaedge.concurrency.forkjoin;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
diff --git a/src/main/java/com/javaedge/concurrency/furure/guava/FutureExample.java b/src/main/java/com/javaedge/concurrency/furure/guava/FutureExample.java
index 53b4931..8af249d 100755
--- a/src/main/java/com/javaedge/concurrency/furure/guava/FutureExample.java
+++ b/src/main/java/com/javaedge/concurrency/furure/guava/FutureExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.furure.guava;
+package main.java.com.javaedge.concurrency.furure.guava;
import com.google.common.util.concurrent.*;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFurureDemo3.java b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFurureDemo3.java
index 450d3ed..d913677 100644
--- a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFurureDemo3.java
+++ b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFurureDemo3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.furure.jdk;
+package main.java.com.javaedge.concurrency.furure.jdk;
import org.junit.Test;
diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo.java b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo.java
index a5a3628..47e25f1 100644
--- a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo.java
+++ b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.furure.jdk;
+package main.java.com.javaedge.concurrency.furure.jdk;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo2.java b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo2.java
index b6615a7..b8714e7 100644
--- a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo2.java
+++ b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletableFutureDemo2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.furure.jdk;
+package main.java.com.javaedge.concurrency.furure.jdk;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletionServiceDemo.java b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletionServiceDemo.java
index 8d7e134..76cb04b 100644
--- a/src/main/java/com/javaedge/concurrency/furure/jdk/CompletionServiceDemo.java
+++ b/src/main/java/com/javaedge/concurrency/furure/jdk/CompletionServiceDemo.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.furure.jdk;
+package main.java.com.javaedge.concurrency.furure.jdk;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicReference;
diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/FutureExample.java b/src/main/java/com/javaedge/concurrency/furure/jdk/FutureExample.java
index 1ab292a..68623dc 100755
--- a/src/main/java/com/javaedge/concurrency/furure/jdk/FutureExample.java
+++ b/src/main/java/com/javaedge/concurrency/furure/jdk/FutureExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.furure.jdk;
+package main.java.com.javaedge.concurrency.furure.jdk;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/FutureTaskExample.java b/src/main/java/com/javaedge/concurrency/furure/jdk/FutureTaskExample.java
index cc07c44..9f7f70e 100755
--- a/src/main/java/com/javaedge/concurrency/furure/jdk/FutureTaskExample.java
+++ b/src/main/java/com/javaedge/concurrency/furure/jdk/FutureTaskExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.furure.jdk;
+package main.java.com.javaedge.concurrency.furure.jdk;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/furure/jdk/Machina.java b/src/main/java/com/javaedge/concurrency/furure/jdk/Machina.java
index 8072288..3ddb7e1 100644
--- a/src/main/java/com/javaedge/concurrency/furure/jdk/Machina.java
+++ b/src/main/java/com/javaedge/concurrency/furure/jdk/Machina.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.furure.jdk;
+package main.java.com.javaedge.concurrency.furure.jdk;
import com.javaedge.concurrency.common.Nap;
diff --git a/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample1.java b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample1.java
index 4b13cba..8d83363 100755
--- a/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample1.java
+++ b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample1.java
@@ -1,7 +1,7 @@
-package com.javaedge.concurrency.immutable;
+package main.java.com.javaedge.concurrency.immutable;
import com.google.common.collect.Maps;
-import com.javaedge.concurrency.annoations.NotThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.Map;
diff --git a/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample2.java b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample2.java
index 40c725c..5ac8089 100755
--- a/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample2.java
+++ b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample2.java
@@ -1,7 +1,7 @@
-package com.javaedge.concurrency.immutable;
+package main.java.com.javaedge.concurrency.immutable;
import com.google.common.collect.Maps;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample3.java b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample3.java
index 94ff52e..9c88b70 100755
--- a/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample3.java
+++ b/src/main/java/com/javaedge/concurrency/immutable/ImmutableExample3.java
@@ -1,9 +1,9 @@
-package com.javaedge.concurrency.immutable;
+package main.java.com.javaedge.concurrency.immutable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
@ThreadSafe
public class ImmutableExample3 {
diff --git a/src/main/java/com/javaedge/concurrency/lock/Account.java b/src/main/java/com/javaedge/concurrency/lock/Account.java
index 976d48e..b45f34e 100644
--- a/src/main/java/com/javaedge/concurrency/lock/Account.java
+++ b/src/main/java/com/javaedge/concurrency/lock/Account.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.Random;
import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/com/javaedge/concurrency/lock/CacheDemo1.java b/src/main/java/com/javaedge/concurrency/lock/CacheDemo1.java
index d3b1df8..aa7cea3 100644
--- a/src/main/java/com/javaedge/concurrency/lock/CacheDemo1.java
+++ b/src/main/java/com/javaedge/concurrency/lock/CacheDemo1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/com/javaedge/concurrency/lock/CacheDemo2.java b/src/main/java/com/javaedge/concurrency/lock/CacheDemo2.java
index bef5b78..5685fb2 100644
--- a/src/main/java/com/javaedge/concurrency/lock/CacheDemo2.java
+++ b/src/main/java/com/javaedge/concurrency/lock/CacheDemo2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/com/javaedge/concurrency/lock/CacheDemo3.java b/src/main/java/com/javaedge/concurrency/lock/CacheDemo3.java
index cf96a54..fb3be1e 100644
--- a/src/main/java/com/javaedge/concurrency/lock/CacheDemo3.java
+++ b/src/main/java/com/javaedge/concurrency/lock/CacheDemo3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockDemo.java b/src/main/java/com/javaedge/concurrency/lock/LockDemo.java
index 37f7d51..c7ae504 100644
--- a/src/main/java/com/javaedge/concurrency/lock/LockDemo.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockDemo.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
/**
* 多线程 原子性
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockExample1.java b/src/main/java/com/javaedge/concurrency/lock/LockExample1.java
index 350e9d5..04994ee 100755
--- a/src/main/java/com/javaedge/concurrency/lock/LockExample1.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockExample1.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockExample2.java b/src/main/java/com/javaedge/concurrency/lock/LockExample2.java
index dcc19b3..af76c79 100755
--- a/src/main/java/com/javaedge/concurrency/lock/LockExample2.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockExample2.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockExample3.java b/src/main/java/com/javaedge/concurrency/lock/LockExample3.java
index 9cf342d..6afe438 100755
--- a/src/main/java/com/javaedge/concurrency/lock/LockExample3.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockExample3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockExample4.java b/src/main/java/com/javaedge/concurrency/lock/LockExample4.java
index b61e0b7..b43892f 100755
--- a/src/main/java/com/javaedge/concurrency/lock/LockExample4.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockExample4.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.concurrent.locks.StampedLock;
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockExample5.java b/src/main/java/com/javaedge/concurrency/lock/LockExample5.java
index 7886a43..201bc89 100755
--- a/src/main/java/com/javaedge/concurrency/lock/LockExample5.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockExample5.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.CountDownLatch;
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockExample6.java b/src/main/java/com/javaedge/concurrency/lock/LockExample6.java
index 50ef650..7afb645 100755
--- a/src/main/java/com/javaedge/concurrency/lock/LockExample6.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockExample6.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockTest.java b/src/main/java/com/javaedge/concurrency/lock/LockTest.java
index b40dde0..86021b5 100644
--- a/src/main/java/com/javaedge/concurrency/lock/LockTest.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockTest.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
diff --git a/src/main/java/com/javaedge/concurrency/lock/LockTest2.java b/src/main/java/com/javaedge/concurrency/lock/LockTest2.java
index e4975c7..ea86ce5 100644
--- a/src/main/java/com/javaedge/concurrency/lock/LockTest2.java
+++ b/src/main/java/com/javaedge/concurrency/lock/LockTest2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
diff --git a/src/main/java/com/javaedge/concurrency/lock/Point.java b/src/main/java/com/javaedge/concurrency/lock/Point.java
index 6238365..6b84f32 100644
--- a/src/main/java/com/javaedge/concurrency/lock/Point.java
+++ b/src/main/java/com/javaedge/concurrency/lock/Point.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.concurrent.locks.StampedLock;
diff --git a/src/main/java/com/javaedge/concurrency/lock/TicketLock.java b/src/main/java/com/javaedge/concurrency/lock/TicketLock.java
index 40973fc..5d12bb5 100644
--- a/src/main/java/com/javaedge/concurrency/lock/TicketLock.java
+++ b/src/main/java/com/javaedge/concurrency/lock/TicketLock.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.lock;
+package main.java.com.javaedge.concurrency.lock;
import java.util.concurrent.atomic.AtomicInteger;
diff --git a/src/main/java/com/javaedge/concurrency/mq/Message.java b/src/main/java/com/javaedge/concurrency/mq/Message.java
index 2914cc3..f38d170 100644
--- a/src/main/java/com/javaedge/concurrency/mq/Message.java
+++ b/src/main/java/com/javaedge/concurrency/mq/Message.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.mq;
+package main.java.com.javaedge.concurrency.mq;
import lombok.Data;
diff --git a/src/main/java/com/javaedge/concurrency/mq/MqController.java b/src/main/java/com/javaedge/concurrency/mq/MqController.java
index 645e1a1..0d53cf4 100644
--- a/src/main/java/com/javaedge/concurrency/mq/MqController.java
+++ b/src/main/java/com/javaedge/concurrency/mq/MqController.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.mq;
+package main.java.com.javaedge.concurrency.mq;
import com.javaedge.concurrency.mq.kafka.KafkaSender;
import com.javaedge.concurrency.mq.rabbitmq.RabbitMqClient;
diff --git a/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaReceiver.java b/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaReceiver.java
index 7ccef51..bf384b7 100644
--- a/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaReceiver.java
+++ b/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaReceiver.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.mq.kafka;
+package main.java.com.javaedge.concurrency.mq.kafka;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.ConsumerRecord;
diff --git a/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaSender.java b/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaSender.java
index aa1e6e6..ea6c3c8 100644
--- a/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaSender.java
+++ b/src/main/java/com/javaedge/concurrency/mq/kafka/KafkaSender.java
@@ -1,8 +1,8 @@
-package com.javaedge.concurrency.mq.kafka;
+package main.java.com.javaedge.concurrency.mq.kafka;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
-import com.javaedge.concurrency.mq.Message;
+import main.java.com.javaedge.concurrency.mq.Message;
import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.core.KafkaTemplate;
diff --git a/src/main/java/com/javaedge/concurrency/mq/kafka/TopicConstants.java b/src/main/java/com/javaedge/concurrency/mq/kafka/TopicConstants.java
index b9f8c1b..07255d6 100644
--- a/src/main/java/com/javaedge/concurrency/mq/kafka/TopicConstants.java
+++ b/src/main/java/com/javaedge/concurrency/mq/kafka/TopicConstants.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.mq.kafka;
+package main.java.com.javaedge.concurrency.mq.kafka;
/**
* @author JavaEdge
diff --git a/src/main/java/com/javaedge/concurrency/mq/rabbitmq/QueueConstants.java b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/QueueConstants.java
index 53c939b..9c43a3a 100644
--- a/src/main/java/com/javaedge/concurrency/mq/rabbitmq/QueueConstants.java
+++ b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/QueueConstants.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.mq.rabbitmq;
+package main.java.com.javaedge.concurrency.mq.rabbitmq;
/**
* @author JavaEdge
diff --git a/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqClient.java b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqClient.java
index 6c5061a..daef199 100644
--- a/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqClient.java
+++ b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqClient.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.mq.rabbitmq;
+package main.java.com.javaedge.concurrency.mq.rabbitmq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
diff --git a/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqConfig.java b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqConfig.java
index 5e8bd63..b239e62 100644
--- a/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqConfig.java
+++ b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqConfig.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.mq.rabbitmq;
+package main.java.com.javaedge.concurrency.mq.rabbitmq;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
diff --git a/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqServer.java b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqServer.java
index 8ef0ea3..aaba62f 100644
--- a/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqServer.java
+++ b/src/main/java/com/javaedge/concurrency/mq/rabbitmq/RabbitMqServer.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.mq.rabbitmq;
+package main.java.com.javaedge.concurrency.mq.rabbitmq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
diff --git a/src/main/java/com/javaedge/concurrency/publish/Escape.java b/src/main/java/com/javaedge/concurrency/publish/Escape.java
index 0020a48..27958cc 100755
--- a/src/main/java/com/javaedge/concurrency/publish/Escape.java
+++ b/src/main/java/com/javaedge/concurrency/publish/Escape.java
@@ -1,7 +1,7 @@
-package com.javaedge.concurrency.publish;
+package main.java.com.javaedge.concurrency.publish;
-import com.javaedge.concurrency.annoations.NotRecommend;
-import com.javaedge.concurrency.annoations.NotThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.NotRecommend;
+import main.java.com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
@Slf4j
diff --git a/src/main/java/com/javaedge/concurrency/publish/UnsafePublish.java b/src/main/java/com/javaedge/concurrency/publish/UnsafePublish.java
index 8337cc2..25cc4fe 100755
--- a/src/main/java/com/javaedge/concurrency/publish/UnsafePublish.java
+++ b/src/main/java/com/javaedge/concurrency/publish/UnsafePublish.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.publish;
+package main.java.com.javaedge.concurrency.publish;
-import com.javaedge.concurrency.annoations.NotThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
diff --git a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample1.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample1.java
index 0066c6a..0a3de11 100755
--- a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample1.java
+++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample1.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.singleton;
+package main.java.com.javaedge.concurrency.singleton;
-import com.javaedge.concurrency.annoations.NotThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.NotThreadSafe;
/**
* 懒汉模式
diff --git a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample2.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample2.java
index f29c9d2..79ac587 100755
--- a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample2.java
+++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample2.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.singleton;
+package main.java.com.javaedge.concurrency.singleton;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
/**
* 饿汉模式
diff --git a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample3.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample3.java
index 435949a..0290a10 100755
--- a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample3.java
+++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample3.java
@@ -1,7 +1,7 @@
-package com.javaedge.concurrency.singleton;
+package main.java.com.javaedge.concurrency.singleton;
-import com.javaedge.concurrency.annoations.NotRecommend;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.NotRecommend;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
/**
* 懒汉模式
diff --git a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample4.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample4.java
index 5e792cc..08414f6 100755
--- a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample4.java
+++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample4.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.singleton;
+package main.java.com.javaedge.concurrency.singleton;
-import com.javaedge.concurrency.annoations.NotThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.NotThreadSafe;
/**
* 懒汉模式 -》 双重同步锁单例模式
diff --git a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample5.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample5.java
index 243e589..ac34369 100755
--- a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample5.java
+++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample5.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.singleton;
+package main.java.com.javaedge.concurrency.singleton;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
/**
* 懒汉模式 -》 双重同步锁单例模式
diff --git a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample6.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample6.java
index 253ad56..8313698 100755
--- a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample6.java
+++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample6.java
@@ -1,6 +1,6 @@
-package com.javaedge.concurrency.singleton;
+package main.java.com.javaedge.concurrency.singleton;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
/**
* 饿汉模式
diff --git a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample7.java b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample7.java
index 6912c01..ffb6edb 100755
--- a/src/main/java/com/javaedge/concurrency/singleton/SingletonExample7.java
+++ b/src/main/java/com/javaedge/concurrency/singleton/SingletonExample7.java
@@ -1,7 +1,7 @@
-package com.javaedge.concurrency.singleton;
+package main.java.com.javaedge.concurrency.singleton;
-import com.javaedge.concurrency.annoations.Recommend;
-import com.javaedge.concurrency.annoations.ThreadSafe;
+import main.java.com.javaedge.concurrency.annoations.Recommend;
+import main.java.com.javaedge.concurrency.annoations.ThreadSafe;
/**
* 枚举模式:最安全
diff --git a/src/main/java/com/javaedge/concurrency/streams/ParallelPrime.java b/src/main/java/com/javaedge/concurrency/streams/ParallelPrime.java
index d2d8b3e..0b12d29 100644
--- a/src/main/java/com/javaedge/concurrency/streams/ParallelPrime.java
+++ b/src/main/java/com/javaedge/concurrency/streams/ParallelPrime.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.streams;
+package main.java.com.javaedge.concurrency.streams;
import com.javaedge.concurrency.common.Timer;
diff --git a/src/main/java/com/javaedge/concurrency/streams/Summing.java b/src/main/java/com/javaedge/concurrency/streams/Summing.java
index 53919bb..dd4b203 100644
--- a/src/main/java/com/javaedge/concurrency/streams/Summing.java
+++ b/src/main/java/com/javaedge/concurrency/streams/Summing.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.streams;
+package main.java.com.javaedge.concurrency.streams;
import com.javaedge.concurrency.common.Timer;
diff --git a/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo1.java b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo1.java
index 66d867b..ad2aa6d 100755
--- a/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo1.java
+++ b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.sync;
+package main.java.com.javaedge.concurrency.sync;
/**
* 锁 方法(静态/非静态),代码块(对象/类)
diff --git a/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo2.java b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo2.java
index fa31043..538bbd8 100755
--- a/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo2.java
+++ b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.sync;
+package main.java.com.javaedge.concurrency.sync;
// 可重入
public class ObjectSyncDemo2 {
diff --git a/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo3.java b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo3.java
index 2ab655a..7ddcd91 100755
--- a/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo3.java
+++ b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.sync;
+package main.java.com.javaedge.concurrency.sync;
// 锁粗化(运行时 jit 编译优化)
// jit 编译后的汇编内容, jitwatch可视化工具进行查看
diff --git a/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo4.java b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo4.java
index ff79b1b..82eb858 100755
--- a/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo4.java
+++ b/src/main/java/com/javaedge/concurrency/sync/ObjectSyncDemo4.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.sync;
+package main.java.com.javaedge.concurrency.sync;
// 锁消除(jit)
public class ObjectSyncDemo4 {
diff --git a/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample1.java b/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample1.java
index 3dc4a22..e1fea73 100755
--- a/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample1.java
+++ b/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.sync;
+package main.java.com.javaedge.concurrency.sync;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample2.java b/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample2.java
index e8a071a..936a33c 100755
--- a/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample2.java
+++ b/src/main/java/com/javaedge/concurrency/sync/SynchronizedExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.sync;
+package main.java.com.javaedge.concurrency.sync;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample1.java b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample1.java
index ca66748..c118ff9 100755
--- a/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample1.java
+++ b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.syncContainer;
+package main.java.com.javaedge.concurrency.syncContainer;
import com.google.common.collect.Lists;
import com.javaedge.concurrency.annoations.ThreadSafe;
diff --git a/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample2.java b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample2.java
index 8b1c8af..a60e053 100755
--- a/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample2.java
+++ b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.syncContainer;
+package main.java.com.javaedge.concurrency.syncContainer;
import com.google.common.collect.Sets;
import com.javaedge.concurrency.annoations.ThreadSafe;
diff --git a/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample3.java b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample3.java
index 131a401..32ec833 100755
--- a/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample3.java
+++ b/src/main/java/com/javaedge/concurrency/syncContainer/CollectionsExample3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.syncContainer;
+package main.java.com.javaedge.concurrency.syncContainer;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/syncContainer/HashTableExample.java b/src/main/java/com/javaedge/concurrency/syncContainer/HashTableExample.java
index 2530888..9bdcba0 100755
--- a/src/main/java/com/javaedge/concurrency/syncContainer/HashTableExample.java
+++ b/src/main/java/com/javaedge/concurrency/syncContainer/HashTableExample.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.syncContainer;
+package main.java.com.javaedge.concurrency.syncContainer;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample1.java b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample1.java
index ffcc69d..90344c9 100755
--- a/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample1.java
+++ b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.syncContainer;
+package main.java.com.javaedge.concurrency.syncContainer;
import com.javaedge.concurrency.annoations.ThreadSafe;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample2.java b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample2.java
index 0f03d13..0c6742e 100755
--- a/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample2.java
+++ b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.syncContainer;
+package main.java.com.javaedge.concurrency.syncContainer;
import com.javaedge.concurrency.annoations.NotThreadSafe;
diff --git a/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample3.java b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample3.java
index e621f52..f3994c4 100755
--- a/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample3.java
+++ b/src/main/java/com/javaedge/concurrency/syncContainer/VectorExample3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.syncContainer;
+package main.java.com.javaedge.concurrency.syncContainer;
import java.util.Iterator;
import java.util.Vector;
diff --git a/src/main/java/com/javaedge/concurrency/threadLocal/DirtyDataInThreadLocal.java b/src/main/java/com/javaedge/concurrency/threadLocal/DirtyDataInThreadLocal.java
index 5684880..ea21286 100644
--- a/src/main/java/com/javaedge/concurrency/threadLocal/DirtyDataInThreadLocal.java
+++ b/src/main/java/com/javaedge/concurrency/threadLocal/DirtyDataInThreadLocal.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadLocal;
+package main.java.com.javaedge.concurrency.threadLocal;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
diff --git a/src/main/java/com/javaedge/concurrency/threadLocal/RequestHolder.java b/src/main/java/com/javaedge/concurrency/threadLocal/RequestHolder.java
index 27753b8..7066bda 100755
--- a/src/main/java/com/javaedge/concurrency/threadLocal/RequestHolder.java
+++ b/src/main/java/com/javaedge/concurrency/threadLocal/RequestHolder.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadLocal;
+package main.java.com.javaedge.concurrency.threadLocal;
/**
*
diff --git a/src/main/java/com/javaedge/concurrency/threadLocal/ThreadLocalController.java b/src/main/java/com/javaedge/concurrency/threadLocal/ThreadLocalController.java
index 21f1417..7454d3c 100755
--- a/src/main/java/com/javaedge/concurrency/threadLocal/ThreadLocalController.java
+++ b/src/main/java/com/javaedge/concurrency/threadLocal/ThreadLocalController.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadLocal;
+package main.java.com.javaedge.concurrency.threadLocal;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/src/main/java/com/javaedge/concurrency/threadpermessage/EchoServer.java b/src/main/java/com/javaedge/concurrency/threadpermessage/EchoServer.java
index 78fd283..706a074 100644
--- a/src/main/java/com/javaedge/concurrency/threadpermessage/EchoServer.java
+++ b/src/main/java/com/javaedge/concurrency/threadpermessage/EchoServer.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadpermessage;
+package main.java.com.javaedge.concurrency.threadpermessage;
import java.io.IOException;
import java.io.UncheckedIOException;
diff --git a/src/main/java/com/javaedge/concurrency/threadpool/MyThreadPool.java b/src/main/java/com/javaedge/concurrency/threadpool/MyThreadPool.java
index f926c22..c691a43 100644
--- a/src/main/java/com/javaedge/concurrency/threadpool/MyThreadPool.java
+++ b/src/main/java/com/javaedge/concurrency/threadpool/MyThreadPool.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadpool;
+package main.java.com.javaedge.concurrency.threadpool;
import com.google.common.collect.Lists;
import lombok.SneakyThrows;
diff --git a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPool2.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPool2.java
index bb1167a..b11477c 100644
--- a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPool2.java
+++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPool2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadpool;
+package main.java.com.javaedge.concurrency.threadpool;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
diff --git a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample1.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample1.java
index b7d7033..1417146 100755
--- a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample1.java
+++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample1.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadpool;
+package main.java.com.javaedge.concurrency.threadpool;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample2.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample2.java
index 86ef931..9cd3809 100755
--- a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample2.java
+++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample2.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadpool;
+package main.java.com.javaedge.concurrency.threadpool;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample3.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample3.java
index 97fc465..7930097 100755
--- a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample3.java
+++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample3.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadpool;
+package main.java.com.javaedge.concurrency.threadpool;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample4.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample4.java
index 79744f0..d9fb5e9 100755
--- a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample4.java
+++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample4.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadpool;
+package main.java.com.javaedge.concurrency.threadpool;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample5.java b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample5.java
index 61725c9..a02ecc4 100644
--- a/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample5.java
+++ b/src/main/java/com/javaedge/concurrency/threadpool/ThreadPoolExample5.java
@@ -1,4 +1,4 @@
-package com.javaedge.concurrency.threadpool;
+package main.java.com.javaedge.concurrency.threadpool;
import org.testng.annotations.Test;
diff --git a/src/main/java/workerthread/v1/Channel.java b/src/main/java/workerthread/v1/Channel.java
index 74b105f..1b2a201 100644
--- a/src/main/java/workerthread/v1/Channel.java
+++ b/src/main/java/workerthread/v1/Channel.java
@@ -1,4 +1,4 @@
-package workerthread.v1;
+package main.java.workerthread.v1;
/**
* 传递工作请求及保存工作线程
diff --git a/src/main/java/workerthread/v1/ClientThread.java b/src/main/java/workerthread/v1/ClientThread.java
index 7319fda..0a777eb 100644
--- a/src/main/java/workerthread/v1/ClientThread.java
+++ b/src/main/java/workerthread/v1/ClientThread.java
@@ -1,4 +1,4 @@
-package workerthread.v1;
+package main.java.workerthread.v1;
import java.util.Random;
diff --git a/src/main/java/workerthread/v1/Main.java b/src/main/java/workerthread/v1/Main.java
index ee4b8ef..ddb2b83 100644
--- a/src/main/java/workerthread/v1/Main.java
+++ b/src/main/java/workerthread/v1/Main.java
@@ -1,4 +1,4 @@
-package workerthread.v1;
+package main.java.workerthread.v1;
/**
diff --git a/src/main/java/workerthread/v1/Request.java b/src/main/java/workerthread/v1/Request.java
index 105d4ae..fe85839 100644
--- a/src/main/java/workerthread/v1/Request.java
+++ b/src/main/java/workerthread/v1/Request.java
@@ -1,4 +1,4 @@
-package workerthread.v1;
+package main.java.workerthread.v1;
/**
* 工作请求
diff --git a/src/main/java/workerthread/v1/WorkerThread.java b/src/main/java/workerthread/v1/WorkerThread.java
index ca952e8..b6fd422 100644
--- a/src/main/java/workerthread/v1/WorkerThread.java
+++ b/src/main/java/workerthread/v1/WorkerThread.java
@@ -1,4 +1,4 @@
-package workerthread.v1;
+package main.java.workerthread.v1;
/**
* 工作线程
diff --git a/src/main/java/workerthread/v2/Channel.java b/src/main/java/workerthread/v2/Channel.java
index e8fe85f..e28e807 100644
--- a/src/main/java/workerthread/v2/Channel.java
+++ b/src/main/java/workerthread/v2/Channel.java
@@ -1,4 +1,4 @@
-package workerthread.v2;
+package main.java.workerthread.v2;
import workerthread.v1.Request;