diff --git a/bom/pom.xml b/bom/pom.xml index 32bf8e047e..7a80457988 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -208,11 +208,6 @@ THE SOFTWARE. args4j 2.33 - - org.jenkins-ci - bytecode-compatibility-transformer - 2.0 - org.jenkins-ci task-reactor diff --git a/core/pom.xml b/core/pom.xml index bc257967f1..6c1d2e1677 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -212,10 +212,6 @@ THE SOFTWARE. org.jenkins-ci annotation-indexer - - org.jenkins-ci - bytecode-compatibility-transformer - org.jenkins-ci task-reactor diff --git a/core/src/main/java/hudson/ClassicPluginStrategy.java b/core/src/main/java/hudson/ClassicPluginStrategy.java index 5b584e5de7..19f04f0168 100644 --- a/core/src/main/java/hudson/ClassicPluginStrategy.java +++ b/core/src/main/java/hudson/ClassicPluginStrategy.java @@ -52,10 +52,8 @@ import org.apache.tools.ant.util.GlobPatternMapper; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipExtraField; import org.apache.tools.zip.ZipOutputStream; -import org.jenkinsci.bytecode.Transformer; import edu.umd.cs.findbugs.annotations.NonNull; -import java.io.Closeable; import java.io.File; import java.io.FileNotFoundException; import java.io.FilenameFilter; @@ -304,7 +302,7 @@ public class ClassicPluginStrategy implements PluginStrategy { } } - AntClassLoader2 classLoader = new AntClassLoader2(parent); + AntWithFindResourceClassLoader classLoader = new AntWithFindResourceClassLoader(parent, true); classLoader.addPathFiles(paths); return classLoader; } @@ -708,25 +706,7 @@ public class ClassicPluginStrategy implements PluginStrategy { } } - /** - * {@link AntClassLoader} with a few methods exposed, {@link Closeable} support, and {@link Transformer} support. - */ - private final class AntClassLoader2 extends AntWithFindResourceClassLoader implements Closeable { - private AntClassLoader2(ClassLoader parent) { - super(parent, true); - } - - @Override - protected Class defineClassFromData(File container, byte[] classData, String classname) throws IOException { - if (!DISABLE_TRANSFORMER) - classData = pluginManager.getCompatibilityTransformer().transform(classname, classData, this); - return super.defineClassFromData(container, classData, classname); - } - } - /* Unused since 1.527, see https://github.com/jenkinsci/jenkins/commit/47de54d070f67af95b4fefb6d006a72bb31a5cb8 */ @Deprecated public static boolean useAntClassLoader = SystemProperties.getBoolean(ClassicPluginStrategy.class.getName()+".useAntClassLoader"); - @SuppressFBWarnings("MS_SHOULD_BE_FINAL") - public static boolean DISABLE_TRANSFORMER = SystemProperties.getBoolean(ClassicPluginStrategy.class.getName()+".noBytecodeTransformer"); } diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index fae96692d2..2939186379 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -79,7 +79,6 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.LogFactory; import org.jenkinsci.Symbol; -import org.jenkinsci.bytecode.Transformer; import org.jvnet.hudson.reactor.Executable; import org.jvnet.hudson.reactor.Reactor; import org.jvnet.hudson.reactor.TaskBuilder; @@ -334,8 +333,6 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas // and load plugin-contributed classes. public final ClassLoader uberClassLoader = new UberClassLoader(); - private final Transformer compatibilityTransformer = new Transformer(); - /** * Once plugin is uploaded, this flag becomes true. * This is used to report a message that Jenkins needs to be restarted @@ -366,17 +363,6 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas this.workDir = StringUtils.isBlank(workDir) ? null : new File(workDir); strategy = createPluginStrategy(); - - // load up rules for the core first - try { - compatibilityTransformer.loadRules(getClass().getClassLoader()); - } catch (IOException e) { - LOGGER.log(Level.WARNING, "Failed to load compatibility rewrite rules",e); - } - } - - public Transformer getCompatibilityTransformer() { - return compatibilityTransformer; } public Api getApi() { @@ -521,13 +507,6 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas } }); - // Let's see for a while until we open this functionality up to plugins -// g.followedBy().attains(PLUGINS_LISTED).add("Load compatibility rules", new Executable() { -// public void run(Reactor reactor) throws Exception { -// compatibilityTransformer.loadRules(uberClassLoader); -// } -// }); - session.addAll(g.discoverTasks(session)); pluginListed = true; // technically speaking this is still too early, as at this point tasks are merely scheduled, not necessarily executed. diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index 5d6eef05f6..ba49050a04 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -110,7 +110,6 @@ import jenkins.scm.SCMDecisionHandler; import jenkins.triggers.SCMTriggerItem; import jenkins.util.TimeDuration; import net.sf.json.JSONObject; -import org.jenkinsci.bytecode.AdaptField; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -231,7 +230,6 @@ public abstract class AbstractProject

,R extends A /** * List of all {@link Trigger}s for this project. */ - @AdaptField(was=List.class) protected volatile DescribableList,TriggerDescriptor> triggers = new DescribableList<>(this); private static final AtomicReferenceFieldUpdater triggersUpdater = AtomicReferenceFieldUpdater.newUpdater(AbstractProject.class,DescribableList.class,"triggers"); diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index 97bdcae70d..8a19fef722 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -113,7 +113,6 @@ import javax.servlet.ServletException; import jenkins.model.Jenkins; import jenkins.security.QueueItemAuthenticator; import jenkins.util.AtmostOneTaskExecutor; -import org.jenkinsci.bytecode.AdaptField; import org.jenkinsci.remoting.RoleChecker; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.HttpResponse; @@ -2107,7 +2106,6 @@ public class Queue extends ResourceController implements Saveable { return id; } - @AdaptField(was=int.class, name="id") @Deprecated public int getIdLegacy() { if (id > Integer.MAX_VALUE) {