Project

General

Profile

« Previous | Next » 

Revision 45805

fixed generation of resolved Record

View differences:

modules/dnet-dli/trunk/src/test/java/eu/dnetlib/resolver/DLISerializerTest.java
1 1
package eu.dnetlib.resolver;
2 2

  
3
import com.google.gson.Gson;
3 4
import eu.dnetlib.dli.resolver.model.*;
4 5
import eu.dnetlib.dli.resolver.model.serializer.ResolverSerializer;
5 6
import eu.dnetlib.resolver.parser.DMFResolverParser;
......
8 9
import org.apache.commons.io.IOUtils;
9 10
import org.apache.commons.logging.Log;
10 11
import org.apache.commons.logging.LogFactory;
12
import org.junit.Assert;
11 13
import org.junit.Test;
12 14
import org.junit.runner.RunWith;
13 15
import org.springframework.beans.factory.annotation.Autowired;
......
19 21
import javax.xml.transform.TransformerFactory;
20 22
import javax.xml.transform.stream.StreamResult;
21 23
import javax.xml.transform.stream.StreamSource;
24
import java.io.ByteArrayInputStream;
22 25
import java.io.IOException;
23 26
import java.io.InputStream;
24 27
import java.io.StringWriter;
......
76 79

  
77 80
	}
78 81

  
82

  
83
	@Test
84
	public void testSerializeFromJson() throws Exception {
85
		final InputStream recordStream = this.getClass().getResourceAsStream("/eu/dnetlib/dli/transform/resolvedObject.json");
86
		final Gson gson = new Gson();
87
		final ResolvedObject resolvedObject = gson.fromJson(IOUtils.toString(recordStream), ResolvedObject.class);
88
		Assert.assertEquals(resolvedObject.getType(), ObjectType.dataset);
89
		final String recordTemplate =
90
				"<root xmlns:oaf=\"http://namespace.dnet.eu/oaf\" xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">%s</root>";
91
		final String xml = serializer.serializeToXML(resolvedObject);
92

  
93
		final String inputRecord = String.format(recordTemplate, xml);
94

  
95
		final InputStream xsltAsStream = getClass().getResourceAsStream("/eu/dnetlib/resolver/xslt/transformResolvedRecord.xsl");
96

  
97
		final InputStream xmlAsStream = getClass().getResourceAsStream("/eu/dnetlib/dli/transform/inputResolved.xml");
98

  
99
		final TransformerFactory factory = TransformerFactory.newInstance();
100
		factory.newTransformer();
101
		final StreamSource xsltSource = new StreamSource(xsltAsStream);
102

  
103
		final Transformer transformer = factory.newTransformer(xsltSource);
104
		transformer.setOutputProperty(OutputKeys.INDENT, "yes");
105
		final StringWriter output = new StringWriter();
106
		transformer.transform(new StreamSource(new ByteArrayInputStream(inputRecord.getBytes())), new StreamResult(output));
107
		final String record = output.toString();
108
		System.out.println("record = " + record);
109
	}
110

  
79 111
	private ResolvedObject createPMFMock() throws IOException {
80 112
		final InputStream resource = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMF.xml");
81 113
		String xml = IOUtils.toString(resource);
modules/dnet-dli/trunk/src/test/resources/eu/dnetlib/dli/transform/inputResolved.xml
1
<root xmlns:oaf="http://namespace.dnet.eu/oaf" xmlns:dri="http://www.driver-repository.eu/namespace/dri"
2
      xmlns:dc="http://purl.org/dc/elements/1.1/">
3
    <metadata>
4
        <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-3"
5
                  xsi:schemaLocation="http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd">
6
            <identifier identifierType="DOI">10.1594/pangaea.695501</identifier>
7
            <creators>
8
                <creator>
9
                    <creatorName>Winn, Kyaw</creatorName>
10
                </creator>
11
                <creator>
12
                    <creatorName>Erlenkeuser, Helmut</creatorName>
13
                </creator>
14
                <creator>
15
                    <creatorName>Nordberg, Kjell</creatorName>
16
                </creator>
17
                <creator>
18
                    <creatorName>Gustafsson, Mikael</creatorName>
19
                </creator>
20
            </creators>
21
            <titles>
22
                <title>Stable isotopes measured on Ammonia beccarii from sediment core GIK12523-1</title>
23
            </titles>
24

  
25
            <publisher>PANGAEA - Data Publisher for Earth &amp; Environmental Science</publisher>
26
            <subjects>
27

  
28
                <subject subjectScheme="unknown">DEPTH, sediment/rock</subject>
29

  
30
                <subject subjectScheme="unknown">Size fraction &gt; 0.063 mm, sand</subject>
31

  
32
                <subject subjectScheme="unknown">Coiling ratio</subject>
33

  
34
                <subject subjectScheme="unknown">Ammonia beccarii dextral</subject>
35

  
36
                <subject subjectScheme="unknown">Ammonia beccarii dextral, d18O</subject>
37

  
38
                <subject subjectScheme="unknown">Ammonia beccarii dextral, d13C</subject>
39

  
40
                <subject subjectScheme="unknown">Ammonia beccarii sinistral</subject>
41

  
42
                <subject subjectScheme="unknown">Ammonia beccarii sinistral, d18O</subject>
43

  
44
                <subject subjectScheme="unknown">Ammonia beccarii sinistral, d13C</subject>
45

  
46
                <subject subjectScheme="unknown">GIK-cruise</subject>
47

  
48
            </subjects>
49
            <resourceType resourceTypeGeneral="dataset">dataset</resourceType>
50
        </resource>
51
    </metadata>
52
    <oaf:about xmlns:oaf="http://namespace.dnet.eu/oaf">
53
        <oaf:datainfo>
54
            <oaf:completionStatus>complete</oaf:completionStatus>
55

  
56
            <oaf:resolvedFrom id="dli_________::datacite" name="Datasets in Datacite" completionStatus="complete"/>
57

  
58
        </oaf:datainfo>
59
    </oaf:about>
60
</root>
modules/dnet-dli/trunk/src/test/resources/eu/dnetlib/dli/transform/resolvedObject.json
1
{
2
  "pid": "10.1594/PANGAEA.695501",
3
  "pidType": "DOI",
4
  "titles": [
5
    "Stable isotopes measured on Ammonia beccarii from sediment core GIK12523-1"
6
  ],
7
  "authors": [
8
    "Winn, Kyaw",
9
    "Erlenkeuser, Helmut",
10
    "Nordberg, Kjell",
11
    "Gustafsson, Mikael"
12
  ],
13
  "type": "dataset",
14
  "datasourceProvenance": [
15
    {
16
      "datasource": "Datasets in Datacite",
17
      "datasourceId": "dli_________::datacite",
18
      "publisher": "PANGAEA - Data Publisher for Earth \u0026 Environmental Science",
19
      "provisionMode": "resolved",
20
      "completionStatus": "complete",
21
      "visible": false,
22
      "datasourceContribution": "[\"pid\",\"pidType\"]"
23
    }
24
  ],
25
  "completionStatus": "complete",
26
  "subjects": [
27
    {
28
      "scheme": "unknown",
29
      "term": "DEPTH, sediment/rock"
30
    },
31
    {
32
      "scheme": "unknown",
33
      "term": "Size fraction \u003e 0.063 mm, sand"
34
    },
35
    {
36
      "scheme": "unknown",
37
      "term": "Coiling ratio"
38
    },
39
    {
40
      "scheme": "unknown",
41
      "term": "Ammonia beccarii dextral"
42
    },
43
    {
44
      "scheme": "unknown",
45
      "term": "Ammonia beccarii dextral, d18O"
46
    },
47
    {
48
      "scheme": "unknown",
49
      "term": "Ammonia beccarii dextral, d13C"
50
    },
51
    {
52
      "scheme": "unknown",
53
      "term": "Ammonia beccarii sinistral"
54
    },
55
    {
56
      "scheme": "unknown",
57
      "term": "Ammonia beccarii sinistral, d18O"
58
    },
59
    {
60
      "scheme": "unknown",
61
      "term": "Ammonia beccarii sinistral, d13C"
62
    },
63
    {
64
      "scheme": "unknown",
65
      "term": "GIK-cruise"
66
    }
67
  ]
68
}
modules/dnet-dli/trunk/src/main/java/eu/dnetlib/msro/workflows/nodes/FilterResolvedRecordJobNode.java
43 43
		final Iterable<String> resultIterator = () -> DnetStreamSupport.generateStreamFromIterator(resolverStore.getAllRecords().iterator())
44 44
				.map(record -> {
45 45
					final ObjectType type = record.getType();
46
					if (type == null || !type.toString().equals(this.type))
47
						return "<JUNK/>";
48
					final String resultXML = String.format(recordTemplate, resolverSerializer.serializeToXML(record));
49
					return resultXML;
46
                    if (type == null || !type.toString().equals(this.type)) {
47
                        return "<JUNK/>";
48
                    }
49
                    final String resultXML = String.format(recordTemplate, resolverSerializer.serializeToXML(record));
50
                    if ("10.1594/pangaea.695501".equals(record.getPid())) {
51
                        System.out.println(record.toString());
52
                        System.out.println(resultXML);
53
                    }
54
                    return resultXML;
50 55
				}).iterator();
51 56

  
52 57
		final ResultSet<String> resultSet = resultSetFactory.createResultSet(resultIterator);
modules/dnet-dli/trunk/src/main/resources/eu/dnetlib/resolver/xslt/transformResolvedRecord.xsl
1 1
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
2
                xmlns:datacite="http://datacite.org/schema/kernel-3"
3
                xmlns:datetime="http://exslt.org/dates-and-times" xmlns:exslt="http://exslt.org/common"
4
                xmlns:oai="http://www.openarchives.org/OAI/2.0/"
5
                xmlns:dri="http://www.driver-repository.eu/namespace/dri"
6
                xmlns:dnet="eu.dnetlib.miscutils.functional.xml.DnetXsltFunctions"
7
                xmlns:oaf="http://namespace.dnet.eu/oaf"
8
                exclude-result-prefixes="xsl datetime exslt dnet"
9
                version="2.0">
2
				xmlns:datacite="http://datacite.org/schema/kernel-3"
3
				xmlns:datetime="http://exslt.org/dates-and-times" xmlns:exslt="http://exslt.org/common"
4
				xmlns:oai="http://www.openarchives.org/OAI/2.0/"
5
				xmlns:dri="http://www.driver-repository.eu/namespace/dri"
6
				xmlns:dnet="eu.dnetlib.dli.DLIUtils"
7
				xmlns:oaf="http://namespace.dnet.eu/oaf"
8
				exclude-result-prefixes="xsl datetime exslt dnet"
9
				version="2.0">
10 10

  
11 11
	<xsl:output method="xml" indent="yes"/>
12 12
	<xsl:variable name="namespacePrefix">
......
38 38
		<xsl:variable name="datestamp" select="datetime:dateTime()"/>
39 39
		<xsl:variable name="evaluatedId" select="normalize-space(//datacite:identifier/text())"/>
40 40
		<xsl:variable name="evaluatedIdType" select="normalize-space(//datacite:identifier/@identifierType)"/>
41
		<xsl:variable name="generatedIDataset" select="concat($evaluatedId, '::', $evaluatedIdType)"/>
41
		<xsl:variable name="generatedIDataset" select="dnet:generateIdentifier($evaluatedId,  $evaluatedIdType)"/>
42 42

  
43 43
		<oai:record xmlns:oai="http://www.openarchives.org/OAI/2.0/"
44 44
		            xmlns:dri="http://www.driver-repository.eu/namespace/dri">
45 45
			<oai:header>
46 46
				<dri:objIdentifier>
47
					<xsl:value-of select="concat($namespacePrefix,'::', dnet:md5($generatedIDataset))"/>
47
					<xsl:value-of select="concat($namespacePrefix,'::', $generatedIDataset)"/>
48 48
				</dri:objIdentifier>
49 49
				<dri:recordIdentifier>
50 50
					<xsl:value-of select="$generatedIDataset"/>
......
70 70
		<xsl:variable name="datestamp" select="datetime:dateTime()"/>
71 71
		<xsl:variable name="evaluatedId" select="normalize-space(//oaf:pid)"/>
72 72
		<xsl:variable name="evaluatedIdType" select="normalize-space(//oaf:pid/@type)"/>
73
		<xsl:variable name="generatedIDPublication" select="concat($evaluatedId, '::', $evaluatedIdType)"/>
73
		<xsl:variable name="generatedIDPublication" select="dnet:generateIdentifier($evaluatedId,  $evaluatedIdType)"/>
74 74

  
75 75
		<oai:record xmlns:oai="http://www.openarchives.org/OAI/2.0/"
76 76
		            xmlns:dri="http://www.driver-repository.eu/namespace/dri">
77 77
			<oai:header>
78 78
				<dri:objIdentifier>
79
					<xsl:value-of select="concat($namespacePrefix,'::', dnet:md5($generatedIDPublication))"/>
79
					<xsl:value-of select="concat($namespacePrefix,'::', $generatedIDPublication)"/>
80 80
				</dri:objIdentifier>
81 81
				<dri:recordIdentifier>
82 82
					<xsl:value-of select="$generatedIDPublication"/>

Also available in: Unified diff