jbang/SlingStarter.java (27 lines of code) (raw):

///usr/bin/env jbang "$0" "$@" ; exit $? /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with this * work for additional information regarding copyright ownership. The ASF * licenses this file to You under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ //JAVA 11+ //DEPS org.apache.sling:org.apache.sling.feature.launcher:1.2.0 //DEPS commons-cli:commons-cli:1.4 //DEPS org.apache.commons:commons-lang3:3.12.0 //DEPS org.apache.commons:commons-text:1.9 //DEPS org.apache.felix:org.apache.felix.cm.json:1.0.6 //DEPS org.apache.felix:org.apache.felix.converter:1.0.18 //DEPS org.apache.sling:org.apache.sling.commons.johnzon:1.2.14 //DEPS org.apache.sling:org.apache.sling.feature:1.2.30 //DEPS org.apache.sling:org.apache.sling.feature.launcher:1.2.0 //DEPS org.osgi:org.osgi.annotation.versioning:1.1.1 //DEPS org.osgi:org.osgi.util.function:1.0.0 //DEPS org.osgi:osgi.core:7.0.0 //DEPS org.slf4j:slf4j-api:1.7.25 //DEPS org.slf4j:slf4j-simple:1.7.25 import java.util.List; import java.util.ArrayList; import org.apache.sling.feature.launcher.impl.Main; /** Thanks to the JBang catalog found at https://github.com/apache/sling-whiteboard/blob/master/jbang-catalog.json * this can be started using * * jbang start@apache/sling-whiteboard * * After installing JBang from https://www.jbang.dev/ * * To see additional launcher options, use * * jbang start@apache/sling-whiteboard -h * */ class SlingStarter { public static final String SCRIPT_VERSION = "0.2"; public static void main(String[] args) { /* For now only Starter 12 is distributed with this * format, so there's no point in using this method's * args to switch versions. Later, maybe. */ final int slingVersion = 12; final String farURL = String.format( "https://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.starter/%d/org.apache.sling.starter-%d-oak_tar_far.far", slingVersion, slingVersion ); System.err.println(String.format("%s V%s : starting Apache Sling %d using the Feature Launcher", SlingStarter.class.getSimpleName(), SCRIPT_VERSION, slingVersion )); System.err.println("The first run of this script is slower, as it downloads the Sling starter feature file and dependencies"); System.err.println("Starter feature file: " + farURL); final List<String> starterArgs = new ArrayList<>(); starterArgs.add("-f"); starterArgs.add(farURL); for(String arg : args) { starterArgs.add(arg); } final String [] strArgs = starterArgs.stream().toArray(String[]::new); Main.main(strArgs); } }