in spring-quartz/src/main/java/org/apache/archiva/components/scheduler/CronExpressionValidator.java [47:122]
public boolean validate( String cronExpression )
{
try
{
String[] cronParams = StringUtils.split( cronExpression );
if ( cronParams.length < 6 || cronParams.length > 7 )
{
return false;
}
CronTrigger cronTrigger = TriggerBuilder.newTrigger()
.withSchedule( CronScheduleBuilder.cronSchedule( cronExpression ) )
.build();
if ( cronParams[3].equals( "?" ) || cronParams[5].equals( "?" ) )
{
//Check seconds param
if ( !checkSecondsField( cronParams[0] ) )
{
return false;
}
//Check minutes param
if ( !checkMinutesField( cronParams[1] ) )
{
return false;
}
//Check hours param
if ( !checkHoursField( cronParams[2] ) )
{
return false;
}
//Check day-of-month param
if ( !checkDayOfMonthField( cronParams[3] ) )
{
return false;
}
//Check months param
if ( !checkMonthsField( cronParams[4] ) )
{
return false;
}
//Check day-of-week param
if ( !checkDayOfWeekField( cronParams[5] ) )
{
return false;
}
//Check year param
if ( cronParams.length == 7 )
{
if ( !checkYearField( cronParams[6] ) )
{
return false;
}
}
return true;
}
else
{
return false;
}
}
catch ( RuntimeException e )
{
return false;
}
}