Каков наилучший способ импортировать константы в Groovy скрипт? - PullRequest
2 голосов
/ 06 октября 2010

Я настраивал среду сценариев с помощью Groovy. У меня есть Groovy скрипт под названием FrameworkiDatabase.groovy, который содержит класс с тем же именем. Это отлично работает. У меня также есть другой файл, который называется connections.groovy, который содержит карты, подобные следующим:

SUPPORT2=[
 host:"host.name", 
 port:"1521", 
 db:"support2",  
 username:"username", 
 password:"password", 
 dbType:"oracle"
]

Содержит коллекцию закладок базы данных, немного похожую на файл oracle tnsnames, поэтому мне не нужно запоминать все параметры при подключении к базам данных.

При использовании groovysh я могу импортировать это с помощью команды загрузки, и она доступна в текущей области видимости. Как я могу загрузить его как часть скрипта таким же образом? Вокруг него нет определения класса - нужен ли он? Я пытался сделать это и добавить статический импорт, но это не сработало ...

Я пробовал что-то подобное, но не повезло:

testFrameworkiDatabase.groovy:

import static connections
def db = new FrameworkiDatabase(SUPPORT2)

db.listInvalidObjects()
db.getDBSchemaVersion()
db.getFWiVersion() 
db.getSPVersion()
db.getFileloaderVersion()
db.getAdminToolVersion()
db.getReportsVersion()

Итак, я хочу загрузить эти соединения как константы - есть ли способ сделать это легко?

1 Ответ

0 голосов
/ 06 октября 2010

Не уверен, что это лучший способ, но одним из способов было бы записать это в Connections.groovy

class Connections {
  static SUPPORT2 = [
    host:"host.name", 
    port:"1521", 
    db:"support2",  
    username:"username", 
    password:"password", 
    dbType:"oracle"
  ]
}

Затем скомпилируйте это с groovyc Connections.groovy, чтобы сгенерировать классfile

Затем в вашем тестовом скрипте или в приглашении groovysh вы можете сделать:

import static Connections.*

println SUPPORT2

Чтобы получить вывод:

[host:host.name, port:1521, db:support2, username:username, password:password, dbType:oracle]

Если компилируетсякласс Connections.groovy недостаточно хорош, я думаю, что вы собираетесь посмотреть на загрузку источника в объект Binding с помощью одного из Groovy-методов встраивания

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