[JIRA] (JENKINS-41196) Pluggable core component

2019-01-17 Thread o.v.nenas...@gmail.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Oleg Nenashev commented on  JENKINS-41196  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Pluggable core component   
 

  
 
 
 
 

 
 I believe this story is largely replaced by Custom WAR Packager anyway (https://github.com/jenkinsci/custom-war-packager). This tool allows quickly building Custom WARs so that users can pick up Remoting/Stapler updates for their own baselines if they do not want to upgrade due to various reasons. Not a 100% solution, but it definitely helps in this use-case  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-41196) Pluggable core component

2019-01-17 Thread bat...@batmat.net (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Baptiste Mathus closed an issue as Incomplete  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Closing as per Jesse Glick recommendation in https://github.com/jenkinsci/jenkins/pull/2754#issuecomment-453667192. We'll reopen when/if this works gets rebooted. Most of the related PRs now also need anyway to get conflict resolution and didn't receive changes since 1+ year.  
 

  
 
 
 
 

 
 Jenkins /  JENKINS-41196  
 
 
  Pluggable core component   
 

  
 
 
 
 

 
Change By: 
 Baptiste Mathus  
 
 
Status: 
 In Progress Closed  
 
 
Resolution: 
 Incomplete  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-41196) Pluggable core component

2017-02-18 Thread scm_issue_l...@java.net (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 SCM/JIRA link daemon commented on  JENKINS-41196  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Pluggable core component   
 

  
 
 
 
 

 
 Code changed in jenkins User: Kohsuke Kawaguchi Path: src/main/java/org/jvnet/hudson/test/AltWebXmlConfiguration.java src/main/java/org/jvnet/hudson/test/HudsonTestCase.java src/main/java/org/jvnet/hudson/test/JenkinsRule.java src/main/java/org/jvnet/hudson/test/NoListenerConfiguration.java http://jenkins-ci.org/commit/jenkins-test-harness/75b0b1ec2c27a15854335334ef1dd83f173a5c79 Log: JENKINS-41196 added alternate bootstrap logic With more servlets and filters initialized from within WebAppMain, test harness needs to adjust as well.  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-41196) Pluggable core component

2017-02-18 Thread k...@kohsuke.org (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Kohsuke Kawaguchi updated an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-41196  
 
 
  Pluggable core component   
 

  
 
 
 
 

 
Change By: 
 Kohsuke Kawaguchi  
 

  
 
 
 
 

 
 h1. ProblemsThere are quite a few libraries that core bundles. Some of them, such as remoting, stapler, and so on, are heavily used by plugins and systems we build on top of Jenkins core, such as Blue Ocean.This situation creates a class of pain for those plugins; when they need a newer feature or a bug fix in those libraries, they have to wait for multiple months before the change propagates to a version of LTS.h1. SolutionIf we can modify Jenkins core such that it allows any of its libraries to be shipped as plugins, then this would eliminate this class of pain altogether. h1. Requirements* In plugin manifest, BO can specify the minimum core version that bundles one version of stapler, then the version of stapler it requires separately, and the latter is newer than the former* Jenkins admin can install a new remoting plugin in order to deploy a security fix without upgrading the whole Jenkins.* From users’ & administrators’ perspective, “stapler plugin” and “remoting” plugin looks no different from “git plugin” and “promoted builds plugin.”* In a running Jenkins JVM, there’s only one version of stapler or remoting active at any given moment.* Spend a reasonable engineering effort to make Jenkins robust in the face of administrators installing wrong set of plugins, old plugins, and other such situations that arise from our weak plugin manager, incompetent users, and so on.h1. Engineering DesignToday, jenkins.war puts core and all its dependencies in WEB-INF/lib and let servlet container classloader load them all. This results in a fully populated classloader by the time Jenkins core boots up, and it makes it impossible for Jenkins to programmatically control versions of libraries to use.We can change this if Jenkins creates its own classloader during bootstraps, and uses its own logic to decide what jar files to put in there; mix and match from jenkins.war and $JENKINS_HOME.More specifically, we move everything from WEB-INF/lib to WEB-INF/jars, so that core and its dependencies are not loaded by servlet container automatically. Then  place small bootstrap code in WEB-INF/lib instead, which creates a classloader that loads core, then passes on execution to hudson.WebAppMain.In order to allow newer versions of components to be delivered as plugins, this bootstrap process will also pick up some files from $JENKINS_HOME/plugins. The likes of remoting/stapler plugins need to have a flag in them, so that the bootstrap process can put them in the main classloader, while others like git & promoted builds are treated the same as today.Bootstrap code needs to be small and with as little dependencies as possible, so core component plugins need to be different enough from regular plugins. At the same time, they need to look similar enough so that our update center and plugin manager can treat them equally. A boolean entry in MANIFEST.MF would be one example that meets 

[JIRA] (JENKINS-41196) Pluggable core component

2017-02-18 Thread k...@kohsuke.org (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Kohsuke Kawaguchi updated an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-41196  
 
 
  Pluggable core component   
 

  
 
 
 
 

 
Change By: 
 Kohsuke Kawaguchi  
 

  
 
 
 
 

 
 h1. ProblemsThere are quite a few libraries that core bundles. Some of them, such as remoting, stapler, and so on, are heavily used by plugins and systems we build on top of Jenkins core, such as Blue Ocean.This situation creates a class of pain for those plugins; when they need a newer feature or a bug fix in those libraries, they have to wait for multiple months before the change propagates to a version of LTS.h1. SolutionIf we can modify Jenkins core such that it allows any of its libraries to be shipped as plugins, then this would eliminate this class of pain altogether.  h1. Requirements* In plugin manifest, BO can specify the minimum core version that bundles one version of stapler, then the version of stapler it requires separately, and the latter is newer than the former* Jenkins admin can install a new remoting plugin in order to deploy a security fix without upgrading the whole Jenkins.* From users’ & administrators’ perspective, “stapler plugin” and “remoting” plugin looks no different from “git plugin” and “promoted builds plugin.”* In a running Jenkins JVM, there’s only one version of stapler or remoting active at any given moment.* Spend a reasonable engineering effort to make Jenkins robust in the face of administrators installing wrong set of plugins, old plugins, and other such situations that arise from our weak plugin manager, incompetent users, and so on.h1. Engineering DesignToday, jenkins.war puts core and all its dependencies in WEB-INF/lib and let servlet container classloader load them all. This results in a fully populated classloader by the time Jenkins core boots up, and it makes it impossible for Jenkins to programmatically control versions of libraries to use.We can change this if Jenkins creates its own classloader during bootstraps, and uses its own logic to decide what jar files to put in there; mix and match from jenkins.war and $JENKINS_HOME.More specifically, we move everything from WEB-INF/lib to WEB-INF/jars, so that core and its dependencies are not loaded by servlet container automatically. Then  place small bootstrap code in WEB-INF/lib instead, which creates a classloader that loads core, then passes on execution to hudson.WebAppMain.In order to allow newer versions of components to be delivered as plugins, this bootstrap process will also pick up some files from $JENKINS_HOME/plugins. The likes of remoting/stapler plugins need to have a flag in them, so that the bootstrap process can put them in the main classloader, while others like git & promoted builds are treated the same as today.Bootstrap code needs to be small and with as little dependencies as possible, so core component plugins need to be different enough from regular plugins. At the same time, they need to look similar enough so that our update center and plugin manager can treat them equally. A boolean entry in MANIFEST.MF would be one example that meets 

[JIRA] (JENKINS-41196) Pluggable core component

2017-02-18 Thread db...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Daniel Beck updated an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-41196  
 
 
  Pluggable core component   
 

  
 
 
 
 

 
Change By: 
 Daniel Beck  
 
 
Labels: 
 kohsuke-plane-project  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-41196) Pluggable core component

2017-02-17 Thread jgl...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Jesse Glick assigned an issue to Kohsuke Kawaguchi  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-41196  
 
 
  Pluggable core component   
 

  
 
 
 
 

 
Change By: 
 Jesse Glick  
 
 
Assignee: 
 Kohsuke Kawaguchi  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-41196) Pluggable core component

2017-02-17 Thread jgl...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Jesse Glick started work on  JENKINS-41196  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
Change By: 
 Jesse Glick  
 
 
Status: 
 Open In Progress  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-41196) Pluggable core component

2017-02-17 Thread k...@kohsuke.org (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Kohsuke Kawaguchi commented on  JENKINS-41196  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Pluggable core component   
 

  
 
 
 
 

 
 My latest airplane project arrives  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-41196) Pluggable core component

2017-02-17 Thread scm_issue_l...@java.net (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 SCM/JIRA link daemon commented on  JENKINS-41196  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Pluggable core component   
 

  
 
 
 
 

 
 Code changed in jenkins User: Kohsuke Kawaguchi Path: bootstrap/src/main/java/jenkins/bootstrap/BootLogic.java bootstrap/src/main/java/jenkins/bootstrap/Bootstrap.java bootstrap/src/main/java/jenkins/bootstrap/DependenciesTxt.java bootstrap/src/main/java/jenkins/bootstrap/Dependency.java bootstrap/src/main/java/jenkins/bootstrap/Plugin.java core/pom.xml core/src/main/java/hudson/ClassicPluginStrategy.java core/src/main/java/hudson/WebAppMain.java core/src/main/java/hudson/util/BootFailure.java core/src/main/java/jenkins/util/SystemProperties.java pom.xml war/pom.xml war/src/main/webapp/WEB-INF/web.xml http://jenkins-ci.org/commit/jenkins/d13004c5d5ac22a44db18433e1dc8e286185aa81 Log: JENKINS-41196 Implemented the bootstrap logic and necessary packaging change to load the core from a separate classloader.  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-41196) Pluggable core component

2017-01-18 Thread k...@kohsuke.org (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Kohsuke Kawaguchi created an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-41196  
 
 
  Pluggable core component   
 

  
 
 
 
 

 
Issue Type: 
  Improvement  
 
 
Assignee: 
 Unassigned  
 
 
Components: 
 core  
 
 
Created: 
 2017/Jan/19 1:55 AM  
 
 
Priority: 
  Major  
 
 
Reporter: 
 Kohsuke Kawaguchi  
 

  
 
 
 
 

 
 Problems There are quite a few libraries that core bundles. Some of them, such as remoting, stapler, and so on, are heavily used by plugins and systems we build on top of Jenkins core, such as Blue Ocean. This situation creates a class of pain for those plugins; when they need a newer feature or a bug fix in those libraries, they have to wait for multiple months before the change propagates to a version of LTS. Solution If we can modify Jenkins core such that it allows any of its libraries to be shipped as plugins, then this would eliminate this class of pain altogether.   
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
   

[JIRA] (JENKINS-41196) Pluggable core component

2017-01-18 Thread k...@kohsuke.org (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Kohsuke Kawaguchi commented on  JENKINS-41196  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Pluggable core component   
 

  
 
 
 
 

 
 For my internal tracking purpose, the original document is here  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.