Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakartaee-spec-project-leads] [jakartaee-platform-dev] Automatic Module Names in Jakarta EE 9
  • From: Mark Thomas <markt@xxxxxxxxxx>
  • Date: Wed, 22 Jul 2020 09:33:24 +0100
  • Autocrypt: addr=markt@xxxxxxxxxx; prefer-encrypt=mutual; keydata= xsFNBEq0DukBEAD4jovHOPJDxoD+JnO1Go2kiwpgRULasGlrVKuSUdP6wzcaqWmXpqtOJKKw W2MQFQLmg7nQ9RjJwy3QCbKNDJQA/bwbQT1F7WzTCz2S6vxC4zxKck4t6RZBq2dJsYKF0CEh 6ZfY4dmKvhq+3istSoFRdHYoOPGWZpuRDqfZPdGm/m335/6KGH59oysn1NE7a2a+kZzjBSEg v23+l4Z1Rg7+fpz1JcdHSdC2Z+ZRxML25eVatRVz4yvDOZItqDURP24zWOodxgboldV6Y88C 3v/7KRR+1vklzkuA2FqF8Q4r/2f0su7MUVviQcy29y/RlLSDTTYoVlCZ1ni14qFU7Hpw43KJ tgXmcUwq31T1+SlXdYjNJ1aFkUi8BjCHDcSgE/IReKUanjHzm4XSymKDTeqqzidi4k6PDD4j yHb8k8vxi6qT6Udnlcfo5NBkkUT1TauhEy8ktHhbl9k60BvvMBP9l6cURiJg1WS77egI4P/8 2oPbzzFiGFqXyJKULVgxtdQ3JikCpodp3f1fh6PlYZwkW4xCJLJucJ5MiQp07HAkMVW5w+k8 Xvuk4i5quh3N+2kzKHOOiQCDmN0sz0XjOE+7XBvM1lvz3+UarLfgSVmW8aheLd7eaIl5ItBk 8844ZJ60LrQ+JiIqvqJemxyIM6epoZvY5a3ZshZpcLilC5hW8QARAQABzSJNYXJrIEUgRCBU aG9tYXMgPG1hcmt0QGFwYWNoZS5vcmc+wsF3BBMBCgAhBQJKtA7pAhsDBQsJCAcDBRUKCQgL BRYCAwEAAh4BAheAAAoJEBDAHFovYFnn2YgQAKN6FLG/I1Ij3PUlC/XNlhasQxPeE3w2Ovtt weOQPYkblJ9nHtGH5pNqG2/qoGShlpI04jJy9GxWKOo7NV4v7M0mbVlCXVgjdlvMFWdL7lno cggwJAFejQcYlVtxyhu4m50LBvBunEhxCbQcKnnWmkB7Ocm0Ictaqjc9rCc1F/aNhVMUpJ0z G1kyTp9hxvN6TbCQlacMx5ocTWzL0zn6QZhbUfrYwfxYJmSnkVYZOYzXIXIsLN5sJ9Q4P8tj Y4qWgd+bQvOqPWrkzL9LVRnGOrSYIsoM5zWdoj1g1glMzK/ZqJdRqqqBhe6FYTbXipz8oX8i mCebcaxZnfLhGiqqX+yDa3YUwDiqom+sZOc0iXGvKkqltPLpNeF0MVT7aZjalsQ/v2Ysb24R Ql9FfjfWmvT8ZPWz8Kore1AI4UcIIgFVtM+zuLlL9CIsGjg+gHDE2dhZDY0qfizlHL9CoAWU DM3pIfxM2V4BRn1xO+j/mModhjmYLZvnFVz4KGkNO7wRkofAANIWYo3WI5x83BGDH371t3NR rrpSSFP0XpQX6/Leaj2j6U6puABL2qBxhscsO6chc3u4/+019ff+peZVsc9ttcTQXsKIujmM b8p2sk5usmv6PKVX3oW/RAxpbVHU5kZ5px1Hq7mMQdZfLs5ff4YymXBH02z4/RmSzPam0Xb5 zsFNBEq0DukBEADCNEkws5YroBmbu8789Xf006gTl5LzD/Hdt3sAp9iCfPgucO+l7U+xbo1X HTMJQwEVfS+Rx3RbaLYRG+hU7FuJLQB/5NaCDNRuqw5KHyQtJUH+zo84IqqfMzG8aOSdHg1y r2xKH4QTmgQONBu/W0xEZmZro6TjYNwkk2pwXK2yuImZPUOy+mK1qF8Wm3hTtkPE+FFSNFIa eHDoTGmx/0Riu/K7dNJTrC0TlRpn2K6d60zB53YYTc+0DYSDyB0FupXiAx/+XEGn3Q7eNi2B V6w50v5r51QP8zptiFflMfFKNAfV8xS5MteQd98YS5qqd/LPo3gS5HFPQaSL0k3RTClv7fQN HcZFqmv0OWpix6zm2npYxhqsTDGeSa52/uXehVXF5JubYFifMSLpbGVZqdrmG5hr2cycxsjF iY0zJOaRitmN/JWbOGLiwrcN4ukKNyFntFG5jPaFnJdx9rHfyJNeF9cgv9JlZeFxJ6WqIAhl KOuH3K8/py0SPE6ZOFfRo0YUxvh25K/siOcPLm613aOxyY7YfQ8ME2vgn7I0mAtg9am+YFDa bGqj839odwZdzZv2T2mUHnybFTJFBuMWGWKYstYDS6eZEmhupbPvUKkDug/mO+gdo+pSKF9Y S6DM5RtCdTNJq4NZY50ypBb5RSj+INHPocIp2V/DDTbzySsu6wARAQABwsFfBBgBCgAJBQJK tA7pAhsMAAoJEBDAHFovYFnnLe0P/i34oK5cE2LlqUEITEcTO94x1EX0UmtKokRfQ3AYWK8X eFD8cmSty72hMkL+1c0V//4Qc53SUyLIWXk8FKWF7hdL3zyuBqlRb55721CYC35GA/jR90p0 k1vr701gaat2cNTOVC0/6H9cE5yYXT+zMr9TSiKCDwONhhSbmAJZc6X0fgsmCD7I5xUI5Vri hN/Wx0CZBtrXGUyE4hgFaYSGptZmkY5Ln1e+nI185Bda7bpLwcAIGrI9nYtVXgf71ybGKdPP tFfXIoPXuctn99M7NnWBhNuGDms2YWkOC7eeWBTxKkZDWR3vRmRy52B6GxR7USk/KXs7yqGP kfT/c4CZFfOurZUXXuC3PvOme0DQmqwExtJormoG4Fy6suEFPrfhYMigTy7kSbVTCOBMjQLH +U/FFNshvg9+M/ZvaKT+0lpRvBSuG5ngsC0bO0xWsXhb6qfH2h53g4VcwFvCBL5IfqgAeUbC nGGHNcGWpmwdeb7D7ahrNZSHEUUYR7lTbjkYS01/QDOcEwNZOqDRIJUQOOUq35721VeROkdh ZmMZtFlsQeQJsWoqGrQo/kEYicVlMVOgjmOOzOa5fRb/IqlGlBn4a4me3hWthLLtMy+OOEim 6ENjntVTBQiTP/YqrxWDbCkaD7b2e9wY5N3JlRxMIQHfcHaND3PRdQSn7oHYXmJl
  • Delivered-to: jakartaee-spec-project-leads@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/jakartaee-spec-project-leads>
  • List-help: <mailto:jakartaee-spec-project-leads-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/jakartaee-spec-project-leads>, <mailto:jakartaee-spec-project-leads-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/jakartaee-spec-project-leads>, <mailto:jakartaee-spec-project-leads-request@eclipse.org?subject=unsubscribe>
  • User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 22/07/2020 01:51, Werner Keil wrote:
> Note, the ".api" is rarely used, if that really was desired to be
> commonly used, then e.g. DI, CDI and Bean Validation all should use it
> and not just one of them.
> 
> Same for Servlet where only JSP uses it, but (leaving the wrong
> namespace aside) the Servlet Spec doesn’t.

Servlet doesn't use it because I hadn't got to looking at the JPMS name
(I've only just finished cleaning up the Servlet spec doc). POM clean-up
(including JPMS name) was next on my TODO list.

Given a completely free choice I prefer the names without ".api" on the end.

However, the current versioning policy [1] uses api consistently for all
API related artefacts: JAR names, Maven co-ordinates and OSGi
Bundle-SymbolicName. Given that, it seems inconsistent not to use it for
JPMS names. Hence my proposal from January [2]:

"Take the OSGi Bundle-SymbolicName, replace any "-" with "." and use the
result as the JPMS name.". In terms of [1] this would be:

${API_PACKAGE}.api

I understand from Kevin that there was pushback on the Platform call to
including ".api" as it was superfluous. I agree it is superfluous but
come back to the fact that [1] uses api for all API related artefacts.
In terms of [1], a possible JPMS name that doesn't include "api" is:

${API_PACKAGE}

I don't think this decision has to open a can of worms. We already have
agreed, consistent naming for OSGi. Extending [1] to include JPMS names
looks to be a small, logical step. I think there are two clear options:

A: ${API_PACKAGE}.api
B: ${API_PACKAGE}

Given a free choice, I would prefer B. Given the naming conventions we
have in place, I think A is a better choice for consistency reasons. I
could live happily with either.

Unless we are too far down the Jakarta EE 9 release process to implement
a JPMS naming policy I think there are benefits to picking one of A or B
and applying it sooner rather than later.

If we are too far down the Jakarta EE 9 release process to implement a
JPMS naming policy now then Kevin's proposal below looks reasonable to
me with one additional point that any name currently using "java..."
must be changed to use "jakarta..."

Mark


[1] https://wiki.eclipse.org/JakartaEE_Maven_Versioning_Rules
[2] https://www.eclipse.org/lists/servlet-dev/msg00233.html
> 
>  
> 
> Werner
> 
>  
> 
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
> 
>  
> 
> *From: *Scott Stark <mailto:starksm64@xxxxxxxxx>
> *Sent: *Tuesday, July 21, 2020 23:47
> *To: *JakartaEE Spec Project Leadership discussions
> <mailto:jakartaee-spec-project-leads@xxxxxxxxxxx>
> *Cc: *jakartaee-platform developer discussions
> <mailto:jakartaee-platform-dev@xxxxxxxxxxx>
> *Subject: *Re: [jakartaee-platform-dev]
> [jakartaee-spec-project-leads]Automatic Module Names in Jakarta EE 9
> 
>  
> 
> It has to be addressed in at least 9.1 when requiring Java 11 as at that
> point you do have modules, even if they are automatic, and we should not
> be allowing implicit automatic module names in API jars. I think the api
> in the module name is probably a good thing, but we have some artifact
> names that seemingly should be shortened to make the module name. For
> example, the CDI api artifact is jakarta.enterprise.cdi-api-*.jar. The
> enterprise seems unnecessary and the module name could just
> be jakarta.cdi.api for example.
> 
>  
> 
> We should start updating the naming conventions in preparation for 9.1.
> 
>  
> 
>  
> 
> On Tue, Jul 21, 2020 at 3:40 PM Kevin Sutter <sutter@xxxxxxxxxx
> <mailto:sutter@xxxxxxxxxx>> wrote:
> 
>     On this morning's Platform call, Werner communicated the
>     inconsistency which we have across the Jakarta EE Projects relating
>     to the Automatic (and defined) Module Names.
>     Agenda/Minutes:
>     https://docs.google.com/document/d/1EJ2ilaPhMnQqa3aw6AmwjRbBPGL3_np4uuwklgfqPZI/edit#heading=h.ncofh797vcpf
> 
>     In Werner's spreadsheet, he showed how most of the Projects have
>     avoided this exercise altogether.  We have some Projects have left
>     over defined Module Names from Java EE 8, which have been carried
>     forward.  And, some Projects that have attempted to define Automatic
>     Module Names, but we're not consistent.
>     https://docs.google.com/spreadsheets/d/1g8jYG0JixO3wzZkpeyU1LMIQRhbnZ76kGtdMFE8mieE/edit#gid=0
> 
>     So far, there have been four Projects that, on the surface, have
>     defined "incorrect" module names because they used the "java."
>     prefix -- authentication, authorization, servlet, and transaction. 
>     These four at a minimum should have the "jakarta." prefix instead
>     (or, so was stated on the call this morning).
> 
>     But, as I was talking with the Servlet team about making this type
>     of change to define an Automatic Module Name as "jakarta.servlet",
>     they proposed that the name should be "jakarta.servlet.api"
>     (consistent with the other web component modules of "jakarta.el.api"
>     and "jakarta.servlet.jsp.api").  Since we as a Platform haven't
>     defined a naming convention for Modules, I couldn't really argue
>     against their proposed naming convention.
>     https://www.eclipse.org/lists/servlet-dev/msg00233.html
> 
>     Just for reference, we have also avoided the Module Naming
>     convention in our official Jakarta EE Naming Conventions:
>      https://wiki.eclipse.org/JakartaEE_Maven_Versioning_Rules
> 
>     On this morning's call, we indicated that maybe this is something
>     that needs to be discussed with the Spec Committee.  We can still do
>     that (I have added it to our agenda for tomorrow).  But, given that
>     we would be opening a can of worms with entertaining a Module Naming
>     Convention, my proposal for Jakarta EE 9 is to stick with our
>     original plan and *not* address this for Jakarta EE 9.  If we rush a
>     decision, it will be wrong.  If we have a full-blown discussion on
>     this topic, we're just throwing another wrench into the Jakarta EE 9
>     plans.  And, since Jakarta EE 9's priority is Java SE 8 defining
>     Module Names is really a moot point.
> 
>     In a nutshell, here's my proposal.  Please throw eggs asap so that
>     we can move on...  Thanks!
> 
>       * If you have a defined Module Name (module-info.class), then
>         leave it as-is.  These were carry overs from Java EE 8 and we'll
>         just live with them as-is.
>       * If you have an Automatic Module Name (MANIFEST) defined, you can
>         remove it, or leave it as-is, or you can rename it as you think
>         the naming convention might be in the future.
>       * If you have Nothing related to Module Names in your API, then
>         leave it as-is.  I would not recommend adding an Automatic
>         Module Name at this point since we don't know what the
>         convention will be in the future.
>       *  
> 
> Basically, don't do anything for Jakarta EE 9.  Leave everything as-is. 
> And, we'll address it later in either Jakarta EE 9.1 or 10.
> 
> (We will still need some type of disclaimer in the Platform Spec that
> indicates not to count on the Module Names for Jakarta EE 9 -- they will
> be changing in the future when we properly support JPMS Modules.)
> 
> ---------------------------------------------------
> Kevin Sutter
> STSM, MicroProfile and Jakarta EE architect @ IBM
> e-mail:  sutter@xxxxxxxxxx <mailto:sutter@xxxxxxxxxx>     Twitter:
>  @kwsutter
> phone: tl-553-3620 (office), 507-253-3620 (office)    
> LinkedIn: https://www.linkedin.com/in/kevinwsutter
> _______________________________________________
> jakartaee-spec-project-leads mailing list
> jakartaee-spec-project-leads@xxxxxxxxxxx
> <mailto:jakartaee-spec-project-leads@xxxxxxxxxxx>
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/jakartaee-spec-project-leads
> 
>  
> 
> 
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
> 



Back to the top