Nio_the_Champ_2
Pilgrim

Project Automation Blues

In my project, if I modify the Pre Installation Summary Panel to show some custom variable values, my automation class gives the following error.

IAResourceBundle: create resource bundle: en
Exception in thread "main" com.zerog.ia.auto.project.ProjectAutomationException: The class 'com.zerog.ia.installer.util.VariablePropertyDataBiDi' is not supported by the project automation API.
at com.zerog.ia.auto.project.file.ProjAutoObjectBuilder.create(ProjAutoObjectBuilder.java:135)
at com.zerog.ia.project.file.base.properties.IAPVectorBuilder.create(DashoA10*..)
at com.zerog.ia.auto.project.file.ProjAutoObjectBuilder.create(ProjAutoObjectBuilder.java:155)
at com.zerog.ia.project.file.base.properties.IAPVectorBuilder.create(DashoA10*..)
at com.zerog.ia.auto.project.file.ProjAutoObjectBuilder.create(ProjAutoObjectBuilder.java:155)
at com.zerog.ia.auto.project.file.ProjAutoIAPReaderImpl.loadInstaller(ProjAutoIAPReaderImpl.java:39)
at com.zerog.ia.auto.project.ProjectAutomation.loadProject(ProjectAutomation.java:110)
at com.zerog.ia.auto.project.ProjectAutomation.loadProject(ProjectAutomation.java:89)
at com.emc.ia.smc.automation.ProjectApiTest.main(ProjectApiTest.java:11)
Caused by: java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.zerog.ia.auto.project.file.ProjAutoObjectBuilder.create(ProjAutoObjectBuilder.java:130)
... 8 more

My Automation code is as simple as:

public class ProjectApiTest {
public static void main(String[] args) {

Project iap = ProjectAutomation.loadProject("C:\\smc_ia.iap_xml");
ProjectDescription desc = iap.getProjectDescription();
Version ver = desc.getProductVersion();
ver.setMajor(1);
ver.setMinor(2);
ver.setRevision(3);
ver.setSubRevision(4);
ProjectAutomation.saveProject(iap); // save and close the project
}
}

If i remove these variables from Summary Information Panel, and then try.
It looks as if its okay, however it removed lots and lots of actions and files from the project.

Output is shown something like this:
The property 'license' of 'com.zerog.ia.installer.util.InstallerInfoData' is not supported!
Error setting visual children for 'com.zerog.ia.installer.actions.InstallDirectory'
Error setting visual children for 'com.zerog.ia.installer.actions.InstallDirectory'
Error setting install children for 'com.zerog.ia.installer.InstallComponent'
Error setting install children for 'com.zerog.ia.installer.InstallComponent'
BuildInstaller: Asked to load C:\SymmWorkspace\sem\isx_sem_java_install\smc_ia\smc_ia.iap_xml


No VM Pack files exist in this directory
Merged locals dir path: wow
ExternalPropertySaver.updatePropertiesForRedirection()...
ExternalPropertySaver.updatePropertiesForRedirection: (0c0159ff8fab, null)
ExternalPropertySaver.updatePropertiesForRedirection: (6e0edfeeb11f, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (6ef593ea8d50, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c0159c08f7a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (ab9438528376, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (6e1acd568192, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (b4e1ab919c61, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c013dad8f6a, null)
ExternalPropertySaver.updatePropertiesForRedirection: (ab861f9e818c, null)
ExternalPropertySaver.updatePropertiesForRedirection: (b489cc63be21, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c0159e08fa5, null)
ExternalPropertySaver.updatePropertiesForRedirection: (6efb9d778fcf, null)
ExternalPropertySaver.updatePropertiesForRedirection: (ba593be5a46e, null)
ExternalPropertySaver.updatePropertiesForRedirection: (6e0b653eaed4, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c0159e08fa5, null)
ExternalPropertySaver.updatePropertiesForRedirection: (92af1a79b828, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c0159e08fa1, null)
ExternalPropertySaver.updatePropertiesForRedirection: (b47c55dbbbc7, null)
ExternalPropertySaver.updatePropertiesForRedirection: (0c0159d08f98, null)
ExternalPropertySaver.updatePropertiesForRedirection: (90bab761b4e6, null)
ExternalPropertySaver.updatePropertiesForRedirection: (b56df36eb6ec, null)

InstallAnywhere temporary directory is located at:: C:\.buildinstaller1.tmp
Creating build directories...
Checking free disk space...
Saving project...
Updating project pieces...
Generating script...
sysDriveRoot is: C:
System's temporary directory = C:\Temp
XMLScriptWriter: No Installation Objects were skipped
Processing external properties...
Saving external properties...
Cleaning up...
Labels (1)
0 Kudos
8 Replies
Nio_the_Champ_2
Pilgrim

I have started hating Acresso products for their absurd support policies. Even to get the bugs fixed, you first have to pay money. Even after paying huge money for support contracts you may get some solution which may not be viable at all and that too after escalation. Support staff is really immature and inapt. They are good at only one thing :Cut And Paste. Will provide you kb links as if you would be dumb enough not to google for solution before raising the issue with them. That makes me going nuts. I am sure for next release onwards I am moving to WIX and OpenInstaller.

Atleast if i am in a condition i can atleast help myself
0 Kudos
pv7721
Flexera beginner

Nio the Champ_2 wrote:
I have started hating Acresso products for their absurd support policies. Even to get the bugs fixed, you first have to pay money. Even after paying huge money for support contracts you may get some solution which may not be viable at all and that too after escalation. Support staff is really immature and inapt. They are good at only one thing :Cut And Paste. Will provide you kb links as if you would be dumb enough not to google for solution before raising the issue with them. That makes me going nuts. I am sure for next release onwards I am moving to WIX and OpenInstaller.

Atleast if i am in a condition i can atleast help myself


No comment on that... but on your initial post it seems to be the same issue as the one described here: http://community.acresso.com/showthread.php?t=190304
0 Kudos
Nio_the_Champ_2
Pilgrim

The problem looks same. Its very easily reproducible with a new project.
In Summary Information panel, edit the fields and put some custom properties in there. That's when "com.zerog.ia.installer.util.VariablePropertyDataNonBiDi" class based action is created in project xml, then u cannot do anything using automation apis.
0 Kudos
Nio_the_Champ_2
Pilgrim

My project is basically converted from ISMP SP1 using the conversion adapter provided by InstallAnywhere. This should be a supported configuration.

After conversion had to do lot of restructuring as only about only 5% of project data migrated usefully. So it was not worth spending so much of effort doing the migration(if you do not have ISMP11.5 SP1, you have to dig it out from Acresso Support as its no where available elsewhere that too only eval which expires in 21 days). And the sufferings still continued as I then figure out that the Automation API screws up my project data.

I have finally resorted to using xsl to modify the project xml during the build time. During the process I tried various other options like DOM parsing and using XMLBeans. The problem with them was that they do not adequately support the CDATA sections and upon saving project file, CDATA sections are not restored. XSL works fine till you do not have complex changes to be done..
0 Kudos
weelyn
Pilgrim

We didn't use any Automation thing, we directly worked on dynamically modifying the .iap_xml files (we use Perl with the Twig module rather than XSL stuff), to be able to build them for different operating systems, with or without some features (because some feature exist on some OS but not all), etc.

It's a lot of work, but it's really worth it. Out of the box, InstallAnyhwere can only be used for simple projects. With these customizations tricks, I must confess it becomes powerful and versatile (I was forced to use IA, so I didn't particularly liked it at first).

IA has quite a lot of bugs, and lots of limitations (I just found out it doesn't handle symbolic links, apparently), and the output of its build process is insanely verbose and cryptic, though.
0 Kudos
pv7721
Flexera beginner

weelyn wrote:
We didn't use any Automation thing, we directly worked on dynamically modifying the .iap_xml files (we use Perl with the Twig module rather than XSL stuff), to be able to build them for different operating systems, with or without some features (because some feature exist on some OS but not all), etc.

It's a lot of work, but it's really worth it. Out of the box, InstallAnyhwere can only be used for simple projects. With these customizations tricks, I must confess it becomes powerful and versatile (I was forced to use IA, so I didn't particularly liked it at first).

IA has quite a lot of bugs, and lots of limitations (I just found out it doesn't handle symbolic links, apparently), and the output of its build process is insanely verbose and cryptic, though.


I know that I might be steering the discussion away from the initial post, but a couple of remarks in your previous post triggered my reaction:

1) You said that out of the box IA can be only used for simple projects. Well, I don't quite agree with that, as I've been using for quite a few years, and some installers are quite complicated. It is true though that there are things that I would like IA to handle natively, and as it doesn't, one has to use Custom Code or platform resources (.bat / .sh files etc.)

2) When you say IA doesn't handle symbolic links, what exactly do you mean by that?!?
sara_f
Pilgrim

Regarding the The error'com.zerog.ia.installer.util.VariablePropertyDataBiDi' is not supported by the project automation API error message: We had the same issue with a plugin action; it seems like a bug that happens if you set a property through the IDE (the GUI) and try to load the project through the automation API.

A couple workarounds that worked for us and might work for you as well:

1. Either create the Install Summary Panel through the automation API (and set the value there)

2. Or, let the panel be in the GUI the way it is right now, and in the automation API, find that panel in your preinstall actions (you can loop through the actions and your action will be an instance of install summary panel) and set your desired property through the automation API
0 Kudos
Nio_the_Champ_2
Pilgrim

The issue continues even with the IA 2k9 SP2..
0 Kudos