WELCOME TO jUDDI! You'll find documentation in the docs/ directory. Please read the RELEASE NOTES below in for details on the current release. Thanks from the jUDDI development team for downloading the package; help us make it better by sending comments to juddi-dev@ws.apache.org. Subscribe to this list by sending a message to the following email address: juddi-dev-subscribe@ws.apache.org jUDDI RELEASE NOTES Changes From 0.9.0rc1 to 0.9.0rc4 X. It's been such a long time since 0.9rc1 was cut that there are simply way too many changes and improvements to list here. We believe that virtually all of UDDI v2 is supported at this point. Moving foreward, more the jUDDI project will be releasing much more often and will include careful tracking and reporting of changes and features will begin with the 0.9rc4 release. If you would like to see a complete list of fixes and feature requests that have been addressed since jUDDI moved to the Apache Web Services Project visit the issue tracker which can be found at the following URL: http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10401 Changes From 0.8.0 to 0.9.0rc1 1. Added CategoryBag support to BindingTemplate per UDDI v3 specification. 2. Addressed bug# 784297 by replacing use of JDBC Statement with PreparedStatement so that all SQL values are escaped by the JDBC driver. 3. Table creation scripts (DDL) have been added for PostgreSQL DBMS. Contributed by Glenn Bullock. (http://www.postgresql.org) 4. Table creation scripts (DDL) have been added for the TotalXML XML Database. Contributed by B. Subrahmanya Nayak (http://www.totalxml.net/) 5. Fixed bug# 796725, discarded authTokens can be used to update the registry. A new query is added to AuthTokenTable.java; JDBCDataStore.java calls this query to validate the authToken's state. 6. Replaced jUDDI's internal ConnectionPooling with Jakarta Commons DBCP package. This type of connection pooling is useful when using the jUDDI WebApp (or simply the RegistryEngine) in an environment where JNDI is not available. 7. Moved Anou's encryption code into a new org.apache.juddi.cryptor package (from the org.apache.juddi.auth.crypt package) so that the functionality could be used elsewhere. 8. Eliminated the need to subclass AuthenticatorFactory and moved all Authenticator implementations up into the org.apache.juddi.auth package. 9. Renamed SimpleAuthenticator to DefaultAuthenticator to coincide with the "DefaultXxxx" naming convention used in other packages. 10. Renamed the default UUIDGen implementation from org.apache.juddi.uuidgen.QuickUUIDGen to DefaultUUIDGen (it remains in the same package). 11. Renamed the org.apache.juddi.client package to org.apache.juddi.proxy. 12. Eliminated the unimplemented org.apache.juddi.monitor.http package. 13. Removed unimplemented links to jUDDI Admin and Browser from the jUDDI home page (index.html). 14. More bug fixes: http://ws.apache.org/juddi/bugs.html 15. Eliminated the need to subclass DataStoreFactory. Only required to subclass DataStore. Updated JDBCDataStore and removed the now-unneccessary JDBCDataStoreFactory. 16. Calls to the delete_tModel function no longer remove the TModel from the TMODEL table, it is now simply marked as removed (see bug# 11) per the UDDI specification(s). 17. Updated underlying Axis implementation to ver 1.2 beta. 18. Added a JBossAuthenticator donated by Antoni Reus 19. HTTP GET requests to the three jUDDI endpoints (inquiry, publish and admin) now return HTTP 405 Method Not Allowed error messages according to the HTTP 1.1 specification. (see bug# JUDDI-23 for more info) 20. Added functionality to support retreival of UDDI artifacts (business entity, business service, binding template and/or tmodel) via http with calls to: http://host:port/juddi/uddiget.jsp?businesskey= http://host:port/juddi/uddiget.jsp?servicekey= http://host:port/juddi/uddiget.jsp?bindingkey= http://host:port/juddi/uddiget.jsp?tmodelkey= Changes From 0.7.2 to 0.8.0 1. The version of Axis included with jUDDI is now Axis 1.1 Final. The 'log4j.properties' file that is bundled within axis.jar has been removed to avoid conflicts with the log4j.properties file in jUDDI's WEB-INF/classes directory. 2. Log4j is now accessed through Jakarta's commons-logging package. 3. <env-entry> values for juddi.propsFile and log4j.propsFile are no longer requred. Instead the juddi.properties and log4j.properties files are looked up in the classpath. This means that for the jUDDI webapp these files should be located in the WEB-INF/lib directory (they are copied from juddi/conf into this directory the build process). 4. A jUDDI client has been added bringing jUDDI full-circle back to being a UDDI toolkit (beginnings of one). Take a look at org.apache.juddi.registry.RegistryProxy and also take a look at the contents of the juddi/samples directory. 5. The beginnings of an admin API has been introduced with the addition of four jUDDI-proprietary API calls (which are still under construction). save_publisher get_publisherDetail delete_publisher find_publisher This introduced several new classes: org.apache.juddidatatype.request.SavePublisher org.apache.juddidatatype.request.GetPublisherDetail org.apache.juddidatatype.request.DeletePublisher org.apache.juddidatatype.request.FindPublisher org.apache.juddidatatype.publisher.PublisherID org.apache.juddidatatype.response.PublisherList org.apache.juddidatatype.response.PublisherDetail org.apache.juddidatatype.response.PublisherInfo org.apache.juddidatatype.response.PublisherInfos Handlers for each of the classes above have also been created in the org.apache.juddihandlers package. 6. Added support for the 'generic' attribute to the UDDI Response messages (this was being handled in the AxixRequestHandler). Also updated all associated Handler classes to marshal/unmarshal this value. 7. The org.apache.juddiregistry.functions package was moved/renamted to org.apache.juddifunctions. 8. (bug-fix) Added a default constructor to org.apache.juddidatatype.response.PublisherAssertions 9. (bug-fix) Added support for mashalling & unmarshalling the 'operator' value to org.apache.juddihandler.PublisherAssertionsHandler. 10. Expanded the PUBLISHER table to support the new jUDDI Admin API *** THIS IS IMPORTANT TO NOTE AS ANY EXISTING jUDDI IMPLEMENTATION WILL NEED TO MAKE THIS CHANGE BEFORE USING THE MOST MOST RECENT JUDDI SOURCE!!! The 0.7.0 and 0.7.1 PUBLISHER table: CREATE TABLE PUBLISHER ( PUBLISHER_ID VARCHAR(20) NOT NULL, PUBLISHER_NAME VARCHAR(255) NOT NULL, ADMIN VARCHAR(5) NULL, PRIMARY KEY (PUBLISHER_ID) ); The new PUBLISHER table: (from ddl/juddi_mysql.ddl) CREATE TABLE PUBLISHER ( PUBLISHER_ID VARCHAR(20) NOT NULL, PUBLISHER_NAME VARCHAR(255) NOT NULL, LAST_NAME VARCHAR(150) NULL, FIRST_NAME VARCHAR(100) NULL, MIDDLE_INIT VARCHAR(5) NULL, WORK_PHONE VARCHAR(50) NULL, MOBILE_PHONE VARCHAR(50) NULL, PAGER VARCHAR(50) NULL, EMAIL_ADDRESS VARCHAR(255) NULL, ADMIN VARCHAR(5) NULL, ENABLED VARCHAR(5) NULL, PRIMARY KEY (PUBLISHER_ID) ); 11. The following two methods have been removed from the abstract 'Handler' class and all subclasses (lots of them) and any imports that were required by these methods. RegistryObject unmarshal(SOAPElement e) void marshal(RegistryObject o,SOAPElement e) These were never completely implemented or used by jUDDI. 12. Added new 'test' and 'checkstyle' Ant tasks. 13. The happyjuddi.jsp page has been updated with several great new 'debugging' features. 14. When specifying a JNDI name for a JDBC DataSource in jUDDI's juddi.properties file you must now use a fully qualified name. Old way (0.7.2 and earlier): juddi.dataSource=jdbc/juddiDB New way: (0.8.0 and later): juddi.dataSource=java:comp/env/jdbc/juddiDB 15. Both getGeneric() and setGeneric() methods were added to the following list of classes in the org.apache.juddidatatype.response package: AssertionStatusReport AuthToken BindingDetail BusinessDetail BusinessDetailExt BusinessList PublisherAssertions RegisteredInfo RelatedBusinessList ServiceDetail ServiceList TModelDetail TModelList The following handler classes from the the org.apache.juddihandler package were updated to marshal/unmarshal the new generic value. AssertionStatusReportHandler AuthTokenHandler BindingDetailHandler BusinessDetailHandler BusinessDetailExtHandler BusinessListHandler PublisherAssertionsHandler RegisteredInfoHandler RelatedBusinessListHandler ServiceDetailHandler ServiceListHandler TModelDetailHandler TModelListHandler This value was being set in the AxisProcessor (in org.apache.judditransport.axis). All associated unit test methods within the XxxxHandler classes were updated as well.