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));
}