Author: jbernhardt
Date: Thu Jan 24 16:19:11 2013
New Revision: 1438058

URL: http://svn.apache.org/viewvc?rev=1438058&view=rev
Log:
[SYNCOPE-231]
* Adding LoggerService
* Adding Response Header resource ID for CXF services

Modified:
    
syncope/trunk/client/src/main/java/org/apache/syncope/client/services/proxy/LoggerServiceProxy.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java
    
syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/LoggerRestClient.java
    
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConfigurationServiceImpl.java
    
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
    
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
    
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java
    
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java

Modified: 
syncope/trunk/client/src/main/java/org/apache/syncope/client/services/proxy/LoggerServiceProxy.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/services/proxy/LoggerServiceProxy.java?rev=1438058&r1=1438057&r2=1438058&view=diff
==============================================================================
--- 
syncope/trunk/client/src/main/java/org/apache/syncope/client/services/proxy/LoggerServiceProxy.java
 (original)
+++ 
syncope/trunk/client/src/main/java/org/apache/syncope/client/services/proxy/LoggerServiceProxy.java
 Thu Jan 24 16:19:11 2013
@@ -18,12 +18,17 @@
  */
 package org.apache.syncope.client.services.proxy;
 
-import ch.qos.logback.classic.Level;
 import java.util.Arrays;
 import java.util.List;
+
+import javax.ws.rs.BadRequestException;
+import javax.ws.rs.NotFoundException;
+
 import org.apache.syncope.common.services.LoggerService;
 import org.apache.syncope.common.to.LoggerTO;
 import org.apache.syncope.common.types.AuditLoggerName;
+import org.apache.syncope.common.types.LoggerType;
+import org.apache.syncope.common.util.CollectionWrapper;
 import org.springframework.web.client.RestTemplate;
 
 public class LoggerServiceProxy extends SpringServiceProxy implements 
LoggerService {
@@ -33,33 +38,70 @@ public class LoggerServiceProxy extends 
     }
 
     @Override
-    public List<LoggerTO> listLogs() {
-        return Arrays.asList(getRestTemplate().getForObject(baseUrl + 
"logger/log/list", LoggerTO[].class));
-    }
-
-    @Override
-    public List<AuditLoggerName> listAudits() {
-        return Arrays.asList(getRestTemplate().getForObject(baseUrl + 
"logger/audit/list", AuditLoggerName[].class));
-    }
-
-    @Override
-    public LoggerTO update(final String name, final Level level) {
-        return getRestTemplate().postForObject(baseUrl + 
"logger/log/{name}/{level}", null, LoggerTO.class, name,
-                level);
-    }
-
-    @Override
-    public LoggerTO delete(final String name) {
-        return getRestTemplate().getForObject(baseUrl + 
"logger/log/delete/{name}", LoggerTO.class, name);
-    }
+    public List<LoggerTO> list(final LoggerType type) {
+        switch (type) {
+            case NORMAL:
+                return Arrays.asList(getRestTemplate().getForObject(baseUrl + 
"logger/log/list", LoggerTO[].class));
+
+            case AUDIT:
+                List<AuditLoggerName> auditNames = 
Arrays.asList(getRestTemplate().getForObject(
+                        baseUrl + "logger/audit/list", 
AuditLoggerName[].class));
+                return CollectionWrapper.unwrapLogger(auditNames);
+
+            default:
+                throw new BadRequestException();
+        }
+    }
+
+    @Override
+    public LoggerTO read(final LoggerType type, final String name) {
+        List<LoggerTO> logger = list(type);
+        for (LoggerTO l : logger) {
+            if (l.getName().equals(name)) {
+                return l;
+            }
+        }
+        throw new NotFoundException();
+    }
+
+    @Override
+    public void update(final LoggerType type, final String name, final 
LoggerTO logger) {
+        switch (type) {
+            case NORMAL:
+                getRestTemplate().postForObject(baseUrl + 
"logger/log/{name}/{level}", null, LoggerTO.class, name,
+                        logger.getLevel());
+                break;
+
+            case AUDIT:
+                try {
+                    getRestTemplate().put(baseUrl + "logger/audit/enable", 
AuditLoggerName.fromLoggerName(name));
+                } catch (Exception e) {
+                    throw new BadRequestException(e);
+                }
+                break;
+
+            default:
+                throw new BadRequestException();
+        }
+    }
+
+    @Override
+    public void delete(final LoggerType type, final String name) {
+        switch (type) {
+            case NORMAL:
+                getRestTemplate().getForObject(baseUrl + 
"logger/log/delete/{name}", LoggerTO.class, name);
+                break;
+            case AUDIT:
+                try {
+                    getRestTemplate().put(baseUrl + "logger/audit/disable", 
AuditLoggerName.fromLoggerName(name));
+                } catch (Exception e) {
+                    throw new BadRequestException(e);
+                }
+                break;
+
+            default:
+                throw new BadRequestException();
+        }
 
-    @Override
-    public void enableAudit(final AuditLoggerName auditLoggerName) {
-        getRestTemplate().put(baseUrl + "logger/audit/enable", 
auditLoggerName);
-    }
-
-    @Override
-    public void disableAudit(final AuditLoggerName auditLoggerName) {
-        getRestTemplate().put(baseUrl + "logger/audit/disable", 
auditLoggerName);
     }
 }

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java?rev=1438058&r1=1438057&r2=1438058&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/services/LoggerService.java
 Thu Jan 24 16:19:11 2013
@@ -27,32 +27,24 @@ import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 
 import org.apache.syncope.common.to.LoggerTO;
-import org.apache.syncope.common.types.AuditLoggerName;
+import org.apache.syncope.common.types.LoggerType;
 
-import ch.qos.logback.classic.Level;
-
-@Path("logger")
+@Path("logger/{type}")
 public interface LoggerService {
 
-    //TODO use list(LoggerType) signature for both normal logger and audit 
logger instead of two different methods
     @GET
-    List<LoggerTO> listLogs();
+    @Path("{name}")
+    LoggerTO read(@PathParam("type") LoggerType type, @PathParam("name") final 
String name);
 
     @GET
-    @Path("audit")
-    List<AuditLoggerName> listAudits();
+    List<LoggerTO> list(@PathParam("type") LoggerType type);
 
     @PUT
     @Path("{name}/level")
-    LoggerTO update(@PathParam("name") String name, Level level);
+    void update(@PathParam("type") LoggerType type, @PathParam("name") String 
name, LoggerTO logger);
 
     @DELETE
     @Path("{name}")
-    LoggerTO delete(@PathParam("name") String name);
-
-    // TODO refactor this method to use update()
-    void enableAudit(AuditLoggerName auditLoggerName);
+    void delete(@PathParam("type") LoggerType type, @PathParam("name") String 
name);
 
-    // TODO refactor this method to use delete()
-    void disableAudit(AuditLoggerName auditLoggerName);
 }

Modified: 
syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/LoggerRestClient.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/LoggerRestClient.java?rev=1438058&r1=1438057&r2=1438058&view=diff
==============================================================================
--- 
syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/LoggerRestClient.java
 (original)
+++ 
syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/LoggerRestClient.java
 Thu Jan 24 16:19:11 2013
@@ -29,7 +29,9 @@ import org.apache.syncope.common.to.Logg
 import org.apache.syncope.common.types.AuditElements;
 import org.apache.syncope.common.types.AuditElements.Category;
 import org.apache.syncope.common.types.AuditLoggerName;
+import org.apache.syncope.common.types.LoggerType;
 import org.apache.syncope.common.types.SyncopeLoggerLevel;
+import org.apache.syncope.common.util.CollectionWrapper;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -38,11 +40,13 @@ public class LoggerRestClient extends Ba
     private static final long serialVersionUID = 4579786978763032240L;
 
     public List<LoggerTO> listLogs() {
-        return getService(LoggerService.class).listLogs();
+        return getService(LoggerService.class).list(LoggerType.NORMAL);
     }
 
     public List<AuditLoggerName> listAudits() {
-        return getService(LoggerService.class).listAudits();
+        List<LoggerTO> logger =  
getService(LoggerService.class).list(LoggerType.AUDIT);
+
+        return CollectionWrapper.wrapLogger(logger);
     }
 
     public Map<AuditElements.Category, Set<AuditLoggerName>> 
listAuditsByCategory() {
@@ -59,18 +63,25 @@ public class LoggerRestClient extends Ba
     }
 
     public void setLogLevel(final String name, final SyncopeLoggerLevel level) 
{
-        getService(LoggerService.class).update(name, level.getLevel());
+        LoggerTO loggerTO = new LoggerTO();
+        loggerTO.setName(name);
+        loggerTO.setLevel(level);
+        getService(LoggerService.class).update(LoggerType.NORMAL, name, 
loggerTO);
     }
 
     public void enableAudit(final AuditLoggerName auditLoggerName) {
-        getService(LoggerService.class).enableAudit(auditLoggerName);
+        String name = auditLoggerName.toLoggerName();
+        LoggerTO loggerTO = new LoggerTO();
+        loggerTO.setName(name);
+        loggerTO.setLevel(SyncopeLoggerLevel.DEBUG);
+        getService(LoggerService.class).update(LoggerType.AUDIT, name, 
loggerTO);
     }
 
-    public LoggerTO deleteLog(final String name) {
-        return getService(LoggerService.class).delete(name);
+    public void deleteLog(final String name) {
+        getService(LoggerService.class).delete(LoggerType.NORMAL, name);
     }
 
     public void disableAudit(final AuditLoggerName auditLoggerName) {
-        getService(LoggerService.class).disableAudit(auditLoggerName);
+        getService(LoggerService.class).delete(LoggerType.AUDIT, 
auditLoggerName.toLoggerName());
     }
 }

Modified: 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConfigurationServiceImpl.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConfigurationServiceImpl.java?rev=1438058&r1=1438057&r2=1438058&view=diff
==============================================================================
--- 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConfigurationServiceImpl.java
 (original)
+++ 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConfigurationServiceImpl.java
 Thu Jan 24 16:19:11 2013
@@ -29,6 +29,7 @@ import javax.ws.rs.core.Response;
 import javax.ws.rs.core.StreamingOutput;
 import javax.ws.rs.core.UriInfo;
 
+import org.apache.syncope.common.SyncopeConstants;
 import org.apache.syncope.common.services.ConfigurationService;
 import org.apache.syncope.common.to.ConfigurationTO;
 import org.apache.syncope.common.to.MailTemplateTO;
@@ -51,7 +52,7 @@ public class ConfigurationServiceImpl im
     public Response create(final ConfigurationTO configurationTO) {
         ConfigurationTO created = configurationController.create(new 
DummyHTTPServletResponse(), configurationTO);
         URI location = 
uriInfo.getAbsolutePathBuilder().path(created.getKey()).build();
-        return Response.created(location).build();
+        return 
Response.created(location).header(SyncopeConstants.REST_HEADER_ID, 
created.getKey()).build();
     }
 
     @Override

Modified: 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java?rev=1438058&r1=1438057&r2=1438058&view=diff
==============================================================================
--- 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
 (original)
+++ 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
 Thu Jan 24 16:19:11 2013
@@ -26,6 +26,7 @@ import javax.ws.rs.BadRequestException;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
 
+import org.apache.syncope.common.SyncopeConstants;
 import org.apache.syncope.common.services.ConnectorService;
 import org.apache.syncope.common.to.ConnBundleTO;
 import org.apache.syncope.common.to.ConnInstanceTO;
@@ -51,7 +52,7 @@ public class ConnectorServiceImpl implem
         try {
             ConnInstanceTO connector = connectorController.create(new 
DummyHTTPServletResponse(), connectorTO);
             URI location = 
uriInfo.getAbsolutePathBuilder().path(connector.getId() + "").build();
-            return Response.created(location).build();
+            return 
Response.created(location).header(SyncopeConstants.REST_HEADER_ID, 
connector.getId()).build();
         } catch (SyncopeClientCompositeErrorException e) {
             throw new BadRequestException(e);
         } catch (NotFoundException e) {

Modified: 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java?rev=1438058&r1=1438057&r2=1438058&view=diff
==============================================================================
--- 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
 (original)
+++ 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
 Thu Jan 24 16:19:11 2013
@@ -25,6 +25,7 @@ import javax.ws.rs.BadRequestException;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
 
+import org.apache.syncope.common.SyncopeConstants;
 import org.apache.syncope.common.services.PolicyService;
 import org.apache.syncope.common.to.AccountPolicyTO;
 import org.apache.syncope.common.to.PasswordPolicyTO;
@@ -64,7 +65,7 @@ public class PolicyServiceImpl implement
                 throw new BadRequestException();
         }
         URI location = uriInfo.getAbsolutePathBuilder().path(policy.getId() + 
"").build();
-        return Response.created(location).build();
+        return 
Response.created(location).header(SyncopeConstants.REST_HEADER_ID, 
policy.getId()).build();
     }
 
     @Override

Modified: 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java?rev=1438058&r1=1438057&r2=1438058&view=diff
==============================================================================
--- 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java
 (original)
+++ 
syncope/trunk/core/src/main/java/org/apache/syncope/core/services/SchemaServiceImpl.java
 Thu Jan 24 16:19:11 2013
@@ -23,6 +23,8 @@ import java.util.List;
 import javax.ws.rs.BadRequestException;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
+
+import org.apache.syncope.common.SyncopeConstants;
 import org.apache.syncope.common.services.SchemaService;
 import org.apache.syncope.common.to.AbstractSchemaTO;
 import org.apache.syncope.common.to.DerivedSchemaTO;
@@ -74,7 +76,7 @@ public class SchemaServiceImpl implement
                 throw new BadRequestException();
         }
         URI location = 
uriInfo.getAbsolutePathBuilder().path(response.getName()).build();
-        return Response.created(location).build();
+        return 
Response.created(location).header(SyncopeConstants.REST_HEADER_ID, 
response.getName()).build();
     }
 
     @Override
@@ -106,13 +108,13 @@ public class SchemaServiceImpl implement
     public List<? extends AbstractSchemaTO> list(final AttributableType kind, 
final SchemaType type) {
         switch (type) {
             case NORMAL:
-                return (List<? extends AbstractSchemaTO>) 
normalSchemaController.list(kind.toString());
+                return normalSchemaController.list(kind.toString());
 
             case DERIVED:
-                return (List<? extends AbstractSchemaTO>) 
derivedSchemaController.list(kind.toString());
+                return derivedSchemaController.list(kind.toString());
 
             case VIRTUAL:
-                return (List<? extends AbstractSchemaTO>) 
virtualSchemaController.list(kind.toString());
+                return virtualSchemaController.list(kind.toString());
 
             default:
                 throw new BadRequestException();

Modified: 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java?rev=1438058&r1=1438057&r2=1438058&view=diff
==============================================================================
--- 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java
 (original)
+++ 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/LoggerTestITCase.java
 Thu Jan 24 16:19:11 2013
@@ -23,18 +23,19 @@ import static org.junit.Assert.assertFal
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
+import java.text.ParseException;
 import java.util.List;
 
 import org.apache.syncope.common.to.LoggerTO;
 import org.apache.syncope.common.types.AuditElements;
 import org.apache.syncope.common.types.AuditLoggerName;
+import org.apache.syncope.common.types.LoggerType;
 import org.apache.syncope.common.types.SyncopeLoggerLevel;
+import org.apache.syncope.common.util.CollectionWrapper;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runners.MethodSorters;
 
-import ch.qos.logback.classic.Level;
-
 @FixMethodOrder(MethodSorters.JVM)
 public class LoggerTestITCase extends AbstractTest {
 
@@ -45,7 +46,7 @@ public class LoggerTestITCase extends Ab
 
     @Test
     public void listLogs() {
-        List<LoggerTO> loggers = loggerService.listLogs();
+        List<LoggerTO> loggers = loggerService.list(LoggerType.NORMAL);
         assertNotNull(loggers);
         assertFalse(loggers.isEmpty());
         for (LoggerTO logger : loggers) {
@@ -54,33 +55,37 @@ public class LoggerTestITCase extends Ab
     }
 
     @Test
-    public void listAudits() {
-        List<AuditLoggerName> audits = loggerService.listAudits();
+    public void listAudits() throws ParseException {
+        List<LoggerTO> audits = loggerService.list(LoggerType.AUDIT);
 
         assertNotNull(audits);
         assertFalse(audits.isEmpty());
-        for (AuditLoggerName audit : audits) {
-            assertNotNull(audit);
+        for (LoggerTO audit : audits) {
+            assertNotNull(AuditLoggerName.fromLoggerName(audit.getName()));
         }
     }
 
     @Test
     public void setLevel() {
-        List<LoggerTO> loggers = loggerService.listLogs();
+        List<LoggerTO> loggers = loggerService.list(LoggerType.NORMAL);
         assertNotNull(loggers);
         int startSize = loggers.size();
 
-        LoggerTO logger = loggerService.update("TEST", Level.INFO);
+        LoggerTO logger = new LoggerTO();
+        logger.setName("TEST");
+        logger.setLevel(SyncopeLoggerLevel.INFO);
+        loggerService.update(LoggerType.NORMAL, logger.getName(), logger);
+        logger = loggerService.read(LoggerType.NORMAL, logger.getName());
         assertNotNull(logger);
         assertEquals(SyncopeLoggerLevel.INFO, logger.getLevel());
 
-        loggers = loggerService.listLogs();
+        loggers = loggerService.list(LoggerType.NORMAL);
         assertNotNull(loggers);
         assertEquals(startSize + 1, loggers.size());
 
         // TEST Delete
-        loggerService.delete("TEST");
-        loggers = loggerService.listLogs();
+        loggerService.delete(LoggerType.NORMAL, "TEST");
+        loggers = loggerService.list(LoggerType.NORMAL);
         assertNotNull(loggers);
         assertEquals(startSize, loggers.size());
     }
@@ -90,19 +95,23 @@ public class LoggerTestITCase extends Ab
         AuditLoggerName auditLoggerName = new 
AuditLoggerName(AuditElements.Category.report,
                 AuditElements.ReportSubCategory.listExecutions, 
AuditElements.Result.failure);
 
-        List<AuditLoggerName> audits = loggerService.listAudits();
+        List<AuditLoggerName> audits = 
CollectionWrapper.wrapLogger(loggerService.list(LoggerType.AUDIT));
         assertNotNull(audits);
         assertFalse(audits.contains(auditLoggerName));
 
-        loggerService.enableAudit(auditLoggerName);
+        LoggerTO loggerTO = new LoggerTO();
+        String name = auditLoggerName.toLoggerName();
+        loggerTO.setName(name);
+        loggerTO.setLevel(SyncopeLoggerLevel.DEBUG);
+        loggerService.update(LoggerType.AUDIT, name, loggerTO);
 
-        audits = loggerService.listAudits();
+        audits = 
CollectionWrapper.wrapLogger(loggerService.list(LoggerType.AUDIT));
         assertNotNull(audits);
         assertTrue(audits.contains(auditLoggerName));
 
-        loggerService.disableAudit(auditLoggerName);
+        loggerService.delete(LoggerType.AUDIT, auditLoggerName.toLoggerName());
 
-        audits = loggerService.listAudits();
+        audits = 
CollectionWrapper.wrapLogger(loggerService.list(LoggerType.AUDIT));
         assertNotNull(audits);
         assertFalse(audits.contains(auditLoggerName));
     }


Reply via email to