import eu.etaxonomy.cdm.api.service.IIdentificationKeyService;
import eu.etaxonomy.cdm.api.service.ILocationService;
import eu.etaxonomy.cdm.api.service.IMediaService;
+import eu.etaxonomy.cdm.api.service.IMetadataService;
import eu.etaxonomy.cdm.api.service.INameService;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
public final IMediaService getMediaService(){\r
return configuration.getMediaService();\r
}\r
+
+
+ @Override
+ public final IMetadataService getMetadataService(){
+ return configuration.getMetadataService();
+ }
\r
\r
@Override\r
import eu.etaxonomy.cdm.api.service.IIdentificationKeyService;\r
import eu.etaxonomy.cdm.api.service.ILocationService;\r
import eu.etaxonomy.cdm.api.service.IMediaService;\r
+import eu.etaxonomy.cdm.api.service.IMetadataService;\r
import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;\r
@Autowired\r
//@Qualifier("mediaService")\r
private IMediaService mediaService;\r
+ @Autowired\r
+ //@Qualifier("mediaService")\r
+ private IMetadataService metadataService;\r
@Autowired\r
//@Qualifier("commonService")\r
private ICommonService commonService;\r
return this.mediaService;\r
}\r
\r
+ /**\r
+ * {@inheritDoc}\r
+ */\r
+ @Override\r
+ public IMetadataService getMetadataService() {\r
+ return this.metadataService;\r
+ }\r
+\r
@Override\r
public ITermService getTermService(){\r
return this.termService;\r
SecurityContext context = SecurityContextHolder.getContext();\r
context.setAuthentication(authentication);\r
}\r
-\r
-\r
}\r
import eu.etaxonomy.cdm.api.service.IIdentificationKeyService;\r
import eu.etaxonomy.cdm.api.service.ILocationService;\r
import eu.etaxonomy.cdm.api.service.IMediaService;\r
+import eu.etaxonomy.cdm.api.service.IMetadataService;\r
import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;\r
*/\r
public IMediaService getMediaService();\r
\r
+ /**\r
+ * @return\r
+ */\r
+ public IMetadataService getMetadataService();\r
+\r
\r
/**\r
* @return\r
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.api.service;
+
+import java.util.Map;
+
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
+
+/**
+ * @author cmathew
+ * @date 20 Nov 2015
+ *
+ */
+public interface IMetadataService {
+
+
+ /**
+ * Returns the CDM model schema version number
+ *
+ * @return the CDM model schema version number
+ * @throws CdmSourceException , incase of an underlying SQL error
+ */
+ public String getDbSchemaVersion() throws CdmSourceException;
+
+ /**
+ * Returns a boolean flag to indicate whether the database is empty
+ *
+ * @return boolean flag to indicate whether the database is empty
+ * @throws CdmSourceException , incase of an underlying SQL error
+ */
+ public boolean isDbEmpty() throws CdmSourceException;
+
+ /**
+ * Returns metadata corresponding to the underlying data source
+ *
+ * @return
+ * @throws CdmSourceException
+ */
+ public Map<MetaDataPropertyName, String> getCdmMetadataMap() throws CdmSourceException;
+
+}
package eu.etaxonomy.cdm.api.service;\r
\r
import java.util.List;\r
-import java.util.Map;\r
import java.util.UUID;\r
\r
import org.hibernate.criterion.Criterion;\r
import org.springframework.security.provisioning.GroupManager;\r
import org.springframework.security.provisioning.UserDetailsManager;\r
\r
-import eu.etaxonomy.cdm.config.CdmSourceException;\r
import eu.etaxonomy.cdm.model.common.User;\r
-import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;\r
import eu.etaxonomy.cdm.persistence.dao.initializer.IBeanInitializer;\r
import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
*/\r
public List<User> listByUsername(String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
\r
- /**\r
- * @return\r
- * @throws CdmSourceException\r
- */\r
- public String getDbSchemaVersion() throws CdmSourceException;\r
-\r
- /**\r
- * @return\r
- * @throws CdmSourceException\r
- */\r
- public boolean isDbEmpty() throws CdmSourceException;\r
-\r
- /**\r
- * @return\r
- * @throws CdmSourceException\r
- */\r
- public Map<MetaDataPropertyName, String> getCdmMetadataMap() throws CdmSourceException;\r
\r
\r
}\r
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.api.service;
+
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
+
+/**
+ * Provides metadata information corresponding ti the underlying CDM Datasource.
+ *
+ * @author cmathew
+ * @date 20 Nov 2015
+ *
+ */
+@Service
+@Transactional(readOnly = true)
+public class MetadataServiceImpl implements IMetadataService {
+
+
+ private IDatabaseService databaseService;
+
+ @Autowired
+ public void setDatabaseService(IDatabaseService databaseService) {
+ this.databaseService = databaseService;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDbSchemaVersion() throws CdmSourceException {
+ return databaseService.getDbSchemaVersion();
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isDbEmpty() throws CdmSourceException {
+ return databaseService.isDbEmpty();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Map<MetaDataPropertyName, String> getCdmMetadataMap() throws CdmSourceException {
+ return databaseService.getCdmMetadataMap();
+ }
+
+}
import org.springframework.transaction.annotation.Transactional;\r
import org.springframework.util.Assert;\r
\r
-import eu.etaxonomy.cdm.config.CdmSourceException;\r
import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;\r
import eu.etaxonomy.cdm.model.common.Group;\r
import eu.etaxonomy.cdm.model.common.User;\r
-import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;\r
import eu.etaxonomy.cdm.persistence.dao.common.IGrantedAuthorityDao;\r
import eu.etaxonomy.cdm.persistence.dao.common.IGroupDao;\r
import eu.etaxonomy.cdm.persistence.dao.common.IUserDao;\r
\r
private AuthenticationManager authenticationManager;\r
\r
- private IDatabaseService databaseService;\r
\r
private UserCache userCache = new NullUserCache();\r
\r
this.grantedAuthorityDao = grantedAuthorityDao;\r
}\r
\r
- @Autowired\r
- public void setDatabaseService(IDatabaseService databaseService) {\r
- this.databaseService = databaseService;\r
- }\r
\r
/**\r
* Changes the own password of in the database of the user which is\r
return super.saveOrUpdate(transientInstances);\r
}\r
\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.api.service.IUserService#getDbSchemaVersion()\r
- */\r
- @Override\r
- public String getDbSchemaVersion() throws CdmSourceException {\r
- return databaseService.getDbSchemaVersion();\r
-\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.api.service.IUserService#isDbEmpty()\r
- */\r
- @Override\r
- public boolean isDbEmpty() throws CdmSourceException {\r
- return databaseService.isDbEmpty();\r
- }\r
-\r
- @Override\r
- public Map<MetaDataPropertyName, String> getCdmMetadataMap() throws CdmSourceException {\r
- return databaseService.getCdmMetadataMap();\r
- }\r
-\r
}\r
<value>eu.etaxonomy.cdm.api.service.IMediaService</value>\r
</property>\r
</bean>\r
+ \r
+ <bean id="httpMetadataService"\r
+ class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">\r
+ <property name="service">\r
+ <ref bean="metadataServiceImpl" />\r
+ </property>\r
+ <property name="serviceInterface">\r
+ <value>eu.etaxonomy.cdm.api.service.IMetadataService</value>\r
+ </property>\r
+ </bean>\r
\r
<bean id="httpNameService"\r
class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">\r
<prop key="/remoting/entityvalidation.service">httpEntityValidationService</prop>
<prop key="/remoting/entityconstraintviolation.service">httpEntityConstraintViolationService</prop>
<prop key="/remoting-public/user.service">httpUserService</prop>
+ <prop key="/remoting-public/metadata.service">httpMetadataService</prop>
<prop key="/remoting/vocabulary.service">httpVocabularyService</prop>
<prop key="/remoting/authenticationManager.service">httpAuthenticationManager</prop>
<prop key="/remoting/io.service">httpIOService</prop>