diff --git a/modules/java/android_lib/.classpath b/modules/java/android_sdk/android_lib/.classpath similarity index 100% rename from modules/java/android_lib/.classpath rename to modules/java/android_sdk/android_lib/.classpath diff --git a/modules/java/android_lib/.project b/modules/java/android_sdk/android_lib/.project similarity index 100% rename from modules/java/android_lib/.project rename to modules/java/android_sdk/android_lib/.project diff --git a/modules/java/android_lib/.settings/org.eclipse.jdt.core.prefs b/modules/java/android_sdk/android_lib/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from modules/java/android_lib/.settings/org.eclipse.jdt.core.prefs rename to modules/java/android_sdk/android_lib/.settings/org.eclipse.jdt.core.prefs diff --git a/modules/java/android_lib/AndroidManifest.xml b/modules/java/android_sdk/android_lib/AndroidManifest.xml similarity index 100% rename from modules/java/android_lib/AndroidManifest.xml rename to modules/java/android_sdk/android_lib/AndroidManifest.xml diff --git a/modules/java/android_lib/jni/Android.mk b/modules/java/android_sdk/android_lib/jni/Android.mk similarity index 100% rename from modules/java/android_lib/jni/Android.mk rename to modules/java/android_sdk/android_lib/jni/Android.mk diff --git a/modules/java/android_lib/jni/Application.mk b/modules/java/android_sdk/android_lib/jni/Application.mk similarity index 100% rename from modules/java/android_lib/jni/Application.mk rename to modules/java/android_sdk/android_lib/jni/Application.mk diff --git a/modules/java/android_lib/lint.xml b/modules/java/android_sdk/android_lib/lint.xml similarity index 100% rename from modules/java/android_lib/lint.xml rename to modules/java/android_sdk/android_lib/lint.xml diff --git a/modules/java/android_lib/res/values/attrs.xml b/modules/java/android_sdk/android_lib/res/values/attrs.xml similarity index 100% rename from modules/java/android_lib/res/values/attrs.xml rename to modules/java/android_sdk/android_lib/res/values/attrs.xml diff --git a/modules/java/generator/src/java/android+Camera2Renderer.java b/modules/java/generator/android-21/java/org/opencv/android/Camera2Renderer.java similarity index 100% rename from modules/java/generator/src/java/android+Camera2Renderer.java rename to modules/java/generator/android-21/java/org/opencv/android/Camera2Renderer.java diff --git a/modules/java/generator/src/java/android+CameraGLRendererBase.java b/modules/java/generator/android-21/java/org/opencv/android/CameraGLRendererBase.java similarity index 100% rename from modules/java/generator/src/java/android+CameraGLRendererBase.java rename to modules/java/generator/android-21/java/org/opencv/android/CameraGLRendererBase.java diff --git a/modules/java/generator/src/java/android+CameraGLSurfaceView.java b/modules/java/generator/android-21/java/org/opencv/android/CameraGLSurfaceView.java similarity index 100% rename from modules/java/generator/src/java/android+CameraGLSurfaceView.java rename to modules/java/generator/android-21/java/org/opencv/android/CameraGLSurfaceView.java diff --git a/modules/java/generator/src/java/android+CameraRenderer.java b/modules/java/generator/android-21/java/org/opencv/android/CameraRenderer.java similarity index 100% rename from modules/java/generator/src/java/android+CameraRenderer.java rename to modules/java/generator/android-21/java/org/opencv/android/CameraRenderer.java diff --git a/modules/java/generator/src/java/android+AsyncServiceHelper.java b/modules/java/generator/android/java/org/opencv/android/AsyncServiceHelper.java similarity index 100% rename from modules/java/generator/src/java/android+AsyncServiceHelper.java rename to modules/java/generator/android/java/org/opencv/android/AsyncServiceHelper.java diff --git a/modules/java/generator/src/java/android+BaseLoaderCallback.java b/modules/java/generator/android/java/org/opencv/android/BaseLoaderCallback.java similarity index 100% rename from modules/java/generator/src/java/android+BaseLoaderCallback.java rename to modules/java/generator/android/java/org/opencv/android/BaseLoaderCallback.java diff --git a/modules/java/generator/src/java/android+CameraBridgeViewBase.java b/modules/java/generator/android/java/org/opencv/android/CameraBridgeViewBase.java similarity index 100% rename from modules/java/generator/src/java/android+CameraBridgeViewBase.java rename to modules/java/generator/android/java/org/opencv/android/CameraBridgeViewBase.java diff --git a/modules/java/generator/src/java/android+FpsMeter.java b/modules/java/generator/android/java/org/opencv/android/FpsMeter.java similarity index 100% rename from modules/java/generator/src/java/android+FpsMeter.java rename to modules/java/generator/android/java/org/opencv/android/FpsMeter.java diff --git a/modules/java/generator/src/java/android+InstallCallbackInterface.java b/modules/java/generator/android/java/org/opencv/android/InstallCallbackInterface.java similarity index 100% rename from modules/java/generator/src/java/android+InstallCallbackInterface.java rename to modules/java/generator/android/java/org/opencv/android/InstallCallbackInterface.java diff --git a/modules/java/generator/src/java/android+JavaCameraView.java b/modules/java/generator/android/java/org/opencv/android/JavaCameraView.java similarity index 100% rename from modules/java/generator/src/java/android+JavaCameraView.java rename to modules/java/generator/android/java/org/opencv/android/JavaCameraView.java diff --git a/modules/java/generator/src/java/android+LoaderCallbackInterface.java b/modules/java/generator/android/java/org/opencv/android/LoaderCallbackInterface.java similarity index 100% rename from modules/java/generator/src/java/android+LoaderCallbackInterface.java rename to modules/java/generator/android/java/org/opencv/android/LoaderCallbackInterface.java diff --git a/modules/java/generator/src/java/android+OpenCVLoader.java.in b/modules/java/generator/android/java/org/opencv/android/OpenCVLoader.java.in similarity index 100% rename from modules/java/generator/src/java/android+OpenCVLoader.java.in rename to modules/java/generator/android/java/org/opencv/android/OpenCVLoader.java.in diff --git a/modules/java/generator/src/java/android+StaticHelper.java b/modules/java/generator/android/java/org/opencv/android/StaticHelper.java similarity index 100% rename from modules/java/generator/src/java/android+StaticHelper.java rename to modules/java/generator/android/java/org/opencv/android/StaticHelper.java diff --git a/modules/java/generator/src/java/android+Utils.java b/modules/java/generator/android/java/org/opencv/android/Utils.java similarity index 100% rename from modules/java/generator/src/java/android+Utils.java rename to modules/java/generator/android/java/org/opencv/android/Utils.java diff --git a/modules/java/generator/src/java/engine+OpenCVEngineInterface.aidl b/modules/java/generator/android/java/org/opencv/engine/OpenCVEngineInterface.aidl similarity index 100% rename from modules/java/generator/src/java/engine+OpenCVEngineInterface.aidl rename to modules/java/generator/android/java/org/opencv/engine/OpenCVEngineInterface.aidl diff --git a/modules/java/include/opencv2/java.hpp b/modules/java/generator/src/cpp/opencv_java.hpp similarity index 100% rename from modules/java/include/opencv2/java.hpp rename to modules/java/generator/src/cpp/opencv_java.hpp diff --git a/modules/java/generator/src/java/osgi+OpenCVInterface.java b/modules/java/generator/src/java/org/opencv/osgi/OpenCVInterface.java similarity index 100% rename from modules/java/generator/src/java/osgi+OpenCVInterface.java rename to modules/java/generator/src/java/org/opencv/osgi/OpenCVInterface.java diff --git a/modules/java/generator/src/java/osgi+OpenCVNativeLoader.java.in b/modules/java/generator/src/java/org/opencv/osgi/OpenCVNativeLoader.java.in similarity index 100% rename from modules/java/generator/src/java/osgi+OpenCVNativeLoader.java.in rename to modules/java/generator/src/java/org/opencv/osgi/OpenCVNativeLoader.java.in diff --git a/modules/java/generator/src/java/utils+Converters.java b/modules/java/generator/src/java/org/opencv/utils/Converters.java similarity index 100% rename from modules/java/generator/src/java/utils+Converters.java rename to modules/java/generator/src/java/org/opencv/utils/Converters.java diff --git a/modules/java/build.xml.in b/modules/java/jar/build.xml.in similarity index 100% rename from modules/java/build.xml.in rename to modules/java/jar/build.xml.in diff --git a/modules/java/android_test/.classpath b/modules/java/test/android_test/.classpath similarity index 100% rename from modules/java/android_test/.classpath rename to modules/java/test/android_test/.classpath diff --git a/modules/java/android_test/.gitignore b/modules/java/test/android_test/.gitignore similarity index 100% rename from modules/java/android_test/.gitignore rename to modules/java/test/android_test/.gitignore diff --git a/modules/java/android_test/.project b/modules/java/test/android_test/.project similarity index 100% rename from modules/java/android_test/.project rename to modules/java/test/android_test/.project diff --git a/modules/java/android_test/.settings/org.eclipse.jdt.core.prefs b/modules/java/test/android_test/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from modules/java/android_test/.settings/org.eclipse.jdt.core.prefs rename to modules/java/test/android_test/.settings/org.eclipse.jdt.core.prefs diff --git a/modules/java/android_test/AndroidManifest.xml b/modules/java/test/android_test/AndroidManifest.xml similarity index 100% rename from modules/java/android_test/AndroidManifest.xml rename to modules/java/test/android_test/AndroidManifest.xml diff --git a/modules/java/android_test/CMakeLists.txt b/modules/java/test/android_test/CMakeLists.txt similarity index 100% rename from modules/java/android_test/CMakeLists.txt rename to modules/java/test/android_test/CMakeLists.txt diff --git a/modules/java/android_test/src/org/opencv/test/OpenCVTestCase.java b/modules/java/test/android_test/src/org/opencv/test/OpenCVTestCase.java similarity index 100% rename from modules/java/android_test/src/org/opencv/test/OpenCVTestCase.java rename to modules/java/test/android_test/src/org/opencv/test/OpenCVTestCase.java diff --git a/modules/java/android_test/src/org/opencv/test/OpenCVTestRunner.java b/modules/java/test/android_test/src/org/opencv/test/OpenCVTestRunner.java similarity index 100% rename from modules/java/android_test/src/org/opencv/test/OpenCVTestRunner.java rename to modules/java/test/android_test/src/org/opencv/test/OpenCVTestRunner.java diff --git a/modules/java/android_test/src/org/opencv/test/android/UtilsTest.java b/modules/java/test/android_test/src/org/opencv/test/android/UtilsTest.java similarity index 100% rename from modules/java/android_test/src/org/opencv/test/android/UtilsTest.java rename to modules/java/test/android_test/src/org/opencv/test/android/UtilsTest.java diff --git a/modules/java/common_test/res/drawable/chessboard.jpg b/modules/java/test/common_test/res/drawable/chessboard.jpg similarity index 100% rename from modules/java/common_test/res/drawable/chessboard.jpg rename to modules/java/test/common_test/res/drawable/chessboard.jpg diff --git a/modules/java/common_test/res/drawable/icon.png b/modules/java/test/common_test/res/drawable/icon.png similarity index 100% rename from modules/java/common_test/res/drawable/icon.png rename to modules/java/test/common_test/res/drawable/icon.png diff --git a/modules/java/common_test/res/drawable/lena.png b/modules/java/test/common_test/res/drawable/lena.png similarity index 100% rename from modules/java/common_test/res/drawable/lena.png rename to modules/java/test/common_test/res/drawable/lena.png diff --git a/modules/java/common_test/res/layout/main.xml b/modules/java/test/common_test/res/layout/main.xml similarity index 100% rename from modules/java/common_test/res/layout/main.xml rename to modules/java/test/common_test/res/layout/main.xml diff --git a/modules/java/common_test/res/raw/lbpcascade_frontalface.xml b/modules/java/test/common_test/res/raw/lbpcascade_frontalface.xml similarity index 100% rename from modules/java/common_test/res/raw/lbpcascade_frontalface.xml rename to modules/java/test/common_test/res/raw/lbpcascade_frontalface.xml diff --git a/modules/java/common_test/res/values/strings.xml b/modules/java/test/common_test/res/values/strings.xml similarity index 100% rename from modules/java/common_test/res/values/strings.xml rename to modules/java/test/common_test/res/values/strings.xml diff --git a/modules/java/common_test/src/org/opencv/test/utils/ConvertersTest.java b/modules/java/test/common_test/src/org/opencv/test/utils/ConvertersTest.java similarity index 100% rename from modules/java/common_test/src/org/opencv/test/utils/ConvertersTest.java rename to modules/java/test/common_test/src/org/opencv/test/utils/ConvertersTest.java diff --git a/modules/java/pure_test/CMakeLists.txt b/modules/java/test/pure_test/CMakeLists.txt similarity index 100% rename from modules/java/pure_test/CMakeLists.txt rename to modules/java/test/pure_test/CMakeLists.txt diff --git a/modules/java/pure_test/build.xml b/modules/java/test/pure_test/build.xml similarity index 100% rename from modules/java/pure_test/build.xml rename to modules/java/test/pure_test/build.xml diff --git a/modules/java/pure_test/lib/junit-4.11.jar b/modules/java/test/pure_test/lib/junit-4.11.jar similarity index 100% rename from modules/java/pure_test/lib/junit-4.11.jar rename to modules/java/test/pure_test/lib/junit-4.11.jar diff --git a/modules/java/pure_test/src/org/opencv/test/OpenCVTestCase.java b/modules/java/test/pure_test/src/org/opencv/test/OpenCVTestCase.java similarity index 100% rename from modules/java/pure_test/src/org/opencv/test/OpenCVTestCase.java rename to modules/java/test/pure_test/src/org/opencv/test/OpenCVTestCase.java diff --git a/modules/java/pure_test/src/org/opencv/test/OpenCVTestRunner.java b/modules/java/test/pure_test/src/org/opencv/test/OpenCVTestRunner.java similarity index 100% rename from modules/java/pure_test/src/org/opencv/test/OpenCVTestRunner.java rename to modules/java/test/pure_test/src/org/opencv/test/OpenCVTestRunner.java