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.
- The Ptidej Tool Suite
- https://wiki.ptidej.net/
- 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.)
To build the whole project, use:
mvn clean
mvn validate
mvn install
where:
mvn validate
installs 3rd party JARs, likecfparse
anddb4o
.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.
- Repo. admin: [email protected]
- Wiki documentation: https://wiki.ptidej.net
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
- Writing tests
- Code review
- Other guidelines
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.