Сохраняйте информацию между задачами в скриптах сборки Ant - PullRequest
0 голосов
/ 23 июня 2009

Я пишу Java API для шлюза SMS, и у меня возникли некоторые проблемы с моим сценарием сборки ANT.

По сути, я хотел бы иметь возможность указывать только имя пользователя и пароль для службы в одном месте в файле сборки, но иметь возможность вызывать задачу, которая отправляет SMS-сообщение из любой точки файла сборки. Теперь у меня есть вот что:

<smsConfig password="${sms.password}" user="${sms.user}">
  <sms msg="England prevails" to="XXXXXXXX"/>
</smsConfig>

Метод execute в классе задач sms получает значения из класса smsConfig при выполнении задачи и успешной отправке SMS.

То, что я хотел бы иметь, это:

<smsConfig  password="${sms.password}" user="${sms.user}"/>

Позже, возможно, в другом задании:

<sms msg="England prevails" to="XXXXXXXX"/>

К сожалению, если я сделаю это, статические значения, хранящиеся в классе SmsConfig, больше не будут доступны (я получаю исключение нулевого указателя, даже если они имели значение при запуске метода execute в классе SmsConfig).

Так как (и где) я могу сохранить значение между задачей smsConfig и любыми задачами sms?

Добавлено, чтобы прояснить проблему на основе ответов на первые два вопроса:

Я бы хотел сохранить конфигурацию для общения со шлюзом отдельно от действия отправки SMS по двум причинам:

  1. Информация необходима для фактического отправления SMS, но это умственный беспорядок - пользователю все равно, как отправлено SMS, только то, что оно есть.
  2. Информация должна будет повторяться везде, где отправляется SMS, если я добавлю значение в свойство, которое позволит избежать повторения фактических значений, но свойство все равно придется повторять при каждом отправлении SMS.

Ответы [ 2 ]

0 голосов
/ 23 июня 2009

Если я не читаю вас неправильно, вам нужно свойство:

<property name="smsuser"
 value="${sms.user}"/>

Тогда вы можете ссылаться на имущество позже, а ля:

<sms msg="England prevails" to="${smsuser}"/>
0 голосов
/ 23 июня 2009

Мне кажется, что вы должны создать цель для отправки SMS, тогда вы можете использовать задачу AntCall , чтобы вызывать ее в любое время с соответствующими свойствами.

К сожалению, не совсем понятно, что здесь делают задачи smsConfig и sms. Я действительно ожидал бы, что задача sms будет содержать свою собственную конфигурацию (возможно, как вложенный элемент), а не быть вложенным элементом внутри smsConfig.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...