While ATG runs fine on OS X, and while many people inside and outside of ATG use OS X as their primary operating system, the ATG installer STILL doesn’t work under OS X. It “mostly” works. It seems to work, it installs things, however if you try to do stuff, like patch, or like adding other ATG modules, things don’t work. The culprit is the installconfig/config.xml. If you install on Solaris for instance, you get one that looks something like this:
<?xml version=”1.0″ encoding=”UTF-8″?>
<config xmlns=”*”>
<install xmlns=””>
<product name=”ATG Adaptive Scenario Engine” version=”2006.3″>
<configure>false</configure>
</product>
<product name=”ATG Consumer Commerce” version=”2006.3″>
<configure>false</configure>
</product>
<product name=”ATG Content Administration” version=”2006.3″>
<configure>false</configure>
</product>
<product name=”ATG Portal” version=”2006.3″>
<configure>false</configure>
</product>
<product name=”ATG Business Commerce” version=”2006.3″>
<configure>false</configure>
</product>
</install>
<systemEnv xmlns=””>
<locale>en</locale>
<rootDir>/opt/atg/versions/ATG2006.3</rootDir>
<jBossListenPort>8080</jBossListenPort>
<docRoot>/opt/atg/versions/ATG2006.3/home/doc</docRoot>
<platform>Darwin</platform>
<rmiPort>8860</rmiPort>
<appServer>JBoss</appServer>
<jBossHome>/opt/jboss/root/</jBossHome>
<jBossVersion>4.0.3</jBossVersion>
<baseLevel>ATG2006.3_8095</baseLevel>
<ATGJRE>/Library/Java/Home/bin/java</ATGJRE>
<patchLevel>2006.3p4</patchLevel>
</systemEnv>
</config>
when you install under OS X you end up with an atrophied little file like this:
<?xml version=”1.0″?>
<config>
<systemEnv>
<baseLevel>ATG7.2_7673</baseLevel>
</systemEnv>
</config>
When installers and patches go looking to see what is installed, they can’t find anything and die. If you dig around you can find the following errors from the install logged away somewhere obscure:
java.lang.NullPointerException
at com.zerog.ia.installer.actions.MakeExecutable.a(DashoA8113)
at com.zerog.ia.installer.actions.MakeExecutable.a(DashoA8113)
at com.zerog.ia.installer.actions.MakeExecutable.r(DashoA8113)
at com.zerog.ia.installer.actions.MakeExecutable.installSelf(DashoA8113)
at com.zerog.ia.installer.actions.InstallUninstaller.c(DashoA8113)
at com.zerog.ia.installer.actions.InstallUninstaller.installSelf(DashoA8113)
at com.zerog.ia.installer.Action.install(DashoA8113)
at com.zerog.ia.installer.actions.InstallDirectory.install(DashoA8113)
at com.zerog.ia.installer.actions.InstallDirectory.install(DashoA8113)
at com.zerog.ia.installer.Action.install(DashoA8113)
at com.zerog.ia.installer.GhostDirectory.install(DashoA8113)
at com.zerog.ia.installer.Installer.install(DashoA8113)
at com.zerog.ia.installer.LifeCycleManager.a(DashoA8113)
at com.zerog.ia.installer.LifeCycleManager.a(DashoA8113)
at com.zerog.ia.installer.Main.main(DashoA8113)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.zerog.lax.LAX.launch(DashoA8113)
at com.zerog.lax.LAX.main(DashoA8113)
XMLScriptWriter: No Installation Objects were skipped
Retrying Installables deferred in pass 0
Deferral retries done because:
There were no deferrals in the last pass.
RepositoryManager: repository successfully written to stable storage
RepositoryManager: repository successfully written to stable storage
Execute Custom Code
class atg.road.install.iacustom.action.WriteConfigXML FatalInstallException.
Now the first error turns out to be the ZeroG installer failing to create an uninstaller. Exactly why it failed, I couldn’t figure out, as they’ve obscured the heck out of their code. The MakeExecutable class has about 8 methods named “a”, many of them call other “a” methods, none of the variables are clearly named, etc…. But it’s just an installer, so I’ll let it slide.
The second error looks like the real culprit here. The problem is that the error itself isn’t very helpful. The code isn’t very helpful either, and it looks like it should be logging more helpful info, but I can’t find it anywhere. I poked around for a few hours, but didn’t make any headway.
Short answer is you have to install on a support platform, Solaris (you can even grab a Solaris image for Parallels off the net), Linux, Windows, etc… and copy over the install,or at least the config.xml file from that install.
It’s a real shame since really the whole thing just unpacks and could be well served by being distributed like JBoss in a simple zip file. Maybe make a post-install setup tool to help configure somethings (like perhaps the database connections? Run the install scripts automatically after being giving the jdbc info…. just an idea guys)?
Leave a Reply