jbonofre opened a new pull request, #751:
URL: https://github.com/apache/camel-karaf/pull/751

   Backport of #708 to `camel-karaf-4.18.x`. Relates to #707.
   
   ## Why this is needed on top of #714
   
   #714 already backported the **first** commit of #708 (`Added simple-no-file 
support`, on this branch as e1caf2e). #708 was subsequently reworked, and that 
follow-up commit has not reached 4.18.x. This PR cherry-picks it (`-x`), 
bringing 4.18.x to the same final state as `main`.
   
   ## What the follow-up commit changes
   
   The service entry the fix relies on is loaded **by name** by 
`Activator.BaseResolver`; the `@Language` annotation on the class is never read 
at runtime. So the extra machinery that landed with #714 is unnecessary and 
actively harmful:
   
   - **Drop the local copy of `SimpleNoFileLanguage`** — it *shadowed* the 
upstream class in the shaded jar, so a future Camel change to 
`SimpleNoFileLanguage` would have been silently overridden with no build 
failure. The upstream class is already present and unchanged in the shaded 
bundle.
   - **Drop the `camel-api` / `camel-support` dependencies** the local copy 
needed to compile — they were compile scope and, because the root pom sets 
`createDependencyReducedPom=false`, would have leaked into the bundle's 
published pom and onto every consumer's classpath.
   - **Restore the conventional `org.apache.camel*` export → narrowed to 
`org.apache.camel.language*`** — keeping the wide export with those 
dependencies present makes bnd inline all of camel-api and camel-support into 
the bundle (412 KB → 1.9 MB) and duplicate-export packages `core/camel-api` and 
`core/camel-support` already provide.
   - **Replace the shade `IncludeResourceTransformer` with a `<resource>` 
entry** — the module's `<resources>` block overrides Maven's default 
`src/main/resources`, which is why the file did not reach the bundle on its 
own. The transformer would also hard-fail the build with `duplicate entry` if 
Apache Camel ever ships its own `simple-no-file` service file, whereas the 
resource path lets shade dedupe silently.
   - **Add the ASF licence header** the service file was missing — `apache-rat` 
rejected it, which breaks the release profile. `java.util.Properties`, used to 
parse the file, ignores the `#` comments. The header also carries a note 
recording why camel-karaf ships an entry Camel deliberately omits, so a future 
Camel upgrade does not drop it.
   - **Add a Pax Exam regression test** in `tests/features/camel-core` driving 
a `pollEnrich` with a dynamic file endpoint — the scenario from #707.
   
   ## Diff vs. #708
   
   The tree of the touched paths is **identical** to the head of #708, apart 
from the `4.18.3-SNAPSHOT` vs `4.18.2-SNAPSHOT` parent versions:
   
   ```
   $ git diff HEAD pr-708-head -- core/camel-core-languages 
tests/features/camel-core
     core/camel-core-languages/pom.xml   -<version>4.18.3-SNAPSHOT</version> 
+<version>4.18.2-SNAPSHOT</version>
     tests/features/camel-core/pom.xml   -<version>4.18.3-SNAPSHOT</version> 
+<version>4.18.2-SNAPSHOT</version>
   ```
   
   The cherry-pick applied cleanly, with no conflicts.
   
   ## Verification on this branch (JDK 17)
   
   - `mvn install -pl tests/features/camel-core -am -DskipTests` — **BUILD 
SUCCESS**; the new route supplier and itest compile against the 4.18.x 
test-support classes unchanged.
   - Built `camel-core-languages` bundle: **412 KB** (not 1.9 MB), 
`Export-Package` limited to `org.apache.camel.language.*`, 
`SimpleNoFileLanguage.class` present from the upstream shaded jar, and the 
service entry present with its header.
   - `apache-rat:check` — 0 unapproved licences on both touched modules.
   - The Pax Exam itest itself was not run locally (it needs the full 
distribution build); it is left to CI. It was verified 5/5 on `main` in #708, 
including that removing the service entry makes `testCamelPollEnrich` fail.
   
   _AI-generated (Claude Code) on behalf of JB Onofré._
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to