Browse Source

Merge branch '1.9.x'

master
Gintas Grigelionis 6 years ago
parent
commit
5d8bc76b13
4 changed files with 65 additions and 3 deletions
  1. +3
    -1
      WHATSNEW
  2. +5
    -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

+ 3
- 1
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.10.4 TO Ant 1.10.5
=====================================
@@ -62,7 +64,7 @@ Fixed bugs:
* <cab> died with a NullPointerException since Ant 1.10.2.
Bugzilla Report 62335

* The <depend> task would fail with
* The <depend> task would fail with
"java.lang.ClassFormatError: Invalid Constant Pool entry Type 19" while
parsing a module-info.class. The task is compatible with
Java bytecode version 53 now.


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

@@ -633,6 +633,7 @@
<li><q>hashvalue</q>&mdash;HashvalueAlgorithm</li>
<li><q>digest</q>&mdash;DigestAlgorithm</li>
<li><q>checksum</q>&mdash;ChecksumAlgorithm</li>
<li><q>lastmodified</q>&mdash;LastModifiedAlgorithm</li>
</ul>
</td>
<td>No; defaults to <q>digest</q></td>
@@ -747,6 +748,10 @@
</ul>
</td>
</tr>
<tr>
<td>lastmodified</td>
<td>Uses the lastModified property of a file. No additional configuration is required.</td>
</tr>
</table>
<h6>cache</h6>
<p>Same as <var>cache</var> attribute, with the following additional values:</p>


+ 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

@@ -325,6 +325,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) {
// use Algorithm specified by classname
@@ -913,7 +915,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 {
/**
@@ -922,7 +924,7 @@ public class ModifiedSelector extends BaseExtendSelector
*/
@Override
public String[] getValues() {
return new String[] {"hashvalue", "digest", "checksum"};
return new String[] {"hashvalue", "digest", "checksum", "lastmodified"};
}
}



Loading…
Cancel
Save