Где в мире находится com.ibm.ws.scripting.adminCommand.AdminTask? - PullRequest
4 голосов
/ 06 марта 2012

Разочарованный чертовски ужасным API, предоставляемым WebSphere Admin Server, я пишу свою собственную оболочку Java DSL.Мои файлы jython теперь просто читаются:

from my.package import MyDSL
config = MyDSL(AdminConfig, AdminTask)
config.goGoGadgetSkates() # or something like that

Важной частью является то, что я отправляю через (#% $$! @ #) Объекты бога AdminConfig и AdminTask, чтобы DSL мог использовать ихдля выполнения операций в WAS.

Чтобы скомпилировать DSL, мне нужно включить файлы классов для этих двух объектов.Я нахожу их, сначала установив конструктор следующим образом:

public MyDSL(Object a, Object b) {
    System.out.println(a.getClass());
    System.out.println(b.getClass());
}

Вывод показал, что объект AdminConfig является экземпляром com.ibm.ws.scripting.AdminConfigClient.Я легко нашел банку с этим классом, и все хорошо.

Но AdminTask - это экземпляр com.ibm.ws.scripting.adminCommand.AdminTask.Несмотря на то, что он присутствует во время выполнения, этот класс не существует нигде в моем пути к классам или вообще где-либо на жестком диске моего компьютера.

Я могу только предположить, что com.ibm.ws.scripting.adminCommand.AdminTask волшебным образом создается WSAdmin в слое jython.Возможно, он определен как класс Python?

Прежде чем я прибегну к рефлексии , кто-нибудь может объяснить, где может жить com.ibm.ws.scripting.adminCommand.AdminTask и как мне извлечь копию файла класса?

1 Ответ

1 голос
/ 18 апреля 2012

Класс AdminConfigClient не является API / SPI, поэтому вы создаете хрупкую инфраструктуру, полагаясь на этот класс. Точка входа API / SPI ConfigServiceFactory .

Объект AdminTask поддерживается данными в CommandMgr . Должна быть возможность использовать CommandMgr для выполнения любых действий с AdminTask.

...