Project

General

Profile

« Previous | Next » 

Revision 38856

[maven-release-plugin] copy for tag dnet-modular-objectstore-service-4.1.2

View differences:

modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<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">
3
	<parent>
4
		<groupId>eu.dnetlib</groupId>
5
		<artifactId>dnet-parent</artifactId>
6
		<version>1.0.0</version>
7
	</parent>
8
	<modelVersion>4.0.0</modelVersion>
9
	<groupId>eu.dnetlib</groupId>
10
	<artifactId>dnet-modular-objectstore-service</artifactId>
11
	<packaging>jar</packaging>
12
	<version>4.1.2</version>
13
	<scm>
14
	  <developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2</developerConnection>
15
	</scm>
16
	<dependencies>
17
		<dependency>
18
			<groupId>eu.dnetlib</groupId>
19
			<artifactId>dnet-objectstore-rmi</artifactId>
20
			<version>[2.0.0,3.0.0)</version>
21
		</dependency>
22
		<dependency>
23
			<groupId>eu.dnetlib</groupId>
24
			<artifactId>cnr-resultset-service</artifactId>
25
			<version>[2.0.0,3.0.0)</version>
26
		</dependency>
27
		<dependency>
28
			<groupId>eu.dnetlib</groupId>
29
			<artifactId>cnr-resultset-client</artifactId>
30
			<version>[2.0.0,3.0.0)</version>
31
		</dependency>
32
		<dependency>
33
			<groupId>eu.dnetlib</groupId>
34
			<artifactId>cnr-blackboard-common</artifactId>
35
			<version>[2.0.0,3.0.0)</version>
36
		</dependency>
37
		<dependency>
38
			<groupId>eu.dnetlib</groupId>
39
			<artifactId>cnr-inspector</artifactId>
40
			<version>[1.0.0,2.0.0)</version>
41
		</dependency>
42
		<dependency>
43
			<groupId>junit</groupId>
44
			<artifactId>junit</artifactId>
45
			<version>${junit.version}</version>
46
			<scope>test</scope>
47
		</dependency>
48
		<dependency>
49
			<groupId>apache</groupId>
50
			<artifactId>commons-net</artifactId>
51
			<version>2.2</version>
52
		</dependency>
53
		<dependency>
54
			<groupId>apache</groupId>
55
			<artifactId>commons-net-ftp</artifactId>
56
			<version>2.0</version>
57
		</dependency>
58
		<dependency>
59
			<groupId>javax.servlet</groupId>
60
			<artifactId>javax.servlet-api</artifactId>
61
			<version>${javax.servlet.version}</version>
62
			<scope>provided</scope>
63
		</dependency>
64

  
65
	</dependencies>
66
</project>
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/resources/eu/dnetlib/test/schemas/LinkedDataDSResourceType.xsd
1
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
2
    <xs:complexType name="DATA_SOURCEType">
3
        <xs:sequence>
4
            <xs:element name="DATA_SOURCE" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
5
        </xs:sequence>
6
    </xs:complexType>
7
    <xs:complexType name="SOURCE_METADATA_FORMATSType">
8
        <xs:sequence>
9
            <xs:element name="SOURCE_METADATA_FORMAT" minOccurs="0" maxOccurs="unbounded" type="METADATA_FORMATType"/>
10
        </xs:sequence>
11
    </xs:complexType>
12
    <xs:complexType name="METADATA_FORMATType">
13
        <xs:attribute name="name" type="xs:string"/>
14
        <xs:attribute name="interpretation" type="xs:string"/>
15
        <xs:attribute name="layout" type="xs:string"/>
16
    </xs:complexType>
17
    <xs:complexType name="SCHEDULINGType">
18
        <xs:all>
19
            <xs:element name="CRON" minOccurs="0" type="CRONType"/>
20
            <xs:element name="EVENT" minOccurs="0" type="EVENTType"/>
21
        </xs:all>
22
    </xs:complexType>
23
    <xs:complexType name="CRONType">
24
        <xs:sequence>
25
            <xs:element name="WHEN" type="xs:string"/>
26
            <xs:element name="MININTERVAL" type="xs:string"/>
27
        </xs:sequence>
28
    </xs:complexType>
29
    <xs:complexType name="EVENTType">
30
        <xs:sequence>
31
            <xs:element name="TOPIC" type="xs:string"/>
32
            <xs:element name="XPATH" type="xs:string" minOccurs="0"/>
33
        </xs:sequence>
34
    </xs:complexType>
35
    <xs:complexType name="STATUSType">
36
        <xs:all>
37
            <xs:element name="LAST_UPDATE_DATE" type="xs:string"/>
38
            <xs:element name="LAST_UPDATE_STATUS" type="xs:string"/>
39
            <xs:element name="LAST_UPDATE_ERROR_MESSAGE" type="xs:string"/>
40
        </xs:all>
41
    </xs:complexType>
42
    <xs:element name="RESOURCE_PROFILE">
43
        <xs:complexType>
44
            <xs:sequence>
45
                <xs:element name="HEADER" type="HEADERType"/>
46
                <xs:element name="BODY" type="BODYType"/>
47
            </xs:sequence>
48
        </xs:complexType>
49
    </xs:element>
50
    <xs:complexType name="RESOURCE_TYPEType">
51
        <xs:attribute name="value" use="required">
52
            <xs:simpleType>
53
                <xs:restriction base="xs:string">
54
                    <xs:enumeration value="LinkedDataDSResourceType"/>
55
                </xs:restriction>
56
            </xs:simpleType>
57
        </xs:attribute>
58
    </xs:complexType>
59
    <xs:complexType name="RESOURCE_URIType">
60
        <xs:attribute name="value" type="xs:string" use="required"/>
61
    </xs:complexType>
62
    <xs:complexType name="RESOURCE_KINDType">
63
        <xs:attribute name="value" use="required">
64
            <xs:simpleType>
65
                <xs:restriction base="xs:string">
66
                    <xs:enumeration value="LinkedDataDSResources"/>
67
                </xs:restriction>
68
            </xs:simpleType>
69
        </xs:attribute>
70
    </xs:complexType>
71
    <xs:complexType name="RESOURCE_IDENTIFIERType">
72
        <xs:attribute name="value" type="xs:string" use="required"/>
73
    </xs:complexType>
74
    <xs:complexType name="DATE_OF_CREATIONType">
75
        <xs:attribute name="value" type="xs:dateTime" use="required"/>
76
    </xs:complexType>
77
    <xs:complexType name="HEADERType">
78
        <xs:all>
79
            <xs:element name="RESOURCE_IDENTIFIER" type="RESOURCE_IDENTIFIERType"/>
80
            <xs:element name="RESOURCE_TYPE" type="RESOURCE_TYPEType"/>
81
            <xs:element name="RESOURCE_KIND" type="RESOURCE_KINDType"/>
82
            <xs:element name="RESOURCE_URI" type="RESOURCE_URIType"/>
83
            <xs:element name="DATE_OF_CREATION" type="DATE_OF_CREATIONType"/>
84
        </xs:all>
85
    </xs:complexType>
86
    <xs:complexType name="CONFIGURATIONType">
87
        <xs:all>
88
            <xs:element name="REPOSITORY_SERVICE_IDENTIFIER" type="xs:string" minOccurs="0"/>
89
            <xs:element name="LINKEDDATA_MANAGER_SERVICE_IDENTIFIER" type="xs:string"/>
90
            <xs:element name="LINKEDDATA_MANAGER_SERVICE_URI" type="xs:string"/>
91
            <xs:element name="SOURCE_METADATA_FORMATS" type="SOURCE_METADATA_FORMATSType"/>
92
            <xs:element name="SINK_METADATA_FORMAT" type="METADATA_FORMATType"/>
93
            <xs:element name="DATA_SOURCES" type="DATA_SOURCEType"/>
94
            <xs:element name="DATA_SINK" type="xs:string"/>            
95
            <xs:element name="SCHEDULING" type="SCHEDULINGType"/>
96
        </xs:all>
97
    </xs:complexType>
98
    <xs:complexType name="BODYType">
99
        <xs:sequence>
100
            <xs:element name="CONFIGURATION" type="CONFIGURATIONType"/>
101
            <xs:element name="STATUS" type="STATUSType"/>
102
            <xs:element name="SECURITY_PARAMETERS" type="xs:string"/>
103
        </xs:sequence>
104
    </xs:complexType>
105
</xs:schema>
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/ModularObjectStoreRESTService.java
1
package eu.dnetlib.data.objectstore.modular;
2

  
3
import java.io.IOException;
4
import java.io.InputStream;
5

  
6
import javax.annotation.Resource;
7
import javax.servlet.ServletOutputStream;
8
import javax.servlet.http.HttpServletResponse;
9

  
10
import org.apache.commons.io.IOUtils;
11
import org.apache.commons.logging.Log;
12
import org.apache.commons.logging.LogFactory;
13
import org.springframework.stereotype.Controller;
14
import org.springframework.web.bind.annotation.RequestMapping;
15
import org.springframework.web.bind.annotation.RequestParam;
16

  
17
import eu.dnetlib.data.objectstore.rmi.ObjectStoreFile;
18
import eu.dnetlib.data.objectstore.rmi.ObjectStoreServiceException;
19
import eu.dnetlib.miscutils.datetime.HumanTime;
20

  
21
// TODO: Auto-generated Javadoc
22
/**
23
 * The Class ModularObjectStoreRESTService implement the controller REST of the object Store.
24
 */
25
@Controller
26
public class ModularObjectStoreRESTService {
27

  
28
	/** The object store deliver. */
29
	@Resource
30
	ModularObjectStoreDeliver objectStoreDeliver;
31

  
32
	private static final Log log = LogFactory.getLog(ModularObjectStoreRESTService.class); // NOPMD by marko on 11/24/08 5:02 PM
33

  
34
	/**
35
	 * Retrieve.
36
	 *
37
	 * @param res
38
	 *            the res
39
	 * @param objectStoreId
40
	 *            the object store id
41
	 * @param objectId
42
	 *            the object id
43
	 * @throws IOException
44
	 *             Signals that an I/O exception has occurred.
45
	 * @throws ObjectStoreServiceException
46
	 */
47
	@RequestMapping(value = "/**/objectStore/retrieve.do")
48
	public void retrieve(final HttpServletResponse res,
49
			@RequestParam(value = "objectStore", required = true) final String objectStoreId,
50
			@RequestParam(value = "objectId", required = true) final String objectId) throws IOException, ObjectStoreServiceException {
51

  
52
		long start = System.currentTimeMillis();
53
		ObjectStoreFile file = objectStoreDeliver.deliverObject(objectStoreId, objectId);
54

  
55
		if (file == null) throw new RuntimeException("The file with id " + objectId + " doesn't exist");
56

  
57
		// res.setContentType(file.getMimeType());
58

  
59
		InputStream is = objectStoreDeliver.deliverStream(objectStoreId, objectId);
60

  
61
		ServletOutputStream outputStream = res.getOutputStream();
62

  
63
		IOUtils.copy(is, outputStream);
64

  
65
		try {
66
			is.close();
67
			if (log.isDebugEnabled()) {
68
				log.debug(String.format("retrive.do completed in %s, objId: %s", HumanTime.exactly(System.currentTimeMillis() - start), objectId));
69
			}
70
		} catch (Throwable e) {
71
			log.error("unable to close input Stream", e);
72
		}
73

  
74
		/*
75
		 * while (true) { int readSize = is.read(buffer); if (readSize == -1) { break; } outputStream.write(buffer, 0, readSize); }
76
		 */
77
	}
78
}
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/CreateObjectStoreAction.java
1
package eu.dnetlib.data.objectstore.modular;
2

  
3
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
4
import eu.dnetlib.enabling.tools.blackboard.BlackboardServerAction;
5
import eu.dnetlib.enabling.tools.blackboard.BlackboardServerHandler;
6

  
7
/**
8
 * The Class CreateObjectStoreAction is responsible to execute the blacboard action of type CREATE.
9
 */
10
public class CreateObjectStoreAction extends AbstractObjectStoreAction
11
implements BlackboardServerAction<ObjectStoreActions> {
12

  
13
	/** The profile creator. */
14
	private ObjectStoreProfileCreator profileCreator;
15

  
16
	/* (non-Javadoc)
17
	 * @see eu.dnetlib.enabling.tools.blackboard.BlackboardServerAction#execute(eu.dnetlib.enabling.tools.blackboard.BlackboardServerHandler, eu.dnetlib.enabling.tools.blackboard.BlackboardJob)
18
	 */
19
	@Override
20
	public void execute(final BlackboardServerHandler handler, final BlackboardJob job)
21
			throws Exception {
22

  
23
		final String interpretation = job.getParameters().get("interpretation");
24

  
25
		final String basePath = job.getParameters().get("basePath");
26

  
27
		final String objID = profileCreator.registerProfile(interpretation);
28

  
29

  
30

  
31
		getDao().createObjectStore(objID, interpretation,basePath);
32

  
33
		job.getParameters().put("objectStoreId", objID);
34

  
35
		handler.done(job);
36

  
37
	}
38

  
39
	/**
40
	 * Gets the profile creator.
41
	 *
42
	 * @return the profile creator
43
	 */
44
	public ObjectStoreProfileCreator getProfileCreator() {
45
		return profileCreator;
46
	}
47

  
48
	/**
49
	 * Sets the profile creator.
50
	 *
51
	 * @param profileCreator the new profile creator
52
	 */
53
	public void setProfileCreator(final ObjectStoreProfileCreator profileCreator) {
54
		this.profileCreator = profileCreator;
55
	}
56

  
57
}
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/inspector/ObjectStoreInspector.java
1
package eu.dnetlib.data.objectstore.modular.inspector;
2

  
3
import static eu.dnetlib.miscutils.collections.MappedCollection.listMap;
4

  
5
import java.util.List;
6

  
7
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.stereotype.Controller;
9
import org.springframework.ui.Model;
10
import org.springframework.web.bind.annotation.RequestMapping;
11
import org.springframework.web.bind.annotation.RequestMethod;
12
import org.springframework.web.bind.annotation.RequestParam;
13

  
14
import com.google.gson.Gson;
15

  
16
import eu.dnetlib.data.objectstore.modular.connector.ObjectStore;
17
import eu.dnetlib.data.objectstore.modular.connector.ObjectStoreDao;
18
import eu.dnetlib.data.objectstore.rmi.ObjectStoreFile;
19
import eu.dnetlib.data.objectstore.rmi.ObjectStoreServiceException;
20
import eu.dnetlib.enabling.inspector.AbstractInspectorController;
21
import eu.dnetlib.enabling.resultset.ResultSetListener;
22
import eu.dnetlib.miscutils.collections.MappedCollection;
23
import eu.dnetlib.miscutils.functional.UnaryFunction;
24

  
25
/**
26
 * The Class ObjectStoreInspector is the inspector controller of the objectStore.
27
 */
28
@Controller
29
public class ObjectStoreInspector extends AbstractInspectorController {
30

  
31
	// private static final Log log = LogFactory.getLog(ObjectStoreInspector.class);
32

  
33
	/** The object store dao. */
34
	@Autowired
35
	private ObjectStoreDao objectStoreDao;
36

  
37
	/**
38
	 * The Class ObjectStoreDescription.
39
	 */
40
	class ObjectStoreDescription {
41

  
42
		/** The id. */
43
		private String id;
44

  
45
		/** The size. */
46
		private int size;
47

  
48
		/**
49
		 * Instantiates a new object store description.
50
		 *
51
		 * @param id
52
		 *            the id
53
		 * @param size
54
		 *            the size
55
		 */
56
		public ObjectStoreDescription(final String id, final int size) {
57

  
58
			this.id = id;
59
			this.size = size;
60
		}
61

  
62
		/**
63
		 * Gets the interpretation.
64
		 *
65
		 * @return the interpretation
66
		 * @throws ObjectStoreServiceException
67
		 */
68
		public String getInterpretation() throws ObjectStoreServiceException {
69

  
70
			ObjectStore objectStore = objectStoreDao.getObjectStore(id);
71
			return objectStore.getInterpretation();
72
		}
73

  
74
		/**
75
		 * Gets the id.
76
		 *
77
		 * @return the id
78
		 */
79
		public String getId() {
80
			return id;
81
		}
82

  
83
		/**
84
		 * Sets the id.
85
		 *
86
		 * @param id
87
		 *            the new id
88
		 */
89
		public void setId(final String id) {
90
			this.id = id;
91
		}
92

  
93
		/**
94
		 * Gets the size.
95
		 *
96
		 * @return the size
97
		 */
98
		public int getSize() {
99
			return size;
100
		}
101

  
102
		/**
103
		 * Sets the size.
104
		 *
105
		 * @param size
106
		 *            the new size
107
		 */
108
		public void setSize(final int size) {
109
			this.size = size;
110
		}
111
	}
112

  
113
	/**
114
	 * Object stores.
115
	 *
116
	 * @param model
117
	 *            the model
118
	 */
119
	@RequestMapping(value = "/inspector/objectstores.do")
120
	public void objectStores(final Model model) {
121
		List<String> objectStores = objectStoreDao.listObjectStores();
122
		model.addAttribute("objectstores", MappedCollection.listMap(objectStores, new UnaryFunction<ObjectStoreDescription, String>() {
123

  
124
			@Override
125
			public ObjectStoreDescription evaluate(final String id) {
126
				try {
127
					ObjectStore objStore = objectStoreDao.getObjectStore(id);
128
					return new ObjectStoreDescription(id, objStore.getSize());
129
				} catch (ObjectStoreServiceException e) {
130
					return null;
131
				}
132
			}
133
		}));
134
	}
135

  
136
	/**
137
	 * Object store.
138
	 *
139
	 * @param model
140
	 *            the model
141
	 * @param id
142
	 *            the id
143
	 * @param startParam
144
	 *            the start param
145
	 * @param regex
146
	 *            the regex
147
	 * @throws ObjectStoreServiceException
148
	 */
149
	@RequestMapping(value = "/inspector/objectstore.do", method = RequestMethod.GET)
150
	public void objectStore(final Model model,
151
			@RequestParam("id") final String id,
152
			@RequestParam(value = "start", required = false) final Integer startParam,
153
			@RequestParam(value = "regex", required = false) final String regex) throws ObjectStoreServiceException {
154
		int pageSize = 10;
155
		int start = 0;
156

  
157
		if (startParam != null) {
158
			start = startParam;
159
		}
160
		ObjectStore objctStore = objectStoreDao.getObjectStore(id);
161
		ResultSetListener rs = objctStore.deliver((long) 0, System.currentTimeMillis());
162
		List<String> page = rs.getResult((1 + start), (start + pageSize));
163
		final Gson g = new Gson();
164
		model.addAttribute("id", id);
165
		model.addAttribute("start", start);
166
		model.addAttribute("regex", regex);
167
		model.addAttribute("nextPage", start + pageSize);
168
		model.addAttribute("prevPage", Math.max(0, start - pageSize));
169
		model.addAttribute("size", rs.getSize());
170
		model.addAttribute("page", listMap(page, new UnaryFunction<ObjectStoreFile, String>() {
171

  
172
			@Override
173
			public ObjectStoreFile evaluate(final String json) {
174
				return g.fromJson(json, ObjectStoreFile.class);
175
			}
176
		}));
177

  
178
	}
179

  
180
	/**
181
	 * Gets the object store dao.
182
	 *
183
	 * @return the object store dao
184
	 */
185
	public ObjectStoreDao getObjectStoreDao() {
186
		return objectStoreDao;
187
	}
188

  
189
	/**
190
	 * Sets the object store dao.
191
	 *
192
	 * @param objectStoreDao
193
	 *            the new object store dao
194
	 */
195
	public void setObjectStoreDao(final ObjectStoreDao objectStoreDao) {
196
		this.objectStoreDao = objectStoreDao;
197
	}
198

  
199
}
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/connector/ObjectStoreDao.java
1
package eu.dnetlib.data.objectstore.modular.connector;
2

  
3
import java.util.List;
4

  
5
import eu.dnetlib.data.objectstore.rmi.ObjectStoreServiceException;
6

  
7
/**
8
 * The Interface ObjectStoreDao.
9
 */
10
public interface ObjectStoreDao {
11

  
12
	/**
13
	 * Gets an Object Store with the given identifier.
14
	 * <p>
15
	 * If an Object Store with the given identifier does not exist, a new one is created.
16
	 * </p>
17
	 *
18
	 * @param obsId
19
	 *            the object store identifier
20
	 * @return the object store
21
	 * @throws ObjectStoreServiceException
22
	 */
23
	ObjectStore getObjectStore(String obsId) throws ObjectStoreServiceException;
24

  
25
	/**
26
	 * List all the Object stores.
27
	 *
28
	 * @return the list of object store ids
29
	 */
30
	List<String> listObjectStores();
31

  
32
	/**
33
	 * Creates an Object Store with the given identifier.
34
	 * <p>
35
	 * If an Object Store with the given identifier already exists this method does nothing.
36
	 * </p>
37
	 *
38
	 * @param obsId            	the object store identifier
39
	 * @param interpretation    the interpretation of the store
40
	 * @param basePath 			the base path to store the object Store in case of file system implementation
41
	 * @return true, if successful
42
	 * @throws ObjectStoreServiceException
43
	 */
44
	boolean createObjectStore(String obsId, String interpretation, String basePath) throws ObjectStoreServiceException;
45

  
46
	/**
47
	 * Upddate an Object Store metadata with the given identifier.
48
	 * <p>
49
	 * If an Object Store with the given identifier does not exist, a new one is created.
50
	 * </p>
51
	 *
52
	 * @param obsId
53
	 *            the object store identifier
54
	 * @param interpretation
55
	 *            the interpretation of the store
56
	 * @return true, if successful
57
	 */
58
	boolean updateObjectStore(String obsId, String interpretation);
59

  
60
	/**
61
	 * Delete object store.
62
	 *
63
	 * @param obsId
64
	 *            the object store identifier
65
	 * @return true, if successful
66
	 * @throws ObjectStoreServiceException
67
	 */
68
	boolean deleteObjectStore(String obsId) throws ObjectStoreServiceException;
69

  
70
}
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/connector/ObjectStore.java
1
package eu.dnetlib.data.objectstore.modular.connector;
2

  
3
import java.io.InputStream;
4

  
5
import eu.dnetlib.data.objectstore.modular.ObjectStoreRecord;
6
import eu.dnetlib.data.objectstore.rmi.MetadataObjectRecord;
7
import eu.dnetlib.data.objectstore.rmi.ObjectStoreFile;
8
import eu.dnetlib.data.objectstore.rmi.ObjectStoreServiceException;
9
import eu.dnetlib.enabling.resultset.ResultSetListener;
10

  
11
/**
12
 * The Interface ObjectStore.
13
 */
14
public interface ObjectStore {
15

  
16
	/**
17
	 * Gets the id of the objectStore.
18
	 *
19
	 * @return the id
20
	 */
21
	String getId();
22

  
23
	/**
24
	 * Gets the interpretation the objectStore.
25
	 *
26
	 * @return the interpretation
27
	 */
28
	String getInterpretation();
29

  
30
	/**
31
	 * Feed record into the objectstore.
32
	 *
33
	 * @param records
34
	 *            the records
35
	 * @param incremental
36
	 *            the incremental
37
	 * @return the int
38
	 */
39
	int feed(Iterable<ObjectStoreRecord> records, boolean incremental) throws ObjectStoreServiceException;
40

  
41
	/**
42
	 * Feed metadata record into the objectStore.
43
	 *
44
	 * @param records
45
	 *            the records
46
	 * @param incremental
47
	 *            the incremental
48
	 * @return the int
49
	 */
50
	int feedMetadataRecord(Iterable<MetadataObjectRecord> records, boolean incremental) throws ObjectStoreServiceException;
51

  
52
	/**
53
	 * Feed a single object record into the objectStore.
54
	 *
55
	 * @param record
56
	 *            the record
57
	 * @return the string
58
	 */
59
	String feedObjectRecord(ObjectStoreRecord record) throws ObjectStoreServiceException;
60

  
61
	/**
62
	 * Deliver Object from the objectStore.
63
	 *
64
	 * @param from
65
	 *            : start date which you want to filter
66
	 * @param until
67
	 *            : end date which you want to filter
68
	 * @return the result set listener
69
	 */
70
	ResultSetListener deliver(Long from, Long until) throws ObjectStoreServiceException;
71

  
72
	/**
73
	 * Deliver ids.
74
	 *
75
	 * @param ids
76
	 *            the ids
77
	 * @return the result set listener
78
	 */
79
	ResultSetListener deliverIds(Iterable<String> ids) throws ObjectStoreServiceException;
80

  
81
	/**
82
	 * Deliver object.
83
	 *
84
	 * @param objectId
85
	 *            the object id
86
	 * @return the object store file
87
	 * @throws ObjectStoreServiceException
88
	 */
89
	ObjectStoreFile deliverObject(String objectId) throws ObjectStoreServiceException;
90

  
91
	/**
92
	 * Deliver stream.
93
	 *
94
	 * @param objectId
95
	 *            the object id
96
	 * @return the input stream
97
	 */
98
	InputStream deliverStream(String objectId) throws ObjectStoreServiceException;
99

  
100
	/**
101
	 * Gets the size.
102
	 *
103
	 * @return the size
104
	 */
105
	int getSize() throws ObjectStoreServiceException;
106

  
107
	/**
108
	 * Delete object.
109
	 *
110
	 * @param objectId
111
	 *            the object id
112
	 */
113
	void deleteObject(String objectId) throws ObjectStoreServiceException;
114

  
115
	/**
116
	 * Gets the object.
117
	 *
118
	 * @param recordId
119
	 *            the record id
120
	 * @return the object
121
	 */
122
	String getObject(String recordId) throws ObjectStoreServiceException;
123

  
124
	/**
125
	 * Find if exist an ID startingwith the string startId.
126
	 *
127
	 * @param startId
128
	 *            the start id
129
	 * @return if exist or less an id
130
	 */
131
	boolean existIDStartsWith(String startId) throws ObjectStoreServiceException;
132

  
133
}
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/ModularObjectStoreFeeder.java
1
package eu.dnetlib.data.objectstore.modular;
2

  
3
import org.apache.commons.logging.Log;
4
import org.apache.commons.logging.LogFactory;
5
import org.springframework.beans.factory.annotation.Required;
6

  
7
import com.google.common.base.Function;
8
import com.google.common.collect.Iterables;
9
import com.google.common.collect.Lists;
10

  
11
import eu.dnetlib.data.objectstore.modular.connector.ObjectStore;
12
import eu.dnetlib.data.objectstore.modular.connector.ObjectStoreDao;
13
import eu.dnetlib.data.objectstore.rmi.MetadataObjectRecord;
14
import eu.dnetlib.data.objectstore.rmi.ObjectStoreFile;
15
import eu.dnetlib.data.objectstore.rmi.ObjectStoreServiceException;
16
import eu.dnetlib.data.objectstore.rmi.Protocols;
17
import eu.dnetlib.enabling.is.registry.rmi.ISRegistryService;
18
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
19
import eu.dnetlib.enabling.resultset.client.ResultSetClientFactory;
20
import eu.dnetlib.miscutils.datetime.DateUtils;
21

  
22
/**
23
 * The Class ModularObjectStoreFeeder, responsible to feed data into the object Store
24
 */
25
public class ModularObjectStoreFeeder {
26

  
27
	private static final Log log = LogFactory.getLog(ModularObjectStoreFeeder.class);
28

  
29
	/** The dao of the objectStore. */
30
	private ObjectStoreDao dao;
31

  
32
	/** The result set client factory. */
33
	private ResultSetClientFactory resultSetClientFactory;
34

  
35
	/** The service locator. */
36
	private UniqueServiceLocator serviceLocator;
37

  
38
	/**
39
	 * Gets the dao.
40
	 *
41
	 * @return the dao
42
	 */
43
	public ObjectStoreDao getDao() {
44
		return dao;
45
	}
46

  
47
	/**
48
	 * Sets the dao.
49
	 *
50
	 * @param dao
51
	 *            the new dao
52
	 */
53
	@Required
54
	public void setDao(final ObjectStoreDao dao) {
55
		this.dao = dao;
56
	}
57

  
58
	/**
59
	 * Gets the result set client factory.
60
	 *
61
	 * @return the result set client factory
62
	 */
63
	public ResultSetClientFactory getResultSetClientFactory() {
64
		return resultSetClientFactory;
65
	}
66

  
67
	/**
68
	 * Sets the result set client factory.
69
	 *
70
	 * @param resultSetClientFactory
71
	 *            the new result set client factory
72
	 */
73

  
74
	@Required
75
	public void setResultSetClientFactory(final ResultSetClientFactory resultSetClientFactory) {
76
		this.resultSetClientFactory = resultSetClientFactory;
77
	}
78

  
79
	/**
80
	 * Feed metadata object record.
81
	 *
82
	 * @param objectStoreID
83
	 *            the object store id
84
	 * @param rsEpr
85
	 *            the rs epr
86
	 * @param mime
87
	 *            the mime
88
	 * @throws ObjectStoreServiceException
89
	 */
90
	public void feedMetadataObjectRecord(final String objectStoreID, final String rsEpr, final String mime) throws ObjectStoreServiceException {
91

  
92
		final Iterable<String> records = resultSetClientFactory.getClient(rsEpr);
93
		Iterable<MetadataObjectRecord> toIngest = Iterables.transform(records, new Function<String, MetadataObjectRecord>() {
94

  
95
			@Override
96
			public MetadataObjectRecord apply(final String input) {
97
				MetadataObjectRecord record = MetadataObjectRecord.initFromJson(input);
98
				if (record != null) {
99
					record.setMime(mime);
100
				} else {
101
					log.error("An input record is null :" + input);
102
				}
103
				return record;
104
			}
105
		});
106
		ObjectStore store = dao.getObjectStore(objectStoreID);
107
		int size = store.feedMetadataRecord(toIngest, true);
108
		touch(objectStoreID, size);
109
	}
110

  
111
	/**
112
	 * Feed object in the object store starting from an EPR of objectMetadata
113
	 *
114
	 * @param obsId
115
	 *            the objectStore id
116
	 * @param rsEpr
117
	 *            the result set Endpoint-reference
118
	 * @param protocol
119
	 *            the protocol
120
	 * @param login
121
	 *            the login
122
	 * @param password
123
	 *            the password
124
	 * @param mime
125
	 *            the mime type
126
	 * @throws ObjectStoreServiceException
127
	 */
128
	public void feed(final String obsId, final String rsEpr, final Protocols protocol, final String login, final String password, final String mime)
129
			throws ObjectStoreServiceException {
130
		final Iterable<String> records = resultSetClientFactory.getClient(rsEpr);
131
		ObjectBroker objectBroker = new ObjectBroker(protocol, login, password, mime);
132
		Iterable<ObjectStoreRecord> toIngest = Iterables.transform(records, objectBroker);
133
		ObjectStore store = dao.getObjectStore(obsId);
134
		int size = store.feed(toIngest, true);
135
		touch(obsId, size);
136
	}
137

  
138
	/**
139
	 * Feed a single object in the object Stroe.
140
	 *
141
	 * @param objectStoreID
142
	 *            the object store id
143
	 * @param objectID
144
	 *            the object id
145
	 * @param URIObject
146
	 *            the URI of object
147
	 * @param protocol
148
	 *            the protocol
149
	 * @param login
150
	 *            the login
151
	 * @param password
152
	 *            the password
153
	 * @param mime
154
	 *            the mime type
155
	 * @throws ObjectStoreServiceException
156
	 */
157
	public void feedObject(final String objectStoreID,
158
			final String objectID,
159
			final String URIObject,
160
			final Protocols protocol,
161
			final String login,
162
			final String password,
163
			final String mime) throws ObjectStoreServiceException {
164
		ObjectStoreFile inputFile = new ObjectStoreFile();
165
		inputFile.setURI(URIObject);
166
		inputFile.setObjectID(objectID);
167
		ObjectBroker objectBroker = new ObjectBroker(protocol, login, password, mime);
168
		Iterable<ObjectStoreRecord> toIngest = Iterables.transform(Lists.newArrayList(inputFile.toJSON()), objectBroker);
169
		ObjectStore store = dao.getObjectStore(objectStoreID);
170
		int size = store.feed(toIngest, true);
171
		touch(objectStoreID, size);
172
	}
173

  
174
	/**
175
	 * Feed object record.
176
	 *
177
	 * @param objectStoreID
178
	 *            the object store id
179
	 * @param record
180
	 *            the record
181
	 * @return the string
182
	 * @throws ObjectStoreServiceException
183
	 */
184
	public String feedObjectRecord(final String objectStoreID, final ObjectStoreRecord record) throws ObjectStoreServiceException {
185
		ObjectStore store = dao.getObjectStore(objectStoreID);
186
		return store.feedObjectRecord(record);
187
	}
188

  
189
	/**
190
	 * Sets the last modified date in the profile.
191
	 *
192
	 * @param obsId
193
	 *            the obs id
194
	 * @param size
195
	 *            the size
196
	 */
197
	public void touch(final String obsId, final int size) {
198
		try {
199
			final String now = DateUtils.now_ISO8601();
200

  
201
			final String mdstoreXUpdate = "for $x in //RESOURCE_PROFILE[.//RESOURCE_IDENTIFIER/@value = '" + obsId + "']"
202
					+ "return update value $x//LAST_STORAGE_DATE with '" + now + "'";
203

  
204
			serviceLocator.getService(ISRegistryService.class, true).executeXUpdate(mdstoreXUpdate);
205

  
206
			touchSize(obsId, size);
207
		} catch (final Exception e) {
208
			throw new IllegalStateException(e);
209
		}
210
	}
211

  
212
	/**
213
	 * Touch size.
214
	 *
215
	 * @param obsId
216
	 *            the obs id
217
	 * @param size
218
	 *            the size
219
	 */
220
	public void touchSize(final String obsId, final int size) {
221
		try {
222
			final String mdstoreNumberXUpdate = "for $x in //RESOURCE_PROFILE[.//RESOURCE_IDENTIFIER/@value = '" + obsId + "']"
223
					+ "return update value $x//COUNT_STORE with '" + size + "'";
224

  
225
			serviceLocator.getService(ISRegistryService.class, true).executeXUpdate(mdstoreNumberXUpdate);
226
		} catch (final Exception e) {
227
			throw new IllegalStateException(e);
228
		}
229
	}
230

  
231
	public UniqueServiceLocator getServiceLocator() {
232
		return serviceLocator;
233
	}
234

  
235
	@Required
236
	public void setServiceLocator(final UniqueServiceLocator serviceLocator) {
237
		this.serviceLocator = serviceLocator;
238
	}
239

  
240
}
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/ObjectStoreProfileCreator.java
1
package eu.dnetlib.data.objectstore.modular;
2

  
3
import javax.xml.ws.Endpoint;
4

  
5
import org.antlr.stringtemplate.StringTemplate;
6
import org.springframework.beans.factory.annotation.Required;
7

  
8
import eu.dnetlib.enabling.is.registry.rmi.ISRegistryException;
9
import eu.dnetlib.enabling.is.registry.rmi.ISRegistryService;
10
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
11
import eu.dnetlib.soap.EndpointReferenceBuilder;
12

  
13
// TODO: Auto-generated Javadoc
14
/**
15
 * The Class ObjectStoreProfileCreator is responsible of creating profile of the ObjectStore
16
 */
17
public class ObjectStoreProfileCreator {
18

  
19
	/**
20
	 * service locator.
21
	 */
22
	private UniqueServiceLocator serviceLocator;
23

  
24
	/**
25
	 * mdstore ds template.
26
	 */
27
	private StringTemplate objectstoreDsTemplate;
28

  
29
	/**
30
	 * service endpoint.
31
	 */
32
	private Endpoint endpoint;
33

  
34
	/**
35
	 * endpoint builder.
36
	 */
37
	private EndpointReferenceBuilder<Endpoint> eprBuilder;
38

  
39
	/**
40
	 * Register profile.
41
	 * 
42
	 * @param interpretation
43
	 *            the interpretation
44
	 * @return the string
45
	 * @throws ISRegistryException
46
	 *             the IS registry exception
47
	 */
48
	public String registerProfile(final String interpretation)
49
			throws ISRegistryException {
50
		// XXX: mini hack
51
		StringTemplate template = new StringTemplate(
52
				objectstoreDsTemplate.getTemplate());
53
		template.setAttribute("serviceUri", eprBuilder.getAddress(endpoint));
54
		template.setAttribute("interpretation", interpretation);
55

  
56
		return serviceLocator.getService(ISRegistryService.class, true).registerProfile(template.toString());
57
	}
58

  
59
	/**
60
	 * Gets the endpoint.
61
	 * 
62
	 * @return the endpoint
63
	 */
64
	public Endpoint getEndpoint() {
65
		return endpoint;
66
	}
67

  
68
	/**
69
	 * Sets the endpoint.
70
	 * 
71
	 * @param endpoint
72
	 *            the new endpoint
73
	 */
74
	@Required
75
	public void setEndpoint(final Endpoint endpoint) {
76
		this.endpoint = endpoint;
77
	}
78

  
79
	/**
80
	 * Gets the epr builder.
81
	 * 
82
	 * @return the epr builder
83
	 */
84
	public EndpointReferenceBuilder<Endpoint> getEprBuilder() {
85
		return eprBuilder;
86
	}
87

  
88
	/**
89
	 * Sets the epr builder.
90
	 * 
91
	 * @param eprBuilder
92
	 *            the new epr builder
93
	 */
94
	@Required
95
	public void setEprBuilder(final EndpointReferenceBuilder<Endpoint> eprBuilder) {
96
		this.eprBuilder = eprBuilder;
97
	}
98

  
99
	/**
100
	 * Gets the objectstore ds template.
101
	 * 
102
	 * @return the objectstore ds template
103
	 */
104
	public StringTemplate getObjectstoreDsTemplate() {
105
		return objectstoreDsTemplate;
106
	}
107

  
108
	/**
109
	 * Sets the objectstore ds template.
110
	 * 
111
	 * @param objectstoreDsTemplate
112
	 *            the new objectstore ds template
113
	 */
114
	@Required
115
	public void setObjectstoreDsTemplate(final StringTemplate objectstoreDsTemplate) {
116
		this.objectstoreDsTemplate = objectstoreDsTemplate;
117
	}
118

  
119
	public UniqueServiceLocator getServiceLocator() {
120
		return serviceLocator;
121
	}
122

  
123
	@Required
124
	public void setServiceLocator(final UniqueServiceLocator serviceLocator) {
125
		this.serviceLocator = serviceLocator;
126
	}
127

  
128
}
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/ModularObjectStoreDeliver.java
1
package eu.dnetlib.data.objectstore.modular;
2

  
3
import java.io.InputStream;
4

  
5
import javax.annotation.Resource;
6
import javax.xml.ws.wsaddressing.W3CEndpointReference;
7

  
8
import org.springframework.beans.factory.annotation.Required;
9

  
10
import eu.dnetlib.data.objectstore.modular.connector.ObjectStoreDao;
11
import eu.dnetlib.data.objectstore.rmi.ObjectStoreFile;
12
import eu.dnetlib.data.objectstore.rmi.ObjectStoreServiceException;
13
import eu.dnetlib.enabling.resultset.ResultSetFactory;
14
import eu.dnetlib.enabling.resultset.client.ResultSetClientFactory;
15

  
16
/**
17
 * The Class ModularObjectStoreDeliver is responsible of delivering data from the object Store.
18
 */
19
public class ModularObjectStoreDeliver {
20

  
21
	/** The dao. */
22
	private ObjectStoreDao dao;
23

  
24
	/** The result set factory. */
25
	@Resource
26
	private ResultSetFactory resultSetFactory;
27

  
28
	/** The result set client factory. */
29
	private ResultSetClientFactory resultSetClientFactory;
30

  
31
	/**
32
	 * Gets the dao.
33
	 *
34
	 * @return the dao
35
	 */
36
	public ObjectStoreDao getDao() {
37
		return dao;
38
	}
39

  
40
	/**
41
	 * Sets the dao.
42
	 *
43
	 * @param dao
44
	 *            the new dao
45
	 */
46
	@Required
47
	public void setDao(final ObjectStoreDao dao) {
48
		this.dao = dao;
49
	}
50

  
51
	/**
52
	 * Deliver.
53
	 *
54
	 * @param objectStoreID
55
	 *            the object store id
56
	 * @param from
57
	 *            the from
58
	 * @param until
59
	 *            the until
60
	 * @return the w3 c endpoint reference
61
	 * @throws ObjectStoreServiceException
62
	 */
63
	public W3CEndpointReference deliver(final String objectStoreID, final Long from, final Long until) throws ObjectStoreServiceException {
64
		return resultSetFactory.createResultSet(dao.getObjectStore(objectStoreID).deliver(from, until));
65
	}
66

  
67
	/**
68
	 * Deliver ids.
69
	 *
70
	 * @param objectStoreID
71
	 *            the object store id
72
	 * @param eprId
73
	 *            the epr id
74
	 * @return the w3 c endpoint reference
75
	 * @throws ObjectStoreServiceException
76
	 */
77
	public W3CEndpointReference deliverIds(final String objectStoreID, final W3CEndpointReference eprId) throws ObjectStoreServiceException {
78

  
79
		Iterable<String> ids = resultSetClientFactory.getClient(eprId);
80
		return resultSetFactory.createResultSet(dao.getObjectStore(objectStoreID).deliverIds(ids));
81
	}
82

  
83
	/**
84
	 * Exist id starts with.
85
	 *
86
	 * @param obsId
87
	 *            the obs id
88
	 * @param startId
89
	 *            the start id
90
	 * @return true, if successful
91
	 * @throws ObjectStoreServiceException
92
	 */
93
	public boolean existIDStartsWith(final String obsId, final String startId) throws ObjectStoreServiceException {
94
		return dao.getObjectStore(obsId).existIDStartsWith(startId);
95
	}
96

  
97
	/**
98
	 * Deliver object.
99
	 *
100
	 * @param objectStoreID
101
	 *            the object store id
102
	 * @param objectId
103
	 *            the object id
104
	 * @return the object store file
105
	 * @throws ObjectStoreServiceException
106
	 */
107
	public ObjectStoreFile deliverObject(final String objectStoreID, final String objectId) throws ObjectStoreServiceException {
108
		return dao.getObjectStore(objectStoreID).deliverObject(objectId);
109
	}
110

  
111
	/**
112
	 * Deliver stream.
113
	 *
114
	 * @param objectStoreID
115
	 *            the object store id
116
	 * @param objectId
117
	 *            the object id
118
	 * @return the input stream
119
	 * @throws ObjectStoreServiceException
120
	 */
121
	public InputStream deliverStream(final String objectStoreID, final String objectId) throws ObjectStoreServiceException {
122
		return dao.getObjectStore(objectStoreID).deliverStream(objectId);
123
	}
124

  
125
	/**
126
	 * Gets the result set client factory.
127
	 *
128
	 * @return the result set client factory
129
	 */
130
	public ResultSetClientFactory getResultSetClientFactory() {
131
		return resultSetClientFactory;
132
	}
133

  
134
	/**
135
	 * Sets the result set client factory.
136
	 *
137
	 * @param resultSetClientFactory
138
	 *            the new result set client factory
139
	 */
140
	@Required
141
	public void setResultSetClientFactory(final ResultSetClientFactory resultSetClientFactory) {
142
		this.resultSetClientFactory = resultSetClientFactory;
143
	}
144

  
145
}
modules/dnet-modular-objectstore-service/tags/dnet-modular-objectstore-service-4.1.2/src/main/java/eu/dnetlib/data/objectstore/modular/ModularObjectStoreService.java
1
package eu.dnetlib.data.objectstore.modular;
2

  
3
import java.util.List;
4

  
5
import javax.xml.ws.wsaddressing.W3CEndpointReference;
6

  
7
import org.springframework.beans.factory.annotation.Required;
8

  
9
import com.google.gson.Gson;
10

  
11
import eu.dnetlib.data.objectstore.rmi.ObjectStoreFile;
12
import eu.dnetlib.data.objectstore.rmi.ObjectStoreService;
13
import eu.dnetlib.data.objectstore.rmi.ObjectStoreServiceException;
14
import eu.dnetlib.enabling.tools.AbstractBaseService;
15
import eu.dnetlib.enabling.tools.blackboard.NotificationHandler;
16

  
17
// TODO: Auto-generated Javadoc
18
/**
19
 * The Class ModularObjectStoreService is the implementation of the ObjectStoreService interface.
20
 */
21
public class ModularObjectStoreService extends AbstractBaseService implements ObjectStoreService {
22

  
23
	/** The feeder. */
24
	private ModularObjectStoreFeeder feeder;
25

  
26
	/** The object store deliver. */
27
	private ModularObjectStoreDeliver objectStoreDeliver;
28

  
29
	/** The notification handler. */
30
	private NotificationHandler notificationHandler;
31

  
32
	/*
33
	 * (non-Javadoc)
34
	 * 
35
	 * @see eu.dnetlib.data.objectstore.rmi.ObjectStoreService#deliverObjects(java.lang.String, java.lang.Double, java.lang.Double)
36
	 */
37
	/**
38
	 * Deliver objects.
39
	 *
40
	 * @param obsId
41
	 *            the obs id
42
	 * @param from
43
	 *            the from
44
	 * @param until
45
	 *            the until
46
	 * @return the w3 c endpoint reference
47
	 * @throws ObjectStoreServiceException
48
	 *             the object store service exception
49
	 */
50
	@Override
51
	public W3CEndpointReference deliverObjects(final String obsId, final Long from, final Long until) throws ObjectStoreServiceException {
52

  
53
		return objectStoreDeliver.deliver(obsId, from, until);
54
	}
55

  
56
	/*
57
	 * (non-Javadoc)
58
	 * 
59
	 * @see eu.dnetlib.data.objectstore.rmi.ObjectStoreService#deliverObjectsByIds(java.lang.String,
60
	 * javax.xml.ws.wsaddressing.W3CEndpointReference)
61
	 */
62
	/**
63
	 * Deliver objects by ids.
64
	 *
65
	 * @param obsId
66
	 *            the obs id
67
	 * @param eprId
68
	 *            the epr id
69
	 * @return the w3 c endpoint reference
70
	 * @throws ObjectStoreServiceException
71
	 *             the object store service exception
72
	 */
73
	@Override
74
	public W3CEndpointReference deliverObjectsByIds(final String obsId, final W3CEndpointReference eprId) throws ObjectStoreServiceException {
75
		return objectStoreDeliver.deliverIds(obsId, eprId);
76
	}
77

  
78
	/*
79
	 * (non-Javadoc)
80
	 * 
81
	 * @see eu.dnetlib.data.objectstore.rmi.ObjectStoreService#deliverRecord(java.lang.String, java.lang.String)
82
	 */
83
	/**
84
	 * Deliver record.
85
	 *
86
	 * @param obsId
87
	 *            the obs id
88
	 * @param objectId
89
	 *            the object id
90
	 * @return the string
91
	 * @throws ObjectStoreServiceException
92
	 *             the object store service exception
93
	 */
94
	@Override
95
	public String deliverRecord(final String obsId, final String objectId) throws ObjectStoreServiceException {
96
		return objectStoreDeliver.deliverObject(obsId, objectId).toJSON();
97
	}
98

  
99
	/*
100
	 * (non-Javadoc)
101
	 * 
102
	 * @see eu.dnetlib.data.objectstore.rmi.ObjectStoreService#getListOfObjectStores()
103
	 */
104
	/**
105
	 * Gets the list of object stores.
106
	 *
107
	 * @return the list of object stores
108
	 */
109
	@Override
110
	public List<String> getListOfObjectStores() {
111
		return objectStoreDeliver.getDao().listObjectStores();
112
	}
113

  
114
	/**
115
	 * Gets the feeder.
116
	 *
117
	 * @return the feeder
118
	 */
119
	public ModularObjectStoreFeeder getFeeder() {
120
		return feeder;
121
	}
122

  
123
	/**
124
	 * Sets the feeder.
125
	 *
126
	 * @param feeder
127
	 *            the new feeder
128
	 */
129
	@Required
130
	public void setFeeder(final ModularObjectStoreFeeder feeder) {
131
		this.feeder = feeder;
132
	}
133

  
134
	/**
135
	 * Gets the notification handler.
136
	 *
137
	 * @return the notification handler
138
	 */
139
	public NotificationHandler getNotificationHandler() {
140
		return notificationHandler;
141
	}
142

  
143
	/**
144
	 * Sets the notification handler.
145
	 *
146
	 * @param notificationHandler
147
	 *            the new notification handler
148
	 */
149
	@Required
150
	public void setNotificationHandler(final NotificationHandler notificationHandler) {
151
		this.notificationHandler = notificationHandler;
152
	}
153

  
154
	/**
155
	 * {@inheritDoc}
156
	 *
157
	 * @see eu.dnetlib.enabling.tools.AbstractBaseService#notify(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
158
	 */
159
	@Override
160
	public void notify(final String subscriptionId, final String topic, final String isId, final String message) {
161
		getNotificationHandler().notified(subscriptionId, topic, isId, message);
162
	}
163

  
164
	/**
165
	 * Gets the object store deliver.
166
	 *
167
	 * @return the object store deliver
168
	 */
169
	public ModularObjectStoreDeliver getObjectStoreDeliver() {
170
		return objectStoreDeliver;
171
	}
172

  
173
	/**
174
	 * Sets the object store deliver.
175
	 *
176
	 * @param objectStoreDeliver
177
	 *            the new object store deliver
178
	 */
179
	@Required
180
	public void setObjectStoreDeliver(final ModularObjectStoreDeliver objectStoreDeliver) {
181
		this.objectStoreDeliver = objectStoreDeliver;
182
	}
183

  
184
	/*
185
	 * (non-Javadoc)
186
	 * 
187
	 * @see eu.dnetlib.data.objectstore.rmi.ObjectStoreService#feedObject(java.lang.String, java.lang.String)
188
	 */
189
	/**
190
	 * Feed object.
191
	 *
192
	 * @param obsId
193
	 *            the obs id
194
	 * @param objectMetadata
195
	 *            the object metadata
196
	 * @throws ObjectStoreServiceException
197
	 *             the object store service exception
198
	 */
199
	@Override
200
	public void feedObject(final String obsId, final String objectMetadata) throws ObjectStoreServiceException {
201
		Gson g = new Gson();
202
		try {
203
			ObjectStoreFile file = g.fromJson(objectMetadata, ObjectStoreFile.class);
204
			feeder.feedObject(obsId, file.getObjectID(), file.getURI(), file.getAccessProtocol(), file.getUsernameAuth(), file.getPasswordAuth(),
205
					file.getMimeType());
206

  
207
		} catch (Exception e) {
208
			throw new ObjectStoreServiceException(e.getMessage());
209
		}
210

  
211
	}
212

  
213
	/**
214
	 * Exist id starts with.
215
	 *
216
	 * @param obsId
217
	 *            the obs id
218
	 * @param startId
219
	 *            the start id
220
	 * @return true, if successful
221
	 * @throws ObjectStoreServiceException
222
	 *             the object store service exception
223
	 */
224
	public boolean existIDStartsWith(final String obsId, final String startId) throws ObjectStoreServiceException {
225
		return objectStoreDeliver.existIDStartsWith(obsId, startId);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff