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