Playing with a module to bundle Jackpot rules for NB module developers.
Doesn't actually seem to work yet, as such, probably due to open Jackpot bugs.
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/apisupport.jackpotrules/build.xml Tue Apr 04 17:21:21 2006 +0000
1.3 @@ -0,0 +1,5 @@
1.4 +<?xml version="1.0" encoding="UTF-8"?>
1.5 +<project basedir="." default="netbeans" name="apisupport/jackpotrules">
1.6 + <description>Builds, tests, and runs the project org.netbeans.modules.apisupport.jackpotrules</description>
1.7 + <import file="../../nbbuild/templates/projectized.xml"/>
1.8 +</project>
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/apisupport.jackpotrules/manifest.mf Tue Apr 04 17:21:21 2006 +0000
2.3 @@ -0,0 +1,6 @@
2.4 +Manifest-Version: 1.0
2.5 +OpenIDE-Module: org.netbeans.modules.apisupport.jackpotrules
2.6 +OpenIDE-Module-Layer: org/netbeans/modules/apisupport/jackpotrules/layer.xml
2.7 +OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/apisupport/jackpotrules/Bundle.properties
2.8 +OpenIDE-Module-Specification-Version: 1.0
2.9 +
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/apisupport.jackpotrules/nbproject/project.xml Tue Apr 04 17:21:21 2006 +0000
3.3 @@ -0,0 +1,19 @@
3.4 +<?xml version="1.0" encoding="UTF-8"?>
3.5 +<project xmlns="http://www.netbeans.org/ns/project/1">
3.6 + <type>org.netbeans.modules.apisupport.project</type>
3.7 + <configuration>
3.8 + <data xmlns="http://www.netbeans.org/ns/nb-module-project/2">
3.9 + <code-name-base>org.netbeans.modules.apisupport.jackpotrules</code-name-base>
3.10 + <module-dependencies>
3.11 + <dependency>
3.12 + <code-name-base>org.netbeans.modules.jackpot</code-name-base>
3.13 + <run-dependency>
3.14 + <release-version>1</release-version>
3.15 + <specification-version>1.2</specification-version>
3.16 + </run-dependency>
3.17 + </dependency>
3.18 + </module-dependencies>
3.19 + <public-packages/>
3.20 + </data>
3.21 + </configuration>
3.22 +</project>
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/apisupport.jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/Bundle.properties Tue Apr 04 17:21:21 2006 +0000
4.3 @@ -0,0 +1,7 @@
4.4 +OpenIDE-Module-Display-Category=Developing NetBeans
4.5 +OpenIDE-Module-Long-Description=\
4.6 + Rules for NetBeans module development applicable to IDE plug-ins or platform applications. \
4.7 + Can be used by the Jackpot tool to correct deprecations, upgrade APIs, and so on. \
4.8 + Add new rules here if you can precisely express a transformation from one API usage pattern to another.
4.9 +OpenIDE-Module-Name=Jackpot Rules for NetBeans Modules
4.10 +OpenIDE-Module-Short-Description=Contains Jackpot rules useful for NetBeans module development.
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/apisupport.jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/ErrorManagerJackpot.rules Tue Apr 04 17:21:21 2006 +0000
5.3 @@ -0,0 +1,82 @@
5.4 +/*
5.5 + * Sun Public License Notice
5.6 + *
5.7 + * The contents of this file are subject to the Sun Public License
5.8 + * Version 1.0 (the "License"). You may not use this file except in
5.9 + * compliance with the License. A copy of the License is available at
5.10 + * http://www.sun.com/
5.11 + *
5.12 + * The Original Code is NetBeans. The Initial Developer of the Original
5.13 + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
5.14 + * Microsystems, Inc. All Rights Reserved.
5.15 + */
5.16 +
5.17 +
5.18 +/*
5.19 +
5.20 +Uses http://jackpot.netbeans.org to convert certain usages of ErrorManager
5.21 +to logging. Still requires additional manual touches, but most of the work
5.22 +is done automatically.
5.23 +
5.24 +*/
5.25 +
5.26 +$err.getDefault().getInstance($name) => java.util.logging.Logger.getLogger($name)
5.27 + :: $err instanceof org.openide.ErrorManager;
5.28 +$err.getDefault().notify($err.INFORMATIONAL, $throwable) =>
5.29 + Logger.getAnonymousLogger().log(Level.WARNING, null, $throwable)
5.30 + :: $err instanceof org.openide.ErrorManager;
5.31 +
5.32 +// "un-convert" the ErrorManager API that is still in use.
5.33 +$err.attachAnnotations($t, $arr) => ErrorManager.getDefault().attachAnnotations($t, $arr)
5.34 + :: $err instanceof org.openide.ErrorManager;
5.35 +$err.annotate($t, $msg) => ErrorManager.getDefault().annotate($t, $msg)
5.36 + :: $err instanceof org.openide.ErrorManager && $msg instanceof java.lang.String;
5.37 +$err.annotate($t, $throwable) => ErrorManager.getDefault().annotate($t, $throwable)
5.38 + :: $err instanceof org.openide.ErrorManager && $throwable instanceof java.lang.Throwable;
5.39 +$err.annotate($t, $severity, $msg, $locMsg, $throwable, $date) =>
5.40 + ErrorManager.getDefault().annotate($t, $severity, $msg, $locMsg, $throwable, $date)
5.41 + :: $err instanceof org.openide.ErrorManager;
5.42 +$err.copyAnnotation($t, $throwable) => ErrorManager.getDefault().copyAnnotation($t, $throwable)
5.43 + :: $err instanceof org.openide.ErrorManager && $throwable instanceof java.lang.Throwable;
5.44 +$err.findAnnotations($t) => ErrorManager.getDefault().findAnnotations($t)
5.45 + :: $err instanceof org.openide.ErrorManager;
5.46 +$err.notify($throwable) => ErrorManager.getDefault().notify($throwable)
5.47 + :: $err instanceof org.openide.ErrorManager && $throwable instanceof java.lang.Throwable;
5.48 +
5.49 +
5.50 +/*
5.51 +$err.getDefault() => java.util.logging.Level.getAnnonymousLogger() :: $err instanceof java.util.logging.Logger;
5.52 +$err.notify($err.INFORMATIONAL, $ex) => $err.log(Level.WARNING, null, $ex) :: $err instanceof java.util.logging.Logger;
5.53 +
5.54 +$err.INFORMATIONAL => java.util.logging.Level.WARNING :: $err instanceof java.util.logging.Logger;
5.55 +$err.USER => java.util.logging.Level.USER :: $err instanceof java.util.logging.Logger;
5.56 +$err.UNKNOWN => java.util.logging.Level.UNKNOWN :: $err instanceof java.util.logging.Logger;
5.57 +$err.EXCEPTION => java.util.logging.Level.SEVERE :: $err instanceof java.util.logging.Logger;
5.58 +$err.ERROR => java.util.logging.Level.SEVERE :: $err instanceof java.util.logging.Logger;
5.59 +*/
5.60 +
5.61 +$err.log($msg) => $err.log(Level.FINE, $msg)
5.62 + :: $err instanceof org.openide.ErrorManager;
5.63 +
5.64 +$err.log($err.INFORMATIONAL, $msg) => $err.log(Level.FINE, $msg)
5.65 + :: $err instanceof org.openide.ErrorManager;
5.66 +$err.log($err.USER, $msg) => $err.log(Level.INFO, $msg)
5.67 + :: $err instanceof org.openide.ErrorManager;
5.68 +$err.log($err.EXCEPTION, $msg) => $err.log(Level.WARNING, $msg)
5.69 + :: $err instanceof org.openide.ErrorManager;
5.70 +$err.log($err.ERROR, $msg) => $err.log(Level.SEVERE, $msg)
5.71 + :: $err instanceof org.openide.ErrorManager;
5.72 +
5.73 +$err.isLoggable(org.openide.ErrorManager.INFORMATIONAL) => $err.isLoggable(Level.FINE)
5.74 + :: $err instanceof org.openide.ErrorManager;
5.75 +$err.isLoggable(org.openide.ErrorManager.USER) => $err.isLoggable(Level.INFO)
5.76 + :: $err instanceof org.openide.ErrorManager;
5.77 +$err.isLoggable(org.openide.ErrorManager.EXCEPTION) => $err.isLoggable(Level.WARNING)
5.78 + :: $err instanceof org.openide.ErrorManager;
5.79 +$err.isLoggable(org.openide.ErrorManager.ERROR) => $err.isLoggable(Level.SEVERE)
5.80 + :: $err instanceof org.openide.ErrorManager;
5.81 +
5.82 +// XXX should also convert
5.83 +// if ($err.isLoggable(INFORMATIONAL)) $err.log("message: " + param);
5.84 +// =>
5.85 +// $err.log(Level.FINE, "message: {0}", param);
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6.2 +++ b/apisupport.jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/annotate-to-initcause.rules Tue Apr 04 17:21:21 2006 +0000
6.3 @@ -0,0 +1,103 @@
6.4 +{ $before$;
6.5 +$E $nue = new $E($orig.getMessage());
6.6 +$ErrMgr.annotate($nue, $orig);
6.7 +throw $nue;
6.8 +}
6.9 +=>
6.10 +{ $before$;
6.11 +throw ($E) new $E($orig.toString()).initCause($orig);
6.12 +}
6.13 +::
6.14 +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable,
6.15 + $ErrMgr instanceof org.openide.ErrorManager;
6.16 +
6.17 +{ $before$;
6.18 +$E $nue = new $E($orig.getLocalizedMessage());
6.19 +$ErrMgr.annotate($nue, $orig);
6.20 +throw $nue;
6.21 +}
6.22 +=>
6.23 +{ $before$;
6.24 +throw ($E) new $E($orig.toString()).initCause($orig);
6.25 +}
6.26 +::
6.27 +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable,
6.28 + $ErrMgr instanceof org.openide.ErrorManager;
6.29 +
6.30 +{ $before$;
6.31 +$E $nue = new $E();
6.32 +$ErrMgr.annotate($nue, $orig);
6.33 +throw $nue;
6.34 +}
6.35 +=>
6.36 +{ $before$;
6.37 +throw ($E) new $E($orig.toString()).initCause($orig);
6.38 +}
6.39 +::
6.40 +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable,
6.41 + $ErrMgr instanceof org.openide.ErrorManager;
6.42 +
6.43 +{ $before$;
6.44 +$E $nue = new $E($msg);
6.45 +$ErrMgr.annotate($nue, $orig);
6.46 +throw $nue;
6.47 +}
6.48 +=>
6.49 +{ $before$;
6.50 +throw ($E) new $E($msg).initCause($orig);
6.51 +}
6.52 +::
6.53 +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable,
6.54 + $ErrMgr instanceof org.openide.ErrorManager, $msg instanceof java.lang.String;
6.55 +
6.56 +{ $before$;
6.57 +$E $nue = new $E($orig.getMessage());
6.58 +$ErrMgr.annotate($nue, $orig);
6.59 +return $nue;
6.60 +}
6.61 +=>
6.62 +{ $before$;
6.63 +return ($E) new $E($orig.toString()).initCause($orig);
6.64 +}
6.65 +::
6.66 +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable,
6.67 + $ErrMgr instanceof org.openide.ErrorManager;
6.68 +
6.69 +{ $before$;
6.70 +$E $nue = new $E($orig.getLocalizedMessage());
6.71 +$ErrMgr.annotate($nue, $orig);
6.72 +return $nue;
6.73 +}
6.74 +=>
6.75 +{ $before$;
6.76 +return ($E) new $E($orig.toString()).initCause($orig);
6.77 +}
6.78 +::
6.79 +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable,
6.80 + $ErrMgr instanceof org.openide.ErrorManager;
6.81 +
6.82 +{ $before$;
6.83 +$E $nue = new $E();
6.84 +$ErrMgr.annotate($nue, $orig);
6.85 +return $nue;
6.86 +}
6.87 +=>
6.88 +{ $before$;
6.89 +return ($E) new $E($orig.toString()).initCause($orig);
6.90 +}
6.91 +::
6.92 +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable,
6.93 + $ErrMgr instanceof org.openide.ErrorManager;
6.94 +
6.95 +{ $before$;
6.96 +$E $nue = new $E($msg);
6.97 +$ErrMgr.annotate($nue, $orig);
6.98 +return $nue;
6.99 +}
6.100 +=>
6.101 +{ $before$;
6.102 +return ($E) new $E($msg).initCause($orig);
6.103 +}
6.104 +::
6.105 +$E instanceof java.lang.Throwable, $orig instanceof java.lang.Throwable,
6.106 + $ErrMgr instanceof org.openide.ErrorManager, $msg instanceof java.lang.String;
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/apisupport.jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/jdk5.rules Tue Apr 04 17:21:21 2006 +0000
7.3 @@ -0,0 +1,73 @@
7.4 +$a.indexOf($b) == -1
7.5 +=>
7.6 +!$a.contains($b)
7.7 +::
7.8 +$a instanceof java.lang.String, $b instanceof java.lang.String;
7.9 +
7.10 +$a.indexOf($b) < 0
7.11 +=>
7.12 +!$a.contains($b)
7.13 +::
7.14 +$a instanceof java.lang.String, $b instanceof java.lang.String;
7.15 +
7.16 +$a.indexOf($b) != -1
7.17 +=>
7.18 +$a.contains($b)
7.19 +::
7.20 +$a instanceof java.lang.String, $b instanceof java.lang.String;
7.21 +
7.22 +$a.indexOf($b) >= 0
7.23 +=>
7.24 +$a.contains($b)
7.25 +::
7.26 +$a instanceof java.lang.String, $b instanceof java.lang.String;
7.27 +
7.28 +$a.indexOf($b) > -1
7.29 +=>
7.30 +$a.contains($b)
7.31 +::
7.32 +$a instanceof java.lang.String, $b instanceof java.lang.String;
7.33 +
7.34 +/*
7.35 +{
7.36 + java.util.Iterator<$T> $it = $c.iterator();
7.37 + while ($it.hasNext()) {
7.38 + $T $e = $it.next();
7.39 + $b$;
7.40 + }
7.41 +}
7.42 +=>
7.43 +for ($T $e : $c) {
7.44 + $b$;
7.45 +}
7.46 +::
7.47 +$c instanceof java.lang.Iterable;//, !uses($b$, $it)
7.48 +
7.49 +// XXX others similar, for nongenerified iterators...
7.50 + */
7.51 +
7.52 +/*
7.53 +new java.lang.Integer($i) => $i ::
7.54 +!($i instanceof java.lang.String); // XXX how to check instanceof int?
7.55 +$i.intValue() => $i :: $i instanceof java.lang.Integer;
7.56 +java.lang.Boolean.TRUE => true;
7.57 +java.lang.Boolean.FALSE => true;
7.58 +$b.booleanValue() => $b :: $b instanceof java.lang.Boolean;
7.59 +java.lang.Boolean.valueOf($b) => $b :: !($b instanceof java.lang.String);
7.60 + */
7.61 +
7.62 +/*
7.63 +java.lang.Class.getConstructor(null) => java.lang.Class.getConstructor();
7.64 +java.lang.Class.getConstructor(new java.lang.Class[] {$cs$}) => java.lang.Class.getConstructor($cs$);
7.65 +java.lang.Class.getMethod(null) => java.lang.Class.getMethod();
7.66 +java.lang.Class.getMethod(new java.lang.Class[] {$cs$}) => java.lang.Class.getMethod($cs$);
7.67 +java.lang.Class.getDeclaredConstructor(null) => java.lang.Class.getDeclaredConstructor();
7.68 +java.lang.Class.getDeclaredConstructor(new java.lang.Class[] {$cs$}) => java.lang.Class.getDeclaredConstructor($cs$);
7.69 +java.lang.Class.getDeclaredMethod(null) => java.lang.Class.getDeclaredMethod();
7.70 +java.lang.Class.getDeclaredMethod(new java.lang.Class[] {$cs$}) => java.lang.Class.getDeclaredMethod($cs$);
7.71 +java.lang.reflect.Constructor.newInstance(null) => java.lang.reflect.Constructor.newInstance();
7.72 +java.lang.reflect.Constructor.newInstance(new java.lang.Object[] {$os$}) => java.lang.reflect.Constructor.newInstance($os$);
7.73 +java.lang.reflect.Method.invoke($o, null) => java.lang.reflect.Method.invoke($o);
7.74 +java.lang.reflect.Method.invoke($o, new java.lang.Object[] {$os$}) => java.lang.reflect.Method.invoke($o, $os$);
7.75 +java.text.MessageFormat.format($p, new java.lang.Object[] {$os$}) => java.text.MessageFormat.format($p, $os$);
7.76 +*/
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8.2 +++ b/apisupport.jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/layer.xml Tue Apr 04 17:21:21 2006 +0000
8.3 @@ -0,0 +1,46 @@
8.4 +<?xml version="1.0" encoding="UTF-8"?>
8.5 +<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
8.6 +<filesystem>
8.7 + <folder name="Jackpot">
8.8 + <folder name="Rules">
8.9 + <file name="ErrorManagerJackpot.rules" url="ErrorManagerJackpot.rules"/>
8.10 + <!-- XXX should be somehow merged with the preceding one: -->
8.11 + <file name="annotate-to-initcause.rules" url="annotate-to-initcause.rules"/>
8.12 + <file name="jdk5.rules" url="jdk5.rules"/>
8.13 + <file name="lookup-convenience.rules" url="lookup-convenience.rules"/>
8.14 + <file name="resourcebundle2nbbundle.rules" url="resourcebundle2nbbundle.rules"/>
8.15 + </folder>
8.16 + </folder>
8.17 + <!-- XXX delete after #74393 is fixed: -->
8.18 + <folder name="Services">
8.19 + <folder name="Jackpot">
8.20 + <folder name="Transformers">
8.21 + <file name="org-netbeans-modules-apisupport-jackpotrules-annotate-to-initcause.settings" url="nbres:/org/netbeans/modules/jackpot/resources/jackpotCommand.xml">
8.22 + <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/jackpot/resources/refactoring.png"/>
8.23 + <attr name="name" stringvalue="ErrorManager.annotate -> Throwable.initCause"/>
8.24 + <attr name="command" stringvalue="/Jackpot/Rules/annotate-to-initcause.rules"/>
8.25 + </file>
8.26 + <file name="org-netbeans-modules-apisupport-jackpotrules-jdk5.settings" url="nbres:/org/netbeans/modules/jackpot/resources/jackpotCommand.xml">
8.27 + <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/jackpot/resources/refactoring.png"/>
8.28 + <attr name="name" stringvalue="JDK 5 Miscellany"/>
8.29 + <attr name="command" stringvalue="/Jackpot/Rules/jdk5.rules"/>
8.30 + </file>
8.31 + <file name="org-netbeans-modules-apisupport-jackpotrules-lookup-convenience.settings" url="nbres:/org/netbeans/modules/jackpot/resources/jackpotCommand.xml">
8.32 + <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/jackpot/resources/refactoring.png"/>
8.33 + <attr name="name" stringvalue="Use Lookup Convenience Methods"/>
8.34 + <attr name="command" stringvalue="/Jackpot/Rules/lookup-convenience.rules"/>
8.35 + </file>
8.36 + <file name="org-netbeans-modules-apisupport-jackpotrules-resourcebundle2nbbundle.settings" url="nbres:/org/netbeans/modules/jackpot/resources/jackpotCommand.xml">
8.37 + <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/jackpot/resources/refactoring.png"/>
8.38 + <attr name="name" stringvalue="ResourceBundle -> NbBundle"/>
8.39 + <attr name="command" stringvalue="/Jackpot/Rules/resourcebundle2nbbundle.rules"/>
8.40 + </file>
8.41 + <file name="org-netbeans-modules-apisupport-jackpotrules-.settings" url="nbres:/org/netbeans/modules/jackpot/resources/jackpotCommand.xml">
8.42 + <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/jackpot/resources/refactoring.png"/>
8.43 + <attr name="name" stringvalue="ErrorManager -> Logger"/>
8.44 + <attr name="command" stringvalue="/Jackpot/Rules/ErrorManagerJackpot.rules"/>
8.45 + </file>
8.46 + </folder>
8.47 + </folder>
8.48 + </folder>
8.49 +</filesystem>
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
9.2 +++ b/apisupport.jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/lookup-convenience.rules Tue Apr 04 17:21:21 2006 +0000
9.3 @@ -0,0 +1,6 @@
9.4 +$lkp.lookup(new Lookup.Template($clazz)).allInstances() => $lkp.lookupAll($clazz)
9.5 + :: $lkp instanceof org.openide.util.Lookup,
9.6 + $clazz instanceof java.lang.Class;
9.7 +$lkp.lookup(new Lookup.Template($clazz)) => $lkp.lookupResult($clazz)
9.8 + :: $lkp instanceof org.openide.util.Lookup,
9.9 + $clazz instanceof java.lang.Class;
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
10.2 +++ b/apisupport.jackpotrules/src/org/netbeans/modules/apisupport/jackpotrules/resourcebundle2nbbundle.rules Tue Apr 04 17:21:21 2006 +0000
10.3 @@ -0,0 +1,1 @@
10.4 +java.util.ResourceBundle.getBundle($bundle) => org.openide.util.NbBundle.getBundle($bundle);