Разочарованный чертовски ужасным 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
и как я могу извлечь копию файла класса?