diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-09 21:20:11 -0500 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-09 22:43:00 -0500 |
commit | e8673866b79f7473391dcee26243eee80d5d3cb6 (patch) | |
tree | 16146affeebdb58cd302a1f8527220c906818c96 /compatibility/Dependency.java | |
parent | bee13ba7a4458482ce00a5c6bae4cd64328c4e5e (diff) | |
download | cbt-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.java | 16 |
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(); } + |