Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/pom.xml
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/pom.xml	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/pom.xml	(revision 56428)
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <parent>
+        <groupId>eu.dnetlib</groupId>
+        <artifactId>dnet45-parent</artifactId>
+        <version>1.0.0</version>
+        <relativePath />
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>eu.dnetlib</groupId>
+    <artifactId>dnet-actionmanager-common</artifactId>
+    <packaging>jar</packaging>
+    <version>6.0.4</version>
+    <scm>
+        <developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4</developerConnection>
+    </scm>
+    <repositories>
+        <!-- Cloudera Repositories -->
+        <repository>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <id>cloudera-central</id>
+            <name>cloundera-libs-release</name>
+            <url>http://maven.research-infrastructures.eu/nexus/content/repositories/cloudera-central</url>
+        </repository>
+        <repository>
+            <id>cloudera-snapshots</id>
+            <name>cloudera-libs-snapshot</name>
+            <url>http://maven.research-infrastructures.eu/nexus/content/repositories/cloudera-snapshots</url>
+        </repository>
+    </repositories>
+    <dependencies>
+        <dependency>
+            <groupId>apache</groupId>
+            <artifactId>commons-logging</artifactId>
+            <version>[1.0.0,1.1.0)</version>
+        </dependency>
+        <dependency>
+            <groupId>eu.dnetlib</groupId>
+            <artifactId>dnet-openaireplus-mapping-utils</artifactId>
+            <version>[6.0.0,7.0.0)</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>jsp-api</artifactId>
+                    <groupId>javax.servlet.jsp</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>eu.dnetlib</groupId>
+            <artifactId>dnet-actionmanager-api</artifactId>
+            <version>[4.0.1,5.0.0)</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.hadoop</groupId>
+            <artifactId>hadoop-common</artifactId>
+            <version>${hadoop.common.version}</version>
+            <exclusions>
+              <exclusion>
+                <artifactId>jasper-compiler</artifactId>
+                <groupId>tomcat</groupId>
+              </exclusion>
+              <exclusion>
+                <artifactId>jasper-runtime</artifactId>
+                <groupId>tomcat</groupId>
+              </exclusion>
+              <exclusion>
+                <artifactId>mockito-all</artifactId>
+                <groupId>org.mockito</groupId>
+              </exclusion>
+              <exclusion>
+                <artifactId>jetty</artifactId>
+                <groupId>org.mortbay.jetty</groupId>
+              </exclusion>
+              <exclusion>
+                <artifactId>jetty-util</artifactId>
+                <groupId>org.mortbay.jetty</groupId>
+              </exclusion>
+              <exclusion>
+                <artifactId>core</artifactId>
+                <groupId>org.eclipse.jdt</groupId>
+              </exclusion>
+              <exclusion>
+                <groupId>javax.servlet</groupId>
+                <artifactId>servlet-api</artifactId>
+              </exclusion>
+              <exclusion>
+                <artifactId>slf4j-api</artifactId>
+                <groupId>org.slf4j</groupId>
+              </exclusion>
+              <exclusion>
+                <artifactId>slf4j-log4j12</artifactId>
+                <groupId>org.slf4j</groupId>
+              </exclusion>
+              <exclusion>
+                <artifactId>jsp-api</artifactId>
+                <groupId>javax.servlet.jsp</groupId>
+              </exclusion>
+              <exclusion>
+                <artifactId>guava</artifactId>
+                <groupId>com.google.guava</groupId>
+              </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.googlecode.protobuf-java-format</groupId>
+            <artifactId>protobuf-java-format</artifactId>
+            <version>1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>${junit.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <version>${spring.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicActionDeserialiser.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicActionDeserialiser.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicActionDeserialiser.java	(revision 56428)
@@ -0,0 +1,63 @@
+package eu.dnetlib.actionmanager.actions;
+
+import java.lang.reflect.Type;
+
+import com.google.gson.*;
+import com.googlecode.protobuf.format.JsonFormat;
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.data.proto.OafProtos;
+import eu.dnetlib.miscutils.functional.hash.Hashing;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Created by claudio on 30/09/15.
+ */
+public class AtomicActionDeserialiser extends AbstractActionSerializer implements JsonDeserializer<AtomicAction> {
+
+	private static final Log log = LogFactory.getLog(AtomicActionDeserialiser.class);
+
+	@Override
+	public AtomicAction deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException {
+
+		if (json.isJsonObject()) {
+			final JsonObject j = (JsonObject) json;
+
+			final Agent a = new Agent();
+
+			final JsonObject aj = j.get(agent).getAsJsonObject();
+			a.setId(aj.get(agent_id).getAsString());
+			a.setName(aj.get(agent_name).getAsString());
+			a.setType(Agent.AGENT_TYPE.valueOf(aj.get(agent_type).getAsString()));
+
+			AtomicAction aa = new AtomicAction(j.get(rawSet).getAsString(), a);
+
+			aa.setTargetColumn(j.get(targetColumn).getAsString());
+			aa.setTargetColumnFamily(j.get(targetColumnFamily).getAsString());
+			aa.setTargetRowKey(j.get(targetRowKey).getAsString());
+
+			aa.setRowKey(j.get(rowKey).getAsString());
+			aa.setTargetValue(decodeTargetValue(j.get(targetValue).getAsString()));
+
+			return aa;
+
+		}
+
+		throw new JsonParseException("input is not a json object");
+	}
+
+	private byte[] decodeTargetValue(final String s) throws JsonParseException {
+		try {
+			final String json = Hashing.decodeBase64(s);
+
+			OafProtos.Oaf.Builder oaf = OafProtos.Oaf.newBuilder();
+			JsonFormat.merge(json, oaf);
+
+			return oaf.build().toByteArray();
+		} catch (JsonFormat.ParseException e) {
+			throw new JsonParseException("unable to parse proto", e);
+		}
+	}
+
+}
+
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/XsltInfoPackageAction.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/XsltInfoPackageAction.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/XsltInfoPackageAction.java	(revision 56428)
@@ -0,0 +1,146 @@
+package eu.dnetlib.actionmanager.actions;
+
+import java.io.StringReader;
+import java.util.List;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import eu.dnetlib.actionmanager.ActionManagerConstants.ACTION_TYPE;
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.actionmanager.common.Operation;
+import eu.dnetlib.actionmanager.common.Provenance;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.DocumentResult;
+import org.dom4j.io.DocumentSource;
+import org.dom4j.io.SAXReader;
+
+public class XsltInfoPackageAction extends AbstractAction {
+
+	private static final Log log = LogFactory.getLog(XsltInfoPackageAction.class); // NOPMD by marko on 11/24/08 5:02 PM
+
+	private Operation operation;
+	private String infoPackage;
+	private Provenance provenance;
+	private String trust;
+	private ActionFactory actionFactory;
+	private Transformer transformer;
+
+	public XsltInfoPackageAction(final String rawSet, final Agent agent, final Operation operation, final String infoPackage, final Provenance provenance,
+			final String trust, final Transformer transformer, final ActionFactory actionFactory) {
+		super(ACTION_TYPE.pkg, rawSet, agent);
+
+		this.transformer = transformer;
+		this.operation = operation;
+		this.infoPackage = infoPackage;
+		this.provenance = provenance;
+		this.trust = trust;
+		this.actionFactory = actionFactory;
+		this.transformer = transformer;
+	}
+
+	public List<AtomicAction> asAtomicActions() throws TransformerException, DocumentException {
+		return Lists.newArrayList(Iterables.filter(calculateAtomicActions(), new Predicate<AtomicAction>() {
+			@Override
+			public boolean apply(final AtomicAction action) {
+				return action != null && action.isValid();
+			}
+		}));
+	}
+
+	private Document applyXslt(final String xml, final Provenance provenance, final String trust) throws DocumentException,
+			TransformerException {
+		final Document doc = (new SAXReader()).read(new StringReader(xml));
+
+		final DocumentResult result = new DocumentResult();
+
+		transformer.setParameter("trust", trust);
+		transformer.setParameter("provenance", provenance.toString());
+
+		transformer.transform(new DocumentSource(doc), result);
+
+		return result.getDocument();
+	}
+
+	protected List<AtomicAction> calculateAtomicActions() throws TransformerException, DocumentException {
+		final List<AtomicAction> list = Lists.newArrayList();
+
+		final Document doc = applyXslt(getInfoPackage(), provenance, trust);
+		for (Object o : doc.selectNodes("//ROW")) {
+			list.add(createAtomicAction((Element) o));
+		}
+
+		return list;
+	}
+
+	private AtomicAction createAtomicAction(final Element elem) {
+		String key = elem.valueOf("./@key");
+		String colFamily = elem.valueOf("./@columnFamily");
+		String col = elem.valueOf("./QUALIFIER/@name");
+		final String text = elem.valueOf("./QUALIFIER");
+		byte[] value = StringUtils.isBlank(text) ? null : Base64.decodeBase64(text.trim());
+
+		return getActionFactory().createAtomicAction(getRawSet(), getAgent(), key, colFamily, col, value);
+	}
+
+	public Operation getOperation() {
+		return operation;
+	}
+
+	public void setOperation(final Operation operation) {
+		this.operation = operation;
+	}
+
+	public ActionFactory getActionFactory() {
+		return actionFactory;
+	}
+
+	public void setActionFactory(final ActionFactory actionFactory) {
+		this.actionFactory = actionFactory;
+	}
+
+	protected byte[] getBytesContent(final String content) {
+		return content.getBytes();
+	}
+
+	public String getInfoPackage() {
+		return infoPackage;
+	}
+
+	public void setInfoPackage(final String infoPackage) {
+		this.infoPackage = infoPackage;
+	}
+
+	public Provenance getProvenance() {
+		return provenance;
+	}
+
+	public void setProvenance(final Provenance provenance) {
+		this.provenance = provenance;
+	}
+
+	public String getTrust() {
+		return trust;
+	}
+
+	public void setTrust(final String trust) {
+		this.trust = trust;
+	}
+
+	public Transformer getTransformer() {
+		return transformer;
+	}
+
+	public void setTransformer(final Transformer transformer) {
+		this.transformer = transformer;
+	}
+
+}
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/ActionFactory.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/ActionFactory.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/ActionFactory.java	(revision 56428)
@@ -0,0 +1,116 @@
+package eu.dnetlib.actionmanager.actions;
+
+import java.util.List;
+import java.util.Map;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+
+import com.google.common.collect.Lists;
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.actionmanager.common.Operation;
+import eu.dnetlib.actionmanager.common.Provenance;
+import eu.dnetlib.actionmanager.rmi.ActionManagerException;
+import eu.dnetlib.data.proto.TypeProtos.Type;
+import eu.dnetlib.miscutils.datetime.DateUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.dom4j.Document;
+import org.dom4j.io.DocumentSource;
+import org.dom4j.io.SAXReader;
+import org.springframework.beans.factory.annotation.Required;
+import org.springframework.core.io.Resource;
+
+/**
+ * Factory bean to create Actions bypassing the Action Manager API
+ * 
+ * @author michele
+ */
+public class ActionFactory {
+
+	private static final Log log = LogFactory.getLog(ActionFactory.class);
+	final TransformerFactory tFactory = TransformerFactory.newInstance();
+	private Map<String, Resource> xslts;
+
+	/**
+	 * Creates a list of AtomicAction(s) to handle an UPDATE. Produces one Oaf, stored in CF = [entity]:update_[timestamp]
+	 * 
+	 * @param set
+	 *            the given set.
+	 * @param agent
+	 *            the given agent.
+	 * @param originalId
+	 *            main entity identifier to be updated (already existing in the information space).
+	 * @param entityType
+	 *            one of: result, person, project, datasource, organization {@link eu.dnetlib.data.proto.TypeProtos.Type}.
+	 * @param updateContent
+	 *            content to be updated over the original main entity. Oaf#OafEntity#[entity]#id must be consistent with the originalId.
+	 *            note that: the given trust level has to be [>.9 | NEUTRAL | INFINITE] in order to gain visibility after the merging
+	 *            process.
+	 * @return the list of AtomicActions.
+	 */
+	public List<AtomicAction> createUpdateActions(final String set,
+			final Agent agent,
+			final String originalId,
+			final Type entityType,
+			final byte[] updateContent) {
+		final List<AtomicAction> res = Lists.newArrayList();
+
+		res.add(createAtomicAction(set, agent, originalId, entityType.toString(), "update_" + DateUtils.now(), updateContent));
+
+		return res;
+	}
+
+	public AtomicAction createAtomicAction(final String set,
+			final Agent agent,
+			final String targetKey,
+			final String targetColFamily,
+			final String targetCol,
+			final byte[] targetContent) {
+		final AtomicAction action = new AtomicAction(set, agent);
+
+		action.setTargetRowKey(targetKey);
+		action.setTargetColumnFamily(targetColFamily);
+		action.setTargetColumn(targetCol);
+		action.setTargetValue(targetContent);
+
+		return action;
+	}
+
+	public XsltInfoPackageAction generateInfoPackageAction(final String xsltResource,
+			final String rawSet,
+			final Agent agent,
+			final Operation operation,
+			final String infoPackage,
+			final Provenance provenance,
+			final String trust) throws ActionManagerException {
+
+		final Transformer transformer = prepareXsltTransformer(xsltResource);
+
+		return new XsltInfoPackageAction(rawSet, agent, operation, infoPackage, provenance, trust, transformer, this);
+	}
+
+	public Transformer prepareXsltTransformer(final String xsltName) throws ActionManagerException {
+		try {
+			if (!xslts.containsKey(xsltName)) { throw new ActionManagerException("XSLT " + xsltName + " not found"); }
+
+			final Document doc = new SAXReader().read(xslts.get(xsltName).getInputStream());
+			if (log.isDebugEnabled()) {
+				log.debug("using transformer factory: '" + tFactory.getClass().getName() + "'");
+				log.debug("xslt: \n" + doc.asXML());
+			}
+			return tFactory.newTransformer(new DocumentSource(doc));
+		} catch (final Throwable e) {
+			throw new ActionManagerException("Problem with xslt resource " + xsltName, e);
+		}
+	}
+
+	public Map<String, Resource> getXslts() {
+		return xslts;
+	}
+
+	@Required
+	public void setXslts(final Map<String, Resource> xslts) {
+		this.xslts = xslts;
+	}
+
+}
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicAction.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicAction.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicAction.java	(revision 56428)
@@ -0,0 +1,83 @@
+package eu.dnetlib.actionmanager.actions;
+
+import com.google.gson.GsonBuilder;
+import eu.dnetlib.actionmanager.ActionManagerConstants.ACTION_TYPE;
+import eu.dnetlib.actionmanager.common.Agent;
+
+public class AtomicAction extends AbstractAction {
+
+	private String targetRowKey;
+	private String targetColumnFamily;
+	private String targetColumn;
+
+	private byte[] targetValue;
+
+	public AtomicAction(final String rawSet, final Agent agent) {
+		super(ACTION_TYPE.aac, rawSet, agent);
+	}
+
+	public AtomicAction(final String rawSet, final Agent agent, final String targetRowKey, final String targetColumnFamily,
+			final String targetColumn, final byte[] targetValue) {
+		this(rawSet, agent);
+		this.targetRowKey = targetRowKey;
+		this.targetColumnFamily = targetColumnFamily;
+		this.targetColumn = targetColumn;
+		this.targetValue = targetValue;
+	}
+
+	public static AtomicAction fromJSON(String s) {
+		final GsonBuilder gson = new GsonBuilder();
+		gson.registerTypeAdapter(AtomicAction.class, new AtomicActionDeserialiser());
+		return gson.create().fromJson(s, AtomicAction.class);
+	}
+
+	public String toJSON() {
+		final GsonBuilder gson = new GsonBuilder();
+		gson.registerTypeAdapter(AtomicAction.class, new AtomicActionSerialiser());
+		return gson.create().toJson(this);
+	}
+
+	public String getTargetRowKey() {
+		return targetRowKey;
+	}
+
+	public void setTargetRowKey(final String targetRowKey) {
+		this.targetRowKey = targetRowKey;
+	}
+
+	public String getTargetColumnFamily() {
+		return targetColumnFamily;
+	}
+
+	public void setTargetColumnFamily(final String targetColumnFamily) {
+		this.targetColumnFamily = targetColumnFamily;
+	}
+
+	public String getTargetColumn() {
+		return targetColumn;
+	}
+
+	public void setTargetColumn(final String targetColumn) {
+		this.targetColumn = targetColumn;
+	}
+
+	public byte[] getTargetValue() {
+		return targetValue;
+	}
+
+	public void setTargetValue(final byte[] targetValue) {
+		this.targetValue = targetValue;
+	}
+
+	public boolean isValid() {
+		return ((getRowKey() != null) && !getRowKey().isEmpty() && (getRawSet() != null) && !getRawSet().isEmpty() && (targetRowKey != null)
+				&& !targetRowKey.isEmpty() && (targetColumnFamily != null) && !targetColumnFamily.isEmpty() && (targetColumn != null)
+				&& !targetColumn.isEmpty() && (targetValue != null) && (targetValue.length > 0));
+	}
+
+	@Override
+	public String toString() {
+		return toJSON();
+	}
+
+}
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AbstractActionSerializer.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AbstractActionSerializer.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AbstractActionSerializer.java	(revision 56428)
@@ -0,0 +1,28 @@
+package eu.dnetlib.actionmanager.actions;
+
+/**
+ * Created by claudio on 01/10/15.
+ */
+public abstract class AbstractActionSerializer {
+
+	protected final static String targetColumn = "TargetColumn";
+
+	protected final static String targetColumnFamily = "TargetColumnFamily";
+
+	protected final static String targetRowKey = "TargetRowKey";
+
+	protected final static String rawSet = "RawSet";
+
+	protected final static String rowKey = "RowKey";
+
+	protected final static String actionType = "ActionType";
+
+	protected final static String targetValue = "TargetValue";
+
+	protected final static String agent = "Agent";
+
+	protected final static String agent_id = "Agent.Id";
+	protected final static String agent_name = "Agent.name";
+	protected final static String agent_type = "Agent.type";
+
+}
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicActionSerialiser.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicActionSerialiser.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AtomicActionSerialiser.java	(revision 56428)
@@ -0,0 +1,64 @@
+package eu.dnetlib.actionmanager.actions;
+
+import java.lang.reflect.Type;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import com.google.protobuf.InvalidProtocolBufferException;
+import com.googlecode.protobuf.format.JsonFormat;
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.data.proto.OafProtos.Oaf;
+import eu.dnetlib.miscutils.functional.hash.Hashing;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Created by claudio on 30/09/15.
+ */
+public class AtomicActionSerialiser extends AbstractActionSerializer implements JsonSerializer<AtomicAction> {
+
+	private static final Log log = LogFactory.getLog(AtomicActionSerialiser.class);
+
+	@Override
+	public JsonElement serialize(final AtomicAction aa, final Type typeOfSrc, final JsonSerializationContext context) {
+
+		JsonObject json = new JsonObject();
+		json.addProperty(targetColumn, aa.getTargetColumn());
+		json.addProperty(targetColumnFamily, aa.getTargetColumnFamily());
+		json.addProperty(targetRowKey, aa.getTargetRowKey());
+		json.addProperty(rawSet, aa.getRawSet());
+		json.addProperty(rowKey, aa.getRowKey());
+		json.addProperty(actionType, aa.getActionType().toString());
+
+		json.add(agent, getAgentJSON(aa));
+
+		//json.addProperty(targetValue, getTargetValueJSON(aa));
+		json.addProperty(targetValue, Hashing.encodeBase64(getTargetValueJSON(aa)));
+
+		return json;
+	}
+
+	private JsonElement getAgentJSON(final AtomicAction aa) {
+
+		final Agent a = aa.getAgent();
+
+		JsonObject json = new JsonObject();
+		json.addProperty(agent_id, a.getId());
+		json.addProperty(agent_name, a.getName());
+		json.addProperty(agent_type, a.getType().toString());
+
+		return json;
+	}
+
+	private String getTargetValueJSON(final AtomicAction aa) {
+		try {
+			return aa.getTargetValue() != null && aa.getTargetValue().length > 0 ? JsonFormat.printToString(Oaf.parseFrom(aa.getTargetValue())) : "";
+		} catch (InvalidProtocolBufferException e) {
+			log.error("unable to parse proto", e);
+			return null;
+		}
+	}
+}
+
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AbstractAction.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AbstractAction.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/actions/AbstractAction.java	(revision 56428)
@@ -0,0 +1,63 @@
+package eu.dnetlib.actionmanager.actions;
+
+import java.util.UUID;
+
+import eu.dnetlib.actionmanager.ActionManagerConstants.ACTION_TYPE;
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.miscutils.functional.hash.Hashing;
+
+public abstract class AbstractAction {
+
+	private ACTION_TYPE actionType;
+	private String rawSet;
+	private String rowKey;
+	private Agent agent;
+
+	public AbstractAction(final ACTION_TYPE actionType, final String rawSet, final Agent agent) {
+		super();
+		this.actionType = actionType;
+		this.rawSet = rawSet;
+		this.agent = agent;
+		this.rowKey = actionType + "|" + Hashing.md5(agent.getId()) + "|" + UUID.randomUUID();
+	}
+
+	public ACTION_TYPE getActionType() {
+		return actionType;
+	}
+
+	public void setActionType(final ACTION_TYPE actionType) {
+		this.actionType = actionType;
+	}
+
+	public String getRawSet() {
+		return rawSet;
+	}
+
+	public void setRawSet(final String rawSet) {
+		this.rawSet = rawSet;
+	}
+
+	public String getRowKey() {
+		return rowKey;
+	}
+
+	public void setRowKey(final String rowKey) {
+		this.rowKey = rowKey;
+	}
+
+	/**
+	 * @return the agent
+	 */
+	public Agent getAgent() {
+		return agent;
+	}
+
+	/**
+	 * @param agent
+	 *            the agent to set
+	 */
+	public void setAgent(final Agent agent) {
+		this.agent = agent;
+	}
+
+}
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/ActionManagerConstants.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/ActionManagerConstants.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/main/java/eu/dnetlib/actionmanager/ActionManagerConstants.java	(revision 56428)
@@ -0,0 +1,11 @@
+package eu.dnetlib.actionmanager;
+
+public class ActionManagerConstants {
+
+	public static enum ACTION_TYPE {
+		aac, //atomicAction, 
+		pkg, //infoPackage, 
+		all //all
+	}
+
+}
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/java/eu/dnetlib/actionmanager/actions/ActionFactoryTest.java
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/java/eu/dnetlib/actionmanager/actions/ActionFactoryTest.java	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/java/eu/dnetlib/actionmanager/actions/ActionFactoryTest.java	(revision 56428)
@@ -0,0 +1,119 @@
+package eu.dnetlib.actionmanager.actions;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.util.Arrays;
+import java.util.List;
+import javax.annotation.Resource;
+import javax.xml.transform.TransformerException;
+
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.actionmanager.common.Agent.AGENT_TYPE;
+import eu.dnetlib.actionmanager.common.Operation;
+import eu.dnetlib.actionmanager.common.Provenance;
+import eu.dnetlib.actionmanager.rmi.ActionManagerException;
+import eu.dnetlib.data.proto.OafProtos.Oaf;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.dom4j.DocumentException;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import static org.junit.Assert.*;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "/eu/dnetlib/actionmanager/actions/applicationContext-actionmanager-test.xml" })
+public class ActionFactoryTest {
+
+	private static final Log log = LogFactory.getLog(ActionFactoryTest.class);
+	private final static Agent agent = new Agent("agentId", "agentName", AGENT_TYPE.algo);
+	private final static String trust = "0.9";
+	private final InputStream recordDataciteInputStream = getClass().getResourceAsStream("recordDatacite.xml");
+	private final InputStream recordOafInputStream = getClass().getResourceAsStream("record.xml");
+	@Resource
+	private ActionFactory actionFactory;
+
+	// @Before
+	// public void setUp() throws Exception {
+	//
+	// }
+
+	@Test
+	public void testBeans() {
+		assertNotNull(actionFactory);
+		assertNotNull(actionFactory.getXslts());
+		assertFalse(actionFactory.getXslts().isEmpty());
+	}
+
+	@Test
+	public void testDataciteInsert() throws ActionManagerException, IOException, TransformerException, DocumentException {
+
+		XsltInfoPackageAction action =
+				actionFactory.generateInfoPackageAction("datacite2insertActions", "rawSet", agent, Operation.INSERT, asString(recordDataciteInputStream),
+						Provenance.sysimport_crosswalk_datasetarchive, trust);
+
+		checkActions(action, action.asAtomicActions());
+	}
+
+	@Test
+	public void testRecordOafInsert() throws ActionManagerException, IOException, TransformerException, DocumentException {
+
+		XsltInfoPackageAction action =
+				actionFactory.generateInfoPackageAction("dmf2insertActions", "rawSet", agent, Operation.INSERT, asString(recordOafInputStream),
+						Provenance.sysimport_crosswalk_datasetarchive, trust);
+
+		checkActions(action, action.asAtomicActions());
+	}
+
+	@Test
+	public void testRecordOafUpdate() throws ActionManagerException, IOException, TransformerException, DocumentException {
+
+		XsltInfoPackageAction action =
+				actionFactory.generateInfoPackageAction("dmf2updateActions", "rawSet", agent, Operation.INSERT, asString(recordOafInputStream),
+						Provenance.sysimport_crosswalk_datasetarchive, trust);
+		checkActions(action, action.asAtomicActions());
+	}
+
+	private void checkActions(final XsltInfoPackageAction action, final List<AtomicAction> actions)
+			throws TransformerException, DocumentException, com.google.protobuf.InvalidProtocolBufferException {
+		for (AtomicAction a : action.calculateAtomicActions()) {
+			assertNotNull(a.getTargetValue());
+
+			String actionJSON = a.toString();
+
+			log.info(actionJSON);
+
+			final AtomicAction aa = AtomicAction.fromJSON(actionJSON);
+
+			assertEquals(a.getRawSet(), aa.getRawSet());
+			assertEquals(a.getTargetColumn(), aa.getTargetColumn());
+			assertEquals(a.getTargetColumnFamily(), aa.getTargetColumnFamily());
+			assertEquals(a.getTargetRowKey(), aa.getTargetRowKey());
+			assertEquals(a.getActionType(), aa.getActionType());
+			assertEquals(a.getRowKey(), aa.getRowKey());
+
+			assertEquals(a.getAgent().getId(), aa.getAgent().getId());
+			assertEquals(a.getAgent().getName(), aa.getAgent().getName());
+			assertEquals(a.getAgent().getType(), aa.getAgent().getType());
+
+			assertTrue(Arrays.equals(a.getTargetValue(), aa.getTargetValue()));
+
+			System.out.println(Oaf.parseFrom(aa.getTargetValue()));
+		}
+
+		for (AtomicAction a : actions) {
+			assertNotNull(a);
+		}
+		log.info("N. puts: " + actions.size());
+	}
+
+	private String asString(final InputStream i) throws IOException {
+		StringWriter writer = new StringWriter();
+		IOUtils.copy(i, writer);
+		return writer.toString();
+	}
+}
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/applicationContext-actionmanager-test.xml
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/applicationContext-actionmanager-test.xml	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/applicationContext-actionmanager-test.xml	(revision 56428)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:sec="http://cxf.apache.org/configuration/security"
+	xmlns:wsa="http://cxf.apache.org/ws/addressing" xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:http="http://cxf.apache.org/transports/http/configuration" xmlns:t="http://dnetlib.eu/springbeans/t"
+	xmlns:template="http://dnetlib.eu/springbeans/template" xmlns:util="http://www.springframework.org/schema/util"
+	xmlns="http://www.springframework.org/schema/beans"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                                    http://cxf.apache.org/ws/addressing http://cxf.apache.org/schemas/ws-addr-conf.xsd
+                                    http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd
+                                    http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
+                            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+                            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+                            http://dnetlib.eu/springbeans/template http://dnetlib.eu/springbeans/template.xsd">
+		
+	<bean id="actionFactory" class="eu.dnetlib.actionmanager.actions.ActionFactory">
+		<property name="xslts">
+			<util:map>
+				<entry key="dmf2insertActions" value="classpath:/eu/dnetlib/actionmanager/xslt/dmf2insertActions.xslt" />
+				<entry key="dmf2updateActions" value="classpath:/eu/dnetlib/actionmanager/xslt/dmf2updateActions.xslt" />
+				<entry key="datacite2insertActions" value="classpath:/eu/dnetlib/actionmanager/xslt/datacite2insertActions.xslt" />
+				<entry key="rels2Actions" value="classpath:/eu/dnetlib/actionmanager/xslt/rels2actions.xslt" />
+			</util:map>
+		</property>
+	</bean>
+
+</beans>
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/record.xml
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/record.xml	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/record.xml	(revision 56428)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<record xmlns:dc="http://purl.org/dc/elements/1.1/"
+        xmlns:dr="http://www.driver-repository.eu/namespace/dr"
+        xmlns:dri="http://www.driver-repository.eu/namespace/dri"
+        xmlns:oaf="http://namespace.openaire.eu/oaf"
+        >
+    <header xmlns="http://namespace.openaire.eu/">
+        <dri:objIdentifier>od_______296::74732b873f881d9bff67c2a11b6a66d6</dri:objIdentifier>
+        <dri:recordIdentifier>ebfb74b7-3087-4da0-aaab-917121e40028_TURTdG9yZURTUmVzb3VyY2VzL01EU3RvcmVEU1Jlc291cmNlVHlwZQ==::oai:www.tdx.cat:10803/32188
+        </dri:recordIdentifier>
+        <dri:dateOfCollection/>
+        <dri:mdFormat/>
+        <dri:mdFormatInterpretation/>
+        <dri:repositoryId>1d3fe9bd-a21d-4bba-9238-dc6259ee1424_UmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZXMvUmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZVR5cGU=</dri:repositoryId>
+        <dr:objectIdentifier/>
+        <dr:dateOfCollection>2014-07-12T06:03:38Z</dr:dateOfCollection>
+        <oaf:datasourceprefix>od_______296</oaf:datasourceprefix>
+    </header>
+    <metadata xmlns="http://namespace.openaire.eu/">
+        <dc:contributor>Riera Guilera, Carme</dc:contributor>
+        <dc:contributor>Universitat Autònoma de Barcelona. Departament de Filologia Espanyola</dc:contributor>
+        <dc:creator>Torras Francés, Meri</dc:creator>
+        <dc:creator>Moreno-Noguer, Francese</dc:creator>
+        <dc:dateAccepted>1998-10-26</dc:dateAccepted>
+        <dc:description>La tesi parteix d’una reflexió des de la teoria a propòsit de l’estatut de l’autobiografia (i del gènere epistolar en particular),
+            preguntant-se a propòsit d’aspectes com són ara la construcció del subjecte en el discurs o el valor de l’experiència com a categoria de diferència.
+            Per tal de aprofundir en aquesta aproximació, el segon capítol realitza un alectura crítica de dues cartes autobiogràfiques escrites per dones: la
+            Carta a Sor Filotea de la Cruz, escrita per Sor Juana i l’ Autobiografía epistolar de Gertrudis Góme de Avellaneda. El capítol central analitza el
+            binomi gènere femení-gènere epistolar per demostrar de quina manera va establir-se a la modernitat (la França dels segles XVII i XVIII) i per què la
+            carta privada acaba definint-se com un gènere (genre) de gènere (gender) femení, sobre quins condicionaments socials va succeir i quin va ser el
+            paper de les dones en tot això. En el darrer capítol s’aborda el seguiment del binomi a l’Espanya dels segles XVIII, XIX i XX, fent paleses les
+            aplicacions particulars que va patir en aquest altre context historico-cultural. Tot això fent ús d’un plantejament i un enfocament propis de la
+            filologia, la teoria de la literatura i la literatura comparada que, a l’apèndix, abraça altres arts, ja que s’hi recullen mostres de la pintura
+            holandesa del xvii on el motiu de la carta femenina té un tractament plenament en consonància amb els paràmetres que van constituir l’assimmilació
+            de gèneres (gènere femení-gènere epistolar) a la França dels salons.
+        </dc:description>
+        <dc:description>La tesis parte de una reflexión desde la teoría a propósito del estatuto de la autobiografía (y del género epistolar en particular),
+            preguntándose sobre aspectos como la construcción del sujeto en el discurso o el valor de la experiencia como categoría de diferencia. En aras de
+            ahondar en esta aproximación, el segundo capítulo realiza una lectura crítica de dos cartas autobiográficas escritas por mujeres: la Carta a Sor
+            Filotea de la Cruz, escrita por Sor Juana y la Autobiografía epistolar de Gertrudis Gómez de Avellaneda. El capítulo central está destinado a
+            analizar el binomio género femenino-género epistolar para demostrar de qué modo se estableció en la modernidad (en la Francia de los siglos XVII y
+            XVIII) y por qué la carta privada terminó definiéndose como un género (genre) de género (gender) femenino, sobre qué condicionamientos sociales
+            aconteció y cuál fue el papel de las mujeres en ello. En el capítulo posterior se acomete el seguimiento del binomio en la España de los siglos
+            XVIII, XIX y XX, dando cuenta de las aplicaciones particulares que sufrió en este otro contexto histórico-cultural. Todo ello haciendo uso de un
+            planteamiento y un enfoque propios de la filología, la teoría de la literatura y la literatura comparada que, en el apéndice, abraza otras artes,
+            puesto que en él se recogen muestras de la pintura holandesa del XVII donde el motivo de la carta femenina observa un tratamiento plenamente en
+            consonancia con los parámetros que constituyeron la asimilación de los géneros (género femenino-género epistolar) en la Francia de los salones.
+        </dc:description>
+        <dc:description>The thesis departs from a theoretic reflection on the status of autobiography in general —and of epistolary genre in particular—
+            inquiring about aspects like the construction of the subject in the discourse or the value of experience as a category of difference. In order to
+            examine in depth this approach, the second chapter performs a critical reading of two autobiographic letters written by women: the Carta a Sor
+            Filotea de la Cruz by Sor Juana and the epistolary Autobiografía of Gertrudis Gómez de Avellaneda. The central chapter is devoted to analyze the
+            epistolary genre—feminine gender relationship to show how it was established in Modernity (in France, XVII and XVIII centuries) and why the personal
+            letter finished defined as a genre of feminine gender, on what social factors happened and what was the woman’s role in all that. The following
+            chapter shows the relationship in Spain, XVIII, XIX and XX centuries, giving an account of particular applications that it suffered in this
+            historical and cultural context. All this using approaches of Philology, Literary Theory and Comparative. The appendix considers some samples of the
+            Dutch painting of the xvii where the motive of the feminine letter observes a treatment fully accordance with the parameters that constituted the
+            assimilation of gender/genre (feminine gender/epistolary genre) in the French salons.
+        </dc:description>
+        <dc:identifier>http://hdl.handle.net/10803/32188</dc:identifier>
+        <oaf:identifier identifierType="doi">10803/32188</oaf:identifier>
+        <oaf:identifier identifierType="orcidworkid">1234-1234-1234-1111</oaf:identifier>
+        <dc:language>esl/spa</dc:language>
+        <dc:publisher>Universitat Autònoma de Barcelona</dc:publisher>
+        <dc:title>La epistola privada como género: estrategias de construcción</dc:title>
+        <dc:source>TDX (Tesis Doctorals en Xarxa)</dc:source>
+        <dc:subject>Ciències Humanes</dc:subject>
+        <dc:subject>82 - Literatura</dc:subject>
+        <dr:CobjCategory>0006</dr:CobjCategory>
+        <dr:CobjCategory>0000</dr:CobjCategory>
+        <dr:CobjIdentifier>urn:isbn:9788469416310</dr:CobjIdentifier>
+        <oaf:projectid>corda_______::295128</oaf:projectid>
+        <oaf:collectedDatasourceid>opendoar____::296</oaf:collectedDatasourceid>
+        <oaf:accessrights>OPEN</oaf:accessrights>
+        <oaf:reference
+                identifier="CHEMBL1658379"
+                query="http://www.ebi.ac.uk/europepmc/webservices/rest/PMC/PMC2934972/databaseLinks/ChEMBL/2/json"
+                source="CHEMBL"
+                title="Antifungal activity against Candida albicans isolate 108 harboring erg11 and erg5 double mutant after 48 hrs by Etest"
+                type="dataset">https://www.ebi.ac.uk/chembldb/assay/inspect/CHEMBL1658379
+        </oaf:reference>
+        <oaf:hostedBy id="opendoar____::296" name="Tesis Doctorals en Xarxa"/>
+        <oaf:collectedFrom id="opendoar____::296" name="Tesis Doctorals en Xarxa"/>
+    </metadata>
+</record>
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/recordDatacite.xml
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/recordDatacite.xml	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/src/test/resources/eu/dnetlib/actionmanager/actions/recordDatacite.xml	(revision 56428)
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<record xmlns:dr="http://www.driver-repository.eu/namespace/dr"
+	xmlns:oaf="http://namespace.openaire.eu/oaf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<oai:header xmlns="http://namespace.openaire.eu/" xmlns:dc="http://purl.org/dc/elements/1.1/"
+		xmlns:dri="http://www.driver-repository.eu/namespace/dri" xmlns:oai="http://www.openarchives.org/OAI/2.0/"
+		xmlns:prov="http://www.openarchives.org/OAI/2.0/provenance">
+		<dri:objIdentifier>r3c903d4c5a8::00a0cdbbc0c27cca1ccfafb33e7a862d
+		</dri:objIdentifier>
+		<dri:recordIdentifier />
+		<dri:dateOfCollection>2014-10-08T13:12:50.337Z</dri:dateOfCollection>
+		<dri:repositoryId>19365384-4f97-4446-9a81-8c414d2ca27a_UmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZXMvUmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZVR5cGU=
+		</dri:repositoryId>
+		<oaf:datasourceprefix>r3c903d4c5a8</oaf:datasourceprefix>
+		<identifier xmlns="http://www.openarchives.org/OAI/2.0/">oai:ucd.ie:ucdlib:31727</identifier>
+		<datestamp xmlns="http://www.openarchives.org/OAI/2.0/">2014-10-07T14:28:12Z</datestamp>
+		<setSpec xmlns="http://www.openarchives.org/OAI/2.0/">ucd_digital_library</setSpec>
+		<setSpec xmlns="http://www.openarchives.org/OAI/2.0/">openaire_data</setSpec>
+	</oai:header>
+	<metadata>
+		<resource xmlns="http://datacite.org/schema/kernel-3"
+			xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dri="http://www.driver-repository.eu/namespace/dri"
+			xmlns:oai="http://www.openarchives.org/OAI/2.0/" xmlns:prov="http://www.openarchives.org/OAI/2.0/provenance"
+			xsi:schemaLocation="http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd">
+			<identifier identifierType="DOI">10.7925/drs1.ucdlib_31727</identifier>
+			<creators>
+				<creator>
+					<creatorName>Laefer, Debra L.</creatorName>
+					<nameIdentifier nameIdentifierScheme="ORCID">0000-0001-5134-5322</nameIdentifier>
+				</creator>
+				<creator>
+					<creatorName>University College, Dublin. Library</creatorName>
+					<nameIdentifier nameIdentifierScheme="VIAF"
+						schemeURI="http://www.viaf.org">261450561</nameIdentifier>
+				</creator>
+			</creators>
+			<titles>
+				<title>39 Grafton Street, Dublin</title>
+			</titles>
+			<publisher>UCD School of Architecture Landscape Civil Engineering</publisher>
+			<publicationYear>2013</publicationYear>
+			<subjects>
+				<subject schemeURI="http://id.loc.gov/authorities/subjects/sh99004820#concept"
+					subjectScheme="NAF">Buildings, structures, etc</subject>
+			</subjects>
+			<contributors>
+				<contributor contributorType="Other">
+					<contributorName>Clarke, Julie</contributorName>
+					<nameIdentifier nameIdentifierScheme="ORCID">0000-0001-6092-9741</nameIdentifier>
+				</contributor>
+				<contributor contributorType="Sponsor">
+					<contributorName>UCD School of Architecture, Landscape, and Civil Engineering</contributorName>
+				</contributor>
+				<contributor contributorType="HostingInstitution">
+					<contributorName>University College, Dublin. Library</contributorName>
+					<nameIdentifier nameIdentifierScheme="VIAF"
+						schemeURI="http://www.viaf.org">261450561</nameIdentifier>
+				</contributor>
+				<contributor contributorType="Funder">
+					<contributorName>Irish Research Council for Science, Engineering and Technology</contributorName>
+					<nameIdentifier nameIdentifierScheme="info">info:eu-repo/grantAgreement/IRCSET//RS-2011-435</nameIdentifier>
+				</contributor>
+			</contributors>
+			<dates>
+				<date dateType="Issued">2013</date>
+				<date dateType="Available">2014-09-29</date>
+			</dates>
+			<resourceType resourceTypeGeneral="Dataset">Dataset</resourceType>
+			<alternateIdentifiers>
+				<alternateIdentifier alternateIdentifierType="URL">http://digital.ucd.ie/view/ucdlib:31727</alternateIdentifier>
+			</alternateIdentifiers>
+			<relatedIdentifiers>
+				<relatedIdentifier relatedIdentifierType="DOI"
+					relationType="IsPartOf">10.7925/drs1.ucdlib_31100</relatedIdentifier>
+				<relatedIdentifier relatedIdentifierType="DOI"
+					relationType="IsReferencedBy">10.7925/drs1.ucdlib_31057</relatedIdentifier>
+			</relatedIdentifiers>
+			<sizes>
+				<size>1 still image</size>
+				<size>26859085 bytes</size>
+				<size>1545x2946 pixels</size>
+			</sizes>
+			<formats>
+				<format>image/vnd.adobe.photoshop</format>
+				<format>image/jpeg</format>
+			</formats>
+			<rightsList>
+				<rights rightsURI="info:eu-repo/semantics/openAccess" />
+				<rights rightsURI="http://creativecommons.org/publicdomain/zero/1.0/">Use and reproduction: CC0 1.0 Universal</rights>
+			</rightsList>
+			<descriptions>
+				<description descriptionType="Abstract">Consists of an
+					orthorectified image of the structure in Adobe PhotoShop (PSD)
+					format. The orthorectified image has been derived from one or more
+					photographic images that are included as layers in the original
+					Adobe PhotoShop (PSD) file. The composite and all other image
+					layers have been extracted and saved in TIFF image files, and JPEG
+					files in various resolutions have been derived from the flattened
+					image layer to facilitate inspection.</description>
+				<description descriptionType="Other">Brickwork structure, 4
+					levels above ground, constructed 1864.</description>
+				<description descriptionType="Other">Funded by an award from the
+					Irish Research Council for Science, Engineering and Technology
+					(IRCSET), Embark Initiative Postgraduate Scholarship, grant
+					identifier RS/2011/435.</description>
+			</descriptions>
+			<geoLocations>
+				<geoLocation>
+					<geoLocationPoint>53.3407951 -6.26054559383235</geoLocationPoint>
+				</geoLocation>
+			</geoLocations>
+		</resource>
+		<oaf:embargoenddate>2014-09-29</oaf:embargoenddate>
+		<dr:CobjCategory>0021</dr:CobjCategory>
+		<oaf:dateAccepted>2013-01-01</oaf:dateAccepted>
+		<oaf:accessrights>OPEN</oaf:accessrights>
+		<oaf:language>und</oaf:language>
+		<oaf:hostedBy id="re3data_____::r3d100010742" name="UCD Digital Library" />
+		<oaf:collectedFrom id="re3data_____::r3d100010742"
+			name="UCD Digital Library" />
+		<oaf:relatedPublication
+			id="r39633d1e8c4::f5299dc87856b62949f02d0f780b05c3" />
+	</metadata>
+	<about xmlns="http://namespace.openaire.eu/" xmlns:dc="http://purl.org/dc/elements/1.1/"
+		xmlns:dri="http://www.driver-repository.eu/namespace/dri" xmlns:oai="http://www.openarchives.org/OAI/2.0/"
+		xmlns:prov="http://www.openarchives.org/OAI/2.0/provenance">
+		<oaf:datainfo>
+			<oaf:inferred>false</oaf:inferred>
+			<oaf:deletedbyinference>false</oaf:deletedbyinference>
+			<oaf:trust>0.9</oaf:trust>
+			<oaf:inferenceprovenance />
+			<oaf:provenanceaction classid="sysimport:crosswalk:datasetarchive"
+				classname="sysimport:crosswalk:datasetarchive" schemeid="dnet:provenanceActions"
+				schemename="dnet:provenanceActions" />
+		</oaf:datainfo>
+	</about>
+</record>
\ No newline at end of file
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/deploy.info
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/deploy.info	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/deploy.info	(revision 56428)
@@ -0,0 +1 @@
+{"type_source": "SVN", "goal": "package -U -T 4C source:jar", "url": "http://svn-public.driver.research-infrastructures.eu/driver/dnet45/modules/dnet-actionmanager-common/trunk/", "deploy_repository": "dnet45-snapshots", "version": "4", "mail": "sandro.labruzzo@isti.cnr.it,michele.artini@isti.cnr.it, claudio.atzori@isti.cnr.it, alessia.bardi@isti.cnr.it", "deploy_repository_url": "http://maven.research-infrastructures.eu/nexus/content/repositories/dnet45-snapshots", "name": "dnet-actionmanager-common"}
\ No newline at end of file
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/.springBeans
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/.springBeans	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4/.springBeans	(revision 56428)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beansProjectDescription>
+	<version>1</version>
+	<pluginVersion><![CDATA[3.1.0.201210040510-RELEASE]]></pluginVersion>
+	<configSuffixes>
+		<configSuffix><![CDATA[xml]]></configSuffix>
+	</configSuffixes>
+	<enableImports><![CDATA[false]]></enableImports>
+	<configs>
+		<config>src/main/resources/eu/dnetlib/actionmanager/hack/applicationContext-claimed-import.xml</config>
+	</configs>
+	<configSets>
+	</configSets>
+</beansProjectDescription>
Index: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4
===================================================================
--- modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4	(nonexistent)
+++ modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4	(revision 56428)

Property changes on: modules/dnet-actionmanager-common/tags/dnet-actionmanager-common-6.0.4
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,5 ##
+.project
+target
+.settings
+.classpath
+*.iml
