Skip to content

6.0-0.pre.3

Pre-release
Pre-release
Compare
Choose a tag to compare
@judovana judovana released this 03 Jan 16:03
· 416 commits to master since this release

highlights

  • jdk 8-17 support
  • detailed classinfo - classloader and origin now can be printed
  • init of classes - classes can be initiated if needed
  • override management - overwritten classes can be restored
  • classpathless-compiler now should be feature-completed and by one click working with full setup
  • many gui improvements
  • cli remains future completed with gui
  • gui console (especially for compile errors), but now all what goes wrong is well visible
  • api to insert new fields and variables to overwritten classes. With code completion!
  • filesystem support follows runtime features
  • improved work on classes listing

full log:

Main Features
 * detailed class info
    classloader and origin of class is printed
*   init class - if class is not yet loaded (and thus invisible) by runtime, it can be forcibly initiated
        this is heavily used by runtime classapthless compiler to restore dependencies
        future work in 7.0 is to allow upload of utterly new classes
 * overrides management
    each class which is override by the new bytecode, can be restructured to the original state
        this works also for filesystem work in single gui session
 * runtime (classapth-less) compilation
    With host classes, do not be fatal on failed BYTE command, as it may be system class
    Cli-compile now should get all config  
    Passed --verbose flag to compilers
	the compielr now can get arguments
		eg.: source/target (more to do in this field in 7.0)
        the arguments are persistent, and reused by cli
    use new cplc dependencies
        it now depends on object web asmtools to scan for dependencies in byte code
    Before decompilation with inner classes, all inner classes are activated
    If CPLC is requesting class which do not exists, it tries init it before failing
        for runtime, in FS, it fall-back to host
    Fixed return of untransformed bytecode of overwritten classes
        As it was, our own return, contained original, untransformed byte[]
        Now it returns bytecode correctly in by-us transformed form
 * runtime compiler got api, which can allow to insert new variables
    all global, fields and instance's variables in both synchornised and unsynchronised way are supported
    the complexity goes fro int to any runnable with custom code
    there is code completion for this api, as it is quite complex
 * file system
    FSvm now can list locations (as in class details, just without class-loader)
    nested jars no longer have cache
        Each read now leads to unpack, and each write leads to pack
    Adds option to edit which file extensions are searched as inner jars
        Made nested jar extensions save to config file

Frontend
    quick compile and upload buttons
        by one click you can upload modified code back to running vm!
    many GUI improvements, like LaF, icons, borders...
        Replaced other MainFrameView text-based buttons with icon-based ones
    Improved tip for multi-select
    Made Classlist scroll to the top on reload when nothing is selected
    Added case sensitivity option to Source buffer search
    copypasting of class list - via rich popup menu
		Fixed being able to select multiple classes
	    Implemented right click class list interval selection
	    Copy of (detailed) classes to clipboard is now more customizable
	Added classloader string to class loading with info
    Implemented frontend for loading classes with info
    loading  of decompiled bytecode now have progressbar
    Majorly refactored SettingsView into 3 separate panels to ease future setting additions
    implemented global console
        Plugin compiler is now logging to gui and decompilers in verbose mode too
        In verbose mode, put whole trace to console
        Make globalconsole able to change verbose in runtime
    Extracted Undo and Redo buttons onto the toolbar common for both buffers
    Implemented frontend for CPLC settings
    Implemented frontend for saving FS VMs after JRD closes
    Added 'Remove VM' GUI buttons to remote and FS VM tabs, with backend support
    Made bytecode buffers detachable via a toolbar button
    improved search in both decompiled code and binary
        Added regex support to bytecode search
        Made binary buffer editable by pressing 'Space' or 'Enter'
        Implemented undo and redo functionalities of text fields
        Made both bytecodeSearch and hexSearch text blink red if it was not found
        Implemented bytecode search 'Previous' and 'Next' buttons
        The bytecode search field now uses the same JPanel design as hex search.
        Moved the search bar to the bottom to match hex search.
        Fixed bytecode search match-case discrepancy

Cli
    cli now can print details
    listjvms, listplugins, api now can use saveaas
    Added generation of manpage to image
    Cli now have access to agent api

Development
    Made jdk17 compilable
        on both development and runtime
    Restored source/release 1.8 comaptibility
       jdk11 ramins the latest runtime usable for host
       agnet can be injected to jdk8 and up
    Introduced & configured a Checkstyle-compliant Maven Formatter plugin
    errors from agent now are propagated with trace and messages
    Made agent location overwritable by property org.jrd.agent.jar
	added tests  
		Our tests, requires agent. And theyneed current agent,not somr random
        Building first agent
    Introduced automatic filling of agent path after installation
    Restructured, updated, corrected and expanded the welcome message.
    Added SpotBugs plugin to run when building, but not fail the build
        and fixed really many many issues
    Introduced checkstyle plugin
    Implemented rudimentary GitHub CI
    Corrected frontend package naming
    Renamed packages to use lowercase naming convention and to better correspond with their current use.
    Made decompilers automatically import on a fresh installation
    Implemented sorting of plugins by scope, name

    mvn clean install -Pimages -Plegacy
        so although built by 17, should be jdk8 compatible.