Camel 3
====================
@Override
public void configure() throws Exception {
from(file("mifir/")
.antInclude("{{housekeeping.files.include}}")
.antExclude(
"**/archive/**,**/data/**,**/LegalReportingModuleTransporterBridge/**,**/MAPPING/**,{{housekeeping.files.exclude}}")
.recursive(true)
.filter("#houseKeepingFileFilter")
.scheduler("quartz")
.schedulerProperties("cron", "{{housekeeping.cron}}")
.schedulerProperties("triggerId", "houseKeepingId")
.schedulerProperties("triggerGroup", "houseKeepingGroup"))
.description("HOUSEKEEPING-ROUTE", "Archive files older than a month", "en")
.process(s -> {
long houseKeepingSize = 0L;
final Message in = s.getIn();
try {
houseKeepingSize = in.getHeader("HouseKeepingSize", Long.class);
} catch (Exception ignored) {
}
final File body = in.getBody(File.class);
houseKeepingSize += body.length();
in.setHeader("HouseKeepingSize", houseKeepingSize);
})
.aggregate(constant(true), new ZipAggregationStrategy(true))
.to(log("HouseKeeping").level("INFO").groupInterval(5_000L).groupActiveOnly(true))
.completionFromBatchConsumer()
.eagerCheckCompletion()
.to(file("mifir/archive"))
.log(
"Monthly housekeeping is done! Archived ${exchangeProperty.CamelAggregatedSize} 
files and saved ${header.HouseKeepingSize} bytes")
.end();
}

Config
====================
@Bean
public static HouseKeepingFileFilter<String> houseKeepingFileFilter() {
return new HouseKeepingFileFilter<>();
}

Impl
====================
@CommonsLog
public class HouseKeepingFileFilter<T> implements GenericFileFilter<String> {
public boolean accept(GenericFile file) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

final boolean isValid = file.isDirectory() ? true : file.getLastModified() < 
LocalDateTime.now()
.minusMonths(1L)
.atZone(ZoneId.systemDefault())
.toInstant()
.toEpochMilli();
log.trace(MessageFormat.format("File :{0}, with modification date: {1} is {2} 
for archive",
file.getFileName(),
sdf.format(file.getLastModified()),
isValid ? "valid" : "NOT valid"));

return isValid;
}
}

Camel 2
========================
@Override
public void configure() throws Exception {
from("file:mifir/" +
"?antInclude={{housekeeping.files.include}}" +
"&antExclude=**/archive/**,**/data/**,**/LegalReportingModuleTransporterBridge/**,**/MAPPING/**,{{housekeeping.files.exclude}}"
 +
"&recursive=true" +
"&filter=#houseKeepingFileFilter" +
"&scheduler=quartz2" +
"&scheduler.cron={{housekeeping.cron}}" +
"&scheduler.triggerId=houseKeepingId" +
"&scheduler.triggerGroup=houseKeepingGroup")
.description("HOUSEKEEPING-ROUTE", "Archive files older than a month", "en")
.process(s -> {
long houseKeepingSize = 0L;
final Message in = s.getIn();
try {
houseKeepingSize = in.getHeader("HouseKeepingSize", Long.class);
} catch (Exception ignored) {
}
final File body = in.getBody(File.class);
houseKeepingSize += body.length();
in.setHeader("HouseKeepingSize", houseKeepingSize);
})
.aggregate(constant(true), new ZipAggregationStrategy(true))
.to("log:HouseKeeping?level=INFO&groupInterval=5000&groupActiveOnly=true")
.completionFromBatchConsumer()
.eagerCheckCompletion()
.to("file:mifir/archive")
.log(
"Monthly housekeeping is done! Archived ${property.CamelAggregatedSize} files 
and saved ${header.HouseKeepingSize} bytes")
.end();
}

Missed information about JVM: 1.8 is used

also tried to upgrade to 3.7.0 but still same issue

/M

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Wednesday, May 19th, 2021 at 15:14, Andrea Cosentino <anco...@gmail.com> 
wrote:

> It's not possible to read the code.
>
> I would migrate to an LTS 3.7.x and not to 3.6.0, this is the first 
> suggestion I have.
>
> Il giorno mer 19 mag 2021 alle ore 15:13 Mikael Andersson Wigander 
> <mikael.andersson.wigan...@pm.me.invalid> ha scritto:
>
>> Hi
>> In Camel 2.x we have a file component with a filter bean and now migrating 
>> to Camel 3 the bean is not found and program crashes upon start.
>> The migration has been only with the route converting to use 
>> EndpointRoutebuilder, the config, bean and class is unchanged.
>>
>> Config
>>
>> @Bean
>>
>> public static
>>
>> HouseKeepingFileFilter
>>
>> <
>>
>> String
>>
>>>
>>
>> houseKeepingFileFilter
>>
>> () {
>>
>> return new
>>
>> HouseKeepingFileFilter
>>
>> <>()
>>
>> ;
>>
>> }
>>
>> Impl
>>
>> @CommonsLog
>>
>> public class
>>
>> HouseKeepingFileFilter
>>
>> <T>
>>
>> implements
>>
>> GenericFileFilter
>>
>> <
>>
>> String
>>
>>> {
>>
>> public boolean
>>
>> accept
>>
>> (
>>
>> GenericFile
>>
>> file) {
>>
>> SimpleDateFormat
>>
>> sdf
>>
>> =
>>
>> new
>>
>> SimpleDateFormat
>>
>> (
>>
>> "yyyy-MM-dd HH:mm:ss"
>>
>> )
>>
>> ;
>>
>> final boolean
>>
>> isValid
>>
>> =
>>
>> file
>>
>> .
>>
>> isDirectory
>>
>> ()
>>
>> ?
>>
>> true
>>
>> :
>>
>> file
>>
>> .
>>
>> getLastModified
>>
>> ()
>>
>> <
>>
>> LocalDateTime
>>
>> .
>>
>> now
>>
>> ()
>>
>> .
>>
>> minusMonths
>>
>> (1L)
>>
>> .
>>
>> atZone
>>
>> (
>>
>> ZoneId
>>
>> .
>>
>> systemDefault
>>
>> ())
>>
>> .
>>
>> toInstant
>>
>> ()
>>
>> .
>>
>> toEpochMilli
>>
>> ()
>>
>> ;
>>
>> log
>>
>> .
>>
>> trace
>>
>> (
>>
>> MessageFormat
>>
>> .
>>
>> format
>>
>> (
>>
>> "File :{0}, with modification date: {1} is {2} for archive"
>>
>> ,
>>
>> file
>>
>> .
>>
>> getFileName
>>
>> ()
>>
>> ,
>>
>> sdf
>>
>> .
>>
>> format
>>
>> (file
>>
>> .
>>
>> getLastModified
>>
>> ())
>>
>> ,
>>
>> isValid
>>
>> ?
>>
>> "valid"
>>
>> :
>>
>> "NOT valid"
>>
>> ))
>>
>> ;
>>
>> return
>>
>> isValid
>>
>> ;
>>
>> }
>>
>> }
>>
>> Camel 3
>>
>> @Override
>>
>> public void
>>
>> configure
>>
>> ()
>>
>> throws
>>
>> Exception
>>
>> {
>>
>> from
>>
>> (
>>
>> file
>>
>> (
>>
>> "mifir/"
>>
>> )
>>
>> .
>>
>> antInclude
>>
>> (
>>
>> "{{housekeeping.files.include}}"
>>
>> )
>>
>> .
>>
>> antExclude
>>
>> (
>>
>> "**/archive/**,**/data/**,**/LegalReportingModuleTransporterBridge/**,**/MAPPING/**,{{housekeeping.files.exclude}}"
>>
>> )
>>
>> .
>>
>> recursive
>>
>> (
>>
>> true
>>
>> )
>>
>> .
>>
>> filter
>>
>> (
>>
>> "#houseKeepingFileFilter"
>>
>> )
>>
>> .
>>
>> scheduler
>>
>> (
>>
>> "quartz"
>>
>> )
>>
>> .
>>
>> schedulerProperties
>>
>> (
>>
>> "cron"
>>
>> ,
>>
>> "{{housekeeping.cron}}"
>>
>> )
>>
>> .
>>
>> schedulerProperties
>>
>> (
>>
>> "triggerId"
>>
>> ,
>>
>> "houseKeepingId"
>>
>> )
>>
>> .
>>
>> schedulerProperties
>>
>> (
>>
>> "triggerGroup"
>>
>> ,
>>
>> "houseKeepingGroup"
>>
>> ))
>>
>> .
>>
>> description
>>
>> (
>>
>> "HOUSEKEEPING-ROUTE"
>>
>> ,
>>
>> "Archive files older than a month"
>>
>> ,
>>
>> "en"
>>
>> )
>>
>> .
>>
>> process
>>
>> (s
>>
>> ->
>>
>> {
>>
>> long
>>
>> houseKeepingSize
>>
>> =
>>
>> 0L
>>
>> ;
>>
>> final
>>
>> Message
>>
>> in
>>
>> =
>>
>> s
>>
>> .
>>
>> getIn
>>
>> ()
>>
>> ;
>>
>> try
>>
>> {
>>
>> houseKeepingSize
>>
>> =
>>
>> in
>>
>> .
>>
>> getHeader
>>
>> (
>>
>> "HouseKeepingSize"
>>
>> ,
>>
>> Long
>>
>> .
>>
>> class
>>
>> )
>>
>> ;
>>
>> }
>>
>> catch
>>
>> (
>>
>> Exception
>>
>> ignored) {
>>
>> }
>>
>> final
>>
>> File
>>
>> body
>>
>> =
>>
>> in
>>
>> .
>>
>> getBody
>>
>> (
>>
>> File
>>
>> .
>>
>> class
>>
>> )
>>
>> ;
>>
>> houseKeepingSize
>>
>> +=
>>
>> body
>>
>> .
>>
>> length
>>
>> ()
>>
>> ;
>>
>> in
>>
>> .
>>
>> setHeader
>>
>> (
>>
>> "HouseKeepingSize"
>>
>> ,
>>
>> houseKeepingSize
>>
>> )
>>
>> ;
>>
>> })
>>
>> .
>>
>> aggregate
>>
>> (
>>
>> constant
>>
>> (
>>
>> true
>>
>> )
>>
>> ,
>>
>> new
>>
>> ZipAggregationStrategy
>>
>> (
>>
>> true
>>
>> ))
>>
>> .
>>
>> to
>>
>> (
>>
>> log
>>
>> (
>>
>> "HouseKeeping"
>>
>> )
>>
>> .
>>
>> level
>>
>> (
>>
>> "INFO"
>>
>> )
>>
>> .
>>
>> groupInterval
>>
>> (5_000L)
>>
>> .
>>
>> groupActiveOnly
>>
>> (
>>
>> true
>>
>> ))
>>
>> .
>>
>> completionFromBatchConsumer
>>
>> ()
>>
>> .
>>
>> eagerCheckCompletion
>>
>> ()
>>
>> .
>>
>> to
>>
>> (
>>
>> file
>>
>> (
>>
>> "mifir/archive"
>>
>> ))
>>
>> .
>>
>> log
>>
>> (
>>
>> "Monthly housekeeping is done! Archived 
>> ${exchangeProperty.CamelAggregatedSize} files and saved 
>> ${header.HouseKeepingSize} bytes"
>>
>> )
>>
>> .
>>
>> end
>>
>> ()
>>
>> ;
>>
>> }
>>
>> Camel 2
>>
>> @Override
>>
>> public void
>>
>> configure
>>
>> ()
>>
>> throws
>>
>> Exception
>>
>> {
>>
>> from
>>
>> (
>>
>> "file:mifir/"
>>
>> +
>>
>> "?antInclude={{housekeeping.files.include}}"
>>
>> +
>>
>> "&antExclude=**/archive/**,**/data/**,**/LegalReportingModuleTransporterBridge/**,**/MAPPING/**,{{housekeeping.files.exclude}}"
>>
>> +
>>
>> "&recursive=true"
>>
>> +
>>
>> "&filter=#houseKeepingFileFilter"
>>
>> +
>>
>> "&scheduler=quartz2"
>>
>> +
>>
>> "&scheduler.cron={{housekeeping.cron}}"
>>
>> +
>>
>> "&scheduler.triggerId=houseKeepingId"
>>
>> +
>>
>> "&scheduler.triggerGroup=houseKeepingGroup"
>>
>> )
>>
>> .
>>
>> description
>>
>> (
>>
>> "HOUSEKEEPING-ROUTE"
>>
>> ,
>>
>> "Archive files older than a month"
>>
>> ,
>>
>> "en"
>>
>> )
>>
>> .
>>
>> process
>>
>> (s
>>
>> ->
>>
>> {
>>
>> long
>>
>> houseKeepingSize
>>
>> =
>>
>> 0L
>>
>> ;
>>
>> final
>>
>> Message
>>
>> in
>>
>> =
>>
>> s
>>
>> .
>>
>> getIn
>>
>> ()
>>
>> ;
>>
>> try
>>
>> {
>>
>> houseKeepingSize
>>
>> =
>>
>> in
>>
>> .
>>
>> getHeader
>>
>> (
>>
>> "HouseKeepingSize"
>>
>> ,
>>
>> Long
>>
>> .
>>
>> class
>>
>> )
>>
>> ;
>>
>> }
>>
>> catch
>>
>> (
>>
>> Exception
>>
>> ignored) {
>>
>> }
>>
>> final
>>
>> File
>>
>> body
>>
>> =
>>
>> in
>>
>> .
>>
>> getBody
>>
>> (
>>
>> File
>>
>> .
>>
>> class
>>
>> )
>>
>> ;
>>
>> houseKeepingSize
>>
>> +=
>>
>> body
>>
>> .
>>
>> length
>>
>> ()
>>
>> ;
>>
>> in
>>
>> .
>>
>> setHeader
>>
>> (
>>
>> "HouseKeepingSize"
>>
>> ,
>>
>> houseKeepingSize
>>
>> )
>>
>> ;
>>
>> })
>>
>> .
>>
>> aggregate
>>
>> (
>>
>> constant
>>
>> (
>>
>> true
>>
>> )
>>
>> ,
>>
>> new
>>
>> ZipAggregationStrategy
>>
>> (
>>
>> true
>>
>> ))
>>
>> .
>>
>> to
>>
>> (
>>
>> "log:HouseKeeping?level=INFO&groupInterval=5000&groupActiveOnly=true"
>>
>> )
>>
>> .
>>
>> completionFromBatchConsumer
>>
>> ()
>>
>> .
>>
>> eagerCheckCompletion
>>
>> ()
>>
>> .
>>
>> to
>>
>> (
>>
>> "file:mifir/archive"
>>
>> )
>>
>> .
>>
>> log
>>
>> (
>>
>> "Monthly housekeeping is done! Archived ${property.CamelAggregatedSize} 
>> files and saved ${header.HouseKeepingSize} bytes"
>>
>> )
>>
>> .
>>
>> end
>>
>> ()
>>
>> ;
>>
>> }
>>
>> Read the migration guide but not finding any clues…
>>
>> From Camel 2.25.3 to 3.6.0
>>
>> /M

Reply via email to