Salesforce and QuickBooks integration

data integration best practices
Interviews and Podcasts News/Press Releases Press Coverage
First Step of Apatar Refactoring Is Completed

August 15, 2008, Chicopee, MA – The Apatar Team announced today that the first step of Apatar refactoring is now completed. You may find a brief summary below.

Apatar refactoring: change log

1. Dependency between com.altoros.octoslave.thirdparty and com.altoros.octoslave.salesforcecom was eliminated.
2. Plug-ins were sorted by category: core, rich_ui_framework, connectors
3. funstion plug-in was renamed to functions
4. generaljdbs plug-in was renamed to ldap
5. All packages with names com.altoros.octoslave.PACKAGE_NAME were renamed to com.apatar.PACKAGE_NAME
6. Paths to plug-ins were simplified: com.apatar. was deleted from plug-in category folder names
7. mysql plug-in was divided into two: mysql and mssql
8. Unused msutil.jar library was deleted
9. postgresql plug-in was divided into two: postgresql and enterprisedb
10. xml plug-in was divided into two: xml and rss
11. OctoslaveMain class was renamed to ApatarUiMain
12. Node interface was analyzed and commented. Methods related to only the UI or only the code were defined.
13. Node interface was divided into two: Node and Node UI. Node UI now includes methods related only to UI. The node now includes methods related only to core.
14. AbstractReadWriteXMLDataActions class was added. This is the class that UI classes responsible for processing situations that require interactivity during loading or saving a project should be inherited from.
15. Exception class ApatarException was added.
16. ReadWriteXMLData class was refactored:
a) all writeXMLDate methods were renamed to writeXMLData
b) public static File writeXMLData(String fileSrc, Project project, boolean autoReplace) method now gives the following exception:
public static File writeXMLData(String fileSrc, Project project, boolean autoReplace) throws ApatarException
c) updatePane method was moved to com.apatar.ui.UiUtils
d) all readXMLDate methods were renamed to readXMLData
e) readXMLData method now returns file.getName() to caller. New method signature is:
public static String readXMLData(String fileSrc, Project project) throws SAXException, IOException This method now redirects IOException handling to caller code
This method now returns file.getName() string to set Application title
f) setDateAndTimeSettings method was renamed to loadDateAndTimeSettings
g) loadDateAndTimeSettings method is no longer static. It is called by a class instance.
h) public void writeXMLData(Project project, Writer writer) method is no longer static.
i) saveDocumentToFile methods are no longer static. Duplicate code was deleted from these classes.
j) public static Document loadDocument(String xmlSrc) method was deleted
k) public static boolean isValidDbXmlFile(String srcFile) method was deleted
l) Errors processing was deleted. Exceptions should be caught by a caller.
17. The ReadWriteXMLDataUi class was added. It calls ReadWriteXMLData class methods.
18. ProxySettings class was deleted
19. InsertComent class was deleted
20. ETLFileFilter class was renamed to ApatarFileFilter and moved to UI package
21. ApatarRegExp class now passes exceptions to caller level
22. ClipboardTool class was moved to UI package
23. Added inheritance from Ipersistent interface to Condition class
24. FunctionCategory list moved to UI package
25. GetInputs class moved to UI package
26. ProgressBarRelated class moved to UI
27. RegisterRannable interface renamed to RegisterRunnable
28. RegisterRunnable interface moved to UI package
29. com.apatar.ui.JProgressDialog class deleted
30. Added AbstractProcessingProgressActions class implementing methods during datamap processing
a) Added public abstract void beforeStart(AbstractNode debugNode) event to the above class
31. Added ProcessingProgressActions class implementing AbstractProcessingProgressActions class methods
32. Errors processing moved to caller
a) public AbstractProcessingProgressActions processingActions parameter (a link to the object implementing GUI actions before datamap processing) added to public void Run(Collection nodes, OperationalNode debugNode) method
33. AbstractETLFunction class renamed to AbstractApatarFunction
34. ETLFunction class renamed to ApatarFunction
35. IPersistent interface implementation added to IntValueAbstractETLFunction class
a) IntValueAbstractETLFunction class renamed to IntValueAbstractApatarFunction
36. IntValueAbstractETLFunctionBeanInfo class renamed to IntValueAbstractApatarFunctionBeanInfo
37. JprogressDialog class moved to UI package
38. JdbcParamsBeanInfo class moved to UI package
39. MainETLPlugin class renamed to MainApatarPlugin
40. ValueAbstractETLFunction class renamed to ValueAbstractApatarFunction
41. ValueAbstractETLFunctionBeanInfo class renamed to ValueAbstractApatarFunctionBeanInfo
42. Added AbstractMainApatarPluginActions abstract class declaring methods for event taking place at application start
a) AbstractMainApatarPluginActions class inherited from IApatarActions interface
b) AbstractMainApatarPluginActions renamed to AbstractApatarActions
43. IPersistent interface implementation added to AbstractNode class
44. AbstractProcessingProgressActions class inherited from IApatarActions interface
45. Added ApatarActions class implementing UI events at nodes configuration
46. public static List getAllFieldFromTable(JdbcParams params, String tableName, DataBaseInfo bi, boolean withMessage) throws SQLException, ClassNotFoundException method deleted
47. IPersistent interface implementation added to DateAndTimeSettings class
48. Added IapatarActions interface declaring events
49. Added MainApatarPluginActions class implementing events
50. Node interface inherited from IPersistent interface
a) public void edit(Window win); public boolean realEdit(Window win); public void afterEdit(boolean editRsult); methods signatures changed to public void edit(AbstractApatarActions actions); public boolean realEdit(AbstractApatarActions actions); public void afterEdit(boolean editRsult, AbstractApatarActions actions);
51. ImageIcon getConnPointIcon() method deleted
52. IPersistent interface implementation added to SchemaTable class
53. IPersistent interface implementation added to TableInfo class
54. AbstractApatarActions action parameter implementing interactive UI functions added to protected boolean registration method
55. fileFilter class replaced with ApatarFileFilter class
56. Constructor without parameters that sets the default extension to aptr added to ApatarFileFilter class
57. Added DatamapConverter class for conversion of datamaps created by earlier application versions
58. .apatar.ui.datamapconverter package implements datamap conversion wizard
59. Method checking datamap version added to readXMLData method in ReadWriteXMLDataUi class
60. The isDatamapOlderThan12 method checking datamap version was added to the ReadWriteXMLData class.
61. Method for reading files as strings was added to CoreUtils class
62. Method for writing a file from a string type variable was added to CoreUtils class
63. SalesForcePasswordString class was deleted

About Apatar

Apatar is the leading provider of open source software tools for the data integration market. With powerful Extract, Transform, and Load (ETL) capabilities, Apatar enables its users to easily link information between databases (such as MySQL, Microsoft SQL, Oracle), applications (, SugarCRM), and the top Web 2.0 destinations (Flickr, Amazon S3). Apatar provides support, training, and consulting services for its integration solutions. Headquartered in Western Massachusetts, Apatar operates a development center in Minsk, Belarus. Apatar is currently used by 4700+ organizations and individuals worldwide. For more on Apatar, please visit and