[ 
https://issues.apache.org/jira/browse/JSPWIKI-38?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659767#action_12659767
 ] 

Janne Jalkanen commented on JSPWIKI-38:
---------------------------------------

Andrew, if you read my proposal carefully, you will notice that interface 
extraction is the one thing we agree on.  So this is not a "interface 
extraction vs shunting developers off to a different package" -situation, and 
please don't try to represent it as such.

To recap: my proposal is to put the interfaces in a separate package (because 
of all the several reasons I have provided above), and your proposal is to keep 
them with the regular classes (because it's a non-starter for you).

I would like to hear a bit more fact-based argumentation for your point of 
view.  I don't think typing four extra letters (".api") is not a problem for 
developers, especially since most IDEs are able to fill it in automatically.  
So all that remains is your aesthetical objection (which, as Murray points out, 
makes it all rather muddy).

There are three additional objections at coding against interfaces:
* Exceptions are not interfaces, so therefore you cannot code purely against an 
interface.
* We probably wish to retain the option of having unstable interfaces before 
they are graduated into a "stable" interface, which in my proposal is marked by 
transferring them from the regular class hierarchy to the .api -class 
hierarchy.  Similarly, we lose the ability to make unstable "subinterfaces" by 
inheriting on a stable interface.  For example, certain SPI code could easily 
be like this for a while - first releasing it "internally" in 3.1 so that 
developers can take a whack at it, then stabilizing it in 3.2.
* It is impossible to tell, just by looking at the source code itself, whether 
you are using an interface or a class.  Therefore, the developer lacks any 
visual cues as to whether he is relying on unstable or stable APIs, and needs 
to rely on documentation.


> Rename packages to "org.apache.jspwiki"
> ---------------------------------------
>
>                 Key: JSPWIKI-38
>                 URL: https://issues.apache.org/jira/browse/JSPWIKI-38
>             Project: JSPWiki
>          Issue Type: Task
>            Reporter: Janne Jalkanen
>            Assignee: Janne Jalkanen
>             Fix For: 3.0
>
>


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