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

Kristian Waagan updated DERBY-3151:
-----------------------------------

    Attachment: derby-3151-4a-wrapper_with_reflection.diff

Uploaded a new version of the 4a patch. There was no reason to duplicate the 
logic, so reflection is now being used to obtain a NetworkServerControl 
instance through a static method in NetworkServerTestSetup (as before).
I found it easier to keep the new wrapper class, but in theory this code could 
be moved into TestConfiguration. I do feel that TestConfiguration is large 
enough as it is, so I prefer not to add more code to it unless it is necessary.

I'm a bit unsure about the error handling. Is it sufficient?

My regression test got aborted, so I've restarted it. 
Patch ready for commit.

> Reduce dependency on NetworkServerControl in TestConfiguration
> --------------------------------------------------------------
>
>                 Key: DERBY-3151
>                 URL: https://issues.apache.org/jira/browse/DERBY-3151
>             Project: Derby
>          Issue Type: Improvement
>          Components: Test
>    Affects Versions: 10.4.1.3
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Minor
>         Attachments: derby-3151-1a-proposal.diff, derby-3151-2a-wrapper.diff, 
> derby-3151-2a-wrapper.stat, derby-3151-2b-wrapper.diff, 
> derby-3151-3a-test.diff, derby-3151-4a-wrapper_with_reflection.diff
>
>
> Code has been added in TestConfiguration to allow for starting and stopping a 
> Derby network server.
> Even if you know will not need this functionality, or you simply don't want 
> to have this functionality available, you must include derbynet.jar (or point 
> to classes/).
> I think this dependency should be reduced, by not having any instance 
> variables and by not importing the class with an explicit import statement. 
> The existing instance variables are not used.
> With this planned change, you can run tests without including derbynet.jar on 
> the classpath, as long as they don't call 'startNetworkServer' or 
> 'stopNetworkServer'. Most often these methods will be called by a decorator.
> The downside of this change, is that you won't get any error messages before 
> the mentioned methods are actually executed.
> A typical error message:
> Failed to invoke suite():java.lang.NoClassDefFoundError: 
> org/apache/derby/drda/NetworkServerControl
> I'm sure there are other solutions as well, but this one is really easy.
> Any opinions on this change?

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