blob: c1944a4ad6440f616114b442ea7a7311e5708531 [file] [log] [blame]
/*
* 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.
*/
import java.io.*;
import java.util.List;
import java.util.Collections;
import java.util.Arrays;
import org.codehaus.plexus.util.*;
boolean result = true;
File target = new File( basedir, "target" );
if ( !target.exists() || !target.isDirectory() )
{
System.err.println( "target folder is missing or not a directory." );
return false;
}
File someResource = new File( target, "/classes/SomeResource.txt" );
if ( !someResource.exists() || someResource.isDirectory() )
{
System.err.println( "SomeResource.txt is missing or not a file." );
return false;
}
Properties props = new Properties();
FileInputStream fis = null;
try
{
fis = new FileInputStream( someResource );
props.load( fis );
fis.close();
fis = null;
}
catch ( IOException ex )
{
System.err.println( "Failure during reading the properties " + someResource.getAbsolutePath() );
return false;
}
finally
{
IOUtil.close( fis );
}
def keysWhichHaveToExist = [
"timestamp",
"at.timestamp",
"build.timestamp",
"project.build.timestamp",
"baseUri",
"project.baseUri",
"pom.baseUri",
"at.baseUri",
"groupId",
"basedir",
"project.basedir",
]
keysWhichHaveToExist.each { key ->
if (!props.containsKey(key)) {
println "Missing the key '" + key + "'"
return false
}
}
currentTimestamp = props.get("timestamp")
currentAtTimeStamp = props.get("at.timestamp")
if ( !currentTimestamp.equals (currentAtTimeStamp)
&& !currentTimestamp.equals('${maven.build.timestamp}')
&& !currentAtTimeStamp.equals('@maven.build.timestamp@') ) {
println 'The ${maven.build.timestamp} has not correctly being replaced.'
return false
}
buildTimeStamp = props.get("build.timestamp")
if ( !buildTimeStamp.equals ('${build.timestamp}') ) {
println 'The ${build.timestamp} has been replaced.'
return false
}
currentProjectBuildTimeStamp = props.get('project.build.timestamp')
if ( !currentProjectBuildTimeStamp.equals ('${project.build.timestamp}') ) {
println 'The ${project.build.timestamp} has been replaced.'
return false
}
currentBaseUri = props.get('baseUri')
if ( !currentBaseUri.equals ('${baseUri}') ) {
println 'The ${baseUri} has been replaced.'
return false
}
currentProjectBaseUri = props.get('project.baseUri')
if ( currentProjectBaseUri.equals ('${project.baseUri}') ) {
println 'The ${project.baseUri} has not been replaced.'
return false
}
currentPomBaseUri = props.get('pom.baseUri')
if ( !currentPomBaseUri.equals ('${pom.baseUri}') ) {
println 'The ${pom.baseUri} has been replaced.'
return false
}
currentAtBaseUri = props.get('at.baseUri')
if ( !currentAtBaseUri.equals ('@baseUri@') ) {
println 'The @baseUri@ has been replaced.'
return false
}
currentGroupId = props.get('project.groupId')
if ( currentGroupId.equals ('${project.groupId}') ) {
println 'The ${project.groupId} has not been replaced.'
return false
}
currentBaseDir = props.get('basedir')
if ( currentBaseDir.equals ('${basedir}') ) {
println 'The ${basedir} has not been replaced.'
return false
}
currentProjectBaseDir = props.get('project.basedir')
if ( currentBaseDir.equals ('${project.basedir}') ) {
println 'The ${project.basedir} has not been replaced.'
return false
}
return result;