[
https://issues.apache.org/jira/browse/DERBY-6945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16612594#comment-16612594
]
Rick Hillegas commented on DERBY-6945:
--------------------------------------
Attaching derby-6945-54-aa-driverAutoloading.diff. This patch makes the JUnit
jdbcapi suite run (almost) cleanly with a module path.
AutoloadTest was failing at first. That was because JDBC driver autoloading
didn't work with the module path. The fix was to make the engine and client
module descriptors declare their autoloaded drivers as providers of the
java.sql.Driver service.
One test still fails with the module path, but that test also fails identically
with the classpath. I attribute the failure to an undiagnosed environmental
problem:
{noformat}
There was 1 failure:
1)
testInvalidLDAPServerConnectionError(org.apache.derbyTesting.functionTests.tests.jdbcapi.InvalidLDAPServerAuthenticationTest)junit.framework.AssertionFailedError
at
org.apache.derbyTesting.functionTests.tests.jdbcapi.InvalidLDAPServerAuthenticationTest.testInvalidLDAPServerConnectionError(InvalidLDAPServerAuthenticationTest.java:126)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:122)
at
org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:443)
at
org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:460)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
at
org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:58)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
FAILURES!!!
Tests run: 2, Failures: 1, Errors: 0
{noformat}
With this patch and on the classpath, the regression tests passed cleanly
modulo the error above and the other error which occurs when tests run at my
current location:
{noformat}
There were 2 failures:
1)
testPingWithWrongHost(org.apache.derbyTesting.functionTests.tests.derbynet.NetworkServerControlClientCommandTest)junit.framework.AssertionFailedError:
Could not find expectedString:Unable to find host in output:<STDOUT>Wed Sep 12
08:59:51 PDT 2018 : Could not connect to Derby Network Server on host
nothere.invalid, port 1527: Operation timed out (Connection timed out)
<END STDOUT>
<STDERR><END STDERR>
at
org.apache.derbyTesting.junit.BaseTestCase.assertExecJavaCmdAsExpected(BaseTestCase.java:611)
at
org.apache.derbyTesting.functionTests.tests.derbynet.NetworkServerControlClientCommandTest.assertFailedPing(NetworkServerControlClientCommandTest.java:147)
at
org.apache.derbyTesting.functionTests.tests.derbynet.NetworkServerControlClientCommandTest.testPingWithWrongHost(NetworkServerControlClientCommandTest.java:112)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:122)
at
org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:443)
at
org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:460)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
at
org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:58)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
2)
testInvalidLDAPServerConnectionError(org.apache.derbyTesting.functionTests.tests.jdbcapi.InvalidLDAPServerAuthenticationTest)junit.framework.AssertionFailedError
at
org.apache.derbyTesting.functionTests.tests.jdbcapi.InvalidLDAPServerAuthenticationTest.testInvalidLDAPServerConnectionError(InvalidLDAPServerAuthenticationTest.java:126)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:122)
at
org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:443)
at
org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:460)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
at
org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:58)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
FAILURES!!!
Tests run: 14030, Failures: 2, Errors: 0
{noformat}
Touches the following files:
{noformat}
---------------------------
M java/org.apache.derby.client/module-info.java
M java/org.apache.derby.engine/module-info.java
Declare the autoloaded drivers as providers of the java.sql.Driver service.
---------------------------
M
java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java
Add some debug information to this test.
{noformat}
> Re-package Derby as a collection of jigsaw modules
> --------------------------------------------------
>
> Key: DERBY-6945
> URL: https://issues.apache.org/jira/browse/DERBY-6945
> Project: Derby
> Issue Type: Improvement
> Affects Versions: 10.13.1.2
> Reporter: Rick Hillegas
> Assignee: Rick Hillegas
> Priority: Major
> Attachments: derby-6945-01-aa-remove_derbyPreBuild_dep.diff,
> derby-6945-02-ab-newDerbySharedJar.diff,
> derby-6945-02-ac-newDerbySharedJar.diff, derby-6945-03-aa-partitionTest.diff,
> derby-6945-04-aa-moveRunClass.diff,
> derby-6945-05-aa-removeRedundant_Attribute_SQLState.diff,
> derby-6945-06-aa-removeOtherSharedDuplicates.diff,
> derby-6945-07-aa-net_client_overlap.diff,
> derby-6945-08-aa-move_shared_iapi_under_shared.diff,
> derby-6945-08-ab-move_shared_iapi_under_shared.diff,
> derby-6945-08-ad-move_shared_iapi_under_shared.diff,
> derby-6945-09-ab-moveInternalDriver.diff, derby-6945-10-aa-moveDriver42.diff,
> derby-6945-11-ab-moveAutoloadedDriver.diff,
> derby-6945-12-ab-moveClientDataSourceInterface.diff,
> derby-6945-13-aa-create-ClientAutoloadedDriver.diff,
> derby-6945-14-aa-moveMoreEmbeddedClassesOutOfPublicAPI.diff,
> derby-6945-15-aa-moveMoreClientClassesOutOfPublicAPI.diff,
> derby-6945-16-aa-consolidatePublicAPI.diff,
> derby-6945-17-aa-resealPackagesIn-derbyshared.diff,
> derby-6945-18-aa-resealLocalizationPackage.diff,
> derby-6945-19-ad-movePublicAPIintoToolsJar.diff,
> derby-6945-20-aa-removeClasslister.diff,
> derby-6945-21-aa-simplifyBuildScripts.diff,
> derby-6945-21-ab-simplifyBuildScripts.diff,
> derby-6945-22-ad-isolateClassesByArtifact.diff,
> derby-6945-22-ae-isolateClassesByArtifact.diff,
> derby-6945-22-af-isolateClassesByArtifact.diff,
> derby-6945-23-aa-upgradeToAnt_1.10.2.diff,
> derby-6945-24-aa-fixNativeAuthenticationServiceTest.diff,
> derby-6945-25-ab-moduleDescriptors.diff,
> derby-6945-26-aa-packagePrivateTests.diff,
> derby-6945-27-aa-adjustModulesForTests.diff,
> derby-6945-28-aa-testingModuleDescriptor.diff,
> derby-6945-29-aa-disable-SimpleApp-test.diff,
> derby-6945-30-ab-move-clientmessages-toolsmessages.diff,
> derby-6945-31-aa-clientmessages-ResourceBundleProvider.diff,
> derby-6945-32-aa-messageLookupCleanup.diff,
> derby-6945-33-ab-moveLocalizations.diff,
> derby-6945-34-aa-licenseHeaders.diff,
> derby-6945-35-aa-removeSpuriousCharacter.diff,
> derby-6945-36-aa-moduleDescriptorsForLocaleJars.diff,
> derby-6945-38-aa-javadocCleanup.diff, derby-6945-39-aa-javadocCleanup.diff,
> derby-6945-40-aa-generatedSource-dirNames.diff,
> derby-6945-41-ac-cleanupProductJavadoc.diff,
> derby-6945-42-aa-cleanupTestJavadoc.diff,
> derby-6945-43-aa-cleanupPublicAPIforJavadoc.diff,
> derby-6945-44-aa-moduleAwareJavadoc.diff, derby-6945-45-aa-fixWarnings.diff,
> derby-6945-46-aa-jacocoSourceRoots.diff,
> derby-6945-47-aa-runModulesWithLocalizations.diff,
> derby-6945-48-ac-serverWithSecurityPolicy.diff,
> derby-6945-49-aa-runSomeTestsWithModulePath.diff,
> derby-6945-50-aa-runOldTestHarnessWithModulePath.diff,
> derby-6945-51-ab-runUpgradeTestsWithModulePath.diff,
> derby-6945-52-aa-runLangSuiteWithModulePath.diff,
> derby-6945-53-aa-fixJavadocWarning.diff,
> derby-6945-54-aa-driverAutoloading.diff,
> derby-6945-XX-moveDataSourceFactories, jdeps.out.tar, weirdAnt.out
>
>
> Once we commit to building with Java 9 (see DERBY-6856), we should consider
> re-packaging Derby as a set of jigsaw modules. This would result in a
> different set of release artifacts. This might be a good opportunity to
> address the Tomcat artifactory issues raised by issue DERBY-6944.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)