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 Release Notes - jUDDI - Version 2.0rc5 ** Bug * [JUDDI-5] - Incomplete FindQualifiers processing in queries * [JUDDI-6] - find_business by tModelBag returns unexpected results * [JUDDI-10] - Null ptr exception with find_service * [JUDDI-12] - FindServiceByNameQuery doesn't obey findQualifiers * [JUDDI-14] - possible issue with find_service using CategoryBag * [JUDDI-30] - jUDDI fails to deploy on JOnAS 4.1 * [JUDDI-31] - Automatically generated discoveryURL is incorrect * [JUDDI-33] - findTModel returns unexpected results when trying to filter results with categoryBag * [JUDDI-35] - The bindingTemplate element does contain a categoryBag element but should not. * [JUDDI-36] - jaxax.xml.registry.JAXRException:javax.xml.bind.UnmarshalException:Unexpected Element {urn:uddi-org:api_v2}:description * [JUDDI-37] - Updating an existing tModel fails, and causes it to be removed from registry * [JUDDI-41] - getTModelDetail bug * [JUDDI-42] - FindRelatedBusinesses function miss businessKey * [JUDDI-43] - IdentifierBag and CategoryBag should not be empty * [JUDDI-50] - Pb with appendOrderBy() method of juddi/datastore/jdbc/FindServiceByNameQuery? * [JUDDI-57] - delete_business | service | binding do not return problem keys in error text * [JUDDI-58] - SOAP Fault Element is not qualified with the SOAP Envelope namespace * [JUDDI-60] - Database tables accomodate only 2-character language codes * [JUDDI-62] - LANG_CODE columns in Database DDL is too short * [JUDDI-63] - jUDDI responses are missing XML heading: * [JUDDI-64] - bindingTemplate does not check empty description * [JUDDI-65] - Searching for Business & Service by LANG_CODE shouldn't require exact match * [JUDDI-66] - Ambiguous DispositionReport returned when invalid XML is sent in SOAP request. * [JUDDI-67] - find_service should return matches when only businessKey is provided. * [JUDDI-68] - ErrInfo element not found in E_success messages. * [JUDDI-69] - The SharedRelationship class is missing support for the 'direction' attribute. * [JUDDI-70] - FindBindingByTModelQuery returns bindingTemplates based on logical OR of tModel keys * [JUDDI-76] - The acquireConnection method in ConnectionManager is spelled incorrectly * [JUDDI-81] - UDDI v2-compliant registry should come with tModels preloaded * [JUDDI-83] - jUDDI and MySQL 4.1 ubuntu release * [JUDDI-97] - invoking a juddi method from a web service * [JUDDI-98] - Result of sort by date is in reversed order in searching function. * [JUDDI-103] - Transient registry errors caused by jUDDI race condition * [JUDDI-106] - xml:lang attribute is serialized without namespace * [JUDDI-107] - Language code of the name attribute of the TModel is not handled correctly * [JUDDI-111] - PUBLISHER table definition uses NULL in DB2 Database Script * [JUDDI-112] - jUDDI console - saveBinding pulls up the wrong XML; saveBinding XML is incomplete * [JUDDI-113] - jUDDI error in a transacted environment * [JUDDI-114] - Classcast Exception on JBoss, Tomcat 6 on geronimo * [JUDDI-115] - Problems with JUDDI Oracle scripts * [JUDDI-116] - Drop statements in create_database.sql scripts should be prefixed * [JUDDI-117] - juddi / JBossESB MySQL/PostGres ACCESS_POINT_URL size * [JUDDI-118] - Create two wars - one with axis jars (tomcat) one without (jboss) * [JUDDI-119] - happyjuddi.jsp looking for stale dependencies ** Improvement * [JUDDI-59] - Rename ADMIN column of PUBLISHER table to support Firebird SQL ** New Feature * [JUDDI-52] - Make Registry Specific Request in JAXR * [JUDDI-82] - Scripts to create a jUDDI DataSource using Informix Dynamic Server * [JUDDI-101] - Axis2 Support * [JUDDI-108] - Add ability to configure MessageFactory from juddi.properties ** Task * [JUDDI-102] - Convert site generation to Maven * [JUDDI-104] - Add Maven2 support * [JUDDI-105] - Adding option to create the database at runtime * [JUDDI-120] - Update the docs, to reflect changes in setup * [JUDDI-121] - Update settings from 0.9rc4 to 2.0rc5 * [JUDDI-123] - Rolling back Axis2 until we get a good axis2 build ** Wish * [JUDDI-74] - Make the Database tables used by jUDDI to be configurable 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.