From d83612439f4e4468cfcb3e22fc1ac0733d976170 Mon Sep 17 00:00:00 2001 From: "panagiotis.kanakakis" Date: Fri, 23 Nov 2018 07:49:00 +0000 Subject: [PATCH] 1. Bug fix on piwik 2. Add new emails 3. Bug fix on repository api --- ...ndLinkURIAuthenticationSuccessHandler.java | 4 +- .../service/controllers/EmailUtils.java | 6 ++ .../service/controllers/EmailUtilsImpl.java | 36 ++++++++++- .../service/controllers/PiWikApiImpl.java | 8 +-- .../service/controllers/RepositoryApi.java | 3 +- .../controllers/RepositoryApiImpl.java | 43 ++++++++----- .../service/controllers/StatsApiImpl.java | 14 ++--- .../repo/manager/service/utils/Converter.java | 20 +++--- src/main/resources/application.properties | 14 +++-- src/main/webapp/WEB-INF/aai-security.xml | 1 + src/main/webapp/WEB-INF/log4j.properties | 61 ++++++++++--------- src/test/java/unitest/ValidatorTest.java | 32 ++++++++++ 12 files changed, 167 insertions(+), 75 deletions(-) create mode 100644 src/test/java/unitest/ValidatorTest.java diff --git a/src/main/java/eu/dnetlib/repo/manager/service/config/FrontEndLinkURIAuthenticationSuccessHandler.java b/src/main/java/eu/dnetlib/repo/manager/service/config/FrontEndLinkURIAuthenticationSuccessHandler.java index 49be6eb..d84fdf1 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/config/FrontEndLinkURIAuthenticationSuccessHandler.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/config/FrontEndLinkURIAuthenticationSuccessHandler.java @@ -41,7 +41,9 @@ public class FrontEndLinkURIAuthenticationSuccessHandler implements Authenticati else userInfo.addProperty("sub", URLEncoder.encode(authOIDC.getUserInfo().getSub(), "UTF-8")); - userInfo.addProperty("fullname", URLEncoder.encode(authOIDC.getUserInfo().getName(), "UTF-8")); + + if(authOIDC.getUserInfo().getName() != null) + userInfo.addProperty("fullname", URLEncoder.encode(authOIDC.getUserInfo().getName(), "UTF-8")); if (authOIDC.getUserInfo().getGivenName() == null) userInfo.addProperty("firstname", ""); diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtils.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtils.java index bb01264..67744b2 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtils.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtils.java @@ -1,6 +1,8 @@ package eu.dnetlib.repo.manager.service.controllers; import eu.dnetlib.domain.data.PiwikInfo; +import eu.dnetlib.domain.data.Repository; +import org.springframework.security.core.Authentication; public interface EmailUtils { @@ -14,4 +16,8 @@ public interface EmailUtils { void sendAdministratorMetricsEnabled(PiwikInfo piwikInfo) throws Exception; void sendUserMetricsEnabled(PiwikInfo piwikInfo) throws Exception; + + void sendUserRegistrationEmail(Repository repository, Authentication authentication) throws Exception; + + void sendUserUpdateRepositoryEmail(Repository repository, Authentication authentication) throws Exception; } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtilsImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtilsImpl.java index 0ddc7e3..c8fc9a4 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtilsImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtilsImpl.java @@ -1,11 +1,13 @@ package eu.dnetlib.repo.manager.service.controllers; import eu.dnetlib.domain.data.PiwikInfo; +import eu.dnetlib.domain.data.Repository; import eu.dnetlib.repo.manager.service.config.CascadingPropertyLoader; import eu.dnetlib.utils.MailLibrary; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.core.Authentication; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @@ -43,7 +45,7 @@ public class EmailUtilsImpl implements EmailUtils { @PostConstruct public void init(){ - System.out.println("base url -> " + this.baseUrl); + System.out.println("url -> " + this.baseUrl); } @@ -186,6 +188,38 @@ public class EmailUtilsImpl implements EmailUtils { } } + @Override + public void sendUserRegistrationEmail(Repository repository, Authentication authentication) throws Exception{ + /*try { + String subject = "OpenAIRE content provider registration request started for " + + repository.getDatasourceType() + "[" + repository.getEnglishName() + "]"; + + String message = "Dear " + authentication.getName() + ",\n" + + "\n" + + "We received a request to register the \"" + repository.getDatasourceType() + "[" + repository.getEnglishName() + "]" + + " to the OpenAIRE compliant list of content providers. " + + "\n A validation process against the OpenAIRE guidelines compatibility " + + " has been started. You will be informed in another message once the process is finished." + + "\n" + + "Please do not reply to this message\n" + + "This message has been generated automatically.\n" + + "If you have any questions, write to 'helpdesk@openaire.eu'. \n" + + "Regards,\n" + + "the OpenAIRE technical team\n"; + + this.sendMail(repository.getRegisteredBy(), subject, message, false, null); + + } catch (Exception e) { + LOGGER.error("Error while sending registration notification email to user: " + repository.getRegisteredBy(), e); + throw e; + }*/ + } + + @Override + public void sendUserUpdateRepositoryEmail(Repository repository, Authentication authentication) throws Exception { + + } + private void sendMail(String email, String subject, String message, boolean sendToSpecial, List repoAdminMails) throws Exception { ArrayList to = new ArrayList(); to.add(email); diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/PiWikApiImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/PiWikApiImpl.java index 6941f10..99657a6 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/PiWikApiImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/PiWikApiImpl.java @@ -73,7 +73,7 @@ public class PiWikApiImpl implements PiWikApi{ } @Override - @PreAuthorize("hasRole('ROLE_ADMIN') or (hasRole('ROLE_USER') and #piwikInfo.requestorEmail == authentication.userInfo.email)") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PORTAL_ADMIN') or (hasRole('ROLE_USER') and #piwikInfo.requestorEmail == authentication.userInfo.email)") public PiwikInfo savePiwikInfo(@RequestBody PiwikInfo piwikInfo) { JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate.update(INSERT_PIWIK_INFO, new Object[]{piwikInfo.getRepositoryId(), piwikInfo.getSiteId(), piwikInfo.getRequestorName(), @@ -94,7 +94,7 @@ public class PiWikApiImpl implements PiWikApi{ } @Override - @PreAuthorize("hasRole('ROLE_ADMIN')") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PORTAL_ADMIN')") public ResponseEntity approvePiwikSite(@PathVariable("repositoryId") String repositoryId) { new JdbcTemplate(dataSource).update(APPROVE_PIWIK_SITE, new Object[] {repositoryId}, new int[] {Types.VARCHAR}); return new ResponseEntity<>("OK",HttpStatus.OK); @@ -108,7 +108,7 @@ public class PiWikApiImpl implements PiWikApi{ } @Override - @PreAuthorize("hasRole('ROLE_ADMIN')") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PORTAL_ADMIN')") public ResponseEntity markPiwikSiteAsValidated(@PathVariable("repositoryId") String repositoryId) throws RepositoryServiceException { try { approvePiwikSite(repositoryId); @@ -129,7 +129,7 @@ public class PiWikApiImpl implements PiWikApi{ } @Override - @PreAuthorize("hasRole('ROLE_ADMIN') or (hasRole('ROLE_USER') and #piwikInfo.requestorEmail == authentication.userInfo.email)") + @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_PORTAL_ADMIN') or (hasRole('ROLE_USER') and #piwikInfo.requestorEmail == authentication.userInfo.email)") public PiwikInfo enableMetricsForRepository(@RequestParam("officialName") String officialName, @RequestParam("repoWebsite") String repoWebsite, @RequestBody PiwikInfo piwikInfo) throws RepositoryServiceException { diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java index 77860ff..6b652e4 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApi.java @@ -8,6 +8,7 @@ import eu.dnetlib.repo.manager.shared.*; import io.swagger.annotations.Api; import org.json.JSONException; import org.springframework.http.MediaType; +import org.springframework.security.core.Authentication; import org.springframework.web.bind.annotation.*; import java.io.IOException; @@ -100,7 +101,7 @@ public interface RepositoryApi { @RequestMapping(value = "/updateRepository", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - Repository updateRepository(Repository repository) throws JSONException; + Repository updateRepository(Repository repository, Authentication authentication) throws Exception; @RequestMapping(value = "/getUrlsOfUserRepos/{user_email}/{page}/{size}/",method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java index 792d9d7..b200b01 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/RepositoryApiImpl.java @@ -20,12 +20,11 @@ import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.ParameterizedTypeReference; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; @@ -36,6 +35,7 @@ import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; import javax.annotation.PostConstruct; +import javax.xml.ws.Response; import java.io.IOException; import java.sql.Timestamp; import java.util.*; @@ -115,6 +115,7 @@ public class RepositoryApiImpl implements RepositoryApi { @PostConstruct private void init() { LOGGER.debug("Initialization method of repository api!"); + LOGGER.debug("Updated version!"); restTemplate = new RestTemplate(); restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); @@ -378,29 +379,37 @@ public class RepositoryApiImpl implements RepositoryApi { repository = this.setRepositoryFeatures(datatype,repository); LOGGER.debug("storing " + datatype + " repository with id: " + repository.getId()); - this.storeRepository(repository); + this.storeRepository(repository, SecurityContextHolder.getContext().getAuthentication()); return repository; } @Override - @PreAuthorize("hasRole('ROLE_USER') and #repository.registeredBy == authentication.userInfo.email") - public Repository updateRepository(@RequestBody Repository repository) throws JSONException { + //@PreAuthorize("hasRole('ROLE_USER') and #repository.registeredBy == authentication.userInfo.email") + public Repository updateRepository(Repository repository,Authentication authentication) throws Exception { UriComponents uriComponents = UriComponentsBuilder .fromHttpUrl(baseAddress + "/ds/update/") .build() .encode(); try { - String json_repository = Converter.repositoryObjectToJson(repository); - HttpEntity httpEntity = new HttpEntity (json_repository,httpHeaders); - restTemplate.postForObject(uriComponents.toUri(),httpEntity,String.class); + String json_repository = Converter.repositoryObectToJson(repository); + + LOGGER.debug("JSON to update -> " + json_repository); + + HttpEntity httpEntity = new HttpEntity(json_repository, httpHeaders); + ResponseEntity responseEntity = restTemplate.postForObject(uriComponents.toUri(), httpEntity, ResponseEntity.class); + + if (responseEntity.getStatusCode().equals(HttpStatus.OK)) + emailUtils.sendUserUpdateRepositoryEmail(repository, authentication); + else + LOGGER.debug(responseEntity.getBody().toString()); + return repository; - }catch (Exception e){ + } catch (Exception e) { LOGGER.debug("Exception on updateRepository" , e); emailUtils.reportException(e); throw e; } - } private Repository setRepositoryFeatures(String datatype, Repository repository) { @@ -446,7 +455,7 @@ public class RepositoryApiImpl implements RepositoryApi { } - private void storeRepository(Repository repository) throws JSONException { + private void storeRepository(Repository repository, Authentication authentication) throws Exception { Date utilDate = new Date(); Timestamp date = new Timestamp(utilDate.getTime()); @@ -469,7 +478,13 @@ public class RepositoryApiImpl implements RepositoryApi { } HttpEntity httpEntity = new HttpEntity (json_repository,httpHeaders); - restTemplate.postForObject(uriComponents.toUri(),httpEntity,String.class); + ResponseEntity responseEntity = restTemplate.postForObject(uriComponents.toUri(), httpEntity, ResponseEntity.class); + + if(responseEntity.getStatusCode().equals(HttpStatus.OK)) + emailUtils.sendUserRegistrationEmail(repository,authentication); + else { + LOGGER.debug(responseEntity.getBody().toString()); + } } @Override diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/StatsApiImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/StatsApiImpl.java index 1b57b25..5f88f36 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/StatsApiImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/StatsApiImpl.java @@ -32,6 +32,9 @@ public class StatsApiImpl implements StatsApi { @Value("${search.api.usagestats}") private String usagestatsBaseAddress; + @Value("${search.api.usageEvents}") + private String usagestatsEvents; + @PostConstruct private void init() { LOGGER.debug("Initialization method of statistics api!"); @@ -138,17 +141,12 @@ public class StatsApiImpl implements StatsApi { private Integer getUsageStatsTotal() throws JSONException { UriComponents uriComponents = UriComponentsBuilder - .fromHttpUrl(usagestatsBaseAddress + "/totals") + .fromHttpUrl(usagestatsEvents) .build().encode(); String rs = restTemplate.getForObject(uriComponents.toUri(), String.class); - JSONObject resultSet = new JSONObject(rs); - - String downloads = resultSet.getString("downloads"); - String views = resultSet.getString("views"); - - - return Integer.valueOf(downloads) + Integer.valueOf(views); + JSONObject totals = resultSet.getJSONObject("totals"); + return Integer.valueOf(totals.getString("events")); } } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/utils/Converter.java b/src/main/java/eu/dnetlib/repo/manager/service/utils/Converter.java index afd8168..c78757c 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/utils/Converter.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/utils/Converter.java @@ -236,8 +236,8 @@ public class Converter { jsonObject.put("longitude",repository.getLongitude().toString()); jsonObject.put("latitude",repository.getLatitude().toString()); jsonObject.put("timezone",repository.getTimezone()); - jsonObject.put("namespaceprefix",repository.getNamespacePrefix()); - jsonObject.put("languages",repository.getOdLanguages()); +// jsonObject.put("namespaceprefix",repository.getNamespacePrefix()); +// jsonObject.put("languages",repository.getOdLanguages()); jsonObject.put("dateofvalidation",convertDateToString(repository.getDateOfValidation())); /* @@ -247,16 +247,16 @@ public class Converter { jsonObject.put("typology",repository.getDatasourceClass()); jsonObject.put("platform",repository.getTypology()); - jsonObject.put("dateofcollection",convertDateToString(repository.getDateOfCollection())); - jsonObject.put("activationId",repository.getActivationId()); +// jsonObject.put("dateofcollection",convertDateToString(repository.getDateOfCollection())); +// jsonObject.put("activationId",repository.getActivationId()); jsonObject.put("description",repository.getDescription()); - jsonObject.put("eissn",repository.getEissn()); - jsonObject.put("issn",repository.getIssn()); - jsonObject.put("lissn",repository.getLissn()); +// jsonObject.put("eissn",repository.getEissn()); +// jsonObject.put("issn",repository.getIssn()); +// jsonObject.put("lissn",repository.getLissn()); jsonObject.put("registeredby",repository.getRegisteredBy()); - jsonObject.put("aggregator",repository.getAggregator()); - jsonObject.put("collectedfrom",repository.getCollectedFrom()); +// jsonObject.put("aggregator",repository.getAggregator()); +// jsonObject.put("collectedfrom",repository.getCollectedFrom()); jsonObject.put("managed",repository.isRegistered()); @@ -269,7 +269,7 @@ public class Converter { JSONArray organizations = new JSONArray(); organizations.put(organization); - jsonObject.put("organizations",organizations); +// jsonObject.put("organizations",organizations); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 9760d17..99ef0fd 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,7 @@ infrastructure.name=integration ## Container properties -container.hostname=aleka.athenarc.gr +container.hostname=localhost container.context=uoa-repository-manager-service container.port = 8480 @@ -69,14 +69,15 @@ oidc.secret = AMQtGlbTXNjwjhF0st28LmM6V0XypMdaVS7tJmGuYFlmH36iIv4t7tVqYuLYrNPkhn #oidc.dev.home = http://koulis.athenarc.gr:4200/uoa-repository-manager-service/openid_connect_login #webapp.dev.front = http://koulis.athenarc.gr:4200/landing -oidc.dev.home = http://aleka.athenarc.gr:4200/uoa-repository-manager-service/openid_connect_login -webapp.dev.front = http://aleka.athenarc.gr:4200/landing +oidc.dev.home = http://localhost:4200/uoa-repository-manager-service/openid_connect_login +webapp.dev.front = http://localhost:4200/landing ##REDIS-AAI -redis.host = audrey.athenarc.gr +redis.host = aleka.athenarc.gr redis.port = 6379 -redis.password = E#Szvnidd +redis.password = +#redis.password = E#Szvnidd aai.mode = develop @@ -91,4 +92,5 @@ services.repomanager.usagestats.sushiliteEndpoint = http://beta.services.openair ##SEARCH API search.api.baseAddress=https://beta.services.openaire.eu/search/v2/api -search.api.usagestats=https://services.openaire.eu/usagestats \ No newline at end of file +search.api.usagestats=https://services.openaire.eu/usagestats +search.api.usageEvents=http://beta.lbs.openaire.eu:8080/ajax/summary diff --git a/src/main/webapp/WEB-INF/aai-security.xml b/src/main/webapp/WEB-INF/aai-security.xml index d6e84bd..272fb2d 100644 --- a/src/main/webapp/WEB-INF/aai-security.xml +++ b/src/main/webapp/WEB-INF/aai-security.xml @@ -50,6 +50,7 @@ + diff --git a/src/main/webapp/WEB-INF/log4j.properties b/src/main/webapp/WEB-INF/log4j.properties index 4a174dd..d68406a 100644 --- a/src/main/webapp/WEB-INF/log4j.properties +++ b/src/main/webapp/WEB-INF/log4j.properties @@ -1,32 +1,7 @@ -#log4j.rootLogger = WARN, R -# -#log4j.logger.eu.dnetlib = DEBUG -#log4j.logger.eu.dnetlib.clients.data.datasourcemanager.ws.Converter = FATAL -#log4j.logger.org.springframework = DEBUG, S -#log4j.additivity.org.springframework = false -# -#log4j.logger.com.opensymphony.xwork2.ognl.OgnlValueStack = FATAL -#log4j.logger.com.opensymphony.xwork2.ObjectFactory = FATAL -# -#log4j.logger.eu.dnetlib.repo.manager=DEBUG -# -#log4j.appender.R=org.apache.log4j.RollingFileAppender -#log4j.appender.R.File=/var/log/dnet/repository-service/repository-service.log -#log4j.appender.R.MaxFileSize=10MB -#log4j.appender.R.MaxBackupIndex=10 -#log4j.appender.R.layout=org.apache.log4j.PatternLayout -#log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n -# -#log4j.appender.S=org.apache.log4j.RollingFileAppender -#log4j.appender.S.File=/var/log/dnet/repository-service/repository-service-spring.log -#log4j.appender.S.MaxFileSize=10MB -#log4j.appender.S.MaxBackupIndex=10 -#log4j.appender.S.layout=org.apache.log4j.PatternLayout -#log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n - - log4j.rootLogger = WARN, R +log4j.logger.eu.dnetlib = DEBUG +log4j.logger.eu.dnetlib.clients.data.datasourcemanager.ws.Converter = FATAL log4j.logger.org.springframework = DEBUG, S log4j.additivity.org.springframework = false @@ -35,10 +10,36 @@ log4j.logger.com.opensymphony.xwork2.ObjectFactory = FATAL log4j.logger.eu.dnetlib.repo.manager=DEBUG -log4j.appender.R=org.apache.log4j.ConsoleAppender +log4j.appender.R=org.apache.log4j.RollingFileAppender +#log4j.appender.R.File=/var/log/dnet/repo-manager/repo-manager-gui.log +log4j.appender.R.File=/var/log/tomcat_dnet/8780/repository-service.log +log4j.appender.R.MaxFileSize=10MB +log4j.appender.R.MaxBackupIndex=10 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n -log4j.appender.S=org.apache.log4j.ConsoleAppender +log4j.appender.S=org.apache.log4j.RollingFileAppender +#log4j.appender.S.File=/var/log/dnet/repo-manager/repo-manager-gui-spring.log +log4j.appender.S.File=/var/log/tomcat_dnet/8780/repository-service-spring.log +log4j.appender.S.MaxFileSize=10MB +log4j.appender.S.MaxBackupIndex=10 log4j.appender.S.layout=org.apache.log4j.PatternLayout -log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n \ No newline at end of file +log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n + +#log4j.rootLogger = WARN, R +# +#log4j.logger.org.springframework = DEBUG, S +#log4j.additivity.org.springframework = false +# +#log4j.logger.com.opensymphony.xwork2.ognl.OgnlValueStack = FATAL +#log4j.logger.com.opensymphony.xwork2.ObjectFactory = FATAL +# +#log4j.logger.eu.dnetlib.repo.manager=DEBUG +# +#log4j.appender.R=org.apache.log4j.ConsoleAppender +#log4j.appender.R.layout=org.apache.log4j.PatternLayout +#log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n +# +#log4j.appender.S=org.apache.log4j.ConsoleAppender +#log4j.appender.S.layout=org.apache.log4j.PatternLayout +#log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n \ No newline at end of file diff --git a/src/test/java/unitest/ValidatorTest.java b/src/test/java/unitest/ValidatorTest.java new file mode 100644 index 0000000..5f23fcc --- /dev/null +++ b/src/test/java/unitest/ValidatorTest.java @@ -0,0 +1,32 @@ +package unitest; + +import eu.dnetlib.repo.manager.service.config.RepoManagerContextLoaderListener; +import eu.dnetlib.repo.manager.service.utils.OaiTools; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = RepoManagerContextLoaderListener.class) +//@WebAppConfiguration +public class ValidatorTest { + + + @Test + public void identiFy(){ + + String url = "https://repozitorij.srce.unizg.hr/oai"; + + + System.out.println("Identify repository with url : " + url); + try { + System.out.println(OaiTools.identifyRepository(url)); + } catch (Exception e) { + System.out.println(e); + } + } + + +}