ImportTypeSummary importObject( String userUid, T object, ImportOptions importOptions );
ImportSummary importMetaData( String userUid, MetaData metaData );
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ObjectBridge.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ObjectBridge.java 2015-01-19 09:19:46 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ObjectBridge.java 2015-09-24 05:44:40 +0000
@@ -32,7 +32,7 @@
/**
* Acts as a bridge between the importer and the persistence/cache layer.
- *
+ *
* The flag {@code writeEnabled} is used to indicate if writing to the persistence layer
* is enabled or not.
*
@@ -40,8 +40,9 @@
*/
public interface ObjectBridge
{
- void init(); // FIXME rename or remove.. @PostConstruct worked badly here, some kind of workaround would be nice
- void destroy(); // FIXME
+ void init( Set preheatClasses );
+
+ void destroy();
/**
* Save object. Will save to persistence layer if {@code writeEnabled} is {@code true}.
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java 2015-09-13 21:54:23 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java 2015-09-24 05:44:40 +0000
@@ -42,6 +42,7 @@
import org.hisp.dhis.common.DataDimensionItem;
import org.hisp.dhis.common.IdentifiableObject;
import org.hisp.dhis.common.NameableObject;
+import org.hisp.dhis.constant.Constant;
import org.hisp.dhis.dashboard.DashboardItem;
import org.hisp.dhis.dataelement.CategoryOptionGroupSet;
import org.hisp.dhis.dataelement.DataElementCategoryDimension;
@@ -607,7 +608,8 @@
&& !DataElementCategoryOption.class.isAssignableFrom( object.getClass() )
&& !CategoryOptionGroupSet.class.isAssignableFrom( object.getClass() )
&& !DashboardItem.class.isAssignableFrom( object.getClass() )
- && !ProgramStageDataElement.class.isAssignableFrom( object.getClass() ) )
+ && !ProgramStageDataElement.class.isAssignableFrom( object.getClass() )
+ && !Constant.class.isAssignableFrom( object.getClass() ) )
{
conflict = new ImportConflict( ImportUtils.getDisplayName( object ), "Empty shortName for object " + object );
}
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java 2015-09-17 15:49:41 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java 2015-09-24 05:44:40 +0000
@@ -28,19 +28,13 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.io.IOException;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
+import com.google.common.base.Enums;
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.collect.Lists;
import org.hisp.dhis.common.BaseIdentifiableObject;
import org.hisp.dhis.common.IdentifiableObject;
import org.hisp.dhis.common.IdentifiableObjectManager;
@@ -96,13 +90,18 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.dataformat.xml.XmlMapper;
-import com.google.common.base.Enums;
-import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
-import com.google.common.collect.Lists;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* @author Morten Olav Hansen
@@ -110,7 +109,7 @@
public abstract class AbstractCrudController
{
protected static final WebOptions NO_WEB_OPTIONS = new WebOptions( new HashMap<>() );
-
+
//--------------------------------------------------------------------------
// Dependencies
//--------------------------------------------------------------------------
@@ -318,8 +317,11 @@
property.getSetterMethod().invoke( persistedObject, value );
}
- ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), persistedObject,
- ImportStrategy.UPDATE, MergeStrategy.MERGE );
+ ImportOptions importOptions = new ImportOptions();
+ importOptions.setStrategy( ImportStrategy.UPDATE );
+ importOptions.setMergeStrategy( MergeStrategy.MERGE );
+
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), persistedObject, importOptions );
webMessageService.send( WebMessageUtils.importTypeSummary( importTypeSummary ), response, request );
}
@@ -343,16 +345,7 @@
private List getPersistedProperties( List properties )
{
List persistedProperties = new ArrayList<>();
-
- Schema schema = getSchema();
-
- for ( String property : properties )
- {
- if ( schema.havePersistedProperty( property ) )
- {
- persistedProperties.add( property );
- }
- }
+ persistedProperties.addAll( properties.stream().filter( getSchema()::havePersistedProperty ).collect( Collectors.toList() ) );
return persistedProperties;
}
@@ -399,8 +392,10 @@
property.getSetterMethod().invoke( persistedObject, value );
- ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), persistedObject,
- ImportStrategy.UPDATE, MergeStrategy.MERGE );
+ ImportOptions importOptions = new ImportOptions();
+ importOptions.setStrategy( ImportStrategy.UPDATE );
+ importOptions.setMergeStrategy( MergeStrategy.MERGE );
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), persistedObject, importOptions );
webMessageService.send( WebMessageUtils.importTypeSummary( importTypeSummary ), response, request );
}
@@ -500,8 +495,8 @@
preCreateEntity( parsed );
- ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed,
- ImportStrategy.CREATE, importOptions.getMergeStrategy() );
+ importOptions.setStrategy( ImportStrategy.CREATE );
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, importOptions );
if ( ImportStatus.SUCCESS.equals( importTypeSummary.getStatus() ) )
{
@@ -530,8 +525,8 @@
preCreateEntity( parsed );
- ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed,
- ImportStrategy.CREATE, importOptions.getMergeStrategy() );
+ importOptions.setStrategy( ImportStrategy.CREATE );
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, importOptions );
if ( ImportStatus.SUCCESS.equals( importTypeSummary.getStatus() ) )
{
@@ -571,8 +566,8 @@
preUpdateEntity( parsed );
- ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed,
- ImportStrategy.UPDATE, importOptions.getMergeStrategy() );
+ importOptions.setStrategy( ImportStrategy.UPDATE );
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, importOptions );
if ( ImportStatus.SUCCESS.equals( importTypeSummary.getStatus() ) )
{
@@ -602,8 +597,8 @@
preUpdateEntity( parsed );
- ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed,
- ImportStrategy.UPDATE, importOptions.getMergeStrategy() );
+ importOptions.setStrategy( ImportStrategy.UPDATE );
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, importOptions );
if ( ImportStatus.SUCCESS.equals( importTypeSummary.getStatus() ) )
{
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserController.java 2015-09-17 15:49:41 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserController.java 2015-09-24 05:44:40 +0000
@@ -28,16 +28,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.hisp.dhis.common.IdentifiableObjectUtils.getUids;
-
-import java.io.IOException;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.google.common.base.Optional;
+import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import org.hisp.dhis.common.CodeGenerator;
import org.hisp.dhis.common.IdentifiableObjectUtils;
@@ -77,8 +69,14 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-import com.google.common.base.Optional;
-import com.google.common.collect.Lists;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import static org.hisp.dhis.common.IdentifiableObjectUtils.getUids;
/**
* @author Morten Olav Hansen
@@ -382,17 +380,17 @@
throw new WebMessageException( WebMessageUtils.conflict( "You must have permissions to create user, or ability to manage at least one user group for the user." ) );
}
- ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed,
- ImportStrategy.UPDATE, importOptions.getMergeStrategy() );
+ importOptions.setStrategy( ImportStrategy.UPDATE );
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, importOptions );
- if ( summary.isStatus( ImportStatus.SUCCESS ) && summary.getImportCount().getUpdated() == 1 )
+ if ( importTypeSummary.isStatus( ImportStatus.SUCCESS ) && importTypeSummary.getImportCount().getUpdated() == 1 )
{
User user = userService.getUser( pvUid );
userGroupService.updateUserGroups( user, IdentifiableObjectUtils.getUids( parsed.getGroups() ) );
}
- renderService.toXml( response.getOutputStream(), summary );
+ renderService.toXml( response.getOutputStream(), importTypeSummary );
}
@Override
@@ -419,17 +417,17 @@
throw new WebMessageException( WebMessageUtils.conflict( "You must have permissions to create user, or ability to manage at least one user group for the user." ) );
}
- ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed,
- ImportStrategy.UPDATE, importOptions.getMergeStrategy() );
+ importOptions.setStrategy( ImportStrategy.UPDATE );
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, importOptions );
- if ( summary.isStatus( ImportStatus.SUCCESS ) && summary.getImportCount().getUpdated() == 1 )
+ if ( importTypeSummary.isStatus( ImportStatus.SUCCESS ) && importTypeSummary.getImportCount().getUpdated() == 1 )
{
User user = userService.getUser( pvUid );
userGroupService.updateUserGroups( user, IdentifiableObjectUtils.getUids( parsed.getGroups() ) );
}
- renderService.toJson( response.getOutputStream(), summary );
+ renderService.toJson( response.getOutputStream(), importTypeSummary );
}
// -------------------------------------------------------------------------
@@ -481,15 +479,17 @@
user.getUserCredentials().getCatDimensionConstraints().addAll(
currentUserService.getCurrentUser().getUserCredentials().getCatDimensionConstraints() );
- ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), user,
- ImportStrategy.CREATE, MergeStrategy.MERGE_IF_NOT_NULL );
+ ImportOptions importOptions = new ImportOptions();
+ importOptions.setStrategy( ImportStrategy.CREATE );
+ importOptions.setMergeStrategy( MergeStrategy.MERGE );
+ ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), user, importOptions );
- if ( summary.isStatus( ImportStatus.SUCCESS ) && summary.getImportCount().getImported() == 1 )
+ if ( importTypeSummary.isStatus( ImportStatus.SUCCESS ) && importTypeSummary.getImportCount().getImported() == 1 )
{
userGroupService.addUserToGroups( user, IdentifiableObjectUtils.getUids( user.getGroups() ) );
}
- return summary;
+ return importTypeSummary;
}
/**