Hello Hao
I have pushed on [1] a clone of you work + merge with latest SIS
development and removal of trailing spaces (for allowing Checkstyle
checks to pass). You can merge with your work if convenient. Note
however that recent SIS development introduces one change in metadata
database: when creating table in the databases, the ISO prefixes (for
example "CI_" in "CI_Citation") is now dropped. In other words, the
table created by SIS in the database is no longer named "CI_Citation",
but is named "Citation" instead. This change is motivated in part
because, in my understanding, ISO is dropping the prefixes in new standards.
On the Google Summer of Code work, I suggest to do the following tasks:
* Make sure that "mvn install" works from the command line, with tests
enabled. Please let us know if you encounter any issue.
* In org.apache.sis.services.ows.package-info, add a Javadoc telling
from which standard those classes come from, how they were generated
(JAXB compiler?) and, if you modified the result, what were the
modifications.
* In the org.apache.sis.services.ows package, classes Address,
Telephone and OnlineResource seem similar to ISO 19115 classes of
the same name. Can you add a note in their javadoc describing the
relationship with ISO 19115?
* RequestMethod has javadoc interleaved with JAXB annotations. The
order should be class Javadoc, then annotations, then class
declaration. Same for OwsServiceProvider, OwsServiceIdentification
and others.
* You can remove the @SuppressWarnings("CloneableClassWithoutClone")
annotations; they do not apply to the classes in this package.
* org.apache.sis.services.csw.ogcservice.GetCapabilities,
Capabilities, InsertResult and others have the license header at the
wrong location.
* org.apache.sis.services.csw.impl.OGCServiceImpl and
org.apache.sis.services.csw.discovery.GetDomainResponse are
completely empty. Are these classes used?
Many classes, fields or methods have empty javadoc tags. For example:
/**
*
* @param transaction
* @return
*/
Ideally the Javadoc should be completed. But if not (for example because
they are redundant with other information), I think it is better to
completely remove those tags instead than keeping empty tags, in order
to avoid giving a false impression of completeness. But if you plan to
complete javadoc, before doing so see next item.
I suspect that most classes in CSW and OWS packages are for internal use
by the "sis-webapp" module. Is that right? If yes, then we may not need
getter and setter methods, since no one else than "sis-webapp" would use
those classes. Instead, the JAXB annotations could be on the fields
directly. This would make smaller classes.
Thanks!
Martin
[1] https://github.com/desruisseaux/sis/tree/CSW