Ok, so I figured it out.  Well, almost.

1) Run org.hackystat.kernel.installer.controller.Control as a Java Application
2) Add "-DinstallerResources=C:\java\cvs\hackyBuild\build\war\WEB-INF\installer" or something similar to the VM arguments. This can be set by clicking on Run... , then go to the arguments tab. 3) The tricky thing is that you have to delete all the sensor installer.<sensor>.xml files from the "C:\java\cvs\hackyBuild\build\war\WEB-INF\installer" directory, because HackyInstaller will try to load the sensor installer implementations. For example, you will get:

HackyInstaller Version:
Wed Oct 12 22:18:49 HST 2005: GUI initialized.
org.hackystat.stdext.sensor.ant.locc.installer.LoccSensorInstallerjava.lang.ClassNotFoundException: org.hackystat.stdext.sensor.ant.locc.installer.LoccSensorInstaller
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
at org.hackystat.kernel.installer.model.sensor.SensorDescriber.getInstallerInstance(SensorDescriber.java:156) at org.hackystat.kernel.installer.model.path.ConfigPersistor.persistSensorVersions(ConfigPersistor.java:285) at org.hackystat.kernel.installer.util.Environment.systemCheck(Environment.java:234) at org.hackystat.kernel.installer.controller.Control$1.construct(Control.java:161) at EDU.oswego.cs.dl.util.concurrent.misc.SwingWorker$2.call(Unknown Source)
        at EDU.oswego.cs.dl.util.concurrent.FutureResult$1.run(Unknown Source)
at EDU.oswego.cs.dl.util.concurrent.misc.SwingWorker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:595)

So, delete these installer.<sensor>.xml files. But, you have to leave proxy.xml, installer.common.xml, hackyinstaller.xsd, and usermaps.xsd.

4) Run the Control class. You will see an "empty" hackyInstaller application, which will let you test out all the buttons that don't do things with sensors.

I'll leave it to you guys to figure out how to run hackyInstaller with a sensor. Note, that I was thinking that we could make hackyInstaller depend on hackyAnt, but that is not possible because hackyAnt depends on hackyInstaller. But, you see that hackyInstaller functionally depends (through reflection) on hackyAnt. Circle dependency!

I hope that solves some of the build time problems for you InstallHack guys.

thanks, aaron


At 09:24 PM 10/12/2005, you wrote:
I've been looking at running hackyInstaller through eclipse, i.e. running Control.main() as a Java Application. There are some problems with getting the right System.properties. For example, I'm not quite sure how installerResources gets set or how it is used. It is probably really worth sitting down for a couple of hours (if it even takes that long) to figure out how to do it. Then you can run hackyInstaller for these GUI UI debugging without even the Ant based build.

Austin, Hongbing is probably the best person to help you figure this out.

thanks, aaron

At 09:17 PM 10/12/2005, Philip Johnson wrote:
--On Wednesday, October 12, 2005 6:32 PM -1000 Aaron Kagawa <[EMAIL PROTECTED]> wrote:

And maybe the GUI creation process won't be as painful when the new
build  system is in.

Whoa, using even quickStart to do your kind of GUI UI debugging is way too much overhead!

For this kind of iterative development, you should create an ant target (in hackyInstaller/local.build.xml) that just recompiles the sources and then invokes <java> with the appropriate classpath and main class to start with. Two or three seconds max should be all you should need wait for the window.

As Aaron says, of course run the test suite before committing your changes, but if you're just doing button placement there's no sense in redeploying the server or anything.

Cheers,
Philip

Reply via email to