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

Q: wildfly-glow for EAP? #83

Open
torsten-liermann opened this issue Aug 12, 2024 · 11 comments
Open

Q: wildfly-glow for EAP? #83

torsten-liermann opened this issue Aug 12, 2024 · 11 comments

Comments

@torsten-liermann
Copy link

Hello!

To what extent can wildfly-glow also be used to optimize an EAP installation, either as an image or a bootable JAR? Galleon supports EAP, as can be read here. It’s likely that this can also be done with wildfly-glow, and I simply haven’t understood this possibility yet. If it’s not possible, is such a feature planned?

Thanks!

@jfdenise
Copy link
Contributor

@torsten-liermann , we are evaluating the opportunity to have Glow capabilities to be supported for EAP. It would help to get your feedback on how Glow could be useful for EAP: Tooling (CLI, maven-plugin, ...), integration (in eap-maven-plugin, ...).
Thank-you.

@torsten-liermann
Copy link
Author

I am currently in the process of evaluating how legacy applications based on EAP compare to Spring Boot applications across various metrics such as image size, RAM usage, and performance. Since Glow is not yet available for EAP, I am using the wildfly-maven-plugin version 5.0.0.Final to create an optimized image. The goal is to demonstrate that JBoss images are just as cloud-native capable as Spring Boot, Quarkus, or others, which ultimately suggests that new implementations are not necessarily required and that time and money are better spent on improving software quality, and so on.

@jfdenise
Copy link
Contributor

@torsten-liermann , thank-you. Very interesting. So integration in the wildfly-maven-plugin seems more suitable in your case than the wildfly-glow CLI.

@torsten-liermann
Copy link
Author

torsten-liermann commented Aug 27, 2024

Unfortunately, I have to resort to using the Glow and Galleon CLI because legacy applications often consist of multiple artifacts, such as several EARs or multiple WARs, and so on. I had already asked in the community why the wildfly-maven-plugin is fixed on a single artifact. Either I missed something, or there is another mechanism to provision a JBoss server that needs to run multiple components.

@jfdenise
Copy link
Contributor

@torsten-liermann , that is unrelated to WildFly Glow itself, using the WildFly Glow CLI (as you mentioned) allows to scan multiple deployments. We should see how the WildFly Maven Plugin can be evolved with multiple deployments. @jamezp FYI.

@jfdenise
Copy link
Contributor

@torsten-liermann , you could use the CLI scripts to deploy the extra deployments. You would need to first resolve the dependencies (ear, war, ...) in a given directory then call the CLI deploy action. Would that work for you?

@torsten-liermann
Copy link
Author

The deployment I can manage, but what I'm concerned with is the provisioning of the WildFly server. I want glow to automatically determine the necessary add-ons by inspecting all artifacts.

@jfdenise
Copy link
Contributor

Good point @torsten-liermann , yes, we need a specific support.

@torsten-liermann
Copy link
Author

I’ve placed a small example on GitHub: https://github.com/torsten-liermann/wildfly-multiapps. The demo doesn't create an optimized WildFly installation using the wildfly-maven-plugin because it can't handle multiple apps—see provisioning/pom.xml. I’ve continued the discussion in the WildFly Google Groups.

@jfdenise
Copy link
Contributor

jfdenise commented Sep 3, 2024

@torsten-liermann, FYI: https://issues.redhat.com/browse/WFMP-269 this capture the issue and describes a possible solution. Feel free to comment.
Thank-you.

@jamezp
Copy link
Member

jamezp commented Dec 2, 2024

@torsten-liermann Just an FYI we went with a slightly different approach. There will be four options to include additional deployments for the package goal.

  • <include-dependencies/>: A set of dependency patterns to include.
  • <exclude-dependencies/>: A set of dependency patterns to exclude.
  • <include-dependency-scope/>: The scope for the dependencies to include.
  • <exclude-dependency-scope/>: The scope for the dependencies to exclude.

These are and chain checked. Meaning that dependencies must pass each check.

Example:

<configuration>
    <include-dependencies>
        <include>::ear</include>
    </included-dependencies>
    <excluded-dependency-scope>test</excluded-dependency-scope>
</configuration>

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

No branches or pull requests

3 participants