blob: 342785ab0e372b110d7398bf2278632f065c0932 [file] [log] [blame]
/*
* 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.
*/
package org.acme.timer;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import javax.inject.Named;
import io.quarkus.runtime.Quarkus;
import io.quarkus.runtime.annotations.QuarkusMain;
import org.apache.camel.quarkus.main.CamelMainApplication;
import org.jboss.logging.Logger;
@QuarkusMain
public class Main {
private static final Logger LOG = Logger.getLogger(Main.class);
private static String greeting;
public static void main(String... args) {
/* Any custom logic can be implemented here
* Here, we pass the value of the first argument to Quarkus CDI container so that it can be injected using
* @Inject @Named("greeting")
* And we pass the second argument as -durationMaxMessages which is the number of messages that the application
* will process before terminating */
List<String> filteredArgs = new ArrayList<>(args.length);
if (args.length < 2) {
LOG.warnf(
"Expected at least 2 CLI arguments but got %d. Will proceed with default greeting. Refer to the README instructions.",
args.length);
greeting = "Hello";
filteredArgs.add("-durationMaxMessages");
filteredArgs.add("2");
} else {
int i = 0;
greeting = args[i++];
final String repeatTimes = args[i++];
filteredArgs.add("-durationMaxMessages");
filteredArgs.add(repeatTimes);
for (; i < args.length; i++) {
filteredArgs.add(args[i++]);
}
}
Quarkus.run(CamelMainApplication.class, filteredArgs.toArray(new String[filteredArgs.size()]));
}
@ApplicationScoped
public static class GreetingProducer {
@Produces
@Named("greeting")
public String greeting() {
return greeting;
}
}
}