You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ivan Dubrov 88982d8f02 Update README.md 10 yıl önce
agent/src/main/java Renaming org.dcevm -> com.github.dcevm 10 yıl önce
dcevm/src Renaming org.dcevm -> com.github.dcevm 10 yıl önce
gradle/wrapper Extracting DCEVM patch & code into separate project 10 yıl önce
native Extracting DCEVM patch & code into separate project 10 yıl önce
patches Consolidating DCEVM patches 10 yıl önce
.gitignore Extracting DCEVM patch & code into separate project 10 yıl önce
README.md Update README.md 10 yıl önce
build.cmd Fixing build.cmd 10 yıl önce
build.gradle Adding support for 'full' patches 10 yıl önce
gradle.properties Adding support for 'full' patches 10 yıl önce
gradlew Extracting DCEVM patch & code into separate project 10 yıl önce
gradlew.bat Extracting DCEVM patch & code into separate project 10 yıl önce
settings.gradle Adding Java 7 patch, support running tests on Java 7 10 yıl önce

README.md

DCEVM

This project is a fork of original DCEVM project.

The purpose of the project is to maintain enhanced class redefinition functionality for OpenJDK HotSpot 7/8.

Supported versions

pathes/ contains patches for all supported versions. Each patch is named by concatenating prefix full or light with the OpenJDK HotSpot tag. full patches support full redefenition capabilities (including removal of superclasses, for example). light patches are easier to maintain, but they only support limited functionality (generally, additions to class hierarchies are fine, removals are not).

HotSpot tag is the name of the tag in the corresponding HotSpot Mercurial repository (Java 8/Java 7).

Building

General Requirements

You need the following software to build DCEVM:

  • Java 7 or later. If you intend to run tests, it should be one of the supported versions (see list of patches/)
  • C++ compiler toolchain (gcc). There is no strict version requirement except that it should be supported by HotSpot build scripts.

Compiling DCEVM

  • Configure version you want in gradle.properties.
  • Run ./gradlew patch to retrieve HotSpot sources and patch them.
  • Run ./gradlew compileFastdebug to build fastdebug version or ./gradlew compileProduct to build product version.
  • Compiled libraries are placed in hotspot/build/fastdebug or hotspot/build/product.
  • Installing DCEVM

  • Replace libjvm.so/jvm.dll/libjvm.dylib in the target JRE.

  • Run java -version, it should include Dynamic Code Evolution string.

Testing DCEVM

  • Configure version you want in gradle.properties.
  • Set JAVA_HOME to point to JDK you want to test against (should be compatible with the version you set in gradle.properties).
  • Run ./gradlew patch to retrieve HotSpot sources and patch them.
  • Run ./gradlew test to run tests.
  • Tests reports will be in dcevm/build/reports/tests/index.html

Known issues