Thanks Gintas,it was still on my todo-list to commit this to the master branch as well.
Maarten Van: "gin...@apache.org" <gin...@apache.org> Aan: notificati...@ant.apache.org Verzonden: donderdag 26 juli 18:07 2018 Onderwerp: [1/2] ant git commit: The <modified> selector has a new built-in algorithm 'lastmodified' which computes a value based upon the lastmodified time of the file. Repository: ant Updated Branches: refs/heads/master f6919079d -> 5d8bc76b1 The <modified> selector has a new built-in algorithm 'lastmodified' which computes a value based upon the lastmodified time of the file. Project: http://git-wip-us.apache.org/repos/asf/ant/repo Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/05c88a60 Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/05c88a60 Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/05c88a60 Branch: refs/heads/master Commit: 05c88a60c2f8b427f3d3d4d9fbd5f71a05c6355b Parents: 23a5135 Author: Maarten Coene <maart...@apache.org> Authored: Wed Jul 25 13:55:48 2018 +0200 Committer: Maarten Coene <maart...@apache.org> Committed: Wed Jul 25 13:55:48 2018 +0200 ---------------------------------------------------------------------- WHATSNEW | 2 + manual/Types/selectors.html | 7 +++ .../modifiedselector/LastModifiedAlgorithm.java | 53 ++++++++++++++++++++ .../modifiedselector/ModifiedSelector.java | 6 ++- 4 files changed, 66 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ant/blob/05c88a60/WHATSNEW ---------------------------------------------------------------------- diff --git a/WHATSNEW b/WHATSNEW index 357168a..28977da 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -6,6 +6,8 @@ Other changes: * generatekey task now supports SubjectAlternativeName during key generation. + * the <modified> selector has a new built-in algorithm 'lastmodified' + which computes a value based upon the lastmodified time of the file. Changes from Ant 1.9.12 TO Ant 1.9.13 ===================================== http://git-wip-us.apache.org/repos/asf/ant/blob/05c88a60/manual/Types/selectors.html ---------------------------------------------------------------------- diff --git a/manual/Types/selectors.html b/manual/Types/selectors.html index 402c711..c260efd 100644 --- a/manual/Types/selectors.html +++ b/manual/Types/selectors.html @@ -742,6 +742,7 @@ <li> hashvalue - HashvalueAlgorithm </li> <li> digest - DigestAlgorithm </li> <li> checksum - ChecksumAlgorithm </li> + <li> lastmodified - LastModifiedAlgorithm </li> </ul> </td> <td valign="top" align="center"> No, defaults to <i>digest</i> </td> @@ -869,6 +870,12 @@ </ul> </td> </tr> + <tr> + <td valign="top"> lastmodified </td> + <td valign="top"> Uses the lastModified property of a file. No additional + configuration is required. + </td> + </tr> <tr><td colspan="2"><font size="+1"><b> Cache options </b></font></td></tr> <tr> <td valign="top"> propertyfile </td> http://git-wip-us.apache.org/repos/asf/ant/blob/05c88a60/src/main/org/apache/tools/ant/types/selectors/modifiedselector/LastModifiedAlgorithm.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/LastModifiedAlgorithm.java b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/LastModifiedAlgorithm.java new file mode 100644 index 0000000..af8358a --- /dev/null +++ b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/LastModifiedAlgorithm.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.tools.ant.types.selectors.modifiedselector; + +import java.io.File; + +/** + * Computes a 'timestamp' of file based on the lastModified time of that file. + * + * @version 2018-07-25 + * @since Ant 1.10.6 and 1.9.14 + */ +public class LastModifiedAlgorithm implements Algorithm { + + /** + * This algorithm doesn't need any configuration. + * Therefore it's always valid. + * @return always true + */ + public boolean isValid() { + return true; + } + + /** + * Computes a 'timestamp' for a file based on the lastModified time. + * @param file The file for which the value should be computed + * @return the timestamp or <i>null</i> if the timestamp couldn't be computed + */ + public String getValue(File file) { + long lastModified = file.lastModified(); + if (lastModified == 0L) { + return null; + } + + return Long.toString(lastModified); + } +} http://git-wip-us.apache.org/repos/asf/ant/blob/05c88a60/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java index c1bcac7..bec1210 100644 --- a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java +++ b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java @@ -321,6 +321,8 @@ public class ModifiedSelector extends BaseExtendSelector algorithm = new DigestAlgorithm(); } else if ("checksum".equals(algoName.getValue())) { algorithm = new ChecksumAlgorithm(); + } else if ("lastmodified".equals(algoName.getValue())) { + algorithm = new LastModifiedAlgorithm(); } } else { if (algorithmClass != null) { @@ -928,7 +930,7 @@ public class ModifiedSelector extends BaseExtendSelector /** * The enumerated type for algorithm. - * The values are "hashValue", "digest" and "checksum". + * The values are "hashValue", "digest", "checksum" and "lastmodified". */ public static class AlgorithmName extends EnumeratedAttribute { /** @@ -936,7 +938,7 @@ public class ModifiedSelector extends BaseExtendSelector * @see EnumeratedAttribute#getValues() */ public String[] getValues() { - return new String[] {"hashvalue", "digest", "checksum"}; + return new String[] {"hashvalue", "digest", "checksum", "lastmodified"}; } }