On Mon, Aug 8, 2016 at 5:59 AM, Waldek Kozaczuk <[email protected]>
wrote:

>  the java bootstrap code under runjava cannot depend on java.beans.* that is
>  not part of any of the compact profiles. More specifically runjava depends on
>  cglib and asm java libraries that manipulate bytecode and rely on java.beans.
>
> Therefore the changes that are part of this commit essentially allow to 
> bootstrap a JVM app in one of two modes:
>   - old one which provides classloader and JUL log manager isolation between 
> potential multiple apps and runjava code and apps that possibly targets 
> multi-apps on single JVM in OSv and requires full JRE
>   - new one which does NOT provide any classloader and JUL log manager 
> isolation and targets single main method apps on JVM in OSv and allows using 
> compact profile 1, 2 or 3
>
> Following changes are part of this commit:
>
> * Added io.osv.isolated and io.osv.nonisolated packages under java/runjava 
> and refactored ContextIsolator to create JvmApp, NonIsolatedJvmApp, 
> RunNonIsolatedJvmApp, solatedJvmApp, NonIsolatedJvmApp
>
> * Changed java.cc and makefile to support producing two executable - old 
> java.so that can run multiple JVM apps in isolated fashion (class loader, log 
> manager, etc) and new java_non_isolated.so that can run single JVM app 
> without any isolation of the former one
>
> * Changed java/jvm/java.cc to print which java class it uses to bootstrap - 
> isolated or nonisolated one; fixed Makefile to properly handle building of 
> java_non_isolated.so
>
> * Added java_non_isolated.so to modules/java-tests/usr.manifest
>
> * Added java_non_isolated test to test.py; modified testing.py to detect 
> failure to start *.so
>
> * Added unit tests to test running non-isolated JVM app to tests-isolates
>
> ---
>  .gitignore                                         |   1 +
>  Makefile                                           |   7 +-
>  java/jvm/java.cc                                   |  13 +-
>  java/runjava/src/main/java/io/osv/Context.java     |  86 ------
>  .../main/java/io/osv/ContextFailedException.java   |  13 -
>  .../src/main/java/io/osv/ContextIsolator.java      | 328 
> ---------------------
>  java/runjava/src/main/java/io/osv/JvmApp.java      | 187 ++++++++++++
>  .../src/main/java/io/osv/MultiJarLoader.java       | 121 --------
>  .../src/main/java/io/osv/OsvSystemClassLoader.java | 186 ------------
>  java/runjava/src/main/java/io/osv/RunJava.java     |  48 ---
>  .../src/main/java/io/osv/isolated/Context.java     |  86 ++++++
>  .../io/osv/isolated/ContextFailedException.java    |  13 +
>  .../main/java/io/osv/isolated/IsolatedJvmApp.java  | 159 ++++++++++
>  .../main/java/io/osv/isolated/MultiJarLoader.java  | 121 ++++++++
>  .../java/io/osv/isolated/OsvSystemClassLoader.java | 186 ++++++++++++
>  .../java/io/osv/isolated/RunIsolatedJvmApp.java    |  50 ++++
>  .../main/java/io/osv/jul/IsolatingLogManager.java  |   6 +-
>  .../main/java/io/osv/jul/LogManagerWrapper.java    |   2 +-
>  .../AppThreadTerminatedWithUncaughtException.java  |  13 +
>  .../java/io/osv/nonisolated/NonIsolatedJvmApp.java |  79 +++++
>  .../io/osv/nonisolated/RunNonIsolatedJvmApp.java   |  50 ++++
>  .../src/main/java/tests/LoggingProcess.java        |   4 +-
>  .../main/java/tests/NonIsolatedLoggingProcess.java |  31 ++
>  .../src/main/java/tests/PropertyReader.java        |   4 +-
>  .../src/main/java/tests/PropertySetter.java        |   4 +-
>  .../src/main/java/tests/StaticFieldSetter.java     |   4 +-
>  java/tests/src/main/java/io/osv/AllTests.java      |  21 --
>  .../java/io/osv/AllTestsThatTestIsolatedApp.java   |  21 ++
>  .../io/osv/AllTestsThatTestNonIsolatedApp.java     |  21 ++
>  .../main/java/io/osv/ClassLoaderIsolationTest.java |   5 +-
>  .../io/osv/ClassLoaderWithoutIsolationTest.java    |  88 ++++++
>  .../src/main/java/io/osv/LoggingIsolationTest.java |   4 +-
>  .../java/io/osv/LoggingWithoutIsolationTest.java   |  54 ++++
>  .../main/java/io/osv/PropertyIsolationTest.java    |   4 +-
>  .../src/main/java/io/osv/TestIsolateLaunching.java |  38 ---
>  java/tests/src/main/java/io/osv/TestLaunching.java |  55 ++++
>  modules/java-tests/usr.manifest                    |   9 +
>  scripts/test.py                                    |   6 +-
>  scripts/tests/testing.py                           |   1 +
>
>



>  39 files changed, 1268 insertions(+), 861 deletions(-)
>  delete mode 100644 java/runjava/src/main/java/io/osv/Context.java
>  delete mode 100644 
> java/runjava/src/main/java/io/osv/ContextFailedException.java
>  delete mode 100644 java/runjava/src/main/java/io/osv/ContextIsolator.java
>  create mode 100644 java/runjava/src/main/java/io/osv/JvmApp.java
>  delete mode 100644 java/runjava/src/main/java/io/osv/MultiJarLoader.java
>  delete mode 100644 
> java/runjava/src/main/java/io/osv/OsvSystemClassLoader.java
>  delete mode 100644 java/runjava/src/main/java/io/osv/RunJava.java
>  create mode 100644 java/runjava/src/main/java/io/osv/isolated/Context.java
>  create mode 100644 
> java/runjava/src/main/java/io/osv/isolated/ContextFailedException.java
>  create mode 100644 
> java/runjava/src/main/java/io/osv/isolated/IsolatedJvmApp.java
>  create mode 100644 
> java/runjava/src/main/java/io/osv/isolated/MultiJarLoader.java
>  create mode 100644 
> java/runjava/src/main/java/io/osv/isolated/OsvSystemClassLoader.java
>  create mode 100644 
> java/runjava/src/main/java/io/osv/isolated/RunIsolatedJvmApp.java
>  create mode 100644 
> java/runjava/src/main/java/io/osv/nonisolated/AppThreadTerminatedWithUncaughtException.java
>  create mode 100644 
> java/runjava/src/main/java/io/osv/nonisolated/NonIsolatedJvmApp.java
>  create mode 100644 
> java/runjava/src/main/java/io/osv/nonisolated/RunNonIsolatedJvmApp.java
>  create mode 100644 
> java/tests-isolates/src/main/java/tests/NonIsolatedLoggingProcess.java
>  delete mode 100644 java/tests/src/main/java/io/osv/AllTests.java
>  create mode 100644 
> java/tests/src/main/java/io/osv/AllTestsThatTestIsolatedApp.java
>  create mode 100644 
> java/tests/src/main/java/io/osv/AllTestsThatTestNonIsolatedApp.java
>  create mode 100644 
> java/tests/src/main/java/io/osv/ClassLoaderWithoutIsolationTest.java
>  create mode 100644 
> java/tests/src/main/java/io/osv/LoggingWithoutIsolationTest.java
>  delete mode 100644 java/tests/src/main/java/io/osv/TestIsolateLaunching.java
>  create mode 100644 java/tests/src/main/java/io/osv/TestLaunching.java
>  create mode 100644 modules/java-tests/usr.manifest
>
>
I didn't check all the files, but Context.java for example differs only in
one line. Other than that it was just moved. But the diff contains deletion
and creation, which makes it very hard to review. Does "git
format-patch --find-renames --find-copies" generate a better diff?

The patch fails to apply on osv.git master. Can you share a git URL
pointing to the branch?




diff --git a/.gitignore b/.gitignore
> index b76d37e..82f04df 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -15,6 +15,7 @@ cscope.po.out
>  *.pyc
>  *.swp
>  *.patch
> +*.iml
>
>  *.orig
>  *.rej
>
>
The .gitignore change doesn't belong to this patch. It should be a separate
patch, which is accepted or not independently from this change.

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to