Commit Graph
72 Commits
Author SHA1 Message Date
Jesse Glick a236b34364 DetachedPlugin entry.
(cherry picked from commit e4ba41d539)
2015-02-04 14:04:40 -05:00
Jesse Glick 898f1f76a3 [FIXED JENKINS-12124] Occasionally errors loading plugin classes since it is expected that findClass (and findLoadedClass) are called under synchronization.
The problem was masked by a blind assumption that an InvocationTargetException was in fact wrapping a ClassNotFoundException.
Many thanks to @gotwarlost for demonstrating how to reproduce the problem and diagnosing the cause.
2014-02-21 15:03:16 -05:00
Jesse Glick b2c69b4a35 Split RawHtmlMarkupFormatter into a bundled plugin (antisamy-markup-formatter).
https://trello.com/c/NvZt4WXu/15-rawhtmlmarkupformatter
2014-02-17 12:22:53 -05:00
Jesse Glick 2669e4a86d Split out windows-slaves-plugin.
https://trello.com/c/MhG9Ksqa/12-windows-service-slave-launcher
2014-01-03 17:20:01 -05:00
Jesse Glick c2366eeda5 Updated a couple of comments referring to Java 5. 2013-11-15 08:46:14 -05:00
Jesse Glick 15ac490af1 Now that we use Java 6, can finally deprecate IOException2. 2013-11-15 08:19:59 -05:00
Kohsuke Kawaguchi f15f49f6f4 Merge pull request #923 from evernat/master
Optimize and close Zip resources in ClassicPluginStrategy and FilePath
2013-10-27 12:05:23 -07:00
Kohsuke Kawaguchi f98c4627da [JENKINS-19383]
Escape hatch to disable bytecode transformation in case this causes other unforeseen problems.
2013-10-25 09:36:44 -07:00
Jesse Glick 89149277ae matrix-auth 1.0.2 (couple of fixups) 2013-10-04 17:06:28 -04:00
Jesse Glick b0ac41c3b1 Split off matrix-auth plugin. 2013-10-04 16:27:15 -04:00
evernat f5742df16b Optimize and close Zip resources in ClassicPluginStrategy and FilePath 2013-08-27 00:03:09 +02:00
Kohsuke Kawaguchi 47de54d070 [FIXED JENKINS-18677]
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.
2013-08-02 22:29:21 -07:00
Nicolas De Loof a6926e1c51 [FIXED JENKINS-18654] exlude disabled plugins from transitive dependency list 2013-07-08 11:45:26 +02:00
Kohsuke Kawaguchi f7330d7a15 [FIXED JENKINS-15120]
- 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.
2013-06-08 12:21:18 +03:00
Kohsuke Kawaguchi a9fc20d5b1 added a mechanism to exclude certain packages for all the plugins.
This is primarily to mask JavaEE API classes. Mask-Classes itself is insufficient as I described in the comment
2012-12-19 13:59:51 -08:00
Kohsuke Kawaguchi 5237146b21 Mailer is split off to a plugin now 2012-12-08 16:24:14 -08:00
Jesse Glick ec0b59d230 URLClassLoader is Closeable in Java 7, no need for a workaround. 2012-11-16 15:54:02 -05:00
Kohsuke Kawaguchi 9a178aa8cc Added a mechanism to filter extension points as they are discovered.
I couldn't quite find one place to do this, so it's spread apart
somewhat.
2012-06-15 13:42:23 -07:00
Kohsuke Kawaguchi b1604e85ce adding in those dependencies 2012-05-30 10:42:28 -07:00
Kohsuke Kawaguchi 903bf089b7 External monitor job type is moved to a plugin.
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.
2012-05-29 17:48:35 -07:00
Kohsuke Kawaguchi 482b433333 If the destDir is available as a file, this fails in a weird way 2012-02-09 09:34:59 -08:00
imod 386618dca4 support new JenkinsPlugin type (jpi) 2012-01-03 11:47:37 -08:00
Kohsuke Kawaguchi 601cb6bb43 implement findResource( 2011-10-10 18:54:55 +09:00
Kohsuke Kawaguchi ee4e9c6149 fully implemented faster classloader lookup 2011-10-10 18:54:55 +09:00
Kohsuke Kawaguchi 0751429b8f added faster resolution 2011-10-10 18:54:55 +09:00
Kohsuke Kawaguchi 5e0591372b typo 2011-10-10 18:54:54 +09:00
Kohsuke Kawaguchi f41ecbc7ac if the plugin is built with 1.431-SNAPSHOT core, we don't want that to automatically pick up ant & javadoc. We only want that for plugins built against 1.430 or earlier. 2011-09-08 19:48:22 -07:00
Kohsuke Kawaguchi 930dfd77d7 adding back javadoc as a plugin 2011-09-08 18:02:56 -07:00
Kohsuke Kawaguchi 3925eaa3db Ant support is split off to a plugin. 2011-09-08 18:02:55 -07:00
Kohsuke Kawaguchi aa93737e13 Prefer Jenkins-Version 2011-09-08 18:02:55 -07:00
Kohsuke Kawaguchi 211231d12b Merged 2dbe144bb7
Conflicts:
	core/src/main/java/hudson/LocalPluginManager.java
2011-08-29 11:52:20 -07:00
Kohsuke Kawaguchi f322503d3a Reverting 4de81f1eb3.
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
2011-08-29 10:56:55 -07:00
Christoph Kutzinski 3b154312c8 deleted encoding-less variant of readFirstLine according to https://github.com/jenkinsci/jenkins/commit/4ee8d6890c354e67daeb5f55806c16f6986b32c3#core/src/main/java/hudson/util/IOUtils.java-P13 2011-07-23 23:46:39 +02:00
Jerome Lacoste 386ec0d15e Ensure that the Readers are closed properly 2011-07-23 07:11:06 -07:00
Christoph Kutzinski 0cd964074a Close FileReader (FindBugs finding) 2011-07-17 23:26:24 +02:00
Kohsuke Kawaguchi 5dddebcf94 Corrected backward incompatible signature changes in 70c1065814. 2011-06-17 22:01:45 -07:00
Nigel Magnay 5679d019ec Move hudson.model.Jenkins to be jenkins.model.Jenkins - part II
Just import changes, from hudson.model.Jenkins -> jenkins.model.Jenkins,
and Javadoc comments.

Signed-off-by: Nigel Magnay <nigel.magnay@gmail.com>
2011-05-29 11:06:28 +01:00
Nigel Magnay 70c1065814 Stage 1 : Create hudson.model.Jenkins, make Hudson derive from Jenkins.
Signed-off-by: Nigel Magnay <nigel.magnay@gmail.com>
2011-05-29 11:00:58 +01:00
Stuart McCulloch 998752442a JENKINS-8897 2011-03-01 12:07:58 -08:00
olamy fded8ce6d0 [HUDSON-5360] add a new classloader ("a la" child first for plugin)
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@35076 71c3de6d-444a-0410-be80-ed276b4c234a
2010-09-21 21:33:24 +00:00
mindless 81b3603c13 [FIXED HUDSON-6966] Plugins with dependencies show wrong description on
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
2010-07-14 16:32:26 +00:00
kohsuke 6253fb1b24 Test performance improvement by allowing multiple Hudsons to reuse classloaders.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@30070 71c3de6d-444a-0410-be80-ed276b4c234a
2010-04-14 22:55:18 +00:00
kohsuke d480416ac9 modified to allow subtypes to take over classloader creation.
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@25837 71c3de6d-444a-0410-be80-ed276b4c234a
2010-01-15 01:09:15 +00:00
kohsuke 8ff55b89e3 adding information that assists debugging
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@25642 71c3de6d-444a-0410-be80-ed276b4c234a
2010-01-10 16:54:41 +00:00
kohsuke 3e71489e47 handling implicit dependency
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@24925 71c3de6d-444a-0410-be80-ed276b4c234a
2009-12-24 20:09:43 +00:00
lacostej 2a5945e56b reuse IOException2
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@24654 71c3de6d-444a-0410-be80-ed276b4c234a
2009-12-16 16:48:57 +00:00
lacostej 0c9a22f07e indentation
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@24653 71c3de6d-444a-0410-be80-ed276b4c234a
2009-12-16 16:48:36 +00:00
mindless b88fa252ee include plugin name in "is disabled" log message
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@24560 71c3de6d-444a-0410-be80-ed276b4c234a
2009-12-11 05:19:36 +00:00
kohsuke c154d431f0 [HUDSON-5048] Fixed the multi-classloader support in the remoting code. I confirmed that this fixes HUDSON-4993 without modifying the warnings/analysis-core plugin.
I'm letting Hudson run the whole test suite to see if there's any regression caused by this.

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@24490 71c3de6d-444a-0410-be80-ed276b4c234a
2009-12-09 01:45:57 +00:00
kohsuke c9f90e508a This logging doesn't contribute much
git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@24033 71c3de6d-444a-0410-be80-ed276b4c234a
2009-11-24 22:01:22 +00:00