Ich habe erreicht, CronExpression von einer Propery-Datei konfigurieren, aber diese Eigenschaft Datei ist apache-deltaspike.properties, die innerhalb der JAR-Datei ist. Ich brauche den Cron-Ausdruck aus meiner benutzerdefinierten Config-Datei zu übernehmen:Deltaspike + Quartz + CronExpressions von benutzerdefinierten Eigenschaftendatei
import org.apache.deltaspike.core.api.config.PropertyFileConfig;
public class myOwnPropertyFileConfig implements PropertyFileConfig {
private static final long serialVersionUID = 1L;
@Override
public String getPropertyFileName() {
return "cfg/myOwnPropFile.properties";
}
@Override
public boolean isOptional() {
return false;
}
}
myOwnPropFile.properties
deltaspike_ordinal=500
property1=value1
property2=value2
QuartzJob=0 25 17 * * ?
den Job:
@Scheduled(cronExpression = "{QuartzJob}")
public class MyQuartzJob implements Job {
//job code
}
Alles geht gut, wenn ich diese Eigenschaft: QuartzJob = 0 25 17 * *? innerhalb apache-deltaspike.properties, aber wenn ich es in meiner eigenen Eigenschaftendatei festgelegt, die ich erhalte:
java.lang.IllegalStateException: No config-value found for config-key: QuartzJob
Forschung, fand ich, dass mein Eigentum Datei direkt nach dem Quarz-Initialisierung geladen wird, und das erklärt, warum die. Jetzt lese ich in Deltaspike doc, dass es möglich ist, meine Eigenschaftendatei zu laden, wann immer ich will, indem ich deltaspike_ordinal in meiner Eigenschaftendatei verwende. Also habe ich es versucht, aber es scheint die deltaspike_ordinal = 500 zu ignorieren, und der Fehler tritt immer wieder auf.
Also, weiß jemand, wie man das aussortiert? Deltaspike doc spricht auch über eine ConfigSource und so, aber es ist nicht so klar und es gibt keine Beispiele.
Vielen Dank im Voraus!