-
Notifications
You must be signed in to change notification settings - Fork 65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update API section for optional and pruned features #187
Conversation
Signed-off-by: Kevin Sutter <kwsutter@gmail.com>
@dblevins I'm looking for some help with reviewing and updating the sub-section on EJB 4 in the API section of the Platform spec. In the changed files, look for the "TODO" items. I've got questions about the CORBA and Interop changes as well. Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks good. Will follow up on the list with some of the notes I made. Not using "Request Changes" in the review till we've had some opportunity to discuss.
versions, which containers include the technologies, and whether the | ||
technology is required (REQ), proposed optional (POPT), or optional | ||
(OPT). Each Jakarta EE profile specification will include a similar table | ||
describing which technologies are required for the profile. Note that | ||
some technologies are marked Optional, as described in the next section. | ||
|
||
*Note:* Jakarta EE 9 introduced the concept of "pruned" technologies. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll hit the list with this, but I think we should not introduce "prune" as an alias for remove. It would be simpler to promote "remove" as the official term.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewing the discussion on the Platform mailing list, I'm starting to agree. The original spec used "prune" in a different light from how we used "prune" in the release plan. So, maybe it's best to just cut our losses and go with the "remove" terminology and definition. Thanks.l
policy to a feature is to allow a gradual deprecation and possible removal | ||
of the feature from a required component of the platform. | ||
Product vendors can _choose_ to remove an "optional" feature from their products. | ||
Product vendors are _required_ to remove a "pruned" feature from their products for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another topic for the list, but this is likely too restrictive. For example we've removed CORBA but left remote calls as optional. GlassFish and WAS can only support remote calls via CORBA. WAS could remove remote calls entirely, but GlassFish is not capable of doing that as we need at least one Compatible Implementation that supports all optional parts. Therefore there's no way it can both remove CORBA and support the optional remote EJB calls.
There are other reasons that can make this hard. We would likely need some compromise that would allow:
- someone to continue to ship a compliant impl of something that may exist as a standalone specification.
- the platform to freely add standalone specs to the platform definition (say JCache, NoSQL) and later remove them from the platform definition without "outlawing" its use by the industry in general. There needs to be some way to return to a simple standalone spec status.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, looks like I overstepped the requirement for the "removed" features. I'll remove or reword this statement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reworded instead of complete removal of this statement. I want to be clear that "removed" features are no longer maintained. And, that any integration of a "removed" feature with the Platform is left as an exercise for the vendor. That is, it is not defined by the Spec.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest to remove "Product vendors are required to remove a "pruned" feature from their products for" as Product vendors can decide to remove a pruned feature or not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Emily-Jiang, thanks. That comment was already addressed in the commits.
|
||
===== Java IDL (Proposed Optional) | ||
|
||
*TODO Note:* Since the CORBA module didn't get picked up for Jakarta EE 9, do we remove |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We had voted to remove CORBA and that would remove this section.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the confirmation! Removed.
@@ -1015,6 +1060,8 @@ _http://www.omg.org/cgi-bin/doc?formal/2000-06-19_ . | |||
|
|||
===== RMI-JRMP | |||
|
|||
*TODO Note:* What to do with this section? Leave as-is, mark Optional, remove? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there's a deeper question here because the actual RMI protocol has to my knowledge never been a requirement and I can guarantee is not tested in the TCK. Geronimo never supported the actual RMI protocol and passed EE 4, 5 and 6 full profile TCKs. I don't think even GlassFish supports EJB calls over RMI, just CORBA.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll need to continue the discussion you started on the Platform mailing list.
@@ -1023,6 +1070,9 @@ application component types can be clients of RMI objects. | |||
|
|||
===== RMI-IIOP (Proposed Optional) | |||
|
|||
*TODO Note:* Since distributed interop is being removed from the EJB spec, do we remove |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would tentatively say, "yes", but I would need to review the EJB spec's usage of RMI-IIOP.
I know there are specific requirements for non-CORBA protocols that say you must not conflict with RMI-IIOP and I believe the term was "RMI-IIOP compatible." We would want to keep those types of usages because we do have implementations that can only support remote EJBs via CORBA.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will wait with deleting this section until we complete this discussion on the mailing list.
policy to a feature is to allow a gradual deprecation and possible removal | ||
of the feature from a required component of the platform. | ||
Product vendors can _choose_ to remove an "optional" feature from their products. | ||
Product vendors are _required_ to remove a "pruned" feature from their products for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Drop statement that "Product vendors are required to remove a "pruned" feature from their products for"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reworded instead of complete removal of this statement. I want to be clear that "removed" features are no longer maintained. And, that any integration of a "removed" feature with the Platform is left as an exercise for the vendor. That is, it is not defined by the Spec.
Signed-off-by: Kevin Sutter <kwsutter@gmail.com>
Signed-off-by: Kevin Sutter <kwsutter@gmail.com>
Asking for a re-review by @dblevins and @starksm64, so that we can make some progress on the Spec for the Milestone release. It doesn't have to be perfect yet, but I think it's much clearer with regards to the optional and removed features. If there are areas that need more attention and we don't have time to address right now, we can just create issues or TODOs for tracking. Thanks! |
specification/src/main/asciidoc/platform/ApplicationProgrammingInterface.adoc
Show resolved
Hide resolved
Signed-off-by: Kevin Sutter <kwsutter@gmail.com>
I'm going to go ahead with the merge. Thank you to @ivargrimstad and @kazumura for their approvals. I've marked the sections that still need some work with TODO. It will have to be good enough for the Milestone release and we'll improve on it for the Final release. |
Signed-off-by: Kevin Sutter kwsutter@gmail.com
Changes in this PR...