Skip to content

Latest commit

 

History

History
83 lines (59 loc) · 3.63 KB

README.md

File metadata and controls

83 lines (59 loc) · 3.63 KB

Ptidej

License: GPL v2 Java Apache Maven

In the Ptidej Team (Pattern Trace Identification, Detection, and Enhancement in Java), we aim at developing theories, methods, and tools, to evaluate and improve the quality of object-oriented programs by promoting the use of idioms, design patterns, and architectural patterns. We want to formalise patterns, identify occurrences of patterns, and improve the identified occurrences. We also want to evaluate experimentally the impact of patterns on the quality of object-oriented programs. We develop various tools, most notably the Ptidej tool suite and Taupe, to evaluate and enhance the quality of object-oriented programs, promoting the use of patterns, at the language, design, and architectural levels.

The source code of the Ptidej Tool Suite is open and released under the GNU Public License v2.

What is it?

What do I need?

  • Java 21 and its JDK
  • Maven version 3.9.6+
  • Eclipse 2024-03 (4.31.0)

(You must use Eclipse 2024-03 to benefit from JDK 21 support and from the previews of JDK 22, no earlier or later version. Eclipse only allows previews for the latest JDK that it supports.)

How do I set it up?

To build the whole project, use:

mvn clean
mvn validate
mvn install

where:

  • mvn validate installs 3rd party JARs, like cfparse and db4o.
  • mvn install compiles, tests, packages, and installs all the sub-projects.

You could also use the following command to clean your local Maven repository: mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false.

After executing these commands, run:

java -jar "DeMIMA UI Viewer Standalone Swing/target/demima-ui-viewer-swing-1.0.0-jar-with-dependencies.jar"

This JAR launches a Swing GUI to interact with the Ptidej Tool Suite.

Who do I talk to?

Troubleshooting

Some sub-projects require the features previewed in JDK 21 (which may become available in JDK 22). Thus, tests and programs require adding the JVM argument --enable-preview to the command line. The whole projects and some sub-projects also require specific --add-exports and --add-opens arguments to the JVM, which are also already set in the corresponding pom.xml files. Therefore, the JVM arguments are:

--enable-preview --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED

Guidelines

  • Writing tests
  • Code review
  • Other guidelines

TODO

In some order of importance:

  • Fix tests in PADL Creator C++ (Eclipse)
  • Add tests to Creator MSE
  • Add tests to PADL Generator PageRank
  • Clean test outputs
    • Fix/hide any exceptions
  • Refactoring the code to make full use of Java 17
  • Remove compilation warnings
  • Fix JPG export from the menu Export SVG in ...Swing
  • Simplify and update "About" in ...Swing
  • Find an alternative to using the com.sun.tools.javac library, which is internal to the JDK.
  • Modularise Ptidej to benefit from the Java Platform Module System.