jmove
How good is your software? jmove eases the understanding and valuation
of the design and architecture of complex software written in Java. It
provides dependency analysis, metrics, design rule checking and impact
analysis.
For details please see http://jmove.sourceforge.net/.
Java is a trademark of Sun Microsystems, Inc.
Distribution content
The binary distribution contains:
- README.md - this file
- LICENSE - GNU Lesser General Public License
- bin/ - scripts
- libs/ - a directory with JAR files
- jmove-${project.version}-jmover.jar - JAR with swing application jmover
- jmove-${project.version}-api.jar - JAR with jmove-api
- jmove-${project.version}-sources.jar - all jmove sources
License & Dependencies
This software is distributed under the GNU Lesser General Public
License. See the file LICENSE for details.
jmove uses the following open source products:
Their corresponding licenses are included in the MANIFEST.MF of the distributed JAR files.
Running jmover
java -jar libs/jmove-${project.version}-jmover.jar
or
respectively
Release notes
- 2.2.0
- jmove-api
- Ignore trivial cycles in TypeCycleMonitor
- Added information about member, local and anonymous type for Type
- Renamed "inner type" to "enclosed type" conform to Java class definition
- Fixed self-dependencies
- jmover
- Add type information to inspector
- Fixed empty type cycle diagrams
- 2.1.0
- jmover
- Adapted inspector
- Updated third party lib: Piccolo2D 3.0
- 2.0.1
- Fixed file separator issue
- 2.0.0
- jmove-api completely reworked
- Use of Generics
- Use to Java 8 language features
- Added support for enums
- ModelFactory replaced by JModelBuilder
- Removed source code analyzer
- Removed internal Byte-Code-Analyzer
- Tests restructured
- jmover
- Package view "dependencies of subpackages" added
- Extended Modelbrowser
- Internal classes are shown inside their declaring classes
- Optionally hide stubs
- Added empty parent packages as stubs
- Added close buttons for tabs
- Moved application "Which" to examples
- Update third party libs
- Removed outdated documentation
- Updated web site
- Switched to mvn
- 1.4
- Added #49 jmover: enable filtering modules when adding modules from web archives
- 1.3
- Added tool tip for package overview showing number of types in current package
- Fixed #61 AsmTypeLoader: RuntimeException: Defined dependency to '[Ljava.lang.String;'
- Fixed file filters for adding modules from web archives
- Fixed file filters for handling projects
- Fixed preferences dialog
- 1.2.1
- Optimized performance for reading web archives
- Fixed asm based analysis for parsing local variables
- 1.2
- Added #45 First support for Java 8 bytecode (Update asm 5.0.3)
- Added #48 Support for reading WAR files in jmover
- Fixed #60 Module display names should be meaningful short
- Fixed #58 Use newer asm library
- Fixed #57 Remove the distribution as installer version
- Fixed #56 Remove exporting xmi 1.2
- Fixed #55 Remove support for analyzing swallowed exceptions
- Fixed #54 Textfield in Searchwindow has no focus
- Fixed #53 batch file flaw for path with spaces
- 1.1
- Updated asm 1.5.3 and piccolo2d libraries
- Adapted to JRE 8
- Dependency views can be customized (add and remove types or packages)
- 1.0.1
- Fixed [ 1973428 ] Constructor name in XMI causes import in some tools to fails
- Updated documentation
- 1.0
- Fixed [ 1912205 ] Extend ModelFactory
- Fixed [ 1907726 ] Filter for loading modules
- Changed interface of org.jmove.junit.Assert
- Added more examples for junit tests
- Reworked existing examples
- Replaced application icon in installer
- Removed L&F Kunststoff
- Fixed [ 1811817 ] Coloring types
- Fixed [ 1598669 ] Make colors for dependencies configurable
- 0.11
- Fixed [ 1682913 ] Faulty default package dependencies in package overview
- JMover supports command line argument for loading a project file
- In Containment view a node will be more opaque the more lines
of source code resp. links the corresponding type has
- Completely rewrite source code analysis
- Added support for Java 5 source files
- Improved performance
- Fixed [ 1688289 ] Missing Dependencies in Source-Code-Analysis
- Fixed [ 1683769 ] Types are sometimes wrongly scoped to default package
- Fixed [ 1683787 ] Action 'project->save' always prompts for the file...
- Fixed [ 1685021 ] Exception loading project
- Fixed [ 1688287 ] Missing Dependencies in Byte-Code-Analysis
- Fixed [ 1683796 ] AddModuleAction looses location for file open
- Fixed [ 1683798 ] Add module action fails for equally named module files
- Fixed [ 1424757 ] Graph Node Text does not fit into the box
- Fixed [ 1434349 ] Package overview is confusing for large projects...
- Changes to package overview
- selecting an element will not scale in this element
- Types are not displayed anymore
- Local package names are used instead of fully qualified names
- In dependency coloring mode direct dependencies are colored darker than indirect dependencies.
- Tooltip is disabled
- Titles will be scaled on 'mouse over' events. This allows a better identification of package in small scales.
- Fixed [ 1683467 ] Package overview is not ordered
- Fixed [ 1598668 ] Coloring in containment view is incorrect
- Fixed [ 1598198 ] Members of types are not sorted in treebrowser
- Added new application icon
- 0.10
- Added support for saving and loading changeable User Views
- Added buttons for scaling graphic view to fit in visible region
- Added getDependentDetails() and getTargetDeteils() to Dependency and implemented appropiate subclasses
ModuleDependency and PackageDependency. This allows generic navigation to 'raw' dependencies of these
derived dependency types. This is applied by Assert.noDependenies().
- Updated jmover help
- Minor UI Improvements
- Added preferences (LookAndFeel, SaveProjectOnExit, LoadProjectOnStart).
- Fixed [ 1407952 ] Print graph creates only a small part
- Fixed [ 1623147 ] Type not in a package are not shown in model browser
- Fixed [ 1623148 ] Adding one file to a model fails...
- 0.9.9
- Added [ 1434363 ] Singleton Report
- Fixed [ 1580260 ] Incomplete userguide in distribution
- Fixed [ 1575496 ] Adding a list of modules fails, if one jar-file is corrupted
- Fixed [ 1528574 ] Source code analyzer fails at single line comment ending with EOF
- 0.9.8
- Added [ 1407108 ] Create binary distribution
- Added tutorial
- Added example ShowModuleDependencies
- Added LinkSet
- Index, Model and JModel use ThingSet where possible
- Added aspect Javadoc (created by source code analyzer)
- 0.9.7
- jmover use asm
- 0.9.6
- Added method information for byte code analyzer using asm
- Fixed [ 1434344 ] Inheritance view shows only direct inheritances
- Fixed [ 1434343 ] Package content is not sorted
- Fixed [ 1246307 ] pixel errors after starting
- Fixed memory display in AboutAction
- Added script xmiwriter.bat
- Moved ModelTest and ModelTestSetup to org.jmove.junit
- Deprecated JMoveTest
- Moved 'UpdateModuleDependencies' action to org.jmove.java.model
- Added ThingSet and ThingHashSet to org.jmove.core. These collections allow
checking of dependencies between sets of things filter operations etc..
- Added new load action 'LoadModulesFromDir'
- 0.9.5
- Fixed [ 1424778 ] Odd Inspector Behavior For Member Nodes
- Fixed [ 1425013 ] Replace Icons for fields and methods in tree view
- Fixed [ 1241172 ] inspector does not work properly
- Fixed [ 1246297 ] Exception while moving graphic representations of types
- Fixed [ 1424760 ] Doubleclick on member in tree view opens dependency graph
- Fixed [ 1241181 ] type dependency graph shows dependencies to members
- Added menu item for reloading project in jmover
- Added sorting to alarm view
- Added filtering to alarm view
- Added alarm report
- Added metric report
- Changed report design
- Added popup menuitem for dependency view for package
- Added popup menuitem for containment view for package
- Added popup menuitem for inheritance view for type
- 0.9.4
- Added popup menu for tree view (enabling source view for every type)
- Added Find and Find Again button in source view
- Added popup menu items 'Close all' and 'Close all but this' for tabbed pane
- 0.9.3
- A lot of new test cases to make sure that the different type loaders provide comparable results
- The handling of inner types changed.
- Inner types of any kind and their enclosing types depend on each other.
- The dependencies of an inner type to another type won't be propagated to it's enclosing type anymore.
- Overworked junit integration (introduced monitor)
- Introduced MaxBlockDepth for source code analysis
- 0.9.2
- fixed jmover start scripts
- fixed icon resource handling
- reduced filter text field
- 0.9.1
- fully integrated the intelligent model element search which now allows to search for
java types packages and modules by name fragment. -> Menu 'Go To|Model Element' (Ctrl G)
- Changed deployment: Introduced archive for jmover.
- Introduced test monitors for junit testcases.
- Deprecated existing junit support, will be remvoed in release 1.0.
- Ignore package java* in package overview.
- Ignore private or package inner classes in package overview.
- Ignore members in package overview.
- Remove model node in Inspector.
- 0.9
- New package dependency view.
- Handling views in tabbedpane.
- New TreeView on model for navigation added.
- New monitor for static non final fields.
- Member now additionally provides methods isSynthetic() and isDeprecated().
- RCMartinMetricMonitor ignores packages which contain only stub or unloaded types.
- LoadSystemTypes now adds the types from java.lang with LoadState.STUB to the Model.
- LoadState defines new static method isStub().
- 0.8.1
- Severity of swallowed exception is determined by nested catch count and existence of throw
- Detail view for swallowed exception with ability to save and to navigate
- 0.8
- Removed options -c,-s and added option -m for XMIWriter
- Integrate byte code and source code analysis
- Added aspect for swallowed exception
- New link filter 'LinkTypeFilter'
- New monitor for R.C.Martin distance metric
- New monitor for cyclic dependencies between modules
- New monitor for cyclic dependencies between packages
- New monitor for cyclic dependencies between types
- Added first implementation of model monitors and alarms
- Added alarm overview to jmover
- XMI-Export added to jmover
- XMI12Builder filters ambiguous dependencies in order to write valid xml
- 0.7
- Model metric org.jmove.java.metrics.ModelInfo
- Module metric org.jmove.java.metrics.ModuleInfo
- initial version of jmover
- support for reading jdk 1.4 source files (assert)
- fixed duplicate semicolon bug in source code analysis
- using newer javacc and adding it to distribution
- added code analysis specification
- minor optimization in model
- 0.6
- bugfixes for source code analysis
- 0.5
- added support for primitives
- 0.4
- added opportunity to export models in XMI
- massive refactorings
- 0.3
- bug fix release (fields of anonymous classes)
- apidoc extended
- 0.2
- Second experimental release
- massive redesign
- API access only
- improved byte code analysis
- new source code analyser
- some metrics
- some examples in package org.jmove.examples.java
- 0.1
- First, experimental release