This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener). These URLs were unable to be fixed. Please review them to see if they can be manually resolved. * [ ] http://aopalliance.sourceforge.net (200) with 1 occurrences could not be migrated: ([https](https://aopalliance.sourceforge.net) result AnnotatedConnectException). * [ ] http://cglib.sourceforge.net (200) with 1 occurrences could not be migrated: ([https](https://cglib.sourceforge.net) result AnnotatedConnectException). * [ ] http://classdoc.sourceforge.net (200) with 1 occurrences could not be migrated: ([https](https://classdoc.sourceforge.net) result AnnotatedConnectException). * [ ] http://gee.cs.oswego.edu/dl/concurrency-interest/ (200) with 1 occurrences could not be migrated: ([https](https://gee.cs.oswego.edu/dl/concurrency-interest/) result AnnotatedConnectException). * [ ] http://hsqldb.org (200) with 1 occurrences could not be migrated: ([https](https://hsqldb.org) result SSLHandshakeException). * [ ] http://jasperreports.sourceforge.net (200) with 2 occurrences could not be migrated: ([https](https://jasperreports.sourceforge.net) result AnnotatedConnectException). * [ ] http://jasperreports.sourceforge.net/dtds/jasperreport.dtd (200) with 6 occurrences could not be migrated: ([https](https://jasperreports.sourceforge.net/dtds/jasperreport.dtd) result AnnotatedConnectException). * [ ] http://javadiff.cvs.sourceforge.net/ (200) with 3 occurrences could not be migrated: ([https](https://javadiff.cvs.sourceforge.net/) result SSLHandshakeException). * [ ] http://jibx.sourceforge.net/ (200) with 1 occurrences could not be migrated: ([https](https://jibx.sourceforge.net/) result AnnotatedConnectException). * [ ] http://www.andykhan.com/jexcelapi/ (200) with 2 occurrences could not be migrated: ([https](https://www.andykhan.com/jexcelapi/) result ConnectTimeoutException). * [ ] http://www.beanshell.org (200) with 1 occurrences could not be migrated: ([https](https://www.beanshell.org) result SSLHandshakeException). * [ ] http://www.doclet.com (200) with 1 occurrences could not be migrated: ([https](https://www.doclet.com) result AnnotatedConnectException). * [ ] http://www.jasperassistant.com (200) with 6 occurrences could not be migrated: ([https](https://www.jasperassistant.com) result SSLHandshakeException). * [ ] http://www.jensgulden.de (200) with 1 occurrences could not be migrated: ([https](https://www.jensgulden.de) result AnnotatedConnectException). * [ ] http://www.mockobjects.com (200) with 1 occurrences could not be migrated: ([https](https://www.mockobjects.com) result ClosedChannelException). * [ ] http://xmlunit.sourceforge.net/ (200) with 3 occurrences could not be migrated: ([https](https://xmlunit.sourceforge.net/) result AnnotatedConnectException). * [ ] http://cglib.sourceforge.net/apidocs (301) with 1 occurrences could not be migrated: ([https](https://cglib.sourceforge.net/apidocs) result AnnotatedConnectException). * [ ] http://www.easymock.org (301) with 3 occurrences could not be migrated: ([https](https://www.easymock.org) result SSLHandshakeException). * [ ] http://struts.sourceforge.net/struts-spring (301) with 2 occurrences could not be migrated: ([https](https://struts.sourceforge.net/struts-spring) result AnnotatedConnectException). * [ ] http://foo.com/bar (301) with 4 occurrences could not be migrated: ([https](https://foo.com/bar) result SSLHandshakeException). * [ ] http://foo.com/wrong (301) with 1 occurrences could not be migrated: ([https](https://foo.com/wrong) result SSLHandshakeException). * [ ] http://www.caucho.com/hessian (302) with 6 occurrences could not be migrated: ([https](https://www.caucho.com/hessian) result SSLHandshakeException). * [ ] http://www.jdiff.org (302) with 1 occurrences could not be migrated: ([https](https://www.jdiff.org) result ConnectTimeoutException). * [ ] http://www.jpox.org (404) with 1 occurrences could not be migrated: ([https](https://www.jpox.org) result ClosedChannelException). These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended. * [ ] http://bugs.sun.com/view_bug.do?bug_id=6342411 (302) with 1 occurrences migrated to: https://bugs.java.com/view_bug.do?bug_id=6342411 ([https](https://bugs.sun.com/view_bug.do?bug_id=6342411) result SSLHandshakeException). * [ ] http://bugs.sun.com/view_bug.do?bug_id=7023180 (302) with 2 occurrences migrated to: https://bugs.java.com/view_bug.do?bug_id=7023180 ([https](https://bugs.sun.com/view_bug.do?bug_id=7023180) result SSLHandshakeException). * [ ] http://www.freemarker.org (301) with 2 occurrences migrated to: https://freemarker.apache.org/ ([https](https://www.freemarker.org) result ConnectTimeoutException). * [ ] http://progit.org/book/ch5-2.html (301) with 1 occurrences migrated to: https://progit.org/book/ch5-2.html ([https](https://progit.org/book/ch5-2.html) result SSLHandshakeException). * [ ] http://www.caucho.com/burlap (302) with 6 occurrences migrated to: https://www.caucho.com/burlap ([https](https://www.caucho.com/burlap) result SSLHandshakeException). * [ ] http://192.168.28.42/1.jsp (ConnectTimeoutException) with 2 occurrences migrated to: https://192.168.28.42/1.jsp ([https](https://192.168.28.42/1.jsp) result ConnectTimeoutException). * [ ] http://dcl.mathcs.emory.edu/util/backport-util-concurrent/ (ConnectTimeoutException) with 1 occurrences migrated to: https://dcl.mathcs.emory.edu/util/backport-util-concurrent/ ([https](https://dcl.mathcs.emory.edu/util/backport-util-concurrent/) result ConnectTimeoutException). * [ ] http://wwws.sun.com/software/xml/developers/diffmk/ (ConnectTimeoutException) with 1 occurrences migrated to: https://wwws.sun.com/software/xml/developers/diffmk/ ([https](https://wwws.sun.com/software/xml/developers/diffmk/) result ConnectTimeoutException). * [ ] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041784 (ReadTimeoutException) with 1 occurrences migrated to: https://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041784 ([https](https://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041784) result SSLHandshakeException). * [ ] http://www.w3.org/TR/html4/loose.dtd (ReadTimeoutException) with 3 occurrences migrated to: https://www.w3.org/TR/html4/loose.dtd ([https](https://www.w3.org/TR/html4/loose.dtd) result ReadTimeoutException). * [ ] http://arjen:foobar@java.sun.com:80/javase/6/docs/api/java/util/BitSet.html?foo=bar (UnknownHostException) with 5 occurrences migrated to: https://arjen:foobar@java.sun.com:80/javase/6/docs/api/java/util/BitSet.html?foo=bar ([https](https://arjen:foobar@java.sun.com:80/javase/6/docs/api/java/util/BitSet.html?foo=bar) result UnknownHostException). * [ ] http://castor.codehaus.org/xml-mapping.html (UnknownHostException) with 1 occurrences migrated to: https://castor.codehaus.org/xml-mapping.html ([https](https://castor.codehaus.org/xml-mapping.html) result UnknownHostException). * [ ] http://example.com",HttpMethod.GET (UnknownHostException) with 3 occurrences migrated to: https://example.com",HttpMethod.GET ([https](https://example.com",HttpMethod.GET) result UnknownHostException). * [ ] http://groovy.codehaus.org (UnknownHostException) with 1 occurrences migrated to: https://groovy.codehaus.org ([https](https://groovy.codehaus.org) result UnknownHostException). * [ ] http://jackson.codehaus.org/ (UnknownHostException) with 4 occurrences migrated to: https://jackson.codehaus.org/ ([https](https://jackson.codehaus.org/) result UnknownHostException). * [ ] http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16014 (UnknownHostException) with 2 occurrences migrated to: https://nagoya.apache.org/bugzilla/show_bug.cgi?id=16014 ([https](https://nagoya.apache.org/bugzilla/show_bug.cgi?id=16014) result UnknownHostException). * [ ] http://samples.springframework.org/order (UnknownHostException) with 2 occurrences migrated to: https://samples.springframework.org/order ([https](https://samples.springframework.org/order) result UnknownHostException). * [ ] http://url.somewhere.com (UnknownHostException) with 24 occurrences migrated to: https://url.somewhere.com ([https](https://url.somewhere.com) result UnknownHostException). * [ ] http://url.somewhere.com/path (UnknownHostException) with 1 occurrences migrated to: https://url.somewhere.com/path ([https](https://url.somewhere.com/path) result UnknownHostException). * [ ] http://url.somewhere.com/path?id=1 (UnknownHostException) with 1 occurrences migrated to: https://url.somewhere.com/path?id=1 ([https](https://url.somewhere.com/path?id=1) result UnknownHostException). * [ ] http://url.somewhere.com/test.htm (UnknownHostException) with 2 occurrences migrated to: https://url.somewhere.com/test.htm ([https](https://url.somewhere.com/test.htm) result UnknownHostException). * [ ] http://ws.geonames.org/searchJSON?q=T (UnknownHostException) with 1 occurrences migrated to: https://ws.geonames.org/searchJSON?q=T ([https](https://ws.geonames.org/searchJSON?q=T) result UnknownHostException). * [ ] http://ws.geonames.org/searchJSON?q=T%C5%8Dky%C5%8D&style=FULL&maxRows=300 (UnknownHostException) with 1 occurrences migrated to: https://ws.geonames.org/searchJSON?q=T%C5%8Dky%C5%8D&style=FULL&maxRows=300 ([https](https://ws.geonames.org/searchJSON?q=T%C5%8Dky%C5%8D&style=FULL&maxRows=300) result UnknownHostException). * [ ] http://xstream.codehaus.org/ (UnknownHostException) with 1 occurrences migrated to: https://xstream.codehaus.org/ ([https](https://xstream.codehaus.org/) result UnknownHostException). * [ ] http://bitworking.org/projects/URI-Templates/ (302) with 1 occurrences migrated to: https://bitworking.org/projects/URI-Templates/ ([https](https://bitworking.org/projects/URI-Templates/) result 404). * [ ] http://book.git-scm.com/4_interactive_rebasing.html (301) with 1 occurrences migrated to: https://book.git-scm.com/4_interactive_rebasing.html ([https](https://book.git-scm.com/4_interactive_rebasing.html) result 404). * [ ] http://example.com/-foo (404) with 2 occurrences migrated to: https://example.com/-foo ([https](https://example.com/-foo) result 404). * [ ] http://example.com/1 (404) with 1 occurrences migrated to: https://example.com/1 ([https](https://example.com/1) result 404). * [ ] http://example.com/2 (404) with 1 occurrences migrated to: https://example.com/2 ([https](https://example.com/2) result 404). * [ ] http://example.com/abc/ (404) with 4 occurrences migrated to: https://example.com/abc/ ([https](https://example.com/abc/) result 404). * [ ] http://example.com/abc/x/y (404) with 1 occurrences migrated to: https://example.com/abc/x/y ([https](https://example.com/abc/x/y) result 404). * [ ] http://example.com/abc/x/y/z (404) with 3 occurrences migrated to: https://example.com/abc/x/y/z ([https](https://example.com/abc/x/y/z) result 404). * [ ] http://example.com/bar (404) with 1 occurrences migrated to: https://example.com/bar ([https](https://example.com/bar) result 404). * [ ] http://example.com/context.xml (404) with 4 occurrences migrated to: https://example.com/context.xml ([https](https://example.com/context.xml) result 404). * [ ] http://example.com/foo (404) with 2 occurrences migrated to: https://example.com/foo ([https](https://example.com/foo) result 404). * [ ] http://example.com/foo/../bar (404) with 8 occurrences migrated to: https://example.com/foo/../bar ([https](https://example.com/foo/../bar) result 404). * [ ] http://example.com/foo/foo2?bar (404) with 1 occurrences migrated to: https://example.com/foo/foo2?bar ([https](https://example.com/foo/foo2?bar) result 404). * [ ] http://example.com/foo?bar (404) with 4 occurrences migrated to: https://example.com/foo?bar ([https](https://example.com/foo?bar) result 404). * [ ] http://example.com/foo?bar= (404) with 2 occurrences migrated to: https://example.com/foo?bar= ([https](https://example.com/foo?bar=) result 404). * [ ] http://example.com/foo?bar=baz (404) with 2 occurrences migrated to: https://example.com/foo?bar=baz ([https](https://example.com/foo?bar=baz) result 404). * [ ] http://example.com/foo?baz=42 (404) with 1 occurrences migrated to: https://example.com/foo?baz=42 ([https](https://example.com/foo?baz=42) result 404). * [ ] http://example.com/foo?foo=bar&baz=qux (404) with 2 occurrences migrated to: https://example.com/foo?foo=bar&baz=qux ([https](https://example.com/foo?foo=bar&baz=qux) result 404). * [ ] http://example.com/hotel (404) with 5 occurrences migrated to: https://example.com/hotel ([https](https://example.com/hotel) result 404). * [ ] http://example.com/hotel%20list (404) with 2 occurrences migrated to: https://example.com/hotel%20list ([https](https://example.com/hotel%20list) result 404). * [ ] http://example.com/hotel%20list/Z (404) with 1 occurrences migrated to: https://example.com/hotel%20list/Z ([https](https://example.com/hotel%20list/Z) result 404). * [ ] http://example.com/hotel%20list/Z%C3%BCrich (404) with 3 occurrences migrated to: https://example.com/hotel%20list/Z%C3%BCrich ([https](https://example.com/hotel%20list/Z%C3%BCrich) result 404). * [ ] http://example.com/hotel%2520list (404) with 1 occurrences migrated to: https://example.com/hotel%2520list ([https](https://example.com/hotel%2520list) result 404). * [ ] http://example.com/hotels (404) with 3 occurrences migrated to: https://example.com/hotels ([https](https://example.com/hotels) result 404). * [ ] http://example.com/hotels/ (404) with 17 occurrences migrated to: https://example.com/hotels/ ([https](https://example.com/hotels/) result 404). * [ ] http://example.com/hotels/1/bookings/42 (404) with 7 occurrences migrated to: https://example.com/hotels/1/bookings/42 ([https](https://example.com/hotels/1/bookings/42) result 404). * [ ] http://example.com/hotels/42 (404) with 1 occurrences migrated to: https://example.com/hotels/42 ([https](https://example.com/hotels/42) result 404). * [ ] http://example.com/hotels/42/bookings/21 (404) with 2 occurrences migrated to: https://example.com/hotels/42/bookings/21 ([https](https://example.com/hotels/42/bookings/21) result 404). * [ ] http://example.com/hotels/42/bookings/42 (404) with 1 occurrences migrated to: https://example.com/hotels/42/bookings/42 ([https](https://example.com/hotels/42/bookings/42) result 404). * [ ] http://example.com/hotels/42/rooms/42 (404) with 1 occurrences migrated to: https://example.com/hotels/42/rooms/42 ([https](https://example.com/hotels/42/rooms/42) result 404). * [ ] http://example.com/hotels/Rest%20%26%20Relax/bookings/42 (404) with 2 occurrences migrated to: https://example.com/hotels/Rest%20%26%20Relax/bookings/42 ([https](https://example.com/hotels/Rest%20%26%20Relax/bookings/42) result 404). * [ ] http://example.com/hotels/bookings (404) with 1 occurrences migrated to: https://example.com/hotels/bookings ([https](https://example.com/hotels/bookings) result 404). * [ ] http://example.com/hotels/foo (404) with 1 occurrences migrated to: https://example.com/hotels/foo ([https](https://example.com/hotels/foo) result 404). * [ ] http://example.com/myFileUpload (404) with 1 occurrences migrated to: https://example.com/myFileUpload ([https](https://example.com/myFileUpload) result 404). * [ ] http://example.com/myForm (404) with 1 occurrences migrated to: https://example.com/myForm ([https](https://example.com/myForm) result 404). * [ ] http://example.com/path?query (404) with 2 occurrences migrated to: https://example.com/path?query ([https](https://example.com/path?query) result 404). * [ ] http://example.com/query=foo@bar (404) with 4 occurrences migrated to: https://example.com/query=foo@bar ([https](https://example.com/query=foo@bar) result 404). * [ ] http://example.com/resource (404) with 3 occurrences migrated to: https://example.com/resource ([https](https://example.com/resource) result 404). * [ ] http://example.com/spaces (404) with 1 occurrences migrated to: https://example.com/spaces ([https](https://example.com/spaces) result 404). * [ ] http://example.com/spaces%20and%20%E2%82%AC (404) with 3 occurrences migrated to: https://example.com/spaces%20and%20%E2%82%AC ([https](https://example.com/spaces%20and%20%E2%82%AC) result 404). * [ ] http://example.org/music/people (404) with 4 occurrences migrated to: https://example.org/music/people ([https](https://example.org/music/people) result 404). * [ ] http://help.github.com/send-pull-requests (404) with 2 occurrences migrated to: https://help.github.com/send-pull-requests ([https](https://help.github.com/send-pull-requests) result 404). * [ ] http://springframework.org/oxm-test (404) with 2 occurrences migrated to: https://springframework.org/oxm-test ([https](https://springframework.org/oxm-test) result 404). * [ ] http://www.example.com/hotels (404) with 2 occurrences migrated to: https://www.example.com/hotels ([https](https://www.example.com/hotels) result 404). * [ ] http://www.ibm.com/developerworks/websphere/library/techarticles/0404_tang/0404_tang.html (301) with 1 occurrences migrated to: https://www.ibm.com/developerworks/websphere/library/techarticles/0404_tang/0404_tang.html ([https](https://www.ibm.com/developerworks/websphere/library/techarticles/0404_tang/0404_tang.html) result 404). * [ ] http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/tutorial-lesson-03 (404) with 1 occurrences migrated to: https://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/tutorial-lesson-03 ([https](https://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/tutorial-lesson-03) result 404). * [ ] http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/tips0243.html (404) with 1 occurrences migrated to: https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/tips0243.html ([https](https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/tips0243.html) result 404). * [ ] http://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html (301) with 1 occurrences migrated to: https://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html ([https](https://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html) result 404). * [ ] http://xml.apache.org/xslt (404) with 3 occurrences migrated to: https://xml.apache.org/xslt ([https](https://xml.apache.org/xslt) result 404). * [ ] http://search.twitter.com/search.atom?q= (410) with 1 occurrences migrated to: https://search.twitter.com/search.atom?q= ([https](https://search.twitter.com/search.atom?q=) result 410). * [ ] http://search.twitter.com/search.atom?q=%23avatar (410) with 1 occurrences migrated to: https://search.twitter.com/search.atom?q=%23avatar ([https](https://search.twitter.com/search.atom?q=%23avatar) result 410). These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended. * [ ] http://ant.apache.org with 1 occurrences migrated to: https://ant.apache.org ([https](https://ant.apache.org) result 200). * [ ] http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html with 3 occurrences migrated to: https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html ([https](https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html) result 200). * [ ] http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinPool.html with 1 occurrences migrated to: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinPool.html ([https](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinPool.html) result 200). * [ ] http://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html with 1 occurrences migrated to: https://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html ([https](https://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html) result 200). * [ ] http://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/jdbc/OracleConnection.html with 1 occurrences migrated to: https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/jdbc/OracleConnection.html ([https](https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/jdbc/OracleConnection.html) result 200). * [ ] http://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/BLOB.html with 7 occurrences migrated to: https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/BLOB.html ([https](https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/BLOB.html) result 200). * [ ] http://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/CLOB.html with 7 occurrences migrated to: https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/CLOB.html ([https](https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/CLOB.html) result 200). * [ ] http://en.wikipedia.org/wiki/Halting_Problem with 1 occurrences migrated to: https://en.wikipedia.org/wiki/Halting_Problem ([https](https://en.wikipedia.org/wiki/Halting_Problem) result 200). * [ ] http://en.wikipedia.org/wiki/List_of_HTTP_status_codes with 1 occurrences migrated to: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes ([https](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) result 200). * [ ] http://example.com with 64 occurrences migrated to: https://example.com ([https](https://example.com) result 200). * [ ] http://example.com/ with 3 occurrences migrated to: https://example.com/ ([https](https://example.com/) result 200). * [ ] http://example.com?foo=bar@baz with 1 occurrences migrated to: https://example.com?foo=bar@baz ([https](https://example.com?foo=bar@baz) result 200). * [ ] http://example.org?format=json&url=http://another.com?foo=bar with 2 occurrences migrated to: https://example.org?format=json&url=http://another.com?foo=bar ([https](https://example.org?format=json&url=https://another.com?foo=bar) result 200). * [ ] http://goessner.net/articles/JsonPath/ with 8 occurrences migrated to: https://goessner.net/articles/JsonPath/ ([https](https://goessner.net/articles/JsonPath/) result 200). * [ ] http://gradle.org with 1 occurrences migrated to: https://gradle.org ([https](https://gradle.org) result 200). * [ ] http://h2database.com with 1 occurrences migrated to: https://h2database.com ([https](https://h2database.com) result 200). * [ ] http://hc.apache.org/httpcomponents-client-ga/ with 1 occurrences migrated to: https://hc.apache.org/httpcomponents-client-ga/ ([https](https://hc.apache.org/httpcomponents-client-ga/) result 200). * [ ] http://hc.apache.org/httpcomponents-client-ga/httpclient/ with 1 occurrences migrated to: https://hc.apache.org/httpcomponents-client-ga/httpclient/ ([https](https://hc.apache.org/httpcomponents-client-ga/httpclient/) result 200). * [ ] http://www.hibernate.org (301) with 2 occurrences migrated to: https://hibernate.org/ ([https](https://www.hibernate.org) result 200). * [ ] http://ibatis.apache.org with 1 occurrences migrated to: https://ibatis.apache.org ([https](https://ibatis.apache.org) result 200). * [ ] http://jira.pentaho.com/browse/PDI-5031 with 1 occurrences migrated to: https://jira.pentaho.com/browse/PDI-5031 ([https](https://jira.pentaho.com/browse/PDI-5031) result 200). * [ ] http://pivotal.io/security/cve-2015-5211 with 1 occurrences migrated to: https://pivotal.io/security/cve-2015-5211 ([https](https://pivotal.io/security/cve-2015-5211) result 200). * [ ] http://poi.apache.org with 1 occurrences migrated to: https://poi.apache.org ([https](https://poi.apache.org) result 200). * [ ] http://sourceforge.net with 1 occurrences migrated to: https://sourceforge.net ([https](https://sourceforge.net) result 200). * [ ] http://sourceforge.net/projects/javadiff/ with 1 occurrences migrated to: https://sourceforge.net/projects/javadiff/ ([https](https://sourceforge.net/projects/javadiff/) result 200). * [ ] http://sourceforge.net/sflogo.php?group_id=37160 with 1 occurrences migrated to: https://sourceforge.net/sflogo.php?group_id=37160 ([https](https://sourceforge.net/sflogo.php?group_id=37160) result 200). * [ ] http://stackoverflow.com/faq with 1 occurrences migrated to: https://stackoverflow.com/faq ([https](https://stackoverflow.com/faq) result 200). * [ ] http://stackoverflow.com/questions/tagged/spring with 1 occurrences migrated to: https://stackoverflow.com/questions/tagged/spring ([https](https://stackoverflow.com/questions/tagged/spring) result 200). * [ ] http://stackoverflow.com/questions/tagged/spring-mvc with 1 occurrences migrated to: https://stackoverflow.com/questions/tagged/spring-mvc ([https](https://stackoverflow.com/questions/tagged/spring-mvc) result 200). * [ ] http://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html with 1 occurrences migrated to: https://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html ([https](https://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html) result 200). * [ ] http://struts.apache.org with 2 occurrences migrated to: https://struts.apache.org ([https](https://struts.apache.org) result 200). * [ ] http://tiles.apache.org with 6 occurrences migrated to: https://tiles.apache.org ([https](https://tiles.apache.org) result 200). * [ ] http://tomcat.apache.org/tomcat-5.5-doc/config/context.html with 1 occurrences migrated to: https://tomcat.apache.org/tomcat-5.5-doc/config/context.html ([https](https://tomcat.apache.org/tomcat-5.5-doc/config/context.html) result 200). * [ ] http://tomcat.apache.org/tomcat-5.5-doc/config/loader.html with 1 occurrences migrated to: https://tomcat.apache.org/tomcat-5.5-doc/config/loader.html ([https](https://tomcat.apache.org/tomcat-5.5-doc/config/loader.html) result 200). * [ ] http://tools.ietf.org/html/rfc1945 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc1945 ([https](https://tools.ietf.org/html/rfc1945) result 200). * [ ] http://tools.ietf.org/html/rfc2295 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2295 ([https](https://tools.ietf.org/html/rfc2295) result 200). * [ ] http://tools.ietf.org/html/rfc2324 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2324 ([https](https://tools.ietf.org/html/rfc2324) result 200). * [ ] http://tools.ietf.org/html/rfc2518 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2518 ([https](https://tools.ietf.org/html/rfc2518) result 200). * [ ] http://tools.ietf.org/html/rfc2616 with 43 occurrences migrated to: https://tools.ietf.org/html/rfc2616 ([https](https://tools.ietf.org/html/rfc2616) result 200). * [ ] http://tools.ietf.org/html/rfc2774 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2774 ([https](https://tools.ietf.org/html/rfc2774) result 200). * [ ] http://tools.ietf.org/html/rfc2817 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2817 ([https](https://tools.ietf.org/html/rfc2817) result 200). * [ ] http://tools.ietf.org/html/rfc3229 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc3229 ([https](https://tools.ietf.org/html/rfc3229) result 200). * [ ] http://tools.ietf.org/html/rfc3986 with 2 occurrences migrated to: https://tools.ietf.org/html/rfc3986 ([https](https://tools.ietf.org/html/rfc3986) result 200). * [ ] http://tools.ietf.org/html/rfc4918 with 5 occurrences migrated to: https://tools.ietf.org/html/rfc4918 ([https](https://tools.ietf.org/html/rfc4918) result 200). * [ ] http://tools.ietf.org/html/rfc5842 with 2 occurrences migrated to: https://tools.ietf.org/html/rfc5842 ([https](https://tools.ietf.org/html/rfc5842) result 200). * [ ] http://tools.ietf.org/html/rfc6585 with 4 occurrences migrated to: https://tools.ietf.org/html/rfc6585 ([https](https://tools.ietf.org/html/rfc6585) result 200). * [ ] http://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt with 3 occurrences migrated to: https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt ([https](https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt) result 200). * [ ] http://twitter.com/springframework with 1 occurrences migrated to: https://twitter.com/springframework ([https](https://twitter.com/springframework) result 200). * [ ] http://velocity.apache.org with 2 occurrences migrated to: https://velocity.apache.org ([https](https://velocity.apache.org) result 200). * [ ] http://vimeo.com/34436402 with 1 occurrences migrated to: https://vimeo.com/34436402 ([https](https://vimeo.com/34436402) result 200). * [ ] http://www.amazon.com/exec/obidos/tg/detail/-/0764543857/ with 10 occurrences migrated to: https://www.amazon.com/exec/obidos/tg/detail/-/0764543857/ ([https](https://www.amazon.com/exec/obidos/tg/detail/-/0764543857/) result 200). * [ ] http://www.apache.org with 1 occurrences migrated to: https://www.apache.org ([https](https://www.apache.org) result 200). * [ ] http://www.apple.com/DTDs/PropertyList-1.0.dtd with 6 occurrences migrated to: https://www.apple.com/DTDs/PropertyList-1.0.dtd ([https](https://www.apple.com/DTDs/PropertyList-1.0.dtd) result 200). * [ ] http://ehcache.sourceforge.net (301) with 1 occurrences migrated to: https://www.ehcache.org/ ([https](https://ehcache.sourceforge.net) result 200). * [ ] http://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D with 1 occurrences migrated to: https://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D ([https](https://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D) result 200). * [ ] http://www.google.com/?q=Z with 2 occurrences migrated to: https://www.google.com/?q=Z ([https](https://www.google.com/?q=Z) result 200). * [ ] http://www.google.com/?q=Z%C3%BCrich with 2 occurrences migrated to: https://www.google.com/?q=Z%C3%BCrich ([https](https://www.google.com/?q=Z%C3%BCrich) result 200). * [ ] http://www.ietf.org with 1 occurrences migrated to: https://www.ietf.org ([https](https://www.ietf.org) result 200). * [ ] http://www.ietf.org/rfc/rfc1867.txt with 2 occurrences migrated to: https://www.ietf.org/rfc/rfc1867.txt ([https](https://www.ietf.org/rfc/rfc1867.txt) result 200). * [ ] http://www.ietf.org/rfc/rfc2396.txt with 2 occurrences migrated to: https://www.ietf.org/rfc/rfc2396.txt ([https](https://www.ietf.org/rfc/rfc2396.txt) result 200). * [ ] http://www.ietf.org/rfc/rfc3986.txt with 15 occurrences migrated to: https://www.ietf.org/rfc/rfc3986.txt ([https](https://www.ietf.org/rfc/rfc3986.txt) result 200). * [ ] http://jruby.sourceforge.net (302) with 1 occurrences migrated to: https://www.jruby.org/ ([https](https://jruby.sourceforge.net) result 200). * [ ] http://www.lowagie.com/iText with 1 occurrences migrated to: https://www.lowagie.com/iText ([https](https://www.lowagie.com/iText) result 200). * [ ] http://www.manpagez.com/man/5/crontab/ with 1 occurrences migrated to: https://www.manpagez.com/man/5/crontab/ ([https](https://www.manpagez.com/man/5/crontab/) result 200). * [ ] http://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html with 1 occurrences migrated to: https://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html ([https](https://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html) result 200). * [ ] http://www.ow2.org/ with 1 occurrences migrated to: https://www.ow2.org/ ([https](https://www.ow2.org/) result 200). * [ ] http://quartz-scheduler.org (301) with 1 occurrences migrated to: https://www.quartz-scheduler.org/ ([https](https://quartz-scheduler.org) result 200). * [ ] http://www.springbyexample.org/examples/custom-thread-scope-module.html with 1 occurrences migrated to: https://www.springbyexample.org/examples/custom-thread-scope-module.html ([https](https://www.springbyexample.org/examples/custom-thread-scope-module.html) result 200). * [ ] http://www.springframework.org/dtd/spring-beans-2.0.dtd with 8 occurrences migrated to: https://www.springframework.org/dtd/spring-beans-2.0.dtd ([https](https://www.springframework.org/dtd/spring-beans-2.0.dtd) result 200). * [ ] http://www.springframework.org/dtd/spring-beans.dtd with 1 occurrences migrated to: https://www.springframework.org/dtd/spring-beans.dtd ([https](https://www.springframework.org/dtd/spring-beans.dtd) result 200). * [ ] http://www.springframework.org/schema/beans/spring-beans-2.0.xsd with 5 occurrences migrated to: https://www.springframework.org/schema/beans/spring-beans-2.0.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-2.0.xsd) result 200). * [ ] http://www.springframework.org/schema/beans/spring-beans-2.5.xsd with 6 occurrences migrated to: https://www.springframework.org/schema/beans/spring-beans-2.5.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-2.5.xsd) result 200). * [ ] http://www.springframework.org/schema/beans/spring-beans-3.0.xsd with 10 occurrences migrated to: https://www.springframework.org/schema/beans/spring-beans-3.0.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-3.0.xsd) result 200). * [ ] http://www.springframework.org/schema/beans/spring-beans-3.1.xsd with 11 occurrences migrated to: https://www.springframework.org/schema/beans/spring-beans-3.1.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-3.1.xsd) result 200). * [ ] http://www.springframework.org/schema/beans/spring-beans-3.2.xsd with 11 occurrences migrated to: https://www.springframework.org/schema/beans/spring-beans-3.2.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-3.2.xsd) result 200). * [ ] http://www.springframework.org/schema/tool/spring-tool-2.0.xsd with 5 occurrences migrated to: https://www.springframework.org/schema/tool/spring-tool-2.0.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-2.0.xsd) result 200). * [ ] http://www.springframework.org/schema/tool/spring-tool-2.5.xsd with 7 occurrences migrated to: https://www.springframework.org/schema/tool/spring-tool-2.5.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-2.5.xsd) result 200). * [ ] http://www.springframework.org/schema/tool/spring-tool-3.0.xsd with 11 occurrences migrated to: https://www.springframework.org/schema/tool/spring-tool-3.0.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-3.0.xsd) result 200). * [ ] http://www.springframework.org/schema/tool/spring-tool-3.1.xsd with 12 occurrences migrated to: https://www.springframework.org/schema/tool/spring-tool-3.1.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-3.1.xsd) result 200). * [ ] http://www.springframework.org/schema/tool/spring-tool-3.2.xsd with 12 occurrences migrated to: https://www.springframework.org/schema/tool/spring-tool-3.2.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-3.2.xsd) result 200). * [ ] http://www.w3.org/2000/xmlns/ with 2 occurrences migrated to: https://www.w3.org/2000/xmlns/ ([https](https://www.w3.org/2000/xmlns/) result 200). * [ ] http://www.w3.org/2004/08/xop/include with 2 occurrences migrated to: https://www.w3.org/2004/08/xop/include ([https](https://www.w3.org/2004/08/xop/include) result 200). * [ ] http://www.w3.org/TR/2004/WD-soap12-mtom-20040608/ with 2 occurrences migrated to: https://www.w3.org/TR/2004/WD-soap12-mtom-20040608/ ([https](https://www.w3.org/TR/2004/WD-soap12-mtom-20040608/) result 200). * [ ] http://www.w3.org/TR/2005/REC-xop10-20050125/ with 6 occurrences migrated to: https://www.w3.org/TR/2005/REC-xop10-20050125/ ([https](https://www.w3.org/TR/2005/REC-xop10-20050125/) result 200). * [ ] http://www.w3.org/TR/xhtml1/diffs.html with 1 occurrences migrated to: https://www.w3.org/TR/xhtml1/diffs.html ([https](https://www.w3.org/TR/xhtml1/diffs.html) result 200). * [ ] http://xmlbeans.apache.org/ with 1 occurrences migrated to: https://xmlbeans.apache.org/ ([https](https://xmlbeans.apache.org/) result 200). * [ ] http://youtrack.jetbrains.com/issue/IDEA-53476 with 1 occurrences migrated to: https://youtrack.jetbrains.com/issue/IDEA-53476 ([https](https://youtrack.jetbrains.com/issue/IDEA-53476) result 200). * [ ] http://youtrack.jetbrains.com/issue/IDEA-64446 with 1 occurrences migrated to: https://youtrack.jetbrains.com/issue/IDEA-64446 ([https](https://youtrack.jetbrains.com/issue/IDEA-64446) result 200). * [ ] http://asm.ow2.org with 1 occurrences migrated to: https://asm.ow2.org ([https](https://asm.ow2.org) result 301). * [ ] http://asm.ow2.org/asm50/javadoc/user with 1 occurrences migrated to: https://asm.ow2.org/asm50/javadoc/user ([https](https://asm.ow2.org/asm50/javadoc/user) result 301). * [ ] http://bit.ly/TRlX2r with 1 occurrences migrated to: https://bit.ly/TRlX2r ([https](https://bit.ly/TRlX2r) result 301). * [ ] http://bit.ly/UzccDt with 1 occurrences migrated to: https://bit.ly/UzccDt ([https](https://bit.ly/UzccDt) result 301). * [ ] http://bit.ly/p9rIvx with 1 occurrences migrated to: https://bit.ly/p9rIvx ([https](https://bit.ly/p9rIvx) result 301). * [ ] http://bit.ly/qUwvwz with 1 occurrences migrated to: https://bit.ly/qUwvwz ([https](https://bit.ly/qUwvwz) result 301). * [ ] http://blog.springsource.org with 1 occurrences migrated to: https://blog.springsource.org ([https](https://blog.springsource.org) result 301). * [ ] http://build.springframework.org/browse/SPR-TRUNKQUICK-908 with 1 occurrences migrated to: https://build.springframework.org/browse/SPR-TRUNKQUICK-908 ([https](https://build.springframework.org/browse/SPR-TRUNKQUICK-908) result 301). * [ ] http://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal with 2 occurrences migrated to: https://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal ([https](https://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal) result 301). * [ ] http://code.google.com/p/mybatis/ with 9 occurrences migrated to: https://code.google.com/p/mybatis/ ([https](https://code.google.com/p/mybatis/) result 301). * [ ] http://code.google.com/p/xml-matchers/ with 4 occurrences migrated to: https://code.google.com/p/xml-matchers/ ([https](https://code.google.com/p/xml-matchers/) result 301). * [ ] http://commons.apache.org/proper/commons-fileupload with 2 occurrences migrated to: https://commons.apache.org/proper/commons-fileupload ([https](https://commons.apache.org/proper/commons-fileupload) result 301). * [ ] http://confluence.jetbrains.net/display/IDEADEV/Gradle+integration with 1 occurrences migrated to: https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration ([https](https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration) result 301). * [ ] http://db.apache.org/derby with 1 occurrences migrated to: https://db.apache.org/derby ([https](https://db.apache.org/derby) result 301). * [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api (301) with 1 occurrences migrated to: https://docs.spring.io/spring-framework/docs/current/javadoc-api ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api) result 301). * [ ] http://static.springsource.org/spring-framework/docs/current/spring-framework-reference (301) with 1 occurrences migrated to: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference ([https](https://static.springsource.org/spring-framework/docs/current/spring-framework-reference) result 301). * [ ] http://forum.springsource.org (301) with 1 occurrences migrated to: https://forum.spring.io/ ([https](https://forum.springsource.org) result 301). * [ ] http://forum.springframework.org/showthread.php?t=41350 with 1 occurrences migrated to: https://forum.springframework.org/showthread.php?t=41350 ([https](https://forum.springframework.org/showthread.php?t=41350) result 301). * [ ] http://github.com/SpringSource/spring-framework with 1 occurrences migrated to: https://github.com/SpringSource/spring-framework ([https](https://github.com/SpringSource/spring-framework) result 301). * [ ] http://help.github.com/set-up-git-redirect with 1 occurrences migrated to: https://help.github.com/set-up-git-redirect ([https](https://help.github.com/set-up-git-redirect) result 301). * [ ] http://jakarta.apache.org/commons/dbcp with 2 occurrences migrated to: https://jakarta.apache.org/commons/dbcp ([https](https://jakarta.apache.org/commons/dbcp) result 301). * [ ] http://jakarta.apache.org/commons/fileupload with 1 occurrences migrated to: https://jakarta.apache.org/commons/fileupload ([https](https://jakarta.apache.org/commons/fileupload) result 301). * [ ] http://jakarta.apache.org/commons/httpclient with 2 occurrences migrated to: https://jakarta.apache.org/commons/httpclient ([https](https://jakarta.apache.org/commons/httpclient) result 301). * [ ] http://jakarta.apache.org/commons/lang/ with 1 occurrences migrated to: https://jakarta.apache.org/commons/lang/ ([https](https://jakarta.apache.org/commons/lang/) result 301). * [ ] http://jakarta.apache.org/commons/logging.html with 1 occurrences migrated to: https://jakarta.apache.org/commons/logging.html ([https](https://jakarta.apache.org/commons/logging.html) result 301). * [ ] http://jira.springframework.org/browse/SPR-5708 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-5708 ([https](https://jira.springframework.org/browse/SPR-5708) result 301). * [ ] http://jira.springframework.org/browse/SPR-6011 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-6011 ([https](https://jira.springframework.org/browse/SPR-6011) result 301). * [ ] http://jira.springframework.org/browse/SPR-6124 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-6124 ([https](https://jira.springframework.org/browse/SPR-6124) result 301). * [ ] http://jira.springframework.org/browse/SPR-6128 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-6128 ([https](https://jira.springframework.org/browse/SPR-6128) result 301). * [ ] http://jira.springframework.org/browse/SPR-7064 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-7064 ([https](https://jira.springframework.org/browse/SPR-7064) result 301). * [ ] http://jira.springsource.org/browse/SPR with 1 occurrences migrated to: https://jira.springsource.org/browse/SPR ([https](https://jira.springsource.org/browse/SPR) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2645 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2645 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2645) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2660 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2660 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2660) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2728 with 3 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2728 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2728) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2754 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2754 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2754) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2788 with 5 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2788 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2788) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2789 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2789 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2789) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2866 with 3 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2866 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2866) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3026 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3026 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3026) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3038 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3038 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3038) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3127 with 2 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3127 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3127) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3264 with 2 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3264 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3264) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3550 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3550 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3550) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3775 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3775 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3775) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3880 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3880 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3880) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3896 with 8 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3896 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3896) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3949 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3949 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3949) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3960 with 3 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3960 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3960) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-4005 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-4005 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-4005) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-4008 with 2 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-4008 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-4008) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-4040 with 3 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-4040 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-4040) result 301). * [ ] http://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//topic/com.ibm.websphere.base.doc/info/aes/ae/rdat_extiapi.html with 1 occurrences migrated to: https://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//topic/com.ibm.websphere.base.doc/info/aes/ae/rdat_extiapi.html ([https](https://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//topic/com.ibm.websphere.base.doc/info/aes/ae/rdat_extiapi.html) result 301). * [ ] http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/rsadapter/JDBCConnectionSpec.html with 1 occurrences migrated to: https://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/rsadapter/JDBCConnectionSpec.html ([https](https://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/rsadapter/JDBCConnectionSpec.html) result 301). * [ ] http://sourceforge.net/projects/c3p0 with 2 occurrences migrated to: https://sourceforge.net/projects/c3p0 ([https](https://sourceforge.net/projects/c3p0) result 301). * [ ] http://sourceforge.net/projects/javadiff with 1 occurrences migrated to: https://sourceforge.net/projects/javadiff ([https](https://sourceforge.net/projects/javadiff) result 301). * [ ] http://springframework.org with 2 occurrences migrated to: https://springframework.org ([https](https://springframework.org) result 301). * [ ] http://springsource.org/projects with 1 occurrences migrated to: https://springsource.org/projects ([https](https://springsource.org/projects) result 301). * [ ] http://www.atomenabled.org/developers/syndication/ with 1 occurrences migrated to: https://www.atomenabled.org/developers/syndication/ ([https](https://www.atomenabled.org/developers/syndication/) result 301). * [ ] http://www.google.com/ig/calculator?q=1USD=?EUR with 1 occurrences migrated to: https://www.google.com/ig/calculator?q=1USD=?EUR ([https](https://www.google.com/ig/calculator?q=1USD=?EUR) result 301). * [ ] http://www.lifl.fr/~dumoulin/tiles with 1 occurrences migrated to: https://www.lifl.fr/~dumoulin/tiles ([https](https://www.lifl.fr/~dumoulin/tiles) result 301). * [ ] http://www.mnot.net/cache_docs with 2 occurrences migrated to: https://www.mnot.net/cache_docs ([https](https://www.mnot.net/cache_docs) result 301). * [ ] http://www.spring.io with 1 occurrences migrated to: https://www.spring.io ([https](https://www.spring.io) result 301). * [ ] http://www.springframework.org with 7 occurrences migrated to: https://www.springframework.org ([https](https://www.springframework.org) result 301). * [ ] http://www.springframework.org/ with 3 occurrences migrated to: https://www.springframework.org/ ([https](https://www.springframework.org/) result 301). * [ ] http://www.springframework.org/webflow with 1 occurrences migrated to: https://www.springframework.org/webflow ([https](https://www.springframework.org/webflow) result 301). * [ ] http://www.springsource.org/news-events with 1 occurrences migrated to: https://www.springsource.org/news-events ([https](https://www.springsource.org/news-events) result 301). * [ ] http://www.springsource.org/spring-framework with 1 occurrences migrated to: https://www.springsource.org/spring-framework ([https](https://www.springsource.org/spring-framework) result 301). * [ ] http://commons.apache.org/codec/ with 1 occurrences migrated to: https://commons.apache.org/codec/ ([https](https://commons.apache.org/codec/) result 302). * [ ] http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html with 4 occurrences migrated to: https://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html ([https](https://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html) result 302). * [ ] http://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html with 1 occurrences migrated to: https://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html ([https](https://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html) result 302). * [ ] http://download.oracle.com/javase/jndi/tutorial/beyond/misc/policy.html with 1 occurrences migrated to: https://download.oracle.com/javase/jndi/tutorial/beyond/misc/policy.html ([https](https://download.oracle.com/javase/jndi/tutorial/beyond/misc/policy.html) result 302). * [ ] http://gafter.blogspot.nl/2006/12/super-type-tokens.html with 1 occurrences migrated to: https://gafter.blogspot.nl/2006/12/super-type-tokens.html ([https](https://gafter.blogspot.nl/2006/12/super-type-tokens.html) result 302). * [ ] http://java.sun.com with 3 occurrences migrated to: https://java.sun.com ([https](https://java.sun.com) result 302). * [ ] http://java.sun.com/docs/books/jls/third_edition/html/conversions.html with 1 occurrences migrated to: https://java.sun.com/docs/books/jls/third_edition/html/conversions.html ([https](https://java.sun.com/docs/books/jls/third_edition/html/conversions.html) result 302). * [ ] http://java.sun.com/docs/books/jls/third_edition/html/expressions.html with 1 occurrences migrated to: https://java.sun.com/docs/books/jls/third_edition/html/expressions.html ([https](https://java.sun.com/docs/books/jls/third_edition/html/expressions.html) result 302). * [ ] http://java.sun.com/j2se/ with 2 occurrences migrated to: https://java.sun.com/j2se/ ([https](https://java.sun.com/j2se/) result 302). * [ ] http://java.sun.com/j2se/1.3/ with 4 occurrences migrated to: https://java.sun.com/j2se/1.3/ ([https](https://java.sun.com/j2se/1.3/) result 302). * [ ] http://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html with 1 occurrences migrated to: https://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html ([https](https://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html) result 302). * [ ] http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html with 1 occurrences migrated to: https://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html ([https](https://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html) result 302). * [ ] http://java.sun.com/j2se/javadoc with 1 occurrences migrated to: https://java.sun.com/j2se/javadoc ([https](https://java.sun.com/j2se/javadoc) result 302). * [ ] http://java.sun.com/j2se/javadoc/ with 1 occurrences migrated to: https://java.sun.com/j2se/javadoc/ ([https](https://java.sun.com/j2se/javadoc/) result 302). * [ ] http://java.sun.com/j2se/javadoc/faq.html with 1 occurrences migrated to: https://java.sun.com/j2se/javadoc/faq.html ([https](https://java.sun.com/j2se/javadoc/faq.html) result 302). * [ ] http://java.sun.com/webservices/jaxb/ with 1 occurrences migrated to: https://java.sun.com/webservices/jaxb/ ([https](https://java.sun.com/webservices/jaxb/) result 302). * [ ] http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd with 1 occurrences migrated to: https://java.sun.com/xml/ns/j2ee/connector_1_5.xsd ([https](https://java.sun.com/xml/ns/j2ee/connector_1_5.xsd) result 302). * [ ] http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd with 2 occurrences migrated to: https://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ([https](https://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd) result 302). * [ ] http://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download with 1 occurrences migrated to: https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download ([https](https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download) result 302). * [ ] http://springsource.com/support/springsupport with 1 occurrences migrated to: https://springsource.com/support/springsupport ([https](https://springsource.com/support/springsupport) result 302). * [ ] http://twitter.com/springframework/team/members with 1 occurrences migrated to: https://twitter.com/springframework/team/members ([https](https://twitter.com/springframework/team/members) result 302). * [ ] http://www.iana.org/assignments/http-status-codes with 1 occurrences migrated to: https://www.iana.org/assignments/http-status-codes ([https](https://www.iana.org/assignments/http-status-codes) result 302). * [ ] http://www.springsource.org/download with 1 occurrences migrated to: https://www.springsource.org/download ([https](https://www.springsource.org/download) result 302). * [ ] http://www.sys-con.com/java with 1 occurrences migrated to: https://www.sys-con.com/java ([https](https://www.sys-con.com/java) result 302). These URLs were intentionally ignored. * http://anotherHost/mvc-showcase/data/param?foo=123 with 1 occurrences * http://apache.org/xml/features/disallow-doctype-decl with 14 occurrences * http://java.sun.com/xml/jaxp/properties/schemaLanguage with 1 occurrences * http://java.sun.com/xml/ns/j2ee with 6 occurrences * http://java.sun.com/xml/stream/properties/report-cdata-event with 1 occurrences * http://jaxws.remoting.springframework.org/ with 4 occurrences * http://localhost with 3 occurrences * http://localhost/contextPath/main/path with 1 occurrences * http://localhost/mvc-showcase with 1 occurrences * http://localhost/mvc-showcase/app with 1 occurrences * http://localhost/mvc-showcase/data/foo%20bar with 1 occurrences * http://localhost/mvc-showcase/data/param with 1 occurrences * http://localhost/mvc-showcase/data/param?foo=123 with 2 occurrences * http://localhost/myapp/main with 1 occurrences * http://localhost/query= with 1 occurrences * http://localhost/query=foo@bar with 1 occurrences * http://localhost:7070/example/adminhandle.vm with 1 occurrences * http://localhost:7070/example/bingo.html with 1 occurrences * http://localhost:8080 with 28 occurrences * http://localhost:8080/ with 3 occurrences * http://localhost:8080/OrderService with 3 occurrences * http://localhost:8080/gamecast/admin/index.html with 1 occurrences * http://localhost:8080/gamecast/display.html with 1 occurrences * http://localhost:8080/gamecast/displayShoppingCart.html with 1 occurrences * http://localhost:8080/test/ with 1 occurrences * http://localhost:8080/test/Jason/logo.jpg with 1 occurrences * http://localhost:8889/hessian with 1 occurrences * http://localhost:9090 with 18 occurrences * http://localhost:9999/ with 1 occurrences * http://localhost:9999/OrderService?wsdl with 4 occurrences * http://localhosta/testbean with 6 occurrences * http://myUrl1 with 6 occurrences * http://myserver with 1 occurrences * http://myurl with 12 occurrences * http://samples.springframework.org/flight with 42 occurrences * http://springframework.org/spring-ws with 17 occurrences * http://tiles.apache.org/tags-tiles with 1 occurrences * http://www.foo.com/schema/component with 2 occurrences * http://www.springframework.org/schema/aop with 10 occurrences * http://www.springframework.org/schema/beans with 100 occurrences * http://www.springframework.org/schema/beans/test with 2 occurrences * http://www.springframework.org/schema/cache with 4 occurrences * http://www.springframework.org/schema/context with 8 occurrences * http://www.springframework.org/schema/jdbc with 6 occurrences * http://www.springframework.org/schema/jee with 10 occurrences * http://www.springframework.org/schema/jms with 8 occurrences * http://www.springframework.org/schema/lang with 11 occurrences * http://www.springframework.org/schema/mvc with 6 occurrences * http://www.springframework.org/schema/oxm with 8 occurrences * http://www.springframework.org/schema/task with 6 occurrences * http://www.springframework.org/schema/tool with 106 occurrences * http://www.springframework.org/schema/tx with 10 occurrences * http://www.springframework.org/schema/util with 12 occurrences * http://www.springframework.org/tags with 1 occurrences * http://www.springframework.org/tags/form with 1 occurrences * http://www.w3.org/1999/XSL/Transform with 7 occurrences * http://www.w3.org/2001/XMLSchema with 64 occurrences * http://www.w3.org/2001/XMLSchema-instance with 12 occurrences * http://www.w3.org/2005/Atom with 2 occurrences * http://www.w3.org/TR/html4/charset.html with 5 occurrences * http://www.w3.org/TR/html4/sgml/entities.html with 8 occurrences * http://www.w3.org/XML/1998/namespace with 10 occurrences * http://xml.org/sax/features/external-general-entities with 14 occurrences * http://xml.org/sax/features/is-standalone with 1 occurrences * http://xml.org/sax/features/namespace-prefixes with 11 occurrences * http://xml.org/sax/features/namespaces with 8 occurrences * http://xml.org/sax/features/namespaces-prefixes with 1 occurrences * http://xml.org/sax/properties/lexical-handler with 9 occurrences Closes gh-22676
1033 lines
42 KiB
HTML
1033 lines
42 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
|
|
<TITLE>JDiff User Documentation</TITLE>
|
|
</HEAD>
|
|
<BODY BGCOLOR="#ffffff">
|
|
<table width="100%">
|
|
<tr>
|
|
<td align="left"><A href="https://sourceforge.net/projects/javadiff/">
|
|
<IMG src="http://javadiff.cvs.sourceforge.net/*checkout*/javadiff/jdiff/lib/jdiff_logo.gif"
|
|
width="88" height="31" border="0" alt="JDiff Logo"></A></td>
|
|
<td align="right"><A href="https://sourceforge.net"> <IMG src="https://sourceforge.net/sflogo.php?group_id=37160" width="88" height="31" border="0" alt="SourceForge Logo"></A></td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<center>
|
|
<H1>JDiff User Documentation</H1><br>
|
|
</center>
|
|
|
|
<BLOCKQUOTE>
|
|
<b>JDiff</b> is a Javadoc <a
|
|
href="https://java.sun.com/j2se/javadoc">doclet</a> which generates an
|
|
HTML report of all the packages, classes, constructors, methods, and
|
|
fields which have been removed, added or changed in any way, including
|
|
their documentation, when two APIs are compared. This is very useful
|
|
for describing exactly what has changed between two releases of a
|
|
product. Only the API (Application Programming Interface) of each
|
|
version is compared. It does not compare what the source code does
|
|
when executed.
|
|
</BLOCKQUOTE>
|
|
|
|
<HR>
|
|
<H2>CONTENTS</H2>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#overview"><B>Overview</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#installation"><B>Installation</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#synopsis"><B>Synopsis</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#output"><B>Output</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#addingcomments"><B>Adding
|
|
Comments to a Report</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#troubleshooting"><B>Troubleshooting</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#errorswarnings"><B>Errors
|
|
and Warning Messages</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#differencestatistics"><B>Difference Statistics</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#limitations"><B>Limitations</B></A></P></LI>
|
|
<LI><P STYLE="margin-bottom: 0cm"><A HREF="#furtherreading"><B>Further Reading</B></A></P></LI>
|
|
</UL>
|
|
<HR>
|
|
|
|
<A NAME="overview"></A>
|
|
<H2>OVERVIEW</H2>
|
|
|
|
<BLOCKQUOTE>
|
|
The basic sequence of operations is to run JDiff on one set of source
|
|
files to create an XML file which represents the API for that version
|
|
of a product. Then JDiff is run again on another set of source files
|
|
to create an XML file which represents the API for the next version of
|
|
a product. Finally, JDiff compares the two APIs as represented in the
|
|
XML files and generates an HTML report which describes the differences
|
|
between the two APIs, together with comments describing the reasons
|
|
for the differences. This whole process can be executed as separate
|
|
Javadoc steps (either from Ant or the command line) or by simply using
|
|
the Ant JDiff task provided.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
The results are written into a file called <code>changes.html</code>,
|
|
with more files in a subdirectory called <code>changes</code>. These
|
|
files can contain links to existing Javadoc documentation. A CSS
|
|
stylesheet is also generated in the file
|
|
<code>stylesheet-jdiff.css</code>, and this uses a background image in
|
|
<code>background.gif</code>. <i>These are the only files which usually
|
|
need to be shipped with a product to include a report of what has
|
|
changed since the previous release</i>. If the <code>-stats</code>
|
|
option was used, then the file <code>black.gif</code> should also be
|
|
shipped.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
There is a working example of how to use JDiff in the <code>examples</code>
|
|
directory of the source distribution.
|
|
</BLOCKQUOTE>
|
|
|
|
<hr>
|
|
|
|
<A NAME="installation"></A>
|
|
<H2>INSTALLATION</H2>
|
|
|
|
<BLOCKQUOTE>
|
|
Unpack the jdiff-1.1.1.zip file. This will produce a directory named
|
|
"jdiff-1.1.1" containing all that is necessary to use JDiff to produce
|
|
your own reports. See the file "example.xml" in that directory for an
|
|
example of how to use the Ant JDiff task. The file "jdiff.html"
|
|
contains more information about using JDiff.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
If you are using the complete source distribution, then you should be
|
|
able to simply type "ant" at the top-level to produce a working
|
|
example report.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
The Ant JDiff task needs Ant 1.6.1 to work correctly. Using Ant
|
|
1.5 will produce the error:
|
|
<pre>
|
|
Error: two projects are needed, one <old> and one <new>
|
|
</pre>
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
No Windows registry entries are changed by JDiff. To remove JDiff,
|
|
simply delete the directory where it is was unpacked.
|
|
</BLOCKQUOTE>
|
|
|
|
<hr>
|
|
|
|
<H2><A NAME="synopsis"></A>SYNOPSIS</H2>
|
|
|
|
<BLOCKQUOTE>
|
|
The Ant JDiff task has the following parameters:
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
<table border="1" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td><b>Attribute</b></td>
|
|
<td><b>Description</b></td>
|
|
<td align="center"><b>Required</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>destdir</td>
|
|
<td>The location where the JDiff report will be generated. Defaults to a directory "jdiff_report" in the directory from where Ant was executed.</td>
|
|
<td align="center">No</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>stats</td>
|
|
<td>Generate an HTML page of statistical information about the
|
|
differences between the two APIs. Defaults to "off".</td>
|
|
<td align="center">No</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>docchanges</td>
|
|
<td>Enables comparison of Javadoc documentation. Defaults to "off".</td>
|
|
<td align="center">No</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>verbose</td>
|
|
<td>Increase the logging vebosity of the task. Defaults to "off".</td>
|
|
<td align="center">No</td>
|
|
</tr>
|
|
</table>
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
<b>Parameters specified as nested elements</b>
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
The <code>old</code> and <code>new</code> elements are used to describe the projects to be compared.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
<table border="1" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<td><b>Attribute</b></td>
|
|
<td><b>Description</b></td>
|
|
<td align="center"><b>Required</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>name</td>
|
|
<td>The name of the project, e.g. "My Project Version 1". The name, with spaces replaced by underscores, is used as the name of the XML file in <code>destdir</code>,
|
|
which is generated by JDiff to represent the structure of the source files of this project.</td>
|
|
<td align="center">Yes</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>javadoc</td>
|
|
<td>The location of a Javadoc report for this project. If this attribute is not used, then a Javadoc report for the project will be generated in a subdirectory named <code>name</code> in <code>destdir</code>.</td>
|
|
<td align="center">No</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
Note: the <code>old</code> and <code>new</code> elements only have <code>DirSet</code> nested elements, not <code>FileSet</code> ones.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
The complete list parameters that can be passed to the JDiff doclet,
|
|
either through the Ant Javadoc task or directly at the command line,
|
|
is as follows:
|
|
</BLOCKQUOTE>
|
|
|
|
<PRE STYLE="margin-left: 1cm; margin-right: 1cm; margin-bottom:0.5cm">
|
|
javadoc -doclet <b>jdiff.JDiff</b> -docletpath jdiff.jar
|
|
[-apiname <<i>API name</i>>]
|
|
[-apidir <<i>optional directory where the API XML file is to be placed</i>>]
|
|
[-oldapi <<i>name of old API</i>>]
|
|
[-oldapidir <<i>optional directory where the old API XML file is located</i>>]
|
|
[-newapi <<i>name of new API</i>>]
|
|
[-newapidir <<i>optional directory where the new API XML file is located</i>>]
|
|
[-sourcepath <<i>source path</i>>]
|
|
[-javadocnew <<i>javadoc files location for the new API</i>>]
|
|
[-javadocold <<i>javadoc files location for the old API</i>>]
|
|
[-baseURI <<i>base</i>>]
|
|
[-excludeclass <<i>exclusion level</i>>]
|
|
[-excludemember <<i>exclusion level</i>>]
|
|
[-nosuggest <<i>suggestion level</i>>]
|
|
[-firstsentence]
|
|
[-docchanges]
|
|
[-checkcomments]
|
|
[-packagesonly]
|
|
[-showallchanges]
|
|
[-retainnonprinting]
|
|
[-excludetag <<i>exclude tag</i>>]
|
|
[-stats]
|
|
[-windowtitle <<i>text</i>>]
|
|
[-doctitle <<i>HTML text</i>>]
|
|
[-version]
|
|
[-help]
|
|
</PRE>
|
|
|
|
<BLOCKQUOTE>
|
|
NOTE: Either <code>-apiname</code>, or both <code>-oldapi</code> and
|
|
<code>-newapi</code> must be used. All other arguments are optional.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
The <code>-d directory</code> argument works just as with Javadoc, redirecting
|
|
the HTML output to the given directory.
|
|
</BLOCKQUOTE>
|
|
|
|
<P STYLE="margin-left: 1cm; margin-bottom: 0cm">The arguments for the JDiff doclet are:</P>
|
|
<DL>
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-apiname</code> <<i>API name</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Define the name which will be associated
|
|
with the specified API. If the name which is given here has space
|
|
characters, they will be
|
|
replaced by underscore characters. This name with no spaces is used as the name of the XML
|
|
file. It is also written into the XML file as an attribute of the top
|
|
element.
|
|
E.g. "SuperProduct 1.0" generates an XML file named
|
|
"SuperProduct_1.0.xml".
|
|
The XML file is always generated in the current directory, unless
|
|
overridden by the <code>-apidir</code> argument.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-oldapi</code> <<i>name of old API</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
The name of the old or previous version of an
|
|
API or product, e.g. "SuperProduct 1.0", which is to be one of the
|
|
APIs compared.
|
|
This name is the name which was given to <code>-apiname</code> when
|
|
the XML file was generated.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-newapi</code> <<i>name of old API</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
The name of the new or later version of an
|
|
API or product, e.g. "SuperProduct 2.0", which is to be one of the
|
|
APIs compared.
|
|
This name is the name which was given to <code>-apiname</code> when
|
|
the XML file was generated.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-apidir</code> <<i>API directory</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Defines the directory where the API XML file is to be placed. Used in
|
|
conjunction with the <code>-apiname</code> argument.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-oldapidir</code> <<i>old API directory</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Defines the directory where the XML file for the old API is located.
|
|
Used in conjunction with the <code>-oldapi</code> argument. Default is the current
|
|
directory.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-newapidir</code> <<i>new API directory</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Defines the directory where the XML file for the new API is located.
|
|
Used in conjunction with the <code>-newapi</code> argument. Default is the current
|
|
directory.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-sourcepath</code> <<i>source path</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Define the path to the set of Java source
|
|
files (the API)
|
|
to be scanned, e.g. <code>examples/SuperProduct1.0</code>. The
|
|
slashes in this argument should match the local architecture.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-javadocnew</code> <<i>javadoc files location for the new API</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
The location of existing Javadoc files
|
|
for the new API, e.g. "https://java.sun.com/j2se/<b>1.5.0</b>/docs/api/" for the
|
|
public documentation for J2SE1.5.0. The default value is "../", which implies
|
|
that the documentation directory generated by Javadoc is at the same level as
|
|
the "changes.html" file generated by JDiff. Slashes are always
|
|
forward in the argument, since this is an HTML link. <b>The argument
|
|
should also always end in a forward slash.</b> If a relative value is
|
|
given, it should be relative to files in the "changes" directory
|
|
generated by JDiff.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-javadocold</code> <<i>javadoc files location for the old API</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm"> The location of existing
|
|
Javadoc files for the old API, e.g. "https://java.sun.com/j2se/<b>1.5.0</b>/docs/API/"
|
|
for the public documentation for J2SE1.5.0. The default value is null, which
|
|
results in no links to Javadoc-generated documentation for the previous
|
|
release. Slashes are always forward in the argument, since this is an HTML
|
|
link. <b>The argument should also always end in a forward slash.</b> If a relative
|
|
value is given, it should be relative to files in the "changes" directory
|
|
generated by JDiff.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<A NAME="baseURIoption"></A>
|
|
<code>-baseURI</code> <<i>base</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Use \"base\" as the base location of the various DTDs used by
|
|
JDiff. For example, <code>-baseURI "file:///C:/jdiff/lib"</code> would cause
|
|
the XML parser to use the copies which are shipped in the
|
|
<code>lib</code> directory, if JDiff is installed in
|
|
<code>C:\jdiff</code>. Note that there are <i>three</i> forward slashes
|
|
after "file:".
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-excludeclass</code> <<i>exclusion level</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
This can be set to "public",
|
|
"protected", "package", or "private". If it is set to "protected", only
|
|
classes which are public or protected will be shown. If it is set to
|
|
"public", then only public classes are shown. The default is
|
|
"protected". If this is changed, the Javadoc <code>-private</code>
|
|
argument must also be passed to Javadoc.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-excludemember</code> <<i>exclusion level</i>></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
This can be set to "public",
|
|
"protected", "package", or "private". If it is set to "protected", only
|
|
members (constructors, methods and fields) which are public or protected will be shown. If it is set to
|
|
"public", then only public members are shown. The default is
|
|
"protected".
|
|
If this is changed, the Javadoc <code>-private</code>
|
|
argument must also be passed to Javadoc.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-firstsentence</code></dt>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
This argument causes JDiff to save only the first sentence of each
|
|
Javadoc comment as part of
|
|
the API. This is only necessary when the XML file representing the
|
|
API is being generated. See <code>-docchanges</code> for how to
|
|
note documentation changes as differences.<br>
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-docchanges</code></dt>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
This argument enables comparison of Javadoc documentation.
|
|
By default, changes in the saved Javadoc documentation
|
|
are not noted as changes (or as removals and related
|
|
additions). See <code>-firstsentence</code> option for how to compare just
|
|
the first sentence in Javadoc documentation.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-nosuggest</code> <<i>suggestion level</i>></dt>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
This can be set to "all", "remove", "add",
|
|
or "change". The effect of setting this to "all" is to stop comments
|
|
for any changes at all being suggested. Any comments which are to
|
|
appear in the report must then be written by the user (see <a href="#addingcomments">below</a>).
|
|
If it is set to "change", then
|
|
comments will not be suggested for changes, but will be suggested for
|
|
removals and additions. The default is that comments are suggested for
|
|
all possible places.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-checkcomments</code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
If this argument is used, JDiff
|
|
will warn the user when the report is generated if there are comments
|
|
which do not end in a period, question mark or exclamation mark.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-packagesonly</code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
If this argument is used, JDiff
|
|
will not scan classes specified on the command line. This should
|
|
only need to be used with the "jdiffjar" script, when
|
|
comparing Jar files.
|
|
If this options is not used when comparing Jar files, duplicate
|
|
classes with no packages ("anonymous" classes) may be
|
|
wrongly reported by JDiff.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-showallchanges</code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
If this argument is used, JDiff will show changes in
|
|
native and synchronized modifiers. See <a href="https://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html#generatedapideclarations">here</a> for why these are not shown by default.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-retainnonprinting</code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Retain non-printable characters
|
|
in comments. By default, JDiff removes non-printable characters
|
|
from comments which it uses.
|
|
This should only really be necessary if the first line of a
|
|
comment has used explicit Unicode character escape sequences which
|
|
cannot be printed, or more importantly for JDiff, read in from XML.
|
|
If this option is used, JDiff may fail to read in an XML
|
|
file, and exit with an error message about "an invalid XML character (Unicode:
|
|
0x....)" on a certain line in the file. Turning off this option does
|
|
make creating large XML files a little faster.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-excludetag <<i>exclude tag</i>></code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
The argument passed in with this causes
|
|
JDiff to ignore program elements (packages, classes, constructors,
|
|
methods, fields) which contain the given exclude tag in their comment blocks,
|
|
e.g. " @exclude", " @docset Internal". The extra space in front of "@" is
|
|
to stop Javadoc from expanding the name into a file containing commands on
|
|
the compile line. White space is trimmed off before the string is used.
|
|
|
|
Another solution to passing "@" as part of an argument is to pass @foo,
|
|
and then create a file named <code>foo</code>, containing
|
|
<code>-excludetag @exclude</code>.
|
|
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-stats</code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Generate an HTML page of statistical information about the
|
|
differences between the two APIs.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-windowtitle <<i>text</i>></code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Specify the title used in the browser window for the report.
|
|
By default, this is
|
|
"API Differences Between <name of old API> and
|
|
<name of new API>".
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-doctitle <<i>HTML text</i>></code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Specify the title used on the first page of the report.
|
|
By default, this is
|
|
"API Differences Between <name of old API> and
|
|
<name of new API>".
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-version</code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Display the version of JDiff.
|
|
</DD>
|
|
|
|
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
<code>-help</code></DT>
|
|
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
|
|
Display the usage summary for JDiff.
|
|
</DD>
|
|
</DL>
|
|
|
|
<hr>
|
|
|
|
<H2><A NAME="output"></A>OUTPUT</H2>
|
|
|
|
<BLOCKQUOTE>
|
|
<ul>
|
|
<li>Interfaces appear in <i>italics</i>, just as in Javadoc documentation.</li>
|
|
<li>When a package or class appears in <b>bold</b>, it has been added in
|
|
the new version or API.</li>
|
|
<li>When a package or class appears <strike>struck through</strike>, it has been removed in
|
|
the new version or API.</li>
|
|
<li>When a constructor is added, two entries are added to the "All
|
|
Differences" index: one for the addition of a new constructor, and
|
|
one for the change of the class. The constructor entry has
|
|
"constructor" after it.</li>
|
|
<li>There are some complex changes which can occur between versions, for example, when two or more methods with the same name change simultaneously, or when a method or field is moved into or from a superclass.
|
|
In these cases, the change will be seen as a removal and an addition, rather than as a change. Unexpected removals or additions are often part of one of these type of changes.</li>
|
|
<li>With large packages, it is often necessary to change the memory parameters for
|
|
Javadoc, e.g. pass in <code>-J-Xmx128m</code> to Javadoc.</li>
|
|
<li>The <code>api.xsd</code> template describes the format of the XML
|
|
for the APIs, and the <code>comments.xsd</code> template describes the format
|
|
of the XML for the comments. The API template is independent of any
|
|
related work at Sun, but the intention is to adopt whatever becomes
|
|
the <i>de facto</i> standard in the future, whilst retaining backward
|
|
compatibility. To enable validation, set the boolean <code>validateXML</code> in
|
|
the file <code>XMLToAPI.java</code> and recompile.</li>
|
|
<li>Comments in the comments XML file do get reordered during
|
|
regeneration. This is harmless.</li>
|
|
</ul>
|
|
</BLOCKQUOTE>
|
|
|
|
<hr>
|
|
|
|
<H2><A NAME="addingcomments"></A>ADDING COMMENTS TO A REPORT</H2>
|
|
|
|
<BLOCKQUOTE>
|
|
Comments can be added to a report by using a text editor to add text
|
|
to the "user_comments_X_to_Y.xml" file, where "X" and "Y" are the
|
|
names of the two APIs being compared. This file is automatically regenerated
|
|
each time the report is generated.
|
|
If the <code>-d directory</code> argument is used, the user comments XML
|
|
file also appears, and is expected, in the named directory.
|
|
|
|
<p>Comments which become unused are
|
|
moved to the end of the file and placed inside XML comments.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE> The text which is added can be HTML text if necessary, but if the
|
|
HTML is incorrect, JDiff may fail to read the comments file and exit. Note that
|
|
the required HTML is in fact <a href="https://www.w3.org/TR/xhtml1/diffs.html">XHTML</a>. Since this HTML is stored in an XML document, single tags without their closing ("slash") element are not permitted.
|
|
For example, most browsers permit HTML which looks like "<p>Here is some
|
|
text.", with no closing tag. XML requires that either a closing tag exists ("</p>"),
|
|
or that the single tag is closed, e.g. "<p/>Here is some text.".
|
|
HTML p, br and hr tags can be single, due to common usage.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
To write comments for a particular removal, addition or change in the
|
|
JDiff-generated report, edit the comments XML file. Your changes will
|
|
be automatically incorporated into a new version of this file when the
|
|
report is next generated. Search the file for the identifier for the
|
|
particular removal, addition or change, using the package name, class
|
|
name and member name to find the identifier. Alternatively, look at
|
|
the HTML source of a report and note the identifier (an HTML named anchor)
|
|
near the intended place for the comment.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
Adding links to comments can be accomplished in two ways: with the {@link} Javadoc tag, or by using HTML links directly.
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
To link to a class, use the package and class name, e.g. <nobr>{@link
|
|
packagename.classname}.</nobr>
|
|
</li>
|
|
|
|
<li>
|
|
To link to a specific method in a class' HTML page, use the package,
|
|
class name, a pound sign, and then the method and parameters, or ()
|
|
e.g. <nobr>{@link packagename.classname#methodname(params)}.</nobr>
|
|
</li>
|
|
|
|
<li>
|
|
To link to a specific constructor in a class' HTML page, use the package,
|
|
class name, a pound sign, and then the classname and parameters, or ()
|
|
e.g. <nobr>{@link packagename.classname#classname(params)}.</nobr>
|
|
</li>
|
|
|
|
<li>
|
|
To link to a specific field in a class' HTML page, use the package,
|
|
class name, a pound sign, and then the name of the field
|
|
e.g. <nobr>{@link packagename.classname#fieldname}.</nobr>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
Alternatively, you can use an explicit HTML
|
|
<a> element. e.g.
|
|
<nobr><a href="packagename.classname.html#methodname">link text<a></nobr>.
|
|
The specific HTML named anchor can be found by looking at the HTML
|
|
source of a report.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
Sometimes you may want to have the same comment text appear in
|
|
multiple places in the report. You can do this by having multiple
|
|
<identifier> elements in a single <comment> element. This
|
|
grouping does not persist after the comments file is regenerated.
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
The first sentence from a comment in the source code for an element is
|
|
available in the comments XML file by using the @first tag. This tag
|
|
will be replaced (once) in the comments in the report by the first
|
|
sentence from the appropriate Javadoc comment.
|
|
</BLOCKQUOTE>
|
|
|
|
<br><hr><br>
|
|
|
|
<H2><A NAME="troubleshooting"></A>TROUBLESHOOTING</H2>
|
|
<BLOCKQUOTE>
|
|
<TABLE border="1" width="80%">
|
|
<TR>
|
|
<TD VALIGN="top" align="center"><b>PROBLEM</b></TD>
|
|
<TD VALIGN="top" align="center"><b>POSSIBLE SOLUTION</b></TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top"><pre>Error: two projects are needed, one
|
|
<old> and one <new></pre></TD>
|
|
<TD VALIGN="top">The Ant JDiff task needs Ant 1.6.1 to work correctly</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">You are not connected to the Internet, or are behind a firewall</TD>
|
|
<TD VALIGN="top">See the <a href="#baseURIoption">documentation</a> for how to use
|
|
the <code>-baseURI</code>
|
|
optionThis only applies to generating JDiff output,
|
|
not to viewing it.</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">No changes are seen in the report.</TD>
|
|
<TD VALIGN="top">By default, Javadoc and JDiff only show public
|
|
and protected classes and members.</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">No changes seen for package and private classes.</TD>
|
|
<TD VALIGN="top">Enable both the correct Javadoc visibility level
|
|
(-public, -protected, -package, -private) and the correct JDiff
|
|
visibility level (-excludeclass, -excludemember).</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">No comments were inserted for packages.</TD>
|
|
<TD VALIGN="top">You need to use the <code>-sourcepath</code> argument to
|
|
locate the source code files, so that
|
|
JDiff can deduce where the <code>package.html</code> file with
|
|
comments about the package may be. If no <code>package.html</code>
|
|
file exists or can be found, then no comments can be suggested
|
|
for packages. Of course, comments can still be
|
|
<a href="#addingcomments">added by hand</a>.</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">JDiff takes a long time to load XML, or throws
|
|
<code>java.net.NoRouteToHostException: Operation timed out</code>.</TD>
|
|
<TD VALIGN="top">The validation portion of loading the XML file
|
|
currently requires the ability to make an HTTP connection. Check
|
|
your network and try again, or see the <code>-baseURI</code>
|
|
option and the next suggestion.</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">From behind a firewall,
|
|
<A NAME="troubleshootingFirewall"></A>
|
|
JDiff fails to load one of the required XML DTD files.</TD>
|
|
<TD VALIGN="top">Use the following settings to tell the Java2 VM
|
|
that you are behind a firewall:<br>
|
|
<code><nobr>java -DproxySet=true -DproxyHost=PROXYSERVER</nobr><nobr> -DproxyPort=PORT</nobr></code><br>
|
|
where <code>PROXYSERVER</code> is the hostname or IP address of
|
|
your proxy server, and <code>PORT</code> is the port number of the
|
|
proxy server.<br><br>
|
|
The other alternative is to use the local copies of the required
|
|
files by using the option <code>-baseURI</code> when generating the API XML
|
|
files. For example, <code>-baseURI "file:///C:/jdiff/lib"</code> would cause
|
|
the XML parser to use the copies which are shipped in the
|
|
<code>lib</code> directory, if JDiff is installed in
|
|
<code>C:\jdiff</code>. Note that there are <i>three</i> forward slashes
|
|
after "file:".
|
|
The <code>-baseURI</code> approach has the advantage that it
|
|
requires <i>no</i> connectivity to the Internet to be able to run JDiff.
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">JDiff fails to handle <code>assert</code> in J2SE1.4</TD>
|
|
<TD VALIGN="top">Be sure to use the <code>-source 1.4</code> argument to
|
|
Javadoc to handle assertions present in J2SE1.4 source code.
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">Using an XML parser other than Xerces</TD>
|
|
<TD VALIGN="top">Set the <code>org.xml.sax.driver</code> system property to
|
|
the name of the XML parser class which you wish to use. Setting a system
|
|
property is usually done by passing <nobr><code>-Dname=value</code></nobr> to the JVM.
|
|
To cause Javadoc to pass an argument to the underlying JVM, use
|
|
<code>-J-Dname=value</code>. To pass an argument to Javadoc from within
|
|
an ANT Javadoc task, use the <code>additionalparam</code> attribute, e.g.
|
|
<nobr><code>additionalparam="-J-Dorg.xml.sax.driver=com.example.my.driver"</code><nobr>
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">Comparing Jar files results in duplicate class
|
|
changes being reported.</TD>
|
|
<TD VALIGN="top">Be sure to use the <code>-packagesonly</code>
|
|
option when using Jar files as the input to JDiff. You should not
|
|
need to use <code>-packagesonly</code> otherwise.
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">Documentation difference page becomes all changes
|
|
part way through.</TD>
|
|
<TD VALIGN="top">This problem can occur if incorrect HTML is
|
|
written in the new documentation. JDiff shows this HTML on the
|
|
documentation difference page, and can cause entries later on in
|
|
the page to be displayed incorrectly.
|
|
|
|
<p>One solution is to edit the documentation difference page by
|
|
hand, but the better solution is to fix the offending HTML in the
|
|
new source code.
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">The background color of my HTML report is not correct.</TD>
|
|
<TD VALIGN="top">Check that the file <code>background.gif</code> from the <code>lib</code> is in the same directory as the <code>changes.html</code> file.
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="top">The names of exceptions are too long in the HTML report.</TD>
|
|
<TD VALIGN="top">To use short names for exceptions, set the
|
|
<code>showExceptionTypes</code> boolean to <code>false</code> in
|
|
<code>XMLToAPI.java</code> file and recompile.
|
|
</TD>
|
|
</TR>
|
|
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
|
|
<hr>
|
|
|
|
<H2><A NAME="errorswarnings"></A>ERRORS AND WARNING MESSAGES</H2>
|
|
|
|
<BLOCKQUOTE>
|
|
The warnings and error messages which can be generated by JDiff are as
|
|
follows:
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
<TABLE border="1">
|
|
<TR>
|
|
<TD VALIGN="top" align="center" width="25%"><b>ERROR MESSAGE</b></TD>
|
|
<TD VALIGN="top" align="center"><b>POSSIBLE CAUSE</b></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Error: unknown element type.</TD>
|
|
<TD VALIGN="top">The XML file contains an element tag which the
|
|
current version of JDiff cannot recognize. This may occur if an
|
|
older version of JDiff is used with XML files generated by a newer
|
|
version.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Error: IO Error while attempting to create <i>X</i>.</TD>
|
|
<TD VALIGN="top">Java was unable to open a file for writing. May
|
|
occur if the user does not have write permission for the current
|
|
directory.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Error: no identifier found in the comments XML file.</TD>
|
|
<TD VALIGN="top">The XML file for the comments for the report must
|
|
contain an identifier to indicate which report of differing APIs
|
|
these comments are written for.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Error: unknown program element type.</TD>
|
|
<TD VALIGN="top">Internal JDiff error.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Error: could not create the subdirectory <i>X</i>.</TD>
|
|
<TD VALIGN="top">Java was unable to create a directory. May
|
|
occur if the user does not have write or execute permission for the current
|
|
directory.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Error: file <i>X</i> does not exist for the [old|new] API.</TD>
|
|
<TD VALIGN="top">The XML files corresponding to the names given to
|
|
<code>-oldapi</code> and <code>-newapi</code> are not in the
|
|
current directory. This may be because the XML files have not yet been
|
|
generated, or were generated elsewhere.<br>
|
|
It can also occur if the
|
|
XML file was generated with one API identifier, and is now being
|
|
read in with another identifier. Either use the same identifier,
|
|
or change the <api> name element value in the XML file to the new
|
|
API identifier.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Error: no API identifier found in the XML file <i>X</i>.</TD>
|
|
<TD VALIGN="top">The given XML file does not have an identifier in
|
|
it, probably due to manual modification.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Error: no packages found in the APIs.</TD>
|
|
<TD VALIGN="top">JDiff was unable to find any packages in the
|
|
arguments given to Javadoc.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE>
|
|
<TABLE border="1">
|
|
<TR>
|
|
<TD VALIGN="top" align="center" width="25%"><b>WARNING MESSAGE</b></TD>
|
|
<TD VALIGN="top" align="center"><b>POSSIBLE CAUSE</b></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: illegal string found in text. Ignoring the comment.</TD>
|
|
<TD VALIGN="top">The suggested comments from Javadoc are stored in
|
|
XML files in a CDATA element, which permits every string except .</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: no difference between the APIs.</TD>
|
|
<TD VALIGN="top">There was no difference between the APIs. You are
|
|
probably comparing two identical XML files.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: no classes found in the package <i>X</i>.</TD>
|
|
<TD VALIGN="top">A package without classes was encountered.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: change from deprecated to undeprecated for class <i>X</i>.</TD>
|
|
<TD VALIGN="top">A class changed from being deprecated to being
|
|
undeprecated in the next release. This is usually either poor
|
|
software design or a misplaced @deprecated Javadoc tag.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: change from deprecated to undeprecated
|
|
for a constructor in class <i>X</i>.</TD>
|
|
<TD VALIGN="top">A constructor changed from being deprecated to being
|
|
undeprecated in the next release. This is usually either poor
|
|
software design or a misplaced @deprecated Javadoc tag.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: change from deprecated to undeprecated for method <i>X</i>.</TD>
|
|
<TD VALIGN="top">A method changed from being deprecated to being
|
|
undeprecated in the next release. This is usually either poor
|
|
software design or a misplaced @deprecated Javadoc tag.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: text of comment does not end in a period.</TD>
|
|
<TD VALIGN="top">Generated when the <code>-checkcomments</code> is
|
|
used. The suggested comment does not end in a period, question mark or exclamation mark.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: <i>N</i> identical ids in the existing comments file. Using the first instance.</TD>
|
|
<TD VALIGN="top">The comments file contains comment for multiple
|
|
places in the report, but <i>N</i> of the identifiers for the comment
|
|
are non-unique.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: incorrectly formatted @link in text.</TD>
|
|
<TD VALIGN="top">JDiff was unable to parse the @link in the
|
|
suggested comment.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: comment <i>com.acme.sp</i> is no longer used.</TD>
|
|
<TD VALIGN="top">The comment in the comments file intended for the
|
|
given element is no longer needed, since the element is no longer
|
|
part of the changes between the APIs. The comment will be moved to
|
|
the end of the comments file and preserved, but not used.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: API identifier in the comments XML file differs from the name of the file.</TD>
|
|
<TD VALIGN="top">The comments file keeps track of which APIs it is
|
|
to be used for, and has detected a mismatch with the names of the
|
|
current APIs.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: multiple @deprecated tags found in comments for <i>X</i>. Using the first one only.</TD>
|
|
<TD VALIGN="top">A comment with more than one @deprecated tag was
|
|
encountered in the source code. This is considered poor Javadoc style.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: @ tag seen in comment.</TD>
|
|
<TD VALIGN="top">An @ tag other than @link has somehow made its
|
|
way into a suggested comment. This should not occur, but can be
|
|
remedied by editing the comments file to use a different comment.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: duplicate class : <i>X</i> found. Using the first instance only.</TD>
|
|
<TD VALIGN="top">Multiple instances of the same fully qualified
|
|
class name were found in the API XML file. Most likely caused by
|
|
manual modification of the file after it was generated.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: missing @since tag</TD>
|
|
<TD VALIGN="top">A class, constructor, method or field was added
|
|
in the later API but no @since tag was found in the Javadoc
|
|
comment. This information is logged into a file
|
|
<code>missingSinces.txt</code> in the same directory as
|
|
<code>changes.html</code>. This file is informational only. The
|
|
boolean to control this behaviour is in the source file
|
|
<code>HTMLIndexes.java</code>.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top">Warning: API identifier in the XML file <i>X</i> differs from the name of the file <i>Y</i>.</TD>
|
|
<TD VALIGN="top">The name given to <code>-apiname</code> when the XML file
|
|
is generated is embedded in the XML file as a top-level attribute. This
|
|
warning suggests that the XML file has been modified by hand, but that
|
|
report generation should proceed using the new API identifier.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</BLOCKQUOTE>
|
|
|
|
<hr>
|
|
|
|
<H2><A NAME="differencestatistics"></A>DIFFERENCE STATISTICS</H2>
|
|
<BLOCKQUOTE>
|
|
During the generation of a report, JDiff also reports a percentage
|
|
difference between the two APIs being compared, e.g. "Approximately
|
|
10% difference between the APIs". This statistic is calculated in the
|
|
following way:
|
|
|
|
<pre>
|
|
Percentage change = 100 * (added + removed + 2*changed)
|
|
-----------------------------------
|
|
sum of public elements in BOTH APIs
|
|
</pre>
|
|
|
|
So if there are 15 packages in the old API, and 2 of these are removed,
|
|
and 17 packages in the new API, 1 of which is newly added, and only 3
|
|
of which have changed, then the simple percentage difference would be:
|
|
|
|
<pre>
|
|
100 * (1 + 2 + 2*3)/ (15 + 17) = 28%
|
|
</pre>
|
|
|
|
A change of 100% means that there are no packages in common between
|
|
the two APIs. A change of 0% indicates that nothing changed between
|
|
the two APIs. This formula is applied recursively in JDiff for classes
|
|
and their members. That is, the value for the number of packages
|
|
changed is not an integer, but instead is the value obtained by
|
|
applying the same formula to the all the classes in the changed
|
|
packages, and then to all the members of the changed classes.
|
|
This results in a lower, but more accurate, percentage difference.
|
|
The percentage difference value does not appear anywhere in the HTML
|
|
report files generated by JDiff.
|
|
The test suite for JDiff v1.0 had a difference value of approximately 63%.
|
|
A real-world value is the value for the differences between J2SE1.2 and
|
|
J2SE1.3, which is approximately 8%.
|
|
</BLOCKQUOTE>
|
|
|
|
<hr>
|
|
|
|
<H2><A NAME="limitations"></A>LIMITATIONS</H2>
|
|
<BLOCKQUOTE>
|
|
<ol>
|
|
<li>While Java is highly backward compatible, so that, for example,
|
|
the XML for a
|
|
J2SE1.2 application can be generated using JDiff with J2SE1.3, there
|
|
are a few cases where classes will appear in the XML of the API which are
|
|
not present in the source code. These classes appear to be inserted by
|
|
<code>javac</code> or <code>javadoc</code>. An example of this is the class
|
|
<code>java.awt.Robot</code>, which is inserted into the XML for
|
|
J2SE1.2 if <code>javadoc</code> in J2SE1.3 is used, but not does not appear in
|
|
the XML if <code>javadoc</code> in J2SE1.2 is used.<br>
|
|
To avoid these (rare) cases, it is recommended that you <i>use the same version
|
|
of the J2SE that the application was written for</i>.</li>
|
|
<li>JDiff does not tell you how two Javadoc web pages differ in layout, though
|
|
it can tell you how the content has changed.
|
|
Nor does it
|
|
compare what the methods in an API do; if JDiff could tell you what had changed about the way two
|
|
versions of an API execute, the <a
|
|
href="https://en.wikipedia.org/wiki/Halting_Problem">Halting
|
|
Problem</a> would be solved, and our lives would be very different.</li>
|
|
<li>On a P3 450MHz machine, to scan all of the J2SE <code>Java</code>
|
|
and <code>javax</code> packages and generate XML takes about 2 minutes
|
|
per version. To generate a report from the XML files takes about 30s</li>
|
|
</ol>
|
|
</BLOCKQUOTE>
|
|
|
|
<hr>
|
|
|
|
<H2><A NAME="furtherreading"></A>FURTHER READING</H2>
|
|
|
|
<BLOCKQUOTE>
|
|
<UL>
|
|
<LI><A HREF="https://www.sys-con.com/java">Java Developer's Journal
|
|
</A>, April 2002 contained an article about JDiff. The article
|
|
can also be <a
|
|
href="http://javadiff.cvs.sourceforge.net/*checkout*/javadiff/jdiff/doc/JDiffArticle.pdf">found
|
|
here</a>.</LI>
|
|
<LI><A HREF="https://java.sun.com/j2se/javadoc/">Javadoc</A> and Doclet
|
|
documentation from Sun.</LI>
|
|
<LI><A HREF="https://java.sun.com/j2se/javadoc/faq.html#doclets">Third-party
|
|
doclets</a> as listed by Sun.</LI>
|
|
<LI><A HREF="http://www.doclet.com">Third-party doclets</a> as listed by others.</LI>
|
|
</UL>
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
<hr>
|
|
<center>
|
|
This software comes with absolutely NO WARRANTY. See the LGPL in the file <a href="http://javadiff.cvs.sourceforge.net/*checkout*/javadiff/jdiff/LICENSE.txt">LICENSE.txt</a> for
|
|
details.
|
|
</center>
|
|
|
|
<p align="center">
|
|
<font size="-1">
|
|
Copyright © 2001-2007 <a href="mailto:mdoar@pobox.com">Matthew B. Doar</a><br>
|
|
</font>
|
|
</p>
|
|
|
|
</BODY>
|
|
</HTML>
|