<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-18419</id>
	<title>Nabble - GeoNetwork opensource</title>
	<updated>2008-12-05T05:30:23Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/GeoNetwork-opensource-f18419.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/GeoNetwork-opensource-f18419.html" />
	<subtitle type="html">&lt;a href=&quot;http://geonetwork-opensource.org&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork opensource&lt;/a&gt; is a Free and Open Source catalog application to manage spatially referenced resources. It provides powerful metadata editing and search functions as well as an embedded interactive web map viewer.</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-20853779</id>
	<title>Re: CSW getRecords KVP Request Fail</title>
	<published>2008-12-05T05:30:23Z</published>
	<updated>2008-12-05T05:30:23Z</updated>
	<author>
		<name>Francisco Arrebola</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
I change this and now I obtain this error:&lt;br&gt;
&amp;lt;ows:ExceptionReport version=&quot;1.0.0&quot;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ows:Exception exceptionCode=&quot;NoApplicableCode&quot;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ows:ExceptionText&amp;gt;&lt;br&gt;
Error during Filter to Lucene conversion :
java.lang.IllegalStateException: Root element not set&lt;br&gt;
&amp;lt;/ows:ExceptionText&amp;gt;&lt;br&gt;
&amp;lt;/ows:Exception&amp;gt;&lt;br&gt;
&amp;lt;/ows:ExceptionReport&amp;gt;&lt;br&gt;
Mathieu Coudert escribi&amp;oacute;:
&lt;blockquote id=&quot;mid_b59c89b00812050526y61954c80ra004c4a1ae0162ae_mail_gmail_com&quot; cite=&quot;mid:b59c89b00812050526y61954c80ra004c4a1ae0162ae@mail.gmail.com&quot; type=&quot;cite&quot;&gt;Hi,&lt;br&gt;
  &lt;br&gt;
You could try to add this parameter
&amp;amp;constraint_language_version=1.1.0&lt;br&gt;
Please also check your CSW version, if you are using geonetwork 2.2,
CSW version is &lt;a moz-do-not-send=&quot;true&quot; href=&quot;http://2.0.2.&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;2.0.2.&lt;/a&gt;&lt;br&gt;
  &lt;br&gt;
HTH,&lt;br&gt;
  &lt;br&gt;
Mathieu&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;div class=&quot;gmail_quote&quot;&gt;On Fri, Dec 5, 2008 at 12:55 PM, Francisco
Arrebola &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853779&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;franarrebola@...&lt;/a&gt;&amp;gt;&lt;/span&gt;
wrote:&lt;br&gt;
  &lt;blockquote id=&quot;StationeryCiteGenerated_1&quot; class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
    &lt;div bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;Hi, I&amp;acute;m trying to use
geonetwork as a CSW service making url requests.
With this getRecords request:&lt;br&gt;
    &lt;a moz-do-not-send=&quot;true&quot; href=&quot;http://server:8080/geonetwork/srv/en/csw?request=GetRecords&amp;amp;version=2.0.1&amp;amp;outputFormat=application/xml&amp;amp;namespace=csw:http://www.opengis.org/csw&amp;amp;ResponseHandler=%22mailto:pvretano@cubewerx.com%22&amp;amp;typeName=csw:record&amp;amp;constraintlanguage=CQL_TEXT&amp;amp;Constraint=%22csw:AnyText%20Like%20%27%polution%%27%22&amp;amp;resultType=results&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://server:8080/geonetwork/srv/en/csw?request=GetRecords&amp;amp;version=2.0.1&amp;amp;outputFormat=application/xml&amp;amp;namespace=csw:http://www.opengis.org/csw&amp;amp;ResponseHandler=%22mailto:pvretano@...%22&amp;amp;typeName=csw:record&amp;amp;constraintlanguage=CQL_TEXT&amp;amp;Constraint=%22csw:AnyText%20Like%20'%polution%'%22&amp;amp;resultType=results&lt;/a&gt;&lt;br&gt;
I obtain this exception:&lt;br&gt;
&amp;lt;ows:ExceptionReport version=&quot;1.0.0&quot;&amp;gt;&lt;br&gt;
&amp;lt;ows:Exception exceptionCode=&quot;MissingParameterValue&quot;
locator=&quot;version&quot;/&amp;gt;&lt;br&gt;
&amp;lt;/ows:ExceptionReport&amp;gt;&lt;br&gt;
And the version parameter is included in the request..&lt;br&gt;
Any ideas?&lt;br&gt;
I&amp;acute;ve seen that there is a constraint version parameter..is it true?&lt;br&gt;
Thanks.&lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    &lt;div&gt;-- &lt;br&gt;
    &lt;img src=&quot;http://www.nabble.com/attachment/20853779/0/part1.04010102.08010304%40guadaltel.es&quot; border=&quot;0&quot;&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;br&gt;
------------------------------------------------------------------------------&lt;br&gt;
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas,
Nevada.&lt;br&gt;
The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to
help&lt;br&gt;
pave the way to the Next Web now. Learn more and register at&lt;br&gt;
    &lt;a moz-do-not-send=&quot;true&quot; href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;
_______________________________________________&lt;br&gt;
GeoNetwork-devel mailing list&lt;br&gt;
    &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853779&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-devel@...&lt;/a&gt;&lt;br&gt;
    &lt;a moz-do-not-send=&quot;true&quot; href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&lt;/a&gt;&lt;br&gt;
GeoNetwork OpenSource is maintained at &lt;a moz-do-not-send=&quot;true&quot; href=&quot;http://sourceforge.net/projects/geonetwork&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/projects/geonetwork&lt;/a&gt;&lt;br&gt;
  &lt;/blockquote&gt;
  &lt;/div&gt;
  &lt;br&gt;
  &lt;br clear=&quot;all&quot;&gt;
  &lt;br&gt;
-- &lt;br&gt;
Mathieu Coudert&lt;br&gt;
  &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853779&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mcoudert@...&lt;/a&gt;&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;moz-signature&quot;&gt;-- &lt;br&gt;
&lt;img src=&quot;http://www.nabble.com/attachment/20853779/1/C%3A%5CDocuments%20and%20Settings%5Cfranarrebola%5CMis%20documentos%5Cfirma%09fap.gif&quot; border=&quot;0&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;GeoNetwork-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853779&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&lt;/a&gt;&lt;br&gt;GeoNetwork OpenSource is maintained at &lt;a href=&quot;http://sourceforge.net/projects/geonetwork&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/projects/geonetwork&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-devel-f18442.html&quot; embed=&quot;fixTarget[18442]&quot; target=&quot;_top&quot; &gt;geonetwork-devel&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/CSW-getRecords-KVP-Request-Fail-tp20853163p20853779.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20853780</id>
	<title>SF.net SVN: geonetwork:[1828] sandbox/3.0.x/geonetwork-services-ebrim/src/ main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java</title>
	<published>2008-12-05T05:29:38Z</published>
	<updated>2008-12-05T05:29:38Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1828
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1828&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1828&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-05 13:29:38 +0000 (Fri, 05 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;inline documentation improved
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java	2008-12-05 13:10:47 UTC (rev 1827)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java	2008-12-05 13:29:38 UTC (rev 1828)
&lt;br&gt;@@ -29,11 +29,11 @@
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;&amp;nbsp; * Limitations:
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;- * - excludes classes in java.lang to avoid infinite recursion
&lt;br&gt;+ * - doesn't handle arrays
&lt;br&gt;+ * - only traverses object graph by invoking no-args &amp;quot;getXXX&amp;quot; methods
&lt;br&gt;+ * - excludes classes in java.lang (a preliminary hack to avoid infinite recursion)
&lt;br&gt;&amp;nbsp; * - is still susceptible to infinite recursion if your domain structure is like that
&lt;br&gt;- * - the action must be a single-arg void method where the arg is passed by value
&lt;br&gt;- * - only traverses object graph by invoking &amp;quot;getXXX&amp;quot; methods
&lt;br&gt;- * - doesn't handle arrays
&lt;br&gt;+ * - the action must be a single-arg void method; thus immutable objects (like String) cannot be operated on
&lt;br&gt;&amp;nbsp; * &amp;nbsp; 
&lt;br&gt;&amp;nbsp; * @author heikki doeleman
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853780&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1828--sandbox-3.0.x-geonetwork-services-ebrim-src--main-java-org-geonetwork-utils-visitor-ObjectGraphVisitor.java-tp20853780p20853780.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20853719</id>
	<title>Re: CSW getRecords KVP Request Fail</title>
	<published>2008-12-05T05:26:03Z</published>
	<updated>2008-12-05T05:26:03Z</updated>
	<author>
		<name>Mathieu Coudert-2</name>
	</author>
	<content type="html">Hi,&lt;br&gt;&lt;br&gt;You could try to add this parameter &amp;amp;constraint_language_version=1.1.0&lt;br&gt;Please also check your CSW version, if you are using geonetwork 2.2, CSW version is &lt;a href=&quot;http://2.0.2.&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;2.0.2.&lt;/a&gt;&lt;br&gt;&lt;br&gt;HTH,&lt;br&gt;
&lt;br&gt;Mathieu&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Fri, Dec 5, 2008 at 12:55 PM, Francisco Arrebola &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853719&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;franarrebola@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;




&lt;div bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
Hi, I´m trying to use geonetwork as a CSW service making url requests.
With this getRecords request:&lt;br&gt;
&lt;a href=&quot;http://server:8080/geonetwork/srv/en/csw?request=GetRecords&amp;amp;version=2.0.1&amp;amp;outputFormat=application/xml&amp;amp;namespace=csw:http://www.opengis.org/csw&amp;amp;ResponseHandler=%22mailto:pvretano@cubewerx.com%22&amp;amp;typeName=csw:record&amp;amp;constraintlanguage=CQL_TEXT&amp;amp;Constraint=%22csw:AnyText%20Like%20%27%polution%%27%22&amp;amp;resultType=results&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://server:8080/geonetwork/srv/en/csw?request=GetRecords&amp;amp;version=2.0.1&amp;amp;outputFormat=application/xml&amp;amp;namespace=csw:http://www.opengis.org/csw&amp;amp;ResponseHandler=%22mailto:pvretano@...%22&amp;amp;typeName=csw:record&amp;amp;constraintlanguage=CQL_TEXT&amp;amp;Constraint=%22csw:AnyText%20Like%20&amp;#39;%polution%&amp;#39;%22&amp;amp;resultType=results&lt;/a&gt;&lt;br&gt;

I obtain this exception:&lt;br&gt;
&amp;lt;ows:ExceptionReport version=&amp;quot;1.0.0&amp;quot;&amp;gt;&lt;br&gt;
&amp;lt;ows:Exception exceptionCode=&amp;quot;MissingParameterValue&amp;quot;
locator=&amp;quot;version&amp;quot;/&amp;gt;&lt;br&gt;
&amp;lt;/ows:ExceptionReport&amp;gt;&lt;br&gt;
And the version parameter is included in the request..&lt;br&gt;
Any ideas?&lt;br&gt;
I´ve seen that there is a constraint version parameter..is it true?&lt;br&gt;
Thanks.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;div&gt;-- &lt;br&gt;
&lt;img src=&quot;http://www.nabble.com/attachment/20853719/0/C%3A%5CDocuments%20and%20Settings%5Cfranarrebola%5CMis%20documentos%5Cfirma%09fap.gif&quot; border=&quot;0&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;br&gt;------------------------------------------------------------------------------&lt;br&gt;
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.&lt;br&gt;
The future of the web can&amp;#39;t happen without you. &amp;nbsp;Join us at MIX09 to help&lt;br&gt;
pave the way to the Next Web now. Learn more and register at&lt;br&gt;
&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________&lt;br&gt;

GeoNetwork-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853719&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&lt;/a&gt;&lt;br&gt;
GeoNetwork OpenSource is maintained at &lt;a href=&quot;http://sourceforge.net/projects/geonetwork&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/projects/geonetwork&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;&lt;br&gt;-- &lt;br&gt;Mathieu Coudert&lt;br&gt;
&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853719&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mcoudert@...&lt;/a&gt;&lt;br&gt;
&lt;br /&gt; &lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;GeoNetwork-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853719&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&lt;/a&gt;&lt;br&gt;GeoNetwork OpenSource is maintained at &lt;a href=&quot;http://sourceforge.net/projects/geonetwork&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/projects/geonetwork&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-devel-f18442.html&quot; embed=&quot;fixTarget[18442]&quot; target=&quot;_top&quot; &gt;geonetwork-devel&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/CSW-getRecords-KVP-Request-Fail-tp20853163p20853719.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20853484</id>
	<title>SF.net SVN: geonetwork:[1827] sandbox/3.0.x/geonetwork-services-ebrim/src</title>
	<published>2008-12-05T05:10:47Z</published>
	<updated>2008-12-05T05:10:47Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1827
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1827&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1827&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-05 13:10:47 +0000 (Fri, 05 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;more generic objectgraph traversal
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitorException.java
&lt;br&gt;&lt;br&gt;Removed Paths:
&lt;br&gt;-------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/test.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-05 10:22:58 UTC (rev 1826)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-05 13:10:47 UTC (rev 1827)
&lt;br&gt;@@ -20,22 +20,20 @@
&lt;br&gt;&amp;nbsp;//==============================================================================
&lt;br&gt;&amp;nbsp;package org.geonetwork.services.ebrim.iso19139;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import java.lang.reflect.Method;
&lt;br&gt;-import java.lang.reflect.ParameterizedType;
&lt;br&gt;-import java.lang.reflect.Type;
&lt;br&gt;-import java.util.Collection;
&lt;br&gt;-import java.util.Iterator;
&lt;br&gt;&amp;nbsp;import java.util.UUID;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.datatype.URN;
&lt;br&gt;-import org.geonetwork.services.ebrim.GeonetworkServiceException;
&lt;br&gt;&amp;nbsp;import org.geonetwork.utils.string.StringUtil;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * The result of the XSLT transformation of the incoming ISO 19139 document is incomplete. This class
&lt;br&gt;&amp;nbsp; * is a utility to fix the resulting object graph.
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;+ * This class simply defines some methods and advertises their names in an enum; users of this class then
&lt;br&gt;+ * pass these methods to an ObjectGraphVisitor, which will invoke the method on each object in the graph
&lt;br&gt;+ * that is of the targeted type.
&lt;br&gt;+ * 
&lt;br&gt;&amp;nbsp; * What this utility needs to do is:
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;&amp;nbsp; * - generate IDs for new Identifiable data
&lt;br&gt;@@ -70,87 +68,7 @@
&lt;br&gt;&amp;nbsp;		if(StringUtil.isEmpty(o.getId().getValue())) {
&lt;br&gt;&amp;nbsp;			o.setId(new URN(UUID.randomUUID().toString()));
&lt;br&gt;&amp;nbsp;			System.out.println(&amp;quot;fixed an id&amp;quot;);
&lt;br&gt;-		}		
&lt;br&gt;-	}
&lt;br&gt;-
&lt;br&gt;-	
&lt;br&gt;-	/**
&lt;br&gt;-	 * 
&lt;br&gt;-	 * Performs an action on all Identifiables in an object graph.
&lt;br&gt;-	 * 
&lt;br&gt;-	 * This method assumes that any getter methods in the domain model returning a Collection of 
&lt;br&gt;-	 * Identifiables are parameterized.
&lt;br&gt;-	 * 
&lt;br&gt;-	 * @param o
&lt;br&gt;-	 * @param action
&lt;br&gt;-	 * @param actor
&lt;br&gt;-	 * @return
&lt;br&gt;-	 * @throws FixerException
&lt;br&gt;-	 */
&lt;br&gt;-	public Identifiable performAction(Identifiable o, Method action, Object actor) throws FixerException {
&lt;br&gt;-		try {
&lt;br&gt;-			action.invoke(actor, o);
&lt;br&gt;-			// perform action on all Identifiables in this object graph
&lt;br&gt;-			Method[] methods = o.getClass().getMethods();
&lt;br&gt;-			for(int i = 0; i &amp;lt; methods.length; i++) {
&lt;br&gt;-				Method method = methods[i];
&lt;br&gt;-				if(method.getName().startsWith(&amp;quot;get&amp;quot;)) {
&lt;br&gt;-					Type type = method.getGenericReturnType();
&lt;br&gt;-					// getter returns a single Identifiable	
&lt;br&gt;-					if(type instanceof Identifiable) {
&lt;br&gt;-						Object result = &amp;nbsp;method.invoke(o);
&lt;br&gt;-						performAction((Identifiable) result, action, actor);
&lt;br&gt;-					}
&lt;br&gt;-					// getter returns a Collection (maybe)
&lt;br&gt;-					else if(type instanceof ParameterizedType) {
&lt;br&gt;-						try {
&lt;br&gt;-							Object result = &amp;nbsp;method.invoke(o);
&lt;br&gt;-							Collection&amp;lt;?&amp;gt; c = (Collection&amp;lt;?&amp;gt;) result;
&lt;br&gt;-							for(Iterator&amp;lt;?&amp;gt; it = c.iterator(); it.hasNext(); ) {
&lt;br&gt;-								Object next = it.next();
&lt;br&gt;-								// the Collection contains an Identifiable
&lt;br&gt;-								if(next instanceof Identifiable) {
&lt;br&gt;-									performAction((Identifiable) next, action, actor);
&lt;br&gt;-								}
&lt;br&gt;-							}						
&lt;br&gt;-						}
&lt;br&gt;-						// e.g. Class&amp;lt;?&amp;gt; is Parameterized but not a Collection.. no problem, just get out of here
&lt;br&gt;-						catch(ClassCastException x) {
&lt;br&gt;-							return o;
&lt;br&gt;-						}
&lt;br&gt;-					}
&lt;br&gt;-				}
&lt;br&gt;-			}
&lt;br&gt;-			return o;
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;-		catch(Exception x) {
&lt;br&gt;-			throw new FixerException(x);
&lt;br&gt;-		}
&lt;br&gt;+		//o = o + &amp;quot;xxxx&amp;quot; ;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;-	
&lt;br&gt;-	/**
&lt;br&gt;-	 * 
&lt;br&gt;-	 * @author heikki doeleman
&lt;br&gt;-	 *
&lt;br&gt;-	 */
&lt;br&gt;-	class FixerException extends GeonetworkServiceException {
&lt;br&gt;-
&lt;br&gt;-		private static final long serialVersionUID = -1323165757316949030L;
&lt;br&gt;-
&lt;br&gt;-		public FixerException() {
&lt;br&gt;-			super();
&lt;br&gt;-		}
&lt;br&gt;-
&lt;br&gt;-		public FixerException(String message, Throwable cause) {
&lt;br&gt;-			super(message, cause);
&lt;br&gt;-		}
&lt;br&gt;-
&lt;br&gt;-		public FixerException(String message) {
&lt;br&gt;-			super(message);
&lt;br&gt;-		}
&lt;br&gt;-
&lt;br&gt;-		public FixerException(Throwable cause) {
&lt;br&gt;-			super(cause);
&lt;br&gt;-		}
&lt;br&gt;-	}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java	2008-12-05 10:22:58 UTC (rev 1826)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java	2008-12-05 13:10:47 UTC (rev 1827)
&lt;br&gt;@@ -30,6 +30,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;&amp;nbsp;import org.geonetwork.services.ebrim.GeonetworkServiceException;
&lt;br&gt;+import org.geonetwork.utils.visitor.ObjectGraphVisitor;
&lt;br&gt;&amp;nbsp;import org.geonetwork.utils.xslt.GeonetworkTransformerException;
&lt;br&gt;&amp;nbsp;import org.geonetwork.utils.xslt.Transformer;
&lt;br&gt;&amp;nbsp;import org.jibx.runtime.BindingDirectory;
&lt;br&gt;@@ -67,8 +68,9 @@
&lt;br&gt;&amp;nbsp;				
&lt;br&gt;&amp;nbsp;			// fix missing values
&lt;br&gt;&amp;nbsp;			Fixer fixer = new Fixer();
&lt;br&gt;+			ObjectGraphVisitor visitor = new ObjectGraphVisitor();
&lt;br&gt;&amp;nbsp;			Method action = fixer.getClass().getMethod(Fixer.ACTION.fixID.getMethodName(), Identifiable.class);
&lt;br&gt;-			Identifiable fixedIdentifiable = fixer.performAction(identifiable, action, fixer);
&lt;br&gt;+			Identifiable fixedIdentifiable = (Identifiable) visitor.performAction(identifiable, Identifiable.class, action, fixer);
&lt;br&gt;&amp;nbsp;						
&lt;br&gt;&amp;nbsp;			// persist Identifiable
&lt;br&gt;&amp;nbsp;			// Erik where is the DAO ? :-)
&lt;br&gt;@@ -79,7 +81,6 @@
&lt;br&gt;&amp;nbsp;			x.printStackTrace();
&lt;br&gt;&amp;nbsp;			throw new GeonetworkServiceException(x);
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;-		
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;&lt;br&gt;Deleted: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/test.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/test.java	2008-12-05 10:22:58 UTC (rev 1826)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/test.java	2008-12-05 13:10:47 UTC (rev 1827)
&lt;br&gt;@@ -1,54 +0,0 @@
&lt;br&gt;-package org.geonetwork.services.ebrim.iso19139;
&lt;br&gt;-
&lt;br&gt;-import java.lang.reflect.Method;
&lt;br&gt;-import java.lang.reflect.Type;
&lt;br&gt;-
&lt;br&gt;-import org.geonetwork.domain.ebrim.informationmodel.core.ExtrinsicObject;
&lt;br&gt;-import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;-
&lt;br&gt;-public class test {
&lt;br&gt;-
&lt;br&gt;-	/**
&lt;br&gt;-	 * @param args
&lt;br&gt;-	 */
&lt;br&gt;-	public static void main(String[] args) {
&lt;br&gt;-		try {
&lt;br&gt;-			test t = new test();
&lt;br&gt;-			Object obj = new ExtrinsicObject();
&lt;br&gt;-			ExtrinsicObject r = (ExtrinsicObject) t.go(obj, Identifiable.class);
&lt;br&gt;-		}
&lt;br&gt;-		catch(Throwable x) {
&lt;br&gt;-			x.printStackTrace();
&lt;br&gt;-		}
&lt;br&gt;-	}
&lt;br&gt;-	
&lt;br&gt;-	private Object go(Object o, Class&amp;lt;?&amp;gt; target) throws Exception {
&lt;br&gt;-		Method[] methods = this.getClass().getMethods();
&lt;br&gt;-		for(int i = 0; i &amp;lt; methods.length; i++) {
&lt;br&gt;-			Method method = methods[i];
&lt;br&gt;-			if(method.getName().startsWith(&amp;quot;get&amp;quot;)) {
&lt;br&gt;-				// preferably I'd do the type check using either
&lt;br&gt;-				//Type declaredTpe = method.getGenericReturnType();
&lt;br&gt;-				// or
&lt;br&gt;-				// Class&amp;lt;?&amp;gt; declaredType = method.getReturnType();
&lt;br&gt;-				//
&lt;br&gt;-				// but it doesn't work :-(
&lt;br&gt;-				//
&lt;br&gt;-				// this works: (needs invocation)
&lt;br&gt;-				Object hmm = method.invoke(this);
&lt;br&gt;-				if(target.isInstance(hmm)) {
&lt;br&gt;-					System.out.println(method.getName() + &amp;quot; test ok&amp;quot;);					
&lt;br&gt;-				}
&lt;br&gt;-				else {
&lt;br&gt;-					System.out.println(method.getName() + &amp;quot; nope&amp;quot;);
&lt;br&gt;-				}
&lt;br&gt;-			}
&lt;br&gt;-		}
&lt;br&gt;-		return o;
&lt;br&gt;-	}
&lt;br&gt;-	
&lt;br&gt;-	public ExtrinsicObject getFuck() {
&lt;br&gt;-		return new ExtrinsicObject();
&lt;br&gt;-	}
&lt;br&gt;-
&lt;br&gt;-}
&lt;br&gt;&lt;br&gt;Added: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitor.java	2008-12-05 13:10:47 UTC (rev 1827)
&lt;br&gt;@@ -0,0 +1,98 @@
&lt;br&gt;+//=============================================================================
&lt;br&gt;+//===	Copyright (C) 2008 European Space Agency (ESA).
&lt;br&gt;+//===
&lt;br&gt;+//===	This program is free software; you can redistribute it and/or modify
&lt;br&gt;+//===	it under the terms of the GNU General Public License as published by
&lt;br&gt;+//===	the Free Software Foundation; either version 2 of the License, or (at
&lt;br&gt;+//===	your option) any later version.
&lt;br&gt;+//===
&lt;br&gt;+//===	This program is distributed in the hope that it will be useful, but
&lt;br&gt;+//===	WITHOUT ANY WARRANTY; without even the implied warranty of
&lt;br&gt;+//===	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
&lt;br&gt;+//===	General Public License for more details.
&lt;br&gt;+//===
&lt;br&gt;+//===	You should have received a copy of the GNU General Public License
&lt;br&gt;+//===	along with this program; if not, write to the Free Software
&lt;br&gt;+//===	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
&lt;br&gt;+//===
&lt;br&gt;+//===	Contact: Jeroen Ticheler - E-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853484&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geonetwork@...&lt;/a&gt;
&lt;br&gt;+
&lt;br&gt;+//==============================================================================
&lt;br&gt;+package org.geonetwork.utils.visitor;
&lt;br&gt;+
&lt;br&gt;+import java.lang.reflect.Method;
&lt;br&gt;+import java.util.Collection;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * 
&lt;br&gt;+ * First draft of generic way to apply an action to all objects of a specific type in an object graph.
&lt;br&gt;+ * 
&lt;br&gt;+ * Limitations:
&lt;br&gt;+ * 
&lt;br&gt;+ * - excludes classes in java.lang to avoid infinite recursion
&lt;br&gt;+ * - is still susceptible to infinite recursion if your domain structure is like that
&lt;br&gt;+ * - the action must be a single-arg void method where the arg is passed by value
&lt;br&gt;+ * - only traverses object graph by invoking &amp;quot;getXXX&amp;quot; methods
&lt;br&gt;+ * - doesn't handle arrays
&lt;br&gt;+ * &amp;nbsp; 
&lt;br&gt;+ * @author heikki doeleman
&lt;br&gt;+ *
&lt;br&gt;+ */
&lt;br&gt;+public class ObjectGraphVisitor {
&lt;br&gt;+	/**
&lt;br&gt;+	 * Performs an action on all objects of a targeted type (and subclasses thereof) in an object graph.
&lt;br&gt;+	 * 
&lt;br&gt;+	 * @param objectGraph - the object graph that is traversed
&lt;br&gt;+	 * @param target - the type of objects in the graph that the action is performed to
&lt;br&gt;+	 * @param action - the method to be invoked on objects of type target
&lt;br&gt;+	 * @param actor - the class where the action is defined
&lt;br&gt;+	 * @return Modified objectGraph after applying action to all objects of target type
&lt;br&gt;+	 * @throws FixerException
&lt;br&gt;+	 */
&lt;br&gt;+	public Object performAction(Object objectGraph, Class&amp;lt;?&amp;gt; target, Method action, Object actor) throws ObjectGraphVisitorException {
&lt;br&gt;+		try {
&lt;br&gt;+			if(objectGraph == null || objectGraph.getClass() == null) {
&lt;br&gt;+				return objectGraph;
&lt;br&gt;+			}
&lt;br&gt;+			
&lt;br&gt;+			// root of objectgraph is of the target type
&lt;br&gt;+			if(target.isAssignableFrom(objectGraph.getClass())) {
&lt;br&gt;+				action.invoke(actor, objectGraph);
&lt;br&gt;+			}
&lt;br&gt;+			// perform action on all Identifiables in this object graph
&lt;br&gt;+			Method[] methods = objectGraph.getClass().getMethods();
&lt;br&gt;+			for(int i = 0; i &amp;lt; methods.length; i++) {
&lt;br&gt;+				Method method = methods[i];
&lt;br&gt;+				if(method.getName().startsWith(&amp;quot;get&amp;quot;)) {
&lt;br&gt;+					Class&amp;lt;?&amp;gt; declaredType = method.getReturnType();
&lt;br&gt;+					// getter returns a Collection
&lt;br&gt;+					if(java.util.Collection.class.isAssignableFrom(declaredType)) {
&lt;br&gt;+						Object result = &amp;nbsp;method.invoke(objectGraph);
&lt;br&gt;+						Collection&amp;lt;?&amp;gt; collection = (Collection&amp;lt;?&amp;gt;) result;
&lt;br&gt;+						for(Object next : collection) {
&lt;br&gt;+							performAction(next, target, action, actor);
&lt;br&gt;+						}
&lt;br&gt;+					}
&lt;br&gt;+					// getter returns a single object
&lt;br&gt;+					// traverse deeper only if the getter is no-args, and the
&lt;br&gt;+					// declared return type is not a primitive, and is not in the java.lang package
&lt;br&gt;+					// (String and Class from java.lang get each other, and cause infinite recursion)
&lt;br&gt;+					// TODO better way to detect and avoid infinite recursion
&lt;br&gt;+					else if(method.getParameterTypes().length == 0 &amp;&amp;
&lt;br&gt;+							declaredType.getPackage() != null &amp;&amp;
&lt;br&gt;+							declaredType != void.class &amp;&amp;
&lt;br&gt;+							declaredType.getPackage().toString().equals(&amp;quot;java.lang&amp;quot;)){
&lt;br&gt;+						Object result = &amp;nbsp;method.invoke(objectGraph);
&lt;br&gt;+						performAction(result, target, action, actor);						
&lt;br&gt;+					}
&lt;br&gt;+					// TODO handle Arrays as well
&lt;br&gt;+				}
&lt;br&gt;+			}
&lt;br&gt;+			return objectGraph;
&lt;br&gt;+		}
&lt;br&gt;+		catch(Exception x) {
&lt;br&gt;+			x.printStackTrace();
&lt;br&gt;+			throw new ObjectGraphVisitorException(x);
&lt;br&gt;+		}
&lt;br&gt;+	}	
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Added: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitorException.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitorException.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/visitor/ObjectGraphVisitorException.java	2008-12-05 13:10:47 UTC (rev 1827)
&lt;br&gt;@@ -0,0 +1,42 @@
&lt;br&gt;+//=============================================================================
&lt;br&gt;+//===	Copyright (C) 2008 European Space Agency (ESA).
&lt;br&gt;+//===
&lt;br&gt;+//===	This program is free software; you can redistribute it and/or modify
&lt;br&gt;+//===	it under the terms of the GNU General Public License as published by
&lt;br&gt;+//===	the Free Software Foundation; either version 2 of the License, or (at
&lt;br&gt;+//===	your option) any later version.
&lt;br&gt;+//===
&lt;br&gt;+//===	This program is distributed in the hope that it will be useful, but
&lt;br&gt;+//===	WITHOUT ANY WARRANTY; without even the implied warranty of
&lt;br&gt;+//===	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
&lt;br&gt;+//===	General Public License for more details.
&lt;br&gt;+//===
&lt;br&gt;+//===	You should have received a copy of the GNU General Public License
&lt;br&gt;+//===	along with this program; if not, write to the Free Software
&lt;br&gt;+//===	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
&lt;br&gt;+//===
&lt;br&gt;+//===	Contact: Jeroen Ticheler - E-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853484&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geonetwork@...&lt;/a&gt;
&lt;br&gt;+
&lt;br&gt;+//==============================================================================
&lt;br&gt;+package org.geonetwork.utils.visitor;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * 
&lt;br&gt;+ * @author heikki doeleman
&lt;br&gt;+ *
&lt;br&gt;+ */
&lt;br&gt;+public class ObjectGraphVisitorException extends Exception {
&lt;br&gt;+	private static final long serialVersionUID = -2297033641381751461L;
&lt;br&gt;+	public ObjectGraphVisitorException() {
&lt;br&gt;+		super();
&lt;br&gt;+	}
&lt;br&gt;+	public ObjectGraphVisitorException(String message, Throwable cause) {
&lt;br&gt;+		super(message, cause);
&lt;br&gt;+	}
&lt;br&gt;+	public ObjectGraphVisitorException(String message) {
&lt;br&gt;+		super(message);
&lt;br&gt;+	}
&lt;br&gt;+	public ObjectGraphVisitorException(Throwable cause) {
&lt;br&gt;+		super(cause);
&lt;br&gt;+	}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java	2008-12-05 10:22:58 UTC (rev 1826)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java	2008-12-05 13:10:47 UTC (rev 1827)
&lt;br&gt;@@ -31,8 +31,9 @@
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.datatype.URN;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.test.utilities.core.ExtrinsicObjectFactory;
&lt;br&gt;-import org.geonetwork.services.ebrim.iso19139.Fixer.FixerException;
&lt;br&gt;&amp;nbsp;import org.geonetwork.utils.string.StringUtil;
&lt;br&gt;+import org.geonetwork.utils.visitor.ObjectGraphVisitor;
&lt;br&gt;+import org.geonetwork.utils.visitor.ObjectGraphVisitorException;
&lt;br&gt;&amp;nbsp;import org.jibx.runtime.BindingDirectory;
&lt;br&gt;&amp;nbsp;import org.jibx.runtime.IBindingFactory;
&lt;br&gt;&amp;nbsp;import org.jibx.runtime.IMarshallingContext;
&lt;br&gt;@@ -62,17 +63,18 @@
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;-	public void testFixIDs() throws FixerException, JiBXException, SecurityException, NoSuchMethodException {
&lt;br&gt;+	public void testFixIDs() throws JiBXException, SecurityException, NoSuchMethodException, ObjectGraphVisitorException {
&lt;br&gt;&amp;nbsp;		ExtrinsicObject extrinsicObject = ExtrinsicObjectFactory.create();
&lt;br&gt;&amp;nbsp;		Fixer fixer = new Fixer();
&lt;br&gt;+		ObjectGraphVisitor visitor = new ObjectGraphVisitor();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;		// prepare test data by emptying all IDs
&lt;br&gt;&amp;nbsp;		Method emptyIdAction = this.getClass().getMethod(TEST_METHOD.emptyID.getMethodName(), Identifiable.class);
&lt;br&gt;-		extrinsicObject = (ExtrinsicObject)fixer.performAction(extrinsicObject, emptyIdAction, this);
&lt;br&gt;+		extrinsicObject = (ExtrinsicObject)visitor.performAction(extrinsicObject, Identifiable.class, emptyIdAction, this);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;		// method to test
&lt;br&gt;&amp;nbsp;		Method actionToTest = fixer.getClass().getMethod(Fixer.ACTION.fixID.getMethodName(), Identifiable.class);
&lt;br&gt;-		ExtrinsicObject fixedExtrinsicObject = (ExtrinsicObject)fixer.performAction(extrinsicObject, actionToTest, fixer);
&lt;br&gt;+		ExtrinsicObject fixedExtrinsicObject = (ExtrinsicObject)visitor.performAction(extrinsicObject, Identifiable.class, actionToTest, fixer);
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;&amp;nbsp;		// marshal to console - nice if you're looking
&lt;br&gt;&amp;nbsp;		IBindingFactory bfact = BindingDirectory.getFactory(ExtrinsicObject.class);
&lt;br&gt;@@ -87,7 +89,7 @@
&lt;br&gt;&amp;nbsp;		// object graph
&lt;br&gt;&amp;nbsp;		Method checkIdNotEmptyAction = this.getClass().getMethod(TEST_METHOD.checkIdNotEmpty.getMethodName(), Identifiable.class);
&lt;br&gt;&amp;nbsp;		try {
&lt;br&gt;-			fixer.performAction(fixedExtrinsicObject, checkIdNotEmptyAction, this);
&lt;br&gt;+			visitor.performAction(fixedExtrinsicObject, Identifiable.class, checkIdNotEmptyAction, this);
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;&amp;nbsp;		catch(FixerTestFailedException x) {
&lt;br&gt;&amp;nbsp;			assertTrue(&amp;quot;fixID works correct&amp;quot;, false);
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853484&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1827--sandbox-3.0.x-geonetwork-services-ebrim-src-tp20853484p20853484.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20853163</id>
	<title>CSW getRecords KVP Request Fail</title>
	<published>2008-12-05T03:55:59Z</published>
	<updated>2008-12-05T03:55:59Z</updated>
	<author>
		<name>Francisco Arrebola</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
Hi, I&amp;acute;m trying to use geonetwork as a CSW service making url requests.
With this getRecords request:&lt;br&gt;
&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://server:8080/geonetwork/srv/en/csw?request=GetRecords&amp;version=2.0.1&amp;outputFormat=application/xml&amp;namespace=csw:http://www.opengis.org/csw&amp;ResponseHandler=%22mailto:pvretano@cubewerx.com%22&amp;typeName=csw:record&amp;constraintlanguage=CQL_TEXT&amp;Constraint=%22csw:AnyText%20Like%20'%polution%'%22&amp;resultType=results&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://server:8080/geonetwork/srv/en/csw?request=GetRecords&amp;amp;version=2.0.1&amp;amp;outputFormat=application/xml&amp;amp;namespace=csw:http://www.opengis.org/csw&amp;amp;ResponseHandler=%22mailto:pvretano@...%22&amp;amp;typeName=csw:record&amp;amp;constraintlanguage=CQL_TEXT&amp;amp;Constraint=%22csw:AnyText%20Like%20'%polution%'%22&amp;amp;resultType=results&lt;/a&gt;&lt;br&gt;
I obtain this exception:&lt;br&gt;
&amp;lt;ows:ExceptionReport version=&quot;1.0.0&quot;&amp;gt;&lt;br&gt;
&amp;lt;ows:Exception exceptionCode=&quot;MissingParameterValue&quot;
locator=&quot;version&quot;/&amp;gt;&lt;br&gt;
&amp;lt;/ows:ExceptionReport&amp;gt;&lt;br&gt;
And the version parameter is included in the request..&lt;br&gt;
Any ideas?&lt;br&gt;
I&amp;acute;ve seen that there is a constraint version parameter..is it true?&lt;br&gt;
Thanks.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;moz-signature&quot;&gt;-- &lt;br&gt;
&lt;img src=&quot;http://www.nabble.com/attachment/20853163/0/C%3A%5CDocuments%20and%20Settings%5Cfranarrebola%5CMis%20documentos%5Cfirma%09fap.gif&quot; border=&quot;0&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br /&gt; &lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;GeoNetwork-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20853163&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-devel&lt;/a&gt;&lt;br&gt;GeoNetwork OpenSource is maintained at &lt;a href=&quot;http://sourceforge.net/projects/geonetwork&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://sourceforge.net/projects/geonetwork&lt;/a&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-devel-f18442.html&quot; embed=&quot;fixTarget[18442]&quot; target=&quot;_top&quot; &gt;geonetwork-devel&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/CSW-getRecords-KVP-Request-Fail-tp20853163p20853163.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20851164</id>
	<title>SF.net SVN: geonetwork:[1826] sandbox/3.0.x/geonetwork-services-ebrim/src/ main/java/org/geonetwork/services/ebrim/iso19139/test.java</title>
	<published>2008-12-05T02:22:58Z</published>
	<updated>2008-12-05T02:22:58Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1826
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1826&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1826&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-05 10:22:58 +0000 (Fri, 05 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;test class for Erik, to be deleted ASAP
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/test.java
&lt;br&gt;&lt;br&gt;Added: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/test.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/test.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/test.java	2008-12-05 10:22:58 UTC (rev 1826)
&lt;br&gt;@@ -0,0 +1,54 @@
&lt;br&gt;+package org.geonetwork.services.ebrim.iso19139;
&lt;br&gt;+
&lt;br&gt;+import java.lang.reflect.Method;
&lt;br&gt;+import java.lang.reflect.Type;
&lt;br&gt;+
&lt;br&gt;+import org.geonetwork.domain.ebrim.informationmodel.core.ExtrinsicObject;
&lt;br&gt;+import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;+
&lt;br&gt;+public class test {
&lt;br&gt;+
&lt;br&gt;+	/**
&lt;br&gt;+	 * @param args
&lt;br&gt;+	 */
&lt;br&gt;+	public static void main(String[] args) {
&lt;br&gt;+		try {
&lt;br&gt;+			test t = new test();
&lt;br&gt;+			Object obj = new ExtrinsicObject();
&lt;br&gt;+			ExtrinsicObject r = (ExtrinsicObject) t.go(obj, Identifiable.class);
&lt;br&gt;+		}
&lt;br&gt;+		catch(Throwable x) {
&lt;br&gt;+			x.printStackTrace();
&lt;br&gt;+		}
&lt;br&gt;+	}
&lt;br&gt;+	
&lt;br&gt;+	private Object go(Object o, Class&amp;lt;?&amp;gt; target) throws Exception {
&lt;br&gt;+		Method[] methods = this.getClass().getMethods();
&lt;br&gt;+		for(int i = 0; i &amp;lt; methods.length; i++) {
&lt;br&gt;+			Method method = methods[i];
&lt;br&gt;+			if(method.getName().startsWith(&amp;quot;get&amp;quot;)) {
&lt;br&gt;+				// preferably I'd do the type check using either
&lt;br&gt;+				//Type declaredTpe = method.getGenericReturnType();
&lt;br&gt;+				// or
&lt;br&gt;+				// Class&amp;lt;?&amp;gt; declaredType = method.getReturnType();
&lt;br&gt;+				//
&lt;br&gt;+				// but it doesn't work :-(
&lt;br&gt;+				//
&lt;br&gt;+				// this works: (needs invocation)
&lt;br&gt;+				Object hmm = method.invoke(this);
&lt;br&gt;+				if(target.isInstance(hmm)) {
&lt;br&gt;+					System.out.println(method.getName() + &amp;quot; test ok&amp;quot;);					
&lt;br&gt;+				}
&lt;br&gt;+				else {
&lt;br&gt;+					System.out.println(method.getName() + &amp;quot; nope&amp;quot;);
&lt;br&gt;+				}
&lt;br&gt;+			}
&lt;br&gt;+		}
&lt;br&gt;+		return o;
&lt;br&gt;+	}
&lt;br&gt;+	
&lt;br&gt;+	public ExtrinsicObject getFuck() {
&lt;br&gt;+		return new ExtrinsicObject();
&lt;br&gt;+	}
&lt;br&gt;+
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20851164&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1826--sandbox-3.0.x-geonetwork-services-ebrim-src--main-java-org-geonetwork-services-ebrim-iso19139-test.java-tp20851164p20851164.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20848438</id>
	<title>SF.net SVN: geonetwork:[1825] sandbox/BlueNetMEST</title>
	<published>2008-12-04T22:29:29Z</published>
	<updated>2008-12-04T22:29:29Z</updated>
	<author>
		<name>bluenetdevteam</name>
	</author>
	<content type="html">Revision: 1825
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1825&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1825&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; bluenetdevteam
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-05 06:29:29 +0000 (Fri, 05 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Add Ajax.Autocompleter support to title and credit input fields in Advanced 
&lt;br&gt;Search form
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneSearcher.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-portal.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/BlueNetMEST/web/geonetwork/WEB-INF/user-profiles.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/BlueNetMEST/web/geonetwork/xsl/searchform_advanced.xsl
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-keywordlist.xsl
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-creditlist.xsl
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-titlelist.xsl
&lt;br&gt;&lt;br&gt;Modified: sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneSearcher.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneSearcher.java	2008-12-04 22:45:54 UTC (rev 1824)
&lt;br&gt;+++ sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneSearcher.java	2008-12-05 06:29:29 UTC (rev 1825)
&lt;br&gt;@@ -402,36 +402,30 @@
&lt;br&gt;&amp;nbsp;		return returnValue;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	//--------------------------------------------------------------------------------
&lt;br&gt;+	//------------------------------------------------------------------------
&lt;br&gt;+	
&lt;br&gt;+	private Element countAndSort(Element elContainer, int count, String fieldName) throws Exception {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	private void makeSummary() throws Exception
&lt;br&gt;-	{
&lt;br&gt;-		_elSummary = new Element(&amp;quot;summary&amp;quot;);
&lt;br&gt;-
&lt;br&gt;-		int count = getSize();
&lt;br&gt;-
&lt;br&gt;-		_elSummary.setAttribute(&amp;quot;count&amp;quot;, count+&amp;quot;&amp;quot;);
&lt;br&gt;-		_elSummary.setAttribute(&amp;quot;type&amp;quot;, &amp;quot;local&amp;quot;);
&lt;br&gt;-
&lt;br&gt;-		// count keyword frequencies
&lt;br&gt;-		Element elKeywords = new Element(&amp;quot;keywords&amp;quot;);
&lt;br&gt;-		Hashtable htKeywords = new Hashtable();
&lt;br&gt;+		// count frequencies
&lt;br&gt;+		Hashtable htFields = new Hashtable();
&lt;br&gt;&amp;nbsp;		for(int i = 0; i &amp;lt; count; i++)
&lt;br&gt;&amp;nbsp;		{
&lt;br&gt;&amp;nbsp;			Document doc = _hits.doc(i);
&lt;br&gt;-			String keywords[] = doc.getValues(&amp;quot;keyword&amp;quot;);
&lt;br&gt;-			if (keywords != null) // if there are no keywords lucene returns null instead of an empty array
&lt;br&gt;-				for (int j = 0; j &amp;lt; keywords.length; j++)
&lt;br&gt;+			String fields[] = doc.getValues(fieldName);
&lt;br&gt;+			// if there are no fields called fieldName lucene returns null 
&lt;br&gt;+			// instead of an empty array
&lt;br&gt;+			if (fields != null) 
&lt;br&gt;+				for (int j = 0; j &amp;lt; fields.length; j++)
&lt;br&gt;&amp;nbsp;				{
&lt;br&gt;-					String keyword = keywords[j];
&lt;br&gt;-					Integer keyCount = (Integer)htKeywords.get(keyword);
&lt;br&gt;-					if (keyCount == null) keyCount = new Integer(1);
&lt;br&gt;-					else &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;keyCount = new Integer(keyCount.intValue() + 1);
&lt;br&gt;-					htKeywords.put(keyword, keyCount);
&lt;br&gt;+					String field = fields[j];
&lt;br&gt;+					Integer fieldCount = (Integer)htFields.get(field);
&lt;br&gt;+					if (fieldCount == null) fieldCount = new Integer(1);
&lt;br&gt;+					else fieldCount = new Integer(fieldCount.intValue() + 1);
&lt;br&gt;+					htFields.put(field, fieldCount);
&lt;br&gt;&amp;nbsp;				}
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;-		// sort keywords according to frequency
&lt;br&gt;-		TreeSet setKeywords = new TreeSet(new Comparator()
&lt;br&gt;+		// sort fields according to frequency
&lt;br&gt;+		TreeSet setFields = new TreeSet(new Comparator()
&lt;br&gt;&amp;nbsp;			 &amp;nbsp;{
&lt;br&gt;&amp;nbsp;					public int compare(Object p1, Object p2)
&lt;br&gt;&amp;nbsp;					{
&lt;br&gt;@@ -446,109 +440,57 @@
&lt;br&gt;&amp;nbsp;						else &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return key1.compareTo(key2);
&lt;br&gt;&amp;nbsp;					}
&lt;br&gt;&amp;nbsp;				});
&lt;br&gt;-		setKeywords.addAll(htKeywords.entrySet());
&lt;br&gt;+		setFields.addAll(htFields.entrySet());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		int nKeys = 0;
&lt;br&gt;-		for (Iterator iter = setKeywords.iterator(); iter.hasNext(); )
&lt;br&gt;+		int nFields = 0;
&lt;br&gt;+		for (Iterator iter = setFields.iterator(); iter.hasNext(); )
&lt;br&gt;&amp;nbsp;		{
&lt;br&gt;-			if (++nKeys &amp;gt; _maxSummaryKeys) break;
&lt;br&gt;+			if (++nFields &amp;gt; _maxSummaryKeys) break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;			Map.Entry me = (Map.Entry)iter.next();
&lt;br&gt;-			String keyword &amp;nbsp; = (String)me.getKey();
&lt;br&gt;-			Integer keyCount = (Integer)me.getValue();
&lt;br&gt;+			String field &amp;nbsp; = (String)me.getKey();
&lt;br&gt;+			Integer fieldCount = (Integer)me.getValue();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-			Element elKeyword = new Element(&amp;quot;keyword&amp;quot;);
&lt;br&gt;-			elKeyword.setAttribute(&amp;quot;count&amp;quot;, keyCount.toString());
&lt;br&gt;-			elKeyword.setAttribute(&amp;quot;name&amp;quot;, keyword);
&lt;br&gt;-			elKeywords.addContent(elKeyword);
&lt;br&gt;+			Element elField = new Element(fieldName);
&lt;br&gt;+			elField.setAttribute(&amp;quot;count&amp;quot;, fieldCount.toString());
&lt;br&gt;+			elField.setAttribute(&amp;quot;name&amp;quot;, field);
&lt;br&gt;+			elContainer.addContent(elField);
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;+		return elContainer;
&lt;br&gt;+	}
&lt;br&gt;+
&lt;br&gt;+	private void makeSummary() throws Exception
&lt;br&gt;+	{
&lt;br&gt;+		_elSummary = new Element(&amp;quot;summary&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+		int count = getSize();
&lt;br&gt;+
&lt;br&gt;+		_elSummary.setAttribute(&amp;quot;count&amp;quot;, count+&amp;quot;&amp;quot;);
&lt;br&gt;+		_elSummary.setAttribute(&amp;quot;type&amp;quot;, &amp;quot;local&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+		// count keyword frequencies and sort 
&lt;br&gt;+		Element elKeywords = new Element(&amp;quot;keywords&amp;quot;);
&lt;br&gt;+		elKeywords = countAndSort(elKeywords, count, &amp;quot;keyword&amp;quot;);
&lt;br&gt;&amp;nbsp;		_elSummary.addContent(elKeywords);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		// count categories frequencies
&lt;br&gt;-		Element elCategories = new Element(&amp;quot;categories&amp;quot;);
&lt;br&gt;-		Hashtable htCategories = new Hashtable();
&lt;br&gt;-		for(int i = 0; i &amp;lt; count; i++)
&lt;br&gt;-		{
&lt;br&gt;-			Document doc = _hits.doc(i);
&lt;br&gt;-			String categories[] = doc.getValues(&amp;quot;_cat&amp;quot;);
&lt;br&gt;-			if (categories != null) // if there are no categories lucene returns null instead of an empty array
&lt;br&gt;-				for (int j = 0; j &amp;lt; categories.length; j++)
&lt;br&gt;-				{
&lt;br&gt;-					String category = categories[j];
&lt;br&gt;-					Integer catCount = (Integer)htCategories.get(category);
&lt;br&gt;-					if (catCount == null) catCount = new Integer(1);
&lt;br&gt;-					else &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catCount = new Integer(catCount.intValue() + 1);
&lt;br&gt;-					htCategories.put(category, catCount);
&lt;br&gt;-				}
&lt;br&gt;-		}
&lt;br&gt;-		// sort categories according to name
&lt;br&gt;-		TreeSet setCategories = new TreeSet(new Comparator()
&lt;br&gt;-			 &amp;nbsp;{
&lt;br&gt;-					public int compare(Object p1, Object p2)
&lt;br&gt;-					{
&lt;br&gt;-						Map.Entry me1 = (Map.Entry)p1;
&lt;br&gt;-						Map.Entry me2 = (Map.Entry)p2;
&lt;br&gt;-						String &amp;nbsp;cat1 &amp;nbsp; = (String)me1.getKey();
&lt;br&gt;-						String &amp;nbsp;cat2 &amp;nbsp; = (String)me2.getKey();
&lt;br&gt;-						return cat1.compareTo(cat2);
&lt;br&gt;-					}
&lt;br&gt;-				});
&lt;br&gt;-		setCategories.addAll(htCategories.entrySet());
&lt;br&gt;+		// count credit frequencies and sort 
&lt;br&gt;+		Element elCredits = new Element(&amp;quot;credits&amp;quot;);
&lt;br&gt;+		elCredits = countAndSort(elCredits, count, &amp;quot;credit&amp;quot;);
&lt;br&gt;+		_elSummary.addContent(elCredits);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		for (Iterator iter = setCategories.iterator(); iter.hasNext(); )
&lt;br&gt;-		{
&lt;br&gt;-			Map.Entry me = (Map.Entry)iter.next();
&lt;br&gt;-			String category &amp;nbsp;= (String)me.getKey();
&lt;br&gt;-			Integer catCount = (Integer)me.getValue();
&lt;br&gt;+		// count title frequencies and sort 
&lt;br&gt;+		Element elTitles = new Element(&amp;quot;titles&amp;quot;);
&lt;br&gt;+		elTitles = countAndSort(elTitles, count, &amp;quot;title&amp;quot;);
&lt;br&gt;+		_elSummary.addContent(elTitles);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-			Element elCategory = new Element(&amp;quot;category&amp;quot;);
&lt;br&gt;-			elCategory.setAttribute(&amp;quot;count&amp;quot;, catCount.toString());
&lt;br&gt;-			elCategory.setAttribute(&amp;quot;name&amp;quot;, category);
&lt;br&gt;-			elCategories.addContent(elCategory);
&lt;br&gt;-		}
&lt;br&gt;+		// count categories frequencies and sort 
&lt;br&gt;+		Element elCategories = new Element(&amp;quot;categories&amp;quot;);
&lt;br&gt;+		elCategories = countAndSort(elCategories, count, &amp;quot;category&amp;quot;);
&lt;br&gt;&amp;nbsp;		_elSummary.addContent(elCategories);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		// count sources frequencies
&lt;br&gt;+		// count sources frequencies and sort 
&lt;br&gt;&amp;nbsp;		Element elSources = new Element(&amp;quot;sources&amp;quot;);
&lt;br&gt;-		Hashtable htSources = new Hashtable();
&lt;br&gt;-		for(int i = 0; i &amp;lt; count; i++)
&lt;br&gt;-		{
&lt;br&gt;-			Document doc = _hits.doc(i);
&lt;br&gt;-			String source = doc.get(&amp;quot;_source&amp;quot;);
&lt;br&gt;-			Integer sourceCount = (Integer)htSources.get(source);
&lt;br&gt;-			if (sourceCount == null) sourceCount = new Integer(1);
&lt;br&gt;-			else &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sourceCount = new Integer(sourceCount.intValue() + 1);
&lt;br&gt;-			htSources.put(source, sourceCount);
&lt;br&gt;-		}
&lt;br&gt;-		// sort sources according to frequency
&lt;br&gt;-		TreeSet setSources = new TreeSet(new Comparator()
&lt;br&gt;-			 &amp;nbsp;{
&lt;br&gt;-					public int compare(Object p1, Object p2)
&lt;br&gt;-					{
&lt;br&gt;-						Map.Entry me1 &amp;nbsp; &amp;nbsp;= (Map.Entry)p1;
&lt;br&gt;-						Map.Entry me2 &amp;nbsp; &amp;nbsp;= (Map.Entry)p2;
&lt;br&gt;-						String &amp;nbsp; &amp;nbsp;key1 &amp;nbsp; = (String)me1.getKey();
&lt;br&gt;-						String &amp;nbsp; &amp;nbsp;key2 &amp;nbsp; = (String)me2.getKey();
&lt;br&gt;-						Integer &amp;nbsp; count1 = (Integer)me1.getValue();
&lt;br&gt;-						Integer &amp;nbsp; count2 = (Integer)me2.getValue();
&lt;br&gt;-						int cmp = count2.compareTo(count1);
&lt;br&gt;-						if (cmp != 0) return cmp;
&lt;br&gt;-						else &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return key1.compareTo(key2);
&lt;br&gt;-					}
&lt;br&gt;-				});
&lt;br&gt;-		setSources.addAll(htSources.entrySet());
&lt;br&gt;-
&lt;br&gt;-		for (Iterator iter = setSources.iterator(); iter.hasNext(); )
&lt;br&gt;-		{
&lt;br&gt;-			Map.Entry me = (Map.Entry)iter.next();
&lt;br&gt;-			String &amp;nbsp;source &amp;nbsp; = (String)me.getKey();
&lt;br&gt;-			Integer keyCount = (Integer)me.getValue();
&lt;br&gt;-
&lt;br&gt;-			Element elSource = new Element(&amp;quot;source&amp;quot;);
&lt;br&gt;-			elSource.setAttribute(&amp;quot;count&amp;quot;, keyCount.toString());
&lt;br&gt;-			elSource.setAttribute(&amp;quot;name&amp;quot;, &amp;nbsp;source);
&lt;br&gt;-			elSources.addContent(elSource);
&lt;br&gt;-		}
&lt;br&gt;+		elSources = countAndSort(elSources, count, &amp;quot;source&amp;quot;);
&lt;br&gt;&amp;nbsp;		_elSummary.addContent(elSources);
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-portal.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-portal.xml	2008-12-04 22:45:54 UTC (rev 1824)
&lt;br&gt;+++ sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-portal.xml	2008-12-05 06:29:29 UTC (rev 1825)
&lt;br&gt;@@ -31,6 +31,24 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;		&amp;lt;!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+		&amp;lt;service name=&amp;quot;portal.search.credits&amp;quot;&amp;gt;
&lt;br&gt;+			&amp;lt;class name=&amp;quot;.services.main.Search&amp;quot;&amp;gt;
&lt;br&gt;+				&amp;lt;param name=&amp;quot;maxSummaryKeys&amp;quot; value=&amp;quot;1000&amp;quot; /&amp;gt;
&lt;br&gt;+			&amp;lt;/class&amp;gt;
&lt;br&gt;+			&amp;lt;output sheet=&amp;quot;thesaurus-creditlist.xsl&amp;quot; contentType=&amp;quot;text/xml; charset=UTF-8&amp;quot;/&amp;gt;
&lt;br&gt;+		&amp;lt;/service&amp;gt;
&lt;br&gt;+
&lt;br&gt;+		&amp;lt;!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --&amp;gt;
&lt;br&gt;+
&lt;br&gt;+		&amp;lt;service name=&amp;quot;portal.search.titles&amp;quot;&amp;gt;
&lt;br&gt;+			&amp;lt;class name=&amp;quot;.services.main.Search&amp;quot;&amp;gt;
&lt;br&gt;+				&amp;lt;param name=&amp;quot;maxSummaryKeys&amp;quot; value=&amp;quot;1000&amp;quot; /&amp;gt;
&lt;br&gt;+			&amp;lt;/class&amp;gt;
&lt;br&gt;+			&amp;lt;output sheet=&amp;quot;thesaurus-titlelist.xsl&amp;quot; contentType=&amp;quot;text/xml; charset=UTF-8&amp;quot;/&amp;gt;
&lt;br&gt;+		&amp;lt;/service&amp;gt;
&lt;br&gt;+
&lt;br&gt;+		&amp;lt;!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;		&amp;lt;service name=&amp;quot;portal.present&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;			&amp;lt;class name=&amp;quot;.services.main.Result&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: sandbox/BlueNetMEST/web/geonetwork/WEB-INF/user-profiles.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/BlueNetMEST/web/geonetwork/WEB-INF/user-profiles.xml	2008-12-04 22:45:54 UTC (rev 1824)
&lt;br&gt;+++ sandbox/BlueNetMEST/web/geonetwork/WEB-INF/user-profiles.xml	2008-12-05 06:29:29 UTC (rev 1825)
&lt;br&gt;@@ -267,6 +267,8 @@
&lt;br&gt;&amp;nbsp;		&amp;lt;allow service=&amp;quot;portal.search&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;allow service=&amp;quot;portal.opensearch&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;allow service=&amp;quot;portal.search.keywords&amp;quot;/&amp;gt;
&lt;br&gt;+		&amp;lt;allow service=&amp;quot;portal.search.credits&amp;quot;/&amp;gt;
&lt;br&gt;+		&amp;lt;allow service=&amp;quot;portal.search.titles&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;allow service=&amp;quot;portal.search.present&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;allow service=&amp;quot;portal.present&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;allow service=&amp;quot;portal.full&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: sandbox/BlueNetMEST/web/geonetwork/xsl/searchform_advanced.xsl
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/BlueNetMEST/web/geonetwork/xsl/searchform_advanced.xsl	2008-12-04 22:45:54 UTC (rev 1824)
&lt;br&gt;+++ sandbox/BlueNetMEST/web/geonetwork/xsl/searchform_advanced.xsl	2008-12-05 06:29:29 UTC (rev 1825)
&lt;br&gt;@@ -141,6 +141,11 @@
&lt;br&gt;&amp;nbsp;			&amp;lt;/th&amp;gt;
&lt;br&gt;&amp;nbsp;			&amp;lt;td style=&amp;quot;padding-bottom:5px;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;				&amp;lt;input name=&amp;quot;title&amp;quot; id=&amp;quot;title&amp;quot; class=&amp;quot;content&amp;quot; &amp;nbsp;size=&amp;quot;20&amp;quot; value=&amp;quot;{/root/gui/searchDefaults/title}&amp;quot;/&amp;gt;
&lt;br&gt;+				&amp;lt;xsl:if test=&amp;quot;not($isRemote)&amp;quot;&amp;gt;
&lt;br&gt;+					&amp;lt;div id=&amp;quot;titleList&amp;quot; class=&amp;quot;keywordList&amp;quot;&amp;gt;
&lt;br&gt;+						&amp;lt;!-- the titleList for autocompletion will show here --&amp;gt;
&lt;br&gt;+					&amp;lt;/div&amp;gt;
&lt;br&gt;+				&amp;lt;/xsl:if&amp;gt;
&lt;br&gt;&amp;nbsp;			&amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;tr&amp;gt;
&lt;br&gt;@@ -158,6 +163,9 @@
&lt;br&gt;&amp;nbsp;				&amp;lt;/th&amp;gt;
&lt;br&gt;&amp;nbsp;				&amp;lt;td style=&amp;quot;padding-bottom:5px;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;					&amp;lt;input name=&amp;quot;credit&amp;quot; id=&amp;quot;credit&amp;quot; class=&amp;quot;content&amp;quot; &amp;nbsp;size=&amp;quot;20&amp;quot; value=&amp;quot;{/root/gui/searchDefaults/credit}&amp;quot;/&amp;gt;
&lt;br&gt;+					&amp;lt;div id=&amp;quot;creditList&amp;quot; class=&amp;quot;keywordList&amp;quot;&amp;gt;
&lt;br&gt;+						&amp;lt;!-- the creditList for autocompletion will show here --&amp;gt;
&lt;br&gt;+					&amp;lt;/div&amp;gt;
&lt;br&gt;&amp;nbsp;				&amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp;			&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;/xsl:if&amp;gt;
&lt;br&gt;&lt;br&gt;Added: sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-creditlist.xsl
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-creditlist.xsl	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-creditlist.xsl	2008-12-05 06:29:29 UTC (rev 1825)
&lt;br&gt;@@ -0,0 +1,22 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;&lt;a href=&quot;http://www.w3.org/1999/XSL/Transform&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/1999/XSL/Transform&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xsl:output method='html' encoding='UTF-8' indent='yes'/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;lcletters&amp;quot;&amp;gt;abcdefghijklmnopqrstuvwxyz&amp;lt;/xsl:variable&amp;gt;
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;ucletters&amp;quot;&amp;gt;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;lt;/xsl:variable&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;in&amp;quot; select=&amp;quot;translate(/root/request/creditCompleter,$ucletters,$lcletters)&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+		&amp;lt;ul&amp;gt;
&lt;br&gt;+			&amp;lt;xsl:for-each select=&amp;quot;/root/response/summary/credits/credit[starts-with(@name,$in)=1]&amp;quot;&amp;gt;
&lt;br&gt;+				&amp;lt;li&amp;gt;
&lt;br&gt;+					&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;
&lt;br&gt;+				&amp;lt;/li&amp;gt;
&lt;br&gt;+			&amp;lt;/xsl:for-each&amp;gt;
&lt;br&gt;+		&amp;lt;/ul&amp;gt;
&lt;br&gt;+&amp;lt;/xsl:template&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	
&lt;br&gt;+&amp;lt;/xsl:stylesheet&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-keywordlist.xsl
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-keywordlist.xsl	2008-12-04 22:45:54 UTC (rev 1824)
&lt;br&gt;+++ sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-keywordlist.xsl	2008-12-05 06:29:29 UTC (rev 1825)
&lt;br&gt;@@ -1,10 +1,13 @@
&lt;br&gt;&amp;nbsp;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;&lt;a href=&quot;http://www.w3.org/1999/XSL/Transform&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/1999/XSL/Transform&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;!-- &amp;lt;xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/&amp;gt; --&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;xsl:output method='html' encoding='UTF-8' indent='yes'/&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xsl:variable name=&amp;quot;in&amp;quot; select=&amp;quot;/root/request/keyword&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;lcletters&amp;quot;&amp;gt;abcdefghijklmnopqrstuvwxyz&amp;lt;/xsl:variable&amp;gt;
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;ucletters&amp;quot;&amp;gt;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;lt;/xsl:variable&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;in&amp;quot; select=&amp;quot;translate(/root/request/keyword,$ucletters,$lcletters)&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;xsl:variable name=&amp;quot;mode&amp;quot; select=&amp;quot;/root/request/mode&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	&amp;lt;xsl:choose&amp;gt;
&lt;br&gt;&lt;br&gt;Added: sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-titlelist.xsl
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-titlelist.xsl	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ sandbox/BlueNetMEST/web/geonetwork/xsl/thesaurus-titlelist.xsl	2008-12-05 06:29:29 UTC (rev 1825)
&lt;br&gt;@@ -0,0 +1,22 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;&lt;a href=&quot;http://www.w3.org/1999/XSL/Transform&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/1999/XSL/Transform&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xsl:output method='html' encoding='UTF-8' indent='yes'/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;lcletters&amp;quot;&amp;gt;abcdefghijklmnopqrstuvwxyz&amp;lt;/xsl:variable&amp;gt;
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;ucletters&amp;quot;&amp;gt;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;lt;/xsl:variable&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;xsl:variable name=&amp;quot;in&amp;quot; select=&amp;quot;translate(/root/request/titleCompleter,$ucletters,$lcletters)&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+		&amp;lt;ul&amp;gt;
&lt;br&gt;+			&amp;lt;xsl:for-each select=&amp;quot;/root/response/summary/titles/title[starts-with(@name,$in)=1]&amp;quot;&amp;gt;
&lt;br&gt;+				&amp;lt;li&amp;gt;
&lt;br&gt;+					&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;
&lt;br&gt;+				&amp;lt;/li&amp;gt;
&lt;br&gt;+			&amp;lt;/xsl:for-each&amp;gt;
&lt;br&gt;+		&amp;lt;/ul&amp;gt;
&lt;br&gt;+&amp;lt;/xsl:template&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	
&lt;br&gt;+&amp;lt;/xsl:stylesheet&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20848438&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1825--sandbox-BlueNetMEST-tp20848438p20848438.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20844218</id>
	<title>SF.net SVN: geonetwork:[1824] sandbox/3.0.x/geonetwork-services-ebrim/src/ main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService. java</title>
	<published>2008-12-04T14:45:54Z</published>
	<updated>2008-12-04T14:45:54Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1824
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1824&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1824&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-04 22:45:54 +0000 (Thu, 04 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;initial stuff for iso19139 insertion
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java	2008-12-04 22:42:31 UTC (rev 1823)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java	2008-12-04 22:45:54 UTC (rev 1824)
&lt;br&gt;@@ -67,7 +67,7 @@
&lt;br&gt;&amp;nbsp;				
&lt;br&gt;&amp;nbsp;			// fix missing values
&lt;br&gt;&amp;nbsp;			Fixer fixer = new Fixer();
&lt;br&gt;-			Method action = fixer.getClass().getMethod(&amp;quot;fixID&amp;quot;);
&lt;br&gt;+			Method action = fixer.getClass().getMethod(Fixer.ACTION.fixID.getMethodName(), Identifiable.class);
&lt;br&gt;&amp;nbsp;			Identifiable fixedIdentifiable = fixer.performAction(identifiable, action, fixer);
&lt;br&gt;&amp;nbsp;						
&lt;br&gt;&amp;nbsp;			// persist Identifiable
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20844218&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1824--sandbox-3.0.x-geonetwork-services-ebrim-src--main-java-org-geonetwork-services-ebrim-iso19139-ISO19139InsertionService.-java-tp20844218p20844218.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20844165</id>
	<title>SF.net SVN: geonetwork:[1823] sandbox/3.0.x/geonetwork-services-ebrim/src</title>
	<published>2008-12-04T14:42:32Z</published>
	<updated>2008-12-04T14:42:32Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1823
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1823&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1823&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-04 22:42:31 +0000 (Thu, 04 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;enums are cool
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 22:20:55 UTC (rev 1822)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 22:42:31 UTC (rev 1823)
&lt;br&gt;@@ -47,6 +47,22 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class Fixer {
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;+	
&lt;br&gt;+	public enum ACTION {
&lt;br&gt;+		fixID(&amp;quot;fixID&amp;quot;);
&lt;br&gt;+		private final String methodName;
&lt;br&gt;+		String getMethodName() {
&lt;br&gt;+			return methodName;
&lt;br&gt;+		}
&lt;br&gt;+		ACTION(String methodName) {
&lt;br&gt;+			this.methodName = methodName;
&lt;br&gt;+		}
&lt;br&gt;+	}
&lt;br&gt;+	
&lt;br&gt;+	/**
&lt;br&gt;+	 * Fixes an Identiable's id.
&lt;br&gt;+	 * @param o
&lt;br&gt;+	 */
&lt;br&gt;&amp;nbsp;	public void fixID(Identifiable o) {
&lt;br&gt;&amp;nbsp;		//
&lt;br&gt;&amp;nbsp;		// TODO fix ID here
&lt;br&gt;@@ -56,9 +72,7 @@
&lt;br&gt;&amp;nbsp;			System.out.println(&amp;quot;fixed an id&amp;quot;);
&lt;br&gt;&amp;nbsp;		}		
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;-	public void emptyID(Identifiable o) {
&lt;br&gt;-		o.setId(new URN(&amp;quot;&amp;quot;));
&lt;br&gt;-	}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;&amp;nbsp;	 * 
&lt;br&gt;@@ -68,6 +82,8 @@
&lt;br&gt;&amp;nbsp;	 * Identifiables are parameterized.
&lt;br&gt;&amp;nbsp;	 * 
&lt;br&gt;&amp;nbsp;	 * @param o
&lt;br&gt;+	 * @param action
&lt;br&gt;+	 * @param actor
&lt;br&gt;&amp;nbsp;	 * @return
&lt;br&gt;&amp;nbsp;	 * @throws FixerException
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java	2008-12-04 22:20:55 UTC (rev 1822)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java	2008-12-04 22:42:31 UTC (rev 1823)
&lt;br&gt;@@ -29,6 +29,7 @@
&lt;br&gt;&amp;nbsp;import org.custommonkey.xmlunit.XMLTestCase;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.ExtrinsicObject;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;+import org.geonetwork.domain.ebrim.informationmodel.core.datatype.URN;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.test.utilities.core.ExtrinsicObjectFactory;
&lt;br&gt;&amp;nbsp;import org.geonetwork.services.ebrim.iso19139.Fixer.FixerException;
&lt;br&gt;&amp;nbsp;import org.geonetwork.utils.string.StringUtil;
&lt;br&gt;@@ -49,16 +50,28 @@
&lt;br&gt;&amp;nbsp;		super(name);
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;+	private enum TEST_METHOD {
&lt;br&gt;+		emptyID(&amp;quot;emptyID&amp;quot;),
&lt;br&gt;+		checkIdNotEmpty(&amp;quot;checkIdNotEmpty&amp;quot;); 
&lt;br&gt;+		private final String methodName;
&lt;br&gt;+		String getMethodName() {
&lt;br&gt;+			return methodName;
&lt;br&gt;+		}
&lt;br&gt;+		TEST_METHOD(String methodName) {
&lt;br&gt;+			this.methodName = methodName;
&lt;br&gt;+		}
&lt;br&gt;+	}
&lt;br&gt;+	
&lt;br&gt;&amp;nbsp;	public void testFixIDs() throws FixerException, JiBXException, SecurityException, NoSuchMethodException {
&lt;br&gt;&amp;nbsp;		ExtrinsicObject extrinsicObject = ExtrinsicObjectFactory.create();
&lt;br&gt;&amp;nbsp;		Fixer fixer = new Fixer();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;		// prepare test data by emptying all IDs
&lt;br&gt;-		Method emptyIdAction = fixer.getClass().getMethod(&amp;quot;emptyID&amp;quot;, Identifiable.class);
&lt;br&gt;-		extrinsicObject = (ExtrinsicObject)fixer.performAction(extrinsicObject, emptyIdAction, fixer);
&lt;br&gt;+		Method emptyIdAction = this.getClass().getMethod(TEST_METHOD.emptyID.getMethodName(), Identifiable.class);
&lt;br&gt;+		extrinsicObject = (ExtrinsicObject)fixer.performAction(extrinsicObject, emptyIdAction, this);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;		// method to test
&lt;br&gt;-		Method actionToTest = fixer.getClass().getMethod(&amp;quot;fixID&amp;quot;, Identifiable.class);
&lt;br&gt;+		Method actionToTest = fixer.getClass().getMethod(Fixer.ACTION.fixID.getMethodName(), Identifiable.class);
&lt;br&gt;&amp;nbsp;		ExtrinsicObject fixedExtrinsicObject = (ExtrinsicObject)fixer.performAction(extrinsicObject, actionToTest, fixer);
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;&amp;nbsp;		// marshal to console - nice if you're looking
&lt;br&gt;@@ -72,7 +85,7 @@
&lt;br&gt;&amp;nbsp;		// Verify result
&lt;br&gt;&amp;nbsp;		// there should not be any empty id attribute for any Identifiable in the 
&lt;br&gt;&amp;nbsp;		// object graph
&lt;br&gt;-		Method checkIdNotEmptyAction = this.getClass().getMethod(&amp;quot;checkIdNotEmpty&amp;quot;, Identifiable.class);
&lt;br&gt;+		Method checkIdNotEmptyAction = this.getClass().getMethod(TEST_METHOD.checkIdNotEmpty.getMethodName(), Identifiable.class);
&lt;br&gt;&amp;nbsp;		try {
&lt;br&gt;&amp;nbsp;			fixer.performAction(fixedExtrinsicObject, checkIdNotEmptyAction, this);
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;@@ -84,14 +97,29 @@
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;+	/**
&lt;br&gt;+	 * Throws an Exception if an Identiable's id is empty.
&lt;br&gt;+	 * 
&lt;br&gt;+	 * @param o
&lt;br&gt;+	 * @throws FixerTestFailedException
&lt;br&gt;+	 */
&lt;br&gt;&amp;nbsp;	public void checkIdNotEmpty(Identifiable o) throws FixerTestFailedException {
&lt;br&gt;&amp;nbsp;		if(StringUtil.isEmpty(o.getId().getValue())) {
&lt;br&gt;&amp;nbsp;			throw new FixerTestFailedException(&amp;quot;found non-empty ID&amp;quot;);
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;+	/**
&lt;br&gt;+	 * Empties an Identiable's id.
&lt;br&gt;+	 * @param o
&lt;br&gt;+	 */
&lt;br&gt;+	public void emptyID(Identifiable o) {
&lt;br&gt;+		o.setId(new URN(&amp;quot;&amp;quot;));
&lt;br&gt;+	}	
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	class FixerTestFailedException extends RuntimeException {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+		private static final long serialVersionUID = -286335977172831853L;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;		public FixerTestFailedException() {
&lt;br&gt;&amp;nbsp;			super();
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20844165&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1823--sandbox-3.0.x-geonetwork-services-ebrim-src-tp20844165p20844165.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20844092</id>
	<title>SF.net SVN: geonetwork:[1822] sandbox/3.0.x/geonetwork-services-ebrim/src</title>
	<published>2008-12-04T14:20:56Z</published>
	<updated>2008-12-04T14:20:56Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1822
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1822&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1822&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-04 22:20:55 +0000 (Thu, 04 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;reflection is cool
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Resource.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 21:01:25 UTC (rev 1821)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 22:20:55 UTC (rev 1822)
&lt;br&gt;@@ -47,7 +47,23 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class Fixer {
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;+	public void fixID(Identifiable o) {
&lt;br&gt;+		//
&lt;br&gt;+		// TODO fix ID here
&lt;br&gt;+		//
&lt;br&gt;+		if(StringUtil.isEmpty(o.getId().getValue())) {
&lt;br&gt;+			o.setId(new URN(UUID.randomUUID().toString()));
&lt;br&gt;+			System.out.println(&amp;quot;fixed an id&amp;quot;);
&lt;br&gt;+		}		
&lt;br&gt;+	}
&lt;br&gt;+	public void emptyID(Identifiable o) {
&lt;br&gt;+		o.setId(new URN(&amp;quot;&amp;quot;));
&lt;br&gt;+	}
&lt;br&gt;+	
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;+	 * 
&lt;br&gt;+	 * Performs an action on all Identifiables in an object graph.
&lt;br&gt;+	 * 
&lt;br&gt;&amp;nbsp;	 * This method assumes that any getter methods in the domain model returning a Collection of 
&lt;br&gt;&amp;nbsp;	 * Identifiables are parameterized.
&lt;br&gt;&amp;nbsp;	 * 
&lt;br&gt;@@ -55,17 +71,10 @@
&lt;br&gt;&amp;nbsp;	 * @return
&lt;br&gt;&amp;nbsp;	 * @throws FixerException
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;-	public Identifiable fixIDs(Identifiable o) throws FixerException {
&lt;br&gt;+	public Identifiable performAction(Identifiable o, Method action, Object actor) throws FixerException {
&lt;br&gt;&amp;nbsp;		try {
&lt;br&gt;-			//
&lt;br&gt;-			// TODO fix ID here
&lt;br&gt;-			//
&lt;br&gt;-			if(StringUtil.isEmpty(o.getId().getValue())) {
&lt;br&gt;-				o.setId(new URN(UUID.randomUUID().toString()));
&lt;br&gt;-				System.out.println(&amp;quot;fixed an id&amp;quot;);
&lt;br&gt;-			}
&lt;br&gt;-			
&lt;br&gt;-			// fix IDs for all Identifiables in this object graph
&lt;br&gt;+			action.invoke(actor, o);
&lt;br&gt;+			// perform action on all Identifiables in this object graph
&lt;br&gt;&amp;nbsp;			Method[] methods = o.getClass().getMethods();
&lt;br&gt;&amp;nbsp;			for(int i = 0; i &amp;lt; methods.length; i++) {
&lt;br&gt;&amp;nbsp;				Method method = methods[i];
&lt;br&gt;@@ -74,10 +83,10 @@
&lt;br&gt;&amp;nbsp;					// getter returns a single Identifiable	
&lt;br&gt;&amp;nbsp;					if(type instanceof Identifiable) {
&lt;br&gt;&amp;nbsp;						Object result = &amp;nbsp;method.invoke(o);
&lt;br&gt;-						fixIDs((Identifiable) result);
&lt;br&gt;+						performAction((Identifiable) result, action, actor);
&lt;br&gt;&amp;nbsp;					}
&lt;br&gt;&amp;nbsp;					// getter returns a Collection (maybe)
&lt;br&gt;-					if(type instanceof ParameterizedType) {
&lt;br&gt;+					else if(type instanceof ParameterizedType) {
&lt;br&gt;&amp;nbsp;						try {
&lt;br&gt;&amp;nbsp;							Object result = &amp;nbsp;method.invoke(o);
&lt;br&gt;&amp;nbsp;							Collection&amp;lt;?&amp;gt; c = (Collection&amp;lt;?&amp;gt;) result;
&lt;br&gt;@@ -85,7 +94,7 @@
&lt;br&gt;&amp;nbsp;								Object next = it.next();
&lt;br&gt;&amp;nbsp;								// the Collection contains an Identifiable
&lt;br&gt;&amp;nbsp;								if(next instanceof Identifiable) {
&lt;br&gt;-									fixIDs((Identifiable) next);
&lt;br&gt;+									performAction((Identifiable) next, action, actor);
&lt;br&gt;&amp;nbsp;								}
&lt;br&gt;&amp;nbsp;							}						
&lt;br&gt;&amp;nbsp;						}
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java	2008-12-04 21:01:25 UTC (rev 1821)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java	2008-12-04 22:20:55 UTC (rev 1822)
&lt;br&gt;@@ -26,6 +26,7 @@
&lt;br&gt;&amp;nbsp;import java.io.FileInputStream;
&lt;br&gt;&amp;nbsp;import java.io.FileNotFoundException;
&lt;br&gt;&amp;nbsp;import java.io.InputStream;
&lt;br&gt;+import java.lang.reflect.Method;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;&amp;nbsp;import org.geonetwork.services.ebrim.GeonetworkServiceException;
&lt;br&gt;@@ -66,9 +67,10 @@
&lt;br&gt;&amp;nbsp;				
&lt;br&gt;&amp;nbsp;			// fix missing values
&lt;br&gt;&amp;nbsp;			Fixer fixer = new Fixer();
&lt;br&gt;-			Identifiable fixedIdentifiable = fixer.fixIDs(identifiable);
&lt;br&gt;+			Method action = fixer.getClass().getMethod(&amp;quot;fixID&amp;quot;);
&lt;br&gt;+			Identifiable fixedIdentifiable = fixer.performAction(identifiable, action, fixer);
&lt;br&gt;&amp;nbsp;						
&lt;br&gt;-			// save ExtrinsicObject
&lt;br&gt;+			// persist Identifiable
&lt;br&gt;&amp;nbsp;			// Erik where is the DAO ? :-)
&lt;br&gt;&amp;nbsp;			
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;@@ -89,7 +91,7 @@
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;&amp;nbsp;	private ByteArrayOutputStream transformToEbRIM(InputStream iso19139) throws GeonetworkTransformerException, FileNotFoundException {
&lt;br&gt;&amp;nbsp;		Transformer transformer = new Transformer();
&lt;br&gt;-		InputStream ISO19139toEBRIM = new FileInputStream(new File(&amp;quot;src/main/resources/xslt/ISO19139toEBRIM.xslt&amp;quot;));
&lt;br&gt;+		InputStream ISO19139toEBRIM = new FileInputStream(new File(Resource.ISO19139toEBRIM));
&lt;br&gt;&amp;nbsp;		ByteArrayOutputStream target = new ByteArrayOutputStream();
&lt;br&gt;&amp;nbsp;		transformer.transform(iso19139, ISO19139toEBRIM, target);
&lt;br&gt;&amp;nbsp;		return target;
&lt;br&gt;&lt;br&gt;Added: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Resource.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Resource.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Resource.java	2008-12-04 22:20:55 UTC (rev 1822)
&lt;br&gt;@@ -0,0 +1,6 @@
&lt;br&gt;+package org.geonetwork.services.ebrim.iso19139;
&lt;br&gt;+
&lt;br&gt;+public class Resource {
&lt;br&gt;+
&lt;br&gt;+	public static final String ISO19139toEBRIM = &amp;quot;src/main/resources/xslt/ISO19139toEBRIM.xslt&amp;quot; ;
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java	2008-12-04 21:01:25 UTC (rev 1821)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/test/java/org/geonetwork/services/ebrim/iso19139/FixerTest.java	2008-12-04 22:20:55 UTC (rev 1822)
&lt;br&gt;@@ -24,11 +24,14 @@
&lt;br&gt;&amp;nbsp;import java.io.BufferedWriter;
&lt;br&gt;&amp;nbsp;import java.io.OutputStreamWriter;
&lt;br&gt;&amp;nbsp;import java.io.Writer;
&lt;br&gt;+import java.lang.reflect.Method;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.custommonkey.xmlunit.XMLTestCase;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.ExtrinsicObject;
&lt;br&gt;+import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.test.utilities.core.ExtrinsicObjectFactory;
&lt;br&gt;&amp;nbsp;import org.geonetwork.services.ebrim.iso19139.Fixer.FixerException;
&lt;br&gt;+import org.geonetwork.utils.string.StringUtil;
&lt;br&gt;&amp;nbsp;import org.jibx.runtime.BindingDirectory;
&lt;br&gt;&amp;nbsp;import org.jibx.runtime.IBindingFactory;
&lt;br&gt;&amp;nbsp;import org.jibx.runtime.IMarshallingContext;
&lt;br&gt;@@ -46,24 +49,65 @@
&lt;br&gt;&amp;nbsp;		super(name);
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;-	public void testFixIDs() throws FixerException, JiBXException {
&lt;br&gt;+	public void testFixIDs() throws FixerException, JiBXException, SecurityException, NoSuchMethodException {
&lt;br&gt;&amp;nbsp;		ExtrinsicObject extrinsicObject = ExtrinsicObjectFactory.create();
&lt;br&gt;&amp;nbsp;		Fixer fixer = new Fixer();
&lt;br&gt;-		ExtrinsicObject fixedExtrinsicObject = (ExtrinsicObject)fixer.fixIDs(extrinsicObject);
&lt;br&gt;+
&lt;br&gt;+		// prepare test data by emptying all IDs
&lt;br&gt;+		Method emptyIdAction = fixer.getClass().getMethod(&amp;quot;emptyID&amp;quot;, Identifiable.class);
&lt;br&gt;+		extrinsicObject = (ExtrinsicObject)fixer.performAction(extrinsicObject, emptyIdAction, fixer);
&lt;br&gt;+
&lt;br&gt;+		// method to test
&lt;br&gt;+		Method actionToTest = fixer.getClass().getMethod(&amp;quot;fixID&amp;quot;, Identifiable.class);
&lt;br&gt;+		ExtrinsicObject fixedExtrinsicObject = (ExtrinsicObject)fixer.performAction(extrinsicObject, actionToTest, fixer);
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;-		// set up JiBX marshalling context
&lt;br&gt;+		// marshal to console - nice if you're looking
&lt;br&gt;&amp;nbsp;		IBindingFactory bfact = BindingDirectory.getFactory(ExtrinsicObject.class);
&lt;br&gt;&amp;nbsp;		IMarshallingContext marshallingContext = bfact.createMarshallingContext();
&lt;br&gt;-		// marshal to console - nice if you're looking
&lt;br&gt;&amp;nbsp;		Writer outConsole = new BufferedWriter(new OutputStreamWriter(System.out));
&lt;br&gt;&amp;nbsp;		marshallingContext.setOutput(outConsole);
&lt;br&gt;&amp;nbsp;		marshallingContext.setIndent(3);
&lt;br&gt;&amp;nbsp;		marshallingContext.marshalDocument(fixedExtrinsicObject, &amp;quot;UTF-8&amp;quot;, null);		
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		// TODO really test this
&lt;br&gt;-		// The objectgraph should not contain any empty id attributes for
&lt;br&gt;-		// any Identifiable in the hierarchy
&lt;br&gt;+		// Verify result
&lt;br&gt;+		// there should not be any empty id attribute for any Identifiable in the 
&lt;br&gt;+		// object graph
&lt;br&gt;+		Method checkIdNotEmptyAction = this.getClass().getMethod(&amp;quot;checkIdNotEmpty&amp;quot;, Identifiable.class);
&lt;br&gt;+		try {
&lt;br&gt;+			fixer.performAction(fixedExtrinsicObject, checkIdNotEmptyAction, this);
&lt;br&gt;+		}
&lt;br&gt;+		catch(FixerTestFailedException x) {
&lt;br&gt;+			assertTrue(&amp;quot;fixID works correct&amp;quot;, false);
&lt;br&gt;+		}
&lt;br&gt;+		// if we get here the test was successful
&lt;br&gt;+		assertTrue(&amp;quot;fixID works correct&amp;quot;, true);
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;+	
&lt;br&gt;+	public void checkIdNotEmpty(Identifiable o) throws FixerTestFailedException {
&lt;br&gt;+		if(StringUtil.isEmpty(o.getId().getValue())) {
&lt;br&gt;+			throw new FixerTestFailedException(&amp;quot;found non-empty ID&amp;quot;);
&lt;br&gt;+		}
&lt;br&gt;+	}
&lt;br&gt;+	
&lt;br&gt;+	class FixerTestFailedException extends RuntimeException {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+		public FixerTestFailedException() {
&lt;br&gt;+			super();
&lt;br&gt;+		}
&lt;br&gt;+
&lt;br&gt;+		public FixerTestFailedException(String message, Throwable cause) {
&lt;br&gt;+			super(message, cause);
&lt;br&gt;+		}
&lt;br&gt;+
&lt;br&gt;+		public FixerTestFailedException(String message) {
&lt;br&gt;+			super(message);
&lt;br&gt;+		}
&lt;br&gt;+
&lt;br&gt;+		public FixerTestFailedException(Throwable cause) {
&lt;br&gt;+			super(cause);
&lt;br&gt;+		}
&lt;br&gt;+		
&lt;br&gt;+	}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20844092&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1822--sandbox-3.0.x-geonetwork-services-ebrim-src-tp20844092p20844092.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20842384</id>
	<title>SF.net SVN: geonetwork:[1821] sandbox/3.0.x/geonetwork-services-ebrim/src/ main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService. java</title>
	<published>2008-12-04T13:01:25Z</published>
	<updated>2008-12-04T13:01:25Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1821
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1821&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1821&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-04 21:01:25 +0000 (Thu, 04 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;initial stuff for iso19139 insertion
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java	2008-12-04 20:53:47 UTC (rev 1820)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java	2008-12-04 21:01:25 UTC (rev 1821)
&lt;br&gt;@@ -65,7 +65,8 @@
&lt;br&gt;&amp;nbsp;			Identifiable identifiable = unmarshall(transformationResult);
&lt;br&gt;&amp;nbsp;				
&lt;br&gt;&amp;nbsp;			// fix missing values
&lt;br&gt;-			Identifiable fixedIdentifiable	= processMissingValues(identifiable);
&lt;br&gt;+			Fixer fixer = new Fixer();
&lt;br&gt;+			Identifiable fixedIdentifiable = fixer.fixIDs(identifiable);
&lt;br&gt;&amp;nbsp;						
&lt;br&gt;&amp;nbsp;			// save ExtrinsicObject
&lt;br&gt;&amp;nbsp;			// Erik where is the DAO ? :-)
&lt;br&gt;@@ -93,19 +94,6 @@
&lt;br&gt;&amp;nbsp;		transformer.transform(iso19139, ISO19139toEBRIM, target);
&lt;br&gt;&amp;nbsp;		return target;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;-
&lt;br&gt;-	/**
&lt;br&gt;-	 * 
&lt;br&gt;-	 * @param identifiable
&lt;br&gt;-	 * @return
&lt;br&gt;-	 * @throws GeonetworkServiceException 
&lt;br&gt;-	 */
&lt;br&gt;-	private Identifiable processMissingValues(Identifiable identifiable) throws GeonetworkServiceException {		
&lt;br&gt;-			// process missing values
&lt;br&gt;-			Fixer fixer = new Fixer();
&lt;br&gt;-			Identifiable fixedIdentifiable = fixer.fixIDs(identifiable);
&lt;br&gt;-			return fixedIdentifiable;
&lt;br&gt;-	}
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;	/**
&lt;br&gt;&amp;nbsp;	 * 
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20842384&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1821--sandbox-3.0.x-geonetwork-services-ebrim-src--main-java-org-geonetwork-services-ebrim-iso19139-ISO19139InsertionService.-java-tp20842384p20842384.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20842252</id>
	<title>SF.net SVN: geonetwork:[1820] sandbox/3.0.x/geonetwork-services-ebrim/src/ main/java/org/geonetwork</title>
	<published>2008-12-04T12:53:47Z</published>
	<updated>2008-12-04T12:53:47Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1820
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1820&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1820&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-04 20:53:47 +0000 (Thu, 04 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;hm
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/string/
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/string/StringUtil.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 20:48:19 UTC (rev 1819)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 20:53:47 UTC (rev 1820)
&lt;br&gt;@@ -20,7 +20,6 @@
&lt;br&gt;&amp;nbsp;//==============================================================================
&lt;br&gt;&amp;nbsp;package org.geonetwork.services.ebrim.iso19139;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import java.lang.reflect.InvocationTargetException;
&lt;br&gt;&amp;nbsp;import java.lang.reflect.Method;
&lt;br&gt;&amp;nbsp;import java.lang.reflect.ParameterizedType;
&lt;br&gt;&amp;nbsp;import java.lang.reflect.Type;
&lt;br&gt;@@ -54,9 +53,7 @@
&lt;br&gt;&amp;nbsp;	 * 
&lt;br&gt;&amp;nbsp;	 * @param o
&lt;br&gt;&amp;nbsp;	 * @return
&lt;br&gt;-	 * @throws Exception
&lt;br&gt;-	 * @throws IllegalAccessException
&lt;br&gt;-	 * @throws InvocationTargetException
&lt;br&gt;+	 * @throws FixerException
&lt;br&gt;&amp;nbsp;	 */
&lt;br&gt;&amp;nbsp;	public Identifiable fixIDs(Identifiable o) throws FixerException {
&lt;br&gt;&amp;nbsp;		try {
&lt;br&gt;&lt;br&gt;Added: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/string/StringUtil.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/string/StringUtil.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/string/StringUtil.java	2008-12-04 20:53:47 UTC (rev 1820)
&lt;br&gt;@@ -0,0 +1,32 @@
&lt;br&gt;+//=============================================================================
&lt;br&gt;+//===	Copyright (C) 2008 European Space Agency (ESA).
&lt;br&gt;+//===
&lt;br&gt;+//===	This program is free software; you can redistribute it and/or modify
&lt;br&gt;+//===	it under the terms of the GNU General Public License as published by
&lt;br&gt;+//===	the Free Software Foundation; either version 2 of the License, or (at
&lt;br&gt;+//===	your option) any later version.
&lt;br&gt;+//===
&lt;br&gt;+//===	This program is distributed in the hope that it will be useful, but
&lt;br&gt;+//===	WITHOUT ANY WARRANTY; without even the implied warranty of
&lt;br&gt;+//===	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
&lt;br&gt;+//===	General Public License for more details.
&lt;br&gt;+//===
&lt;br&gt;+//===	You should have received a copy of the GNU General Public License
&lt;br&gt;+//===	along with this program; if not, write to the Free Software
&lt;br&gt;+//===	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
&lt;br&gt;+//===
&lt;br&gt;+//===	Contact: Jeroen Ticheler - E-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20842252&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geonetwork@...&lt;/a&gt;
&lt;br&gt;+
&lt;br&gt;+//==============================================================================
&lt;br&gt;+package org.geonetwork.utils.string;
&lt;br&gt;+/**
&lt;br&gt;+ * 
&lt;br&gt;+ * @author heikki doeleman
&lt;br&gt;+ *
&lt;br&gt;+ */
&lt;br&gt;+public class StringUtil {
&lt;br&gt;+
&lt;br&gt;+	public static boolean isEmpty(String s) {
&lt;br&gt;+		return s == null || s.length() == 0 ;
&lt;br&gt;+	}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20842252&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1820--sandbox-3.0.x-geonetwork-services-ebrim-src--main-java-org-geonetwork-tp20842252p20842252.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20842150</id>
	<title>SF.net SVN: geonetwork:[1819] sandbox/3.0.x/geonetwork-services-ebrim/src/ main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java</title>
	<published>2008-12-04T12:48:19Z</published>
	<updated>2008-12-04T12:48:19Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1819
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1819&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1819&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-04 20:48:19 +0000 (Thu, 04 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;hm
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 20:45:05 UTC (rev 1818)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 20:48:19 UTC (rev 1819)
&lt;br&gt;@@ -31,6 +31,7 @@
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable;
&lt;br&gt;&amp;nbsp;import org.geonetwork.domain.ebrim.informationmodel.core.datatype.URN;
&lt;br&gt;&amp;nbsp;import org.geonetwork.services.ebrim.GeonetworkServiceException;
&lt;br&gt;+import org.geonetwork.utils.string.StringUtil;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * The result of the XSLT transformation of the incoming ISO 19139 document is incomplete. This class
&lt;br&gt;@@ -62,7 +63,7 @@
&lt;br&gt;&amp;nbsp;			//
&lt;br&gt;&amp;nbsp;			// TODO fix ID here
&lt;br&gt;&amp;nbsp;			//
&lt;br&gt;-			if(StringUtil.isEmpty(o.getId())) {
&lt;br&gt;+			if(StringUtil.isEmpty(o.getId().getValue())) {
&lt;br&gt;&amp;nbsp;				o.setId(new URN(UUID.randomUUID().toString()));
&lt;br&gt;&amp;nbsp;				System.out.println(&amp;quot;fixed an id&amp;quot;);
&lt;br&gt;&amp;nbsp;			}
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
&lt;br&gt;The future of the web can't happen without you. &amp;nbsp;Join us at MIX09 to help
&lt;br&gt;pave the way to the Next Web now. Learn more and register at
&lt;br&gt;&lt;a href=&quot;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;GeoNetwork-commit mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20842150&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;GeoNetwork-commit@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/geonetwork-commit&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://www.nabble.com/geonetwork-commit-f19043.html&quot; embed=&quot;fixTarget[19043]&quot; target=&quot;_top&quot; &gt;geonetwork-commit&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/SF.net-SVN%3A-geonetwork%3A-1819--sandbox-3.0.x-geonetwork-services-ebrim-src--main-java-org-geonetwork-services-ebrim-iso19139-Fixer.java-tp20842150p20842150.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20842102</id>
	<title>SF.net SVN: geonetwork:[1818] sandbox/3.0.x/geonetwork-services-ebrim/src/ main/java/org/geonetwork</title>
	<published>2008-12-04T12:45:05Z</published>
	<updated>2008-12-04T12:45:05Z</updated>
	<author>
		<name>heikkidoeleman</name>
	</author>
	<content type="html">Revision: 1818
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1818&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://geonetwork.svn.sourceforge.net/geonetwork/?rev=1818&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; heikkidoeleman
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2008-12-04 20:45:05 +0000 (Thu, 04 Dec 2008)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;initial stuff for iso19139 insertion
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/xslt/GeonetworkTransformerException.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/utils/xslt/Transformer.java
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 20:39:15 UTC (rev 1817)
&lt;br&gt;+++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/Fixer.java	2008-12-04 20:45:05 UTC (rev 1818)
&lt;br&gt;@@ -1,3 +1,23 @@
&lt;br&gt;+//=============================================================================
&lt;br&gt;+//===	Copyright (C) 2008 European Space Agency (ESA).
&lt;br&gt;+//===
&lt;br&gt;+//===	This program is free software; you can redistribute it and/or modify
&lt;br&gt;+//===	it under the terms of the GNU General Public License as published by
&lt;br&gt;+//===	the Free Software Foundation; either version 2 of the License, or (at
&lt;br&gt;+//===	your option) any later version.
&lt;br&gt;+//===
&lt;br&gt;+//===	This program is distributed in the hope that it will be useful, but
&lt;br&gt;+//===	WITHOUT ANY WARRANTY; without even the implied warranty of
&lt;br&gt;+//===	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
&lt;br&gt;+//===	General Public License for more details.
&lt;br&gt;+//===
&lt;br&gt;+//===	You should have received a copy of the GNU General Public License
&lt;br&gt;+//===	along with this program; if not, write to the Free Software
&lt;br&gt;+//===	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
&lt;br&gt;+//===
&lt;br&gt;+//===	Contact: Jeroen Ticheler - E-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20842102&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geonetwork@...&lt;/a&gt;
&lt;br&gt;+
&lt;br&gt;+//==============================================================================
&lt;br&gt;&amp;nbsp;package org.geonetwork.services.ebrim.iso19139;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import java.lang.reflect.InvocationTargetException;
&lt;br&gt;@@ -42,8 +62,10 @@
&lt;br&gt;&amp;nbsp;			//
&lt;br&gt;&amp;nbsp;			// TODO fix ID here
&lt;br&gt;&amp;nbsp;			//
&lt;br&gt;-			o.setId(new URN(UUID.randomUUID().toString()));
&lt;br&gt;-			System.out.println(&amp;quot;fixed an id&amp;quot;);
&lt;br&gt;+			if(StringUtil.isEmpty(o.getId())) {
&lt;br&gt;+				o.setId(new URN(UUID.randomUUID().toString()));
&lt;br&gt;+				System.out.println(&amp;quot;fixed an id&amp;quot;);
&lt;br&gt;+			}
&lt;br&gt;&amp;nbsp;			
&lt;br&gt;&amp;nbsp;			// fix IDs for all Identifiables in this object graph
&lt;br&gt;&amp;nbsp;			Method[] methods = o.getClass().getMethods();
&lt;br&gt;&lt;br&gt;Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/iso19139/ISO19139InsertionService.java
&lt;br&gt;===================================================================
&lt;br&gt;--- sandbox/3.0.x/ge