Skip to content
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

Application poms #1022

Merged
merged 20 commits into from
Sep 12, 2019
Merged

Conversation

romain-grecourt
Copy link
Contributor

Application poms:

Create a new parent pom hierarchy to fit new applications-pom:

  • helidon-parent -> helidon-bom -> helidon-3rdparty -> helidon-project
  • helidon-parent -> helidon-bom -> helidon-3rdparty -> applications-project

The BOM pom is now inherited by helidon-project, thus the requirement of ${project.version} for
Helidon modules is effectively dropped. This also helps enforcing that the BOM pom contains an entry
for all modules.

Update bare archetypes and all examples/apps to use the application-poms.

Using <relativePath>../../../applications/se/pom.xml</relativePath> in all examples in order
to build locally with a single Maven reactor. This shall be refactored to when
the example are moved out of the main repository. This is a temporary trade-off. Also Updated
the archetype creation script to replace relativePath to <relativePath/>.

Example updates:

  • Updated all Dockerfiles to use the new multi-stage docker build style.
  • Refactored the webserver translator app to fit under examples, as a two modules backend/frontend project.
  • Refactored the todo frontend to use webpack to create nice javascript and avoid serving node_module to the browser...
  • Created examples/k8s with shared Kubernetes resources yaml files for nginx-ingress and zipkin.
  • Updated all README.md for consistency and add missing details for trying the endpoints / exercising the examples
  • Tested all updates

Metrics 2 changes

Simplified the Maven aspect of the metrics 2 support:

  • the microprofile-metrics-api dependency is NOT managed ; otherwise the managed version is always enforced, and the
    transitive dependency version is trumped.
  • created two properties named after each version of the spec to use to declare a dependency on the API ; this is to be as explicit as possible
  • removed all superfluous declaration to the microprofile-metrics-api in order to resolve it transitively from helidon-metrics and helidon-metrics2

…lications.

Update webserver examples to use the new applications parent pom.
Updated the opentracing example to align the docker build with the quickstart.
Updated the translator application:
 - multi-stage docker build
 - converted to pure SE (replaced usage of jersey with webserver)
 - removed hooks to simulate resiliency
 - removed TODOs for security
 - removed useless static HTML
 - refactored both frontend and backend under a single directory with a common reactor and common README.md
 - reworked README.md
 - added proper k8s yaml to run the app on docker-for-desktop
 - use webpack for bundling javascript on the frontend
 - update the dockerfiles
 - udpate README.me
Add a top level k8s directory with zipkin and ingress resources.
Update integrations/cdi examples
Tested oci-objectstorage and jedis.
Fixed an issue in oci-objectstorage integration with empty passphrase.
   helidon-parent -> helidon-bom -> helidon-3rdparty -> helidon-project
                                                     -> applications-project

The BOM pom is now inherited by helidon-project, thus the requirement of ${project.version} for
Helidon modules is now dropped. This also helps enforcing that the BOM pom contains an entry
for all modules.

Using <relativePath>../../../applications/se/pom.xml</relativePath> in all examples in order
to build locally with a single Maven reactor. This shall be refactored to <relativePath/> when
the example are moved out of the main repository. It is a temporary trade-off.
Fix checkstyle
Fix docs build
3rdparty/pom.xml Outdated Show resolved Hide resolved
applications/pom.xml Outdated Show resolved Hide resolved
ljnelson
ljnelson previously approved these changes Sep 12, 2019
Copy link
Member

@ljnelson ljnelson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this a great deal.

tomas-langer
tomas-langer previously approved these changes Sep 12, 2019
Copy link
Member

@tomas-langer tomas-langer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved if all tests pass including native-image

ljnelson
ljnelson previously approved these changes Sep 12, 2019
…ports last within 3rparty pom, add dep mgmt for openapi-tck
ljnelson
ljnelson previously approved these changes Sep 12, 2019
…id conflicting with project.version on application poms since the bom is inherited
@romain-grecourt romain-grecourt merged commit 0f64033 into helidon-io:master Sep 12, 2019
@romain-grecourt romain-grecourt deleted the application-poms branch September 12, 2019 22:48
@romain-grecourt
Copy link
Contributor Author

A couple of non critical changes are missing from this PR:

  • a change in etc/scripts/release.sh to update the versions (needs to be fired from parent/pom.xml instead of from the top level pom)
  • Add missing <build></build> in tests/integration/native-image/se-1/pom.xml`. I've tested the native-image it works.

Both of these changes will be added directly in the release branch and merged to master post release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants