[ 
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)

Reply via email to