diff --git a/log.txt b/log.txt new file mode 100644 index 0000000..2ebacc0 --- /dev/null +++ b/log.txt @@ -0,0 +1,24 @@ +0 [main] INFO org.gcube.common.scope.impl.ScopeProviderScanner - using scope provider org.gcube.common.scope.impl.DefaultScopeProvider@771199f0 +2 [main] DEBUG org.gcube.common.scope.impl.DefaultScopeProvider - setting scope /gcube/devsec in thread 1 +945 [main] INFO org.gcube.common.scan.DefaultScanner - matched 13 resources from 40 urls in 101 ms +971 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/d4science.servicemap +1129 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/vo1.servicemap +1130 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/openbio.servicemap +1131 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/cnr.servicemap +1132 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/testing.servicemap +1132 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/gcube.servicemap +1133 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/farm.servicemap +1134 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/isti.servicemap +1135 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/gcubeapps.servicemap +1136 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/ecosystem.servicemap +1137 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/securevo.servicemap +1137 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/devsec.servicemap +1138 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/fabio/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/devnext.servicemap +1399 [main] INFO org.gcube.common.clients.stubs.jaxws.StubFactory - fetching wsdl for XQueryAccessService at http://dlib01.isti.cnr.it:8080/wsrf/services/gcube/informationsystem/collector/XQueryAccess?wsdl +1799 [main] INFO org.gcube.common.clients.stubs.jaxws.StubCache - caching stub for interface org.gcube.resources.discovery.icclient.stubs.CollectorStub +2061 [main] INFO org.gcube.resources.discovery.icclient.ICClient - executing query declare namespace ic = 'http://gcube-system.org/namespaces/informationsystem/registry'; for $resource in collection('/db/Profiles/GenericResource')//Document/Data/ic:Profile/Resource where ($resource/Profile/SecondaryType/text() eq 'ISO') and ($resource/Profile/Name/text() eq 'MetadataConstants') return $resource +2123 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.ScopeHandler@7dd84118 +2123 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.TargetServiceHandler@c10420b +2124 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.ClientInfoHandler@593e9bf1 +2124 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.LegacyWSAddressingHandler@3d3b10b1 +2317 [main] INFO org.gcube.resources.discovery.icclient.ICClient - executed query declare namespace ic = 'http://gcube-system.org/namespaces/informationsystem/registry'; for $resource in collection('/db/Profiles/GenericResource')//Document/Data/ic:Profile/Resource where ($resource/Profile/SecondaryType/text() eq 'ISO') and ($resource/Profile/Name/text() eq 'MetadataConstants') return $resource in 256 ms diff --git a/pom.xml b/pom.xml index 5ba2a60..ebbbc15 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ org.gcube.spatial.data geonetwork - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT geonetwork diff --git a/src/main/java/org/gcube/spatial/data/geonetwork/GeoNetwork.java b/src/main/java/org/gcube/spatial/data/geonetwork/GeoNetwork.java index eeeb2e6..1684316 100644 --- a/src/main/java/org/gcube/spatial/data/geonetwork/GeoNetwork.java +++ b/src/main/java/org/gcube/spatial/data/geonetwork/GeoNetwork.java @@ -11,12 +11,15 @@ import it.geosolutions.geonetwork.util.GNSearchResponse; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import javax.xml.bind.JAXBException; import org.gcube.spatial.data.geonetwork.configuration.AuthorizationException; import org.gcube.spatial.data.geonetwork.configuration.Configuration; import org.gcube.spatial.data.geonetwork.configuration.ConfigurationManager; +import org.gcube.spatial.data.geonetwork.configuration.XMLAdapter; import org.geotoolkit.xml.XML; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; @@ -120,7 +123,7 @@ public class GeoNetwork implements GeoNetworkPublisher { */ @Override public long insertMetadata(GNInsertConfiguration configuration,Metadata meta) throws GNLibException, GNServerException, IOException, JAXBException{ - return insertMetadata(configuration, meta2File(meta)); + return insertMetadata(configuration, meta2File(meta,registeredXMLAdapters)); } /* (non-Javadoc) @@ -136,7 +139,7 @@ public class GeoNetwork implements GeoNetworkPublisher { */ @Override public long insertMetadata(Metadata meta) throws GNLibException, GNServerException, IOException, JAXBException{ - return insertMetadata(meta2File(meta)); + return insertMetadata(meta2File(meta,registeredXMLAdapters)); } @@ -153,10 +156,12 @@ public class GeoNetwork implements GeoNetworkPublisher { */ @Override public void updateMetadata(long id,Metadata meta) throws GNLibException, GNServerException, IOException, JAXBException{ - updateMetadata(id, meta2File(meta)); + updateMetadata(id, meta2File(meta,registeredXMLAdapters)); } + + /* (non-Javadoc) * @see org.gcube.spatial.data.geonetwork.GeoNetworkReader#deleteMetadata(long) */ @@ -167,6 +172,15 @@ public class GeoNetwork implements GeoNetworkPublisher { } + + @Override + public void registerXMLAdapter(XMLAdapter adapter) { + registeredXMLAdapters.add(adapter); + } + + + + //************* PRIVATE private GNClient theClient=null; @@ -178,10 +192,16 @@ public class GeoNetwork implements GeoNetworkPublisher { } - private static File meta2File(Metadata meta) throws IOException, JAXBException{ + private List registeredXMLAdapters=new ArrayList(); + + + private static File meta2File(Metadata meta,List adapters) throws IOException, JAXBException{ File temp=File.createTempFile("meta", ".xml"); FileWriter writer=new FileWriter(temp); - writer.write(XML.marshal(meta)); + String marshalled=XML.marshal(meta); + for(XMLAdapter adapter:adapters) + marshalled=adapter.adaptXML(marshalled); + writer.write(marshalled); writer.close(); return temp; } diff --git a/src/main/java/org/gcube/spatial/data/geonetwork/GeoNetworkPublisher.java b/src/main/java/org/gcube/spatial/data/geonetwork/GeoNetworkPublisher.java index 0d0638e..012e56a 100644 --- a/src/main/java/org/gcube/spatial/data/geonetwork/GeoNetworkPublisher.java +++ b/src/main/java/org/gcube/spatial/data/geonetwork/GeoNetworkPublisher.java @@ -10,7 +10,7 @@ import java.io.IOException; import javax.xml.bind.JAXBException; -import org.gcube.spatial.data.geonetwork.configuration.AuthorizationException; +import org.gcube.spatial.data.geonetwork.configuration.XMLAdapter; import org.opengis.metadata.Metadata; public interface GeoNetworkPublisher extends GeoNetworkReader { @@ -32,6 +32,7 @@ public interface GeoNetworkPublisher extends GeoNetworkReader { GNServerException, IOException, JAXBException; + public void updateMetadata(long id, File metadataFile) throws GNLibException, GNServerException; @@ -41,4 +42,7 @@ public interface GeoNetworkPublisher extends GeoNetworkReader { public void deleteMetadata(long id) throws GNLibException, GNServerException; + + public void registerXMLAdapter(XMLAdapter adapter); + } diff --git a/src/main/java/org/gcube/spatial/data/geonetwork/configuration/XMLAdapter.java b/src/main/java/org/gcube/spatial/data/geonetwork/configuration/XMLAdapter.java new file mode 100644 index 0000000..c0d36c2 --- /dev/null +++ b/src/main/java/org/gcube/spatial/data/geonetwork/configuration/XMLAdapter.java @@ -0,0 +1,7 @@ +package org.gcube.spatial.data.geonetwork.configuration; + +public interface XMLAdapter { + + public String adaptXML(String xml); + +}