[ https://issues.apache.org/jira/browse/DERBY-7097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17267410#comment-17267410 ]
Daniel Le Berre commented on DERBY-7097: ---------------------------------------- Since the EmbeddedDriver class is located in the derbytools.jar, if that jar is not located in the classpath, the Autoloaded procedure will fail with a ClassNotFoundException (which is what happened to me). This is exactly what I guess that the fact that the EmbeddedDriver class moved to derbytools.jar is a mistake, it was not meant to be that way. > Update documentation to allow users to properly use EmbeddedDriver > ------------------------------------------------------------------ > > Key: DERBY-7097 > URL: https://issues.apache.org/jira/browse/DERBY-7097 > Project: Derby > Issue Type: Bug > Components: Documentation > Affects Versions: 10.15.2.0 > Reporter: Daniel Le Berre > Priority: Major > Attachments: derby-7097-01-aa-jpms-related-website-changes.diff, > derby-7097-01-ab-jpms-related-website-changes.diff, > derby-7097-02-aa-releaseSummary.diff, derby-7097-03-aa-embeddedDemo.diff > > > In earlier version of Derby, and as reported in the documentation, the > EmbeddedDriver class was in derby.jar. > As such, it was quite easy to deploy a webapp with an embedded derby > database: it was sufficient to just add a derby.jar file to the project > library. > In current releases of derby (10.15.2.0), the EmbeddedDriver class is no > longer in the derby.jar file but in the derbytools.jar file. > ``` > $ for i in `ls *.jar`; do echo $i ; jar tf $i | grep Driver ; done > derby.jar > org/apache/derby/iapi/jdbc/AutoloadedDriver$1.class > org/apache/derby/iapi/jdbc/AutoloadedDriver.class > org/apache/derby/iapi/jdbc/Driver42.class > org/apache/derby/iapi/jdbc/InternalDriver$1.class > org/apache/derby/iapi/jdbc/InternalDriver$2.class > org/apache/derby/iapi/jdbc/InternalDriver$3.class > org/apache/derby/iapi/jdbc/InternalDriver$4.class > org/apache/derby/iapi/jdbc/InternalDriver$5.class > org/apache/derby/iapi/jdbc/InternalDriver$DaemonThreadFactory.class > org/apache/derby/iapi/jdbc/InternalDriver$LoginCallable.class > org/apache/derby/iapi/jdbc/InternalDriver.class > META-INF/services/java.sql.Driver > derbyLocale_cs.jar > derbyLocale_de_DE.jar > derbyLocale_es.jar > derbyLocale_fr.jar > derbyLocale_hu.jar > derbyLocale_it.jar > derbyLocale_ja_JP.jar > derbyLocale_ko_KR.jar > derbyLocale_pl.jar > derbyLocale_pt_BR.jar > derbyLocale_ru.jar > derbyLocale_zh_CN.jar > derbyLocale_zh_TW.jar > derbyclient.jar > org/apache/derby/client/ClientAutoloadedDriver.class > META-INF/services/java.sql.Driver > derbynet.jar > derbyoptionaltools.jar > derbyrun.jar > derbyshared.jar > derbytools.jar > org/apache/derby/jdbc/ClientDriver.class > org/apache/derby/jdbc/ClientDriver40.class > org/apache/derby/jdbc/EmbeddedDriver.class > ``` > As such, most of the tutorials found on the internet about "how to use derby > in embedded mode" are just wrong because they simply mention derby.jar as a > dependency. > Worst, derby own documentation is not up to date: as such, I had no way to > understand why new releases of this tool that I have been using for more than > a decade in the classroom suddenly did not work anymore. > The explanation is finally simple: I just wonder how such impacting decision > could be done without proper documentation. > I am also surprised to be the first one reporting this, since the problem > exists since at least a year. > There are two possible fix to this issue: > * move back the EmbeddedDriver class to derby.jar (my favorite option I > would say), but I guess there is a good reason for moving those classes to > derbytools.jar > * update the documentation on Derby's web site, with a quite visible alert > about this change. > > I have been a pretty happy user of derby for years, and will certainly be in > the future. Thanks for that great tool. However, that breaking change has > been particularly annoying, which is the reason of that bug report. -- This message was sent by Atlassian Jira (v8.3.4#803005)