diff --git a/README.md b/README.md index 6dd0bc36..c459950f 100644 --- a/README.md +++ b/README.md @@ -134,9 +134,24 @@ Note that the symble `:ezbake` is not strictly necessary here. Composite EZBake projects usually do not define their own services but rather provide a list of dependencies which themselves define TK services. Because of this it is not strictly necessary to define a profile such as `:ezbake` shown -above; although it is conceivable that such a composite project may define its -own services, it is unlikely and ill-advised because no one likes blurred lines -in architectural diagrams. Just look at the Leaning Tower of Pisa. +above. + +If the composite project needs to define build time templates, such as `resources/ext/cli_defaults/cli-defaults.sh.erb` +EZbake will only include items that are in jars on the class path at the time +the project is staged. As a result, the project must include a self-referential dependency +in the `ezbake` profile. This will allow ezbake to discover these files correctly. +```clojure +(def my-project-version "0.0.1-SNAPSHOT") + +(defproject somenamespace/myproject my-project-version +... +:profiles { + ... + :ezbake {:dependencies [[mynamespace/myproject ~my-project-version]]} + ... + } +) +``` #### Additional Uberjars diff --git a/resources/puppetlabs/lein-ezbake/template/foss/ext/default.erb b/resources/puppetlabs/lein-ezbake/template/foss/ext/default.erb index db413b49..92ab885c 100644 --- a/resources/puppetlabs/lein-ezbake/template/foss/ext/default.erb +++ b/resources/puppetlabs/lein-ezbake/template/foss/ext/default.erb @@ -2,8 +2,8 @@ # Init settings for <%= EZBake::Config[:project] %> ########################################### -# Location of your Java binary (version 8) -JAVA_BIN="/usr/bin/java" +# Location of your Java binary +#JAVA_BIN="" # Modify this if you'd like to change the memory allocation, enable JMX, etc JAVA_ARGS="<%= EZBake::Config[:java_args] %>" diff --git a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.init.erb b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.init.erb index 2624c127..2d0849e6 100755 --- a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.init.erb +++ b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.init.erb @@ -22,6 +22,8 @@ #set default privileges to -rw-r----- umask 027 +JAVA_BIN=<%= EZBake::Config[:java_bin] %> + # You should only need to edit the default/<%= EZBake::Config[:project] %> file and not # this init script directly if [ -r "/etc/default/<%= EZBake::Config[:project] %>" ] ; then diff --git a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.service.erb b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.service.erb index 0da59d3d..96cbe93d 100644 --- a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.service.erb +++ b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.service.erb @@ -20,6 +20,7 @@ Wants=<%= EZBake::Config[:start_after].map {|dep| "#{dep}.service" }.join(" ") % [Service] Type=forking +Environment=JAVA_BIN="<%= EZBake::Config[:java_bin] %>" EnvironmentFile=/etc/default/<%= EZBake::Config[:project] %> User=<%= EZBake::Config[:user] %> TimeoutStartSec=<%= EZBake::Config[:start_timeout] %> diff --git a/resources/puppetlabs/lein-ezbake/template/global/ext/fpm.rb b/resources/puppetlabs/lein-ezbake/template/global/ext/fpm.rb index 6b4aadb6..653fb6d9 100755 --- a/resources/puppetlabs/lein-ezbake/template/global/ext/fpm.rb +++ b/resources/puppetlabs/lein-ezbake/template/global/ext/fpm.rb @@ -14,6 +14,7 @@ options.old_sles = 0 options.sles = 0 options.java = 'java-1.8.0-openjdk-headless' +options.java_bin = '/usr/bin/java' options.release = 1 options.platform_version = 0 options.is_pe = false @@ -181,25 +182,28 @@ options.systemd_el = 1 elsif options.operating_system == :el && options.os_version >= 7 # systemd el if ! options.is_pe + # https://bugzilla.redhat.com/show_bug.cgi?id=2224427 fpm_opts << "--depends tzdata-java" - options.java = - case options.platform_version - when 8 - # rpm on Redhat 7 may not support OR dependencies - if options.os_version == 7 - 'java-11-openjdk-headless' - elsif options.os_version == 8 - '(java-17-openjdk-headless or java-11-openjdk-headless)' - elsif options.os_version == 9 - 'java-17-openjdk-headless' - else - fail "Unrecognized el os version #{options.os_version}" - end - when 6..7 - 'java-1.8.0-openjdk-headless' + case options.platform_version + when 8 + # rpm on Redhat 7 may not support OR dependencies + if options.os_version == 7 + options.java = 'jre-11-headless' + options.java_bin = '/usr/lib/jvm/jre-11/bin/java' + elsif options.os_version == 8 + options.java = '(jre-17-headless or jre-11-headless)' + # TODO: which bin to use? /usr/bin/java may be anything + elsif options.os_version == 9 + options.java = 'jre-17-headless' + options.java_bin = '/usr/lib/jvm/jre-17/bin/java' else - fail "Unknown Puppet Platform Version #{options.platform_version}" + fail "Unrecognized el os version #{options.os_version}" end + when 6..7 + options.java = 'java-1.8.0-openjdk-headless' + else + fail "Unknown Puppet Platform Version #{options.platform_version}" + end end options.systemd = 1 diff --git a/resources/puppetlabs/lein-ezbake/template/global/ext/redhat/ezbake.service.erb b/resources/puppetlabs/lein-ezbake/template/global/ext/redhat/ezbake.service.erb index 0698552e..de91f141 100644 --- a/resources/puppetlabs/lein-ezbake/template/global/ext/redhat/ezbake.service.erb +++ b/resources/puppetlabs/lein-ezbake/template/global/ext/redhat/ezbake.service.erb @@ -20,6 +20,7 @@ Wants=<%= EZBake::Config[:start_after].map {|dep| "#{dep}.service" }.join(" ") % [Service] Type=forking +Environment=JAVA_BIN="<%= EZBake::Config[:java_bin] %>" EnvironmentFile=/etc/sysconfig/<%= EZBake::Config[:project] %> User=<%= EZBake::Config[:user] %> TimeoutStartSec=<%= EZBake::Config[:start_timeout] %>