Browse Source

The <modified> selector has a new built-in algorithm 'lastmodified' which computes a value based upon the lastmodified time of the file.

master
Maarten Coene 6 years ago
parent
commit
05c88a60c2
4 changed files with 66 additions and 2 deletions
  1. +2
    -0
      WHATSNEW
  2. +7
    -0
      manual/Types/selectors.html
  3. +53
    -0
      src/main/org/apache/tools/ant/types/selectors/modifiedselector/LastModifiedAlgorithm.java
  4. +4
    -2
      src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java

+ 2
- 0
WHATSNEW View File

@@ -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
=====================================


+ 7
- 0
manual/Types/selectors.html View File

@@ -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>


+ 53
- 0
src/main/org/apache/tools/ant/types/selectors/modifiedselector/LastModifiedAlgorithm.java View File

@@ -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);
}
}

+ 4
- 2
src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java View File

@@ -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"};
}
}



Loading…
Cancel
Save