diff options
author | Reinier Zwitserloot <r.zwitserloot@projectlombok.org> | 2021-03-16 17:09:13 +0100 |
---|---|---|
committer | Reinier Zwitserloot <r.zwitserloot@projectlombok.org> | 2021-03-16 17:09:13 +0100 |
commit | 476a43b970b01eafcc053eead69db57a0ab854cf (patch) | |
tree | 5055f27404a968952129ee493bbf4f572655f2a6 /src/installer/lombok | |
parent | a49aec582b129687cee7d2c87b586a20bceb0c43 (diff) | |
download | lombok-476a43b970b01eafcc053eead69db57a0ab854cf.tar.gz lombok-476a43b970b01eafcc053eead69db57a0ab854cf.tar.bz2 lombok-476a43b970b01eafcc053eead69db57a0ab854cf.zip |
[build] sped up the build considerable.
We used to use the mango SPI processor, but this had two major issues:
* ecj wouldn't run annotation processors, requiring a separate proc:only compile run with javac
* mangoSPI couldn't do incremental compilation, so this required a full rebuild just to generate SPI files, every time.
Addressed by updating to IPP40 which does support explicit annotation processors even for ecj, and
adding our own SPI generating annotation processor to the build which can deal with incrementals.
There are some limits; removing a `@Provides` annotation on an existing type will need a full clean to pick that up, for example.
These limits seem quite exotic, though.
Diffstat (limited to 'src/installer/lombok')
9 files changed, 29 insertions, 38 deletions
diff --git a/src/installer/lombok/installer/Installer.java b/src/installer/lombok/installer/Installer.java index 94cc1a45..1ca77065 100644 --- a/src/installer/lombok/installer/Installer.java +++ b/src/installer/lombok/installer/Installer.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2016 The Project Lombok Authors. + * Copyright (C) 2009-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -40,8 +40,7 @@ import lombok.core.SpiLoadUtil; import lombok.core.Version; import lombok.installer.OsUtils.OS; import lombok.patcher.ClassRootFinder; - -import org.mangosdk.spi.ProviderFor; +import lombok.spi.Provides; import com.zwitserloot.cmdreader.CmdReader; import com.zwitserloot.cmdreader.Description; @@ -105,7 +104,7 @@ public class Installer { return a.equals(b); } - @ProviderFor(LombokApp.class) + @Provides public static class GraphicalInstallerApp extends LombokApp { @Override public String getAppName() { return "installer"; @@ -124,7 +123,7 @@ public class Installer { } } - @ProviderFor(LombokApp.class) + @Provides public static class CommandLineInstallerApp extends LombokApp { @Override public String getAppName() { return "install"; @@ -139,7 +138,7 @@ public class Installer { } } - @ProviderFor(LombokApp.class) + @Provides public static class CommandLineUninstallerApp extends LombokApp { @Override public String getAppName() { return "uninstall"; diff --git a/src/installer/lombok/installer/eclipse/AngularIDELocationProvider.java b/src/installer/lombok/installer/eclipse/AngularIDELocationProvider.java index 6d580e13..0f0aac0d 100644 --- a/src/installer/lombok/installer/eclipse/AngularIDELocationProvider.java +++ b/src/installer/lombok/installer/eclipse/AngularIDELocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018 The Project Lombok Authors. + * Copyright (C) 2018-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,11 +23,10 @@ package lombok.installer.eclipse; import java.util.Collections; -import org.mangosdk.spi.ProviderFor; - import lombok.installer.IdeLocationProvider; +import lombok.spi.Provides; -@ProviderFor(IdeLocationProvider.class) +@Provides(IdeLocationProvider.class) public class AngularIDELocationProvider extends EclipseProductLocationProvider { private static final EclipseProductDescriptor ANGULAR = new StandardProductDescriptor( diff --git a/src/installer/lombok/installer/eclipse/EclipseLocationProvider.java b/src/installer/lombok/installer/eclipse/EclipseLocationProvider.java index fa2ce958..317c95cb 100644 --- a/src/installer/lombok/installer/eclipse/EclipseLocationProvider.java +++ b/src/installer/lombok/installer/eclipse/EclipseLocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2016 The Project Lombok Authors. + * Copyright (C) 2009-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,10 +24,9 @@ package lombok.installer.eclipse; import java.util.Collections; import lombok.installer.IdeLocationProvider; +import lombok.spi.Provides; -import org.mangosdk.spi.ProviderFor; - -@ProviderFor(IdeLocationProvider.class) +@Provides(IdeLocationProvider.class) public class EclipseLocationProvider extends EclipseProductLocationProvider { private static final EclipseProductDescriptor ECLIPSE = new StandardProductDescriptor( diff --git a/src/installer/lombok/installer/eclipse/JbdsLocationProvider.java b/src/installer/lombok/installer/eclipse/JbdsLocationProvider.java index 635f304a..75805f21 100644 --- a/src/installer/lombok/installer/eclipse/JbdsLocationProvider.java +++ b/src/installer/lombok/installer/eclipse/JbdsLocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2016 The Project Lombok Authors. + * Copyright (C) 2013-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,10 +24,9 @@ package lombok.installer.eclipse; import java.util.Collections; import lombok.installer.IdeLocationProvider; +import lombok.spi.Provides; -import org.mangosdk.spi.ProviderFor; - -@ProviderFor(IdeLocationProvider.class) +@Provides(IdeLocationProvider.class) public class JbdsLocationProvider extends EclipseProductLocationProvider { private static final EclipseProductDescriptor JBDS = new StandardProductDescriptor( diff --git a/src/installer/lombok/installer/eclipse/MyEclipseLocationProvider.java b/src/installer/lombok/installer/eclipse/MyEclipseLocationProvider.java index 298cabd6..e923202d 100644 --- a/src/installer/lombok/installer/eclipse/MyEclipseLocationProvider.java +++ b/src/installer/lombok/installer/eclipse/MyEclipseLocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 The Project Lombok Authors. + * Copyright (C) 2016-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,10 +24,9 @@ package lombok.installer.eclipse; import java.util.Collections; import lombok.installer.IdeLocationProvider; +import lombok.spi.Provides; -import org.mangosdk.spi.ProviderFor; - -@ProviderFor(IdeLocationProvider.class) +@Provides(IdeLocationProvider.class) public class MyEclipseLocationProvider extends EclipseProductLocationProvider { private static final EclipseProductDescriptor MY_ECLIPSE = new StandardProductDescriptor( diff --git a/src/installer/lombok/installer/eclipse/RhcrLocationProvider.java b/src/installer/lombok/installer/eclipse/RhcrLocationProvider.java index d4f39f3b..0731d5bd 100644 --- a/src/installer/lombok/installer/eclipse/RhcrLocationProvider.java +++ b/src/installer/lombok/installer/eclipse/RhcrLocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020 The Project Lombok Authors. + * Copyright (C) 2020-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,10 +24,9 @@ package lombok.installer.eclipse; import java.util.Collections; import lombok.installer.IdeLocationProvider; +import lombok.spi.Provides; -import org.mangosdk.spi.ProviderFor; - -@ProviderFor(IdeLocationProvider.class) +@Provides(IdeLocationProvider.class) public class RhcrLocationProvider extends EclipseProductLocationProvider { private static final EclipseProductDescriptor RHCR = new StandardProductDescriptor( "Red Hat CodeReady Studio", diff --git a/src/installer/lombok/installer/eclipse/RhdsLocationProvider.java b/src/installer/lombok/installer/eclipse/RhdsLocationProvider.java index 5e1d303d..030b96bb 100644 --- a/src/installer/lombok/installer/eclipse/RhdsLocationProvider.java +++ b/src/installer/lombok/installer/eclipse/RhdsLocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2016 The Project Lombok Authors. + * Copyright (C) 2013-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,10 +24,9 @@ package lombok.installer.eclipse; import java.util.Collections; import lombok.installer.IdeLocationProvider; +import lombok.spi.Provides; -import org.mangosdk.spi.ProviderFor; - -@ProviderFor(IdeLocationProvider.class) +@Provides(IdeLocationProvider.class) public class RhdsLocationProvider extends EclipseProductLocationProvider { private static final EclipseProductDescriptor RHDS = new StandardProductDescriptor( diff --git a/src/installer/lombok/installer/eclipse/STS4LocationProvider.java b/src/installer/lombok/installer/eclipse/STS4LocationProvider.java index 47a07bdd..068ec6e9 100644 --- a/src/installer/lombok/installer/eclipse/STS4LocationProvider.java +++ b/src/installer/lombok/installer/eclipse/STS4LocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018 The Project Lombok Authors. + * Copyright (C) 2018-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,10 +25,9 @@ import java.util.Arrays; import java.util.Collections; import lombok.installer.IdeLocationProvider; +import lombok.spi.Provides; -import org.mangosdk.spi.ProviderFor; - -@ProviderFor(IdeLocationProvider.class) +@Provides(IdeLocationProvider.class) public class STS4LocationProvider extends EclipseProductLocationProvider { private static final EclipseProductDescriptor STS4 = new StandardProductDescriptor("Spring Tools Suite 4", diff --git a/src/installer/lombok/installer/eclipse/STSLocationProvider.java b/src/installer/lombok/installer/eclipse/STSLocationProvider.java index d2efb956..7c42cf62 100644 --- a/src/installer/lombok/installer/eclipse/STSLocationProvider.java +++ b/src/installer/lombok/installer/eclipse/STSLocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2016 The Project Lombok Authors. + * Copyright (C) 2009-2021 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,10 +24,9 @@ package lombok.installer.eclipse; import java.util.Collections; import lombok.installer.IdeLocationProvider; +import lombok.spi.Provides; -import org.mangosdk.spi.ProviderFor; - -@ProviderFor(IdeLocationProvider.class) +@Provides(IdeLocationProvider.class) public class STSLocationProvider extends EclipseProductLocationProvider { private static final EclipseProductDescriptor STS = new StandardProductDescriptor("STS", |