Bug #3237
closedSearch actor in remote repository doesn't work
0%
Description
The reason of the search not work is that kepler sets "entity" as
namespace when it searches actors. In query.xsd and resultset.xsd, the type
of namespace is anyURL. The auto-generated stub java files will
match anyURL to java URI class. In java URI class, if the constructor
taking a string without "http://" or any other "something://", it will
through an exception that URI schema couldn't find. "entity" is the case.
So the search doesn't work.
Last time when we had this issue, I just hacked the auto-generated code
to create new jar file. It is not a good solution.
Here is my proposal to fix the issue:
Change data type to xs:string for namespace in query.xsd and resultset.xsd
in seek/ecogrid. I don't think this change will lose lots of things.
I did some preliminary developement in my test machine. Here are some
changes we should make:
1) Seek project, we need to change query.xsd, resultset.xsd,
EcogridJavaToMetacatJavaQueryTransformer.java and
MetacatResultsetParser.java. They all are minor changes.
2) In Kepler, we need to replace
org.ecoinformatics.ecogrid.QueryService-stub.jar.
This is for code change.
It is amazing that the kepler with new
org.ecoinformatics.ecogrid.QueryService-stub.jar can search data and
resgistry successfully against both old and new servers. I don't
understand it but it does work. So it is not in rush to update knb and
registry in our production machine. The only server needed being updated
very soon is library.kepler-org.org/kepler.