Release 11.1.2.4300

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@7643 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
Torsten Kleiber
2012-03-12 19:57:28 +00:00
parent bd79c60d85
commit 2e8a2625b9
27 changed files with 716 additions and 656 deletions

View File

@@ -1,43 +1,50 @@
<project name="pmd-jdeveloper1111" default="compile" basedir="../">
<project name="pmd-jdeveloper" default="compile" basedir="../">
<!-- property section start -->
<property name="config" value="config/"/>
<property name="src" value="src/"/>
<property name="etc" value="etc/"/>
<property name="pmdjar" value="pmd-4.2.5.jar"/>
<!-- first to third number for the pmd plugin -->
<!-- fourth number JDeveloper Version 1:9.0.5-10.1.2, 2:10.1.3, 3:11.1.1 -->
<property name="pmdjar" value="pmd-4.3.jar"/>
<property name="jaxenjar" value="jaxen-1.1.1.jar"/>
<property name="asmjar" value="asm-3.2.jar"/>
<!-- first to third number for jdeveloper family -->
<!-- fourth number concat of pmd version (e.g. 4.2.6) and build number (e.g. 0): 4260-->
<!-- fifth number minor version number for the JDeveloper Plugin -->
<property name="pluginversion" value="4.2.5.3.0"/>
<property name="pluginversion" value="11.1.1.4300"/>
<property name="mainclass" value="net.sourceforge.pmd.jdeveloper"/>
<property name="jdeveloper.dir" value="C:/Oracle/11gJD111110/jdeveloper"/>
<!-- TODO Set oracle.commons dynamic -->
<property name="oracle.commons" value="C:\Oracle\11gJD11116\oracle_common\"/>
<property name="jdeveloper.dir" value="${oracle.home}"/>
<property name="jdeveloper.ext.subdir" value="jdev/extensions"/>
<property name="release.dir"
value="C:/Documents and Settings/Torsten/My Documents/Eigene Programme/Java/PMD/releases"/>
<property name="releases.dir" value="../releases"/>
<property name="uploadbundle.scp.user" value="***"/>
<property name="uploadbundle.scp.pwd" value="***"/>
<property name="upload.ftp.pwd" value=""/>
<!-- builded properties -->
<property name="release.dirname" value="${mainclass}.${pluginversion}"/>
<property name="release.jarname" value="${release.dirname}.jar"/>
<property name="release.zipname"
value="${ant.project.name}-bin-${pluginversion}.zip"/>
<property name="release.src.zipname"
value="${ant.project.name}-src-${pluginversion}.zip"/>
<property name="bundle.filename"
value="${ant.project.name}-bundle-${pluginversion}.zip"/>
<property name="jdeveloper.install.dir"
value="${jdeveloper.dir}/${jdeveloper.ext.subdir}"/>
<property name="jdeveloper.install.dir" value="${jdeveloper.dir}${jdeveloper.ext.subdir}"/>
<property name="release.jarname" value="${mainclass}.jar"/>
<property name="release.zipname" value="${ant.project.name}-bin-${pluginversion}.zip"/>
<property name="release.src.zipname" value="${ant.project.name}-src-${pluginversion}.zip"/>
<property name="deploy.dirname" value="${jdeveloper.install.dir}/${mainclass}"/>
<property name="deploy.dirname.lib" value="${deploy.dirname}/lib"/>
<property name="deploy.dirname.conf" value="${deploy.dirname}/conf"/>
<property name="release.dirname" value="tmp"/>
<property name="release.dirname.lib" value="${release.dirname}/lib"/>
<property name="release.dirname.conf" value="${release.dirname}/conf"/>
<property name="release.jarname" value="${mainclass}.jar"/>
<property name="bundle.dirname" value="bundle"/>
<property name="bundle.dirname.lib" value="${bundle.dirname}/${mainclass}/lib"/>
<property name="bundle.dirname.conf" value="${bundle.dirname}/${mainclass}/conf"/>
<property name="bundle.filename" value="${ant.project.name}-bundle-${pluginversion}.zip"/>
<!-- property section end -->
<path id="project.class.path">
<pathelement location="lib/${pmdjar}"/>
<pathelement location="${jdeveloper.dir}/ide/extensions/oracle.ide.ceditor.jar"/>
<pathelement location="${jdeveloper.dir}/ide/extensions/oracle.ide.jar"/>
<pathelement location="${jdeveloper.dir}/ide/lib/idert.jar"/>
<pathelement location="${jdeveloper.dir}/ide/lib/javatools.jar"/>
<pathelement location="${jdeveloper.dir}/jdev/extensions/oracle.javacore.jar"/>
<pathelement location="${jdeveloper.dir}/jdev/lib/javacore.jar"/>
<pathelement location="${jdeveloper.dir}/modules/oracle.javatools_11.1.1/javatools-nodeps.jar"/>
<pathelement location="build"/>
<pathelement location="${jdeveloper.dir}ide/extensions/oracle.ide.ceditor.jar"/>
<pathelement location="${jdeveloper.dir}ide/extensions/oracle.ide.jar"/>
<pathelement location="${jdeveloper.dir}ide/lib/idert.jar"/>
<pathelement location="${jdeveloper.dir}ide/lib/javatools.jar"/>
<pathelement location="${jdeveloper.dir}jdev/extensions/oracle.javacore.jar"/>
<pathelement location="${jdeveloper.dir}jdev/lib/javacore.jar"/>
<pathelement location="${oracle.commons}modules/oracle.javatools_11.1.1/javatools-nodeps.jar"/>
</path>
<target name="delete">
<delete file="lib/${release.jarname}"/>
@@ -45,7 +52,7 @@
<delete dir="classes"/>
</target>
<target name="deletedeployed">
<delete dir="${jdeveloper.install.dir}/${release.dirname}"/>
<delete dir="${deploy.dirname}"/>
<delete file="${jdeveloper.install.dir}/${release.jarname}"/>
</target>
<target name="compile">
@@ -58,80 +65,71 @@
<target name="jar" depends="compile">
<delete dir="build/META-INF/"/>
<mkdir dir="build/META-INF"/>
<copy file="etc/extension.xml" todir="build/META-INF/"/>
<copy file="src/META-INF/extension.xml" todir="build/META-INF/"/>
<patternset id="copy.patterns">
<include name="**/***/*.png"/>
</patternset>
<copy todir="build/">
<fileset dir="src">
<patternset refid="copy.patterns"/>
</fileset>
</copy>
<jar destfile="lib/${release.jarname}">
<metainf dir="build" includes="extension.xml"/>
<fileset dir="build" excludes="**/*.di,**/*.i"/>
</jar>
</target>
<target name="deploy" depends="delete,deletedeployed,jar">
<mkdir dir="${jdeveloper.install.dir}"/>
<copy file="lib/${release.jarname}" todir="${jdeveloper.install.dir}"/>
<copy file="lib/${pmdjar}"
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/lib"/>
<copy file="lib/jaxen-1.1.1.jar"
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/lib"/>
<copy file="lib/asm-3.1.jar"
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/lib"/>
<copy file="conf/pmd.plugin.properties"
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/conf"/>
<copy file="conf/pmd.rule.properties"
todir="${jdeveloper.install.dir}/${mainclass}.${pluginversion}/conf"/>
<copy file="lib/${pmdjar}" todir="${deploy.dirname.lib}"/>
<copy file="lib/${jaxenjar}" todir="${deploy.dirname.lib}"/>
<copy file="lib/${asmjar}" todir="${deploy.dirname.lib}"/>
<copy file="conf/pmd.plugin.properties" todir="${deploy.dirname.conf}"/>
<copy file="conf/pmd.rule.properties" todir="${deploy.dirname.conf}"/>
</target>
<target name="release" depends="clean,jar">
<mkdir dir="tmp/${release.dirname}/lib"/>
<copy file="lib/${release.jarname}" todir="tmp/"/>
<copy file="lib/${pmdjar}" todir="tmp/${release.dirname}/lib"/>
<copy file="lib/jaxen-1.1.1.jar" todir="tmp/${release.dirname}/lib"/>
<copy file="lib/asm-3.1.jar" todir="tmp/${release.dirname}/lib"/>
<copy file="conf/pmd.plugin.properties" todir="tmp/${release.dirname}/conf"/>
<copy file="conf/pmd.rule.properties" todir="tmp/${release.dirname}/conf"/>
<zip destfile="${release.zipname}" basedir="tmp/"/>
<move file="${release.zipname}" todir="${release.dir}"/>
<mkdir dir="${release.dirname.lib}"/>
<copy file="lib/${release.jarname}" todir="${release.dirname}/"/>
<copy file="lib/${pmdjar}" todir="${release.dirname.lib}"/>
<copy file="lib/${jaxenjar}" todir="${release.dirname.lib}"/>
<copy file="lib/${asmjar}" todir="${release.dirname.lib}"/>
<copy file="conf/pmd.plugin.properties" todir="${release.dirname.conf}"/>
<copy file="conf/pmd.rule.properties" todir="${release.dirname.conf}"/>
<zip destfile="${release.zipname}" basedir="${release.dirname}/"/>
<move file="${release.zipname}" todir="${releases.dir}"/>
<delete dir="tmp"/>
</target>
<target name="releasesrc" depends="delete">
<zip destfile="${release.src.zipname}" basedir="."/>
<move file="${release.src.zipname}" todir="${release.dir}"/>
<move file="${release.src.zipname}" todir="${releases.dir}"/>
</target>
<target name="clean" depends="delete,compile"></target>
<target name="tomserver" depends="release">
<echo message="Uploading zip file"></echo>
<exec executable="scp" os="Linux">
<arg line=" ${release.dir}/${release.zipname} tom@infoether.com:public_html/"/>
<arg line=" ${releases.dir}/${release.zipname} tom@infoether.com:public_html/"/>
</exec>
</target>
<target name="bundle" depends="clean,jar">
<delete dir="update-center-bundle/"/>
<mkdir dir="update-center-bundle/META-INF"/>
<copy file="etc/bundle.xml" todir="update-center-bundle/META-INF/"/>
<copy file="etc/center.xml" todir="update-center-bundle/"/>
<copy file="lib/${release.jarname}" todir="update-center-bundle/"/>
<copy file="lib/${pmdjar}"
todir="update-center-bundle/${mainclass}.${pluginversion}/lib/"/>
<copy file="lib/jaxen-1.1.1.jar"
todir="update-center-bundle/${mainclass}.${pluginversion}/lib/"/>
<copy file="lib/asm-3.1.jar"
todir="update-center-bundle/${mainclass}.${pluginversion}/lib/"/>
<copy file="conf/pmd.plugin.properties"
todir="update-center-bundle/${mainclass}.${pluginversion}/conf"/>
<copy file="conf/pmd.rule.properties"
todir="update-center-bundle/${mainclass}.${pluginversion}/conf"/>
<zip destfile="update-center-bundle/${bundle.filename}"
basedir="update-center-bundle">
<mkdir dir="${releases.dir}"/>
<mkdir dir="${bundle.dirname}/META-INF"/>
<copy file="etc/bundle.xml" todir="${bundle.dirname}/META-INF/"/>
<copy file="etc/center.xml" todir="${bundle.dirname}/"/>
<copy file="lib/${release.jarname}" todir="${bundle.dirname}/"/>
<copy file="lib/${pmdjar}" todir="${bundle.dirname.lib}/"/>
<copy file="lib/${jaxenjar}" todir="${bundle.dirname.lib}/"/>
<copy file="lib/${asmjar}" todir="${bundle.dirname.lib}/"/>
<copy file="conf/pmd.plugin.properties" todir="${bundle.dirname.conf}"/>
<copy file="conf/pmd.rule.properties" todir="${bundle.dirname.conf}"/>
<zip destfile="${releases.dir}/${bundle.filename}" basedir="${bundle.dirname}">
<exclude name="center.xml"/>
</zip>
<delete>
<fileset dir="update-center-bundle" includes="*.jar"/>
</delete>
<delete dir="update-center-bundle/${mainclass}.${pluginversion}"/>
<delete dir="update-center-bundle/lib"/>
<delete dir="update-center-bundle/META-INF"/>
<move file="update-center-bundle/${bundle.filename}" todir="${release.dir}"/>
<delete dir="${bundle.dirname}/"/>
</target>
<target name="upload" depends="release,releasesrc,bundle">
<ftp server="upload.sourceforge.net" userid="anonymous"
password="${upload.ftp.pwd}" remotedir="incoming" binary="true"
passive="true">
<ftp server="upload.sourceforge.net" userid="anonymous" password="${upload.ftp.pwd}" remotedir="incoming"
binary="true" passive="true">
<fileset dir="${release.dir}" includes="${ant.project.name}*${pluginversion}.zip"/>
</ftp>
</target>
@@ -142,20 +140,3 @@
password="${uploadbundle.scp.pwd}" trust="true"></scp>
</target>
</project>

View File

@@ -2,12 +2,12 @@
<update-bundle version="1.0" xmlns="http://xmlns.oracle.com/jdeveloper/updatebundle">
<update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update">
<name>PMD JDeveloper Extension</name>
<version>4.2.5.3.0</version>
<version>11.1.1.4300</version>
<author>Torsten Kleiber</author>
<author-url>http://pmd.sourceforge.net/</author-url>
<description>Provides integrated support for PMD 4.2.5 in JDeveloper 11g.</description>
<description>Provides integrated support for PMD 4.3 in JDeveloper 11g Release 1.</description>
<requirements>
<requires-extension id="oracle.jdeveloper" minVersion="11.1.1.0.31.51.56"
<requires-extension id="oracle.jdeveloper" minVersion="11.1.1.6.38.61.92"
maxVersion="11.1.1.99"/>
</requirements>
</update>

View File

@@ -2,24 +2,35 @@
<updates version="1.0" xmlns="http://xmlns.oracle.com/jdeveloper/updatecenter">
<update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update">
<name>PMD JDeveloper Extension</name>
<version>4.2.5.2.0</version>
<version>10.1.3.4300</version>
<author>Torsten Kleiber</author>
<author-url>http://pmd.sourceforge.net</author-url>
<description>Provides integrated support for PMD 4.2.5 in JDeveloper 10.1.3 - 11g Technology Preview 1.</description>
<bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper1013-bundle-4.2.5.2.0.zip</bundle-url>
<description>Provides integrated support for PMD 4.3 in JDeveloper 10.1.3 - 11g Technology Preview 1.</description>
<bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper-bundle-10.1.3.4300.zip</bundle-url>
<requirements>
<requires-extension id="oracle.jdeveloper" minVersion="10.1.3.00" maxVersion="11.1.1.0.20.45" />
</requirements>
</update>
<update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update">
<name>PMD JDeveloper Extension</name>
<version>4.2.5.3.0</version>
<version>11.1.1.4300</version>
<author>Torsten Kleiber</author>
<author-url>http://pmd.sourceforge.net</author-url>
<description>Provides integrated support for PMD 4.2.5 in JDeveloper 11g.</description>
<bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper1111-bundle-4.2.5.3.0.zip</bundle-url>
<description>Provides integrated support for PMD 4.3 in JDeveloper 11g Release 1.</description>
<bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper-bundle-11.1.1.4300.zip</bundle-url>
<requirements>
<requires-extension id="oracle.jdeveloper" minVersion="11.1.1.0.31.51.56" maxVersion="11.1.1.99" />
<requires-extension id="oracle.jdeveloper" minVersion="11.1.1.6.38.61.92" maxVersion="11.1.1.99" />
</requirements>
</update>
<update id="net.sourceforge.pmd.jdeveloper" xmlns="http://xmlns.oracle.com/jdeveloper/update">
<name>PMD JDeveloper Extension</name>
<version>11.1.2.4300</version>
<author>Torsten Kleiber</author>
<author-url>http://pmd.sourceforge.net</author-url>
<description>Provides integrated support for PMD 4.3 in JDeveloper 11g Release 2.</description>
<bundle-url>http://downloads.sourceforge.net/pmd/pmd-jdeveloper-bundle-11.1.2.4300.zip</bundle-url>
<requirements>
<requires-extension id="oracle.jdeveloper" minVersion="11.1.2.0.38.60.17" maxVersion="11.1.2.99" />
</requirements>
</update>
</updates>

View File

@@ -1,3 +1,6 @@
March 9, 2012 - 4.3:
Updated PMD version to 4.3 for 10.1.3 to 11.1.2
October 14, 2009 - 4.2.5:
Updated PMD version to 4.2.5 for 10.1.3 to 11.1.1
Fixed bug 2543957

View File

@@ -1,28 +0,0 @@
<?xml version = '1.0' encoding = 'UTF-8'?>
<extension xmlns="http://jcp.org/jsr/198/extension-manifest"
id="net.sourceforge.pmd.jdeveloper" version="4.2.5.3.0"
esdk-version="1.0">
<name>PMD JDeveloper Extension</name>
<owner>Torsten Kleiber</owner>
<dependencies>
<import>oracle.jdeveloper</import>
<import>oracle.javacore</import>
<import>oracle.ide.ceditor</import>
</dependencies>
<classpaths>
<classpath>net.sourceforge.pmd.jdeveloper.4.2.5.3.0/lib/pmd-4.2.5.jar</classpath>
<classpath>net.sourceforge.pmd.jdeveloper.4.2.5.3.0/lib/jaxen-1.1.1.jar</classpath>
<classpath>net.sourceforge.pmd.jdeveloper.4.2.5.3.0/lib/asm-3.1.jar</classpath>
</classpaths>
<hooks>
<jdeveloper-hook xmlns="http://xmlns.oracle.com/jdeveloper/1013/extension">
<addins>
<addin>net.sourceforge.pmd.jdeveloper.Plugin</addin>
</addins>
</jdeveloper-hook>
<feature-hook>
<description>Provides integrated support for PMD 4.2.5 in JDeveloper 11g.</description>
<optional>false</optional>
</feature-hook>
</hooks>
</extension>

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -77,7 +77,7 @@
<value n="dvt-graph-visible-to-rendered" v="true"/>
<hash n="extensiondtProperties">
<value n="extensiondt.manageclasspath" v="true"/>
<url n="extensiondt.manifest" path="etc/extension.xml"/>
<url n="extensiondt.manifest" path="src/META-INF/extension.xml"/>
</hash>
<hash n="oracle.adfdtinternal.model.ide.settings.ADFMSettings">
<hash n="adfmContentSet">
@@ -135,6 +135,8 @@
</hash>
<hash n="oracle.jdeveloper.compiler.OjcConfiguration">
<value n="internalEncoding" v="Cp1252"/>
<value n="source" v="Default"/>
<value n="target" v="Default"/>
</hash>
<hash n="oracle.jdeveloper.deploy.dt.DeploymentProfiles">
<hash n="profileDefinitions">
@@ -287,13 +289,13 @@
<value n="custom" v="false"/>
<value n="javaOptions" v=""/>
<value n="name" v="Default"/>
<url n="targetURL" path="../../../../../../../Oracle/11gJD111110/jdeveloper/jdev/bin/jdev.conf"/>
<url n="targetURL" protocol="file" path="/Oracle/11gJD111110/jdeveloper/jdev/bin/jdev.conf"/>
</hash>
<hash n="Verbose">
<value n="custom" v="false"/>
<value n="javaOptions" v="-verbose:class"/>
<value n="name" v="Verbose"/>
<url n="targetURL" path="../../../../../../../Oracle/11gJD111110/jdeveloper/jdev/bin/jdev.conf"/>
<url n="targetURL" protocol="file" path="/Oracle/11gJD111110/jdeveloper/jdev/bin/jdev.conf"/>
</hash>
</hash>
<list n="runConfigurationList">
@@ -304,22 +306,26 @@
<hash n="oracle.jdevimpl.config.JProjectLibraries">
<list n="exportedReferences">
<hash>
<url n="id" path="../../../../../Application Data/JDeveloper/system11.1.1.0.22.49.49/o.jdeveloper/pmd-4.2.5.library"/>
<value n="isJDK" v="false"/>
</hash>
<hash>
<url n="id" path="../../../../../Application Data/JDeveloper/system11.1.1.1.33.54.07/o.jdeveloper/Extension SDK Documentation.library"/>
<value n="id" v="Pmd-4.3.jar"/>
<value n="isJDK" v="false"/>
</hash>
</list>
<hash n="internalDefinitions"/>
<hash n="internalDefinitions">
<list n="libraryDefinitions">
<hash>
<list n="classPath">
<url path="lib/pmd-4.3.jar" jar-entry=""/>
</list>
<value n="deployedByDefault" v="true"/>
<value n="description" v="Pmd-4.3.jar"/>
<value n="id" v="Pmd-4.3.jar"/>
<value n="locked" v="true"/>
</hash>
</list>
</hash>
<list n="libraryReferences">
<hash>
<url n="id" path="../../../../../Application Data/JDeveloper/system11.1.1.0.22.49.49/o.jdeveloper/pmd-4.2.5.library"/>
<value n="isJDK" v="false"/>
</hash>
<hash>
<url n="id" path="../../../../../Application Data/JDeveloper/system11.1.1.1.33.54.07/o.jdeveloper/Extension SDK Documentation.library"/>
<value n="id" v="Pmd-4.3.jar"/>
<value n="isJDK" v="false"/>
</hash>
</list>
@@ -358,4 +364,7 @@
</list>
</hash>
</hash>
<hash n="ResourceBundleOptions">
<list n="RegisteredResourceBundles"/>
</hash>
</jpr:project>

View File

@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8" ?>
<extension xmlns="http://jcp.org/jsr/198/extension-manifest"
id="net.sourceforge.pmd.jdeveloper" version="11.1.1"
esdk-version="1.0">
<name>PMD JDeveloper Extension</name>
<owner>Torsten Kleiber</owner>
<dependencies>
<import>oracle.ide</import>
<import>oracle.ide.ceditor</import>
<import>oracle.jdeveloper</import>
<import>oracle.javacore</import>
</dependencies>
<classpaths>
<classpath>net.sourceforge.pmd.jdeveloper/lib/asm-3.2.jar</classpath>
<classpath>net.sourceforge.pmd.jdeveloper/lib/jaxen-1.1.1.jar</classpath>
<classpath>net.sourceforge.pmd.jdeveloper/lib/pmd-4.3.jar</classpath>
<!--classpath>../../ide/extensions/oracle.ide.ceditor.jar</classpath-->
<!--classpath>../../ide/extensions/oracle.ide.jar</classpath-->
<classpath>../../ide/lib/idert.jar</classpath>
<classpath>../../ide/lib/javatools.jar</classpath>
<!--classpath>../../jdev/extensions/oracle.javacore.jar</classpath-->
<classpath>../../../oracle_common/modules/oracle.javatools_11.1.1/javatools-nodeps.jar</classpath>
</classpaths>
<hooks>
<jdeveloper-hook xmlns="http://xmlns.oracle.com/jdeveloper/1013/extension">
<addins>
<addin>net.sourceforge.pmd.jdeveloper.PmdAddin</addin>
</addins>
<actions>
<action id="net.sourceforge.pmd.jdeveloper.CheckPmd">
<properties>
<property name="Name">PMD</property>
<property name="SmallIcon">res:/net/sourceforge/pmd/jdeveloper/icons/pmd-icon-16.png</property>
</properties>
<controller-class>net.sourceforge.pmd.jdeveloper.PmdController</controller-class>
<command-class>net.sourceforge.pmd.jdeveloper.PmdCommand</command-class>
</action>
</actions>
<context-menu-listeners>
<site idref="navigator">
<listener-class>net.sourceforge.pmd.jdeveloper.PmdContextMenuListener</listener-class>
</site>
<site idref="editor">
<listener-class>net.sourceforge.pmd.jdeveloper.PmdContextMenuListener</listener-class>
</site>
<site idref="explorer">
<listener-class>net.sourceforge.pmd.jdeveloper.PmdContextMenuListener</listener-class>
</site>
</context-menu-listeners>
</jdeveloper-hook>
<menu-hook>
<menus>
<menubar id="javax.ide.view.MAIN_WINDOW_MENUBAR_ID">
<menu id="javax.ide.FILE_MENU_ID">
<section id="net.sourceforge.pmd.jdeveloper.menu.section"
before="javax.ide.NEW_SECTION_ID">
<item action-ref="net.sourceforge.pmd.jdeveloper.CheckPmd"></item>
</section>
</menu>
</menubar>
</menus>
<toolbars>
<toolbar id="javax.ide.view.MAIN_WINDOW_TOOLBAR_ID">
<section id="net.sourceforge.pmd.jdeveloper.toolbar.section"
after="javax.ide.NEW_SECTION_ID">
<item action-ref="net.sourceforge.pmd.jdeveloper.CheckPmd"></item>
</section>
</toolbar>
</toolbars>
</menu-hook>
<feature-hook>
<description>Provides integrated support for PMD 4.2.5 in JDeveloper 11g.</description>
<optional>false</optional>
</feature-hook>
<settings-ui-hook xmlns="http://xmlns.oracle.com/ide/extension">
<page id="net.sourceforge.pmd.jdeveloper.SettingsPanel"
parent-idref="/preferences">
<label>PMD</label>
<traversable-class>net.sourceforge.pmd.jdeveloper.PmdSettingsPanel</traversable-class>
</page>
</settings-ui-hook>
</hooks>
</extension>

View File

@@ -1,87 +0,0 @@
package net.sourceforge.pmd.jdeveloper;
import java.awt.Component;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;
import net.sourceforge.pmd.cpd.Match;
import net.sourceforge.pmd.cpd.TokenEntry;
import oracle.ide.ceditor.CodeEditor;
import oracle.ide.editor.EditorManager;
import oracle.ide.layout.ViewId;
import oracle.ide.log.AbstractLogPage;
import oracle.ide.model.Node;
public class CPDViolationPage extends AbstractLogPage implements TreeSelectionListener {
private final transient JScrollPane scrollPane;
private final transient JTree tree;
private final transient DefaultMutableTreeNode top;
public final transient Map cpdFileToNodeMap =
new HashMap(); // whew, this is kludgey
public CPDViolationPage() {
super(new ViewId("PMDPage", Plugin.CPD_TITLE), null, false);
top = new DefaultMutableTreeNode("CPD");
tree = new JTree(top);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(this);
scrollPane = new JScrollPane(tree);
}
public void valueChanged(final TreeSelectionEvent event) {
final DefaultMutableTreeNode node =
(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if (node != null && node.isLeaf()) {
final CPDViolationWrapper nodeInfo =
(CPDViolationWrapper)node.getUserObject();
EditorManager.getEditorManager().openDefaultEditorInFrame(nodeInfo.file.getURL());
((CodeEditor)EditorManager.getEditorManager().getCurrentEditor()).gotoLine(nodeInfo.mark.getBeginLine(),
0,
false);
}
}
public void add(final Match match) {
final Node file1 =
(Node)cpdFileToNodeMap.get(match.getFirstMark().getTokenSrcID());
final DefaultMutableTreeNode matchNode =
new DefaultMutableTreeNode(file1.getShortLabel() + " contains a " +
match.getLineCount() +
" line block of duplicated code", true);
top.add(matchNode);
for (final Iterator i = match.iterator(); i.hasNext(); ) {
final TokenEntry mark = (TokenEntry)i.next();
final Node file = (Node)cpdFileToNodeMap.get(mark.getTokenSrcID());
final DefaultMutableTreeNode markTreeNode =
new DefaultMutableTreeNode(new CPDViolationWrapper(mark, file,
file.getShortLabel() +
" has some at line " +
mark.getBeginLine()),
false);
matchNode.add(markTreeNode);
}
}
public Component getGUI() {
return scrollPane;
}
public void clearAll() {
top.removeAllChildren();
tree.repaint();
scrollPane.repaint();
//tree.removeSelectionPath(new TreePath(new Object[] {top}));
}
}

View File

@@ -1,23 +0,0 @@
package net.sourceforge.pmd.jdeveloper;
import net.sourceforge.pmd.cpd.TokenEntry;
import oracle.ide.model.Node;
public class CPDViolationWrapper {
private final transient String label;
public transient Node file;
public transient TokenEntry mark;
public CPDViolationWrapper(final TokenEntry mark, final Node file,
final String label) {
this.label = label;
this.mark = mark;
this.file = file;
}
public String toString() {
return label;
}
}

View File

@@ -0,0 +1,16 @@
package net.sourceforge.pmd.jdeveloper;
import oracle.ide.Addin;
import oracle.ide.extension.RegisteredByExtension;
@RegisteredByExtension("net.sourceforge.pmd.jdeveloper")
public class CpdAddin implements Addin {
public static final String CPD_TITLE = "CPD";
@Override
public void initialize() {
// Nothing to do at the moment
}
}

View File

@@ -0,0 +1,105 @@
package net.sourceforge.pmd.jdeveloper;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import javax.swing.JOptionPane;
import net.sourceforge.pmd.cpd.CPD;
import net.sourceforge.pmd.cpd.LanguageFactory;
import net.sourceforge.pmd.cpd.Match;
import oracle.ide.Context;
import oracle.ide.Ide;
import oracle.ide.controller.Command;
import oracle.ide.extension.RegisteredByExtension;
import oracle.ide.log.LogManager;
import oracle.ide.log.LogPage;
import oracle.ide.log.LogWindow;
import oracle.ide.model.Project;
import oracle.ide.model.RelativeDirectoryContextFolder;
import oracle.jdeveloper.model.JavaSourceNode;
@RegisteredByExtension("net.sourceforge.pmd.jdeveloper")
public class CpdCommand extends Command {
public static final int RUN_CPD_CMD_ID = Ide.findCmdID("net.sourceforge.pmd.jdeveloper.CheckCpd");
private transient final CpdViolationPage cpdViolationPage = new CpdViolationPage();
private boolean added = false;
public CpdCommand() {
super(RUN_CPD_CMD_ID);
}
@Override
public int doit() {
if (!added) {
addLogPage();
}
runCpd(context);
return OK;
}
private void runCpd(final Context context) {
try {
cpdViolationPage.cpdFileToNodeMap.clear();
// TODO get minimum tokens from prefs panel
final CPD cpd = new CPD(100, new LanguageFactory().createLanguage("java"));
// add all files to CPD
if (context.getElement() instanceof RelativeDirectoryContextFolder) {
final RelativeDirectoryContextFolder folder = (RelativeDirectoryContextFolder)context.getElement();
glomToCPD(folder.getChildren(), cpd);
} else if (context.getElement() instanceof Project) {
final Project project = (Project)context.getElement();
glomToCPD(project.getChildren(), cpd);
} else if (context.getElement() instanceof JavaSourceNode) {
cpd.add(new File(context.getNode().getLongLabel()));
cpdViolationPage.cpdFileToNodeMap.put(context.getNode().getLongLabel(), context.getNode());
}
cpd.go();
cpdViolationPage.show();
cpdViolationPage.clearAll();
if (cpd.getMatches().hasNext()) {
for (final Iterator i = cpd.getMatches(); i.hasNext(); ) {
cpdViolationPage.add((Match)i.next());
}
} else {
JOptionPane.showMessageDialog(null, "No problems found", CpdAddin.CPD_TITLE, JOptionPane.INFORMATION_MESSAGE);
final LogPage page = LogManager.getLogManager().getMsgPage();
if (page instanceof LogWindow) {
((LogWindow)page).show();
}
}
} catch (IOException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, CpdAddin.CPD_TITLE);
}
}
private void addLogPage() {
LogManager.getLogManager().addPage(cpdViolationPage);
LogManager.getLogManager().showLog();
added = true;
}
private void glomToCPD(final Iterator iter, final CPD cpd) throws IOException {
while (iter.hasNext()) {
final Object obj = iter.next();
if (!(obj instanceof JavaSourceNode)) {
continue;
}
final JavaSourceNode candidate = (JavaSourceNode)obj;
if (candidate.getLongLabel().endsWith(".java") && new File(candidate.getLongLabel()).exists()) {
cpdViolationPage.cpdFileToNodeMap.put(candidate.getLongLabel(), candidate);
cpd.add(new File(candidate.getLongLabel()));
}
}
}
}

View File

@@ -0,0 +1,44 @@
/* $Header: SimpleController.java 16-aug-2007.22:06:23 bduff Exp $ */
/* Copyright (c) 2007, Oracle. All rights reserved. */
/*
MODIFIED (MM/DD/YY)
bduff 08/16/07 - Reformat to JCS.
bduff 02/27/07 - Added copyright banner
*/
package net.sourceforge.pmd.jdeveloper;
import oracle.ide.Context;
import oracle.ide.Ide;
import oracle.ide.controller.Controller;
import oracle.ide.controller.IdeAction;
import oracle.ide.extension.RegisteredByExtension;
/**
* The controller implementation is responsible for enabling and disabling
* actions and performing any work required when they are invoked.
*/
@RegisteredByExtension("net.sourceforge.pmd.jdeveloper")
public final class CpdController implements Controller {
/**
* Look up the numeric id of the action we defined in our extension
* manifest. The string constant matches the value of the id attribute in
* the action element of the extension manifest.<p>
*
* The numeric id can be used to retrieve an instance of IdeAction.
*/
public static final int RUN_PMD_CPD_ID =
Ide.findCmdID("net.sourceforge.pmd.jdeveloper.CheckCpd");
public boolean handleEvent(final IdeAction action, final Context context) {
// Command is handled by net.sourceforge.pmd.jdeveloper.CpdCommand
return false;
}
public boolean update(final IdeAction action, final Context context) {
action.setEnabled(true);
return true;
}
}

View File

@@ -42,27 +42,28 @@ public class FileStorage implements SettingsStorage {
fos.close();
} catch (FileNotFoundException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, Plugin.PMD_TITLE);
Util.showError(e, PmdAddin.PMD_TITLE);
} catch (IOException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, Plugin.PMD_TITLE);
Util.showError(e, PmdAddin.PMD_TITLE);
}
}
public String load(final String key) throws SettingsException {
String sRet = "false";
try {
if (file.exists()) {
final Properties properties = new Properties();
final FileInputStream fis = new FileInputStream(file);
properties.load(fis);
fis.close();
return properties.getProperty(key);
sRet = properties.getProperty(key);
}
} catch (IOException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, Plugin.PMD_TITLE);
Util.showError(e, PmdAddin.PMD_TITLE);
}
return "false";
return sRet;
}
}

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
package net.sourceforge.pmd.jdeveloper;
import oracle.ide.Addin;
import oracle.ide.ExtensionRegistry;
import oracle.ide.Ide;
import oracle.ide.config.IdeSettings;
import oracle.ide.extension.RegisteredByExtension;
import oracle.ide.panels.Navigable;
@RegisteredByExtension("net.sourceforge.pmd.jdeveloper")
public class PmdAddin implements Addin {
public static final String PMD_TITLE = "PMD";
public static boolean added = false;
public static PmdViolationPage pmdViolationPage;
@Override
public void initialize() {
Ide.getVersionInfo().addComponent(PMD_TITLE, "JDeveloper Extension " + Version.version());
pmdViolationPage = new PmdViolationPage();
}
}

View File

@@ -0,0 +1,137 @@
package net.sourceforge.pmd.jdeveloper;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.swing.JOptionPane;
import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.PMDException;
import net.sourceforge.pmd.Report;
import net.sourceforge.pmd.RuleContext;
import net.sourceforge.pmd.RuleSetNotFoundException;
import net.sourceforge.pmd.RuleViolation;
import oracle.ide.Context;
import oracle.ide.Ide;
import oracle.ide.ceditor.CodeEditor;
import oracle.ide.controller.Command;
import oracle.ide.extension.RegisteredByExtension;
import oracle.ide.log.LogManager;
import oracle.ide.log.LogPage;
import oracle.ide.log.LogWindow;
import oracle.ide.model.Node;
import oracle.ide.model.Project;
import oracle.ide.model.RelativeDirectoryContextFolder;
import oracle.jdeveloper.compiler.IdeLog;
import oracle.jdeveloper.compiler.IdeStorage;
import oracle.jdeveloper.model.JavaSourceNode;
@RegisteredByExtension("net.sourceforge.pmd.jdeveloper")
public class PmdCommand extends Command {
public static final int RUN_PMD_CMD_ID = Ide.findCmdID("net.sourceforge.pmd.jdeveloper.CheckPmd");
private transient Map pmdFileToNodeMap = new HashMap(); // whew, this is kludgey
public PmdCommand() {
super(RUN_PMD_CMD_ID);
}
@Override
public int doit() {
if (!PmdAddin.added) {
addLogPage();
}
runPmd(context);
return OK;
}
private void runPmd(final Context context) {
try {
pmdFileToNodeMap.clear();
final PMD pmd = new PMD();
Version.setJavaVersion(context, pmd);
final PmdSelectedRules rules = new PmdSelectedRules(PmdSettingsPanel.createSettingsStorage());
final RuleContext ctx = new RuleContext();
ctx.setReport(new Report());
if (context.getElement() instanceof RelativeDirectoryContextFolder) {
final RelativeDirectoryContextFolder folder = (RelativeDirectoryContextFolder)context.getElement();
checkTree(folder.getChildren(), pmd, rules, ctx);
} else if (context.getElement() instanceof Project) {
final Project project = (Project)context.getElement();
checkTree(project.getChildren(), pmd, rules, ctx);
} else if (context.getElement() instanceof JavaSourceNode || context.getView() instanceof CodeEditor) {
pmdFileToNodeMap.put(context.getNode().getLongLabel(), context.getNode());
ctx.setSourceCodeFilename(context.getNode().getLongLabel());
pmd.processFile(context.getNode().getInputStream(), rules.getSelectedRules(), ctx);
render(ctx);
}
} catch (IOException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, PmdAddin.PMD_TITLE);
} catch (PMDException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, PmdAddin.PMD_TITLE);
} catch (RuleSetNotFoundException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, PmdAddin.PMD_TITLE);
}
}
private void addLogPage() {
LogManager.getLogManager().addPage(PmdAddin.pmdViolationPage);
LogManager.getLogManager().showLog();
PmdAddin.added = true;
}
private void checkTree(final Iterator iter, final PMD pmd, final PmdSelectedRules rules,
final RuleContext ctx) throws IOException, PMDException {
while (iter.hasNext()) {
final Object obj = iter.next();
if (!(obj instanceof JavaSourceNode)) {
continue;
}
final JavaSourceNode candidate = (JavaSourceNode)obj;
if (candidate.getLongLabel().endsWith(".java") && new File(candidate.getLongLabel()).exists()) {
pmdFileToNodeMap.put(candidate.getLongLabel(), candidate);
ctx.setSourceCodeFilename(candidate.getLongLabel());
final FileInputStream fis = new FileInputStream(new File(candidate.getLongLabel()));
pmd.processFile(fis, rules.getSelectedRules(), ctx);
fis.close();
}
}
render(ctx);
}
private void render(final RuleContext ctx) {
PmdAddin.pmdViolationPage.show();
PmdAddin.pmdViolationPage.clearAll();
if (ctx.getReport().isEmpty()) {
JOptionPane.showMessageDialog(null, "No problems found", PmdAddin.PMD_TITLE,
JOptionPane.INFORMATION_MESSAGE);
final LogPage page = LogManager.getLogManager().getMsgPage();
if (page instanceof LogWindow) {
((LogWindow)page).show();
}
} else {
final List list = new ArrayList();
for (final Iterator i = ctx.getReport().iterator(); i.hasNext(); ) {
final RuleViolation viol = (RuleViolation)i.next();
final Node node = (Node)pmdFileToNodeMap.get(viol.getFilename());
list.add(new IdeLog.Message(Ide.getActiveWorkspace(), Ide.getActiveProject(), new IdeStorage(node),
viol.getDescription(), 2, viol.getBeginLine(), viol.getBeginColumn()));
}
PmdAddin.pmdViolationPage.add(list);
}
}
}

View File

@@ -0,0 +1,71 @@
/* $Header: jdev/src/esdk-samples/sample/FirstSample/src/oracle/ide/extsamples/firstsample/SimpleContextMenuListener.java /main/5 2010/09/19 17:14:42 alfarouk Exp $ */
/* Copyright (c) 2007, 2010, Oracle and/or its affiliates.
All rights reserved. */
/*
MODIFIED (MM/DD/YY)
bduff 08/16/07 - Reformat to JCS.
bduff 02/27/07 - Added copyright banner
*/
package net.sourceforge.pmd.jdeveloper;
import oracle.ide.Context;
import oracle.ide.ceditor.CodeEditor;
import oracle.ide.controller.ContextMenu;
import oracle.ide.controller.ContextMenuListener;
import oracle.ide.controller.IdeAction;
import oracle.ide.model.Element;
import oracle.ide.model.Project;
import oracle.ide.model.RelativeDirectoryContextFolder;
import oracle.ide.view.View;
import oracle.jdeveloper.model.JavaSourceNode;
/**
*
* NOTE: This listener is no longer used. The context menu is now added
* declaratively, via the 'extension.xml' file. The 'menuWillShow' method
* used to contain logic that the extension would use to decided whether
* a menu should be added or not depending on the context. These are now
* replaced by 'rule' which are declared in the extension.xml and evaluated
* at run-time to decide whether or not this menu should be added.
*
* Please see the extension.xml file to see how a context menu is now added.
*
*/
public final class PmdContextMenuListener implements ContextMenuListener {
// First, retrieve our pmdAction using the ID we specified in the extension
// manifest.
// TODO CPD
transient IdeAction pmdAction = IdeAction.find(PmdController.RUN_PMD_CMD_ID);
public void menuWillShow(final ContextMenu contextMenu) {
pmdAction.updateAction(contextMenu.getContext());
if (pmdAction.isEnabled()) {
final Element doc = contextMenu.getContext().getElement();
final View view = contextMenu.getContext().getView();
// RelativeDirectoryContextFolder -> a package
if (doc instanceof Project || doc instanceof JavaSourceNode || doc instanceof RelativeDirectoryContextFolder ||
view instanceof CodeEditor) {
contextMenu.add(contextMenu.createMenuItem(pmdAction));
// TODO CPD
// contextMenu.add(contextMenu.createMenuItem(cpdAction));
}
}
}
public void menuWillHide(final ContextMenu contextMenu) {
// Most context menu listeners will do nothing in this method. In
// particular, you should *not* remove menu items in this method.
// Nothing to do
}
public boolean handleDefaultAction(final Context context) {
// You can implement this method if you want to handle the default
// action (usually double click) for some context.
return false;
}
}

View File

@@ -0,0 +1,60 @@
/* $Header: SimpleController.java 16-aug-2007.22:06:23 bduff Exp $ */
/* Copyright (c) 2007, Oracle. All rights reserved. */
/*
MODIFIED (MM/DD/YY)
bduff 08/16/07 - Reformat to JCS.
bduff 02/27/07 - Added copyright banner
*/
package net.sourceforge.pmd.jdeveloper;
import oracle.ide.Context;
import oracle.ide.Ide;
import oracle.ide.ceditor.CodeEditor;
import oracle.ide.controller.Controller;
import oracle.ide.controller.IdeAction;
import oracle.ide.extension.RegisteredByExtension;
import oracle.ide.model.Element;
import oracle.ide.model.Project;
import oracle.ide.model.RelativeDirectoryContextFolder;
import oracle.ide.view.View;
import oracle.jdeveloper.model.JavaSourceNode;
/**
* The controller implementation is responsible for enabling and disabling
* actions and performing any work required when they are invoked.
*/
@RegisteredByExtension("net.sourceforge.pmd.jdeveloper")
public final class PmdController implements Controller {
/**
* Look up the numeric id of the action we defined in our extension
* manifest. The string constant matches the value of the id attribute in
* the action element of the extension manifest.<p>
*
* The numeric id can be used to retrieve an instance of IdeAction.
*/
public static final int RUN_PMD_CMD_ID = Ide.findCmdID("net.sourceforge.pmd.jdeveloper.CheckPmd");
public boolean handleEvent(final IdeAction action, final Context context) {
// Command is handled by net.sourceforge.pmd.jdeveloper.PmdCommand
return false;
}
public boolean update(final IdeAction action, final Context context) {
final Element doc = context.getElement();
final View view = context.getView();
// RelativeDirectoryContextFolder -> a package
if (doc instanceof Project || doc instanceof JavaSourceNode || doc instanceof RelativeDirectoryContextFolder ||
view instanceof CodeEditor) {
action.setEnabled(true);
// TODO CPD
// contextMenu.add(contextMenu.createMenuItem(cpdAction));
} else {
action.setEnabled(false);
}
return true;
}
}

View File

@@ -14,7 +14,7 @@ import net.sourceforge.pmd.RuleSetFactory;
import net.sourceforge.pmd.RuleSetNotFoundException;
public class SelectedRules {
public class PmdSelectedRules {
// Rule -> JCheckBox
private final transient Map<Rule, JCheckBox> rules =
@@ -24,7 +24,7 @@ public class SelectedRules {
}
});
public SelectedRules(final SettingsStorage settings) throws RuleSetNotFoundException {
public PmdSelectedRules(final SettingsStorage settings) throws RuleSetNotFoundException {
final RuleSetFactory rsf = new RuleSetFactory();
for (final Iterator<RuleSet> iter = rsf.getRegisteredRuleSets();
iter.hasNext(); ) {
@@ -49,7 +49,7 @@ public class SelectedRules {
final SettingsException exc =
new SettingsException("Couldn't find a rule that mapped to the passed in JCheckBox " +
candidate);
Util.showError(exc, Plugin.PMD_TITLE);
Util.showError(exc, PmdAddin.PMD_TITLE);
return null;
}
@@ -87,7 +87,7 @@ public class SelectedRules {
box.setSelected(load(settings, name));
} catch (SettingsException se) {
Util.logMessage(se.getStackTrace());
Util.showError(se, Plugin.PMD_TITLE);
Util.showError(se, PmdAddin.PMD_TITLE);
}
return box;
}

View File

@@ -40,19 +40,17 @@ import net.sourceforge.pmd.Rule;
import net.sourceforge.pmd.RuleSet;
import net.sourceforge.pmd.RuleSetFactory;
import net.sourceforge.pmd.RuleSetNotFoundException;
import net.sourceforge.pmd.RuleSets;
import net.sourceforge.pmd.RuleSetWriter;
import net.sourceforge.pmd.RuleSets;
import oracle.ide.Ide;
import oracle.ide.panels.DefaultTraversablePanel;
import oracle.ide.panels.TraversableContext;
public class SettingsPanel extends DefaultTraversablePanel {
public class PmdSettingsPanel extends DefaultTraversablePanel {
private static final String PLUGIN_HOME =
"/extensions/net.sourceforge.pmd.jdeveloper." + Version.version() +
"/conf/";
"/extensions/net.sourceforge.pmd.jdeveloper/conf/";
private static final String PLUGIN_PROPS =
PLUGIN_HOME + "pmd.plugin.properties";
private static final String RULE_PROPS =
@@ -86,15 +84,15 @@ public class SettingsPanel extends DefaultTraversablePanel {
private class FindListener implements ActionListener {
public void actionPerformed(ActionEvent evt) {
FileDialog fdlg =
public void actionPerformed(final ActionEvent evt) {
final FileDialog fdlg =
new FileDialog(new Frame(), "Find", FileDialog.LOAD);
fdlg.setVisible(true);
String selected = fdlg.getDirectory() + fdlg.getFile();
final String selected = fdlg.getDirectory() + fdlg.getFile();
if (fdlg.getFile() == null) {
return;
}
selectedRulesSeparateFileNameField.setText(selected);
rulesSeparateFile.setText(selected);
}
}
@@ -178,41 +176,42 @@ public class SettingsPanel extends DefaultTraversablePanel {
public static final String SEL_FILENAME = "pmd.settings.separate.name";
private final transient JTextArea exampleTextArea = new JTextArea(10, 50);
private JCheckBox selectedRulesStoredSeparatelyBox;
private JTextField selectedRulesSeparateFileNameField = new JTextField(30);
private transient SelectedRules rules;
private transient JCheckBox rulesStoredSepBox;
private final transient JTextField rulesSeparateFile = new JTextField(30);
private transient PmdSelectedRules rules;
private transient JList rulesList;
private static FileStorage pluginProps =
new FileStorage(new File(Version.getJdevHome() + PLUGIN_PROPS));
public static SettingsStorage createSettingsStorage() {
FileStorage fileStorage = new FileStorage(new File(Version.getJdevHome() + RULE_PROPS));
try {
if (Boolean.valueOf(pluginProps.load(STORED_SEPARATELY)).booleanValue()) {
return new FileStorage(new File(pluginProps.load(SEL_FILENAME)));
fileStorage = new FileStorage(new File(pluginProps.load(SEL_FILENAME)));
}
} catch (SettingsException se) {
Util.logMessage(se.getStackTrace());
Util.showError(se, Plugin.PMD_TITLE);
Util.showError(se, PmdAddin.PMD_TITLE);
}
return new FileStorage(new File(Version.getJdevHome() + RULE_PROPS));
return fileStorage;
}
public void onEntry(final TraversableContext tcon) {
removeAll();
try {
rules = new SelectedRules(createSettingsStorage());
rules = new PmdSelectedRules(createSettingsStorage());
} catch (RuleSetNotFoundException rsne) {
Util.logMessage(rsne.getStackTrace());
Util.showError(rsne, Plugin.PMD_TITLE);
Util.showError(rsne, PmdAddin.PMD_TITLE);
}
try {
selectedRulesStoredSeparatelyBox =
rulesStoredSepBox =
new JCheckBox("", Boolean.valueOf(pluginProps.load(STORED_SEPARATELY)).booleanValue());
} catch (SettingsException se) {
Util.logMessage(se.getStackTrace());
Util.showError(se, Plugin.PMD_TITLE);
Util.showError(se, PmdAddin.PMD_TITLE);
}
final JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(createTopPanel(), BorderLayout.NORTH);
@@ -263,40 +262,40 @@ public class SettingsPanel extends DefaultTraversablePanel {
private JPanel createTopPanel() {
try {
selectedRulesSeparateFileNameField.setText(pluginProps.load(SEL_FILENAME));
selectedRulesStoredSeparatelyBox.setSelected(Boolean.valueOf(pluginProps.load(STORED_SEPARATELY)).booleanValue());
rulesSeparateFile.setText(pluginProps.load(SEL_FILENAME));
rulesStoredSepBox.setSelected(Boolean.valueOf(pluginProps.load(STORED_SEPARATELY)).booleanValue());
} catch (SettingsException se) {
Util.logMessage(se.getStackTrace());
Util.showError(se, Plugin.PMD_TITLE);
Util.showError(se, PmdAddin.PMD_TITLE);
}
JPanel topPanel = new JPanel(new BorderLayout());
JPanel customStoragePanel = new JPanel(new BorderLayout());
customStoragePanel.setBorder(BorderFactory.createTitledBorder("Settings storage"));
final JPanel topPanel = new JPanel(new BorderLayout());
final JPanel custStoragePanel = new JPanel(new BorderLayout());
custStoragePanel.setBorder(BorderFactory.createTitledBorder("Settings storage"));
JPanel customStorageCheckBoxPanel = new JPanel();
customStorageCheckBoxPanel.add(new JLabel("Use centrally managed rule settings?"));
customStorageCheckBoxPanel.add(selectedRulesStoredSeparatelyBox);
customStoragePanel.add(customStorageCheckBoxPanel, BorderLayout.NORTH);
final JPanel custStorCheckBox = new JPanel();
custStorCheckBox.add(new JLabel("Use centrally managed rule settings?"));
custStorCheckBox.add(rulesStoredSepBox);
custStoragePanel.add(custStorCheckBox, BorderLayout.NORTH);
JPanel customStorageTextFieldPanel = new JPanel();
customStorageTextFieldPanel.add(new JLabel("File:"));
customStorageTextFieldPanel.add(selectedRulesSeparateFileNameField);
JButton findButton = new JButton("Find file");
final JPanel custStorTxtField = new JPanel();
custStorTxtField.add(new JLabel("File:"));
custStorTxtField.add(rulesSeparateFile);
final JButton findButton = new JButton("Find file");
findButton.addActionListener(new FindListener());
customStorageTextFieldPanel.add(findButton);
custStorTxtField.add(findButton);
customStoragePanel.add(customStorageTextFieldPanel,
custStoragePanel.add(custStorTxtField,
BorderLayout.SOUTH);
topPanel.add(customStoragePanel, BorderLayout.CENTER);
topPanel.add(custStoragePanel, BorderLayout.CENTER);
return topPanel;
}
public void onExit(final TraversableContext tcon) {
final Properties properties = new Properties();
properties.setProperty(STORED_SEPARATELY,
String.valueOf(selectedRulesStoredSeparatelyBox.isSelected()));
String.valueOf(rulesStoredSepBox.isSelected()));
properties.setProperty(SEL_FILENAME,
selectedRulesSeparateFileNameField.getText());
rulesSeparateFile.getText());
try {
pluginProps.save(properties);
rules.save(createSettingsStorage());
@@ -324,7 +323,7 @@ public class SettingsPanel extends DefaultTraversablePanel {
ruleSets = factory.createRuleSets(fileLocation);
} catch (RuleSetNotFoundException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, Plugin.PMD_TITLE);
Util.showError(e, PmdAddin.PMD_TITLE);
}
if (ruleSets == null) {
Util.logMessage("No rules to import");
@@ -363,7 +362,7 @@ public class SettingsPanel extends DefaultTraversablePanel {
outputStream.flush();
} catch (IOException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, Plugin.PMD_TITLE);
Util.showError(e, PmdAddin.PMD_TITLE);
} finally {
if (outputStream != null) {
try {
@@ -371,7 +370,7 @@ public class SettingsPanel extends DefaultTraversablePanel {
outputStream.close();
} catch (IOException e) {
Util.logMessage(e.getStackTrace());
Util.showError(e, Plugin.PMD_TITLE);
Util.showError(e, PmdAddin.PMD_TITLE);
}
}
}

View File

@@ -5,10 +5,10 @@ import java.util.List;
import oracle.jdeveloper.compiler.CompilerPage;
public class RuleViolationPage extends CompilerPage {
public class PmdViolationPage extends CompilerPage {
public RuleViolationPage() {
super(Plugin.PMD_TITLE, Plugin.PMD_TITLE, null);
public PmdViolationPage() {
super(PmdAddin.PMD_TITLE, PmdAddin.PMD_TITLE, null);
}
public void add(final List list) {

View File

@@ -4,11 +4,11 @@ import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.SourceType;
import oracle.ide.Context;
import oracle.ide.Ide;
import oracle.jdeveloper.compiler.BuildSystemConfiguration;
final class Version {
private Version() {
}
@@ -29,10 +29,10 @@ final class Version {
}
public static String version() {
return "4.2.5.3.0";
return "11.1.1.4300";
}
static String getJdevHome() {
public static String getJdevHome() {
return Ide.getProductHomeDirectory();
}
}

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B