forked from phoedos/pmd
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:
@@ -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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
@@ -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
|
||||
|
@@ -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>
|
Binary file not shown.
BIN
pmd-jdeveloper.11.1.1/lib/asm-3.2.jar
Normal file
BIN
pmd-jdeveloper.11.1.1/lib/asm-3.2.jar
Normal file
Binary file not shown.
Binary file not shown.
@@ -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>
|
||||
|
83
pmd-jdeveloper.11.1.1/src/META-INF/extension.xml
Normal file
83
pmd-jdeveloper.11.1.1/src/META-INF/extension.xml
Normal 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>
|
@@ -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}));
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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
|
||||
}
|
||||
|
||||
}
|
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -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();
|
||||
}
|
||||
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
||||
}
|
@@ -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;
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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) {
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 331 B |
Binary file not shown.
After Width: | Height: | Size: 365 B |
Reference in New Issue
Block a user