Following is the List of Changes to OpenXRI code (Between Nov 2005 and Jan 2006) : ========================================================= CHANGES TO EXISTING CODE ========================================================= Change 1 : --------- There was old version of Commons Logging and Log4J Jars in OpenXRI distribution. REMOVED THOSE AND REPLACED THEM WITH THE ONES FROM HIBERNATE The Updated Files are 1. %OPENXRI_HOME%\org.openxri.client\3rdParty\commons-logging-1.03.jar 2. %OPENXRI_HOME%\org.openxri.client\3rdParty\log4j-1.2.8.jar *********************************************** Change 2 : --------- Possible bug in following function Class : BaseStore.java protected StringBuffer fillURI( StringBuffer oBuffer, String sID, String sScheme) { StringBuffer oURI = new StringBuffer(); oURI.append(sScheme).append("://").append(getHostname()).append(':') .append(getHostport()).append(getBaseURI()); oURI.append(moMapper.completeURI(oURI, sID)); System.out.println(oURI.toString()); return oBuffer.append(oURI); } // fillURI() End Result : It's always returning 2 URL's instead of 1 URL Had to change to following format, return oBuffer.append(sScheme).append("://").append(getHostname()) .append(':').append(getHostport()).append(getBaseURI()) .append("?id=").append(sID); *********************************************** Change 3 : --------- Possible bug in following function XRIServlet.java It was failing in a Situation when the given XRI could not be resolved For example if the correct XRI which exists is : "xri://@visa1*boa5" and instead if i ask it to resolve "xri://@visa*boa5" then it was throwing NULL Pointer Exception Changes on Line : 491 Had to add a null check for (sCurrentID !=null) Previous : ---------- (i < oSegment.getNumSubSegments()) && (sCurrentID.length() > 0); New Code : ---------- (i < oSegment.getNumSubSegments()) && (sCurrentID != null) && (sCurrentID.length() > 0); *********************************************** Change 4 : --------- In Authority.java (OpenXRI Client) Added new method, getOtherChildrenVectorsMap() which returns the Hashset "moOtherChildrenVectorsMap" *********************************************** Change 5 : --------- In Service.java (OpenXRI Client) Added new method, getOtherChildrenVectorsMap() which returns the Hashset "moOtherChildrenVectorsMap" ========================================================= INTEGRATION CHANGES START FROM HERE No Changes to existing OpenXRI Code from here. It's all new functionality on top of existing OpenXRI code ========================================================= 1. Created new folder here, %OPENXRI_HOME%\org.openxri.server\src\org\openxri\store\data And added several value objects here which map to fields in database *********************************************** 2. Created new folder here %OPENXRI_HOME%\org.openxri.server\3rdParty\hibernate_jars And added Jars required by Hibernate *********************************************** 3. Created new folder here %OPENXRI_HOME%\org.openxri.server\3rdParty\castor_jars And added Jars required by Castor *********************************************** 4. In %OPENXRI_HOME%\org.openxri.server\web.xml added following lines at the end of the file DB Connection jdbc/XRIDB javax.sql.DataSource Container Also added lines for SOAP and AdminServlet *********************************************** 5. Create new folder here %OPENXRI_HOME%\org.openxri.server\schemas\database And added following files required for Database Setup in this folder *********************************************** 6. Created new folder here %OPENXRI_HOME%\org.openxri.server\schemas\conf And added following files in this folder XRIServer.xml -- This should match the War File Name. It goes into following folder at install time %TOMCAT_HOME%\conf\Catalina\localhost hibernate.cfg.xml -- This is the Hibernate Configuration File. At runtime it goes into Classes folder under web Application in Tomcat xri_classdef.hbm.xml -- This is the Hibernate Classes Configuration File. At runtime it goes into Classes folder under web Application in Tomcat log4j.properties -- Properties file for Log4J. At runtime it goes into Classes folder under web Application in Tomcat castor_xrid_mapping.xml -- This is the Mapping File for Castor to generate XRID XML from Java Objects. At runtime it goes into Classes folder under web Application in Tomcat *********************************************** 7. Changes In %OPENXRI_HOME%\org.openxri.server\build.xml Changes to following Targets 1. war (Create a complete WAR file) 2. testdbstore (new Target to Test DBStore) 3. project_jar (Copy Castor Mapping file to Classes Util Folder) *********************************************** 8. New File in "%OPENXRI_HOME%\org.openxri.client\src\org\openxri\util" folder File Name : XRIClientFactory.java This one returns a new Resolver based on Input Parameters *********************************************** 9. New File in "C:\project\org.openxri.server\src\org\openxri\store" folder File Name : DBStore.java This is the DBStore Implementation Main Class *********************************************** 10. New Folder "%OPENXRI_HOME%\org.openxri.server\src\org\openxri\store\data" folder This is a new Folder and has Data Classes required by DBStore ALL THE FILES IN THIS FOLDER ARE NEW *********************************************** 11. New Folder "%OPENXRI_HOME%\org.openxri.server\src\org\openxri\store\utils" folder This is a new Folder and has Util Classes required by DBStore ALL THE FILES IN THIS FOLDER ARE NEW *********************************************** 12. New File in "%OPENXRI_HOME%\org.openxri.server\src\org\openxri\servlet" folder File Name : XRIAdminServlet.java This is the Admin Class used to support XRI Database operations *********************************************** 13. New Folder "%OPENXRI_HOME%\org.openxri.server\src\org\openxri\soap" folder and classes inside them *********************************************** 14. New Junit Test File in "%OPENXRI_HOME%\org.openxri.server\test\org\openxri\store" folder File Name : TestDBStore.java Tests The DBStore Resolution *********************************************** Other Notes : %OPENXRI_HOME%\org.openxri.server\server.properties Also Give references to DBStore and give example on how to use it (Class Name). ========================================================= FOLLOWING CHANGES ARE NICE TO HAVE FEATURES They Give Demo for setting up custom SSL Authentication ========================================================= These are Nice to have (In OPENXRI) Features New File in Folder %OPENXRI_HOME%\org.openxri.client\3rdParty File Name : XRISecurityHelper.jar Related Changes In %OPENXRI_HOME%\org.openxri.server\src\org\openxri\servlet\Servlet.java -- added Verify function In %OPENXRI_HOME%\org.openxri.client\src\org\openxri\util\IO.java == added HostVerifier Code ***********************************************