-
-
Notifications
You must be signed in to change notification settings - Fork 188
[feature] get rid of appassembler-maven-plugin #5951
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
base: develop
Are you sure you want to change the base?
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
bb05d7e to
4677bca
Compare
|
|
very cool, a bit too much to think about for the comments here. Yes wildcard works even with J8, been running it for 4 years now. We would need to keep an eye on the backup, recovery, etc workflows on all three OSs to make sure they still work. We have no integration tests for this, so we need to do it manually. The Dockerfiles here and at I really like the idea of improvements to modifying |
|
I have seen 'JAVA_OPTS' mostly in old scripts, it looks like it was a pattern once used in the tomcat scripts. setting this details in an environment variable will will make the scripts more clean and readable. I will revise the PR with the ideas. |
That could open up a security issue, as an attacker can just drop a jar file into a folder.
JAVA_OPTS is pretty much defacto for all Java applications these days, and has been for many years. Users and developers have come to expect it.
You should avoid these as they have much wider implications. |
|
I considered the potential security issue already. When the variables are locally defined, and the java command is the last one in sequence, there should be no side effects IMO. If one has access for writing access anyway, an existing jar file (or the xml) can be updated any way. The security risk is merely changed not different. I checked a bit more on 'JAVA_OPTS' it seems to be originated from the Catalina scripts, hence an implementation decision? I will check a bit more though. I will follow this pattern. |
Context
Until now, eXist used the outdated appassembler-maven-plugin to create the startup code the application. It created a set of shell scripts, each invoked a boot loader, which read an XML file to find the relevant JAR files, created its own classloader and invoked the class
org.exist.start.Mainto get eXist started.As a drawback it was difficult to add an extra jar file or to apply an hotfix by updating one jar file.
Since java 8 or so the 'java' commands allows an * in the classpath. This PR effectively make use of this feature.
@duncdrum I think this might be useful for our docker deployments.
old content of
etcdirectory:old content of XML file: