Re: [Discuss] (SLING-8350) Switch the Sling starter to the feature model

2020-05-08 Thread Robert Munteanu
Hi Ruben,

On Fri, 2020-05-08 at 10:55 -0700, Ruben Reusser wrote:
> Robert,
> 
> you mentioned bringing this discussion to the dev mailing list (hope
> I 
> did this the right way)
> 
> > - kickstart launcher (fat JAR)
> 
> I am not sure why you think the kickstarter is a fat jar. It relies
> on a 
> feature file for sling and the feature launcher. It's main purpose is
> to 
> provide the same command line argument interface as the 
> apache.sling.starter on top of the feature launcher as the feature 
> launcher is rather limited in that regard. Also note that once the 
> feature launcher with FAR support is released the kickstarter will
> also 
> support FARs.

Ah, thanks for clarifying that. I'm slowly trying to better understand
how things fit in the picture, and I had the impression that the
kickstart launcher was the complete equivalent of the launchpad jar.

I think both the kickstart and the feature launcher have their place in
the Sling space. But I still don't claim to understand things
completely :-)

I think this is the point where someone says 'enough emails, someone
should go write a Wiki page. I'll try and summarise the current status
and the options that I'm aware of and come back to the dev list.

I think from a technical point of view we are close enough to having a
proper alternative to the feature model based starter to start drawing
up a concrete proposal.

Thanks,
Robert

> 
> as a reference: below the -h output for the feature launcher, 
> kickstarter and classic sling starter
> 
> Ruben
> 
> feature launcher command line interface:
> 
> usage: launcher -C  Set artifact clash override -c  Set
> cache 
> dir -CC  Set config clash override -D  Set framework 
> properties -ec  Provide extension configuration, format: 
> extensionName:key1=val1,key2=val2 -f  Set feature files -fa
>  
> Set framework artifact (overrides felix framework version) -fv 
> Set 
> felix framework version -p  Set home dir -u  Set
> repository 
> url -V  Set variable value -v Verbose
> 
> kickstarter command line interface
> 
> Usage: java -jar  [-hnv] [-a=] 
> [-c=] [-f=] [-i=] 
> [-j=] [-l=] [-p=] [-r=] 
> [-s=] [-af=]... 
> [-D=]... [COMMAND] Apache Sling Kickstart [COMMAND] 
> Optional Command for Server Instance Interaction, can be one of: 
> 'start', 'stop', 'status' or 'threads' -a, --address= the 
> interface to bind to (use 0.0.0.0 for any) -af, 
> --additionalFeature= additional feature files
> -c, 
> --slingHome= the sling context directory (default sling)
> -D, 
> --define= sets property n to value v. Make sure to
> use 
> this option *after* the jar filename. The JVM also has a -D option
> which 
> has a different meaning -f, --logFile= the log file, "-"
> for 
> stdout (default logs/error.log) -h, --help Display the usage
> message. 
> -i, --launcherHome= the launcher home directory
> (default 
> launcher) -j, --control= host and port to use for 
> control connection in the format '[host:]port' (default 127.0.0.1:0)
> -l, 
> --logLevel= the initial loglevel (0..4, FATAL, ERROR,
> WARN, 
> INFO, DEBUG) -n, --noShutdownHook don't install the shutdown hook
> -p, 
> --port= the port to listen to (default 8080) -r, 
> --context= the root servlet context path for the http 
> service (default is /) -s, --mainFeature= main
> feature 
> file (file path or URL) replacing the provided Sling Feature File
> -v, 
> --verbose the feature launcher is verbose on launch Copyright(c)
> 2020 
> The Apache Software Foundation.
> 
> classic
> 
> usage: org.apache.sling.launchpad.app.Main [ start | stop | status ]
> [ 
> -j adr ] [ -l loglevel ] [ -f logfile ] [ -c slinghome ] [ -i 
> launchpadhome ] [ -a address ] [ -p port ] { -Dn=v } [ -h ]
>  start listen for control connection (uses -j)
>  stop  terminate running Apache Sling (uses -j)
>  statuscheck whether Apache Sling is running (uses -j)
>  threads   request a thread dump from Apache Sling (uses -j)
>  -j adrhost and port to use for control connection in
> the 
> format '[host:]port' (default 127.0.0.1:0)
>  -l loglevel   the initial loglevel (0..4, FATAL, ERROR, WARN,
> INFO, 
> DEBUG)
>  -f logfilethe log file, "-" for stdout (default
> logs/error.log)
>  -c slinghome  the sling context directory (default sling)
>  -i launchpadhome  the launchpad directory (default slinghome)
>  -a addressthe interfact to bind to (use 0.0.0.0 for any)
>  -p port   the port to listen to (default 8080)
>  -r path   the root servlet context path for the http
> service 
> (default is /)
>  -ndon't install the shutdown hook
>  -Dn=v sets property n to value v. Make sure to use this 
> option *after* the jar filename. The JVM also has a -D option which
> has 
> a different meaning
>  -hprints this usage message
> 
> On 5/8/2020 12:27 AM, Robert Munteanu (Jira) wrote:
> >  [ 
> > https://issues.apache.org/jira/browse/SLING-8350?page=com.at

[Discuss] (SLING-8350) Switch the Sling starter to the feature model

2020-05-08 Thread Ruben Reusser

Robert,

you mentioned bringing this discussion to the dev mailing list (hope I 
did this the right way)



- kickstart launcher (fat JAR)


I am not sure why you think the kickstarter is a fat jar. It relies on a 
feature file for sling and the feature launcher. It's main purpose is to 
provide the same command line argument interface as the 
apache.sling.starter on top of the feature launcher as the feature 
launcher is rather limited in that regard. Also note that once the 
feature launcher with FAR support is released the kickstarter will also 
support FARs.


as a reference: below the -h output for the feature launcher, 
kickstarter and classic sling starter


Ruben

feature launcher command line interface:

usage: launcher -C  Set artifact clash override -c  Set cache 
dir -CC  Set config clash override -D  Set framework 
properties -ec  Provide extension configuration, format: 
extensionName:key1=val1,key2=val2 -f  Set feature files -fa  
Set framework artifact (overrides felix framework version) -fv  Set 
felix framework version -p  Set home dir -u  Set repository 
url -V  Set variable value -v Verbose


kickstarter command line interface

Usage: java -jar  [-hnv] [-a=] 
[-c=] [-f=] [-i=] 
[-j=] [-l=] [-p=] [-r=] 
[-s=] [-af=]... 
[-D=]... [COMMAND] Apache Sling Kickstart [COMMAND] 
Optional Command for Server Instance Interaction, can be one of: 
'start', 'stop', 'status' or 'threads' -a, --address= the 
interface to bind to (use 0.0.0.0 for any) -af, 
--additionalFeature= additional feature files -c, 
--slingHome= the sling context directory (default sling) -D, 
--define= sets property n to value v. Make sure to use 
this option *after* the jar filename. The JVM also has a -D option which 
has a different meaning -f, --logFile= the log file, "-" for 
stdout (default logs/error.log) -h, --help Display the usage message. 
-i, --launcherHome= the launcher home directory (default 
launcher) -j, --control= host and port to use for 
control connection in the format '[host:]port' (default 127.0.0.1:0) -l, 
--logLevel= the initial loglevel (0..4, FATAL, ERROR, WARN, 
INFO, DEBUG) -n, --noShutdownHook don't install the shutdown hook -p, 
--port= the port to listen to (default 8080) -r, 
--context= the root servlet context path for the http 
service (default is /) -s, --mainFeature= main feature 
file (file path or URL) replacing the provided Sling Feature File -v, 
--verbose the feature launcher is verbose on launch Copyright(c) 2020 
The Apache Software Foundation.


classic

usage: org.apache.sling.launchpad.app.Main [ start | stop | status ] [ 
-j adr ] [ -l loglevel ] [ -f logfile ] [ -c slinghome ] [ -i 
launchpadhome ] [ -a address ] [ -p port ] { -Dn=v } [ -h ]

    start listen for control connection (uses -j)
    stop  terminate running Apache Sling (uses -j)
    status    check whether Apache Sling is running (uses -j)
    threads   request a thread dump from Apache Sling (uses -j)
    -j adr    host and port to use for control connection in the 
format '[host:]port' (default 127.0.0.1:0)
    -l loglevel   the initial loglevel (0..4, FATAL, ERROR, WARN, INFO, 
DEBUG)

    -f logfile    the log file, "-" for stdout (default logs/error.log)
    -c slinghome  the sling context directory (default sling)
    -i launchpadhome  the launchpad directory (default slinghome)
    -a address    the interfact to bind to (use 0.0.0.0 for any)
    -p port   the port to listen to (default 8080)
    -r path   the root servlet context path for the http service 
(default is /)

    -n    don't install the shutdown hook
    -Dn=v sets property n to value v. Make sure to use this 
option *after* the jar filename. The JVM also has a -D option which has 
a different meaning

    -h    prints this usage message

On 5/8/2020 12:27 AM, Robert Munteanu (Jira) wrote:

 [ 
https://issues.apache.org/jira/browse/SLING-8350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17102331#comment-17102331
 ]

Robert Munteanu commented on SLING-8350:


I think it's worthwhile discussing the way forward ( or the way out :-) ) with 
the Feature Model on dev@sling . I don't claim to have a good understanding of 
the solution space yet, but what I understand is that we have three possible 
levels of support:

- feature launcher + feature file ( JSON )
- feature launcher + feature archive ( FAR )
- kickstart launcher (fat JAR)

I am not sure which option is "the best", and IIRC at some point we were 
discussing FAR vs KickStart.

As I've said, it would be worthwhile to discuss on the dev list.