You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Daniel Le Berre (Jira)" <ji...@apache.org> on 2021/01/17 10:45:00 UTC

[jira] [Updated] (DERBY-7097) Update documentation to allow users to properly use EmbeddedDriver

     [ https://issues.apache.org/jira/browse/DERBY-7097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Le Berre updated DERBY-7097:
-----------------------------------
    Description: 
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.

  was:
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 using 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.


> 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
>
> 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)