[CCM][UPDATE]
- adds new import xml files, where roles are not duplicated from export - corrects idResolver implementation of Group, User, Party, Role, and Category - adds correct working import of Groups, Users, GroupsMemberships, Roles, RoleMemberships git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4801 8810af33-2d31-482b-a856-94f89814c4dfccm-docs
parent
7db179f090
commit
2cefc0c1d2
|
|
@ -164,7 +164,7 @@ public class Category extends CcmObject implements Serializable, Portable {
|
||||||
*/
|
*/
|
||||||
@Column(name = "NAME", nullable = false)
|
@Column(name = "NAME", nullable = false)
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@Pattern(regexp = "[\\w-.]*")
|
// @Pattern(regexp = "[\\w-.]*")
|
||||||
@XmlElement(name = "name", namespace = CAT_XML_NS)
|
@XmlElement(name = "name", namespace = CAT_XML_NS)
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,9 @@ package org.libreccm.categorization;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
||||||
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
||||||
|
|
@ -30,8 +30,6 @@ import javax.inject.Inject;
|
||||||
*/
|
*/
|
||||||
@RequestScoped
|
@RequestScoped
|
||||||
public class CategoryIdResolver implements ObjectIdResolver {
|
public class CategoryIdResolver implements ObjectIdResolver {
|
||||||
@Inject
|
|
||||||
private CategoryRepository categoryRepository;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void bindItem(ObjectIdGenerator.IdKey idKey,
|
public void bindItem(ObjectIdGenerator.IdKey idKey,
|
||||||
|
|
@ -43,7 +41,15 @@ public class CategoryIdResolver implements ObjectIdResolver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object resolveId(ObjectIdGenerator.IdKey id) {
|
public Object resolveId(ObjectIdGenerator.IdKey id) {
|
||||||
return categoryRepository.findByUuid(id.key.toString());
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
final CategoryRepository categoryRepository = cdiUtil
|
||||||
|
.findBean(CategoryRepository.class);
|
||||||
|
|
||||||
|
return categoryRepository
|
||||||
|
.findByUuid(id.key.toString())
|
||||||
|
.orElseThrow(() -> new IllegalArgumentException(String
|
||||||
|
.format("No Category with uuid %s in the database.",
|
||||||
|
id.key.toString())));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,6 @@ public class CategoryRepository extends AbstractEntityRepository<Long, Category>
|
||||||
*
|
*
|
||||||
* @return An optional either with the found item or empty
|
* @return An optional either with the found item or empty
|
||||||
*/
|
*/
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
|
||||||
public Optional<Category> findByUuid(final String uuid) {
|
public Optional<Category> findByUuid(final String uuid) {
|
||||||
final TypedQuery<Category> query = getEntityManager().
|
final TypedQuery<Category> query = getEntityManager().
|
||||||
createNamedQuery("Category.findByUuid", Category.class);
|
createNamedQuery("Category.findByUuid", Category.class);
|
||||||
|
|
|
||||||
|
|
@ -20,16 +20,13 @@ package org.libreccm.security;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
||||||
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
||||||
* @version created on 3/23/17
|
* @version created on 3/23/17
|
||||||
*/
|
*/
|
||||||
public class GroupIdResolver implements ObjectIdResolver {
|
public class GroupIdResolver implements ObjectIdResolver {
|
||||||
@Inject
|
|
||||||
private GroupRepository groupRepository;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void bindItem(final ObjectIdGenerator.IdKey id,
|
public void bindItem(final ObjectIdGenerator.IdKey id,
|
||||||
|
|
@ -41,7 +38,15 @@ public class GroupIdResolver implements ObjectIdResolver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object resolveId(final ObjectIdGenerator.IdKey id) {
|
public Object resolveId(final ObjectIdGenerator.IdKey id) {
|
||||||
return groupRepository.findByName(id.key.toString());
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
final GroupRepository groupRepo = cdiUtil
|
||||||
|
.findBean(GroupRepository.class);
|
||||||
|
|
||||||
|
return groupRepo
|
||||||
|
.findByName(id.key.toString())
|
||||||
|
.orElseThrow(() -> new IllegalArgumentException(String
|
||||||
|
.format("No Group with name %s in the database.",
|
||||||
|
id.key.toString())));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -20,16 +20,13 @@ package org.libreccm.security;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
||||||
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
||||||
* @version created on 3/23/17
|
* @version created on 3/23/17
|
||||||
*/
|
*/
|
||||||
public class PartyIdResolver implements ObjectIdResolver {
|
public class PartyIdResolver implements ObjectIdResolver {
|
||||||
@Inject
|
|
||||||
private PartyRepository partyRepository;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void bindItem(final ObjectIdGenerator.IdKey id,
|
public void bindItem(final ObjectIdGenerator.IdKey id,
|
||||||
|
|
@ -41,7 +38,15 @@ public class PartyIdResolver implements ObjectIdResolver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object resolveId(final ObjectIdGenerator.IdKey id) {
|
public Object resolveId(final ObjectIdGenerator.IdKey id) {
|
||||||
return partyRepository.findByName(id.key.toString());
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
final PartyRepository partyRepository = cdiUtil
|
||||||
|
.findBean(PartyRepository.class);
|
||||||
|
|
||||||
|
return partyRepository
|
||||||
|
.findByName(id.key.toString())
|
||||||
|
.orElseThrow(() -> new IllegalArgumentException(String
|
||||||
|
.format("No Party with name %s in the database.",
|
||||||
|
id.key.toString())));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ public class Role implements Serializable, Portable {
|
||||||
@Column(name = "NAME", length = 512, nullable = false)
|
@Column(name = "NAME", length = 512, nullable = false)
|
||||||
@Field
|
@Field
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@Pattern(regexp = "[a-zA-Z0-9\\-_]*")
|
// @Pattern(regexp = "[a-zA-Z0-9\\-_]*")
|
||||||
@XmlElement(name = "name", namespace = CORE_XML_NS)
|
@XmlElement(name = "name", namespace = CORE_XML_NS)
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,16 +20,13 @@ package org.libreccm.security;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
||||||
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
||||||
* @version created on 3/23/17
|
* @version created on 3/23/17
|
||||||
*/
|
*/
|
||||||
public class RoleIdResolver implements ObjectIdResolver {
|
public class RoleIdResolver implements ObjectIdResolver {
|
||||||
@Inject
|
|
||||||
private RoleRepository roleRepository;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void bindItem(final ObjectIdGenerator.IdKey id,
|
public void bindItem(final ObjectIdGenerator.IdKey id,
|
||||||
|
|
@ -41,7 +38,15 @@ public class RoleIdResolver implements ObjectIdResolver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object resolveId(final ObjectIdGenerator.IdKey id) {
|
public Object resolveId(final ObjectIdGenerator.IdKey id) {
|
||||||
return roleRepository.findByName(id.key.toString());
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
final RoleRepository roleRepository = cdiUtil
|
||||||
|
.findBean(RoleRepository.class);
|
||||||
|
|
||||||
|
return roleRepository
|
||||||
|
.findByName(id.key.toString())
|
||||||
|
.orElseThrow(() -> new IllegalArgumentException(String
|
||||||
|
.format("No Role with name %s in the database.",
|
||||||
|
id.key.toString())));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,9 @@ package org.libreccm.security;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
import com.fasterxml.jackson.annotation.ObjectIdResolver;
|
||||||
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
||||||
|
|
@ -30,8 +30,6 @@ import javax.inject.Inject;
|
||||||
*/
|
*/
|
||||||
@RequestScoped
|
@RequestScoped
|
||||||
public class UserIdResolver implements ObjectIdResolver {
|
public class UserIdResolver implements ObjectIdResolver {
|
||||||
@Inject
|
|
||||||
private UserRepository userRepository;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void bindItem(final ObjectIdGenerator.IdKey id,
|
public void bindItem(final ObjectIdGenerator.IdKey id,
|
||||||
|
|
@ -43,7 +41,15 @@ public class UserIdResolver implements ObjectIdResolver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object resolveId(final ObjectIdGenerator.IdKey id) {
|
public Object resolveId(final ObjectIdGenerator.IdKey id) {
|
||||||
return userRepository.findByName(id.key.toString());
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
final UserRepository userRepo = cdiUtil
|
||||||
|
.findBean(UserRepository.class);
|
||||||
|
|
||||||
|
return userRepo
|
||||||
|
.findByName(id.key.toString())
|
||||||
|
.orElseThrow(() -> new IllegalArgumentException(String
|
||||||
|
.format("No User with name %s in the database.",
|
||||||
|
id.key.toString())));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,8 @@ public class CoreDataImportTest {
|
||||||
"CoreDataImportTest.war")
|
"CoreDataImportTest.war")
|
||||||
.addPackage(org.libreccm.categorization.Category
|
.addPackage(org.libreccm.categorization.Category
|
||||||
.class.getPackage())
|
.class.getPackage())
|
||||||
|
.addPackage(org.libreccm.cdi.utils.CdiUtil
|
||||||
|
.class.getPackage())
|
||||||
.addPackage(org.libreccm.core.CcmObject
|
.addPackage(org.libreccm.core.CcmObject
|
||||||
.class.getPackage())
|
.class.getPackage())
|
||||||
.addPackage(org.libreccm.l10n.LocalizedString
|
.addPackage(org.libreccm.l10n.LocalizedString
|
||||||
|
|
@ -127,6 +129,9 @@ public class CoreDataImportTest {
|
||||||
Assert.assertFalse(importHelper.importUsers());
|
Assert.assertFalse(importHelper.importUsers());
|
||||||
Assert.assertFalse(importHelper.importGroups());
|
Assert.assertFalse(importHelper.importGroups());
|
||||||
Assert.assertFalse(importHelper.importGroupMemberships());
|
Assert.assertFalse(importHelper.importGroupMemberships());
|
||||||
|
Assert.assertFalse(importHelper.importRoles());
|
||||||
|
Assert.assertFalse(importHelper.importRoleMemberships());
|
||||||
|
//Assert.assertFalse(importHelper.importCategories());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue