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

Rick Hillegas updated DERBY-2419:
---------------------------------

    Attachment: derby-2419-refactor-01.diff

Attaching derby-2419-refactor-01.diff (I am running regression tests now). This 
patch removes the need for SecureServerTest to mention the default hostname and 
port number constants. It does this by refactoring 
TestConfiguration.clientServerDecorator(). The guts of that routine now live in 
a new method TestConfiguration.defaultServerDecorator(), which SecureServerTest 
calls.

The new method preserves something fishy from the previous code: 
TestConfiguration exposes a public static method which allows callers to use 
the hardcoded hostname and port number constants regardless of whether they are 
declared public or private. This fishy code appears to be invoked in a lot of 
places already.(I counted 44 references to it).

Along the way, I tried another solution to my problem. That solution was to 
create a ServerSetup using the hostname and port gleaned from 
TestConfiguration.getCurrent(). That gave me a port number of -1, which wasn't 
very helpful. So I abandoned that approach.

This patch cleans up SecureServerTest and creates one more invocation of the 
fishy code. Someone who understands the secret machinations of 
TestConfiguration will probably want to fix the fishy code itself. This patch 
touches the following files:

M      
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/SecureServerTest.java
M      java/testing/org/apache/derbyTesting/junit/TestConfiguration.java


> Tighten encapsulation of state in TestConfiguration
> ---------------------------------------------------
>
>                 Key: DERBY-2419
>                 URL: https://issues.apache.org/jira/browse/DERBY-2419
>             Project: Derby
>          Issue Type: Improvement
>          Components: Test
>    Affects Versions: 10.3.0.0
>            Reporter: Kristian Waagan
>         Assigned To: Kristian Waagan
>            Priority: Minor
>         Attachments: derby-2419-1a-alternative1.diff, 
> derby-2419-2a-alternative2.diff, derby-2419-2a-alternative2.stat, 
> derby-2419-refactor-01.diff
>
>
> Parts of the state of TestConfiguration has been made public, which they 
> should not be; DEFAULT_PORT and DEFAULT_HOSTNAME.
> Using these directly from the outside can cause settings overridden by the 
> user to be ignored by tests. Further, a test should not care if the host/port 
> it uses is the Derby default or the values set by the user running the test.
> To obtain a hostname and  a port number, use the methods getPort and 
> getHostName in TestConfiguration.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to