By Chushu Gao gaochushu@googlemail.com
This guide based on the experience on Ecilpes 3.5 in WindowsXP and Fedora Eclipse released with FC11.
You will need an account to access Ptidej SVN repository (https://web.soccerlab.polymtl.ca/rptidej/ptidejlab/Software/Ptidej 5 Workspace/).
Check out Ptidej using the Team Set file (http://www.ptidej.net/material/development/Ptidej.psf). The early version has missing projects to my experience. I have exported a team set file using Eclipse 3.5 with subclipse plugin installed (as attached).
If there are build errors after checking out, it usually results from the missing project dependencies. Use the quick fix in Eclipse or manually add projects in the project's Java Build Path. Other errors may relate to the incorrect library setting, such as JUnit or JRE.
Even if there are projects that failed to build, the Ptidej UI Viewer Swing Standalone is still able to start. In Eclipse, run it as an applicaiton and see video for details to use this GUI tool(http://www.ptidej.net/downloads/ptidejdemo/PtidejDemo.avi).
Make sure the project 'Ptidej Solver Test' is successfully built. Some projects are not required though listed in the required projects section of Java Build Path of this project. My working set of projects added includes CPL, JChoco, PADL, PADL Analyses, PADL Creator ClassFile, PADL Design Motifs, Ptidej, Ptidej Solver 4.
The path to JAR or class files you want to analyse is hard-coded in the class DesignMotifIdentificationCaller(/Ptidej Solver Tests/src/ptidej/solver/helper/DesignMotifIdentificationCaller.java).
Modify code to fit your settings and run this class. The path to the result file is also hard-coded in this class.
I Compile the project to a runnable JAR with the Run Configuration in step 3.2 using Eclipse Export on Eclipse 3.5 in WinXP. If the tool seems work fine but just output 0 solution for all design motif. Try copying 'padl' folder from project PADL/bin to where your runable JAR is. This works for me.
Unfortunately I got error messages as below when running this JAR in Fedora where default JDK is OpenJDK1.6:
padl.FileAccessException at padl.util.repository.file.ClassFileRepository.storeFiles(ClassFileRepository.java:60) at padl.util.repository.file.ClassFileRepository.getMetaModelFiles(ClassFileRepository.java:115) at padl.util.repository.file.ClassFileRepository.getFiles(ClassFileRepository.java:134) at padl.util.repository.constituent.ConstituentRepository.<init>(ConstituentRepository.java:62) at padl.util.repository.constituent.ConstituentRepository.getInstance(ConstituentRepository.java:37) at ptidej.solver.helper.DesignMotifIdentificationCaller.analyseCodeLevelModelFromJAR(DesignMotifIdentificationCaller.java:920) at ptidej.solver.helper.DesignMotifIdentificationCaller.main(DesignMotifIdentificationCaller.java:100) Loading class files in: ./1_0/org.eclipse.jdt.core/jdtcore.jar Exception in thread "main" java.lang.NullPointerException at padl.creator.AbstractClassFileCreator.createElements(AbstractClassFileCreator.java:239) at padl.creator.AbstractClassFileCreator.create(AbstractClassFileCreator.java:224) at padl.kernel.impl.CodeLevelModel.create(CodeLevelModel.java:48) at ptidej.solver.helper.DesignMotifIdentificationCaller.analyseCodeLevelModelFromJAR(DesignMotifIdentificationCaller.java:919) at ptidej.solver.helper.DesignMotifIdentificationCaller.main(DesignMotifIdentificationCaller.java:100)
So you may consider to run this JAR in the java environment using SunJDK.
For big JAR or class files, set enough memory for jvm, I have tried -Xmx2048M and got out of memory error when solving UI part of jdt3.0.