adding integration tests

This commit is contained in:
Paulo Graça
2021-09-21 16:37:59 +01:00
parent b254c8eeea
commit ded4f334ec
8 changed files with 918 additions and 18 deletions

View File

@@ -53,22 +53,26 @@ public class OpenAIRERestConnector {
private static Logger log = org.apache.logging.log4j.LogManager.getLogger(OpenAIRERestConnector.class);
/**
* OpenAIRE API Url
* OpenAIRE API Url
* and can be configured with: openaire.api.url
*/
private String url;
private String url = "https://api.openaire.eu";
/**
* Boolean with token usage definition true if we want to use a token
* and can be configured with: openaire.token.enabled
*/
boolean tokenEnabled;
boolean tokenEnabled = false;
/**
* OpenAIRE Authorization and Authentication Token Service URL
* and can be configured with: openaire.token.url
*/
private String tokenServiceUrl;
/**
* OpenAIRE clientId
* and can be configured with: openaire.token.clientId
*/
private String clientId;
@@ -79,13 +83,16 @@ public class OpenAIRERestConnector {
/**
* OpenAIRE clientSecret
* and can be configured with: openaire.token.clientSecret
*/
private String clientSecret;
public OpenAIRERestConnector(String url) {
this.url = url;
}
/**
* This method grabs an accessToken an sets the expiration time Based.<br/>
* Based on https://develop.openaire.eu/basic.html

View File

@@ -18,6 +18,13 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Logger;
import org.dspace.content.dto.MetadataValueDTO;
import org.dspace.external.OpenAIRERestConnector;
import org.dspace.external.model.ExternalDataObject;
import org.dspace.external.provider.ExternalDataProvider;
import org.springframework.beans.factory.annotation.Autowired;
import eu.openaire.jaxb.helper.FundingHelper;
import eu.openaire.jaxb.helper.ProjectHelper;
import eu.openaire.jaxb.model.Response;
@@ -26,13 +33,6 @@ import eu.openaire.oaf.model.base.FunderType;
import eu.openaire.oaf.model.base.FundingTreeType;
import eu.openaire.oaf.model.base.FundingType;
import eu.openaire.oaf.model.base.Project;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Logger;
import org.dspace.content.dto.MetadataValueDTO;
import org.dspace.external.OpenAIRERestConnector;
import org.dspace.external.model.ExternalDataObject;
import org.dspace.external.provider.ExternalDataProvider;
import org.springframework.beans.factory.annotation.Autowired;
/**
* This class is the implementation of the ExternalDataProvider interface that
@@ -81,7 +81,7 @@ public class OpenAIREFundingDataProvider implements ExternalDataProvider {
@Override
public Optional<ExternalDataObject> getExternalDataObject(String id) {
// we use base64 encoding in order to use slashes / and other
// characters that must be escaped for the <:entry-id>
String decodedId = new String(Base64.getDecoder().decode(id));
@@ -90,10 +90,8 @@ public class OpenAIREFundingDataProvider implements ExternalDataProvider {
try {
if (response.getHeader() != null && Integer.parseInt(response.getHeader().getTotal()) > 0) {
Project project = response.getResults().getResult().get(0).getMetadata().getEntity().getProject();
ExternalDataObject externalDataObject = new OpenAIREFundingDataProvider.ExternalDataObjectBuilder(project)
.setId(generateProjectURI(project))
.setSource(sourceIdentifier)
.build();
ExternalDataObject externalDataObject = new OpenAIREFundingDataProvider.ExternalDataObjectBuilder(
project).setId(generateProjectURI(project)).setSource(sourceIdentifier).build();
return Optional.of(externalDataObject);
}
} catch (NumberFormatException e) {
@@ -137,9 +135,7 @@ public class OpenAIREFundingDataProvider implements ExternalDataProvider {
if (projects.size() > 0) {
return projects.stream()
.map(project -> new OpenAIREFundingDataProvider.ExternalDataObjectBuilder(project)
.setId(generateProjectURI(project))
.setSource(sourceIdentifier)
.build())
.setId(generateProjectURI(project)).setSource(sourceIdentifier).build())
.collect(Collectors.toList());
}
return Collections.emptyList();

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
default-lazy-init="true">
<bean id="openAIRERestConnector"
class="org.dspace.external.OpenAIRERestConnector">
<constructor-arg
value="${openaire.api.url:https://api.openaire.eu}" />
<property name="tokenEnabled"
value="${openaire.token.enabled:false}" />
<property name="tokenServiceUrl"
value="${openaire.token.url:https://aai.openaire.eu/oidc/token}" />
<property name="clientId"
value="${openaire.token.clientId:CLIENT_ID}" />
<property name="clientSecret"
value="${openaire.token.clientSecret:CLIENT_SECRET}" />
</bean>
<bean
class="org.dspace.external.provider.impl.MockOpenAIREFundingDataProvider"
init-method="init">
<property name="sourceIdentifier" value="openAIREFunding" />
<property name="connector" ref="openAIRERestConnector" />
</bean>
</beans>

View File

@@ -0,0 +1,95 @@
package org.dspace.app.rest;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasJsonPath;
import static org.hamcrest.Matchers.is;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.dspace.app.rest.matcher.ExternalSourceEntryMatcher;
import org.dspace.app.rest.matcher.ExternalSourceMatcher;
import org.dspace.app.rest.test.AbstractControllerIntegrationTest;
import org.hamcrest.Matchers;
import org.junit.Test;
public class OpenAIREFundingExternalSourcesIT extends AbstractControllerIntegrationTest {
/**
* Test openaire funding external source
*
* @throws Exception
*/
@Test
public void findOneOpenAIREFundingExternalSourceTest() throws Exception {
getClient().perform(get("/api/integration/externalsources")).andExpect(status().isOk())
.andExpect(jsonPath("$._embedded.externalsources", Matchers.hasItem(
ExternalSourceMatcher.matchExternalSource("openAIREFunding", "openAIREFunding", false))));
}
/**
* Test openaire funding entries for a query returning no results
*
* @throws Exception
*/
@Test
public void findOneOpenAIREFundingExternalSourceEntriesEmptyWithQueryTest() throws Exception {
getClient().perform(get("/api/integration/externalsources/openAIREFunding/entries").param("query", "empty"))
.andExpect(status().isOk()).andExpect(jsonPath("$.page.number", is(0)));
}
/**
* Test openaire funding entries with multiple keywords for a query returning no
* results
*
* @throws Exception
*/
@Test
public void findOneOpenAIREFundingExternalSourceEntriesWithQueryMultipleKeywordsTest() throws Exception {
getClient()
.perform(
get("/api/integration/externalsources/openAIREFunding/entries").param("query", "empty+results"))
.andExpect(status().isOk()).andExpect(jsonPath("$.page.number", is(0)));
}
/**
* Test openaire funding entries for a query using ?query=mock
*
* @throws Exception
*/
@Test
public void findOneOpenAIREFundingExternalSourceEntriesWithQueryTest() throws Exception {
getClient().perform(get("/api/integration/externalsources/openAIREFunding/entries").param("query", "mushroom"))
.andExpect(status().isOk())
.andExpect(jsonPath("$._embedded.externalSourceEntries",
Matchers.hasItem(ExternalSourceEntryMatcher.matchExternalSourceEntry(
"aW5mbzpldS1yZXBvL2dyYW50QWdyZWVtZW50L05XTy8rLzIzMDAxNDc3MjgvTkw=",
"Master switches of initiation of mushroom formation",
"Master switches of initiation of mushroom formation", "openAIREFunding"))));
}
/**
* Test openaire funding entry value
*
* @throws Exception
*/
@Test
public void findOneOpenAIREFundingExternalSourceEntryValueTest() throws Exception {
// "info:eu-repo/grantAgreement/mock/mock/mock/mock" base64 encoded
String projectID = "aW5mbzpldS1yZXBvL2dyYW50QWdyZWVtZW50L0ZDVC81ODc2LVBQQ0RUSS8xMTAwNjIvUFQ=";
String projectName = "Portuguese Wild Mushrooms: Chemical characterization and functional study"
+ " of antiproliferative and proapoptotic properties in cancer cell lines";
getClient().perform(get("/api/integration/externalsources/openAIREFunding/entryValues/" + projectID))
.andExpect(status().isOk())
.andExpect(jsonPath("$",
Matchers.allOf(hasJsonPath("$.id", is(projectID)), hasJsonPath("$.display", is(projectName)),
hasJsonPath("$.value", is(projectName)),
hasJsonPath("$.externalSource", is("openAIREFunding")),
hasJsonPath("$.type", is("externalSourceEntry")))));
}
}

View File

@@ -0,0 +1,75 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.external.provider.impl;
import static org.mockito.Mockito.when;
import java.io.IOException;
import javax.xml.bind.JAXBException;
import eu.openaire.jaxb.helper.OpenAIREHandler;
import eu.openaire.jaxb.model.Response;
import org.dspace.external.OpenAIRERestConnector;
import org.mockito.AdditionalMatchers;
import org.mockito.ArgumentMatchers;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
/**
* Mock the OpenAIRE external source using a mock rest connector so that query
* will be resolved against static test files
*
*/
public class MockOpenAIREFundingDataProvider extends OpenAIREFundingDataProvider {
@Override
public void init() throws IOException {
OpenAIRERestConnector restConnector = Mockito.mock(OpenAIRERestConnector.class);
when(restConnector.searchProjectByKeywords(ArgumentMatchers.anyInt(), ArgumentMatchers.anyInt(),
ArgumentMatchers.startsWith("mushroom"))).thenAnswer(new Answer<Response>() {
public Response answer(InvocationOnMock invocation) {
try {
return OpenAIREHandler
.unmarshal(this.getClass().getResourceAsStream("openaire-projects.xml"));
} catch (JAXBException e) {
e.printStackTrace();
}
return null;
}
});
when(restConnector.searchProjectByKeywords(ArgumentMatchers.anyInt(), ArgumentMatchers.anyInt(),
AdditionalMatchers.not(ArgumentMatchers.startsWith("mushroom")))).thenAnswer(new Answer<Response>() {
public Response answer(InvocationOnMock invocation) {
try {
return OpenAIREHandler
.unmarshal(this.getClass().getResourceAsStream("openaire-no-projects.xml"));
} catch (JAXBException e) {
e.printStackTrace();
}
return null;
}
});
when(restConnector.searchProjectByIDAndFunder(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(),
ArgumentMatchers.anyInt(), ArgumentMatchers.anyInt())).thenAnswer(new Answer<Response>() {
public Response answer(InvocationOnMock invocation) {
try {
return OpenAIREHandler
.unmarshal(this.getClass().getResourceAsStream("openaire-project.xml"));
} catch (JAXBException e) {
e.printStackTrace();
}
return null;
}
});
setConnector(restConnector);
}
}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<response>
<header>
<query>(oaftype exact project) and ( mushroomss)</query>
<locale>en_US</locale>
<size>10</size>
<page>1</page>
<total>0</total>
<fields>
</fields>
</header>
<results>
</results>
<browseResults>
</browseResults>
</response>

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<response>
<header>
<query>(oaftype exact project) and (projectcode_nt exact "110062") and (fundershortname exact "FCT")</query>
<locale>en_US</locale>
<size>10</size>
<page>1</page>
<total>1</total>
<fields>
</fields>
</header>
<results>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>fct_________::59523e9f4736c2cab70a470f088b53dd</dri:objIdentifier>
<dri:dateOfCollection>2021-08-06</dri:dateOfCollection>
<dri:dateOfTransformation>2021-08-06</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="FCT - Fundação para a Ciência e a Tecnologia"
id="openaire____::3421f5eb10975742a75d3f42e1a9e848"/>
<originalId>fct_________::110062</originalId>
<websiteurl>http://www.fct.pt/apoios/projectos/consulta/vglobal_projecto.phtml.en?idProjecto=110062&amp;idElemConcurso=3734</websiteurl>
<code>110062</code>
<acronym>PTDC/AGR-ALI/110062/2009</acronym>
<title>Portuguese Wild Mushrooms: Chemical characterization and functional study of antiproliferative and proapoptotic properties in cancer cell lines</title>
<startdate>2010-12-24</startdate>
<enddate>2013-12-23</enddate>
<callidentifier>PTDC/2009</callidentifier>
<keywords>Agricultural and Forestry Sciences - Food Science and Technology</keywords>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>fct_________::FCT</id>
<shortname>FCT</shortname>
<name>Fundao para a Cincia e a Tecnologia, I.P.</name>
<jurisdiction>PT</jurisdiction>
</funder>
<funding_level_0>
<id>fct_________::FCT::5876-PPCDTI</id>
<description>5876-PPCDTI</description>
<name>5876-PPCDTI</name>
<parent/>
<class>fct:program</class>
</funding_level_0>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels/>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
</results>
<browseResults>
</browseResults>
</response>

View File

@@ -0,0 +1,610 @@
<?xml version="1.0" encoding="UTF-8"?>
<response>
<header>
<query>(oaftype exact project) and ( mushroom)</query>
<locale>en_US</locale>
<size>10</size>
<page>1</page>
<total>77</total>
<fields>
</fields>
</header>
<results>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>rcuk________::98b50e6e0715fad40627833c7030d3c3</dri:objIdentifier>
<dri:dateOfCollection>2018-02-06</dri:dateOfCollection>
<dri:dateOfTransformation>2021-02-20</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="Research Councils UK" id="openaire____::ab2d3310741ea80d3b8726f651502858"/>
<originalId>rcuk________::103679</originalId>
<code>103679</code>
<title>Mushroom Robo-Pic - Development of an autonomous robotic mushroom picking system</title>
<startdate>2017-10-01</startdate>
<enddate>2019-06-30</enddate>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>rcuk________::RCUK</id>
<shortname>UKRI</shortname>
<name>UK Research and Innovation</name>
<jurisdiction>GB</jurisdiction>
</funder>
<funding_level_0>
<id>rcuk________::RCUK::Innovate UK</id>
<description>Innovate UK</description>
<name>Innovate UK</name>
<parent/>
<class>rcuk:fundingStream</class>
</funding_level_0>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels>
<rel inferred="false" trust="0.900" inferenceprovenance=""
provenanceaction="sysimport:crosswalk:entityregistry">
<to class="hasParticipant" scheme="dnet:project_organization_relations"
type="organization">rcuk________::ebafcf5f45afa2e9807f981e668db66b</to>
<legalname>Littleport Mushroom Farms Llp</legalname>
<country classid="UNKNOWN" classname="Unknown" schemeid="dnet:countries"
schemename="dnet:countries"/>
</rel>
</rels>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>rcuk________::6ac77c83ee0d98c433f91f3dc83074b2</dri:objIdentifier>
<dri:dateOfCollection>2017-11-04</dri:dateOfCollection>
<dri:dateOfTransformation>2021-02-20</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="Research Councils UK" id="openaire____::ab2d3310741ea80d3b8726f651502858"/>
<originalId>rcuk________::752540</originalId>
<code>752540</code>
<title>Exending Shelf Life of Mushroom Growing Kits</title>
<startdate>2015-05-01</startdate>
<enddate>2015-10-31</enddate>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>rcuk________::RCUK</id>
<shortname>UKRI</shortname>
<name>UK Research and Innovation</name>
<jurisdiction>GB</jurisdiction>
</funder>
<funding_level_0>
<id>rcuk________::RCUK::Innovate UK</id>
<description>Innovate UK</description>
<name>Innovate UK</name>
<parent/>
<class>rcuk:fundingStream</class>
</funding_level_0>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels>
<rel inferred="false" trust="0.900" inferenceprovenance=""
provenanceaction="sysimport:crosswalk:entityregistry">
<to class="hasParticipant" scheme="dnet:project_organization_relations"
type="organization">rcuk________::f2a533e22408279c50f647779633cf69</to>
<legalname>Espresso Mushroom Company Ltd</legalname>
<country classid="UNKNOWN" classname="Unknown" schemeid="dnet:countries"
schemename="dnet:countries"/>
</rel>
</rels>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>arc_________::e1da9b244237847b24379fb1b11fb151</dri:objIdentifier>
<dri:dateOfCollection>2015-08-24</dri:dateOfCollection>
<dri:dateOfTransformation>2018-11-20</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<originalId>arc_________::LP0220040</originalId>
<websiteurl>http://purl.org/au-research/grants/arc/LP0220040</websiteurl>
<code>LP0220040</code>
<title>Use of Organic Residues in Edible Mushroom Production</title>
<startdate>2002-01-01</startdate>
<enddate>2003-12-31</enddate>
<keywords>compost,exotic mushrooms,mushroom production,organic wastes,peat,wood processing wastes</keywords>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>arc_________::ARC</id>
<shortname>ARC</shortname>
<name>Australian Research Council (ARC)</name>
<jurisdiction>AU</jurisdiction>
</funder>
<funding_level_0>
<id>arc_________::ARC::Linkage Projects</id>
<name>Linkage Projects</name>
<description>Linkage Projects</description>
<parent/>
<class>arc:fundingStream</class>
</funding_level_0>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels/>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>rcuk________::c137d9bfad46b1ebcc9b3f06e6eb5683</dri:objIdentifier>
<dri:dateOfCollection>2018-08-01</dri:dateOfCollection>
<dri:dateOfTransformation>2021-02-20</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="Research Councils UK" id="openaire____::ab2d3310741ea80d3b8726f651502858"/>
<originalId>rcuk________::133611</originalId>
<code>133611</code>
<title>The development of a mushroom harvesting machine to increase yield and production while reducing waste and labour shortage risk</title>
<startdate>2018-07-01</startdate>
<enddate>2019-06-30</enddate>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>rcuk________::RCUK</id>
<shortname>UKRI</shortname>
<name>UK Research and Innovation</name>
<jurisdiction>GB</jurisdiction>
</funder>
<funding_level_0>
<id>rcuk________::RCUK::Innovate UK</id>
<description>Innovate UK</description>
<name>Innovate UK</name>
<parent/>
<class>rcuk:fundingStream</class>
</funding_level_0>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels>
<rel inferred="false" trust="0.900" inferenceprovenance=""
provenanceaction="sysimport:crosswalk:entityregistry">
<to class="hasParticipant" scheme="dnet:project_organization_relations"
type="organization">rcuk________::560dfc3b58d1ab0d8a8957a943a76962</to>
<country classid="UNKNOWN" classname="Unknown" schemeid="dnet:countries"
schemename="dnet:countries"/>
<legalname>Mushroom Machine Company Limited</legalname>
</rel>
</rels>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>corda__h2020::c97f7d6f1ff338991c0ec20b33ddb1e0</dri:objIdentifier>
<dri:dateOfCollection>2018-07-21</dri:dateOfCollection>
<dri:dateOfTransformation>2021-07-19</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="CORDA - COmmon Research DAta Warehouse - Horizon 2020"
id="openaire____::a55eb91348674d853191f4f4fd73d078"/>
<originalId>corda__h2020::820352</originalId>
<code>820352</code>
<acronym>Smartmushroom</acronym>
<title>Smart MAnagement of spent mushRoom subsTrate to lead the MUSHROOM sector towards a circular economy</title>
<startdate>2018-08-01</startdate>
<enddate>2021-01-31</enddate>
<callidentifier>H2020-EIC-FTI-2018-2020</callidentifier>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<subject classid="ec:h2020topics" classname="Horizon 2020 Topics"
schemeid="dnet:subject_classification_typologies"
schemename="dnet:subject_classification_typologies"
inferred="false"
provenanceaction="sysimport:crosswalk:entityregistry"
trust="0.900">Fast Track to Innovation (FTI)</subject>
<oamandatepublications>true</oamandatepublications>
<ecsc39>false</ecsc39>
<summary>Waste from animal breeding and agriculture, specifically horse and chicken manure and wheat straw, are the raw materials of the growing substrate of mushroom. To grow 1 tonne of mushroom, 3 to 4 tonnes of substrate are needed. However, when mushroom production is completed the substrate cannot be used for another growing cycle due to the depletion of nutrients needed for mushroom growing and it is called Spent Mushroom Substrate (SMS) and becomes a waste that should be managed according to regulations. In Europe, c.a. 3.65 million tons of SMS are generated each year. SMS is a high-moisture content bulk material rich in organic matter and nutrients and it could be reused in agriculture by adding it to the soils as amendment or mulch or weathered to be reused as casing soil. However, nitrates directive set a disposal limit that makes that large quantities of SMS cannot be simply spread in soils next to growers facilities, as there is a high risk of leachates and water pollution. Due to its low bulk density and high water content, transportation costs are high and therefore storage is becoming a sound problem. SmartMUSHROOM aims to increase mushroom growers waste management efficiency by using a new technology which allow them to obtain enough biogas from fresh SMS to dry a mixture of digestate and additional fresh SMS and pelletize it targeting to obtain a marketable high-quality organic fertilizer rich in organic matter and in nutrients, easy to handle, store and transport to any farming region in Europe. A perfect example of biobased circular economy. The aim of the project is to build a pilot plant to demonstrate the technology and find the best commercial formulation for the pellets to enter organic farming market. After the end of project we aim to build at least 18 treatment plants that will place in market 153,000 tonnes of SMS-pellets, generating a total Turnover of 54M€ in the period 2021-2025 and up to 105 related new jobs.</summary>
<currency>EUR</currency>
<totalcost>2977940.0</totalcost>
<fundedamount>2264140.0</fundedamount>
<fundingtree>
<funder>
<id>ec__________::EC</id>
<shortname>EC</shortname>
<name>European Commission</name>
<jurisdiction>EU</jurisdiction>
</funder>
<funding_level_1>
<id>ec__________::EC::H2020::IA</id>
<description>Innovation action</description>
<name>IA</name>
<class>ec:h2020toas</class>
<parent>
<funding_level_0>
<id>ec__________::EC::H2020</id>
<name>H2020</name>
<description>Horizon 2020 Framework Programme</description>
<parent/>
<class>ec:h2020fundings</class>
</funding_level_0>
</parent>
</funding_level_1>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels>
<rel inferred="false" trust="0.900" inferenceprovenance=""
provenanceaction="sysimport:crosswalk:entityregistry">
<to class="hasParticipant" scheme="dnet:project_organization_relations"
type="organization">pending_org_::39d5641e14f7cfe56e3e836199e33eba</to>
<legalshortname>ECOBELIEVE DOO</legalshortname>
<country classid="RS" classname="Serbia" schemeid="dnet:countries"
schemename="dnet:countries"/>
<legalname>ECOBELIEVE DOO GRKINJA</legalname>
</rel>
<rel inferred="false" trust="0.900" inferenceprovenance=""
provenanceaction="sysimport:crosswalk:entityregistry">
<to class="hasParticipant" scheme="dnet:project_organization_relations"
type="organization">pending_org_::3c128a988f1404fed53e1cd8a61df51b</to>
<legalname>Asociacion Profesional de Productores de Compost y Hongos, de la Rioja, Navarra y Aragón</legalname>
<country classid="ES" classname="Spain" schemeid="dnet:countries"
schemename="dnet:countries"/>
<legalshortname>ASOCHAMP</legalshortname>
</rel>
<rel inferred="false" trust="0.900" inferenceprovenance=""
provenanceaction="sysimport:crosswalk:entityregistry">
<to class="hasParticipant" scheme="dnet:project_organization_relations"
type="organization">pending_org_::7555b3c59a033e789ce6190a6c9f39aa</to>
<legalname>INVESTIGACION Y DESARROLLO CASTILLA Y LEON S.A</legalname>
<country classid="ES" classname="Spain" schemeid="dnet:countries"
schemename="dnet:countries"/>
<legalshortname>IDECAL S.A.</legalshortname>
</rel>
<rel inferred="false" trust="0.900" inferenceprovenance=""
provenanceaction="sysimport:crosswalk:entityregistry">
<to class="hasParticipant" scheme="dnet:project_organization_relations"
type="organization">pending_org_::4193497542c7b30e3f50f52414905579</to>
<legalname>NOVIS GMBH</legalname>
<country classid="DE" classname="Germany" schemeid="dnet:countries"
schemename="dnet:countries"/>
<legalshortname>NOVIS GMBH</legalshortname>
</rel>
</rels>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>nwo_________::c091653b5930a5a11c748720167b04d7</dri:objIdentifier>
<dri:dateOfCollection>2016-06-23</dri:dateOfCollection>
<dri:dateOfTransformation>2018-08-07</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="NWO - Netherlands Organisation for Scientific Research"
id="openaire____::a4904a4b098aab846e966b7635bd8e01"/>
<originalId>nwo_________::2300148817</originalId>
<code>2300148817</code>
<title>Production of therapeutic proteins in mushroom</title>
<startdate>2007-09-01</startdate>
<enddate>2012-04-30</enddate>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>nwo_________::NWO</id>
<shortname>NWO</shortname>
<name>Netherlands Organisation for Scientific Research (NWO)</name>
<jurisdiction>NL</jurisdiction>
</funder>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels/>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>nwo_________::5ee5a31d8c77215faef3bd35bd9696ff</dri:objIdentifier>
<dri:dateOfCollection>2016-06-23</dri:dateOfCollection>
<dri:dateOfTransformation>2018-08-07</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="NWO - Netherlands Organisation for Scientific Research"
id="openaire____::a4904a4b098aab846e966b7635bd8e01"/>
<originalId>nwo_________::2300148209</originalId>
<code>2300148209</code>
<title>Control of Verticillium fungicola on mushroom</title>
<startdate>2006-10-01</startdate>
<enddate>2012-08-10</enddate>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>nwo_________::NWO</id>
<shortname>NWO</shortname>
<name>Netherlands Organisation for Scientific Research (NWO)</name>
<jurisdiction>NL</jurisdiction>
</funder>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels/>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>nwo_________::98df9c76cbd6537553284af850398659</dri:objIdentifier>
<dri:dateOfCollection>2016-06-23</dri:dateOfCollection>
<dri:dateOfTransformation>2018-08-07</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="NWO - Netherlands Organisation for Scientific Research"
id="openaire____::a4904a4b098aab846e966b7635bd8e01"/>
<originalId>nwo_________::2300147728</originalId>
<code>2300147728</code>
<title>Master switches of initiation of mushroom formation</title>
<startdate>2005-11-01</startdate>
<enddate>2012-09-12</enddate>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>nwo_________::NWO</id>
<shortname>NWO</shortname>
<name>Netherlands Organisation for Scientific Research (NWO)</name>
<jurisdiction>NL</jurisdiction>
</funder>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels/>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>nwo_________::7ddc7f2f259735f312a27c54f6b2ee5d</dri:objIdentifier>
<dri:dateOfCollection>2016-06-23</dri:dateOfCollection>
<dri:dateOfTransformation>2018-08-07</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="NWO - Netherlands Organisation for Scientific Research"
id="openaire____::a4904a4b098aab846e966b7635bd8e01"/>
<originalId>nwo_________::2300164658</originalId>
<code>2300164658</code>
<title>Push the white button; controlling mushroom formation</title>
<startdate>2011-09-01</startdate>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>nwo_________::NWO</id>
<shortname>NWO</shortname>
<name>Netherlands Organisation for Scientific Research (NWO)</name>
<jurisdiction>NL</jurisdiction>
</funder>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels/>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
<result xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dri:objIdentifier>nsf_________::c5fa29db776dc4f21919e12cbaea37eb</dri:objIdentifier>
<dri:dateOfCollection>2016-03-11</dri:dateOfCollection>
<dri:dateOfTransformation>2018-08-07</dri:dateOfTransformation>
</header>
<metadata>
<oaf:entity xmlns:oaf="http://namespace.openaire.eu/oaf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespace.openaire.eu/oaf https://www.openaire.eu/schema/1.0/oaf-1.0.xsd">
<oaf:project>
<collectedfrom name="NSF - National Science Foundation"
id="openaire____::dd69b4a1513c9de9f46faf24048da1e8"/>
<originalId>nsf_________::6112554</originalId>
<code>6112554</code>
<title>Respiratory Mechanisms in Cultivated Mushroom</title>
<startdate>1961-01-01</startdate>
<enddate>1963-01-01</enddate>
<duration>0</duration>
<ecarticle29_3>false</ecarticle29_3>
<oamandatepublications>false</oamandatepublications>
<ecsc39>false</ecsc39>
<totalcost>0.0</totalcost>
<fundedamount>0.0</fundedamount>
<fundingtree>
<funder>
<id>nsf_________::NSF</id>
<shortname>NSF</shortname>
<name>National Science Foundation</name>
<jurisdiction>US</jurisdiction>
</funder>
</fundingtree>
<datainfo>
<inferred>false</inferred>
<deletedbyinference>false</deletedbyinference>
<trust>0.900</trust>
<inferenceprovenance>null</inferenceprovenance>
<provenanceaction classid="sysimport:crosswalk:entityregistry" classname="Harvested"
schemeid="dnet:provenanceActions"
schemename="dnet:provenanceActions"/>
</datainfo>
<rels>
<rel inferred="false" trust="0.900" inferenceprovenance=""
provenanceaction="sysimport:crosswalk:entityregistry">
<to class="hasParticipant" scheme="dnet:project_organization_relations"
type="organization">openorgs____::2f4b2e4dcb319a5f66e887d2fd555734</to>
<country classid="US" classname="United States" schemeid="dnet:countries"
schemename="dnet:countries"/>
<legalname>University of Delaware</legalname>
<legalshortname>UD</legalshortname>
</rel>
</rels>
<children/>
</oaf:project>
</oaf:entity>
</metadata>
</result>
</results>
<browseResults>
</browseResults>
</response>