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