Skip to content

Commit d1274fb

Browse files
khatchadclaude
andcommitted
Bundle commons-io with common.eval to satisfy commons-csv
commons-csv 1.12.0, bundled on common.eval's Bundle-ClassPath, has a hard dependency on commons-io 2.17.0 (it references org.apache.commons.io.output.AppendableOutputStream). That dependency was never declared, so under strict OSGi classloading the bundle's classloader cannot find the class, yielding a NoClassDefFoundError in a materialized product even when a separate commons-io bundle is present. The target platform is pure Eclipse update sites with no Orbit/commons bundles, which is why commons-csv is bundled as a jar in the first place, so depending on the org.apache.commons.csv bundle is not viable. Instead, bundle commons-io 2.17.0 the same way commons-csv is bundled: self-contained, works in both the IDE/test target and a materialized product, and private to this bundle's classloader (not exported), so it does not split-package with a product's own commons-io. Fixes #64. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015jRmWZMAqpMDjsKmTATy3A
1 parent 21b50bf commit d1274fb

6 files changed

Lines changed: 9 additions & 2 deletions

File tree

edu.cuny.citytech.refactoring.common.eval/.classpath

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
<attribute name="javadoc_location" value="jar:platform:/resource/edu.cuny.citytech.refactoring.common.eval/lib/commons-csv-1.12.0-javadoc.jar!/"/>
1818
</attributes>
1919
</classpathentry>
20+
<classpathentry kind="lib" path="lib/commons-io-2.17.0.jar" sourcepath="lib/commons-io-2.17.0-sources.jar">
21+
<attributes>
22+
<attribute name="javadoc_location" value="jar:platform:/resource/edu.cuny.citytech.refactoring.common.eval/lib/commons-io-2.17.0-javadoc.jar!/"/>
23+
</attributes>
24+
</classpathentry>
2025
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
2126
<attributes>
2227
<attribute name="maven.pomderived" value="true"/>

edu.cuny.citytech.refactoring.common.eval/META-INF/MANIFEST.MF

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ Bundle-Version: 5.6.0.qualifier
66
Automatic-Module-Name: edu.cuny.citytech.refactoring.common.eval
77
Bundle-RequiredExecutionEnvironment: JavaSE-21
88
Bundle-ClassPath: .,
9-
lib/commons-csv-1.12.0.jar
9+
lib/commons-csv-1.12.0.jar,
10+
lib/commons-io-2.17.0.jar
1011
Require-Bundle: org.eclipse.core.commands
1112
Export-Package: edu.cuny.citytech.refactoring.common.eval.handlers,
1213
org.apache.commons.csv;version="1.12.0"

edu.cuny.citytech.refactoring.common.eval/build.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ output.. = bin/
33
bin.includes = META-INF/,\
44
.,\
55
OSGI-INF/,\
6-
lib/commons-csv-1.12.0.jar
6+
lib/commons-csv-1.12.0.jar,\
7+
lib/commons-io-2.17.0.jar
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)