ATG Installation on OS X

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)?

2 thoughts on “ATG Installation on OS X

  1. one issue with copying the Solaris install –
    somewhere deep inside the Service module, there are some images – two to be specific. Solaris file systems is case sensitive, while default OS X is not. These images have the same name in the same directory except for capitalization.

    So I installed ATG on the Solaris image, copied the install to the shared folder so I could mount it in OS X & copy it over – copied the huge bugger over, and boom! fails.

    Fix one, and it will happen one more time. Fix that, and you’re golden. Doesn’t matter which of the images you delete, just delete one. Wish I had kept track of the actual files for this post

  2. I was able to install and patch ATG 2007.1 with the following as my config.xml (the short story is that I installed ATG2007.1 in Parallels on an XP virtual machine and copied the config.xml and edited it for the Mac)

    <?xml version="1.0" encoding="UTF-8"?>
    <config xmlns="*">
       <install xmlns="">
           <product name="ATG Adaptive Scenario Engine" version="2007.1">
               <configure>false</configure>
           </product>
           <product name="ATG Consumer Commerce" version="2007.1">
               <configure>false</configure>
           </product>
           <product name="ATG Content Administration" version="2007.1">
               <configure>false</configure>
           </product>
           <product name="ATG Portal" version="2007.1">
               <configure>false</configure>
           </product>
           <product name="ATG Business Commerce" version="2007.1">
               <configure>false</configure>
           </product>
       </install>
       <systemEnv xmlns="">
           <rootDir>/opt/atg/ATG2007.1</rootDir>
           <locale>en</locale>
           <jBossListenPort>8080</jBossListenPort>
           <docRoot>/opt/atg/ATG2007.1/home/doc</docRoot>
           <platform>Darwin</platform>
           <rmiPort>8860</rmiPort>
           <appServer>JBoss</appServer>
           <jBossHome>/opt/jboss/current</jBossHome>
           <jBossVersion>4.0.5</jBossVersion>
           <baseLevel>ATG2007.1_228</baseLevel>
    <ATGJRE>/System/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java</ATGJRE>
       </systemEnv>
    </config>
    

    To get ATG to recognize the Darwin platform, you will need to edit your $DYNAMO_HOME/bin/dynamoEnv.sh as outlines in ATG Solution atg33147 (http://www.atg.com/service/main.jsp;jsessionid=UGL1VTVN5H3DUCQCQCZCGWQKAKAGOJVC?_dyncharset=ISO-8859-1&t=solutionTab&solutionId=atg33147) and create the $DYNAMO_HOME/home/localconfig/dasEnv.sh as outlined in step 4 in the following URL: http://blog.pulleman.com/2007/03/25/atg-jboss-and-mysql-on-mac-os-x/

    Good luck….

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>