Я пишу 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 по двум причинам:
- Информация необходима для фактического отправления SMS, но это умственный беспорядок - пользователю все равно, как отправлено SMS, только то, что оно есть.
- Информация должна будет повторяться везде, где отправляется SMS, если я добавлю значение в свойство, которое позволит избежать повторения фактических значений, но свойство все равно придется повторять при каждом отправлении SMS.