project-lux / lux-marklogic

Code, issues, and resources related to LUX MarkLogic
Other
3 stars 2 forks source link

Extract query plan viewer into its own ML Gradle project #192

Open brent-hartwig opened 4 days ago

brent-hartwig commented 4 days ago

Having the query plan viewer embedded in this repo incorrectly gives the impression that much of the backend is implemented in XQuery, when it is not:

image

The scope of this ticket is to extract it from this project and package it up as its own ML Gradle project.

brent-hartwig commented 4 days ago

This ticket impacts multiple repos. By repo...

lux-marklogic repo (public)

PR #195 extracts the query plan viewer from the lux-marklogic repo. It also moves the remaining modules directly within the standard ml-modules directory, alleviating us from setting the mlModulePaths property.

Full list of property changes:

  1. Delete the mlModulePaths property as the new value matches ML Gradle's default. If one chooses to keep the property, set it to src/main/ml-modules.
  2. Set the mlConfigPaths property value to build/main/ml-config/base,build/main/ml-config/base-secured.
  3. Delete the mlQueryPlanViewerPort property.
  4. Delete the mlQueryPlanViewerAuthentication property.

After deploying and presuming the modules database was cleared first, one may expect 119 documents in the lux-modules database (or whatever the LUX tenant's modules database name is).

ml-cluster-formation (private)

PR #26 makes the above property edits to our environment-specific properties files.

@clarkepeterf and @xinjianguo, these changes will apply to backend release1.20 and later as soon as the above PR is merged into the release1.20 branch. After that time, please update any copies of these files you may have. If the mlModulesPaths property is not deleted or updated, the deployment will fail. For quick reference, see changes to gradle.properties.

query-plan-viewer (new)

@clarkepeterf, please create a new repo out of query-plan-viewer.zip. Up to you if private or public. It comes with a README.md that is appropriate for all ages and audiences.

As this is a standalone ML Gradle project, it comes with its own gradle.properties file. While we could create a new set of environment-specific ones within the ml-cluster-formation repo, I do not see the need. The one I created for DEV overrode two properties: mlHost and mlUsername.

@clarkepeterf and @xinjianguo, now or later, we can delete the query plan viewer app server from SBX, Blue, and Green (restarts the cluster). Its configuration will become obsolete as soon as the PR #195's changes are deployed. Given the query plan viewer is not presently being used, I'm good with deleting its app server and not recreating it. DEV's query plan viewer was created using the attached files.

If/after deploying, one may expect 29 documents in the new query-plan-viewer-modules database.