aboutsummaryrefslogtreecommitdiff
path: root/compatibility/Dependency.java
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-02-09 21:20:11 -0500
committerChristopher Vogt <oss.nsp@cvogt.org>2017-02-09 22:43:00 -0500
commite8673866b79f7473391dcee26243eee80d5d3cb6 (patch)
tree16146affeebdb58cd302a1f8527220c906818c96 /compatibility/Dependency.java
parentbee13ba7a4458482ce00a5c6bae4cd64328c4e5e (diff)
downloadcbt-e8673866b79f7473391dcee26243eee80d5d3cb6.tar.gz
cbt-e8673866b79f7473391dcee26243eee80d5d3cb6.tar.bz2
cbt-e8673866b79f7473391dcee26243eee80d5d3cb6.zip
idempotent change propagation
using lastModified instead of a non-idempotent needsUpdate flag this fixes a bug where dependees would not be rebuilt if cbt exited or was killed after dependencies were already rebuilt.
Diffstat (limited to 'compatibility/Dependency.java')
-rw-r--r--compatibility/Dependency.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/compatibility/Dependency.java b/compatibility/Dependency.java
index efb9214..1f719c2 100644
--- a/compatibility/Dependency.java
+++ b/compatibility/Dependency.java
@@ -2,10 +2,22 @@ package cbt;
import java.io.*;
public interface Dependency{
+ // recently added methods that needs default values for old versions to work
+ public default String moduleKey(){
+ throw new IncompatibleCbtVersionException("You need to define method moduleKey.");
+ };
+ public default long lastModified(){
+ throw new IncompatibleCbtVersionException("You need to define method lastModified.");
+ };
+
+ // methods that exist for longer which every CBT version in use should have by now, no default values needed
public abstract String show();
- public abstract String moduleKey();
- public abstract Boolean needsUpdateCompat();
public abstract Dependency[] dependenciesArray();
public abstract File[] dependencyClasspathArray();
public abstract File[] exportedClasspathArray();
+
+ // deprecated methods
+ @java.lang.Deprecated
+ public abstract boolean needsUpdateCompat();
}
+