You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2013/01/22 14:33:25 UTC

svn commit: r1436910 [2/3] - in /syncope/trunk: client/ common/src/main/java/org/apache/syncope/common/services/ common/src/main/java/org/apache/syncope/common/to/ common/src/main/java/org/apache/syncope/common/types/ common/src/main/java/org/apache/sy...

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ContentLoader.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ContentLoader.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ContentLoader.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ContentLoader.java Tue Jan 22 13:33:22 2013
@@ -18,18 +18,16 @@
  */
 package org.apache.syncope.core.persistence.dao.impl;
 
-import java.io.Closeable;
 import java.io.InputStream;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Properties;
-
 import javax.sql.DataSource;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
-
+import org.apache.commons.io.IOUtils;
 import org.apache.syncope.core.persistence.beans.SyncopeConf;
 import org.apache.syncope.core.util.ImportExport;
 import org.slf4j.Logger;
@@ -40,13 +38,17 @@ import org.springframework.stereotype.Co
 import org.springframework.transaction.annotation.Transactional;
 
 /**
- * Initialize Database with default content if no data is present already
+ * Initialize Database with default content if no data is present already.
  */
 @Component
 public class ContentLoader {
+
     private static final String VIEWS_FILE = "/views.xml";
+
     private static final String INDEXES_FILE = "/indexes.xml";
+
     private static final String CONTENT_FILE = "/content.xml";
+
     private static final String ACTIVITY_CONTENT_FILE = "/activiticontent.xml";
 
     private static final Logger LOG = LoggerFactory.getLogger(ContentLoader.class);
@@ -58,56 +60,74 @@ public class ContentLoader {
     private ImportExport importExport;
 
     @Transactional
-    public void load(boolean activitiEnabledForUsers) {
-        Connection conn = DataSourceUtils.getConnection(dataSource);
-
-        boolean existingData = isDataPresent(conn);
-        if (existingData) {
-            LOG.info("Data found in the database, leaving untouched");
-            closeConnection(conn);
-            return;
-        }
-
-        LOG.info("Empty database found, loading default content");
+    public void load(final boolean activitiEnabledForUsers) {
+        Connection conn = null;
+        try {
+            conn = DataSourceUtils.getConnection(dataSource);
 
-        createViews(conn);
-        createIndexes(conn);
-        if (activitiEnabledForUsers) {
-            deleteActivitiProperties(conn);
-        }
-        closeConnection(conn);
-        loadDefaultContent(CONTENT_FILE);
-        if (activitiEnabledForUsers) {
-            loadDefaultContent(ACTIVITY_CONTENT_FILE);
+            boolean existingData = isDataPresent(conn);
+            if (existingData) {
+                LOG.info("Data found in the database, leaving untouched");
+            } else {
+                LOG.info("Empty database found, loading default content");
+
+                createViews(conn);
+                createIndexes(conn);
+                if (activitiEnabledForUsers) {
+                    deleteActivitiProperties(conn);
+                }
+                loadDefaultContent(CONTENT_FILE);
+                if (activitiEnabledForUsers) {
+                    loadDefaultContent(ACTIVITY_CONTENT_FILE);
+                }
+            }
+        } finally {
+            DataSourceUtils.releaseConnection(conn, dataSource);
+            if (conn != null) {
+                try {
+                    if (!conn.isClosed()) {
+                        conn.close();
+                    }
+                } catch (SQLException e) {
+                    LOG.error("While releasing connection", e);
+                }
+            }
         }
     }
 
-    private boolean isDataPresent(Connection conn) {
-        ResultSet resultSet = null;
+    private boolean isDataPresent(final Connection conn) {
         PreparedStatement statement = null;
+        ResultSet rs = null;
         try {
             final String queryContent = "SELECT * FROM " + SyncopeConf.class.getSimpleName();
             statement = conn.prepareStatement(
                     queryContent, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
-            resultSet = statement.executeQuery();
-            resultSet.last();
-            return resultSet.getRow() > 0;
+            rs = statement.executeQuery();
+            rs.last();
+            return rs.getRow() > 0;
         } catch (SQLException e) {
             LOG.error("Could not access to table " + SyncopeConf.class.getSimpleName(), e);
             return true;
         } finally {
-            closeResultSet(resultSet);
+            if (rs != null) {
+                try {
+                    rs.close();
+                } catch (SQLException e) {
+                    LOG.error("While closing tables result set", e);
+                }
+            }
+
             closeStatement(statement);
         }
     }
 
-    private void createViews(Connection conn) {
+    private void createViews(final Connection conn) {
         LOG.debug("Creating views");
+        InputStream viewsStream = null;
         try {
-            InputStream viewsStream = getClass().getResourceAsStream(VIEWS_FILE);
+            viewsStream = getClass().getResourceAsStream(VIEWS_FILE);
             Properties views = new Properties();
             views.loadFromXML(viewsStream);
-            close(viewsStream);
 
             for (String idx : views.stringPropertyNames()) {
                 LOG.debug("Creating view {}", views.get(idx).toString());
@@ -128,20 +148,26 @@ public class ContentLoader {
             LOG.debug("Views created, go for indexes");
         } catch (Exception e) {
             LOG.error("While creating views", e);
+        } finally {
+            if (viewsStream != null) {
+                IOUtils.closeQuietly(viewsStream);
+            }
         }
     }
 
-    private void createIndexes(Connection conn) {
+    private void createIndexes(final Connection conn) {
         LOG.debug("Creating indexes");
 
-        InputStream indexesStream = getClass().getResourceAsStream(INDEXES_FILE);
+        InputStream indexesStream = null;
         Properties indexes = new Properties();
         try {
+            indexesStream = getClass().getResourceAsStream(INDEXES_FILE);
             indexes.loadFromXML(indexesStream);
         } catch (Exception e) {
             throw new RuntimeException("Error loading properties from stream", e);
+        } finally {
+            IOUtils.closeQuietly(indexesStream);
         }
-        close(indexesStream);
 
         for (String idx : indexes.stringPropertyNames()) {
             LOG.debug("Creating index {}", indexes.get(idx).toString());
@@ -158,7 +184,7 @@ public class ContentLoader {
         }
     }
 
-    private void deleteActivitiProperties(Connection conn) {
+    private void deleteActivitiProperties(final Connection conn) {
         PreparedStatement statement = null;
         try {
             statement = conn.prepareStatement("DELETE FROM ACT_GE_PROPERTY");
@@ -170,28 +196,25 @@ public class ContentLoader {
         }
     }
 
-    private void loadDefaultContent(String contentPath) {
+    private void loadDefaultContent(final String contentPath) {
         SAXParserFactory factory = SAXParserFactory.newInstance();
+        InputStream in = null;
         try {
+            in = getClass().getResourceAsStream(contentPath);
+
             SAXParser parser = factory.newSAXParser();
-            parser.parse(getClass().getResourceAsStream(contentPath), importExport);
+            parser.parse(in, importExport);
             LOG.debug("Default content successfully loaded");
         } catch (Exception e) {
             LOG.error("While loading default content", e);
-        }
-    }
-
-    private void closeResultSet(ResultSet resultSet) {
-        try {
-            if (resultSet != null) {
-                resultSet.close();
+        } finally {
+            if (in != null) {
+                IOUtils.closeQuietly(in);
             }
-        } catch (SQLException e) {
-            LOG.error("While closing SQL result set", e);
         }
     }
 
-    private void closeStatement(PreparedStatement statement) {
+    private void closeStatement(final PreparedStatement statement) {
         if (statement != null) {
             try {
                 statement.close();
@@ -200,24 +223,4 @@ public class ContentLoader {
             }
         }
     }
-
-    private void closeConnection(Connection conn) {
-        try {
-            conn.close();
-        } catch (SQLException e) {
-            LOG.error("Error closing SQL connection", e);
-        } finally {
-            DataSourceUtils.releaseConnection(conn, dataSource);
-        }
-    }
-    
-    private void close(Closeable closeable) {
-        if (closeable != null) {
-            try {
-                closeable.close();
-            } catch (Throwable t) {
-                LOG.error("Error closing closeable", t);
-            }
-        }
-    }
 }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/DerAttrDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/DerAttrDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/DerAttrDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/DerAttrDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.AbstractDerAttr;
 import org.apache.syncope.core.persistence.dao.DerAttrDAO;
 import org.springframework.stereotype.Repository;
@@ -31,26 +29,23 @@ public class DerAttrDAOImpl extends Abst
 
     @Override
     public <T extends AbstractDerAttr> T find(final Long id, final Class<T> reference) {
-
         return entityManager.find(reference, id);
     }
 
     @Override
     public <T extends AbstractDerAttr> List<T> findAll(final Class<T> reference) {
-
-        Query query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e");
+        TypedQuery<T> query = entityManager.createQuery(
+                "SELECT e FROM " + reference.getSimpleName() + " e", reference);
         return query.getResultList();
     }
 
     @Override
     public <T extends AbstractDerAttr> T save(final T derivedAttribute) {
-
         return entityManager.merge(derivedAttribute);
     }
 
     @Override
     public <T extends AbstractDerAttr> void delete(final Long id, final Class<T> reference) {
-
         T derivedAttribute = find(id, reference);
         if (derivedAttribute == null) {
             return;
@@ -61,7 +56,6 @@ public class DerAttrDAOImpl extends Abst
 
     @Override
     public <T extends AbstractDerAttr> void delete(final T derivedAttribute) {
-
         if (derivedAttribute.getOwner() != null) {
             derivedAttribute.getOwner().removeDerivedAttribute(derivedAttribute);
         }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/DerSchemaDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/DerSchemaDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/DerSchemaDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/DerSchemaDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -21,9 +21,7 @@ package org.apache.syncope.core.persiste
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.AbstractDerAttr;
 import org.apache.syncope.core.persistence.beans.AbstractDerSchema;
 import org.apache.syncope.core.persistence.beans.user.UMappingItem;
@@ -45,14 +43,12 @@ public class DerSchemaDAOImpl extends Ab
 
     @Override
     public <T extends AbstractDerSchema> T find(final String name, final Class<T> reference) {
-
         return entityManager.find(reference, name);
     }
 
     @Override
     public <T extends AbstractDerSchema> List<T> findAll(final Class<T> reference) {
-
-        Query query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e");
+        TypedQuery<T> query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e", reference);
         return query.getResultList();
     }
 
@@ -72,7 +68,7 @@ public class DerSchemaDAOImpl extends Ab
 
         final Set<Long> derivedAttributeIds = new HashSet<Long>(attributes.size());
 
-        Class attributeClass = null;
+        Class<? extends AbstractDerAttr> attributeClass = null;
         for (AbstractDerAttr attribute : attributes) {
             derivedAttributeIds.add(attribute.getId());
             attributeClass = attribute.getClass();
@@ -91,9 +87,8 @@ public class DerSchemaDAOImpl extends Ab
     public <T extends AbstractDerAttr> List<T> getAttributes(final AbstractDerSchema derivedSchema,
             final Class<T> reference) {
 
-        Query query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e"
-                + " WHERE e.derivedSchema=:schema");
-
+        TypedQuery<T> query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e"
+                + " WHERE e.derivedSchema=:schema", reference);
         query.setParameter("schema", derivedSchema);
 
         return query.getResultList();

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/EntitlementDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/EntitlementDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/EntitlementDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/EntitlementDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.Entitlement;
 import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
 import org.apache.syncope.core.persistence.dao.EntitlementDAO;
@@ -43,7 +41,7 @@ public class EntitlementDAOImpl extends 
 
     @Override
     public List<Entitlement> findAll() {
-        Query query = entityManager.createQuery("SELECT e FROM Entitlement e");
+        TypedQuery<Entitlement> query = entityManager.createQuery("SELECT e FROM Entitlement e", Entitlement.class);
 
         return query.getResultList();
     }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/LoggerDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/LoggerDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/LoggerDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/LoggerDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.common.types.SyncopeLoggerLevel;
 import org.apache.syncope.common.types.SyncopeLoggerType;
 import org.apache.syncope.core.persistence.beans.SyncopeLogger;
@@ -38,8 +36,8 @@ public class LoggerDAOImpl extends Abstr
 
     @Override
     public List<SyncopeLogger> findAll(final SyncopeLoggerType type) {
-        Query query = entityManager.createQuery("SELECT e FROM " + SyncopeLogger.class.getSimpleName() + " e "
-                + "WHERE e.type=:type");
+        TypedQuery<SyncopeLogger> query = entityManager.createQuery(
+                "SELECT e FROM " + SyncopeLogger.class.getSimpleName() + " e WHERE e.type=:type", SyncopeLogger.class);
         query.setParameter("type", type);
         return query.getResultList();
     }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/MembershipDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/MembershipDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/MembershipDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/MembershipDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,10 +19,9 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.membership.Membership;
 import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
 import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
@@ -68,7 +67,7 @@ public class MembershipDAOImpl extends A
 
     @Override
     public List<Membership> findAll() {
-        Query query = entityManager.createQuery("SELECT e FROM Membership e");
+        TypedQuery<Membership> query = entityManager.createQuery("SELECT e FROM Membership e", Membership.class);
         return query.getResultList();
     }
 

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/NotificationDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/NotificationDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/NotificationDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/NotificationDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.Notification;
 import org.apache.syncope.core.persistence.dao.NotificationDAO;
 import org.apache.syncope.core.persistence.validation.entity.InvalidEntityException;
@@ -37,13 +35,13 @@ public class NotificationDAOImpl extends
 
     @Override
     public List<Notification> findAll() {
-        Query query = entityManager.createQuery("SELECT e " + "FROM " + Notification.class.getSimpleName() + " e");
+        TypedQuery<Notification> query = entityManager.createQuery(
+                "SELECT e " + "FROM " + Notification.class.getSimpleName() + " e", Notification.class);
         return query.getResultList();
     }
 
     @Override
     public Notification save(final Notification notification) throws InvalidEntityException {
-
         return entityManager.merge(notification);
     }
 

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/PolicyDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/PolicyDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/PolicyDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/PolicyDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.common.types.PolicyType;
 import org.apache.syncope.core.persistence.beans.AccountPolicy;
 import org.apache.syncope.core.persistence.beans.PasswordPolicy;
@@ -40,7 +38,8 @@ public class PolicyDAOImpl extends Abstr
 
     @Override
     public List<? extends Policy> find(final PolicyType type) {
-        final Query query = entityManager.createQuery("SELECT e FROM Policy e WHERE e.type=:type");
+        final TypedQuery<Policy> query = entityManager.createQuery("SELECT e FROM Policy e WHERE e.type=:type",
+                Policy.class);
         query.setParameter("type", type);
 
         return query.getResultList();
@@ -72,12 +71,12 @@ public class PolicyDAOImpl extends Abstr
 
     @Override
     public List<Policy> findAll() {
-        Query query = entityManager.createQuery("SELECT e FROM Policy e");
+        TypedQuery<Policy> query = entityManager.createQuery("SELECT e FROM Policy e", Policy.class);
         return query.getResultList();
     }
 
     @Override
-    public Policy save(final Policy policy) {
+    public <T extends Policy> T save(final T policy) {
         return entityManager.merge(policy);
     }
 

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ReportDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ReportDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ReportDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ReportDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -21,6 +21,7 @@ package org.apache.syncope.core.persiste
 import java.util.List;
 
 import javax.persistence.Query;
+import javax.persistence.TypedQuery;
 
 import org.apache.syncope.core.persistence.beans.Report;
 import org.apache.syncope.core.persistence.dao.ReportDAO;
@@ -44,7 +45,8 @@ public class ReportDAOImpl extends Abstr
 
     @Override
     public List<Report> findAll(final int page, final int itemsPerPage) {
-        final Query query = entityManager.createQuery("SELECT e FROM " + Report.class.getSimpleName() + " e");
+        final TypedQuery<Report> query = entityManager.createQuery(
+                "SELECT e FROM " + Report.class.getSimpleName() + " e", Report.class);
 
         query.setFirstResult(itemsPerPage * (page <= 0
                 ? 0

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ReportExecDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ReportExecDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ReportExecDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ReportExecDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.Report;
 import org.apache.syncope.core.persistence.beans.ReportExec;
 import org.apache.syncope.core.persistence.dao.ReportExecDAO;
@@ -38,9 +36,9 @@ public class ReportExecDAOImpl extends A
     }
 
     private ReportExec findLatest(final Report report, final String field) {
-
-        Query query = entityManager.createQuery("SELECT e " + "FROM " + ReportExec.class.getSimpleName() + " e "
-                + "WHERE e.report=:report " + "ORDER BY e." + field + " DESC");
+        TypedQuery<ReportExec> query = entityManager.createQuery(
+                "SELECT e " + "FROM " + ReportExec.class.getSimpleName() + " e "
+                + "WHERE e.report=:report " + "ORDER BY e." + field + " DESC", ReportExec.class);
         query.setParameter("report", report);
         query.setMaxResults(1);
 
@@ -62,7 +60,8 @@ public class ReportExecDAOImpl extends A
 
     @Override
     public List<ReportExec> findAll() {
-        Query query = entityManager.createQuery("SELECT e FROM " + ReportExec.class.getSimpleName() + " e");
+        TypedQuery<ReportExec> query = entityManager.createQuery(
+                "SELECT e FROM " + ReportExec.class.getSimpleName() + " e", ReportExec.class);
         return query.getResultList();
     }
 

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ResourceDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ResourceDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ResourceDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/ResourceDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -21,12 +21,10 @@ package org.apache.syncope.core.persiste
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import javax.persistence.NoResultException;
-import javax.persistence.Query;
 import javax.persistence.TypedQuery;
-
 import org.apache.syncope.common.types.IntMappingType;
+import org.apache.syncope.core.persistence.beans.AbstractMapping;
 import org.apache.syncope.core.persistence.beans.AbstractMappingItem;
 import org.apache.syncope.core.persistence.beans.ExternalResource;
 import org.apache.syncope.core.persistence.beans.PropagationTask;
@@ -68,6 +66,7 @@ public class ResourceDAOImpl extends Abs
         try {
             result = query.getSingleResult();
         } catch (NoResultException e) {
+            LOG.error("No resource found with name {}", name, e);
         }
 
         return result;
@@ -75,14 +74,17 @@ public class ResourceDAOImpl extends Abs
 
     @Override
     public List<ExternalResource> findAll() {
-        Query query = entityManager.createQuery("SELECT e " + "FROM  " + ExternalResource.class.getSimpleName() + " e");
+        TypedQuery<ExternalResource> query =
+                entityManager.createQuery("SELECT e " + "FROM  " + ExternalResource.class.getSimpleName() + " e",
+                ExternalResource.class);
         return query.getResultList();
     }
 
     @Override
     public List<ExternalResource> findAllByPriority() {
-        Query query = entityManager.createQuery("SELECT e " + "FROM  " + ExternalResource.class.getSimpleName() + " e "
-                + "ORDER BY e.propagationPriority");
+        TypedQuery<ExternalResource> query =
+                entityManager.createQuery("SELECT e " + "FROM  " + ExternalResource.class.getSimpleName() + " e "
+                + "ORDER BY e.propagationPriority", ExternalResource.class);
         return query.getResultList();
     }
 
@@ -114,16 +116,16 @@ public class ResourceDAOImpl extends Abs
             return;
         }
 
-        Query query = entityManager.createQuery("SELECT m FROM " + reference.getSimpleName()
-                + " m WHERE m.intAttrName=:intAttrName AND m.intMappingType=:intMappingType");
+        TypedQuery<T> query = entityManager.createQuery("SELECT m FROM " + reference.getSimpleName()
+                + " m WHERE m.intAttrName=:intAttrName AND m.intMappingType=:intMappingType", reference);
         query.setParameter("intAttrName", intAttrName);
         query.setParameter("intMappingType", intMappingType);
 
         Set<Long> itemIds = new HashSet<Long>();
-        for (T item : (List<T>) query.getResultList()) {
+        for (T item : query.getResultList()) {
             itemIds.add(item.getId());
         }
-        Class mappingRef = null;
+        Class<? extends AbstractMapping> mappingRef = null;
         for (Long itemId : itemIds) {
             T item = entityManager.find(reference, itemId);
             if (item != null) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RoleDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -20,12 +20,10 @@ package org.apache.syncope.core.persiste
 
 import java.util.ArrayList;
 import java.util.List;
-
 import javax.persistence.NoResultException;
-import javax.persistence.Query;
 import javax.persistence.TypedQuery;
-
 import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.core.persistence.beans.AbstractAttributable;
 import org.apache.syncope.core.persistence.beans.AbstractVirAttr;
 import org.apache.syncope.core.persistence.beans.Entitlement;
 import org.apache.syncope.core.persistence.beans.ExternalResource;
@@ -51,6 +49,12 @@ public class RoleDAOImpl extends Abstrac
     @Autowired
     private EntitlementDAO entitlementDAO;
 
+    @SuppressWarnings("unchecked")
+    @Override
+    protected <T extends AbstractAttributable> T findInternal(final Long id) {
+        return (T) find(id);
+    }
+
     @Override
     public SyncopeRole find(final Long id) {
         TypedQuery<SyncopeRole> query = entityManager.createQuery("SELECT e FROM SyncopeRole e WHERE e.id = :id",
@@ -61,6 +65,7 @@ public class RoleDAOImpl extends Abstrac
         try {
             result = query.getSingleResult();
         } catch (NoResultException e) {
+            LOG.error("No role found with id {}", id, e);
         }
 
         return result;
@@ -68,7 +73,8 @@ public class RoleDAOImpl extends Abstrac
 
     @Override
     public List<SyncopeRole> find(final String name) {
-        Query query = entityManager.createQuery("SELECT e FROM SyncopeRole e WHERE e.name = :name");
+        TypedQuery<SyncopeRole> query =
+                entityManager.createQuery("SELECT e FROM SyncopeRole e WHERE e.name = :name", SyncopeRole.class);
         query.setParameter("name", name);
 
         return query.getResultList();
@@ -76,14 +82,14 @@ public class RoleDAOImpl extends Abstrac
 
     @Override
     public SyncopeRole find(final String name, final Long parentId) {
-        Query query;
-        if (parentId != null) {
+        TypedQuery<SyncopeRole> query;
+        if (parentId == null) {
             query = entityManager.createQuery("SELECT r FROM SyncopeRole r WHERE "
-                    + "r.name=:name AND r.parent.id=:parentId");
-            query.setParameter("parentId", parentId);
+                    + "r.name=:name AND r.parent IS NULL", SyncopeRole.class);
         } else {
             query = entityManager.createQuery("SELECT r FROM SyncopeRole r WHERE "
-                    + "r.name=:name AND r.parent IS NULL");
+                    + "r.name=:name AND r.parent.id=:parentId", SyncopeRole.class);
+            query.setParameter("parentId", parentId);
         }
         query.setParameter("name", name);
 
@@ -116,11 +122,11 @@ public class RoleDAOImpl extends Abstrac
             queryString.append("OR e.roleOwner.id=").append(roleId).append(' ');
         }
 
-        Query query = entityManager.createQuery(queryString.toString());
+        TypedQuery<SyncopeRole> query = entityManager.createQuery(queryString.toString(), SyncopeRole.class);
         query.setParameter("owner", owner);
 
         List<SyncopeRole> result = new ArrayList<SyncopeRole>();
-        for (SyncopeRole role : (List<SyncopeRole>) query.getResultList()) {
+        for (SyncopeRole role : query.getResultList()) {
             findSameOwnerDescendants(result, role);
         }
 
@@ -129,8 +135,9 @@ public class RoleDAOImpl extends Abstrac
 
     @Override
     public List<SyncopeRole> findByEntitlement(final Entitlement entitlement) {
-        Query query = entityManager.createQuery("SELECT e FROM " + SyncopeRole.class.getSimpleName() + " e "
-                + "WHERE :entitlement MEMBER OF e.entitlements");
+        TypedQuery<SyncopeRole> query =
+                entityManager.createQuery("SELECT e FROM " + SyncopeRole.class.getSimpleName() + " e "
+                + "WHERE :entitlement MEMBER OF e.entitlements", SyncopeRole.class);
         query.setParameter("entitlement", entitlement);
 
         return query.getResultList();
@@ -152,8 +159,10 @@ public class RoleDAOImpl extends Abstrac
 
     @Override
     public List<SyncopeRole> findChildren(final SyncopeRole role) {
-        Query query = entityManager.createQuery("SELECT r FROM SyncopeRole r WHERE " + "r.parent=:role");
+        TypedQuery<SyncopeRole> query =
+                entityManager.createQuery("SELECT r FROM SyncopeRole r WHERE " + "r.parent=:role", SyncopeRole.class);
         query.setParameter("role", role);
+
         return query.getResultList();
     }
 
@@ -199,14 +208,15 @@ public class RoleDAOImpl extends Abstrac
 
     @Override
     public List<SyncopeRole> findAll() {
-        Query query = entityManager.createQuery("SELECT e FROM SyncopeRole e");
+        TypedQuery<SyncopeRole> query = entityManager.createQuery("SELECT e FROM SyncopeRole e", SyncopeRole.class);
         return query.getResultList();
     }
 
     @Override
     public List<Membership> findMemberships(final SyncopeRole role) {
-        Query query = entityManager.createQuery("SELECT e FROM " + Membership.class.getSimpleName() + " e"
-                + " WHERE e.syncopeRole=:role");
+        TypedQuery<Membership> query =
+                entityManager.createQuery("SELECT e FROM " + Membership.class.getSimpleName() + " e"
+                + " WHERE e.syncopeRole=:role", Membership.class);
         query.setParameter("role", role);
 
         return query.getResultList();
@@ -257,7 +267,7 @@ public class RoleDAOImpl extends Abstrac
 
     @Override
     public void delete(final Long id) {
-        SyncopeRole role = find(id);
+        SyncopeRole role = findInternal(id);
         if (role == null) {
             return;
         }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/SchemaDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/SchemaDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/SchemaDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/SchemaDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -21,9 +21,7 @@ package org.apache.syncope.core.persiste
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.AbstractAttr;
 import org.apache.syncope.core.persistence.beans.AbstractSchema;
 import org.apache.syncope.core.persistence.beans.user.UMappingItem;
@@ -51,17 +49,15 @@ public class SchemaDAOImpl extends Abstr
 
     @Override
     public <T extends AbstractSchema> List<T> findAll(final Class<T> reference) {
-
-        Query query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e");
+        TypedQuery<T> query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e", reference);
 
         return query.getResultList();
     }
 
     @Override
     public <T extends AbstractAttr> List<T> getAttributes(final AbstractSchema schema, final Class<T> reference) {
-
-        Query query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e"
-                + " WHERE e.schema=:schema");
+        TypedQuery<T> query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e"
+                + " WHERE e.schema=:schema", reference);
         query.setParameter("schema", schema);
 
         return query.getResultList();

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/TaskDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/TaskDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/TaskDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/TaskDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -20,9 +20,8 @@ package org.apache.syncope.core.persiste
 
 import java.util.ArrayList;
 import java.util.List;
-
 import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.ExternalResource;
 import org.apache.syncope.core.persistence.beans.NotificationTask;
 import org.apache.syncope.core.persistence.beans.SchedTask;
@@ -35,8 +34,9 @@ import org.springframework.transaction.a
 @Repository
 public class TaskDAOImpl extends AbstractDAOImpl implements TaskDAO {
 
-    @Override
     @Transactional(readOnly = true)
+    @SuppressWarnings("unchecked")
+    @Override
     public <T extends Task> T find(final Long id) {
         return (T) entityManager.find(Task.class, id);
     }
@@ -68,13 +68,12 @@ public class TaskDAOImpl extends Abstrac
         }
         queryString.append("ORDER BY e.id DESC");
 
-        final Query query = entityManager.createQuery(queryString.toString());
+        final TypedQuery<T> query = entityManager.createQuery(queryString.toString(), reference);
         return query.getResultList();
     }
 
     @Override
     public <T extends Task> List<T> findAll(final ExternalResource resource, final Class<T> reference) {
-
         StringBuilder queryString = buildfindAllQuery(reference);
 
         if (SchedTask.class.equals(reference)) {
@@ -86,7 +85,7 @@ public class TaskDAOImpl extends Abstrac
         queryString.append("e.resource=:resource ");
         queryString.append("ORDER BY e.id DESC");
 
-        final Query query = entityManager.createQuery(queryString.toString());
+        final TypedQuery<T> query = entityManager.createQuery(queryString.toString(), reference);
         query.setParameter("resource", resource);
 
         return query.getResultList();
@@ -99,11 +98,10 @@ public class TaskDAOImpl extends Abstrac
 
     @Override
     public <T extends Task> List<T> findAll(final int page, final int itemsPerPage, final Class<T> reference) {
-
         StringBuilder queryString = buildfindAllQuery(reference);
         queryString.append("ORDER BY e.id DESC");
 
-        final Query query = entityManager.createQuery(queryString.toString());
+        final TypedQuery<T> query = entityManager.createQuery(queryString.toString(), reference);
 
         query.setFirstResult(itemsPerPage * (page <= 0
                 ? 0

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/TaskExecDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/TaskExecDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/TaskExecDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/TaskExecDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.SchedTask;
 import org.apache.syncope.core.persistence.beans.SyncTask;
 import org.apache.syncope.core.persistence.beans.Task;
@@ -45,9 +43,9 @@ public class TaskExecDAOImpl extends Abs
     }
 
     private <T extends Task> TaskExec findLatest(final T task, final String field) {
-
-        Query query = entityManager.createQuery("SELECT e " + "FROM " + TaskExec.class.getSimpleName() + " e "
-                + "WHERE e.task=:task " + "ORDER BY e." + field + " DESC");
+        TypedQuery<TaskExec> query = entityManager.createQuery("SELECT e " + "FROM " + TaskExec.class.getSimpleName()
+                + " e "
+                + "WHERE e.task=:task " + "ORDER BY e." + field + " DESC", TaskExec.class);
         query.setParameter("task", task);
         query.setMaxResults(1);
 
@@ -68,7 +66,7 @@ public class TaskExecDAOImpl extends Abs
     }
 
     @Override
-    public <T extends Task> List<TaskExec> findAll(Class<T> reference) {
+    public <T extends Task> List<TaskExec> findAll(final Class<T> reference) {
         StringBuilder queryString = new StringBuilder("SELECT e FROM ").append(TaskExec.class.getSimpleName()).append(
                 " e WHERE e.task IN (").append("SELECT t FROM ").append(reference.getSimpleName()).append(" t");
         if (SchedTask.class.equals(reference)) {
@@ -77,7 +75,7 @@ public class TaskExecDAOImpl extends Abs
         }
         queryString.append(')');
 
-        Query query = entityManager.createQuery(queryString.toString());
+        TypedQuery<TaskExec> query = entityManager.createQuery(queryString.toString(), TaskExec.class);
         return query.getResultList();
     }
 

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -21,12 +21,11 @@ package org.apache.syncope.core.persiste
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
-
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
 import javax.persistence.TypedQuery;
-
 import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.core.persistence.beans.AbstractAttributable;
 import org.apache.syncope.core.persistence.beans.AbstractVirAttr;
 import org.apache.syncope.core.persistence.beans.ExternalResource;
 import org.apache.syncope.core.persistence.beans.membership.Membership;
@@ -45,6 +44,12 @@ public class UserDAOImpl extends Abstrac
     @Autowired
     private RoleDAO roleDAO;
 
+    @SuppressWarnings("unchecked")
+    @Override
+    protected <T extends AbstractAttributable> T findInternal(final Long id) {
+        return (T) find(id);
+    }
+
     @Override
     public SyncopeUser find(final Long id) {
         TypedQuery<SyncopeUser> query = entityManager.createQuery("SELECT e FROM " + SyncopeUser.class.getSimpleName()
@@ -53,8 +58,9 @@ public class UserDAOImpl extends Abstrac
 
         SyncopeUser result = null;
         try {
-            return query.getSingleResult();
+            result = query.getSingleResult();
         } catch (NoResultException e) {
+            LOG.error("No user found with id {}", id, e);
         }
 
         return result;
@@ -68,8 +74,9 @@ public class UserDAOImpl extends Abstrac
 
         SyncopeUser result = null;
         try {
-            return query.getSingleResult();
+            result = query.getSingleResult();
         } catch (NoResultException e) {
+            LOG.error("No user found with username {}", username, e);
         }
 
         return result;
@@ -142,6 +149,7 @@ public class UserDAOImpl extends Abstrac
         return findAll(adminRoles, -1, -1);
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public final List<SyncopeUser> findAll(final Set<Long> adminRoles, final int page, final int itemsPerPage) {
         final Query query = entityManager.createNativeQuery(getFindAllQuery(adminRoles).toString());
@@ -155,7 +163,7 @@ public class UserDAOImpl extends Abstrac
         }
 
         List<Number> userIds = new ArrayList<Number>();
-        List resultList = query.getResultList();
+        List<Object> resultList = query.getResultList();
 
         //fix for HHH-5902 - bug hibernate
         if (resultList != null) {
@@ -172,7 +180,7 @@ public class UserDAOImpl extends Abstrac
 
         SyncopeUser user;
         for (Object userId : userIds) {
-            user = find(((Number) userId).longValue());
+            user = findInternal(((Number) userId).longValue());
             if (user == null) {
                 LOG.error("Could not find user with id {}, " + "even though returned by the native query", userId);
             } else {
@@ -206,7 +214,7 @@ public class UserDAOImpl extends Abstrac
 
     @Override
     public void delete(final Long id) {
-        SyncopeUser user = find(id);
+        SyncopeUser user = findInternal(id);
         if (user == null) {
             return;
         }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserRequestDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserRequestDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserRequestDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/UserRequestDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.UserRequest;
 import org.apache.syncope.core.persistence.dao.UserRequestDAO;
 import org.apache.syncope.core.persistence.validation.entity.InvalidEntityException;
@@ -29,7 +27,7 @@ import org.springframework.stereotype.Re
 import org.springframework.transaction.annotation.Transactional;
 
 @Repository
-@Transactional(noRollbackFor = { Throwable.class })
+@Transactional(noRollbackFor = {Throwable.class})
 public class UserRequestDAOImpl extends AbstractDAOImpl implements UserRequestDAO {
 
     @Override
@@ -41,18 +39,18 @@ public class UserRequestDAOImpl extends 
     @Override
     @Transactional(readOnly = true)
     public List<UserRequest> findAll() {
-        Query query = entityManager.createQuery("SELECT e " + "FROM " + UserRequest.class.getSimpleName() + " e");
+        TypedQuery<UserRequest> query = entityManager.createQuery(
+                "SELECT e " + "FROM " + UserRequest.class.getSimpleName() + " e", UserRequest.class);
         return query.getResultList();
     }
 
     @Override
-    public UserRequest save(UserRequest userRequest) throws InvalidEntityException {
-
+    public UserRequest save(final UserRequest userRequest) throws InvalidEntityException {
         return entityManager.merge(userRequest);
     }
 
     @Override
-    public void delete(Long id) {
+    public void delete(final Long id) {
         entityManager.remove(find(id));
     }
 }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/VirAttrDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/VirAttrDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/VirAttrDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/VirAttrDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -19,9 +19,7 @@
 package org.apache.syncope.core.persistence.dao.impl;
 
 import java.util.List;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.AbstractVirAttr;
 import org.apache.syncope.core.persistence.dao.VirAttrDAO;
 import org.springframework.stereotype.Repository;
@@ -37,20 +35,17 @@ public class VirAttrDAOImpl extends Abst
 
     @Override
     public <T extends AbstractVirAttr> List<T> findAll(final Class<T> reference) {
-
-        Query query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e");
+        TypedQuery<T> query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e", reference);
         return query.getResultList();
     }
 
     @Override
     public <T extends AbstractVirAttr> T save(final T virtualAttribute) {
-
         return entityManager.merge(virtualAttribute);
     }
 
     @Override
     public <T extends AbstractVirAttr> void delete(final Long id, final Class<T> reference) {
-
         T virtualAttribute = find(id, reference);
         if (virtualAttribute == null) {
             return;
@@ -61,7 +56,6 @@ public class VirAttrDAOImpl extends Abst
 
     @Override
     public <T extends AbstractVirAttr> void delete(final T virtualAttribute) {
-
         if (virtualAttribute.getOwner() != null) {
             virtualAttribute.getOwner().removeVirtualAttribute(virtualAttribute);
         }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/VirSchemaDAOImpl.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/VirSchemaDAOImpl.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/VirSchemaDAOImpl.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/VirSchemaDAOImpl.java Tue Jan 22 13:33:22 2013
@@ -21,9 +21,7 @@ package org.apache.syncope.core.persiste
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
-import javax.persistence.Query;
-
+import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.beans.AbstractVirAttr;
 import org.apache.syncope.core.persistence.beans.AbstractVirSchema;
 import org.apache.syncope.core.persistence.beans.user.UMappingItem;
@@ -50,7 +48,7 @@ public class VirSchemaDAOImpl extends Ab
 
     @Override
     public <T extends AbstractVirSchema> List<T> findAll(final Class<T> reference) {
-        Query query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e");
+        TypedQuery<T> query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e", reference);
         return query.getResultList();
     }
 
@@ -71,7 +69,7 @@ public class VirSchemaDAOImpl extends Ab
 
         final Set<Long> virAttrIds = new HashSet<Long>(attributes.size());
 
-        Class attributeClass = null;
+        Class<? extends AbstractVirAttr> attributeClass = null;
 
         for (AbstractVirAttr attribute : attributes) {
             virAttrIds.add(attribute.getId());
@@ -91,8 +89,8 @@ public class VirSchemaDAOImpl extends Ab
     public <T extends AbstractVirAttr> List<T> getAttributes(final AbstractVirSchema virtualSchema,
             final Class<T> reference) {
 
-        Query query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e"
-                + " WHERE e.virtualSchema=:schema");
+        TypedQuery<T> query = entityManager.createQuery("SELECT e FROM " + reference.getSimpleName() + " e"
+                + " WHERE e.virtualSchema=:schema", reference);
         query.setParameter("schema", virtualSchema);
 
         return query.getResultList();

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/openjpa/JBossPersistenceMappingFactory.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/openjpa/JBossPersistenceMappingFactory.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/openjpa/JBossPersistenceMappingFactory.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/openjpa/JBossPersistenceMappingFactory.java Tue Jan 22 13:33:22 2013
@@ -36,7 +36,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.zip.ZipFile;
 import java.util.zip.ZipInputStream;
-
 import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
 import org.apache.openjpa.lib.meta.ClassArgParser;
@@ -56,6 +55,7 @@ import org.apache.openjpa.persistence.jd
 /**
  * Temporary class used while issue OPENJPA-2229 gets fixed and reaches mainstream distribution.
  */
+@SuppressWarnings("unchecked")
 public class JBossPersistenceMappingFactory extends PersistenceMappingFactory {
 
     private static final Localizer _loc = Localizer.forPackage(PersistenceMetaDataFactory.class);
@@ -93,7 +93,7 @@ public class JBossPersistenceMappingFact
     @Override
     protected Set<String> parsePersistentTypeNames(ClassLoader loader)
             throws IOException {
-        
+
         ClassArgParser cparser = newClassArgParser();
         String[] clss;
         Set<String> names = new HashSet<String>();

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java Tue Jan 22 13:33:22 2013
@@ -19,7 +19,6 @@
 package org.apache.syncope.core.policy;
 
 import java.util.List;
-
 import org.apache.syncope.common.types.AbstractPolicySpec;
 import org.apache.syncope.common.types.AccountPolicySpec;
 import org.apache.syncope.common.types.PasswordPolicySpec;
@@ -38,72 +37,70 @@ public class PolicyEvaluator {
     /**
      * Logger.
      */
-    protected static final Logger LOG = LoggerFactory.getLogger(PolicyEvaluator.class);
+    private static final Logger LOG = LoggerFactory.getLogger(PolicyEvaluator.class);
 
+    @SuppressWarnings("unchecked")
     public <T extends AbstractPolicySpec> T evaluate(final Policy policy, final AbstractAttributable attributable) {
+        if (policy == null) {
+            return null;
+        }
 
         T result = null;
-
-        if (policy != null) {
-            AbstractAttr attribute;
-            List<String> values;
-
-            switch (policy.getType()) {
-                case PASSWORD:
-                case GLOBAL_PASSWORD:
-                    final PasswordPolicySpec ppSpec = policy.getSpecification();
-                    final PasswordPolicySpec evaluatedPPSpec = new PasswordPolicySpec();
-
-                    BeanUtils.copyProperties(ppSpec, evaluatedPPSpec, new String[]{"schemasNotPermitted"});
-
-                    for (String schema : ppSpec.getSchemasNotPermitted()) {
-                        attribute = attributable.getAttribute(schema);
-                        if (attribute != null) {
-                            values = attribute.getValuesAsStrings();
-                            if (values != null && !values.isEmpty()) {
-                                evaluatedPPSpec.getWordsNotPermitted().add(values.get(0));
-                            }
+        switch (policy.getType()) {
+            case PASSWORD:
+            case GLOBAL_PASSWORD:
+                final PasswordPolicySpec ppSpec = policy.getSpecification();
+                final PasswordPolicySpec evaluatedPPSpec = new PasswordPolicySpec();
+
+                BeanUtils.copyProperties(ppSpec, evaluatedPPSpec, new String[]{"schemasNotPermitted"});
+
+                for (String schema : ppSpec.getSchemasNotPermitted()) {
+                    AbstractAttr attribute = attributable.getAttribute(schema);
+                    if (attribute != null) {
+                        List<String> values = attribute.getValuesAsStrings();
+                        if (values != null && !values.isEmpty()) {
+                            evaluatedPPSpec.getWordsNotPermitted().add(values.get(0));
                         }
                     }
+                }
 
-                    // Password history verification and update
+                // Password history verification and update
 
-                    if (!(attributable instanceof SyncopeUser)) {
-                        LOG.error("Cannot check previous passwords. attributable is not a user object: {}",
-                                attributable.getClass().getName());
-                        result = (T) evaluatedPPSpec;
-                        break;
-                    }
-                    SyncopeUser user = (SyncopeUser) attributable;
-                    if (user.verifyPasswordHistory(user.getClearPassword(), ppSpec.getHistoryLength())) {
-                        evaluatedPPSpec.getWordsNotPermitted().add(user.getClearPassword());
-                    }
+                if (!(attributable instanceof SyncopeUser)) {
+                    LOG.error("Cannot check previous passwords. attributable is not a user object: {}",
+                            attributable.getClass().getName());
                     result = (T) evaluatedPPSpec;
                     break;
-                case ACCOUNT:
-                case GLOBAL_ACCOUNT:
-                    final AccountPolicySpec spec = policy.getSpecification();
-                    final AccountPolicySpec accountPolicy = new AccountPolicySpec();
-
-                    BeanUtils.copyProperties(spec, accountPolicy, new String[]{"schemasNotPermitted"});
-
-                    for (String schema : spec.getSchemasNotPermitted()) {
-                        attribute = attributable.getAttribute(schema);
-                        if (attribute != null) {
-                            values = attribute.getValuesAsStrings();
-                            if (values != null && !values.isEmpty()) {
-                                accountPolicy.getWordsNotPermitted().add(values.get(0));
-                            }
+                }
+                SyncopeUser user = (SyncopeUser) attributable;
+                if (user.verifyPasswordHistory(user.getClearPassword(), ppSpec.getHistoryLength())) {
+                    evaluatedPPSpec.getWordsNotPermitted().add(user.getClearPassword());
+                }
+                result = (T) evaluatedPPSpec;
+                break;
+            case ACCOUNT:
+            case GLOBAL_ACCOUNT:
+                final AccountPolicySpec spec = policy.getSpecification();
+                final AccountPolicySpec accountPolicy = new AccountPolicySpec();
+
+                BeanUtils.copyProperties(spec, accountPolicy, new String[]{"schemasNotPermitted"});
+
+                for (String schema : spec.getSchemasNotPermitted()) {
+                    AbstractAttr attribute = attributable.getAttribute(schema);
+                    if (attribute != null) {
+                        List<String> values = attribute.getValuesAsStrings();
+                        if (values != null && !values.isEmpty()) {
+                            accountPolicy.getWordsNotPermitted().add(values.get(0));
                         }
                     }
+                }
 
-                    result = (T) accountPolicy;
-                    break;
-                case SYNC:
-                case GLOBAL_SYNC:
-                default:
-                    result = null;
-            }
+                result = (T) accountPolicy;
+                break;
+            case SYNC:
+            case GLOBAL_SYNC:
+            default:
+                result = null;
         }
 
         return result;

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/ConnectorFacadeProxy.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/ConnectorFacadeProxy.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/ConnectorFacadeProxy.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/ConnectorFacadeProxy.java Tue Jan 22 13:33:22 2013
@@ -25,7 +25,6 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import org.apache.syncope.common.types.ConnConfProperty;
 import org.apache.syncope.common.types.ConnectorCapability;
 import org.apache.syncope.common.types.PropagationMode;

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java Tue Jan 22 13:33:22 2013
@@ -179,7 +179,7 @@ public class PropagationManager {
             final PropagationByResource propByRes, final Set<String> syncResourceNames) {
 
         if (propByRes == null || propByRes.isEmpty()) {
-            return Collections.EMPTY_LIST;
+            return Collections.<PropagationTask>emptyList();
         }
 
         if (syncResourceNames != null) {
@@ -318,9 +318,9 @@ public class PropagationManager {
                 ? userDataBinder : roleDataBinder;
 
         PropagationByResource localPropByRes = binder.fillVirtual(attributable, vAttrsToBeRemoved == null
-                ? Collections.EMPTY_SET
+                ? Collections.<String>emptySet()
                 : vAttrsToBeRemoved, vAttrsToBeUpdated == null
-                ? Collections.EMPTY_SET
+                ? Collections.<AttributeMod>emptySet()
                 : vAttrsToBeUpdated, AttributableUtil.getInstance(attributable));
 
         if (propByRes == null || propByRes.isEmpty()) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/report/ReportJob.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/report/ReportJob.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/report/ReportJob.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/report/ReportJob.java Tue Jan 22 13:33:22 2013
@@ -30,13 +30,11 @@ import java.util.Date;
 import java.util.zip.Deflater;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
-
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.sax.SAXTransformerFactory;
 import javax.xml.transform.sax.TransformerHandler;
 import javax.xml.transform.stream.StreamResult;
-
 import org.apache.syncope.common.report.ReportletConf;
 import org.apache.syncope.common.types.ReportExecStatus;
 import org.apache.syncope.core.persistence.beans.Report;
@@ -58,6 +56,7 @@ import org.xml.sax.helpers.AttributesImp
 /**
  * Quartz job for executing a given report.
  */
+@SuppressWarnings("unchecked")
 @DisallowConcurrentExecution
 public class ReportJob implements Job {
 
@@ -98,6 +97,7 @@ public class ReportJob implements Job {
         this.reportId = reportId;
     }
 
+    @SuppressWarnings("rawtypes")
     @Override
     public void execute(final JobExecutionContext context) throws JobExecutionException {
         Report report = reportDAO.find(reportId);

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/DerivedSchemaController.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/DerivedSchemaController.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/DerivedSchemaController.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/DerivedSchemaController.java Tue Jan 22 13:33:22 2013
@@ -20,9 +20,7 @@ package org.apache.syncope.core.rest.con
 
 import java.util.ArrayList;
 import java.util.List;
-
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.syncope.common.to.DerivedSchemaTO;
 import org.apache.syncope.common.types.AuditElements.Category;
 import org.apache.syncope.common.types.AuditElements.Result;
@@ -32,6 +30,7 @@ import org.apache.syncope.core.audit.Aud
 import org.apache.syncope.core.persistence.beans.AbstractDerSchema;
 import org.apache.syncope.core.persistence.dao.DerSchemaDAO;
 import org.apache.syncope.core.rest.data.DerivedSchemaDataBinder;
+import org.apache.syncope.core.util.AttributableUtil;
 import org.apache.syncope.core.util.NotFoundException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -75,26 +74,26 @@ public class DerivedSchemaController ext
     public DerivedSchemaTO delete(@PathVariable("kind") final String kind,
             @PathVariable("schema") final String derivedSchemaName) throws NotFoundException {
 
-        Class reference = getAttributableUtil(kind).derSchemaClass();
+        Class<? extends AbstractDerSchema> reference = getAttributableUtil(kind).derSchemaClass();
         AbstractDerSchema derivedSchema = derivedSchemaDAO.find(derivedSchemaName, reference);
         if (derivedSchema == null) {
             throw new NotFoundException("Derived schema '" + derivedSchemaName + "'");
         }
-        
+
         DerivedSchemaTO schemaToDelete = derivedSchemaDataBinder.getDerivedSchemaTO(derivedSchema);
 
         derivedSchemaDAO.delete(derivedSchemaName, getAttributableUtil(kind));
 
         auditManager.audit(Category.schema, SchemaSubCategory.deleteDerived, Result.success,
                 "Successfully deleted derived schema: " + kind + "/" + derivedSchema.getName());
-        
+
         return schemaToDelete;
     }
 
     @RequestMapping(method = RequestMethod.GET, value = "/{kind}/list")
     public List<DerivedSchemaTO> list(@PathVariable("kind") final String kind) {
-        Class reference = getAttributableUtil(kind).derSchemaClass();
-        List<AbstractDerSchema> derivedAttributeSchemas = derivedSchemaDAO.findAll(reference);
+        AttributableUtil attributableUtil = getAttributableUtil(kind);
+        List<AbstractDerSchema> derivedAttributeSchemas = derivedSchemaDAO.findAll(attributableUtil.derSchemaClass());
 
         List<DerivedSchemaTO> derivedSchemaTOs = new ArrayList<DerivedSchemaTO>(derivedAttributeSchemas.size());
         for (AbstractDerSchema derivedSchema : derivedAttributeSchemas) {
@@ -112,7 +111,7 @@ public class DerivedSchemaController ext
     public DerivedSchemaTO read(@PathVariable("kind") final String kind,
             @PathVariable("derivedSchema") final String derivedSchemaName) throws NotFoundException {
 
-        Class reference = getAttributableUtil(kind).derSchemaClass();
+        Class<? extends AbstractDerSchema> reference = getAttributableUtil(kind).derSchemaClass();
         AbstractDerSchema derivedSchema = derivedSchemaDAO.find(derivedSchemaName, reference);
         if (derivedSchema == null) {
             throw new NotFoundException("Derived schema '" + derivedSchemaName + "'");
@@ -129,7 +128,7 @@ public class DerivedSchemaController ext
     public DerivedSchemaTO update(@RequestBody final DerivedSchemaTO derivedSchemaTO,
             @PathVariable("kind") final String kind) throws NotFoundException {
 
-        Class reference = getAttributableUtil(kind).derSchemaClass();
+        Class<? extends AbstractDerSchema> reference = getAttributableUtil(kind).derSchemaClass();
         AbstractDerSchema derivedSchema = derivedSchemaDAO.find(derivedSchemaTO.getName(), reference);
         if (derivedSchema == null) {
             throw new NotFoundException("Derived schema '" + derivedSchemaTO.getName() + "'");

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java Tue Jan 22 13:33:22 2013
@@ -22,9 +22,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
-
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.syncope.common.mod.RoleMod;
 import org.apache.syncope.common.search.NodeCond;
 import org.apache.syncope.common.to.PropagationTO;
@@ -133,7 +131,7 @@ public class RoleController extends Abst
         Set<Long> ownedRoleIds;
         SyncopeUser authUser = userDAO.find(SecurityContextHolder.getContext().getAuthentication().getName());
         if (authUser == null) {
-            ownedRoleIds = Collections.EMPTY_SET;
+            ownedRoleIds = Collections.<Long>emptySet();
         } else {
             ownedRoleIds = authUser.getRoleIds();
         }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/SchemaController.java Tue Jan 22 13:33:22 2013
@@ -20,9 +20,7 @@ package org.apache.syncope.core.rest.con
 
 import java.util.ArrayList;
 import java.util.List;
-
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.syncope.common.to.SchemaTO;
 import org.apache.syncope.common.types.AuditElements.Category;
 import org.apache.syncope.common.types.AuditElements.Result;
@@ -75,7 +73,7 @@ public class SchemaController extends Ab
     public SchemaTO delete(@PathVariable("kind") final String kind, @PathVariable("schema") final String schemaName)
             throws NotFoundException {
 
-        Class reference = getAttributableUtil(kind).schemaClass();
+        Class<? extends AbstractSchema> reference = getAttributableUtil(kind).schemaClass();
         AbstractSchema schema = schemaDAO.find(schemaName, reference);
         if (schema == null) {
             throw new NotFoundException("Schema '" + schemaName + "'");

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/VirtualSchemaController.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/VirtualSchemaController.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/VirtualSchemaController.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/VirtualSchemaController.java Tue Jan 22 13:33:22 2013
@@ -20,9 +20,7 @@ package org.apache.syncope.core.rest.con
 
 import java.util.ArrayList;
 import java.util.List;
-
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.syncope.common.to.VirtualSchemaTO;
 import org.apache.syncope.common.types.AuditElements.Category;
 import org.apache.syncope.common.types.AuditElements.Result;
@@ -76,7 +74,7 @@ public class VirtualSchemaController ext
     public VirtualSchemaTO delete(@PathVariable("kind") final String kind,
             @PathVariable("schema") final String virtualSchemaName) throws NotFoundException {
 
-        Class reference = getAttributableUtil(kind).virSchemaClass();
+        Class<? extends AbstractVirSchema> reference = getAttributableUtil(kind).virSchemaClass();
         AbstractVirSchema virtualSchema = virtualSchemaDAO.find(virtualSchemaName, reference);
         if (virtualSchema == null) {
             throw new NotFoundException("Virtual schema '" + virtualSchemaName + "'");
@@ -92,8 +90,8 @@ public class VirtualSchemaController ext
 
     @RequestMapping(method = RequestMethod.GET, value = "/{kind}/list")
     public List<VirtualSchemaTO> list(@PathVariable("kind") final String kind) {
-        Class reference = getAttributableUtil(kind).virSchemaClass();
-        List<AbstractVirSchema> virtualAttributeSchemas = virtualSchemaDAO.findAll(reference);
+        Class<? extends AbstractVirSchema> reference = getAttributableUtil(kind).virSchemaClass();
+        List<? extends AbstractVirSchema> virtualAttributeSchemas = virtualSchemaDAO.findAll(reference);
 
         List<VirtualSchemaTO> virtualSchemaTOs = new ArrayList<VirtualSchemaTO>(virtualAttributeSchemas.size());
         for (AbstractVirSchema virtualSchema : virtualAttributeSchemas) {
@@ -111,7 +109,7 @@ public class VirtualSchemaController ext
     public VirtualSchemaTO read(@PathVariable("kind") final String kind,
             @PathVariable("virtualSchema") final String virtualSchemaName) throws NotFoundException {
 
-        Class reference = getAttributableUtil(kind).virSchemaClass();
+        Class<? extends AbstractVirSchema> reference = getAttributableUtil(kind).virSchemaClass();
         AbstractVirSchema virtualSchema = virtualSchemaDAO.find(virtualSchemaName, reference);
         if (virtualSchema == null) {
             throw new NotFoundException("Virtual schema '" + virtualSchemaName + "'");
@@ -128,7 +126,7 @@ public class VirtualSchemaController ext
     public VirtualSchemaTO update(@RequestBody final VirtualSchemaTO virtualSchemaTO,
             @PathVariable("kind") final String kind) throws SyncopeClientCompositeErrorException, NotFoundException {
 
-        Class reference = getAttributableUtil(kind).virSchemaClass();
+        Class<? extends AbstractVirSchema> reference = getAttributableUtil(kind).virSchemaClass();
         AbstractVirSchema virtualSchema = virtualSchemaDAO.find(virtualSchemaTO.getName(), reference);
         if (virtualSchema == null) {
             throw new NotFoundException("Virtual schema is null");

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java Tue Jan 22 13:33:22 2013
@@ -25,9 +25,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
-
 import javax.validation.ValidationException;
-
 import org.apache.commons.jexl2.JexlContext;
 import org.apache.commons.jexl2.MapContext;
 import org.apache.commons.lang.StringUtils;
@@ -183,7 +181,7 @@ public abstract class AbstractAttributab
         List<String> valuesProvided = schema.isMultivalue()
                 ? values
                 : (values.isEmpty()
-                ? Collections.EMPTY_LIST
+                ? Collections.<String>emptyList()
                 : Collections.singletonList(values.iterator().next()));
 
         for (String value : valuesProvided) {
@@ -707,7 +705,8 @@ public abstract class AbstractAttributab
     protected void fillTO(final AbstractAttributableTO abstractAttributableTO,
             final Collection<? extends AbstractAttr> attributes,
             final Collection<? extends AbstractDerAttr> derivedAttributes,
-            final Collection<? extends AbstractVirAttr> virtualAttributes, final Collection<ExternalResource> resources) {
+            final Collection<? extends AbstractVirAttr> virtualAttributes,
+            final Collection<ExternalResource> resources) {
 
         AttributeTO attributeTO;
         for (AbstractAttr attribute : attributes) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/PolicyDataBinder.java Tue Jan 22 13:33:22 2013
@@ -36,9 +36,11 @@ public class PolicyDataBinder {
 
     /**
      * Get policy TO from policy bean.
+     *
      * @param policy bean.
      * @return policy TO.
      */
+    @SuppressWarnings("unchecked")
     public <T extends PolicyTO> T getPolicyTO(final Policy policy) {
         final PolicyTO policyTO;
 
@@ -48,6 +50,8 @@ public class PolicyDataBinder {
             case GLOBAL_ACCOUNT:
             case GLOBAL_SYNC:
                 isGlobal = Boolean.TRUE;
+                break;
+
             default:
         }
 
@@ -55,7 +59,8 @@ public class PolicyDataBinder {
             case GLOBAL_PASSWORD:
             case PASSWORD:
                 if (!(policy.getSpecification() instanceof PasswordPolicySpec)) {
-                    throw new ClassCastException("policy is expected to be typed PasswordPolicySpec: " + policy.getSpecification().getClass().getName());
+                    throw new ClassCastException("policy is expected to be typed PasswordPolicySpec: " + policy.
+                            getSpecification().getClass().getName());
                 }
                 policyTO = new PasswordPolicyTO(isGlobal);
                 ((PasswordPolicyTO) policyTO).setSpecification((PasswordPolicySpec) policy.getSpecification());
@@ -64,7 +69,8 @@ public class PolicyDataBinder {
             case GLOBAL_ACCOUNT:
             case ACCOUNT:
                 if (!(policy.getSpecification() instanceof AccountPolicySpec)) {
-                    throw new ClassCastException("policy is expected to be typed AccountPolicySpec: " + policy.getSpecification().getClass().getName());
+                    throw new ClassCastException("policy is expected to be typed AccountPolicySpec: " + policy.
+                            getSpecification().getClass().getName());
                 }
                 policyTO = new AccountPolicyTO(isGlobal);
                 ((AccountPolicyTO) policyTO).setSpecification((AccountPolicySpec) policy.getSpecification());
@@ -74,7 +80,8 @@ public class PolicyDataBinder {
             case SYNC:
             default:
                 if (!(policy.getSpecification() instanceof SyncPolicySpec)) {
-                    throw new ClassCastException("policy is expected to be typed SyncPolicySpec: " + policy.getSpecification().getClass().getName());
+                    throw new ClassCastException("policy is expected to be typed SyncPolicySpec: " + policy.
+                            getSpecification().getClass().getName());
                 }
                 policyTO = new SyncPolicyTO(isGlobal);
                 ((SyncPolicyTO) policyTO).setSpecification((SyncPolicySpec) policy.getSpecification());
@@ -86,18 +93,21 @@ public class PolicyDataBinder {
         return (T) policyTO;
     }
 
+    @SuppressWarnings("unchecked")
     public <T extends Policy> T getPolicy(T policy, final PolicyTO policyTO) {
-
         if (policy != null && policy.getType() != policyTO.getType()) {
-            throw new IllegalArgumentException(String.format("Cannot update %s from %s", policy.getType(), policyTO.getType()));
+            throw new IllegalArgumentException(String.format("Cannot update %s from %s", policy.getType(), policyTO.
+                    getType()));
         }
-        
+
         boolean isGlobal = Boolean.FALSE;
         switch (policyTO.getType()) {
             case GLOBAL_PASSWORD:
             case GLOBAL_ACCOUNT:
             case GLOBAL_SYNC:
                 isGlobal = Boolean.TRUE;
+                break;
+
             default:
         }
 
@@ -105,7 +115,8 @@ public class PolicyDataBinder {
             case GLOBAL_PASSWORD:
             case PASSWORD:
                 if (!(policyTO instanceof PasswordPolicyTO)) {
-                    throw new ClassCastException("policyTO is expected to be typed PasswordPolicyTO: " + policyTO.getClass().getName());
+                    throw new ClassCastException("policyTO is expected to be typed PasswordPolicyTO: " + policyTO.
+                            getClass().getName());
                 }
                 if (policy == null) {
                     policy = (T) new PasswordPolicy(isGlobal);
@@ -116,7 +127,8 @@ public class PolicyDataBinder {
             case GLOBAL_ACCOUNT:
             case ACCOUNT:
                 if (!(policyTO instanceof AccountPolicyTO)) {
-                    throw new ClassCastException("policyTO is expected to be typed AccountPolicyTO: " + policyTO.getClass().getName());
+                    throw new ClassCastException("policyTO is expected to be typed AccountPolicyTO: " + policyTO.
+                            getClass().getName());
                 }
                 if (policy == null) {
                     policy = (T) new AccountPolicy(isGlobal);
@@ -128,7 +140,8 @@ public class PolicyDataBinder {
             case SYNC:
             default:
                 if (!(policyTO instanceof SyncPolicyTO)) {
-                    throw new ClassCastException("policyTO is expected to be typed SyncPolicyTO: " + policyTO.getClass().getName());
+                    throw new ClassCastException("policyTO is expected to be typed SyncPolicyTO: "
+                            + policyTO.getClass().getName());
                 }
                 if (policy == null) {
                     policy = (T) new SyncPolicy(isGlobal);

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java Tue Jan 22 13:33:22 2013
@@ -20,7 +20,6 @@ package org.apache.syncope.core.rest.dat
 
 import java.util.HashSet;
 import java.util.Set;
-
 import org.apache.syncope.common.report.ReportletConf;
 import org.apache.syncope.common.to.ReportExecTO;
 import org.apache.syncope.common.to.ReportTO;
@@ -64,6 +63,7 @@ public class ReportDataBinder {
     @Autowired
     private ImplementationClassNamesLoader classNamesLoader;
 
+    @SuppressWarnings("unchecked")
     public Set<Class<Reportlet>> getAllReportletClasses() {
         Set<Class<Reportlet>> reportletClasses = new HashSet<Class<Reportlet>>();
 

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/RoleDataBinder.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/RoleDataBinder.java?rev=1436910&r1=1436909&r2=1436910&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/RoleDataBinder.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/RoleDataBinder.java Tue Jan 22 13:33:22 2013
@@ -20,7 +20,6 @@ package org.apache.syncope.core.rest.dat
 
 import java.util.List;
 import java.util.Set;
-
 import org.apache.syncope.common.mod.RoleMod;
 import org.apache.syncope.common.to.RoleTO;
 import org.apache.syncope.common.types.AttributableType;
@@ -260,6 +259,7 @@ public class RoleDataBinder extends Abst
         return propByRes;
     }
 
+    @SuppressWarnings("unchecked")
     @Transactional(readOnly = true)
     public RoleTO getRoleTO(final SyncopeRole role) {
         connObjectUtil.retrieveVirAttrValues(role, AttributableUtil.getInstance(AttributableType.ROLE));