Integrated bytecode-compatibility-transformer that allows core to
do signature changes on properties that plugins might depend on.
The library performs necessary bytecode transformation to achieve this.
The first use of this is to fix plugins that looks for List
AbstractProject.triggers, thereby resolving JENKINS-18677.
For the time being, I'm not loading such compatibility annotations from
plugins, but I did code that in PluginManager. Let's see how this
feature work out for a while in the core, and if it looks stable and
solid, we'll open it up to plugins at that point.
- integrated the newer release of remoting
- jar caching won't work with class file directory, so plugin
WEB-INF/classes are now exploded as WEB-INF/lib/classes.jar
(This should also solve the problem of slow plugin extraction in the
presene of Anti-virus software on Windows.)
- because the structure of the exploded jar file has changed, I changed
the up-to-date check timestamp file name to force re-extraction in
existing installations.
The actual release needs to happen in a lock step, as the new plugin
needs to require yet-to-be-released version of the core. So for the time
being it's a snapshot dependency, deployed in the snapshot repository.
Max Spring discovered a stack overflow in http://jenkins.361315.n4.nabble.com/channel-example-and-plugin-classes-gives-ClassNotFoundException-td3756092.html that pointed this call into thread context classloader (TCL) as the culprit. Independently, Paul Sandoz discovered the same issue in our products. If TCL is another classloader that delegates to UberClassLoader (UCL), this code causes infinite recursion.
And moreover, given the goal of UCL, it seems wrong that this class is changing behaviour based on contextual information like TCL.
In looking at 4de81f1eb3, the change was introduced to make sure XStream unmarshalling invoked from Plugin.start() would see the classes in that plugin. This was an issue back then when plugins are prepared and loaded one by one, as UCL didn't have visibility into plugins being prepared. But in the current Jenkins, classloaders for all the plugins are prepared, before any plugin gets started, so by the time Plugin.start() runs, UCL is fully functioning.
Therefore, there's no need to consult TCL for the purpose of resolving its own classes. I could have also removed the code that sets TCL, but because some libraries often depend on TCL and doesn't properly look at caller class, I'm leaving it in, even though it's generally a bad practice to rely on TCL in multi-classloader apps like Jenkins
installed plugins page. DependencyClassLoader checks dependencies before
this plugin, so wrong index.jelly is found for plugins with dependencies.
Added implementation of findResources in DependencyClassLoader, and use
getResources to find the right index.jelly in PluginWrapper.getIndexPage().
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@32876 71c3de6d-444a-0410-be80-ed276b4c234a
https://www.dev.java.net/svn/hudson/branches/managed-startup
........
r23666 | kohsuke | 2009-11-11 15:56:46 -0800 (Wed, 11 Nov 2009) | 1 line
Reworked the initialization logic
........
r23667 | kohsuke | 2009-11-11 16:01:56 -0800 (Wed, 11 Nov 2009) | 1 line
fixed a failing test
........
r23670 | kohsuke | 2009-11-11 16:42:32 -0800 (Wed, 11 Nov 2009) | 1 line
use a non-snapshot
........
r23711 | kohsuke | 2009-11-13 14:27:28 -0800 (Fri, 13 Nov 2009) | 1 line
Session -> Reactor
........
r23782 | kohsuke | 2009-11-17 10:35:14 -0800 (Tue, 17 Nov 2009) | 1 line
Poorman's clone of JDK6 ServiceLoader.
........
r23783 | kohsuke | 2009-11-17 10:56:25 -0800 (Tue, 17 Nov 2009) | 1 line
Integrated the fatal support so that all errors are sent to the listener.
........
r23784 | kohsuke | 2009-11-17 10:58:07 -0800 (Tue, 17 Nov 2009) | 1 line
with the new reactor initialization, things are getting too verbose
........
r23785 | kohsuke | 2009-11-17 11:18:45 -0800 (Tue, 17 Nov 2009) | 1 line
failing to load jobs are non-fatal, too
........
r23788 | kohsuke | 2009-11-17 13:18:59 -0800 (Tue, 17 Nov 2009) | 1 line
logging the exception properly
........
r23809 | kohsuke | 2009-11-17 18:45:47 -0800 (Tue, 17 Nov 2009) | 1 line
releasing 1.1 as milestone
........
r23810 | kohsuke | 2009-11-17 18:47:37 -0800 (Tue, 17 Nov 2009) | 2 lines
- use a better idiom for building a sequence
- use null display name to signify internal book-keeping tasks that's not worth displaying
........
r23817 | kohsuke | 2009-11-18 07:54:17 -0800 (Wed, 18 Nov 2009) | 1 line
removed accidental JDK6 dependency.
........
r23859 | kohsuke | 2009-11-19 11:03:28 -0800 (Thu, 19 Nov 2009) | 1 line
introducing the strategy pattern to hook into key decision making points during the start up
........
r23870 | kohsuke | 2009-11-19 14:33:07 -0800 (Thu, 19 Nov 2009) | 1 line
bug fix. These steps add additional tasks to the reactor, so they need to also prevent future milestones from getting attained.
........
r23879 | kohsuke | 2009-11-19 16:54:59 -0800 (Thu, 19 Nov 2009) | 1 line
moved the logic to the strategy.
........
r23899 | kohsuke | 2009-11-20 09:32:13 -0800 (Fri, 20 Nov 2009) | 1 line
handle duplicate plugins better
........
r23900 | kohsuke | 2009-11-20 10:06:42 -0800 (Fri, 20 Nov 2009) | 1 line
support pre-exploded plugin
........
r23901 | kohsuke | 2009-11-20 10:49:04 -0800 (Fri, 20 Nov 2009) | 1 line
making it a subtype
........
r23902 | kohsuke | 2009-11-20 10:54:42 -0800 (Fri, 20 Nov 2009) | 1 line
allow InitStrategy to skip some tasks
........
r23903 | kohsuke | 2009-11-20 11:03:38 -0800 (Fri, 20 Nov 2009) | 1 line
doc improvement.
........
r23904 | kohsuke | 2009-11-20 11:03:49 -0800 (Fri, 20 Nov 2009) | 1 line
no need to throw exceptions
........
r23906 | kohsuke | 2009-11-20 11:17:34 -0800 (Fri, 20 Nov 2009) | 1 line
debug switch to disable the automatic launch of slaves
........
r23907 | kohsuke | 2009-11-20 11:25:15 -0800 (Fri, 20 Nov 2009) | 1 line
added a magic object for cancelling all saves
........
r23909 | kohsuke | 2009-11-20 11:29:53 -0800 (Fri, 20 Nov 2009) | 1 line
moving initialization up
........
r23913 | kohsuke | 2009-11-20 13:32:08 -0800 (Fri, 20 Nov 2009) | 1 line
seeing heap space problem during tests
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@23992 71c3de6d-444a-0410-be80-ed276b4c234a
https://www.dev.java.net/svn/hudson/branches/rc
........
r20928 | kohsuke | 2009-08-19 14:47:13 -0700 (Wed, 19 Aug 2009) | 1 line
test bug fix.
........
r20929 | kohsuke | 2009-08-19 14:48:23 -0700 (Wed, 19 Aug 2009) | 1 line
bumped up to a new version that has a trouble-shooting hook for resetting cached views
........
r20939 | kohsuke | 2009-08-19 15:20:57 -0700 (Wed, 19 Aug 2009) | 1 line
picking up subversion 1.5
........
r20974 | kohsuke | 2009-08-20 11:50:04 -0700 (Thu, 20 Aug 2009) | 3 lines
Hudson can make mistakes in binding plugins to their right /plugin/NAME/ URLs.
(<a href="http://www.nabble.com/Custom-Plugin---No-external-resources-available-td25064554.html">report</a>)
........
r20975 | kohsuke | 2009-08-20 12:05:11 -0700 (Thu, 20 Aug 2009) | 1 line
Build history AJX update was buggy.
........
r20988 | kohsuke | 2009-08-20 17:01:57 -0700 (Thu, 20 Aug 2009) | 3 lines
Hudson wasn't working on WebLogic on Windows.
(<a href="http://www.nabble.com/Re%3A-Hudson-on-Weblogic-10.3-td25038378.html#a25043415">report</a>)
........
r21009 | kohsuke | 2009-08-21 14:21:35 -0700 (Fri, 21 Aug 2009) | 1 line
[maven-release-plugin] prepare release hudson-
........
r21011 | kohsuke | 2009-08-21 14:22:00 -0700 (Fri, 21 Aug 2009) | 1 line
[maven-release-plugin] prepare for next development iteration
........
r21015 | kohsuke | 2009-08-21 16:00:17 -0700 (Fri, 21 Aug 2009) | 1 line
updated changelog as a part of the release
........
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@21095 71c3de6d-444a-0410-be80-ed276b4c234a