[
https://issues.apache.org/jira/browse/CAMEL-21555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claude Mamo updated CAMEL-21555:
--------------------------------
Description:
Copying the issue from
[https://github.com/smooks/smooks-camel-cartridge/issues/262]
{quote}I am using the Smooks Camel Cartridge together with the EDIFACT
cartridge to parse EDIFACT files. I observe that the Smooks processor does not
seem to be fully initialized at first. The DFDL schema is parsed only once the
first EDIFACT message is processed, as can be seen in the log output below. I
would expect that the processor is initialized earlier, once it is created as
part of the Camel context.
Here is my relevant configuration code (Kotlin):
```kotlin
object EdifactParserFactory {
private const val schemaPostfix: String = "EDIFACT-Messages.dfdl.xsd"
fun mkEdifactParser(
edifactDirectory: EdifactDirectory,
messageTypes: List<EdiEnergyMessageType>,
camelContext: CamelContext
): SmooksProcessor {
[..]
val schemaUri = "/${edifactDirectory/${schemaPostfix}"
val smooks = Smooks()
val reader =
EdifactReaderConfigurator(schemaUri).setMessageTypes(messageTypeList)
reader.cacheOnDisk = true
smooks.setReaderConfig(reader)
val filterSettings =
FilterSettings.newSaxNgSettings().setReaderPoolSize(5)
smooks.setFilterSettings(filterSettings)
smooks.setExports(Exports(StringResult::class.java))
return SmooksProcessor(smooks, camelContext)
}
}
```
For the following (simplified) Camel route:
```kotlin
from(direct("inbound"))
.convertBodyTo(InputStream::class.java)
.choice()
.`when`(header(EDIFACT_DIRECTORY_HEADER).isEqualTo(EdifactDirectory.D04B)).to(direct("D04B-import"))
.`when`(header(EDIFACT_DIRECTORY_HEADER).isEqualTo(EdifactDirectory.D07B)).to(direct("D07B-import"))
.otherwise().to("log:error").stop()
.end()
[..]
val edifactParser = EdifactParserFactory.mkEdifactParser(dir, messageTypes,
camelContext)
[..]
from(direct("D04B-import")
.process(edifactParser)
```
```log
[..]
. ____ _ __ _ _
/
/ __{_}'{_} __ _ {_}({_})_ __ __ _ \ \ \ \
( ( )___ | '_ | '{_}| | '{_} \/ _` | \ \ \ \
/ __{_})| |{_})| | | | | || (_| | ) ) ) )
' |___{_}| .{_}{_}|{_}| |{_}|{_}| |{_}_{_}, | / / / /
=========|{_}|==============|{_}_{_}/=/{_}/{_}/{_}/
:: Spring Boot :: (v2.7.0)
2022-06-27 09:40:22 INFO ReceiveTestInterchange:55 - Starting
ReceiveTestInterchange using Java 17.0.3
[..]
2022-06-27 09:40:25 INFO ReceiveTestInterchange:61 - Started
ReceiveTestInterchange in 3.391 seconds (JVM running for 4.847)
[..]
2022-06-27 09:40:25 INFO CamelSpringBootExecutionListener:104 - Initialized
CamelSpringBootExecutionListener now ready to start CamelContext
2022-06-27 09:40:25 INFO CamelAnnotationsHandler:404 - Starting CamelContext
with name [camelContext].
2022-06-27 09:40:25 WARN Scanner:78 - Not scanning classpath for ClassLoader
'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must implement
'java.net.URLClassLoader'.
2022-06-27 09:40:25 WARN Scanner:78 - Not scanning classpath for ClassLoader
'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must implement
'java.net.URLClassLoader'.
2022-06-27 09:40:25 INFO EdifactParserFactory:39 - Created Smooks EDIFACT
parser from directory D04B for message(s) [INVOIC, CONTRL]
2022-06-27 09:40:26 WARN Scanner:78 - Not scanning classpath for ClassLoader
'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must implement
'java.net.URLClassLoader'.
2022-06-27 09:40:26 WARN Scanner:78 - Not scanning classpath for ClassLoader
'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must implement
'java.net.URLClassLoader'.
2022-06-27 09:40:26 INFO EdifactParserFactory:39 - Created Smooks EDIFACT
parser from directory D07B for message(s) [APERAK]
2022-06-27 09:40:26 INFO AbstractCamelContext:3004 - Apache Camel 3.17.0
(camel-1) is starting
2022-06-27 09:40:26 INFO AbstractCamelContext:3222 - Tracing is enabled on
CamelContext: camel-1
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
[..]
2022-06-27 09:40:26 INFO CamelSpringBootApplicationListener:147 - Starting
CamelMainRunController to ensure the main thread keeps running
2022-06-27 09:40:26 INFO MainSupport:68 - Apache Camel (Main) 3.17.0 is
starting
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 INFO AbstractCamelContext:3165 - Routes startup (total:6
started:6)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
D04B-import-route (direct://D04B-import)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
D07B-import-route (direct://D07B-import)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
edifact-inbound-transfer-route (direct://edifact-inbound-transfer)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
inbound-acknowledge-route (direct://inbound-acknowledge)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started inbound-route
(direct://inbound)
2022-06-27 09:40:26 INFO AbstractCamelContext:3194 - Apache Camel 3.17.0
(camel-1) started in 1s351ms (build:78ms init:943ms start:330ms)
2022-06-27 09:40:27 INFO Tracing:264 - *--> [inbound-rout]
[from[direct://inbound] ] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
2022-06-27 09:40:27 INFO Tracing:264 - [inbound-rout]
[direct://edifact-inbound-transfer] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
2022-06-27 09:40:27 INFO Tracing:264 - ---> [edifact-inbo]
[from[direct://edifact-inbound-tra] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
[convertBodyTo[java.io.InputStream] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
[choice[when[{header(EdifactDirect] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType:
org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
instance of org.apache.camel.StreamCache]]
2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
[direct://D04B-import ] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType:
org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
instance of org.apache.camel.StreamCache]]
2022-06-27 09:40:27 INFO Tracing:264 - ---> [D04B-import-]
[from[direct:\\{{edifactDirectory}}-] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType:
org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
instance of org.apache.camel.StreamCache]]
2022-06-27 09:40:27 INFO Tracing:264 - [D04B-import-]
[ref:\\{{edifactParser}} ] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType:
org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
instance of org.apache.camel.StreamCache]]
2022-06-27 09:40:27 INFO DataProcessorFactory:106 - Compiling and caching DFDL
schema...
2022-06-27 09:40:27 INFO DfdlSchema:117 - Saving compiled DFDL schema to
.smooks/dfdl-cartridge/EDIFACT-Interchange-9800488b-61fc-3578-af0d-05483fa510ef-.dfdl.xsd.dat
2022-06-27 09:40:37 INFO Tracing:264 - [D04B-import-]
[Processor@0x22657db1 ] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: String, ...]
[..]
```
As can be observed on the previous-to-last log entry, the DFDL schema is
compiled (or loaded from cache) once the first camel exchange arrives at the
Smooks processor only. (Plus, there are some other irregularities that I
haven't been able to diagnose yet.). I am running on Kotlin 1.6.20 with JRE 17
as compile target.
{quote}
was:
Copying the feature request from
[https://github.com/smooks/smooks-camel-cartridge/issues/262]
{quote}I am using the Smooks Camel Cartridge together with the EDIFACT
cartridge to parse EDIFACT files. I observe that the Smooks processor does not
seem to be fully initialized at first. The DFDL schema is parsed only once the
first EDIFACT message is processed, as can be seen in the log output below. I
would expect that the processor is initialized earlier, once it is created as
part of the Camel context.
Here is my relevant configuration code (Kotlin):
```kotlin
object EdifactParserFactory {
private const val schemaPostfix: String = "EDIFACT-Messages.dfdl.xsd"
fun mkEdifactParser(
edifactDirectory: EdifactDirectory,
messageTypes: List<EdiEnergyMessageType>,
camelContext: CamelContext
): SmooksProcessor {
[..]
val schemaUri = "/${edifactDirectory/${schemaPostfix}"
val smooks = Smooks()
val reader =
EdifactReaderConfigurator(schemaUri).setMessageTypes(messageTypeList)
reader.cacheOnDisk = true
smooks.setReaderConfig(reader)
val filterSettings =
FilterSettings.newSaxNgSettings().setReaderPoolSize(5)
smooks.setFilterSettings(filterSettings)
smooks.setExports(Exports(StringResult::class.java))
return SmooksProcessor(smooks, camelContext)
}
}
```
For the following (simplified) Camel route:
```kotlin
from(direct("inbound"))
.convertBodyTo(InputStream::class.java)
.choice()
.`when`(header(EDIFACT_DIRECTORY_HEADER).isEqualTo(EdifactDirectory.D04B)).to(direct("D04B-import"))
.`when`(header(EDIFACT_DIRECTORY_HEADER).isEqualTo(EdifactDirectory.D07B)).to(direct("D07B-import"))
.otherwise().to("log:error").stop()
.end()
[..]
val edifactParser = EdifactParserFactory.mkEdifactParser(dir, messageTypes,
camelContext)
[..]
from(direct("D04B-import")
.process(edifactParser)
```
```log
[..]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.0)
2022-06-27 09:40:22 INFO ReceiveTestInterchange:55 - Starting
ReceiveTestInterchange using Java 17.0.3
[..]
2022-06-27 09:40:25 INFO ReceiveTestInterchange:61 - Started
ReceiveTestInterchange in 3.391 seconds (JVM running for 4.847)
[..]
2022-06-27 09:40:25 INFO CamelSpringBootExecutionListener:104 - Initialized
CamelSpringBootExecutionListener now ready to start CamelContext
2022-06-27 09:40:25 INFO CamelAnnotationsHandler:404 - Starting CamelContext
with name [camelContext].
2022-06-27 09:40:25 WARN Scanner:78 - Not scanning classpath for ClassLoader
'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must implement
'java.net.URLClassLoader'.
2022-06-27 09:40:25 WARN Scanner:78 - Not scanning classpath for ClassLoader
'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must implement
'java.net.URLClassLoader'.
2022-06-27 09:40:25 INFO EdifactParserFactory:39 - Created Smooks EDIFACT
parser from directory D04B for message(s) [INVOIC, CONTRL]
2022-06-27 09:40:26 WARN Scanner:78 - Not scanning classpath for ClassLoader
'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must implement
'java.net.URLClassLoader'.
2022-06-27 09:40:26 WARN Scanner:78 - Not scanning classpath for ClassLoader
'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must implement
'java.net.URLClassLoader'.
2022-06-27 09:40:26 INFO EdifactParserFactory:39 - Created Smooks EDIFACT
parser from directory D07B for message(s) [APERAK]
2022-06-27 09:40:26 INFO AbstractCamelContext:3004 - Apache Camel 3.17.0
(camel-1) is starting
2022-06-27 09:40:26 INFO AbstractCamelContext:3222 - Tracing is enabled on
CamelContext: camel-1
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
[..]
2022-06-27 09:40:26 INFO CamelSpringBootApplicationListener:147 - Starting
CamelMainRunController to ensure the main thread keeps running
2022-06-27 09:40:26 INFO MainSupport:68 - Apache Camel (Main) 3.17.0 is
starting
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not be
found: attachments will not be propagated
2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
[configUri=null] Started
2022-06-27 09:40:26 INFO AbstractCamelContext:3165 - Routes startup (total:6
started:6)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
D04B-import-route (direct://D04B-import)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
D07B-import-route (direct://D07B-import)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
edifact-inbound-transfer-route (direct://edifact-inbound-transfer)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
inbound-acknowledge-route (direct://inbound-acknowledge)
2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started inbound-route
(direct://inbound)
2022-06-27 09:40:26 INFO AbstractCamelContext:3194 - Apache Camel 3.17.0
(camel-1) started in 1s351ms (build:78ms init:943ms start:330ms)
2022-06-27 09:40:27 INFO Tracing:264 - *--> [inbound-rout]
[from[direct://inbound] ] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
2022-06-27 09:40:27 INFO Tracing:264 - [inbound-rout]
[direct://edifact-inbound-transfer] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
2022-06-27 09:40:27 INFO Tracing:264 - ---> [edifact-inbo]
[from[direct://edifact-inbound-tra] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
[convertBodyTo[java.io.InputStream] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
[choice[when[{header(EdifactDirect] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType:
org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
instance of org.apache.camel.StreamCache]]
2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
[direct://D04B-import ] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType:
org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
instance of org.apache.camel.StreamCache]]
2022-06-27 09:40:27 INFO Tracing:264 - ---> [D04B-import-]
[from[direct:\{{edifactDirectory}}-] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType:
org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
instance of org.apache.camel.StreamCache]]
2022-06-27 09:40:27 INFO Tracing:264 - [D04B-import-]
[ref:\{{edifactParser}} ] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType:
org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
instance of org.apache.camel.StreamCache]]
2022-06-27 09:40:27 INFO DataProcessorFactory:106 - Compiling and caching DFDL
schema...
2022-06-27 09:40:27 INFO DfdlSchema:117 - Saving compiled DFDL schema to
.smooks/dfdl-cartridge/EDIFACT-Interchange-9800488b-61fc-3578-af0d-05483fa510ef-.dfdl.xsd.dat
2022-06-27 09:40:37 INFO Tracing:264 - [D04B-import-]
[Processor@0x22657db1 ] Exchange[Id:
583FC68FED10EF5-0000000000000000, BodyType: String, ...]
[..]
```
As can be observed on the previous-to-last log entry, the DFDL schema is
compiled (or loaded from cache) once the first camel exchange arrives at the
Smooks processor only. (Plus, there are some other irregularities that I
haven't been able to diagnose yet.). I am running on Kotlin 1.6.20 with JRE 17
as compile target.
{quote}
> Smooks component parses DFDL EDIFACT schema upon the first message arrival
> only
> -------------------------------------------------------------------------------
>
> Key: CAMEL-21555
> URL: https://issues.apache.org/jira/browse/CAMEL-21555
> Project: Camel
> Issue Type: Bug
> Affects Versions: 4.9.0
> Reporter: Claude Mamo
> Priority: Minor
> Fix For: 4.10.0
>
>
> Copying the issue from
> [https://github.com/smooks/smooks-camel-cartridge/issues/262]
> {quote}I am using the Smooks Camel Cartridge together with the EDIFACT
> cartridge to parse EDIFACT files. I observe that the Smooks processor does
> not seem to be fully initialized at first. The DFDL schema is parsed only
> once the first EDIFACT message is processed, as can be seen in the log output
> below. I would expect that the processor is initialized earlier, once it is
> created as part of the Camel context.
> Here is my relevant configuration code (Kotlin):
> ```kotlin
> object EdifactParserFactory {
> private const val schemaPostfix: String = "EDIFACT-Messages.dfdl.xsd"
> fun mkEdifactParser(
> edifactDirectory: EdifactDirectory,
> messageTypes: List<EdiEnergyMessageType>,
> camelContext: CamelContext
> ): SmooksProcessor {
> [..]
> val schemaUri = "/${edifactDirectory/${schemaPostfix}"
> val smooks = Smooks()
> val reader =
> EdifactReaderConfigurator(schemaUri).setMessageTypes(messageTypeList)
> reader.cacheOnDisk = true
> smooks.setReaderConfig(reader)
> val filterSettings =
> FilterSettings.newSaxNgSettings().setReaderPoolSize(5)
> smooks.setFilterSettings(filterSettings)
> smooks.setExports(Exports(StringResult::class.java))
> return SmooksProcessor(smooks, camelContext)
> }
> }
> ```
> For the following (simplified) Camel route:
> ```kotlin
> from(direct("inbound"))
> .convertBodyTo(InputStream::class.java)
> .choice()
>
> .`when`(header(EDIFACT_DIRECTORY_HEADER).isEqualTo(EdifactDirectory.D04B)).to(direct("D04B-import"))
>
> .`when`(header(EDIFACT_DIRECTORY_HEADER).isEqualTo(EdifactDirectory.D07B)).to(direct("D07B-import"))
> .otherwise().to("log:error").stop()
> .end()
> [..]
> val edifactParser = EdifactParserFactory.mkEdifactParser(dir, messageTypes,
> camelContext)
> [..]
> from(direct("D04B-import")
> .process(edifactParser)
> ```
> ```log
> [..]
> . ____ _ __ _ _
> /
> / __{_}'{_} __ _ {_}({_})_ __ __ _ \ \ \ \
> ( ( )___ | '_ | '{_}| | '{_} \/ _` | \ \ \ \
>
> / __{_})| |{_})| | | | | || (_| | ) ) ) )
> ' |___{_}| .{_}{_}|{_}| |{_}|{_}| |{_}_{_}, | / / / /
> =========|{_}|==============|{_}_{_}/=/{_}/{_}/{_}/
> :: Spring Boot :: (v2.7.0)
> 2022-06-27 09:40:22 INFO ReceiveTestInterchange:55 - Starting
> ReceiveTestInterchange using Java 17.0.3
> [..]
> 2022-06-27 09:40:25 INFO ReceiveTestInterchange:61 - Started
> ReceiveTestInterchange in 3.391 seconds (JVM running for 4.847)
> [..]
> 2022-06-27 09:40:25 INFO CamelSpringBootExecutionListener:104 - Initialized
> CamelSpringBootExecutionListener now ready to start CamelContext
> 2022-06-27 09:40:25 INFO CamelAnnotationsHandler:404 - Starting CamelContext
> with name [camelContext].
> 2022-06-27 09:40:25 WARN Scanner:78 - Not scanning classpath for ClassLoader
> 'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must
> implement 'java.net.URLClassLoader'.
> 2022-06-27 09:40:25 WARN Scanner:78 - Not scanning classpath for ClassLoader
> 'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must
> implement 'java.net.URLClassLoader'.
> 2022-06-27 09:40:25 INFO EdifactParserFactory:39 - Created Smooks EDIFACT
> parser from directory D04B for message(s) [INVOIC, CONTRL]
> 2022-06-27 09:40:26 WARN Scanner:78 - Not scanning classpath for ClassLoader
> 'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must
> implement 'java.net.URLClassLoader'.
> 2022-06-27 09:40:26 WARN Scanner:78 - Not scanning classpath for ClassLoader
> 'jdk.internal.loader.ClassLoaders$AppClassLoader'. ClassLoader must
> implement 'java.net.URLClassLoader'.
> 2022-06-27 09:40:26 INFO EdifactParserFactory:39 - Created Smooks EDIFACT
> parser from directory D07B for message(s) [APERAK]
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3004 - Apache Camel 3.17.0
> (camel-1) is starting
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3222 - Tracing is enabled on
> CamelContext: camel-1
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> [..]
> 2022-06-27 09:40:26 INFO CamelSpringBootApplicationListener:147 - Starting
> CamelMainRunController to ensure the main thread keeps running
> 2022-06-27 09:40:26 INFO MainSupport:68 - Apache Camel (Main) 3.17.0 is
> starting
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 WARN SmooksProcessor:259 - Attachments module could not
> be found: attachments will not be propagated
> 2022-06-27 09:40:26 INFO SmooksProcessor:266 - SmooksProcessor
> [configUri=null] Started
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3165 - Routes startup (total:6
> started:6)
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
> D04B-import-route (direct://D04B-import)
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
> D07B-import-route (direct://D07B-import)
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
> edifact-inbound-transfer-route (direct://edifact-inbound-transfer)
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
> inbound-acknowledge-route (direct://inbound-acknowledge)
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3170 - Started
> inbound-route (direct://inbound)
> 2022-06-27 09:40:26 INFO AbstractCamelContext:3194 - Apache Camel 3.17.0
> (camel-1) started in 1s351ms (build:78ms init:943ms start:330ms)
> 2022-06-27 09:40:27 INFO Tracing:264 - *--> [inbound-rout]
> [from[direct://inbound] ] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
> 2022-06-27 09:40:27 INFO Tracing:264 - [inbound-rout]
> [direct://edifact-inbound-transfer] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
> 2022-06-27 09:40:27 INFO Tracing:264 - ---> [edifact-inbo]
> [from[direct://edifact-inbound-tra] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
> 2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
> [convertBodyTo[java.io.InputStream] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType: byte[], ...]
> 2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
> [choice[when[{header(EdifactDirect] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType:
> org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
> instance of org.apache.camel.StreamCache]]
> 2022-06-27 09:40:27 INFO Tracing:264 - [edifact-inbo]
> [direct://D04B-import ] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType:
> org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
> instance of org.apache.camel.StreamCache]]
> 2022-06-27 09:40:27 INFO Tracing:264 - ---> [D04B-import-]
> [from[direct:\\{{edifactDirectory}}-] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType:
> org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
> instance of org.apache.camel.StreamCache]]
> 2022-06-27 09:40:27 INFO Tracing:264 - [D04B-import-]
> [ref:\\{{edifactParser}} ] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType:
> org.apache.camel.converter.stream.ByteArrayInputStreamCache, Body: [Body is
> instance of org.apache.camel.StreamCache]]
> 2022-06-27 09:40:27 INFO DataProcessorFactory:106 - Compiling and caching
> DFDL schema...
> 2022-06-27 09:40:27 INFO DfdlSchema:117 - Saving compiled DFDL schema to
> .smooks/dfdl-cartridge/EDIFACT-Interchange-9800488b-61fc-3578-af0d-05483fa510ef-.dfdl.xsd.dat
> 2022-06-27 09:40:37 INFO Tracing:264 - [D04B-import-]
> [Processor@0x22657db1 ] Exchange[Id:
> 583FC68FED10EF5-0000000000000000, BodyType: String, ...]
> [..]
> ```
> As can be observed on the previous-to-last log entry, the DFDL schema is
> compiled (or loaded from cache) once the first camel exchange arrives at the
> Smooks processor only. (Plus, there are some other irregularities that I
> haven't been able to diagnose yet.). I am running on Kotlin 1.6.20 with JRE
> 17 as compile target.
>
> {quote}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)