Closed dmuelle closed 1 year ago
Need to link out to marketplace entries for the tools as well.
comment from slack discussion: Does Liberty Tools support EE8 and MP4? Determine by pom.xml or server.xml? This should be at the top of our doc. I don't believe we offer any assistance with EE 8... @Kathryn Kodama or @tcrawford please correct me. For MP 4, since it's the same classes as MP 3, I believe you can make use of the LS, as long as you stick to the MP 3 subset.
The openliberty.io work item for the new IDE tools section
@cherylking @yeekangc @TrevCraw @scottkurz @kathrynkodama
The initial draft of the Liberty Tools overview is now available for review
Please leave any feedback as a comment in this issue- thanks!
@dmuelle A few suggestions, feel free to disregard any:
General comments:
Thanks!
Thanks @yeekangc @kathrynkodama , all comments addressed in the refreshed draft:
a few notes:
@dmuelle In the second paragraph, this sentence: "Liberty Tools automatically detects any projects that specify the Liberty Maven plug-in or the Liberty Gradle plug-in in the project pom.xl file." needs to be updated to: "Liberty Tools automatically detects any projects that specify the Liberty Maven plug-in or the Liberty Gradle plug-in in the project's pom.xml or build.gradle file."
Not sure if this is too much detail or whether we should call this out here, but the tools will detect Liberty projects that have a src/main/liberty/config/server.xml
file and we expect that they have the Liberty plug-in specified in their build file.
Shouldn't it actually be detect
instead of detects
...Liberty Tools is plural.
"Liberty Tools automatically detects any projects"
Same in this sentence: "Liberty Tools also provides helpful language-support"
Change provides
to provide
.
And " Liberty Tools brings these"...change brings
to bring
.
I'm the verb tense police today :-)
@cherylking - as a product name "Liberty Tools" is treated as a collective noun, ie the title is plural, but as a product it is a singular entity (though made up of component parts).
@cherylking - as a product name "Liberty Tools" is treated as a collective noun, ie the title is plural, but as a product it is a singular entity (though made up of component parts).
ok, but it reads weird.
Given that "Liberty Tools" is actually referring to three products, it seems plural and reads plural. But I will defer to your judgement.
One more suggestion - can we add to the "Jakarta EE APIs" section that the language features are delivered for Java files. Either at the top or after each bullet like in the "MicroProfile EE APIs" section?
@cherylking - I was thinking from the opening sentence definition
Liberty Tools is an intuitive set of developer tools....
When you talk about them collectively as a set of developer tools (or 3 plugins/extensions), that set is singular. However, It does seem awkward elsewhere in the topic and I think we can update to treat them as plural. Generally, brand names and product names are treated as singular but I can't find any explicit guidance that says never to treat them as plural.
could maybe in the intro just say
Liberty Tools are intuitive developer tools....
Thanks for reviewing @cherylking @kathrynkodama - all comments incorporated except
Not sure if this is too much detail or whether we should call this out here, but the tools will detect Liberty projects that have a src/main/liberty/config/server.xml file and we expect that they have the Liberty plug-in specified in their build file.
I don't quite understand- does this mean you get language server features as long as you have a src/main/liberty/config/server.xml file, but you'd need the one of plugins to interact with dev mode?
I don't quite understand- does this mean you get language server features as long as you have a src/main/liberty/config/server.xml file, but you'd need the one of plugins to interact with dev mode?
This might be too much detail for these docs, so maybe it is fine to leave as-is. The general recommendation is that users have the Liberty plugin already configured.
To get specific, the project will be populated in the dashboard/tool window if a src/main/liberty/config/server.xml
file is detected. The tools assume that they have one of the plugins configured already. With Maven, even if they don't have the plugin configured, they will still be able to start dev mode (with the way we call the command). With Gradle, they will need to have the Liberty Gradle plugin configured for dev mode to start correctly.
The language server support works independently of the dashboard/tool window.
Liberty Config language support will be delivered if one of the supported files is opened.
Jakarta EE and MicroProfile API language support will be delivered on any Java file where we can detect usage of a Jakarta EE or MicroProfile API or a microprofile-config.properties
file.
@dmuelle So to sum up what Kathryn said, I think they will get Liberty language server features for their Liberty config files regardless of whether the LMP/LGP are configured.
ok- to firm up the minimum requirements section. Now we have
To use Liberty Tools with dev mode, your project must specify the Liberty Maven plug-in or the Liberty Gradle plug-in in the project pom.xl or build.gradle file. A minimum level of 3.7.1 for the Liberty Maven plug-in or 3.5.1 for the Liberty Gradle plug-in is recommended.
Language support features are available for MicroProfile 3.0 and 4.0 APIs and Jakarta EE 9.x APIs.
Maybe it should say
To use Liberty Tools with dev mode, your project must specify the Liberty Maven plug-in or the Liberty Gradle plug-in in the project pom.xl or build.gradle file. A minimum level of 3.7.1 for the Liberty Maven plug-in or 3.5.1 for the Liberty Gradle plug-in is recommended.
Language support features are available for MicroProfile 3.0 and 4.0 APIs, Jakarta EE 9.x APIs, and select Liberty configuration and Java files. These features are enabled for any Liberty project that includes a
server.xml
file in thesrc/main/liberty/config
directory.
that elides a bit of detail but from a user perspective does it cover all the bases?
Language support features are available for MicroProfile 3.0 and 4.0 APIs, Jakarta EE 9.x APIs, and select Liberty configuration and Java files. These features are enabled for any Liberty project that includes a server.xml file in the src/main/liberty/config directory.
That last sentence only applies to the Liberty config language server. So that is confusing. Makes it sound like you won't get the Jakarata and MP language server support unless you have a server.xml. I don't think that is correct, is it @kathrynkodama ?
@cherylking Right, it does not apply to the Jakarta and MP language support. They will provide support on any Java file that detects usage of the Jakarta EE and MP APIs
To use Liberty Tools with dev mode, your project must specify the Liberty Maven plug-in or the Liberty Gradle plug-in in the project pom.xl or build.gradle file. A minimum level of 3.7.1 for the Liberty Maven plug-in or 3.5.1 for the Liberty Gradle plug-in is recommended.
Language support features are available for MicroProfile 3.0 and 4.0 APIs, Jakarta EE 9.x APIs, and select Liberty configuration and Java files.
I guess we could say something like
To use the full set of Liberty Tools functions for dev mode, your project must specify...
OK, I'm a bit late to the game, sorry about that. Some of this has been said already but I'm basing my comments on the latest draft server even if there's some overlap
Language support features are available for MicroProfile 3.0 and 4.0 APIs, Jakarta EE 9.x APIs, and select Liberty configuration and Java files
we just read essentially the same thing in the very first section so maybe could delete.One more detail:
These features are available for the following Liberty configuration files ... Any XML files that contain the server root element and exist in the src/main/liberty/config, configDropins/overrides, configDropins/defaults, usr/shared/config, or usr/servers directory
I don't think that accurately describes the current story....e.g. a src/main/liberty/config/my.xml
won't get the LCLS XML support. @cherylking correct me if I'm wrong. Maybe we could just say less and it'd be close enough. Was there already a comment on this?
I don't think that accurately describes the current story....e.g. a src/main/liberty/config/my.xml won't get the LCLS XML support. @cherylking correct me if I'm wrong. Maybe we could just say less and it'd be close enough. Was there already a comment on this?
I think it will get support. I will have to verify, but we look for other xml files in the pre-defined config locations for Liberty in addition to any xml file <include>
from the server.xml.
Thanks for reviewing @scottkurz - I made the following changes-
I left the supported files list as is based on Cheryl's response- can update if needed.
@dmuelle Maybe it would be safer for now to take out the line about the additional XML files in those config folders. We can add it later once we figure out whatever bug we have in that section of code.
@dmuelle After some testing, I think the line just needs to be altered slightly from:
Any XML files that contain the server root element and exist in the src/main/liberty/config, configDropins/overrides, configDropins/defaults, usr/shared/config, or usr/servers directory
to
Any XML files that contain the server root element and exist in the configDropins/overrides, configDropins/defaults, usr/shared/config, or usr/servers directory
@cherylking - updated Liberty config XML file list https://docs-draft-openlibertyio.mqj6zf7jocq.us-south.codeengine.appdomain.cloud/docs/latest/develop-liberty-tools.html#_liberty_configuration_files
Thanks to all for your work on the overview doc for the early release refresh, it is now published at
https://openliberty.io/docs/latest/develop-liberty-tools.html
I'm going to keep this issue open at the moment to track related ID updates in the various Git repos. Here is the progress on those so far:
IntelliJ and VS Code: edited and published the Git docs, including the README, user guide, Developing, Contributing Eclipse: awaiting updates LCLS: Docs edited and updated LSP4Jarkarta: Docs edited and updated
We can also use this issue to track any changes needed between the early release and GA
ID work for GA is tracked in #6403, closing this issue
We need an overview page for the new Liberty Tools for Eclipse, VS Code, and Intellij.
Planned MVP Ga is December 9th. Doc will publish with 22.0.0.13