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