Если я правильно понимаю, вы не хотите, чтобы жёстко имя файла фляги в файлах заданий (workflow.xml или job.properties), и вы искать пути к определить имя фляги во время выполнения. Таким образом, банку можно изменить между двумя последовательными прогонами одного и того же задания без необходимости обновления каких-либо файлов заданий.
Если мое понимание верное, вы можете иметь java-действие, которое «вычисляет» имя фляги. Это вычисление может быть различным: наличие флага в предопределенной папке HDFS, новейшая банка в предопределенной папке HDFS, имя флага, записанного в предопределенном файле в HDFS и т. Д.
В этом случае:
1. В классе Java вы "сохранить" имя баночку:
Properties props = new Properties();
props.setProperty("jarFileName", jarName);
OutputStream os = new FileOutputStream(new File(System.getProperty("oozie.action.output.properties")));
props.store(os, "");
os.close();
2. В workflow.xml вы указываете, что класс Java производит свойств (< захват-выход/> тегов):
<action name="init-jar-name">
<java>
<!-- Configurations -->
<main-class>com.example.JarNameFinder</main-class>
<capture-output /> <!-- Important for retrieving the properties set in the java class -->
</java>
<ok to="nextNodeName" />
<error to="errorNodeName" />
</action>
3. В workflow.xml, в том месте, вам нужно имя JAR-файла, необходимо указать это следующим образом:
${wf:actionData('init-jar-name')['jarFileName']}
Что случилось с переходом собственности? Зачем вам нужен другой способ сделать это? – Dmitry