diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ItemSelectionModel.java b/ccm-cms/src/main/java/com/arsdigita/cms/ItemSelectionModel.java index b47b4c0ee..9c9eb488e 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ItemSelectionModel.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ItemSelectionModel.java @@ -141,7 +141,7 @@ public class ItemSelectionModel extends CcmObjectSelectionModel { if (typeId != null) { type = CdiUtil.createCdiUtil().findBean(ContentTypeRepository.class) - .findById(typeId); + .findById(typeId).get(); } return type; diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/dispatcher/CMSDispatcher.java b/ccm-cms/src/main/java/com/arsdigita/cms/dispatcher/CMSDispatcher.java index d050b44fa..6344fd815 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/dispatcher/CMSDispatcher.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/dispatcher/CMSDispatcher.java @@ -195,7 +195,7 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { } else if (remainingUrl.endsWith(ItemDispatcher.FILE_SUFFIX)) { remainingUrl = remainingUrl.substring(0, remainingUrl.length() - ItemDispatcher.FILE_SUFFIX - .length()); + .length()); } else if (remainingUrl.equals("")) { remainingUrl = "index"; } @@ -362,8 +362,7 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { * @param request The HTTP request * @param response The HTTP response * @param actx The request context - * - * @exception AccessDeniedException if the user does not have access. + * @throws javax.servlet.ServletException * */ protected void checkUserAccess(HttpServletRequest request, @@ -371,10 +370,11 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { RequestContext actx) throws ServletException, AuthorizationException { - final Shiro shiro = CdiUtil.createCdiUtil().findBean(Shiro.class); - User user = shiro.getUser(); - final PermissionChecker permissionChecker = CdiUtil.createCdiUtil() - .findBean(PermissionChecker.class); + final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); + final Shiro shiro = cdiUtil.findBean(Shiro.class); + User user = shiro.getUser().get(); + final PermissionChecker permissionChecker = cdiUtil.findBean( + PermissionChecker.class); ContentSection section = getContentSection(request); @@ -492,6 +492,7 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { * @param context The use context * * @return The item associated with the URL, or null if no such item exists + * * @throws javax.servlet.ServletException */ protected ContentItem getContentItem(ContentSection section, String url, @@ -499,8 +500,10 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { throws ServletException { final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); - final ContentSectionManager sectionManager = cdiUtil.findBean(ContentSectionManager.class); - final ItemResolver itemResolver = sectionManager.getItemResolver(section); + final ContentSectionManager sectionManager = cdiUtil.findBean( + ContentSectionManager.class); + final ItemResolver itemResolver = sectionManager + .getItemResolver(section); return itemResolver.getItem(section, url, context); } @@ -537,9 +540,9 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { try { pageResolver = (PageResolver) Class.forName(pageResolverClassName) .newInstance(); - } catch (ClassNotFoundException | - IllegalAccessException | - InstantiationException ex) { + } catch (ClassNotFoundException + | IllegalAccessException + | InstantiationException ex) { throw new RuntimeException(ex); } pageResolver.releasePage(url); @@ -568,9 +571,9 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { pageResolver = (PageResolver) Class.forName( pageResolverClassName) .newInstance(); - } catch (ClassNotFoundException | - IllegalAccessException | - InstantiationException ex) { + } catch (ClassNotFoundException + | IllegalAccessException + | InstantiationException ex) { throw new RuntimeException(ex); } s_pageResolverCache.put(name, pageResolver); @@ -587,16 +590,16 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { * @return The ItemResolver associated with the content section */ public static ItemResolver getItemResolver(ContentSection section) { - + final Class clazz; try { - clazz = Class.forName(section.getItemResolverClass()); - } catch(ClassNotFoundException ex) { + clazz = Class.forName(section.getItemResolverClass()); + } catch (ClassNotFoundException ex) { throw new UncheckedWrapperException(ex); } - + return (ItemResolver) CdiUtil.createCdiUtil().findBean(clazz); - + } /** @@ -614,9 +617,9 @@ public class CMSDispatcher implements Dispatcher, ChainedDispatcher { try { xmlGenerator = (XMLGenerator) Class.forName( xmlGeneratorClassName).newInstance(); - } catch (ClassNotFoundException | - IllegalAccessException | - InstantiationException ex) { + } catch (ClassNotFoundException + | IllegalAccessException + | InstantiationException ex) { throw new RuntimeException(ex); } s_xmlGeneratorCache.put(name, xmlGenerator); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/dispatcher/CMSPage.java b/ccm-cms/src/main/java/com/arsdigita/cms/dispatcher/CMSPage.java index 96cd8683b..5e1651f4d 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/dispatcher/CMSPage.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/dispatcher/CMSPage.java @@ -44,13 +44,14 @@ import org.libreccm.security.PermissionChecker; import org.libreccm.security.Shiro; import org.libreccm.security.User; import org.libreccm.web.CcmApplication; -import org.librecms.CmsConstants; import org.librecms.contentsection.ContentItem; import org.librecms.contentsection.ContentItemRepository; import org.librecms.contentsection.ContentSection; import org.librecms.contentsection.ContentSectionServlet; import org.librecms.contentsection.privileges.ItemPrivileges; +import java.util.Optional; + /** *

A CMSPage is a Bebop {@link com.arsdigita.bebop.Page} @@ -313,9 +314,9 @@ public class CMSPage extends Page implements ResourceHandler { @Override protected Element generateXMLHelper(PageState ps, Document parent) { Element page = super.generateXMLHelper(ps,parent); - final User user = CdiUtil.createCdiUtil().findBean(Shiro.class).getUser(); - if ( user != null ) { - page.addAttribute("name",user.getName()); + final Optional user = CdiUtil.createCdiUtil().findBean(Shiro.class).getUser(); + if ( user.isPresent()) { + page.addAttribute("name",user.get().getName()); } return page; diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/CMSApplicationPage.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/CMSApplicationPage.java index 372e63f12..744d787ce 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/CMSApplicationPage.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/CMSApplicationPage.java @@ -38,6 +38,7 @@ import org.libreccm.web.CcmApplication; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -217,10 +218,10 @@ public class CMSApplicationPage extends Page { // document it in the classes. Probably remove one ore the other // way from the API if possible. final Shiro shiro = CdiUtil.createCdiUtil().findBean(Shiro.class); - final User user = shiro.getUser(); + final Optional user = shiro.getUser(); // User user = Web.getWebContext().getUser(); - if ( user != null ) { - pageElement.addAttribute("name",user.getName()); + if (user.isPresent()) { + pageElement.addAttribute("name",user.get().getName()); } return pageElement; diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/CreationSelector.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/CreationSelector.java index 300f6d57d..632483511 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/CreationSelector.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/CreationSelector.java @@ -53,6 +53,7 @@ import org.librecms.contenttypes.ContentTypesManager; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.math.BigDecimal; +import java.util.Optional; /** * An invisible component which contains all the possible creation components. @@ -154,15 +155,15 @@ public class CreationSelector extends MetaForm { final ContentTypesManager typesManager = cdiUtil.findBean( ContentTypesManager.class); - final ContentType type = typeRepo.findById(typeId); - if (type == null) { + final Optional type = typeRepo.findById(typeId); + if (!type.isPresent()) { throw new UncheckedWrapperException(String.format( "Type with id %d not found.", typeId)); } final ContentTypeInfo typeInfo = typesManager.getContentTypeInfo( - type); + type.get()); final AuthoringKitInfo kit = typeInfo.getAuthoringKit(); - component = instantiateKitComponent(kit, type); + component = instantiateKitComponent(kit, type.get()); if (component != null) { returnForm.add(component); returnForm.setMethod(Form.POST); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemForm.java index 070985b57..8a8d0817b 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemForm.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/NewItemForm.java @@ -129,7 +129,7 @@ public abstract class NewItemForm extends Form { if (singleTypeID == null) { parentType = null; } else { - parentType = typeRepo.findById(singleTypeID); + parentType = typeRepo.findById(singleTypeID).get(); } typesCollection = section.getContentTypes().stream() diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderManipulator.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderManipulator.java index 0ce8b1825..dc91f7161 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderManipulator.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderManipulator.java @@ -580,7 +580,7 @@ public class FolderManipulator extends SimpleContainer implements final PermissionChecker permissionChecker = cdiUtil.findBean( PermissionChecker.class); - final ContentItem item = itemRepo.findById(itemId); + final ContentItem item = itemRepo.findById(itemId).get(); final String name = item.getDisplayName(); final long count = itemRepo.countByNameInFolder(target, name); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/item/Summary.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/item/Summary.java index 31493af89..155237318 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/item/Summary.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/item/Summary.java @@ -115,7 +115,7 @@ public class Summary extends CMSContainer { final ContentSection section = getContentSection(state); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); // Setup xml element for item's properties final Element itemElement = new Element("cms:itemSummary", diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/DeletePhaseForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/DeletePhaseForm.java index cf067bb21..ba67aa161 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/DeletePhaseForm.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/DeletePhaseForm.java @@ -121,7 +121,7 @@ class DeletePhaseForm extends CMSForm // Check if the object is already deleted for double click // protection. - final PhaseDefinition phaseDef = phaseDefRepo.findById(key); + final PhaseDefinition phaseDef = phaseDefRepo.findById(key).get(); if (phaseDef != null) { phaseDefRepo.delete(phaseDef); } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/ItemLifecycleItemPane.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/ItemLifecycleItemPane.java index f2d4a96d1..c84978db1 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/ItemLifecycleItemPane.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/ItemLifecycleItemPane.java @@ -320,7 +320,7 @@ class ItemLifecycleItemPane extends BaseItemPane { final ContentItem item = selectedItem.getContentItem(state); final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); /* * jensp 2011-12-14: Check is threaded publishing is active. @@ -360,10 +360,10 @@ class ItemLifecycleItemPane extends BaseItemPane { UserRepository.class); final User receiver = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureReceiver()); + .getPublishingFailureReceiver()).get(); final User sender = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureSender()); + .getPublishingFailureSender()).get(); if ((sender != null) && (receiver != null)) { final Writer traceWriter = new StringWriter(); @@ -467,7 +467,7 @@ class ItemLifecycleItemPane extends BaseItemPane { final ContentItem item = selectedItem.getContentItem(state); final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); /** * jensp 2011-12-14: Execute is a thread if threaded publishing @@ -506,10 +506,10 @@ class ItemLifecycleItemPane extends BaseItemPane { UserRepository.class); final User receiver = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureReceiver()); + .getPublishingFailureReceiver()).get(); final User sender = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureSender()); + .getPublishingFailureSender()).get(); if ((sender != null) && (receiver != null)) { final Writer traceWriter = new StringWriter(); @@ -698,7 +698,7 @@ class ItemLifecycleItemPane extends BaseItemPane { final FormData data = event.getFormData(); final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); String selected = (String) data.get(LIFECYCLE_ACTION); final ContentItem item = selectedItem.getContentItem(state); @@ -743,10 +743,10 @@ class ItemLifecycleItemPane extends BaseItemPane { UserRepository.class); final User receiver = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureReceiver()); + .getPublishingFailureReceiver()).get(); final User sender = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureSender()); + .getPublishingFailureSender()).get(); if ((sender != null) && (receiver != null)) { final Writer traceWriter = new StringWriter(); @@ -831,10 +831,10 @@ class ItemLifecycleItemPane extends BaseItemPane { UserRepository.class); final User receiver = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureReceiver()); + .getPublishingFailureReceiver()).get(); final User sender = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureSender()); + .getPublishingFailureSender()).get(); if ((sender != null) && (receiver != null)) { final Writer traceWriter = new StringWriter(); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/ItemLifecycleSelectForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/ItemLifecycleSelectForm.java index f700179fe..a5ed7f146 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/ItemLifecycleSelectForm.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/lifecycle/ItemLifecycleSelectForm.java @@ -433,10 +433,10 @@ class ItemLifecycleSelectForm extends BaseForm { UserRepository.class); final User receiver = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureReceiver()); + .getPublishingFailureReceiver()).get(); final User sender = userRepo.findByEmailAddress( CMSConfig.getConfig() - .getPublishingFailureSender()); + .getPublishingFailureSender()).get(); if ((sender != null) && (receiver != null)) { final Writer traceWriter = new StringWriter(); @@ -714,7 +714,7 @@ class ItemLifecycleSelectForm extends BaseForm { workflowUuid = null; } - user = CdiUtil.createCdiUtil().findBean(Shiro.class).getUser(); + user = CdiUtil.createCdiUtil().findBean(Shiro.class).getUser().get(); } /** @@ -747,7 +747,7 @@ class ItemLifecycleSelectForm extends BaseForm { final LifecycleDefinition cycleDef; final Lifecycle lifecycle; // Apply the new lifecycle. - cycleDef = lifecycleDefRepo.findById(defID); + cycleDef = lifecycleDefRepo.findById(defID).get(); pending = itemManager.publish(item, cycleDef); lifecycle = pending.getLifecycle(); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/CMSUserObjectStruct.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/CMSUserObjectStruct.java index dcc1e604d..30deb25e0 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/CMSUserObjectStruct.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/CMSUserObjectStruct.java @@ -28,6 +28,8 @@ import org.libreccm.core.CcmObjectRepository; import org.libreccm.security.Role; import org.libreccm.security.RoleRepository; +import java.util.Optional; + /** * This class is mainly instantiated from a PageState It is very context * specific for permissions. It tries to read the object_id and load the @@ -71,13 +73,13 @@ class CMSUserObjectStruct { final CcmObjectRepository objectRepo = cdiUtil.findBean( CcmObjectRepository.class); - final CcmObject ccmObject = objectRepo.findById(objectId); - if (ccmObject == null) { + final Optional ccmObject = objectRepo.findById(objectId); + if (!ccmObject.isPresent()) { throw new UncheckedWrapperException(String.format( "Failed to find object with ID %d.", objectId)); } - return ccmObject; + return ccmObject.get(); } // use in package @@ -86,14 +88,14 @@ class CMSUserObjectStruct { final RoleRepository roleRepo = cdiUtil .findBean(RoleRepository.class); - final Role role = roleRepo.findById(roleId); + final Optional role = roleRepo.findById(roleId); - if (role == null) { + if (!role.isPresent()) { throw new UncheckedWrapperException(String.format( "Failed to find party with ID %d.", roleId)); } - return role; + return role.get(); } public static Role getRole(final PageState state) { diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/ObjectAddAdmin.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/ObjectAddAdmin.java index 438192d1e..fd993fd26 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/ObjectAddAdmin.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/ObjectAddAdmin.java @@ -59,6 +59,7 @@ import org.librecms.CmsConstants; import org.librecms.contentsection.privileges.ItemPrivileges; import java.util.List; +import java.util.Optional; import java.util.TooManyListenersException; /** @@ -263,14 +264,14 @@ public class ObjectAddAdmin extends SimpleContainer // Add each checked user to the object for (final String roleId : roleIds) { - final Role role = roleRepo.findById(Long.parseLong(roleId)); - if (role == null) { + final Optional role = roleRepo.findById(Long.parseLong(roleId)); + if (!role.isPresent()) { throw new FormProcessException(new GlobalizedMessage( "cms.ui.permissions.cannot_add_user", CmsConstants.CMS_BUNDLE)); } permissionManager.grantPrivilege(ItemPrivileges.ADMINISTER, - role, + role.get(), object); } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/ObjectAdminListing.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/ObjectAdminListing.java index 7de302f78..4af2a8603 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/ObjectAdminListing.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/permissions/ObjectAdminListing.java @@ -35,8 +35,6 @@ import com.arsdigita.bebop.table.TableCellRenderer; import com.arsdigita.bebop.table.TableModel; import com.arsdigita.bebop.table.TableModelBuilder; import com.arsdigita.cms.CMS; -import com.arsdigita.cms.dispatcher.Utilities; -import com.arsdigita.dispatcher.AccessDeniedException; import com.arsdigita.globalization.GlobalizedMessage; import com.arsdigita.ui.CcmObjectSelectionModel; import com.arsdigita.util.LockableImpl; @@ -44,7 +42,6 @@ import com.arsdigita.util.UncheckedWrapperException; import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.core.CcmObject; -import org.libreccm.security.Party; import org.libreccm.security.PermissionChecker; import org.libreccm.security.PermissionManager; import org.libreccm.security.Role; @@ -52,9 +49,9 @@ import org.libreccm.security.RoleRepository; import org.librecms.CmsConstants; import org.librecms.contentsection.privileges.ItemPrivileges; -import java.math.BigDecimal; import java.util.Iterator; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; public class ObjectAdminListing extends SimpleContainer { @@ -146,14 +143,14 @@ public class ObjectAdminListing extends SimpleContainer { ItemPrivileges.ADMINISTER, object); final String roleId = (String) event.getRowKey(); - final Role role = roleRepo.findById(Long.parseLong(roleId)); - if (role == null) { + final Optional role = roleRepo.findById(Long.parseLong(roleId)); + if (!role.isPresent()) { throw new UncheckedWrapperException(String.format( "No role with id %s found.", roleId)); } permissionManager.revokePrivilege(ItemPrivileges.ADMINISTER, - role, + role.get(), object); } } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/report/ContentSectionSummaryController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/report/ContentSectionSummaryController.java index 2ee3fbfc5..b5da98d2c 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/report/ContentSectionSummaryController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/report/ContentSectionSummaryController.java @@ -58,7 +58,7 @@ public class ContentSectionSummaryController { @Transactional(Transactional.TxType.REQUIRED) public List> createReportData(final ContentSection section) { final ContentSection contentSection = sectionRepo.findById( - section.getObjectId()); + section.getObjectId()).get(); final List rootFolders = contentSection.getRootDocumentsFolder() .getSubFolders(); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/BaseRoleItemPane.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/BaseRoleItemPane.java index b099889da..67ab524d8 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/BaseRoleItemPane.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/BaseRoleItemPane.java @@ -251,7 +251,7 @@ class BaseRoleItemPane extends BaseItemPane { PartyRepository.class); final RoleManager roleManager = cdiUtil.findBean( RoleManager.class); - final Party party = partyRepository.findById(itemId); + final Party party = partyRepository.findById(itemId).get(); roleManager.removeRoleFromParty(role, party); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RoleAdminPane.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RoleAdminPane.java index 827a81e1b..1d8a1cdb7 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RoleAdminPane.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RoleAdminPane.java @@ -197,7 +197,7 @@ public class RoleAdminPane extends BaseAdminPane { final RoleRepository roleRepository = cdiUtil.findBean( RoleRepository.class); final Long id = Long.parseLong(selectionModel.getSelectedKey(state)); - final Role role = roleRepository.findById(id); + final Role role = roleRepository.findById(id).get(); roleRepository.delete(role); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RolePartyAddForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RolePartyAddForm.java index e154a7085..57cf63e43 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RolePartyAddForm.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RolePartyAddForm.java @@ -100,7 +100,7 @@ class RolePartyAddForm extends PartyAddForm { final PartyRepository partyRepository = cdiUtil.findBean(PartyRepository.class); final RoleManager roleManager = cdiUtil.findBean(RoleManager.class); - final Role role = roleRepository.findById(roleId); + final Role role = roleRepository.findById(roleId).get(); // Add each checked party to the role Party party; @@ -108,7 +108,7 @@ class RolePartyAddForm extends PartyAddForm { if (s_log.isDebugEnabled()) { s_log.debug("parties[" + i + "] = " + parties[i]); } - party = partyRepository.findByName(parties[i]); + party = partyRepository.findByName(parties[i]).get(); roleManager.assignRoleToParty(role, party); } } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/EditType.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/EditType.java index dd96b2e85..faa459ae6 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/EditType.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/EditType.java @@ -63,6 +63,7 @@ import org.librecms.lifecycle.LifecycleDefinitionRepository; import java.util.List; import java.util.Locale; +import java.util.Optional; import java.util.TooManyListenersException; import javax.persistence.NoResultException; @@ -225,12 +226,20 @@ public class EditType extends CMSForm final ContentTypeRepository typeRepo = cdiUtil.findBean( ContentTypeRepository.class); + final Optional result; try { - return typeRepo.findById(Long.parseLong(key)); - } catch (NumberFormatException - | NoResultException ex) { + result = typeRepo.findById(Long.parseLong(key)); + } catch (NumberFormatException ex) { throw new UncheckedWrapperException(String.format( - "ContentType with ID %s not found.", key), ex); + "The provided key \"%s\" is not a long.", key), + ex); + } + + if (result.isPresent()) { + return result.get(); + } else { + throw new UncheckedWrapperException(String.format( + "ContentType with ID %s not found.", key)); } } @@ -266,13 +275,9 @@ public class EditType extends CMSForm final ContentTypeManager typeManager = cdiUtil.findBean( ContentTypeManager.class); - ContentType type = null; - try { - type = typeRepo.findById(key); - } catch (NoResultException ex) { + final Optional type = typeRepo.findById(key); + if (!type.isPresent()) { LOGGER.error("Can't find ContentType with key {}", key); - LOGGER.error(ex); - throw new FormProcessException(new GlobalizedMessage( "cms.ui.type.content_editing_failed", CmsConstants.CMS_BUNDLE, @@ -281,20 +286,20 @@ public class EditType extends CMSForm final KernelConfig kernelConfig = KernelConfig.getConfig(); - type.getLabel().addValue(kernelConfig.getDefaultLocale(), label); - type.getDescription().addValue(kernelConfig.getDefaultLocale(), + type.get().getLabel().addValue(kernelConfig.getDefaultLocale(), label); + type.get().getDescription().addValue(kernelConfig.getDefaultLocale(), description); - typeRepo.save(type); + typeRepo.save(type.get()); // Handle default lifecycle and workflow. final LifecycleDefinition defaultLifecycle = lifecycleDefRepo.findById( - lifecycleId); + lifecycleId).get(); final WorkflowTemplate defaultWorkflow = workflowTemplateRepo.findById( - workflowId); + workflowId).get(); - typeManager.setDefaultLifecycle(type, defaultLifecycle); - typeManager.setDefaultWorkflow(type, defaultWorkflow); + typeManager.setDefaultLifecycle(type.get(), defaultLifecycle); + typeManager.setDefaultWorkflow(type.get(), defaultWorkflow); } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/TypePermissionsTable.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/TypePermissionsTable.java index 94984c170..dd0393e00 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/TypePermissionsTable.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/TypePermissionsTable.java @@ -107,7 +107,7 @@ public class TypePermissionsTable extends Table implements TableActionListener { if (TABLE_COL_ACTION.equals(column.getHeaderKey().toString())) { final Role role = roleRepo.findById(Long.parseLong( - event.getRowKey().toString())); + event.getRowKey().toString())).get(); ContentType contentType = getType().getContentType(state); controller.toggleTypeUsePermission(contentType, role); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/TypePermissionsTableController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/TypePermissionsTableController.java index 3ce9c3a63..55f1a4e4f 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/TypePermissionsTableController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/TypePermissionsTableController.java @@ -63,7 +63,7 @@ public class TypePermissionsTableController { @Transactional(Transactional.TxType.REQUIRED) public List> retrieveTypePermissions( final long typeId, final ContentSection section) { - final ContentType type = typeRepo.findById(typeId); + final ContentType type = typeRepo.findById(typeId).get(); final List roles = section.getRoles(); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskController.java index ae40c2e3f..1349fdf5f 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskController.java @@ -70,7 +70,7 @@ public class AssignedTaskController { @Transactional(Transactional.TxType.REQUIRED) public List> getAssignedTasks(final Workflow workflow) { - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); final List tasks = userTaskRepo.getAssignedTasks(user, workflow); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskSection.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskSection.java index a21ca6e24..5e02471de 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskSection.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskSection.java @@ -174,8 +174,8 @@ public final class AssignedTaskSection extends Section { final AssignableTaskRepository userTaskRepo = cdiUtil.findBean( AssignableTaskRepository.class); final Shiro shiro = cdiUtil.findBean(Shiro.class); - return userTaskRepo.findEnabledTasksForWorkflow(shiro.getUser(), - workflow); + return userTaskRepo.findEnabledTasksForWorkflow( + shiro.getUser().get(), workflow); } @SuppressWarnings("unchecked") diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskTable.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskTable.java index 083c72760..52dcdd732 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskTable.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskTable.java @@ -75,8 +75,8 @@ public final class AssignedTaskTable extends Table { if (column == 1) { final AssignableTask task = userTaskRepo.findById((Long) event - .getRowKey()); - final User currentUser = shiro.getUser(); + .getRowKey()).get(); + final User currentUser = shiro.getUser().get(); final User lockingUser = task.getLockingUser(); if (task.isLocked() && lockingUser != null diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/BaseTaskForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/BaseTaskForm.java index 91c87ba80..3a97d84ed 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/BaseTaskForm.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/BaseTaskForm.java @@ -182,7 +182,7 @@ class BaseTaskForm extends BaseForm { selectedId = Long.parseLong(selectedDependency); addedTask = toRemove.remove(selectedId); if (addedTask == null) { - toAdd.put(selectedId, taskRepo.findById(selectedId)); + toAdd.put(selectedId, taskRepo.findById(selectedId).get()); } } } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/BaseWorkflowItemPane.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/BaseWorkflowItemPane.java index 34f476f79..2b728db9f 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/BaseWorkflowItemPane.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/BaseWorkflowItemPane.java @@ -146,7 +146,7 @@ abstract class BaseWorkflowItemPane extends BaseItemPane { final User lockingUser = task.getLockingUser(); final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final User currentUser = shiro.getUser(); + final User currentUser = shiro.getUser().get(); return task.isLocked() && (lockingUser == null || lockingUser.equals(currentUser)); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowItemPane.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowItemPane.java index 2f1881400..10ea0b1a6 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowItemPane.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowItemPane.java @@ -24,8 +24,8 @@ import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.event.ActionEvent; import com.arsdigita.bebop.event.ActionListener; import com.arsdigita.cms.CMS; + import org.librecms.workflow.CmsTask; -import com.arsdigita.web.Web; import org.libreccm.workflow.Workflow; import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.security.PermissionChecker; @@ -75,7 +75,7 @@ final class ItemWorkflowItemPane extends BaseWorkflowItemPane { final TaskRepository taskRepo = cdiUtil.findBean( TaskRepository.class); - return (CmsTask) taskRepo.findById(Long.parseLong(taskId)); + return (CmsTask) taskRepo.findById(Long.parseLong(taskId)).get(); } } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowSelectForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowSelectForm.java index e7b651b51..2257020b3 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowSelectForm.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowSelectForm.java @@ -52,7 +52,7 @@ import org.librecms.contentsection.ContentItem; class ItemWorkflowSelectForm extends CMSForm { private static final Logger LOGGER = LogManager.getLogger( - ItemWorkflowSelectForm.class); + ItemWorkflowSelectForm.class); private RadioGroup radioGroup; @@ -88,7 +88,7 @@ class ItemWorkflowSelectForm extends CMSForm { @Override public final void process(final FormSectionEvent event) - throws FormProcessException { + throws FormProcessException { final PageState state = event.getPageState(); final Long flowId = (Long) radioGroup.getValue(state); @@ -98,13 +98,16 @@ class ItemWorkflowSelectForm extends CMSForm { if (item.getWorkflow() == null) { final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final WorkflowTemplateRepository templateRepo = cdiUtil. - findBean(WorkflowTemplateRepository.class); + findBean(WorkflowTemplateRepository.class); final WorkflowManager workflowManager = cdiUtil.findBean( - WorkflowManager.class); + WorkflowManager.class); - final WorkflowTemplate template = templateRepo.findById(flowId); + final WorkflowTemplate template = templateRepo.findById(flowId) + .get(); workflowManager.createWorkflow(template, item); } } + } + } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowSelectionModel.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowSelectionModel.java index b1c9654ba..d88b80d56 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowSelectionModel.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/ItemWorkflowSelectionModel.java @@ -46,7 +46,7 @@ class ItemWorkflowSelectionModel extends ParameterSingleSelectionModel { final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final ContentItemRepository itemRepo = cdiUtil.findBean(ContentItemRepository.class); final ContentItem item = itemRepo.findById((Long) super.getSelectedKey( - state)); + state)).get(); return item.getWorkflow().getWorkflowId(); } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskAddRole.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskAddRole.java index f76c7e726..e202f185d 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskAddRole.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskAddRole.java @@ -139,7 +139,7 @@ class TaskAddRole extends CMSForm { if (roleIds != null) { for (final String roleId : roleIds) { final Role role = roleRepository.findById(Long - .parseLong(roleId)); + .parseLong(roleId)).get(); taskManager.assignTask(task, role); } } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskAddUser.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskAddUser.java index e5f4aa720..043b512f8 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskAddUser.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskAddUser.java @@ -24,7 +24,6 @@ import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.SimpleContainer; import com.arsdigita.bebop.event.FormSectionEvent; import com.arsdigita.bebop.form.Submit; -import com.arsdigita.cms.CMS; import com.arsdigita.cms.ui.UserAddForm; import com.arsdigita.cms.ui.UserSearchForm; import com.arsdigita.globalization.GlobalizedMessage; @@ -40,7 +39,6 @@ import org.libreccm.security.UserRepository; import org.libreccm.workflow.WorkflowManager; import org.librecms.CmsConstants; -import java.math.BigDecimal; import java.util.List; /** @@ -150,7 +148,7 @@ class TaskAddUser extends SimpleContainer { User user; for (int i = 0; i < users.length; i++) { - user = userRepo.findById(Long.parseLong(users[i])); + user = userRepo.findById(Long.parseLong(users[i])).get(); //ToDo diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskFinishFormController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskFinishFormController.java index 5f459f6da..f768c2b4b 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskFinishFormController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskFinishFormController.java @@ -47,7 +47,7 @@ public class TaskFinishFormController { @Transactional(Transactional.TxType.REQUIRED) public List findEnabledTasks(final Workflow workflow) { - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); final List roles = user.getRoleMemberships().stream() .map(membership -> membership.getRole()) .collect(Collectors.toList()); diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskItemPane.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskItemPane.java index ecc1baab2..1535141ff 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskItemPane.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/TaskItemPane.java @@ -170,7 +170,7 @@ final class TaskItemPane extends BaseItemPane { AssignableTaskManager.class); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); final List tasks = taskManager.lockedBy(user); @@ -387,7 +387,7 @@ final class TaskItemPane extends BaseItemPane { final RoleRepository roleRepo = cdiUtil.findBean( RoleRepository.class); - final Role role = roleRepo.findById(roleId); + final Role role = roleRepo.findById(roleId).get(); taskManager.retractTask(task, role); } } diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemManager.java index 1fe72f09a..7c23d02e4 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemManager.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemManager.java @@ -115,7 +115,7 @@ public class ContentItemManager { @Inject private AssetManager assetManager; - + @Inject private PermissionChecker permissionChecker; @@ -205,9 +205,9 @@ public class ContentItemManager { } //Check if the current user is allowed to use the content type - permissionChecker.checkPermission(TypePrivileges.USE_TYPE, + permissionChecker.checkPermission(TypePrivileges.USE_TYPE, contentType.get()); - + if (name == null || name.trim().isEmpty()) { throw new IllegalArgumentException( "The name of a content item can't be blank."); @@ -1023,7 +1023,7 @@ public class ContentItemManager { // Ensure that we are using a fresh folder and that the folder was // retrieved in this transaction to avoid problems with lazy fetched // data. - final Folder theFolder = folderRepo.findById(folder.getObjectId()); + final Folder theFolder = folderRepo.findById(folder.getObjectId()).get(); theFolder.getObjects() .stream() @@ -1120,7 +1120,7 @@ public class ContentItemManager { // Ensure that we are using a fresh folder and that the folder was // retrieved in this transaction to avoid problems with lazy fetched // data. - final Folder theFolder = folderRepo.findById(folder.getObjectId()); + final Folder theFolder = folderRepo.findById(folder.getObjectId()).get(); theFolder.getObjects() .stream() @@ -1384,10 +1384,8 @@ public class ContentItemManager { */ public Optional getItemFolder(final ContentItem item) { final List result = item.getCategories().stream() - .filter(categorization -> { - return CATEGORIZATION_TYPE_FOLDER. - equals(categorization.getType()); - }) + .filter(categorization -> CATEGORIZATION_TYPE_FOLDER.equals( + categorization.getType())) .collect(Collectors.toList()); if (result.size() > 0) { diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemRepository.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemRepository.java index bd34406fe..c568e0166 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemRepository.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemRepository.java @@ -103,9 +103,9 @@ public class ContentItemRepository @SuppressWarnings("unchecked") public Optional findById(final long itemId, final Class type) { - final CcmObject result = ccmObjectRepo.findById(itemId); - if (result.getClass().isAssignableFrom(type)) { - return Optional.of((T) result); + final Optional result = ccmObjectRepo.findById(itemId); + if (result.get().getClass().isAssignableFrom(type)) { + return Optional.of((T) result.get()); } else { return Optional.empty(); } diff --git a/ccm-cms/src/main/java/org/librecms/dispatcher/MultilingualItemResolver.java b/ccm-cms/src/main/java/org/librecms/dispatcher/MultilingualItemResolver.java index bac2fb103..5eea66d98 100644 --- a/ccm-cms/src/main/java/org/librecms/dispatcher/MultilingualItemResolver.java +++ b/ccm-cms/src/main/java/org/librecms/dispatcher/MultilingualItemResolver.java @@ -351,10 +351,10 @@ public class MultilingualItemResolver implements ItemResolver { // No template context here. return generateDraftURL(section, itemId); } else if (CMSDispatcher.PREVIEW.equals(context)) { - final ContentItem item = itemRepo.findById(itemId); + final ContentItem item = itemRepo.findById(itemId).get(); return generatePreviewURL(section, item, templateContext); } else if (ContentItemVersion.LIVE.toString().equals(context)) { - final ContentItem item = itemRepo.findById(itemId); + final ContentItem item = itemRepo.findById(itemId).get(); return generateLiveURL(section, item, templateContext); } else { diff --git a/ccm-cms/src/main/java/org/librecms/dispatcher/SimpleItemResolver.java b/ccm-cms/src/main/java/org/librecms/dispatcher/SimpleItemResolver.java index 4fa0bc732..0aafe3998 100644 --- a/ccm-cms/src/main/java/org/librecms/dispatcher/SimpleItemResolver.java +++ b/ccm-cms/src/main/java/org/librecms/dispatcher/SimpleItemResolver.java @@ -395,10 +395,10 @@ public class SimpleItemResolver implements ItemResolver { if (ContentItemVersion.DRAFT.toString().equals(context)) { return generateDraftURL(itemId, section); } else if (ContentItemVersion.LIVE.toString().equals(context)) { - final ContentItem item = itemRepo.findById(itemId); + final ContentItem item = itemRepo.findById(itemId).get(); return generateLiveURL(item, section, templateContext); } else if (CMSDispatcher.PREVIEW.equals(context)) { - final ContentItem item = itemRepo.findById(itemId); + final ContentItem item = itemRepo.findById(itemId).get(); return generatePreviewURL(item, section, templateContext); } else { throw new IllegalArgumentException(String.format( diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/AssetManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AssetManagerTest.java index 04a7b4af1..ab6109075 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/AssetManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AssetManagerTest.java @@ -212,7 +212,7 @@ public class AssetManagerTest { "timestamp", "uuid"}) public void shareAsset() throws MimeTypeParseException { - final Folder folder = folderRepo.findById(-420L); + final Folder folder = folderRepo.findById(-420L).get(); assertThat(folder, is(not(nullValue()))); final File file = new File(); @@ -224,7 +224,6 @@ public class AssetManagerTest { assetManager.shareAsset(file, folder); - assertThat(file, is(not(nullValue()))); assertThat(file.getDisplayName(), is(equalTo("datasheet.pdf"))); } @@ -242,8 +241,7 @@ public class AssetManagerTest { "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void shareAssetNull() { - final Folder folder = folderRepo.findById(-420L); - assertThat(folder, is(not(nullValue()))); + final Folder folder = folderRepo.findById(-420L).get(); assetManager.shareAsset(null, folder); } @@ -286,11 +284,9 @@ public class AssetManagerTest { "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void shareAlreadySharedAsset() { - final Folder folder = folderRepo.findById(-420L); - assertThat(folder, is(not(nullValue()))); + final Folder folder = folderRepo.findById(-420L).get(); - final Asset asset = assetRepo.findById(-700L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-700L).get(); assetManager.shareAsset(asset, folder); } @@ -328,11 +324,9 @@ public class AssetManagerTest { "object_order", "uuid"}) public void moveAssetToOtherFolder() { - final Asset asset = assetRepo.findById(-900L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-900L).get(); - final Folder folder = folderRepo.findById(-410L); - assertThat(folder, is(not(nullValue()))); + final Folder folder = folderRepo.findById(-410L).get(); assetManager.move(asset, folder); } @@ -354,11 +348,9 @@ public class AssetManagerTest { "object_order", "uuid"}) public void moveAssetToFolderInOtherContentSection() { - final Asset asset = assetRepo.findById(-900L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-900L).get(); - final Folder folder = folderRepo.findById(-1600L); - assertThat(folder, is(not(nullValue()))); + final Folder folder = folderRepo.findById(-1600L).get(); assetManager.move(asset, folder); } @@ -379,8 +371,7 @@ public class AssetManagerTest { public void moveAssetNull() { final Asset asset = null; - final Folder folder = folderRepo.findById(-410L); - assertThat(folder, is(not(nullValue()))); + final Folder folder = folderRepo.findById(-410L).get(); assetManager.move(asset, folder); } @@ -399,8 +390,7 @@ public class AssetManagerTest { "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveAssetTargetFolderIsNull() { - final Asset asset = assetRepo.findById(-900L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-900L).get(); final Folder targetFolder = null; @@ -421,11 +411,9 @@ public class AssetManagerTest { "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveAssetTargetFolderIsNotAssetFolder() { - final Asset asset = assetRepo.findById(-900L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-900L).get(); - final Folder folder = folderRepo.findById(-200L); - assertThat(folder, is(not(nullValue()))); + final Folder folder = folderRepo.findById(-200L).get(); assetManager.move(asset, folder); } @@ -450,11 +438,9 @@ public class AssetManagerTest { "categorization_id", "object_order"}) public void copyAssetToOtherFolder() { - final Asset asset = assetRepo.findById(-1100L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-1100L).get(); - final Folder targetFolder = folderRepo.findById(-400L); - assertThat(targetFolder, is(not(nullValue()))); + final Folder targetFolder = folderRepo.findById(-400L).get(); assetManager.copy(asset, targetFolder); } @@ -479,11 +465,9 @@ public class AssetManagerTest { "categorization_id", "object_order"}) public void copyAssetToSameFolder() { - final Asset asset = assetRepo.findById(-1100L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-1100L).get(); - final Folder targetFolder = folderRepo.findById(-420L); - assertThat(targetFolder, is(not(nullValue()))); + final Folder targetFolder = folderRepo.findById(-420L).get(); assetManager.copy(asset, targetFolder); assetManager.copy(asset, targetFolder); @@ -510,11 +494,9 @@ public class AssetManagerTest { "categorization_id", "object_order"}) public void copyAssetToOtherContentSection() { - final Asset asset = assetRepo.findById(-1100L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-1100L).get(); - final Folder targetFolder = folderRepo.findById(-1600L); - assertThat(targetFolder, is(not(nullValue()))); + final Folder targetFolder = folderRepo.findById(-1600L).get(); assetManager.copy(asset, targetFolder); } @@ -535,8 +517,7 @@ public class AssetManagerTest { public void copyAssetNull() { final Asset asset = null; - final Folder targetFolder = folderRepo.findById(-420L); - assertThat(targetFolder, is(not(nullValue()))); + final Folder targetFolder = folderRepo.findById(-420L).get(); assetManager.copy(asset, targetFolder); } @@ -555,8 +536,7 @@ public class AssetManagerTest { "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void copyAssetTargetFolderIsNull() { - final Asset asset = assetRepo.findById(-1100L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-1100L).get(); final Folder targetFolder = null; @@ -577,11 +557,9 @@ public class AssetManagerTest { "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void copyAssetTargetFolderIsNotAssetFolder() { - final Asset asset = assetRepo.findById(-1100L); - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-1100L).get(); - final Folder targetFolder = folderRepo.findById(-200L); - assertThat(targetFolder, is(not(nullValue()))); + final Folder targetFolder = folderRepo.findById(-200L).get(); assetManager.copy(asset, targetFolder); } @@ -598,17 +576,11 @@ public class AssetManagerTest { @ShouldMatchDataSet( "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyIsAssetInUse() { - final Asset header = assetRepo.findById(-700L); - final Asset phb = assetRepo.findById(-800L); - final Asset servicesHeader = assetRepo.findById(-900L); - final Asset product1Datasheet = assetRepo.findById(-1000L); - final Asset catalog = assetRepo.findById(-1100L); - - assertThat(header, is(not(nullValue()))); - assertThat(phb, is(not(nullValue()))); - assertThat(servicesHeader, is(not(nullValue()))); - assertThat(product1Datasheet, is(not(nullValue()))); - assertThat(catalog, is(not(nullValue()))); + final Asset header = assetRepo.findById(-700L).get(); + final Asset phb = assetRepo.findById(-800L).get(); + final Asset servicesHeader = assetRepo.findById(-900L).get(); + final Asset product1Datasheet = assetRepo.findById(-1000L).get(); + final Asset catalog = assetRepo.findById(-1100L).get(); assertThat(assetManager.isAssetInUse(header), is(true)); assertThat(assetManager.isAssetInUse(phb), is(false)); @@ -629,17 +601,11 @@ public class AssetManagerTest { @ShouldMatchDataSet( "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyGetAssetPathWithoutContentSection() { - final Asset header = assetRepo.findById(-700L); - final Asset phb = assetRepo.findById(-800L); - final Asset servicesHeader = assetRepo.findById(-900L); - final Asset product1Datasheet = assetRepo.findById(-1000L); - final Asset catalog = assetRepo.findById(-1100L); - - assertThat(header, is(not(nullValue()))); - assertThat(phb, is(not(nullValue()))); - assertThat(servicesHeader, is(not(nullValue()))); - assertThat(product1Datasheet, is(not(nullValue()))); - assertThat(catalog, is(not(nullValue()))); + final Asset header = assetRepo.findById(-700L).get(); + final Asset phb = assetRepo.findById(-800L).get(); + final Asset servicesHeader = assetRepo.findById(-900L).get(); + final Asset product1Datasheet = assetRepo.findById(-1000L).get(); + final Asset catalog = assetRepo.findById(-1100L).get(); assertThat(assetManager.getAssetPath(header), is(equalTo("/media/images/header.png"))); @@ -665,17 +631,11 @@ public class AssetManagerTest { @ShouldMatchDataSet( "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyGetAssetPathWithContentSection() { - final Asset header = assetRepo.findById(-700L); - final Asset phb = assetRepo.findById(-800L); - final Asset servicesHeader = assetRepo.findById(-900L); - final Asset product1Datasheet = assetRepo.findById(-1000L); - final Asset catalog = assetRepo.findById(-1100L); - - assertThat(header, is(not(nullValue()))); - assertThat(phb, is(not(nullValue()))); - assertThat(servicesHeader, is(not(nullValue()))); - assertThat(product1Datasheet, is(not(nullValue()))); - assertThat(catalog, is(not(nullValue()))); + final Asset header = assetRepo.findById(-700L).get(); + final Asset phb = assetRepo.findById(-800L).get(); + final Asset servicesHeader = assetRepo.findById(-900L).get(); + final Asset product1Datasheet = assetRepo.findById(-1000L).get(); + final Asset catalog = assetRepo.findById(-1100L).get(); assertThat(assetManager.getAssetPath(header, true), is(equalTo("info:/media/images/header.png"))); @@ -701,25 +661,15 @@ public class AssetManagerTest { @ShouldMatchDataSet( "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyGetAssetFolder() { - final Asset header = assetRepo.findById(-700L); - final Asset phb = assetRepo.findById(-800L); - final Asset servicesHeader = assetRepo.findById(-900L); - final Asset product1Datasheet = assetRepo.findById(-1000L); - final Asset catalog = assetRepo.findById(-1100L); + final Asset header = assetRepo.findById(-700L).get(); + final Asset phb = assetRepo.findById(-800L).get(); + final Asset servicesHeader = assetRepo.findById(-900L).get(); + final Asset product1Datasheet = assetRepo.findById(-1000L).get(); + final Asset catalog = assetRepo.findById(-1100L).get(); - assertThat(header, is(not(nullValue()))); - assertThat(phb, is(not(nullValue()))); - assertThat(servicesHeader, is(not(nullValue()))); - assertThat(product1Datasheet, is(not(nullValue()))); - assertThat(catalog, is(not(nullValue()))); - - final Folder media = folderRepo.findById(-400L); - final Folder images = folderRepo.findById(-410L); - final Folder downloads = folderRepo.findById(-420L); - - assertThat(media, is(not(nullValue()))); - assertThat(images, is(not(nullValue()))); - assertThat(downloads, is(not(nullValue()))); + final Folder media = folderRepo.findById(-400L).get(); + final Folder images = folderRepo.findById(-410L).get(); + final Folder downloads = folderRepo.findById(-420L).get(); final Optional headerFolder = assetManager .getAssetFolder(header); @@ -756,27 +706,16 @@ public class AssetManagerTest { @ShouldMatchDataSet( "datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyGetAssetFolders() { - final Asset header = assetRepo.findById(-700L); - final Asset phb = assetRepo.findById(-800L); - final Asset servicesHeader = assetRepo.findById(-900L); - final Asset product1Datasheet = assetRepo.findById(-1000L); - final Asset catalog = assetRepo.findById(-1100L); + final Asset header = assetRepo.findById(-700L).get(); + final Asset phb = assetRepo.findById(-800L).get(); + final Asset servicesHeader = assetRepo.findById(-900L).get(); + final Asset product1Datasheet = assetRepo.findById(-1000L).get(); + final Asset catalog = assetRepo.findById(-1100L).get(); - assertThat(header, is(not(nullValue()))); - assertThat(phb, is(not(nullValue()))); - assertThat(servicesHeader, is(not(nullValue()))); - assertThat(product1Datasheet, is(not(nullValue()))); - assertThat(catalog, is(not(nullValue()))); - - final Folder infoAssets = folderRepo.findById(-300L); - final Folder media = folderRepo.findById(-400L); - final Folder images = folderRepo.findById(-410L); - final Folder downloads = folderRepo.findById(-420L); - - assertThat(infoAssets, is(not(nullValue()))); - assertThat(media, is(not(nullValue()))); - assertThat(images, is(not(nullValue()))); - assertThat(downloads, is(not(nullValue()))); + final Folder infoAssets = folderRepo.findById(-300L).get(); + final Folder media = folderRepo.findById(-400L).get(); + final Folder images = folderRepo.findById(-410L).get(); + final Folder downloads = folderRepo.findById(-420L).get(); final List headerFolders = assetManager.getAssetFolders(header); final List phbFolders = assetManager.getAssetFolders(phb); diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/AssetRepositoryTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AssetRepositoryTest.java index c3d237668..35f71bdb0 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/AssetRepositoryTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AssetRepositoryTest.java @@ -199,9 +199,7 @@ public class AssetRepositoryTest { excludeColumns = {"timestamp", "object_order"} ) public void deleteUnusedAsset() { - final Asset asset = assetRepo.findById(-800L); - - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-800L).get(); assetRepo.delete(asset); } @@ -220,9 +218,7 @@ public class AssetRepositoryTest { + "data.xml") @ShouldThrowException(AssetInUseException.class) public void deleteUsedAsset() { - final Asset asset = assetRepo.findById(-700L); - - assertThat(asset, is(not(nullValue()))); + final Asset asset = assetRepo.findById(-700L).get(); assetRepo.delete(asset); } @@ -324,8 +320,8 @@ public class AssetRepositoryTest { @UsingDataSet( "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void findAssetsByFolder() { - final Folder media = folderRepo.findById(-400L); - final Folder data = folderRepo.findById(-500L); + final Folder media = folderRepo.findById(-400L).get(); + final Folder data = folderRepo.findById(-500L).get(); final List mediaAssets = assetRepo.findByFolder(media); final List dataAssets = assetRepo.findByFolder(data); @@ -344,8 +340,8 @@ public class AssetRepositoryTest { @UsingDataSet( "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void countAssetsInFolder() { - final Folder media = folderRepo.findById(-400L); - final Folder data = folderRepo.findById(-500L); + final Folder media = folderRepo.findById(-400L).get(); + final Folder data = folderRepo.findById(-500L).get(); assertThat(assetRepo.countAssetsInFolder(media), is(5L)); assertThat(assetRepo.countAssetsInFolder(data), is(0L)); @@ -360,7 +356,7 @@ public class AssetRepositoryTest { @UsingDataSet( "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void filterAssetByFolderAndName() { - final Folder media = folderRepo.findById(-400L); + final Folder media = folderRepo.findById(-400L).get(); final List result1 = assetRepo.filterByFolderAndName(media, "hea"); @@ -383,7 +379,7 @@ public class AssetRepositoryTest { @UsingDataSet( "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void countFilterAssetByFolderAndName() { - final Folder media = folderRepo.findById(-400L); + final Folder media = folderRepo.findById(-400L).get(); assertThat(assetRepo.countFilterByFolderAndName(media, "hea"), is(1L)); @@ -401,7 +397,7 @@ public class AssetRepositoryTest { @UsingDataSet( "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void filterAssetsByFolderAndType() { - final Folder media = folderRepo.findById(-400L); + final Folder media = folderRepo.findById(-400L).get(); final List images = assetRepo.filterByFolderAndType(media, Image.class); @@ -434,7 +430,7 @@ public class AssetRepositoryTest { @UsingDataSet( "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void countFilterAssetsByFolderAndType() { - final Folder media = folderRepo.findById(-400L); + final Folder media = folderRepo.findById(-400L).get(); assertThat(assetRepo.countFilterByFolderAndType(media, Image.class), is(3L)); @@ -454,7 +450,7 @@ public class AssetRepositoryTest { @UsingDataSet( "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void filterAssetsByFolderAndTypeAndName() { - final Folder media = folderRepo.findById(-400L); + final Folder media = folderRepo.findById(-400L).get(); final List result1 = assetRepo.filterByFolderAndTypeAndName( media, Image.class, "hea"); @@ -476,7 +472,7 @@ public class AssetRepositoryTest { @UsingDataSet( "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void countFilterAssetsByFolderAndTypeAndName() { - final Folder media = folderRepo.findById(-400L); + final Folder media = folderRepo.findById(-400L).get(); assertThat(assetRepo.countFilterByFolderAndTypeAndName( media, Image.class, "hea"), diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java index 8cafaef36..961235244 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java @@ -372,7 +372,7 @@ public class ContentItemManagerTest { final Folder folder = section.getRootDocumentsFolder(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-110L); + .findById(-110L).get(); final Article article = itemManager.createContentItem( "new-article", @@ -417,7 +417,7 @@ public class ContentItemManagerTest { final Folder folder = section.getRootDocumentsFolder(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-110L); + .findById(-110L).get(); itemManager.createContentItem("Test", section, @@ -446,7 +446,7 @@ public class ContentItemManagerTest { final Folder folder = section.getRootDocumentsFolder(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-110L); + .findById(-110L).get(); itemManager.createContentItem(null, section, @@ -500,7 +500,7 @@ public class ContentItemManagerTest { final ContentSection section = sectionRepo.findByLabel("info"); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-110L); + .findById(-110L).get(); itemManager.createContentItem("Test", section, @@ -534,7 +534,7 @@ public class ContentItemManagerTest { final Optional item = itemRepo.findById(-10100L); assertThat(item.isPresent(), is(true)); - final Folder targetFolder = folderRepo.findById(-2120L); + final Folder targetFolder = folderRepo.findById(-2120L).get(); assertThat(targetFolder, is(not(nullValue()))); itemManager.move(item.get(), targetFolder); @@ -562,7 +562,7 @@ public class ContentItemManagerTest { }) public void moveItemToOtherContentSection() { final Optional item = itemRepo.findById(-10100L); - final Folder targetFolder = folderRepo.findById(-2300L); + final Folder targetFolder = folderRepo.findById(-2300L).get(); assertThat(item.isPresent(), is(true)); assertThat(targetFolder, is(not(nullValue()))); @@ -585,7 +585,7 @@ public class ContentItemManagerTest { @ShouldThrowException(IllegalArgumentException.class) public void moveToOtherContentSectionTypeNotPresent() { final Optional item = itemRepo.findById(-10400L); - final Folder targetFolder = folderRepo.findById(-2300L); + final Folder targetFolder = folderRepo.findById(-2300L).get(); assertThat(item.isPresent(), is(true)); assertThat(targetFolder, is(not(nullValue()))); @@ -607,7 +607,7 @@ public class ContentItemManagerTest { + "ContentItemManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveItemNull() { - final Folder targetFolder = folderRepo.findById(-2120L); + final Folder targetFolder = folderRepo.findById(-2120L).get(); assertThat(targetFolder, is(not(nullValue()))); itemManager.move(null, targetFolder); @@ -665,7 +665,7 @@ public class ContentItemManagerTest { final Optional item = itemRepo.findById(-10100L); assertThat(item.isPresent(), is(true)); - final Folder targetFolder = folderRepo.findById(-2120L); + final Folder targetFolder = folderRepo.findById(-2120L).get(); assertThat(targetFolder, is(not(nullValue()))); itemManager.copy(item.get(), targetFolder); @@ -701,7 +701,7 @@ public class ContentItemManagerTest { }) public void copyToFolderInOtherSection() { final Optional source = itemRepo.findById(-10100L); - final Folder targetFolder = folderRepo.findById(-2300L); + final Folder targetFolder = folderRepo.findById(-2300L).get(); assertThat(source.isPresent(), is(true)); assertThat(targetFolder, is(not(nullValue()))); @@ -728,7 +728,7 @@ public class ContentItemManagerTest { @ShouldThrowException(IllegalArgumentException.class) public void copyToFolderInOtherSectionTypeNotPresent() { final Optional source = itemRepo.findById(-10400L); - final Folder targetFolder = folderRepo.findById(-2300L); + final Folder targetFolder = folderRepo.findById(-2300L).get(); assertThat(source.isPresent(), is(true)); assertThat(targetFolder, is(not(nullValue()))); @@ -770,7 +770,7 @@ public class ContentItemManagerTest { final Optional item = itemRepo.findById(-10100L); assertThat(item.isPresent(), is(true)); - final Folder targetFolder = folderRepo.findById(-2110L); + final Folder targetFolder = folderRepo.findById(-2110L).get(); assertThat(targetFolder, is(not(nullValue()))); itemManager.copy(item.get(), targetFolder); @@ -791,7 +791,7 @@ public class ContentItemManagerTest { + "ContentItemManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void copyItemNull() { - final Folder targetFolder = folderRepo.findById(-2120L); + final Folder targetFolder = folderRepo.findById(-2120L).get(); assertThat(targetFolder, is(not(nullValue()))); itemManager.copy(null, targetFolder); @@ -892,7 +892,7 @@ public class ContentItemManagerTest { public void publishItemWithLifecycle() { final Optional item = itemRepo.findById(-10100L); final LifecycleDefinition lifecycleDef = lifecycleDefinitionRepo - .findById(-200L); + .findById(-200L).get(); assertThat(item.isPresent(), is(true)); assertThat(lifecycleDef, is(not(nullValue()))); diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemPermissionTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemPermissionTest.java index 6fec808ac..a279732a6 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemPermissionTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemPermissionTest.java @@ -50,7 +50,11 @@ import java.util.stream.Collectors; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.TypedQuery; + import org.jboss.arquillian.persistence.CleanupUsingScript; +import org.libreccm.security.User; + +import java.util.Optional; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -68,9 +72,9 @@ import static org.junit.Assert.*; public class ContentItemPermissionTest { private static final String QUERY = "SELECT i FROM ContentItem i " - + "JOIN i.permissions p " - + "WHERE p.grantee IN :roles " - + "AND p.grantedPrivilege = 'view_draft_items' " + + "JOIN i.permissions p " + + "WHERE p.grantee IN :roles " + + "AND p.grantedPrivilege = 'view_draft_items' " + "ORDER BY i.displayName"; @Inject @@ -101,63 +105,63 @@ public class ContentItemPermissionTest { @Deployment public static WebArchive createDeployment() { return ShrinkWrap - .create(WebArchive.class, - "LibreCCM-org.librecms.contentsection.ContentItemPermissionTest.war"). - addPackage(org.libreccm.auditing.CcmRevision.class.getPackage()) - .addPackage(org.libreccm.categorization.Categorization.class - .getPackage()) - .addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage()) - .addPackage(org.libreccm.configuration.Configuration.class - .getPackage()) - .addPackage(org.libreccm.core.CcmCore.class.getPackage()) - .addPackage(org.libreccm.jpa.EntityManagerProducer.class - .getPackage()) - .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class - .getPackage()) - .addPackage(org.libreccm.l10n.LocalizedString.class - .getPackage()) - .addPackage(org.libreccm.security.Permission.class.getPackage()) - .addPackage(org.libreccm.web.CcmApplication.class.getPackage()) - .addPackage(org.libreccm.workflow.Workflow.class.getPackage()) - .addPackage(com.arsdigita.bebop.Component.class.getPackage()) - .addPackage(com.arsdigita.bebop.util.BebopConstants.class - .getPackage()) - .addClass(com.arsdigita.kernel.KernelConfig.class) - .addClass(com.arsdigita.runtime.CCMResourceManager.class) - .addClass(com.arsdigita.dispatcher.RequestContext.class) - .addClass(com.arsdigita.dispatcher.AccessDeniedException.class) - .addClass( - com.arsdigita.cms.dispatcher.ContentItemDispatcher.class). - addClass(com.arsdigita.dispatcher.Dispatcher.class) - .addClass( - com.arsdigita.ui.admin.applications.AbstractAppInstanceForm.class). - addClass( - com.arsdigita.ui.admin.applications.AbstractAppSettingsPane.class). - addClass( - com.arsdigita.ui.admin.applications.DefaultApplicationInstanceForm.class). - addClass( - com.arsdigita.ui.admin.applications.DefaultApplicationSettingsPane.class) - .addClass(org.librecms.dispatcher.ItemResolver.class) - .addClass(org.libreccm.portation.Portable.class) - .addPackage(com.arsdigita.util.Lockable.class.getPackage()) - .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) - .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.contentsection.Asset.class.getPackage()). - addPackage(org.librecms.contentsection.AttachmentList.class - .getPackage()) - .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) - .addPackage(org.librecms.contentsection.ContentSection.class - .getPackage()) - .addPackage(org.librecms.contenttypes.Article.class.getPackage()). - addPackage(org.libreccm.tests.categories.IntegrationTest.class - .getPackage()) - // .addAsLibraries(getModuleDependencies()) - .addAsLibraries(getCcmCoreDependencies()) - .addAsResource("test-persistence.xml", - "META-INF/persistence.xml") - .addAsResource("configs/shiro.ini", "shiro.ini") - .addAsWebInfResource("test-web.xml", "web.xml") - .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); + .create(WebArchive.class, + "LibreCCM-org.librecms.contentsection.ContentItemPermissionTest.war") + .addPackage(org.libreccm.auditing.CcmRevision.class.getPackage()) + .addPackage(org.libreccm.categorization.Categorization.class + .getPackage()) + .addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage()) + .addPackage(org.libreccm.configuration.Configuration.class + .getPackage()) + .addPackage(org.libreccm.core.CcmCore.class.getPackage()) + .addPackage(org.libreccm.jpa.EntityManagerProducer.class + .getPackage()) + .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class + .getPackage()) + .addPackage(org.libreccm.l10n.LocalizedString.class + .getPackage()) + .addPackage(org.libreccm.security.Permission.class.getPackage()) + .addPackage(org.libreccm.web.CcmApplication.class.getPackage()) + .addPackage(org.libreccm.workflow.Workflow.class.getPackage()) + .addPackage(com.arsdigita.bebop.Component.class.getPackage()) + .addPackage(com.arsdigita.bebop.util.BebopConstants.class + .getPackage()) + .addClass(com.arsdigita.kernel.KernelConfig.class) + .addClass(com.arsdigita.runtime.CCMResourceManager.class) + .addClass(com.arsdigita.dispatcher.RequestContext.class) + .addClass(com.arsdigita.dispatcher.AccessDeniedException.class) + .addClass( + com.arsdigita.cms.dispatcher.ContentItemDispatcher.class). + addClass(com.arsdigita.dispatcher.Dispatcher.class) + .addClass( + com.arsdigita.ui.admin.applications.AbstractAppInstanceForm.class) + .addClass( + com.arsdigita.ui.admin.applications.AbstractAppSettingsPane.class) + .addClass( + com.arsdigita.ui.admin.applications.DefaultApplicationInstanceForm.class) + .addClass( + com.arsdigita.ui.admin.applications.DefaultApplicationSettingsPane.class) + .addClass(org.librecms.dispatcher.ItemResolver.class) + .addClass(org.libreccm.portation.Portable.class) + .addPackage(com.arsdigita.util.Lockable.class.getPackage()) + .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) + .addPackage(org.librecms.Cms.class.getPackage()) + .addPackage(org.librecms.contentsection.Asset.class.getPackage()). + addPackage(org.librecms.contentsection.AttachmentList.class + .getPackage()) + .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) + .addPackage(org.librecms.contentsection.ContentSection.class + .getPackage()) + .addPackage(org.librecms.contenttypes.Article.class.getPackage()). + addPackage(org.libreccm.tests.categories.IntegrationTest.class + .getPackage()) + // .addAsLibraries(getModuleDependencies()) + .addAsLibraries(getCcmCoreDependencies()) + .addAsResource("test-persistence.xml", + "META-INF/persistence.xml") + .addAsResource("configs/shiro.ini", "shiro.ini") + .addAsWebInfResource("test-web.xml", "web.xml") + .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); } @Test @@ -180,19 +184,20 @@ public class ContentItemPermissionTest { @Test @InSequence(100) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemPermissionTest/data.xml") + + "ContentItemPermissionTest/data.xml") public void accessByNoUser() { final List roles; - if (shiro.getUser() == null) { - roles = new ArrayList<>(); + final Optional user = shiro.getUser(); + if (user.isPresent()) { + roles = user.get().getRoleMemberships().stream() + .map(membership -> membership.getRole()) + .collect(Collectors.toList()); } else { - roles = shiro.getUser().getRoleMemberships().stream() - .map(membership -> membership.getRole()) - .collect(Collectors.toList()); + roles = new ArrayList<>(); } final TypedQuery query = entityManager.createQuery( - QUERY, ContentItem.class); + QUERY, ContentItem.class); query.setParameter("roles", roles); final List result = query.getResultList(); @@ -202,19 +207,20 @@ public class ContentItemPermissionTest { @Test @InSequence(200) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemPermissionTest/data.xml") + + "ContentItemPermissionTest/data.xml") public void accessByUser1() { final UsernamePasswordToken token = new UsernamePasswordToken( - "user1@example.org", "foo123"); + "user1@example.org", "foo123"); token.setRememberMe(true); subject.login(token); - final List roles = shiro.getUser().getRoleMemberships().stream() - .map(membership -> membership.getRole()) - .collect(Collectors.toList()); + final List roles = shiro.getUser().get().getRoleMemberships() + .stream() + .map(membership -> membership.getRole()) + .collect(Collectors.toList()); final TypedQuery query = entityManager.createQuery( - QUERY, ContentItem.class); + QUERY, ContentItem.class); query.setParameter("roles", roles); final List result = query.getResultList(); @@ -226,19 +232,20 @@ public class ContentItemPermissionTest { @Test @InSequence(300) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemPermissionTest/data.xml") + + "ContentItemPermissionTest/data.xml") public void accessByUser2() { final UsernamePasswordToken token = new UsernamePasswordToken( - "user2@example.org", "foo123"); + "user2@example.org", "foo123"); token.setRememberMe(true); subject.login(token); - final List roles = shiro.getUser().getRoleMemberships().stream() - .map(membership -> membership.getRole()) - .collect(Collectors.toList()); + final List roles = shiro.getUser().get().getRoleMemberships() + .stream() + .map(membership -> membership.getRole()) + .collect(Collectors.toList()); final TypedQuery query = entityManager.createQuery( - QUERY, ContentItem.class); + QUERY, ContentItem.class); query.setParameter("roles", roles); final List result = query.getResultList(); @@ -249,19 +256,20 @@ public class ContentItemPermissionTest { @Test @InSequence(400) @UsingDataSet("datasets/org/librecms/contentsection/" - + "ContentItemPermissionTest/data.xml") + + "ContentItemPermissionTest/data.xml") public void accessByUser3() { final UsernamePasswordToken token = new UsernamePasswordToken( - "user3@example.org", "foo123"); + "user3@example.org", "foo123"); token.setRememberMe(true); subject.login(token); - final List roles = shiro.getUser().getRoleMemberships().stream() - .map(membership -> membership.getRole()) - .collect(Collectors.toList()); + final List roles = shiro.getUser().get().getRoleMemberships() + .stream() + .map(membership -> membership.getRole()) + .collect(Collectors.toList()); final TypedQuery query = entityManager.createQuery( - QUERY, ContentItem.class); + QUERY, ContentItem.class); query.setParameter("roles", roles); final List result = query.getResultList(); diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java index f52e1459c..7aeee4bd1 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java @@ -238,7 +238,7 @@ public class ContentItemRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentItemRepositoryTest/data.xml") public void findByFolder() { - final Category folder = categoryRepo.findById(-2100L); + final Category folder = categoryRepo.findById(-2100L).get(); assertThat(folder.getObjects().size(), is(4)); @@ -253,7 +253,7 @@ public class ContentItemRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentItemRepositoryTest/data.xml") public void countItemsInFolder() { - final Category folder = categoryRepo.findById(-2100L); + final Category folder = categoryRepo.findById(-2100L).get(); assertThat(itemRepo.countItemsInFolder(folder), is(4L)); } @@ -263,7 +263,7 @@ public class ContentItemRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentItemRepositoryTest/data.xml") public void countByNameInFolder() { - final Category folder = categoryRepo.findById(-2100L); + final Category folder = categoryRepo.findById(-2100L).get(); assertThat(itemRepo.countByNameInFolder(folder, "article1"), is(1L)); assertThat(itemRepo.countByNameInFolder(folder, "article2"), is(1L)); @@ -278,7 +278,7 @@ public class ContentItemRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentItemRepositoryTest/data.xml") public void filterByFolderAndName() { - final Category folder = categoryRepo.findById(-2100L); + final Category folder = categoryRepo.findById(-2100L).get(); final List articles = itemRepo.filterByFolderAndName( folder, "article"); @@ -300,7 +300,7 @@ public class ContentItemRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentItemRepositoryTest/data.xml") public void countFilterByFolderAndName() { - final Category folder = categoryRepo.findById(-2100L); + final Category folder = categoryRepo.findById(-2100L).get(); assertThat(itemRepo.countFilterByFolderAndName(folder, "article"), is(3L)); diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java index cfe281a27..fc96f7e10 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java @@ -374,7 +374,7 @@ public class ContentSectionManagerTest { @InSequence(350) public void removeRole() { final ContentSection section = repository.findByLabel("info"); - final Role role = roleRepository.findByName("info_publisher"); + final Role role = roleRepository.findByName("info_publisher").get(); manager.removeRoleFromContentSection(section, role); } @@ -412,7 +412,7 @@ public class ContentSectionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(352) public void removeRoleSectionIsNull() { - final Role role = roleRepository.findByName("info_publisher"); + final Role role = roleRepository.findByName("info_publisher").get(); manager.removeRoleFromContentSection(null, role); } @@ -433,15 +433,11 @@ public class ContentSectionManagerTest { "creation_date"}) @InSequence(400) public void addContentTypeToSection() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); final LifecycleDefinition lifecycleDef = lifecycleDefRepo - .findById(-13002L); + .findById(-13002L).get(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-14001L); - - assertThat(section, is(not(nullValue()))); - assertThat(lifecycleDef, is(not(nullValue()))); - assertThat(workflowTemplate, is(not(nullValue()))); + .findById(-14001L).get(); manager.addContentTypeToSection(Event.class, section, @@ -462,15 +458,11 @@ public class ContentSectionManagerTest { + "ContentSectionManagerTest/data.xml") @InSequence(500) public void addAlreadyAddedContentTypeToSection() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); final LifecycleDefinition lifecycleDef = lifecycleDefRepo - .findById(-13002L); + .findById(-13002L).get(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-14002L); - - assertThat(section, is(not(nullValue()))); - assertThat(lifecycleDef, is(not(nullValue()))); - assertThat(workflowTemplate, is(not(nullValue()))); + .findById(-14002L).get(); manager.addContentTypeToSection(News.class, section, @@ -492,15 +484,11 @@ public class ContentSectionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(600) public void addContentTypeToSectionTypeIsNull() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); final LifecycleDefinition lifecycleDef = lifecycleDefRepo - .findById(-13002L); + .findById(-13002L).get(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-14002L); - - assertThat(section, is(not(nullValue()))); - assertThat(lifecycleDef, is(not(nullValue()))); - assertThat(workflowTemplate, is(not(nullValue()))); + .findById(-14002L).get(); manager.addContentTypeToSection(null, section, @@ -524,12 +512,9 @@ public class ContentSectionManagerTest { @InSequence(700) public void addContentTypeToSectionSectionIsNull() { final LifecycleDefinition lifecycleDef = lifecycleDefRepo - .findById(-13002L); + .findById(-13002L).get(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-14002L); - - assertThat(lifecycleDef, is(not(nullValue()))); - assertThat(workflowTemplate, is(not(nullValue()))); + .findById(-14002L).get(); manager.addContentTypeToSection(Event.class, null, @@ -551,12 +536,9 @@ public class ContentSectionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(800) public void addContentTypeToSectionLifecycleIsNull() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-14001L); - - assertThat(section, is(not(nullValue()))); - assertThat(workflowTemplate, is(not(nullValue()))); + .findById(-14001L).get(); manager.addContentTypeToSection(Event.class, section, @@ -578,12 +560,9 @@ public class ContentSectionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(900) public void addContentTypeToSectionWorkflowIsNull() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); final LifecycleDefinition lifecycleDef = lifecycleDefRepo - .findById(-13002L); - - assertThat(section, is(not(nullValue()))); - assertThat(lifecycleDef, is(not(nullValue()))); + .findById(-13002L).get(); manager.addContentTypeToSection(Event.class, section, @@ -606,15 +585,11 @@ public class ContentSectionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(1000) public void addContentTypeToSectionLifecycleNotInSection() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); final LifecycleDefinition lifecycleDef = lifecycleDefRepo - .findById(-13003L); + .findById(-13003L).get(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-14001L); - - assertThat(section, is(not(nullValue()))); - assertThat(lifecycleDef, is(not(nullValue()))); - assertThat(workflowTemplate, is(not(nullValue()))); + .findById(-14001L).get(); manager.addContentTypeToSection(Event.class, section, @@ -636,15 +611,11 @@ public class ContentSectionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(1100) public void addContentTypeToSectionWorkflowNoInSection() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); final LifecycleDefinition lifecycleDef = lifecycleDefRepo - .findById(-13002L); + .findById(-13002L).get(); final WorkflowTemplate workflowTemplate = workflowTemplateRepo - .findById(-14003L); - - assertThat(section, is(not(nullValue()))); - assertThat(lifecycleDef, is(not(nullValue()))); - assertThat(workflowTemplate, is(not(nullValue()))); + .findById(-14003L).get(); manager.addContentTypeToSection(Event.class, section, @@ -661,7 +632,7 @@ public class ContentSectionManagerTest { + "ContentSectionManagerTest/data.xml") @InSequence(1200) public void verifyHasContentType() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); assertThat(manager.hasContentType(Article.class, section), is(true)); assertThat(manager.hasContentType(News.class, section), is(true)); @@ -679,7 +650,7 @@ public class ContentSectionManagerTest { + "ContentSectionManagerTest/after-remove-contenttype.xml") @InSequence(1300) public void removeContentTypeFromSection() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); manager.removeContentTypeFromSection(News.class, section); } @@ -698,7 +669,7 @@ public class ContentSectionManagerTest { + "ContentSectionManagerTest/data.xml") @InSequence(1301) public void removeNotExistingContentTypeFromSection() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); manager.removeContentTypeFromSection(Event.class, section); } @@ -718,7 +689,7 @@ public class ContentSectionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(1400) public void removeContentTypeFromSectionTypeInUse() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); manager.removeContentTypeFromSection(Article.class, section); } @@ -738,7 +709,7 @@ public class ContentSectionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(1400) public void removeContentTypeFromSectionTypeIsNull() { - final ContentSection section = repository.findById(-1100L); + final ContentSection section = repository.findById(-1100L).get(); manager.removeContentTypeFromSection(null, section); } diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java index e9ce3df09..8b5d944ae 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java @@ -177,7 +177,7 @@ public class ContentTypeRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentTypeRepositoryTest/data.xml") public void findByContentSection() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final List types = contentTypeRepo.findByContentSection( section); @@ -220,7 +220,7 @@ public class ContentTypeRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentTypeRepositoryTest/data.xml") public void findByContentSectionAndClass() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final Optional articleType = contentTypeRepo .findByContentSectionAndClass(section, Article.class); final Optional newsType = contentTypeRepo @@ -271,7 +271,7 @@ public class ContentTypeRepositoryTest { + "ContentTypeRepositoryTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void findByContentSectionAndClassNull() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final Class type = null; contentTypeRepo.findByContentSectionAndClass(section, type); } @@ -286,7 +286,7 @@ public class ContentTypeRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentTypeRepositoryTest/data.xml") public void findByContentSectionAndClassName() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final Optional articleType = contentTypeRepo .findByContentSectionAndClass(section, Article.class.getName()); final Optional newsType = contentTypeRepo @@ -339,7 +339,7 @@ public class ContentTypeRepositoryTest { + "ContentTypeRepositoryTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void findByContentSectionAndClassNameNull() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final String type = null; contentTypeRepo.findByContentSectionAndClass(section, type); } @@ -353,7 +353,7 @@ public class ContentTypeRepositoryTest { @UsingDataSet("datasets/org/librecms/contentsection/" + "ContentTypeRepositoryTest/data.xml") public void verifyIsContentTypeInUse() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final Optional articleType = contentTypeRepo .findByContentSectionAndClass(section, Article.class); final Optional newsType = contentTypeRepo @@ -378,7 +378,7 @@ public class ContentTypeRepositoryTest { @ShouldMatchDataSet("datasets/org/librecms/contentsection/" + "ContentTypeRepositoryTest/after-delete.xml") public void deleteUnusedContentType() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final Optional newsType = contentTypeRepo .findByContentSectionAndClass(section, News.class); assertThat(newsType.isPresent(), is(true)); @@ -398,7 +398,7 @@ public class ContentTypeRepositoryTest { + "ContentTypeRepositoryTest/data.xml") @ShouldThrowException(UnauthorizedException.class) public void deleteUnusedContentTypeUnauthorized() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final Optional newsType = contentTypeRepo .findByContentSectionAndClass(section, News.class); assertThat(newsType.isPresent(), is(true)); @@ -418,7 +418,7 @@ public class ContentTypeRepositoryTest { + "ContentTypeRepositoryTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void deleteContentTypeInUse() { - final ContentSection section = contentSectionRepo.findById(-1001L); + final ContentSection section = contentSectionRepo.findById(-1001L).get(); final Optional articleType = contentTypeRepo .findByContentSectionAndClass(section, Article.class); assertThat(articleType.isPresent(), is(true)); diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java index 2883e92c0..9d756801b 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java @@ -43,8 +43,11 @@ import org.junit.runner.RunWith; import org.libreccm.tests.categories.IntegrationTest; import javax.inject.Inject; + import org.jboss.arquillian.persistence.CleanupUsingScript; +import java.util.Optional; + import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -165,10 +168,10 @@ public class FolderManagerTest { "content_section_id"}) @InSequence(1000) public void createDocumentsFolder() { - final Folder parent = folderRepo.findById(-2005L); - assertThat(parent, is(not(nullValue()))); + final Optional parent = folderRepo.findById(-2005L); + assertThat(parent.isPresent(), is(true)); - final Folder test = folderManager.createFolder("test", parent); + final Folder test = folderManager.createFolder("test", parent.get()); assertThat(test, is(not(nullValue()))); assertThat(test.getName(), is(equalTo("test"))); @@ -189,10 +192,10 @@ public class FolderManagerTest { "content_section_id"}) @InSequence(1100) public void createAssetsFolder() { - final Folder parent = folderRepo.findById(-2013L); - assertThat(parent, is(not(nullValue()))); + final Optional parent = folderRepo.findById(-2013L); + assertThat(parent.isPresent(), is(true)); - final Folder test = folderManager.createFolder("test", parent); + final Folder test = folderManager.createFolder("test", parent.get()); assertThat(test, is(not(nullValue()))); assertThat(test.getName(), is(equalTo("test"))); @@ -220,10 +223,10 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(1500) public void createFolderNullName() { - final Folder parent = folderRepo.findById(-2005L); - assertThat(parent, is(not(nullValue()))); + final Optional parent = folderRepo.findById(-2005L); + assertThat(parent.isPresent(), is(true)); - final Folder test = folderManager.createFolder(null, parent); + final Folder test = folderManager.createFolder(null, parent.get()); } @@ -236,10 +239,10 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(1500) public void createFolderEmptyName() { - final Folder parent = folderRepo.findById(-2005L); - assertThat(parent, is(not(nullValue()))); + final Optional parent = folderRepo.findById(-2005L); + assertThat(parent.isPresent(), is(false)); - final Folder test = folderManager.createFolder(" ", parent); + final Folder test = folderManager.createFolder(" ", parent.get()); } @@ -253,7 +256,7 @@ public class FolderManagerTest { @InSequence(2000) public void deleteFolder() { //docs-1-1-1 - final Folder folder = folderRepo.findById(-2007L); + final Folder folder = folderRepo.findById(-2007L).get(); folderManager.deleteFolder(folder); } @@ -266,7 +269,7 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(2100) public void deleteNonEmptyFolder() { - final Folder folder = folderRepo.findById(-2008L); + final Folder folder = folderRepo.findById(-2008L).get(); folderManager.deleteFolder(folder); } @@ -279,7 +282,7 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(2100) public void deleteNonEmptySubFolder() { - final Folder folder = folderRepo.findById(-2006L); + final Folder folder = folderRepo.findById(-2006L).get(); folderManager.deleteFolder(folder); } @@ -292,7 +295,7 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(2210) public void deleteRootFolder() { - final Folder folder = folderRepo.findById(-2003L); + final Folder folder = folderRepo.findById(-2003L).get(); folderManager.deleteFolder(folder); } @@ -318,8 +321,8 @@ public class FolderManagerTest { @InSequence(3000) public void moveFolder() { //docs-1-1-2 to docs-2 - final Folder folder = folderRepo.findById(-2008L); - final Folder target = folderRepo.findById(-2010L); + final Folder folder = folderRepo.findById(-2008L).get(); + final Folder target = folderRepo.findById(-2010L).get(); folderManager.moveFolder(folder, target); } @@ -335,8 +338,8 @@ public class FolderManagerTest { public void moveFolderTargetFolderSameName() { //docs-1/downloads to /docs-2/ - final Folder folder = folderRepo.findById(-2009L); - final Folder target = folderRepo.findById(-2010L); + final Folder folder = folderRepo.findById(-2009L).get(); + final Folder target = folderRepo.findById(-2010L).get(); folderManager.moveFolder(folder, target); } @@ -350,8 +353,8 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3100) public void moveDocumentsFolderToAssetsFolder() { - final Folder folder = folderRepo.findById(-2009L); - final Folder target = folderRepo.findById(-2014L); + final Folder folder = folderRepo.findById(-2009L).get(); + final Folder target = folderRepo.findById(-2014L).get(); folderManager.moveFolder(folder, target); } @@ -365,8 +368,8 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3110) public void moveAssetsFolderToDocumentsFolder() { - final Folder folder = folderRepo.findById(-2014L); - final Folder target = folderRepo.findById(-2010L); + final Folder folder = folderRepo.findById(-2014L).get(); + final Folder target = folderRepo.findById(-2010L).get(); folderManager.moveFolder(folder, target); } @@ -380,7 +383,7 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3110) public void moveFolderToItself() { - final Folder folder = folderRepo.findById(-2008L); + final Folder folder = folderRepo.findById(-2008L).get(); folderManager.moveFolder(folder, folder); } @@ -394,7 +397,7 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3200) public void moveFolderNull() { - final Folder target = folderRepo.findById(-2010L); + final Folder target = folderRepo.findById(-2010L).get(); folderManager.moveFolder(null, target); } @@ -407,7 +410,7 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3210) public void moveFolderTargetNull() { - final Folder folder = folderRepo.findById(-2008L); + final Folder folder = folderRepo.findById(-2008L).get(); folderManager.moveFolder(folder, null); } @@ -421,8 +424,8 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3300) public void moveFolderWithLiveItems() { - final Folder folder = folderRepo.findById(-2011L); - final Folder target = folderRepo.findById(-2010L); + final Folder folder = folderRepo.findById(-2011L).get(); + final Folder target = folderRepo.findById(-2010L).get(); folderManager.moveFolder(folder, target); } @@ -436,8 +439,8 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3310) public void moveFolderWithLiveItemsInSubFolder() { - final Folder folder = folderRepo.findById(-2010L); - final Folder target = folderRepo.findById(-2005L); + final Folder folder = folderRepo.findById(-2010L).get(); + final Folder target = folderRepo.findById(-2005L).get(); folderManager.moveFolder(folder, target); } @@ -451,8 +454,8 @@ public class FolderManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3320) public void moveFolderToOtherSection() { - final Folder folder = folderRepo.findById(-2008L); - final Folder target = folderRepo.findById(-2003L); + final Folder folder = folderRepo.findById(-2008L).get(); + final Folder target = folderRepo.findById(-2003L).get(); folderManager.moveFolder(folder, target); } @@ -462,21 +465,21 @@ public class FolderManagerTest { + "FolderManagerTest/data.xml") @InSequence(3400) public void getFolderPath() { - final Folder infoRoot = folderRepo.findById(-2001L); - final Folder infoAssets = folderRepo.findById(-2002L); - final Folder projectsRoot = folderRepo.findById(-2003L); - final Folder projectsAssets = folderRepo.findById(-2004L); - final Folder docs1 = folderRepo.findById(-2005L); - final Folder docs11 = folderRepo.findById(-2006L); - final Folder docs111 = folderRepo.findById(-2007L); - final Folder docs112 = folderRepo.findById(-2008L); - final Folder downloads1 = folderRepo.findById(-2009L); - final Folder docs2 = folderRepo.findById(-2010L); - final Folder docs21 = folderRepo.findById(-2011L); - final Folder downloads2 = folderRepo.findById(-2012L); - final Folder assets1 = folderRepo.findById(-2013L); - final Folder assets11 = folderRepo.findById(-2014L); - final Folder assets12 = folderRepo.findById(-2015L); + final Folder infoRoot = folderRepo.findById(-2001L).get(); + final Folder infoAssets = folderRepo.findById(-2002L).get(); + final Folder projectsRoot = folderRepo.findById(-2003L).get(); + final Folder projectsAssets = folderRepo.findById(-2004L).get(); + final Folder docs1 = folderRepo.findById(-2005L).get(); + final Folder docs11 = folderRepo.findById(-2006L).get(); + final Folder docs111 = folderRepo.findById(-2007L).get(); + final Folder docs112 = folderRepo.findById(-2008L).get(); + final Folder downloads1 = folderRepo.findById(-2009L).get(); + final Folder docs2 = folderRepo.findById(-2010L).get(); + final Folder docs21 = folderRepo.findById(-2011L).get(); + final Folder downloads2 = folderRepo.findById(-2012L).get(); + final Folder assets1 = folderRepo.findById(-2013L).get(); + final Folder assets11 = folderRepo.findById(-2014L).get(); + final Folder assets12 = folderRepo.findById(-2015L).get(); assertThat(folderManager.getFolderPath(infoRoot), is(equalTo("/info_root/"))); @@ -515,21 +518,21 @@ public class FolderManagerTest { + "FolderManagerTest/data.xml") @InSequence(3410) public void getFolderPathWithContentSection() { - final Folder infoRoot = folderRepo.findById(-2001L); - final Folder infoAssets = folderRepo.findById(-2002L); - final Folder projectsRoot = folderRepo.findById(-2003L); - final Folder projectsAssets = folderRepo.findById(-2004L); - final Folder docs1 = folderRepo.findById(-2005L); - final Folder docs11 = folderRepo.findById(-2006L); - final Folder docs111 = folderRepo.findById(-2007L); - final Folder docs112 = folderRepo.findById(-2008L); - final Folder downloads1 = folderRepo.findById(-2009L); - final Folder docs2 = folderRepo.findById(-2010L); - final Folder docs21 = folderRepo.findById(-2011L); - final Folder downloads2 = folderRepo.findById(-2012L); - final Folder assets1 = folderRepo.findById(-2013L); - final Folder assets11 = folderRepo.findById(-2014L); - final Folder assets12 = folderRepo.findById(-2015L); + final Folder infoRoot = folderRepo.findById(-2001L).get(); + final Folder infoAssets = folderRepo.findById(-2002L).get(); + final Folder projectsRoot = folderRepo.findById(-2003L).get(); + final Folder projectsAssets = folderRepo.findById(-2004L).get(); + final Folder docs1 = folderRepo.findById(-2005L).get(); + final Folder docs11 = folderRepo.findById(-2006L).get(); + final Folder docs111 = folderRepo.findById(-2007L).get(); + final Folder docs112 = folderRepo.findById(-2008L).get(); + final Folder downloads1 = folderRepo.findById(-2009L).get(); + final Folder docs2 = folderRepo.findById(-2010L).get(); + final Folder docs21 = folderRepo.findById(-2011L).get(); + final Folder downloads2 = folderRepo.findById(-2012L).get(); + final Folder assets1 = folderRepo.findById(-2013L).get(); + final Folder assets11 = folderRepo.findById(-2014L).get(); + final Folder assets12 = folderRepo.findById(-2015L).get(); assertThat(folderManager.getFolderPath(infoRoot, true), is(equalTo("info:/info_root/"))); diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ItemAttachmentManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ItemAttachmentManagerTest.java index b9bcf279d..d4d5146a7 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ItemAttachmentManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ItemAttachmentManagerTest.java @@ -207,11 +207,7 @@ public class ItemAttachmentManagerTest { final Optional item = itemRepo.findById(-510L); assertThat(item.isPresent(), is(true)); -// final File file = new File(); -// file.setDisplayName("assets510-2a"); -// file.setFileName("asset-510-2a.pdf"); -// file.setMimeType(new MimeType("application/pdf")); - final Asset file = assetRepo.findById(-720L); + final Asset file = assetRepo.findById(-720L).get(); attachmentManager.attachAsset(file, item.get().getAttachments().get(1)); } @@ -236,7 +232,7 @@ public class ItemAttachmentManagerTest { final Optional item = itemRepo.findById(-510L); assertThat(item.isPresent(), is(true)); - final Asset shared = assetRepo.findById(-610L); + final Asset shared = assetRepo.findById(-610L).get(); attachmentManager.attachAsset(shared, item.get().getAttachments().get(1)); @@ -258,7 +254,7 @@ public class ItemAttachmentManagerTest { final Optional item = itemRepo.findById(-510L); assertThat(item.isPresent(), is(true)); - final Asset shared = assetRepo.findById(-620L); + final Asset shared = assetRepo.findById(-620L).get(); attachmentManager.attachAsset(shared, item.get().getAttachments().get(1)); @@ -302,7 +298,7 @@ public class ItemAttachmentManagerTest { @ShouldThrowException(IllegalArgumentException.class) public void attachAssetToListNull() { final AttachmentList list = null; - final Asset shared = assetRepo.findById(-610L); + final Asset shared = assetRepo.findById(-610L).get(); attachmentManager.attachAsset(shared, list); } @@ -321,7 +317,7 @@ public class ItemAttachmentManagerTest { + "after-unattach-shared.xml", excludeColumns = {"timestamp"}) public void unattachSharedAsset() { - final Asset asset = assetRepo.findById(-610L); + final Asset asset = assetRepo.findById(-610L).get(); final Optional item = itemRepo.findById(-510L); assertThat(asset, is(not(nullValue()))); @@ -348,7 +344,7 @@ public class ItemAttachmentManagerTest { + "after-unattach-nonshared.xml", excludeColumns = {"timestamp"}) public void unattachNonSharedAsset() { - final Asset asset = assetRepo.findById(-720L); + final Asset asset = assetRepo.findById(-720L).get(); final Optional item = itemRepo.findById(-510L); assertThat(asset, is(not(nullValue()))); @@ -372,7 +368,7 @@ public class ItemAttachmentManagerTest { @ShouldMatchDataSet("datasets/org/librecms/contentsection/" + "ItemAttachmentManagerTest/data.xml") public void unattachAssetNotAttached() { - final Asset asset = assetRepo.findById(-720L); + final Asset asset = assetRepo.findById(-720L).get(); final Optional item = itemRepo.findById(-510L); assertThat(asset, is(not(nullValue()))); @@ -421,7 +417,7 @@ public class ItemAttachmentManagerTest { + "ItemAttachmentManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void unattachAssetFromListNull() { - final Asset asset = assetRepo.findById(-720L); + final Asset asset = assetRepo.findById(-720L).get(); assertThat(asset, is(not(nullValue()))); final AttachmentList list = null; @@ -509,7 +505,7 @@ public class ItemAttachmentManagerTest { + "ItemAttachmentManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveUpInListNull() { - final Asset asset = assetRepo.findById(-720L); + final Asset asset = assetRepo.findById(-720L).get(); assertThat(asset, is(not(nullValue()))); final AttachmentList list = null; @@ -597,7 +593,7 @@ public class ItemAttachmentManagerTest { + "ItemAttachmentManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveDownInListNull() { - final Asset asset = assetRepo.findById(-720L); + final Asset asset = assetRepo.findById(-720L).get(); assertThat(asset, is(not(nullValue()))); final AttachmentList list = null; diff --git a/ccm-core/src/main/java/com/arsdigita/kernel/KernelConfig.java b/ccm-core/src/main/java/com/arsdigita/kernel/KernelConfig.java index 1e819ce46..306c19f00 100644 --- a/ccm-core/src/main/java/com/arsdigita/kernel/KernelConfig.java +++ b/ccm-core/src/main/java/com/arsdigita/kernel/KernelConfig.java @@ -39,8 +39,8 @@ import java.util.stream.Collectors; @Configuration public final class KernelConfig { - private static final String EMAIL = "email"; - private static final String SCREEN_NAME = "screen_name"; + public static final String USER_IDENTIFIER_EMAIL = "email"; + public static final String USER_IDENTIFIER_SCREEN_NAME = "screen_name"; @Setting private boolean debugEnabled = false; @@ -52,7 +52,7 @@ public final class KernelConfig { private boolean dataPermissionCheckEnabled = true; @Setting - private String primaryUserIdentifier = EMAIL; + private String primaryUserIdentifier = USER_IDENTIFIER_EMAIL; @Setting private boolean ssoEnabled = false; @@ -113,8 +113,8 @@ public final class KernelConfig { } public void setPrimaryUserIdentifier(final String primaryUserIdentifier) { - if (SCREEN_NAME.equals(primaryUserIdentifier) - || EMAIL.equals(primaryUserIdentifier)) { + if (USER_IDENTIFIER_SCREEN_NAME.equals(primaryUserIdentifier) + || USER_IDENTIFIER_EMAIL.equals(primaryUserIdentifier)) { this.primaryUserIdentifier = primaryUserIdentifier; } else { throw new IllegalArgumentException( @@ -124,11 +124,11 @@ public final class KernelConfig { } public boolean emailIsPrimaryIdentifier() { - return EMAIL.equals(primaryUserIdentifier); + return USER_IDENTIFIER_EMAIL.equals(primaryUserIdentifier); } public boolean screenNameIsPrimaryIdentifier() { - return SCREEN_NAME.equals(primaryUserIdentifier); + return USER_IDENTIFIER_SCREEN_NAME.equals(primaryUserIdentifier); } public boolean isSsoEnabled() { diff --git a/ccm-core/src/main/java/com/arsdigita/kernel/ui/ACSObjectSelectionModel.java b/ccm-core/src/main/java/com/arsdigita/kernel/ui/ACSObjectSelectionModel.java index 567c435c9..aca60da8f 100755 --- a/ccm-core/src/main/java/com/arsdigita/kernel/ui/ACSObjectSelectionModel.java +++ b/ccm-core/src/main/java/com/arsdigita/kernel/ui/ACSObjectSelectionModel.java @@ -302,7 +302,7 @@ public class ACSObjectSelectionModel implements SingleSelectionModel { final CcmObjectRepository repository = cdiUtil.findBean( CcmObjectRepository.class); - return repository.findById(objectId); + return repository.findById(objectId).get(); } diff --git a/ccm-core/src/main/java/com/arsdigita/toolbox/ui/SecurityContainer.java b/ccm-core/src/main/java/com/arsdigita/toolbox/ui/SecurityContainer.java index c483f4008..1abdd2e2e 100755 --- a/ccm-core/src/main/java/com/arsdigita/toolbox/ui/SecurityContainer.java +++ b/ccm-core/src/main/java/com/arsdigita/toolbox/ui/SecurityContainer.java @@ -83,7 +83,7 @@ public abstract class SecurityContainer extends SimpleContainer { public boolean isVisible(final PageState state) { final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final Party party = shiro.getUser(); + final Party party = shiro.getUser().get(); return ( super.isVisible(state) && canAccess(party, state) ); } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/CcmObjectSelectionModel.java b/ccm-core/src/main/java/com/arsdigita/ui/CcmObjectSelectionModel.java index 7239bf1e3..d74be2e6e 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/CcmObjectSelectionModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/CcmObjectSelectionModel.java @@ -120,7 +120,7 @@ public class CcmObjectSelectionModel final CcmObjectRepository repository = CdiUtil.createCdiUtil().findBean( CcmObjectRepository.class); @SuppressWarnings("unchecked") - final T object = (T) repository.findById(key); + final T object = (T) repository.findById(key).get(); return object; } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/UserBanner.java b/ccm-core/src/main/java/com/arsdigita/ui/UserBanner.java index e7887f786..35889ea2d 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/UserBanner.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/UserBanner.java @@ -32,6 +32,8 @@ import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.security.User; import org.libreccm.security.UserRepository; +import java.util.Optional; + import javax.servlet.http.HttpServletRequest; import static com.arsdigita.ui.UI.*; @@ -61,7 +63,7 @@ public class UserBanner extends SimpleComponent { final UserRepository userRepository = cdiUtil.findBean( UserRepository.class); - final User user; + final Optional user; if ("email".equals(config.getPrimaryUserIdentifier())) { user = userRepository.findByEmailAddress( (String) subject.getPrincipal()); @@ -70,15 +72,18 @@ public class UserBanner extends SimpleComponent { .findByName((String) subject.getPrincipal()); } - if (user != null) { - contentElem.addAttribute("givenName", user.getGivenName()); - contentElem.addAttribute("familyName", user.getFamilyName()); - contentElem.addAttribute("screenName", user.getName()); + if (user.isPresent()) { + contentElem.addAttribute("givenName", + user.get().getGivenName()); + contentElem.addAttribute("familyName", + user.get().getFamilyName()); + contentElem.addAttribute("screenName", + user.get().getName()); contentElem.addAttribute("primaryEmail", - user.getPrimaryEmailAddress() + user.get().getPrimaryEmailAddress() .getAddress()); contentElem.addAttribute("userID", - Long.toString(user.getPartyId())); + Long.toString(user.get().getPartyId())); } } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/AbstractAppInstanceForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/AbstractAppInstanceForm.java index c7b97be16..0113ffc29 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/AbstractAppInstanceForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/AbstractAppInstanceForm.java @@ -19,7 +19,6 @@ package com.arsdigita.ui.admin.applications; import com.arsdigita.bebop.Form; -import com.arsdigita.bebop.FormProcessException; import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.ParameterSingleSelectionModel; import com.arsdigita.bebop.event.FormProcessListener; @@ -77,9 +76,8 @@ public abstract class AbstractAppInstanceForm extends Form { final ApplicationRepository appRepo = CdiUtil.createCdiUtil() .findBean(ApplicationRepository.class); - final CcmApplication result = appRepo.findById(Long.parseLong( + return appRepo.findById(Long.parseLong( selectedAppInstance.getSelectedKey(state))); - return Optional.of(result); } } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/AbstractAppSettingsPane.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/AbstractAppSettingsPane.java index dd46acfa1..e1400247b 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/AbstractAppSettingsPane.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/AbstractAppSettingsPane.java @@ -70,9 +70,8 @@ public abstract class AbstractAppSettingsPane extends SimpleContainer { final ApplicationRepository appRepo = CdiUtil.createCdiUtil() .findBean(ApplicationRepository.class); - final CcmApplication result = appRepo.findById(Long.parseLong( + return appRepo.findById(Long.parseLong( selectedAppInstance.getSelectedKey(state))); - return Optional.of(result); } } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/ApplicationsTab.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/ApplicationsTab.java index d47e7103b..d355179f9 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/ApplicationsTab.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/applications/ApplicationsTab.java @@ -41,6 +41,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import static com.arsdigita.ui.admin.AdminUiConstants.*; @@ -98,11 +99,11 @@ public class ApplicationsTab extends LayoutPanel { final ApplicationRepository appRepo = CdiUtil.createCdiUtil() .findBean(ApplicationRepository.class); - final CcmApplication application = appRepo.findById( + final Optional application = appRepo.findById( Long.parseLong(instanceId)); - if (application != null) { + if (application.isPresent()) { selectedAppType.setSelectedKey( - state, application.getApplicationType()); + state, application.get().getApplicationType()); } showAppSettings(state); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoriesTreeModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoriesTreeModel.java index 684162924..ca1da1348 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoriesTreeModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoriesTreeModel.java @@ -47,7 +47,7 @@ public class CategoriesTreeModel implements TreeModel { final CategoryRepository categoryRepository = CdiUtil.createCdiUtil() .findBean(CategoryRepository.class); final Category category = categoryRepository.findById(domain.getRoot() - .getObjectId()); + .getObjectId()).get(); return new CategoryTreeNode(category); } @@ -57,7 +57,7 @@ public class CategoriesTreeModel implements TreeModel { final CategoryRepository categoryRepo = CdiUtil.createCdiUtil() .findBean(CategoryRepository.class); final Category category = categoryRepo.findById( - ((CategoryTreeNode) node).getCategory().getObjectId()); + ((CategoryTreeNode) node).getCategory().getObjectId()).get(); return (category.getSubCategories() != null && !category.getSubCategories().isEmpty()); @@ -69,7 +69,7 @@ public class CategoriesTreeModel implements TreeModel { final CategoryRepository categoryRepo = CdiUtil.createCdiUtil() .findBean(CategoryRepository.class); final Category category = categoryRepo.findById( - ((CategoryTreeNode) node).getCategory().getObjectId()); + ((CategoryTreeNode) node).getCategory().getObjectId()).get(); return new SubCategoryNodesIterator(category.getSubCategories()); } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoriesTreeModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoriesTreeModelBuilder.java index 235daf4e9..c55d84321 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoriesTreeModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoriesTreeModelBuilder.java @@ -51,7 +51,7 @@ class CategoriesTreeModelBuilder final DomainRepository domainRepository = CdiUtil.createCdiUtil(). findBean(DomainRepository.class); final Domain domain = domainRepository.findById(Long.parseLong( - selectedDomainId.getSelectedKey(state))); + selectedDomainId.getSelectedKey(state))).get(); return new CategoriesTreeModel(domain); } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryCreateForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryCreateForm.java index 7a9b2e4e9..0c4d11216 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryCreateForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryCreateForm.java @@ -63,7 +63,7 @@ public class CategoryCreateForm extends Form { final CategoryRepository categoryRepository = CdiUtil .createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepository.findById(Long - .parseLong(selectedCategoryId.getSelectedKey(state))); + .parseLong(selectedCategoryId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.categories.category.create_new_subcategory", ADMIN_BUNDLE, @@ -108,7 +108,8 @@ public class CategoryCreateForm extends Form { CategoryManager.class); final Category selectedCategory = categoryRepository.findById( - Long.parseLong(selectedCategoryId.getSelectedKey(state))); + Long.parseLong(selectedCategoryId.getSelectedKey(state))) + .get(); final FormData data = e.getFormData(); final String categoryNameData = data.getString(CATEGORY_NAME); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDescriptionForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDescriptionForm.java index 8b14da93d..1f687a655 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDescriptionForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDescriptionForm.java @@ -52,17 +52,17 @@ public class CategoryDescriptionForm extends Form { private final SaveCancelSection saveCancelSection; public CategoryDescriptionForm( - final CategoriesTab categoriesTab, - final ParameterSingleSelectionModel selectedCategoryId, - final ParameterSingleSelectionModel selectedLanguage) { + final CategoriesTab categoriesTab, + final ParameterSingleSelectionModel selectedCategoryId, + final ParameterSingleSelectionModel selectedLanguage) { super("categoryDescriptionForm", new BoxPanel(BoxPanel.VERTICAL)); this.categoriesTab = categoriesTab; final ActionLink backLink = new ActionLink(new GlobalizedMessage( - "ui.admin.categories.category.description.edit.back", - ADMIN_BUNDLE)); + "ui.admin.categories.category.description.edit.back", + ADMIN_BUNDLE)); backLink.addActionListener(e -> { categoriesTab.hideDomainTitleForm(e.getPageState()); }); @@ -72,28 +72,28 @@ public class CategoryDescriptionForm extends Form { final PageState state = e.getPageState(); final CategoryRepository categoryRepository = CdiUtil. - createCdiUtil() - .findBean(CategoryRepository.class); + createCdiUtil() + .findBean(CategoryRepository.class); final Category selectedCategory = categoryRepository.findById( - Long.parseLong(selectedCategoryId.getSelectedKey(state))); + Long.parseLong(selectedCategoryId.getSelectedKey(state))).get(); final Locale selectedLocale = new Locale(selectedLanguage - .getSelectedKey(state)); + .getSelectedKey(state)); final Label target = (Label) e.getTarget(); if (selectedCategory.getDescription().hasValue(selectedLocale)) { target.setLabel(new GlobalizedMessage( - "ui.admin.categories.category.description.edit_for_lang", - ADMIN_BUNDLE, - new String[]{selectedCategory.getName(), - selectedLocale.toString()})); + "ui.admin.categories.category.description.edit_for_lang", + ADMIN_BUNDLE, + new String[]{selectedCategory.getName(), + selectedLocale.toString()})); } else { target.setLabel(new GlobalizedMessage( - "ui.admin.categories.category.description.add_for_lang", - ADMIN_BUNDLE, - new String[]{selectedCategory.getName(), - selectedLocale.toString()})); + "ui.admin.categories.category.description.add_for_lang", + ADMIN_BUNDLE, + new String[]{selectedCategory.getName(), + selectedLocale.toString()})); } }); heading.setClassAttr("heading"); @@ -101,7 +101,7 @@ public class CategoryDescriptionForm extends Form { description = new TextArea(LOCALIZED_CATEGORY_DESC); description.setLabel(new GlobalizedMessage( - "ui.admin.categories.category.description.label", ADMIN_BUNDLE)); + "ui.admin.categories.category.description.label", ADMIN_BUNDLE)); description.setCols(60); description.setRows(10); add(description); @@ -113,12 +113,12 @@ public class CategoryDescriptionForm extends Form { final PageState state = e.getPageState(); final CategoryRepository categoryRepository = CdiUtil. - createCdiUtil().findBean(CategoryRepository.class); + createCdiUtil().findBean(CategoryRepository.class); final Category selectedCategory = categoryRepository.findById( - Long.parseLong(selectedCategoryId.getSelectedKey(state))); + Long.parseLong(selectedCategoryId.getSelectedKey(state))).get(); final Locale selectedLocale = new Locale(selectedLanguage - .getSelectedKey(state)); + .getSelectedKey(state)); if (selectedCategory.getDescription().hasValue(selectedLocale)) { description.setValue(state, selectedCategory.getDescription() @@ -129,17 +129,17 @@ public class CategoryDescriptionForm extends Form { addValidationListener(e -> { if (saveCancelSection.getSaveButton().isSelected( - e.getPageState())) { + e.getPageState())) { final FormData data = e.getFormData(); final String titleData = data.getString(LOCALIZED_CATEGORY_DESC); if (Strings.isBlank(titleData)) { data.addError( - LOCALIZED_CATEGORY_DESC, - new GlobalizedMessage( - "ui.admin.categories.category.description.error.not_blank", - ADMIN_BUNDLE)); + LOCALIZED_CATEGORY_DESC, + new GlobalizedMessage( + "ui.admin.categories.category.description.error.not_blank", + ADMIN_BUNDLE)); } } }); @@ -149,16 +149,17 @@ public class CategoryDescriptionForm extends Form { if (saveCancelSection.getSaveButton().isSelected(state)) { final CategoryRepository categoryRepository = CdiUtil - .createCdiUtil() - .findBean(CategoryRepository.class); + .createCdiUtil() + .findBean(CategoryRepository.class); final Category selectedCategory = categoryRepository.findById( - Long.parseLong(selectedCategoryId.getSelectedKey(state))); + Long.parseLong(selectedCategoryId.getSelectedKey(state))) + .get(); final Locale selectedLocale = new Locale(selectedLanguage - .getSelectedKey(state)); + .getSelectedKey(state)); final String titleData = e.getFormData().getString( - LOCALIZED_CATEGORY_DESC); + LOCALIZED_CATEGORY_DESC); selectedCategory.getDescription().addValue(selectedLocale, titleData); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDescriptionTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDescriptionTable.java index 9351e11d0..922f1507a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDescriptionTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDescriptionTable.java @@ -156,7 +156,7 @@ public class CategoryDescriptionTable extends Table { CategoryRepository.class); final Category category = categoryRepository.findById( Long.parseLong(selectedCategoryId. - getSelectedKey(state))); + getSelectedKey(state))).get(); category.getDescription().removeValue(locale); categoryRepository.save(category); @@ -199,7 +199,7 @@ public class CategoryDescriptionTable extends Table { final CategoryRepository categoryRepository = CdiUtil. createCdiUtil().findBean(CategoryRepository.class); selectedCategory = categoryRepository.findById(Long.parseLong( - selectedCategoryId.getSelectedKey(state))); + selectedCategoryId.getSelectedKey(state))).get(); locales = new ArrayList<>(); if (selectedCategory.getDescription() != null) { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDetails.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDetails.java index 42974a20b..2142ce066 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDetails.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryDetails.java @@ -83,7 +83,7 @@ class CategoryDetails extends SegmentedPanel { final CategoryRepository categoryRepo = CdiUtil.createCdiUtil() .findBean(CategoryRepository.class); final Category category = categoryRepo.findById(Long.parseLong( - selectedCategoryId.getSelectedKey(state))); + selectedCategoryId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.categories.category_details.heading", @@ -115,8 +115,9 @@ class CategoryDetails extends SegmentedPanel { final CategoryRepository categoryRepo = CdiUtil .createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepo.findById(Long - .parseLong(selectedCategoryId.getSelectedKey(state))); - + .parseLong(selectedCategoryId.getSelectedKey(state))) + .get(); + //If the category has no parent category it is the root //category of a domain and can't be moved return category.getParentCategory() != null; @@ -202,7 +203,7 @@ class CategoryDetails extends SegmentedPanel { createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepository.findById( Long.parseLong(selectedCategoryId.getSelectedKey( - state))); + state))).get(); final KernelConfig kernelConfig = KernelConfig.getConfig(); final Set supportedLanguages = kernelConfig. getSupportedLanguages(); @@ -248,7 +249,7 @@ class CategoryDetails extends SegmentedPanel { createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepository.findById( Long.parseLong(selectedCategoryId.getSelectedKey( - state))); + state))).get(); final KernelConfig kernelConfig = KernelConfig.getConfig(); final Set supportedLanguages = kernelConfig. getSupportedLanguages(); @@ -287,7 +288,7 @@ class CategoryDetails extends SegmentedPanel { createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepository.findById( Long.parseLong(selectedCategoryId.getSelectedKey( - state))); + state))).get(); final KernelConfig kernelConfig = KernelConfig.getConfig(); final Set supportedLanguages = kernelConfig. getSupportedLanguages(); @@ -335,7 +336,7 @@ class CategoryDetails extends SegmentedPanel { createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepository.findById( Long.parseLong(selectedCategoryId.getSelectedKey( - state))); + state))).get(); final KernelConfig kernelConfig = KernelConfig.getConfig(); final Set supportedLanguages = kernelConfig. getSupportedLanguages(); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryEditForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryEditForm.java index 8bec85dc8..76123f3b6 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryEditForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryEditForm.java @@ -75,7 +75,7 @@ public class CategoryEditForm extends Form { final CategoryRepository categoryRepository = CdiUtil .createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepository.findById(Long - .parseLong(selectedCategoryId.getSelectedKey(state))); + .parseLong(selectedCategoryId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.categories.category.edit_category", ADMIN_BUNDLE, @@ -117,7 +117,7 @@ public class CategoryEditForm extends Form { final CategoryRepository categoryRepository = cdiUtil.findBean( CategoryRepository.class); final Category category = categoryRepository.findById(Long - .parseLong(selectedCategoryId.getSelectedKey(state))); + .parseLong(selectedCategoryId.getSelectedKey(state))).get(); categoryName.setValue(state, category.getName()); final List props = new ArrayList<>(); @@ -161,15 +161,17 @@ public class CategoryEditForm extends Form { CategoryManager.class); final Category category = categoryRepository.findById( - Long.parseLong(selectedCategoryId.getSelectedKey(state))); + Long.parseLong(selectedCategoryId.getSelectedKey(state))) + .get(); final FormData data = e.getFormData(); final String categoryNameData = data.getString(CATEGORY_NAME); category.setName(categoryNameData); - final List propertiesData = Arrays.asList((String[]) data.get( - CATEGORY_PROPERTIES)); + final List propertiesData = Arrays.asList( + (String[]) data.get( + CATEGORY_PROPERTIES)); category.setEnabled(propertiesData.contains(ENABLED)); category.setVisible(propertiesData.contains(VISIBLE)); category.setAbstractCategory(propertiesData.contains(ABSTRACT)); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMover.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMover.java index 26e53790b..16cf225c3 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMover.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMover.java @@ -65,7 +65,7 @@ public class CategoryMover extends Form { final CategoryRepository categoryRepo = CdiUtil .createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepo.findById(Long.parseLong( - selectedCategoryId.getSelectedKey(state))); + selectedCategoryId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.categories.category.move.heading", @@ -94,10 +94,10 @@ public class CategoryMover extends Form { CategoryManager.class); final Category category = categoryRepo.findById(Long.parseLong( - selectedCategoryId.getSelectedKey(state))); + selectedCategoryId.getSelectedKey(state))).get(); final Category parent = category.getParentCategory(); final Category target = categoryRepo.findById(Long.parseLong( - (String) categoryTree.getSelectedKey(state))); + (String) categoryTree.getSelectedKey(state))).get(); categoryManager.removeSubCategoryFromCategory(category, parent); categoryManager.addSubCategoryToCategory(category, target); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMoverModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMoverModel.java index 4c9d64bce..73ad2de53 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMoverModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMoverModel.java @@ -51,7 +51,7 @@ public class CategoryMoverModel implements TreeModel { final CategoryRepository categoryRepository = CdiUtil.createCdiUtil() .findBean(CategoryRepository.class); final Category category = categoryRepository.findById(domain.getRoot() - .getObjectId()); + .getObjectId()).get(); return new CategoryMoverNode(category); } @@ -71,7 +71,7 @@ public class CategoryMoverModel implements TreeModel { final CategoryRepository categoryRepo = CdiUtil.createCdiUtil() .findBean(CategoryRepository.class); final Category category = categoryRepo.findById( - ((CategoryMoverNode) node).getCategory().getObjectId()); + ((CategoryMoverNode) node).getCategory().getObjectId()).get(); final List subCategories = new ArrayList<>(); category.getSubCategories().forEach(c -> { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMoverModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMoverModelBuilder.java index 0bde20f24..085c33a71 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMoverModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryMoverModelBuilder.java @@ -58,12 +58,12 @@ public class CategoryMoverModelBuilder final DomainRepository domainRepository = cdiUtil.findBean( DomainRepository.class); final Domain domain = domainRepository.findById(Long.parseLong( - selectedDomainId.getSelectedKey(state))); + selectedDomainId.getSelectedKey(state))).get(); final CategoryRepository categoryRepository = cdiUtil.findBean( CategoryRepository.class); final Category category = categoryRepository.findById(Long.parseLong( - selectedCategoryId.getSelectedKey(state))); + selectedCategoryId.getSelectedKey(state))).get(); return new CategoryMoverModel(domain, category); } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryPropertySheetModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryPropertySheetModelBuilder.java index 649664c4a..1cac71666 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryPropertySheetModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryPropertySheetModelBuilder.java @@ -57,7 +57,7 @@ public class CategoryPropertySheetModelBuilder final CategoryRepository categoryRepository = CdiUtil. createCdiUtil().findBean(CategoryRepository.class); selectedCategory = categoryRepository.findById(Long.parseLong( - categoryIdStr)); + categoryIdStr)).get(); } return new CategoryPropertySheetModel(selectedCategory); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryTitleForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryTitleForm.java index 9310085cb..7768aa158 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryTitleForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryTitleForm.java @@ -51,16 +51,16 @@ public class CategoryTitleForm extends Form { private final SaveCancelSection saveCancelSection; public CategoryTitleForm( - final CategoriesTab categoriesTab, - final ParameterSingleSelectionModel selectedCategoryId, - final ParameterSingleSelectionModel selectedLanguage) { + final CategoriesTab categoriesTab, + final ParameterSingleSelectionModel selectedCategoryId, + final ParameterSingleSelectionModel selectedLanguage) { super("categoryTitleForm", new BoxPanel(BoxPanel.VERTICAL)); this.categoriesTab = categoriesTab; final ActionLink backLink = new ActionLink(new GlobalizedMessage( - "ui.admin.categories.category.title.edit.back", ADMIN_BUNDLE)); + "ui.admin.categories.category.title.edit.back", ADMIN_BUNDLE)); backLink.addActionListener(e -> { categoriesTab.hideDomainTitleForm(e.getPageState()); }); @@ -70,28 +70,28 @@ public class CategoryTitleForm extends Form { final PageState state = e.getPageState(); final CategoryRepository categoryRepository = CdiUtil. - createCdiUtil() - .findBean(CategoryRepository.class); + createCdiUtil() + .findBean(CategoryRepository.class); final Category selectedCategory = categoryRepository.findById( - Long.parseLong(selectedCategoryId.getSelectedKey(state))); + Long.parseLong(selectedCategoryId.getSelectedKey(state))).get(); final Locale selectedLocale = new Locale(selectedLanguage - .getSelectedKey(state)); + .getSelectedKey(state)); final Label target = (Label) e.getTarget(); if (selectedCategory.getTitle().hasValue(selectedLocale)) { target.setLabel(new GlobalizedMessage( - "ui.admin.categories.category.title.edit_for_lang", - ADMIN_BUNDLE, - new String[]{selectedCategory.getName(), - selectedLocale.toString()})); + "ui.admin.categories.category.title.edit_for_lang", + ADMIN_BUNDLE, + new String[]{selectedCategory.getName(), + selectedLocale.toString()})); } else { target.setLabel(new GlobalizedMessage( - "ui.admin.categories.category.title.add_for_lang", - ADMIN_BUNDLE, - new String[]{selectedCategory.getName(), - selectedLocale.toString()})); + "ui.admin.categories.category.title.add_for_lang", + ADMIN_BUNDLE, + new String[]{selectedCategory.getName(), + selectedLocale.toString()})); } }); heading.setClassAttr("heading"); @@ -99,7 +99,7 @@ public class CategoryTitleForm extends Form { title = new TextField(LOCALIZED_CATEGORY_TITLE); title.setLabel(new GlobalizedMessage( - "ui.admin.categories.category.title.label", ADMIN_BUNDLE)); + "ui.admin.categories.category.title.label", ADMIN_BUNDLE)); add(title); saveCancelSection = new SaveCancelSection(); @@ -109,12 +109,12 @@ public class CategoryTitleForm extends Form { final PageState state = e.getPageState(); final CategoryRepository categoryRepository = CdiUtil. - createCdiUtil().findBean(CategoryRepository.class); + createCdiUtil().findBean(CategoryRepository.class); final Category selectedCategory = categoryRepository.findById( - Long.parseLong(selectedCategoryId.getSelectedKey(state))); + Long.parseLong(selectedCategoryId.getSelectedKey(state))).get(); final Locale selectedLocale = new Locale(selectedLanguage - .getSelectedKey(state)); + .getSelectedKey(state)); if (selectedCategory.getTitle().hasValue(selectedLocale)) { title.setValue(state, selectedCategory.getTitle().getValue( @@ -127,14 +127,14 @@ public class CategoryTitleForm extends Form { final FormData data = e.getFormData(); final String titleData = data. - getString(LOCALIZED_CATEGORY_TITLE); + getString(LOCALIZED_CATEGORY_TITLE); if (Strings.isBlank(titleData)) { data.addError( - LOCALIZED_CATEGORY_TITLE, - new GlobalizedMessage( - "ui.admin.categories.category.title.error.not_blank", - ADMIN_BUNDLE)); + LOCALIZED_CATEGORY_TITLE, + new GlobalizedMessage( + "ui.admin.categories.category.title.error.not_blank", + ADMIN_BUNDLE)); } } }); @@ -144,15 +144,16 @@ public class CategoryTitleForm extends Form { if (saveCancelSection.getSaveButton().isSelected(state)) { final CategoryRepository categoryRepository = CdiUtil. - createCdiUtil().findBean(CategoryRepository.class); + createCdiUtil().findBean(CategoryRepository.class); final Category selectedCategory = categoryRepository.findById( - Long.parseLong(selectedCategoryId.getSelectedKey(state))); + Long.parseLong(selectedCategoryId.getSelectedKey(state))) + .get(); final Locale selectedLocale = new Locale(selectedLanguage - .getSelectedKey(state)); + .getSelectedKey(state)); final String titleData = e.getFormData().getString( - LOCALIZED_CATEGORY_TITLE); + LOCALIZED_CATEGORY_TITLE); selectedCategory.getTitle().addValue(selectedLocale, titleData); categoryRepository.save(selectedCategory); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryTitleTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryTitleTable.java index b97b12e02..c1cf27a93 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryTitleTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/CategoryTitleTable.java @@ -154,7 +154,7 @@ public class CategoryTitleTable extends Table { CategoryRepository.class); final Category category = categoryRepository.findById( Long.parseLong(selectedCategoryId. - getSelectedKey(state))); + getSelectedKey(state))).get(); category.getTitle().removeValue(locale); categoryRepository.save(category); @@ -197,7 +197,7 @@ public class CategoryTitleTable extends Table { final CategoryRepository categoryRepository = CdiUtil. createCdiUtil().findBean(CategoryRepository.class); selectedCategory = categoryRepository.findById(Long.parseLong( - selectedCategoryId.getSelectedKey(state))); + selectedCategoryId.getSelectedKey(state))).get(); locales = new ArrayList<>(); if (selectedCategory.getTitle() != null) { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDescriptionForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDescriptionForm.java index f19df36b5..f7d08fff1 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDescriptionForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDescriptionForm.java @@ -73,7 +73,7 @@ class DomainDescriptionForm extends Form { final DomainRepository domainRepository = CdiUtil.createCdiUtil() .findBean(DomainRepository.class); final Domain selectedDomain = domainRepository.findById( - Long.parseLong(selectedDomainId.getSelectedKey(state))); + Long.parseLong(selectedDomainId.getSelectedKey(state))).get(); final Locale selectedLocale = new Locale(selectedLanguage .getSelectedKey(state)); @@ -113,7 +113,7 @@ class DomainDescriptionForm extends Form { final DomainRepository domainRepository = CdiUtil.createCdiUtil() .findBean(DomainRepository.class); final Domain selectedDomain = domainRepository.findById( - Long.parseLong(selectedDomainId.getSelectedKey(state))); + Long.parseLong(selectedDomainId.getSelectedKey(state))).get(); final Locale selectedLocale = new Locale(selectedLanguage .getSelectedKey(state)); @@ -150,7 +150,8 @@ class DomainDescriptionForm extends Form { .createCdiUtil() .findBean(DomainRepository.class); final Domain selectedDomain = domainRepository.findById( - Long.parseLong(selectedDomainId.getSelectedKey(state))); + Long.parseLong(selectedDomainId.getSelectedKey(state))) + .get(); final Locale selectedLocale = new Locale(selectedLanguage .getSelectedKey(state)); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDescriptionTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDescriptionTable.java index b14301a5c..8f8474ddc 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDescriptionTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDescriptionTable.java @@ -61,9 +61,9 @@ class DomainDescriptionTable extends Table { private final ParameterSingleSelectionModel selectedLanguage; public DomainDescriptionTable( - final CategoriesTab categoriesTab, - final ParameterSingleSelectionModel selectedDomainId, - final ParameterSingleSelectionModel selectedLanguage) { + final CategoriesTab categoriesTab, + final ParameterSingleSelectionModel selectedDomainId, + final ParameterSingleSelectionModel selectedLanguage) { super(); @@ -74,30 +74,30 @@ class DomainDescriptionTable extends Table { setIdAttr("domainDescriptionTable"); setEmptyView(new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.description.none", - ADMIN_BUNDLE))); + "ui.admin.categories.domain_details.description.none", + ADMIN_BUNDLE))); final TableColumnModel columnModel = getColumnModel(); columnModel.add(new TableColumn( - COL_LOCALE, - new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.description.col_lang", - ADMIN_BUNDLE)))); + COL_LOCALE, + new Label(new GlobalizedMessage( + "ui.admin.categories.domain_details.description.col_lang", + ADMIN_BUNDLE)))); columnModel.add(new TableColumn( - COL_VALUE, - new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.description.col_value", - ADMIN_BUNDLE)))); + COL_VALUE, + new Label(new GlobalizedMessage( + "ui.admin.categories.domain_details.description.col_value", + ADMIN_BUNDLE)))); columnModel.add(new TableColumn( - COL_EDIT, - new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.description.col_edit", - ADMIN_BUNDLE)))); + COL_EDIT, + new Label(new GlobalizedMessage( + "ui.admin.categories.domain_details.description.col_edit", + ADMIN_BUNDLE)))); columnModel.add(new TableColumn( - COL_DEL, - new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.description.col_del", - ADMIN_BUNDLE)))); + COL_DEL, + new Label(new GlobalizedMessage( + "ui.admin.categories.domain_details.description.col_del", + ADMIN_BUNDLE)))); columnModel.get(COL_EDIT).setCellRenderer(new TableCellRenderer() { @@ -129,9 +129,9 @@ class DomainDescriptionTable extends Table { } else { final ControlLink link = new ControlLink((Component) value); link.setConfirmation(new GlobalizedMessage( - "ui.admin.categories.domain_details.description" - + ".del_confirm", - ADMIN_BUNDLE)); + "ui.admin.categories.domain_details.description" + + ".del_confirm", + ADMIN_BUNDLE)); return link; } } @@ -152,13 +152,13 @@ class DomainDescriptionTable extends Table { break; case COL_DEL: final Locale locale = new Locale((String) event - .getRowKey()); + .getRowKey()); final DomainRepository domainRepository = CdiUtil - .createCdiUtil(). - findBean(DomainRepository.class); + .createCdiUtil(). + findBean(DomainRepository.class); final Domain domain = domainRepository.findById( - Long.parseLong(selectedDomainId - .getSelectedKey(state))); + Long.parseLong(selectedDomainId + .getSelectedKey(state))).get(); domain.getDescription().removeValue(locale); domainRepository.save(domain); @@ -179,8 +179,8 @@ class DomainDescriptionTable extends Table { } private class DomainDescriptionTableModelBuilder - extends LockableImpl - implements TableModelBuilder { + extends LockableImpl + implements TableModelBuilder { @Override public TableModel makeModel(final Table table, @@ -200,13 +200,13 @@ class DomainDescriptionTable extends Table { public DomainDescriptionTableModel(final PageState state) { final DomainRepository domainRepository = CdiUtil.createCdiUtil() - .findBean(DomainRepository.class); + .findBean(DomainRepository.class); selectedDomain = domainRepository.findById( - Long.parseLong(selectedDomainId.getSelectedKey(state))); + Long.parseLong(selectedDomainId.getSelectedKey(state))).get(); locales = new ArrayList<>(); locales.addAll(selectedDomain.getDescription() - .getAvailableLocales()); + .getAvailableLocales()); locales.sort((l1, l2) -> { return l1.toString().compareTo(l2.toString()); }); @@ -234,15 +234,15 @@ class DomainDescriptionTable extends Table { return selectedDomain.getDescription().getValue(locale); case COL_EDIT: return new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.description.edit", - ADMIN_BUNDLE)); + "ui.admin.categories.domain_details.description.edit", + ADMIN_BUNDLE)); case COL_DEL: return new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.description.del", - ADMIN_BUNDLE)); + "ui.admin.categories.domain_details.description.del", + ADMIN_BUNDLE)); default: throw new IllegalArgumentException( - "Not a valid column index"); + "Not a valid column index"); } } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDetails.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDetails.java index 364595278..fa2734d9e 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDetails.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainDetails.java @@ -81,7 +81,7 @@ class DomainDetails extends SegmentedPanel { final DomainRepository domainRepository = CdiUtil.createCdiUtil() .findBean(DomainRepository.class); final Domain domain = domainRepository.findById(Long.parseLong( - selectedDomainId.getSelectedKey(state))); + selectedDomainId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.categories.domain.details.heading", @@ -163,7 +163,8 @@ class DomainDetails extends SegmentedPanel { final DomainRepository domainRepository = CdiUtil .createCdiUtil().findBean(DomainRepository.class); final Domain domain = domainRepository.findById(Long - .parseLong(selectedDomainId.getSelectedKey(state))); + .parseLong(selectedDomainId.getSelectedKey(state))) + .get(); final KernelConfig kernelConfig = KernelConfig.getConfig(); final Set supportedLanguages = kernelConfig .getSupportedLanguages(); @@ -208,8 +209,7 @@ class DomainDetails extends SegmentedPanel { final DomainRepository domainRepository = CdiUtil .createCdiUtil().findBean(DomainRepository.class); final Domain domain = domainRepository.findById(Long - .parseLong( - selectedDomainId.getSelectedKey(state))); + .parseLong(selectedDomainId.getSelectedKey(state))).get(); final KernelConfig kernelConfig = KernelConfig.getConfig(); final Set supportedLanguages = kernelConfig .getSupportedLanguages(); @@ -247,8 +247,8 @@ class DomainDetails extends SegmentedPanel { final DomainRepository domainRepository = CdiUtil .createCdiUtil().findBean(DomainRepository.class); final Domain domain = domainRepository.findById(Long - .parseLong( - selectedDomainId.getSelectedKey(state))); + .parseLong(selectedDomainId.getSelectedKey(state))) + .get(); final KernelConfig kernelConfig = KernelConfig.getConfig(); final Set supportedLanguages = kernelConfig .getSupportedLanguages(); @@ -294,8 +294,7 @@ class DomainDetails extends SegmentedPanel { final DomainRepository domainRepository = CdiUtil .createCdiUtil().findBean(DomainRepository.class); final Domain domain = domainRepository.findById(Long - .parseLong( - selectedDomainId.getSelectedKey(state))); + .parseLong(selectedDomainId.getSelectedKey(state))).get(); final KernelConfig kernelConfig = KernelConfig.getConfig(); final Set supportedLanguages = kernelConfig .getSupportedLanguages(); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainForm.java index 1c2c67223..3e2e6ff93 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainForm.java @@ -77,7 +77,7 @@ class DomainForm extends Form { final DomainRepository domainRepository = CdiUtil. createCdiUtil().findBean(DomainRepository.class); final Domain domain = domainRepository.findById(Long.parseLong( - selectedDomainId.getSelectedKey(state))); + selectedDomainId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.categories.domain_form.heading.edit", ADMIN_BUNDLE, @@ -130,7 +130,7 @@ class DomainForm extends Form { final DomainRepository domainRepository = cdiUtil.findBean( DomainRepository.class); final Domain domain = domainRepository.findById(Long.parseLong( - selectedDomainId.getSelectedKey(state))); + selectedDomainId.getSelectedKey(state))).get(); domainKey.setValue(state, domain.getDomainKey()); domainUri.setValue(state, domain.getUri()); @@ -202,7 +202,7 @@ class DomainForm extends Form { } } else { domain = domainRepository.findById(Long.parseLong( - selectedDomainId.getSelectedKey(state))); + selectedDomainId.getSelectedKey(state))).get(); } domain.setDomainKey(domainKeyData); domain.setUri(domainUriData); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainMappingAddForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainMappingAddForm.java index 18a917658..46cfd9e61 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainMappingAddForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainMappingAddForm.java @@ -75,7 +75,7 @@ class DomainMappingAddForm extends Form { final Domain domain = domainRepository.findById( Long.parseLong( selectedDomainId.getSelectedKey(e.getPageState())), - "Domain.withOwners"); + "Domain.withOwners").get(); final List applications = appRepository .findAll(); @@ -130,10 +130,10 @@ class DomainMappingAddForm extends Form { final Domain domain = domainRepository.findById( Long.parseLong(selectedDomainId.getSelectedKey(state)), - "Domain.withOwners"); + "Domain.withOwners").get(); final CcmApplication application = appRepository.findById( Long.parseLong(data.getString(DOMAIN_MAPPING_OWNER)), - "CcmApplication.withDomains"); + "CcmApplication.withDomains").get(); domainManager.addDomainOwner(application, domain); }); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainMappingsTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainMappingsTable.java index 4da6c8a95..b7906be74 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainMappingsTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainMappingsTable.java @@ -130,10 +130,10 @@ class DomainMappingsTable extends Table { final Domain domain = domainRepository.findById( Long.parseLong(selectedDomainId.getSelectedKey(event - .getPageState()))); + .getPageState()))).get(); final CcmApplication owner = appRepository.findById( - Long.parseLong((String)event.getRowKey())); + Long.parseLong((String)event.getRowKey())).get(); domainManager.removeDomainOwner(owner, domain); @@ -175,7 +175,7 @@ class DomainMappingsTable extends Table { .findBean(DomainRepository.class); final Domain domain = domainRepository.findById( Long.parseLong(selectedDomainId.getSelectedKey(state)), - "Domain.withOwners"); + "Domain.withOwners").get(); domainOwnerships = new ArrayList<>(domain.getOwners()); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainPropertySheetModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainPropertySheetModelBuilder.java index d6c149bfb..e5de28ef2 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainPropertySheetModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainPropertySheetModelBuilder.java @@ -58,7 +58,7 @@ class DomainPropertySheetModelBuilder final DomainRepository domainRepository = CdiUtil.createCdiUtil() .findBean(DomainRepository.class); selectedDomain = domainRepository.findById(Long.parseLong( - domainIdStr)); + domainIdStr)).get(); } return new DomainPropertySheetModel(selectedDomain); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainTitleForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainTitleForm.java index befeef5fb..5451bba74 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainTitleForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainTitleForm.java @@ -66,14 +66,14 @@ class DomainTitleForm extends Form { categoriesTab.hideDomainTitleForm(e.getPageState()); }); add(backLink); - + final Label heading = new Label(e -> { final PageState state = e.getPageState(); final DomainRepository domainRepository = CdiUtil.createCdiUtil() .findBean(DomainRepository.class); final Domain selectedDomain = domainRepository.findById( - Long.parseLong(selectedDomainId.getSelectedKey(state))); + Long.parseLong(selectedDomainId.getSelectedKey(state))).get(); final Locale selectedLocale = new Locale(selectedLanguage .getSelectedKey(state)); @@ -111,7 +111,7 @@ class DomainTitleForm extends Form { final DomainRepository domainRepository = CdiUtil.createCdiUtil() .findBean(DomainRepository.class); final Domain selectedDomain = domainRepository.findById( - Long.parseLong(selectedDomainId.getSelectedKey(state))); + Long.parseLong(selectedDomainId.getSelectedKey(state))).get(); final Locale selectedLocale = new Locale(selectedLanguage .getSelectedKey(state)); @@ -148,7 +148,8 @@ class DomainTitleForm extends Form { .createCdiUtil() .findBean(DomainRepository.class); final Domain selectedDomain = domainRepository.findById( - Long.parseLong(selectedDomainId.getSelectedKey(state))); + Long.parseLong(selectedDomainId.getSelectedKey(state))) + .get(); final Locale selectedLocale = new Locale(selectedLanguage .getSelectedKey(state)); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainTitleTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainTitleTable.java index 7fb1c6ac6..50e40134f 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainTitleTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/DomainTitleTable.java @@ -61,9 +61,9 @@ class DomainTitleTable extends Table { private final ParameterSingleSelectionModel selectedLanguage; public DomainTitleTable( - final CategoriesTab categoriesTab, - final ParameterSingleSelectionModel selectedDomainId, - final ParameterSingleSelectionModel selectedLanguage) { + final CategoriesTab categoriesTab, + final ParameterSingleSelectionModel selectedDomainId, + final ParameterSingleSelectionModel selectedLanguage) { super(); @@ -74,29 +74,29 @@ class DomainTitleTable extends Table { setIdAttr("domainTitleTable"); setEmptyView(new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.title.none", ADMIN_BUNDLE))); + "ui.admin.categories.domain_details.title.none", ADMIN_BUNDLE))); final TableColumnModel columnModel = getColumnModel(); columnModel.add(new TableColumn( - COL_LOCALE, - new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.title.col_lang", - ADMIN_BUNDLE)))); + COL_LOCALE, + new Label(new GlobalizedMessage( + "ui.admin.categories.domain_details.title.col_lang", + ADMIN_BUNDLE)))); columnModel.add(new TableColumn( - COL_VALUE, - new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.title.col_value", - ADMIN_BUNDLE)))); + COL_VALUE, + new Label(new GlobalizedMessage( + "ui.admin.categories.domain_details.title.col_value", + ADMIN_BUNDLE)))); columnModel.add(new TableColumn( - COL_EDIT, - new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.title.col_edit", - ADMIN_BUNDLE)))); + COL_EDIT, + new Label(new GlobalizedMessage( + "ui.admin.categories.domain_details.title.col_edit", + ADMIN_BUNDLE)))); columnModel.add(new TableColumn( - COL_DEL, - new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.title.col_del", - ADMIN_BUNDLE)))); + COL_DEL, + new Label(new GlobalizedMessage( + "ui.admin.categories.domain_details.title.col_del", + ADMIN_BUNDLE)))); columnModel.get(COL_EDIT).setCellRenderer(new TableCellRenderer() { @@ -128,8 +128,8 @@ class DomainTitleTable extends Table { } else { final ControlLink link = new ControlLink((Component) value); link.setConfirmation(new GlobalizedMessage( - "ui.admin.categories.domain_details.title.del_confirm", - ADMIN_BUNDLE)); + "ui.admin.categories.domain_details.title.del_confirm", + ADMIN_BUNDLE)); return link; } } @@ -150,13 +150,13 @@ class DomainTitleTable extends Table { break; case COL_DEL: final Locale locale = new Locale((String) event - .getRowKey()); + .getRowKey()); final DomainRepository domainRepository = CdiUtil - .createCdiUtil(). - findBean(DomainRepository.class); + .createCdiUtil(). + findBean(DomainRepository.class); final Domain domain = domainRepository.findById( - Long.parseLong(selectedDomainId - .getSelectedKey(state))); + Long.parseLong(selectedDomainId + .getSelectedKey(state))).get(); domain.getTitle().removeValue(locale); domainRepository.save(domain); @@ -176,8 +176,8 @@ class DomainTitleTable extends Table { } private class DomainTitleTableModelBuilder - extends LockableImpl - implements TableModelBuilder { + extends LockableImpl + implements TableModelBuilder { @Override public TableModel makeModel(final Table table, final PageState state) { @@ -196,9 +196,9 @@ class DomainTitleTable extends Table { public DomainTitleTableModel(final PageState state) { final DomainRepository domainRepository = CdiUtil.createCdiUtil() - .findBean(DomainRepository.class); + .findBean(DomainRepository.class); selectedDomain = domainRepository.findById( - Long.parseLong(selectedDomainId.getSelectedKey(state))); + Long.parseLong(selectedDomainId.getSelectedKey(state))).get(); locales = new ArrayList<>(); locales.addAll(selectedDomain.getTitle().getAvailableLocales()); @@ -229,17 +229,17 @@ class DomainTitleTable extends Table { return selectedDomain.getTitle().getValue(locale); case COL_EDIT: return new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.title.edit", - ADMIN_BUNDLE + "ui.admin.categories.domain_details.title.edit", + ADMIN_BUNDLE )); case COL_DEL: return new Label(new GlobalizedMessage( - "ui.admin.categories.domain_details.title.del", - ADMIN_BUNDLE + "ui.admin.categories.domain_details.title.del", + ADMIN_BUNDLE )); default: throw new IllegalArgumentException( - "Not a valid column index"); + "Not a valid column index"); } } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/SubCategoriesTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/SubCategoriesTable.java index 551246ba1..605f5cc86 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/SubCategoriesTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/categories/SubCategoriesTable.java @@ -199,9 +199,9 @@ public class SubCategoriesTable extends Table { .findBean(CategoryManager.class); final Category parentCategory = categoryRepo.findById( Long.parseLong(selectedCategoryId.getSelectedKey( - state))); + state))).get(); final Category subCategory = categoryRepo.findById(Long - .parseLong((String) event.getRowKey())); + .parseLong((String) event.getRowKey())).get(); categoryManager.decreaseCategoryOrder(subCategory, parentCategory); break; @@ -214,9 +214,9 @@ public class SubCategoriesTable extends Table { .findBean(CategoryManager.class); final Category parentCategory = categoryRepo.findById( Long.parseLong(selectedCategoryId.getSelectedKey( - state))); + state))).get(); final Category subCategory = categoryRepo.findById(Long - .parseLong((String) event.getRowKey())); + .parseLong((String) event.getRowKey())).get(); categoryManager.increaseCategoryOrder(subCategory, parentCategory); break; @@ -232,7 +232,7 @@ public class SubCategoriesTable extends Table { final CategoryRepository categoryRepo = cdiUtil .findBean(CategoryRepository.class); final Category category = categoryRepo.findById(Long - .parseLong((String) event.getRowKey())); + .parseLong((String) event.getRowKey())).get(); categoryRepo.delete(category); break; } @@ -271,7 +271,7 @@ public class SubCategoriesTable extends Table { final CategoryRepository categoryRepo = CdiUtil. createCdiUtil().findBean(CategoryRepository.class); final Category category = categoryRepo.findById(Long.parseLong( - selectedCategoryId.getSelectedKey(state))); + selectedCategoryId.getSelectedKey(state))).get(); subCategories = new ArrayList<>(category.getSubCategories()); subCategories.sort((c1, c2) -> { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAddMemberForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAddMemberForm.java index 72f3ba224..67c1fa26a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAddMemberForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAddMemberForm.java @@ -53,11 +53,11 @@ import static com.arsdigita.ui.admin.AdminUiConstants.*; /** * Form for adding a new member to group. The form contains a form for searching - * members (uses the user name, the family name, the given name and the primary + * members (uses the user name, the family name, the given name and the primary * email address). After a search term was send, a table with all matching users * is displayed. The table also contains an action link for adding a user to the * group which is currently selected.. - * + * * @author Jens Pelzetter */ class GroupAddMemberForm extends Form { @@ -95,7 +95,7 @@ class GroupAddMemberForm extends Form { final GroupRepository groupRepository = CdiUtil.createCdiUtil() .findBean(GroupRepository.class); final Group group = groupRepository.findById(Long.parseLong( - selectedGroupId.getSelectedKey(state))); + selectedGroupId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.group_details.add_member.header", @@ -104,7 +104,7 @@ class GroupAddMemberForm extends Form { }); links.add(heading); - + add(links); memberName = new TextField(MEMBER_NAME); @@ -191,10 +191,11 @@ class GroupAddMemberForm extends Form { final GroupManager groupManager = cdiUtil.findBean( GroupManager.class); final User user = userRepository.findById(Long - .parseLong(key)); + .parseLong(key)).get(); final Group group = groupRepository.findById( Long.parseLong( - selectedGroupId.getSelectedKey(state))); + selectedGroupId.getSelectedKey(state))) + .get(); groupManager.addMemberToGroup(user, group); groupAdmin.hideGroupMemberAddForm(state); break; diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupDetails.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupDetails.java index 69b7c7173..a0c4e0924 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupDetails.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupDetails.java @@ -62,7 +62,7 @@ class GroupDetails extends BoxPanel { final GroupRepository groupRepository = CdiUtil.createCdiUtil() .findBean(GroupRepository.class); final Group group = groupRepository.findById(Long.parseLong( - selectedGroupId.getSelectedKey(state))); + selectedGroupId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.group_details.header", ADMIN_BUNDLE, diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupForm.java index c650daab6..ad408a31a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupForm.java @@ -31,6 +31,8 @@ import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.security.Group; import org.libreccm.security.GroupRepository; +import java.util.Optional; + import static com.arsdigita.ui.admin.AdminUiConstants.*; /** @@ -112,7 +114,8 @@ class GroupForm extends Form { final GroupRepository groupRepository = cdiUtil.findBean( GroupRepository.class); - if (groupRepository.findByName(groupNameData) != null) { + final Optional group = groupRepository.findByName(groupNameData); + if (group.isPresent()) { data.addError(GROUP_NAME, new GlobalizedMessage( "ui.admin.group.error.name_already_in_use", ADMIN_BUNDLE)); @@ -132,7 +135,7 @@ class GroupForm extends Form { GroupRepository.class); final Group group = groupRepository.findById(Long.parseLong( - selectedGroupIdStr)); + selectedGroupIdStr)).get(); groupName.setValue(state, group.getName()); } }); @@ -158,7 +161,7 @@ class GroupForm extends Form { groupRepository.save(group); } else { final Group group = groupRepository.findById(Long.parseLong( - selectedGroupIdStr)); + selectedGroupIdStr)).get(); group.setName(groupNameData); groupRepository.save(group); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupMembersTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupMembersTable.java index 1c406a4cb..92ba2545a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupMembersTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupMembersTable.java @@ -132,10 +132,10 @@ class GroupMembersTable extends Table { final GroupManager groupManager = cdiUtil.findBean( GroupManager.class); final User user = userRepository.findById(Long - .parseLong(key)); + .parseLong(key)).get(); final Group group = groupRepository.findById( Long.parseLong( - selectedGroupId.getSelectedKey(state))); + selectedGroupId.getSelectedKey(state))).get(); groupManager.removeMemberFromGroup(user, group); break; default: @@ -186,7 +186,7 @@ class GroupMembersTable extends Table { final GroupRepository groupRepository = CdiUtil.createCdiUtil() .findBean(GroupRepository.class); final Group group = groupRepository.findById(Long.parseLong( - selectedGroupId.getSelectedKey(state))); + selectedGroupId.getSelectedKey(state))).get(); members = new ArrayList<>(); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModelBuilder.java index 4ca639dd0..8e4b063f1 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModelBuilder.java @@ -55,7 +55,7 @@ class GroupPropertySheetModelBuilder } else { final GroupRepository groupRepository = CdiUtil.createCdiUtil() .findBean(GroupRepository.class); - selectedGroup = groupRepository.findById(Long.parseLong(groupIdStr)); + selectedGroup = groupRepository.findById(Long.parseLong(groupIdStr)).get(); } return new GroupPropertySheetModel(selectedGroup); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupsTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupsTable.java index cd2fbc3ee..5eb2fc7a1 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupsTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupsTable.java @@ -134,7 +134,7 @@ class GroupsTable extends Table { final GroupRepository groupRepository = CdiUtil .createCdiUtil().findBean(GroupRepository.class); final Group group = groupRepository.findById( - Long.parseLong(key)); + Long.parseLong(key)).get(); groupRepository.delete(group); break; default: diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAddMemberForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAddMemberForm.java index f96546de3..89efad041 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAddMemberForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAddMemberForm.java @@ -89,7 +89,7 @@ class RoleAddMemberForm extends Form { final RoleRepository roleRepository = CdiUtil.createCdiUtil() .findBean(RoleRepository.class); final Role role = roleRepository.findById(Long.parseLong( - selectedRoleId.getSelectedKey(state))); + selectedRoleId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.role_members.add.heading", @@ -169,10 +169,10 @@ class RoleAddMemberForm extends Form { final RoleManager roleManager = cdiUtil.findBean( RoleManager.class); final Party party = partyRepository.findById( - Long.parseLong(key)); + Long.parseLong(key)).get(); final Role role = roleRepository.findById( Long.parseLong( - selectedRoleId.getSelectedKey(state))); + selectedRoleId.getSelectedKey(state))).get(); roleManager.assignRoleToParty(role, party); roleAdmin.hideRoleMemberAddForm(state); break; diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleDetails.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleDetails.java index 21c5d8fc0..2953661fb 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleDetails.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleDetails.java @@ -61,7 +61,7 @@ class RoleDetails extends BoxPanel { final RoleRepository roleRepository = CdiUtil.createCdiUtil() .findBean(RoleRepository.class); final Role role = roleRepository.findById(Long.parseLong( - selectedRoleId.getSelectedKey(state))); + selectedRoleId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.role_details.heading", ADMIN_BUNDLE, diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleForm.java index 565b7932d..eeccf521a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleForm.java @@ -31,6 +31,8 @@ import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.security.Role; import org.libreccm.security.RoleRepository; +import java.util.Optional; + import static com.arsdigita.ui.admin.AdminUiConstants.*; /** @@ -106,7 +108,8 @@ class RoleForm extends Form { final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final RoleRepository roleRepository = cdiUtil.findBean( RoleRepository.class); - if (roleRepository.findByName(roleNameData) != null) { + final Optional role = roleRepository.findByName(roleNameData); + if (role.isPresent()) { data.addError(ROLE_NAME, new GlobalizedMessage( "ui.admin.role.error.name_already_in_use", ADMIN_BUNDLE)); @@ -126,7 +129,7 @@ class RoleForm extends Form { RoleRepository.class); final Role role = roleRepository.findById(Long.parseLong( - selectedRoleIdStr)); + selectedRoleIdStr)).get(); roleName.setValue(state, role.getName()); } }); @@ -151,7 +154,7 @@ class RoleForm extends Form { roleRepository.save(role); } else { final Role role = roleRepository.findById(Long.parseLong( - selectedRoleIdStr)); + selectedRoleIdStr)).get(); role.setName(roleNameData); roleRepository.save(role); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleMembersTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleMembersTable.java index fdc5cba9a..a9cc2263b 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleMembersTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleMembersTable.java @@ -119,9 +119,9 @@ class RoleMembersTable extends Table { final RoleManager roleManager = cdiUtil.findBean( RoleManager.class); final Party party = partyRepository.findById(Long - .parseLong(key)); + .parseLong(key)).get(); final Role role = roleRepository.findById( - Long.parseLong(selectedRoleId.getSelectedKey(state))); + Long.parseLong(selectedRoleId.getSelectedKey(state))).get(); roleManager.removeRoleFromParty(role, party); break; default: @@ -173,7 +173,7 @@ class RoleMembersTable extends Table { final RoleRepository roleRepository = CdiUtil.createCdiUtil() .findBean(RoleRepository.class); final Role role = roleRepository.findById(Long.parseLong( - selectedRoleId.getSelectedKey(state))); + selectedRoleId.getSelectedKey(state))).get(); members = new ArrayList<>(); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsForm.java index 3016fe5a5..a722abf9f 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsForm.java @@ -78,7 +78,7 @@ class RolePermissionsForm extends Form { final RoleRepository roleRepository = CdiUtil.createCdiUtil() .findBean(RoleRepository.class); final Role role = roleRepository.findById(Long.parseLong( - selectedRoleId.getSelectedKey(state))); + selectedRoleId.getSelectedKey(state))).get(); target.setLabel(new GlobalizedMessage( "ui.admin.role_details.add_permission.heading", @@ -170,7 +170,7 @@ class RolePermissionsForm extends Form { RoleRepository.class); final Role role = roleRepository.findById(Long.parseLong( - selectedRoleId.getSelectedKey(state))); + selectedRoleId.getSelectedKey(state))).get(); final PermissionManager permissionManager = cdiUtil.findBean( PermissionManager.class); if (objectIdData == null || objectIdData.isEmpty()) { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsTable.java index 29d025035..c0b95cc5b 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsTable.java @@ -113,7 +113,7 @@ class RolePermissionsTable extends Table { final PermissionManager permissionManager = cdiUtil .findBean(PermissionManager.class); final Role role = roleRepository.findById( - Long.parseLong(selectedRoleId.getSelectedKey(state))); + Long.parseLong(selectedRoleId.getSelectedKey(state))).get(); final Permission permission = permissionManager .findById(Long.parseLong(key)); if (permission.getObject() == null) { @@ -176,7 +176,7 @@ class RolePermissionsTable extends Table { .findBean(RoleRepository.class); final Role role = roleRepository.findById( Long.parseLong(selectedRoleId.getSelectedKey(state)), - Role.ENTITY_GRPAH_WITH_PERMISSIONS); + Role.ENTITY_GRPAH_WITH_PERMISSIONS).get(); permissions = new ArrayList<>(role.getPermissions()); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModelBuilder.java index 3b1d79790..96a6ccbf4 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModelBuilder.java @@ -31,7 +31,7 @@ import org.libreccm.security.RoleRepository; /** * Model builder for the {@link RolePropertySheetModel}. - * + * * @author Jens Pelzetter */ class RolePropertySheetModelBuilder extends LockableImpl @@ -54,9 +54,10 @@ class RolePropertySheetModelBuilder extends LockableImpl } else { final RoleRepository roleRepository = CdiUtil.createCdiUtil() .findBean(RoleRepository.class); - selectedRole = roleRepository.findById(Long.parseLong(roleIdStr)); + selectedRole = roleRepository.findById(Long.parseLong(roleIdStr)) + .get(); } - + return new RolePropertySheetModel(selectedRole); } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolesTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolesTable.java index 4ff28d2a7..2d3807783 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolesTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolesTable.java @@ -131,7 +131,7 @@ class RolesTable extends Table { final RoleRepository roleRepository = CdiUtil .createCdiUtil().findBean(RoleRepository.class); final Role role = roleRepository.findById(Long - .parseLong(key)); + .parseLong(key)).get(); roleRepository.delete(role); break; default: diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/ActionLinks.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/ActionLinks.java index cc817e770..3b09d1776 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/ActionLinks.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/ActionLinks.java @@ -80,7 +80,7 @@ class ActionLinks extends BoxPanel { final UserRepository userRepository = cdiUtil.findBean( UserRepository.class); final User user = userRepository.findById(Long.parseLong( - selectedUserId.getSelectedKey(e.getPageState()))); + selectedUserId.getSelectedKey(e.getPageState()))).get(); final ChallengeManager challengeManager = cdiUtil.findBean( ChallengeManager.class); try { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailForm.java index 7b4dc7ca1..a963d5b24 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailForm.java @@ -93,7 +93,7 @@ class EmailForm extends Form { final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); final User user = userRepository.findById(Long.parseLong( - userIdStr)); + userIdStr)).get(); EmailAddress email = null; if (user.getPrimaryEmailAddress().getAddress().equals(selected)) { email = user.getPrimaryEmailAddress(); @@ -147,7 +147,7 @@ class EmailForm extends Form { final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); final User user = userRepository.findById(Long.parseLong( - userIdStr)); + userIdStr)).get(); EmailAddress email = null; if (selected == null) { email = new EmailAddress(); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTable.java index 98bf402f7..cc4c18406 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTable.java @@ -135,7 +135,7 @@ class EmailTable extends Table { final UserRepository userRepository = CdiUtil .createCdiUtil().findBean(UserRepository.class); final User user = userRepository.findById(Long - .parseLong(userIdStr)); + .parseLong(userIdStr)).get(); EmailAddress email = null; for (EmailAddress current : user.getEmailAddresses()) { if (current.getAddress().equals(key)) { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModelBuilder.java index 5dff76850..25cc9c358 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModelBuilder.java @@ -54,7 +54,7 @@ class EmailTableModelBuilder extends LockableImpl final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); final long userId = Long.parseLong(userIdStr); - selectedUser = userRepository.findById(userId); + selectedUser = userRepository.findById(userId).get(); } return new EmailTableModel(selectedUser); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupMembershipsForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupMembershipsForm.java index ddcefcce7..5d7e9758d 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupMembershipsForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupMembershipsForm.java @@ -51,24 +51,24 @@ import static com.arsdigita.ui.admin.AdminUiConstants.*; /** * Form for editing the group memberships of a user. - * + * * @author Jens Pelzetter */ class GroupMembershipsForm extends Form { private static final String GROUPS_SELECTOR = "groupsselector"; - + private final CheckboxGroup groups; private final SaveCancelSection saveCancelSection; - + public GroupMembershipsForm( final UserAdmin userAdmin, final ParameterSingleSelectionModel selectedUserId) { super("edit-usergroupmemberships-form"); - + final BoxPanel links = new BoxPanel(BoxPanel.VERTICAL); - + final Label heading = new Label(e -> { final PageState state = e.getPageState(); final Label target = (Label) e.getTarget(); @@ -76,7 +76,8 @@ class GroupMembershipsForm extends Form { final String userIdStr = selectedUserId.getSelectedKey(state); final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); - final User user = userRepository.findById(Long.parseLong(userIdStr)); + final User user = userRepository.findById(Long.parseLong(userIdStr)) + .get(); target.setLabel(new GlobalizedMessage( "ui.admin.user.edit_group_memberships", @@ -95,7 +96,7 @@ class GroupMembershipsForm extends Form { links.add(backLink); add(links); - + groups = new CheckboxGroup(GROUPS_SELECTOR); try { groups.addPrintListener(e -> { @@ -124,10 +125,10 @@ class GroupMembershipsForm extends Form { throw new UncheckedWrapperException(ex); } add(groups); - + saveCancelSection = new SaveCancelSection(); add(saveCancelSection); - + addInitListener(e -> { final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final UserRepository userRepository = cdiUtil.findBean( @@ -136,7 +137,7 @@ class GroupMembershipsForm extends Form { final PageState state = e.getPageState(); final User user = userRepository.findById(Long.parseLong( - selectedUserId.getSelectedKey(state))); + selectedUserId.getSelectedKey(state))).get(); final List assignedGroups = new ArrayList<>(); user.getGroupMemberships().forEach(m -> { assignedGroups.add(m.getGroup()); @@ -150,7 +151,7 @@ class GroupMembershipsForm extends Form { groups.setValue(state, selectedGroups); }); - + addProcessListener(e -> { final PageState state = e.getPageState(); if (saveCancelSection.getSaveButton().isSelected(state)) { @@ -168,12 +169,12 @@ class GroupMembershipsForm extends Form { GROUPS_SELECTOR); final User user = userRepository.findById(Long.parseLong( - selectedUserId.getSelectedKey(state))); + selectedUserId.getSelectedKey(state))).get(); final List selectedGroups = new ArrayList<>(); if (selectedGroupIds != null) { Arrays.stream(selectedGroupIds).forEach(id -> { final Group group = groupRepository.findById( - Long.parseLong(id)); + Long.parseLong(id)).get(); selectedGroups.add(group); }); } @@ -195,7 +196,7 @@ class GroupMembershipsForm extends Form { //The group is maybe detached or not fully loaded, //therefore we load the group from the database. final Group group = groupRepository.findById( - g.getPartyId()); + g.getPartyId()).get(); groupManager.removeMemberFromGroup(user, group); } }); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModelBuilder.java index fa62f6b4a..271449eba 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModelBuilder.java @@ -54,7 +54,7 @@ class GroupsRolesTableModelBuilder extends LockableImpl final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); final long userId = Long.parseLong(userIdStr); - selectedUser = userRepository.findById(userId); + selectedUser = userRepository.findById(userId).get(); } return new GroupsRolesTableModel(selectedUser); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PasswordSetForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PasswordSetForm.java index 9e5d2814d..e77acaa99 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PasswordSetForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PasswordSetForm.java @@ -114,7 +114,7 @@ class PasswordSetForm extends Form { final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); final User user = userRepository.findById(Long.parseLong( - userIdStr)); + userIdStr)).get(); final UserManager userManager = CdiUtil.createCdiUtil() .findBean( diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModelBuilder.java index b39b334dd..48e59216a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModelBuilder.java @@ -54,7 +54,7 @@ class PrimaryEmailTableModelBuilder extends LockableImpl final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); final long userId = Long.parseLong(userIdStr); - selectedUser = userRepository.findById(userId); + selectedUser = userRepository.findById(userId).get(); } return new PrimaryEmailTableModel(selectedUser); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/RoleMembershipsForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/RoleMembershipsForm.java index d01ec094a..80a11b10a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/RoleMembershipsForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/RoleMembershipsForm.java @@ -51,7 +51,7 @@ import static com.arsdigita.ui.admin.AdminUiConstants.*; /** * Form for editing the role memberships of a user. - * + * * @author Jens Pelzetter */ class RoleMembershipsForm extends Form { @@ -75,7 +75,8 @@ class RoleMembershipsForm extends Form { final String userIdStr = selectedUserId.getSelectedKey(state); final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); - final User user = userRepository.findById(Long.parseLong(userIdStr)); + final User user = userRepository.findById(Long.parseLong(userIdStr)) + .get(); target.setLabel(new GlobalizedMessage( "ui.admin.user_edit_role_memberships", @@ -136,7 +137,7 @@ class RoleMembershipsForm extends Form { final PageState state = e.getPageState(); final User user = userRepository.findById(Long.parseLong( - selectedUserId.getSelectedKey(state))); + selectedUserId.getSelectedKey(state))).get(); final List assignedRoles = new ArrayList<>(); user.getRoleMemberships().forEach(m -> { assignedRoles.add(m.getRole()); @@ -150,12 +151,12 @@ class RoleMembershipsForm extends Form { roles.setValue(state, selectedRoles); }); - + addProcessListener(e -> { final PageState state = e.getPageState(); - + if (saveCancelSection.getSaveButton().isSelected(state)) { - + final FormData data = e.getFormData(); final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); @@ -170,12 +171,12 @@ class RoleMembershipsForm extends Form { ROLES_SELECTOR); final User user = userRepository.findById(Long.parseLong( - selectedUserId.getSelectedKey(state))); + selectedUserId.getSelectedKey(state))).get(); final List selectedRoles = new ArrayList<>(); if (selectedRolesIds != null) { Arrays.stream(selectedRolesIds).forEach(id -> { final Role role = roleRepository.findById( - Long.parseLong(id)); + Long.parseLong(id)).get(); selectedRoles.add(role); }); } @@ -196,7 +197,8 @@ class RoleMembershipsForm extends Form { if (!selectedRoles.contains(r)) { //Role is maybe detached or not fully loaded, //therefore we load the role from the database. - final Role role = roleRepository.findById(r.getRoleId()); + final Role role = roleRepository.findById(r.getRoleId()) + .get(); roleManager.removeRoleFromParty(role, user); } }); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserEditForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserEditForm.java index 4d8420739..340c15293 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserEditForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserEditForm.java @@ -103,7 +103,8 @@ class UserEditForm extends Form { final String userIdStr = selectedUserId.getSelectedKey(state); final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); - final User user = userRepository.findById(Long.parseLong(userIdStr)); + final User user = userRepository.findById(Long.parseLong(userIdStr)) + .get(); userName.setValue(state, user.getName()); familyName.setValue(state, user.getFamilyName()); @@ -157,7 +158,7 @@ class UserEditForm extends Form { final UserRepository userRepository = CdiUtil.createCdiUtil() .findBean(UserRepository.class); final User user = userRepository.findById(Long.parseLong( - userIdStr)); + userIdStr)).get(); if (!user.getName().equals(userName.getValue(state))) { user.setName((String) userName.getValue(state)); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModelBuilder.java index 00271072a..4b3dd5e7a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModelBuilder.java @@ -30,7 +30,7 @@ import org.libreccm.security.UserRepository; /** * Model builder for the {@link UserPropertySheetModelBuilder}. - * + * * @author Jens Pelzetter */ class UserPropertySheetModelBuilder @@ -53,7 +53,8 @@ class UserPropertySheetModelBuilder } else { final UserRepository userRepository = CdiUtil.createCdiUtil(). findBean(UserRepository.class); - selectedUser = userRepository.findById(Long.parseLong(userIdStr)); + selectedUser = userRepository.findById(Long.parseLong(userIdStr)) + .get(); } return new UserPropertySheetModel(selectedUser); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/ChangePasswordForm.java b/ccm-core/src/main/java/com/arsdigita/ui/login/ChangePasswordForm.java index 8b824c84c..f282ff064 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/ChangePasswordForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/ChangePasswordForm.java @@ -119,7 +119,7 @@ public class ChangePasswordForm extends Form final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); final Label greeting; if (user == null) { @@ -198,7 +198,7 @@ public class ChangePasswordForm extends Form final Shiro shiro = cdiUtil.findBean(Shiro.class); final UserManager userManager = cdiUtil.findBean(UserManager.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); if (!userManager.verifyPassword(user, oldPassword)) { data.addError(OLD_PASSWORD_PARAM_NAME, LoginHelper.getMessage( "login.changePasswordForm.badPasswordError")); @@ -245,7 +245,7 @@ public class ChangePasswordForm extends Form final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final UserManager userManager = cdiUtil.findBean(UserManager.class); final Shiro shiro = cdiUtil.findBean(Shiro.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); final String newPassword = (String) m_newPassword.getValue(state); userManager.updatePassword(user, newPassword); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/EmailInitListener.java b/ccm-core/src/main/java/com/arsdigita/ui/login/EmailInitListener.java index c95d75912..3a539e2d4 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/EmailInitListener.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/EmailInitListener.java @@ -62,7 +62,7 @@ public class EmailInitListener implements FormInitListener { return; } - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); if (user == null) { s_log.debug("FAILURE no such user"); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/RecoverPasswordForm.java b/ccm-core/src/main/java/com/arsdigita/ui/login/RecoverPasswordForm.java index 1b66dc710..3e8a39f95 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/RecoverPasswordForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/RecoverPasswordForm.java @@ -39,6 +39,8 @@ import org.libreccm.security.ChallengeManager; import org.libreccm.security.User; import org.libreccm.security.UserRepository; +import java.util.Optional; + import javax.mail.MessagingException; import static com.arsdigita.ui.login.LoginConstants.*; @@ -131,26 +133,18 @@ public class RecoverPasswordForm extends Form { final UserRepository userRepository = cdiUtil.findBean( UserRepository.class); - final User user = userRepository.findByEmailAddress( + final Optional user = userRepository.findByEmailAddress( (String) data.get(EMAIL)); -// if (user == null) { -// throw new FormProcessException( -// "No user for provided email address found. This should " -// + "not happen because we checked this in the " -// + "validation listener.", -// new GlobalizedMessage( -// "login.form.recover_password.error", LOGIN_BUNDLE)); -// } // We don't show an error message if there is no matching user // account. This way we don't provide an attacker with // the valuable information that there is user account for // a particular email address. - if (user != null) { + if (user.isPresent()) { final ChallengeManager challengeManager = cdiUtil.findBean( ChallengeManager.class); try { - challengeManager.sendPasswordRecover(user); + challengeManager.sendPasswordRecover(user.get()); } catch (MessagingException ex) { throw new FormProcessException( "Failed to send password recovery instructions.", @@ -161,7 +155,7 @@ public class RecoverPasswordForm extends Form { } } - if (user == null) { + if (!user.isPresent()) { LOGGER.warn( "Password recover requested for not existing user {}.", data.get(EMAIL)); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/ResetPasswordForm.java b/ccm-core/src/main/java/com/arsdigita/ui/login/ResetPasswordForm.java index 9a04b1988..ae6cf7145 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/ResetPasswordForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/ResetPasswordForm.java @@ -46,6 +46,7 @@ import org.libreccm.security.User; import org.libreccm.security.UserRepository; import java.util.List; +import java.util.Optional; import javax.servlet.http.HttpServletRequest; @@ -153,19 +154,19 @@ public class ResetPasswordForm extends Form { addInitListener(e -> { final PageState state = e.getPageState(); final HttpServletRequest request = state.getRequest(); - + final String paramEmail = request.getParameter("email"); final String paramToken = request.getParameter("token"); - + if (paramEmail != null) { email.setValue(state, paramEmail); } - + if (paramToken != null) { authToken.setValue(state, paramToken); } }); - + addValidationListener(e -> { final PageState state = e.getPageState(); @@ -182,8 +183,9 @@ public class ResetPasswordForm extends Form { final UserRepository userRepository = cdiUtil.findBean( UserRepository.class); - final User user = userRepository.findByEmailAddress(emailData); - if (user == null) { + final Optional user = userRepository.findByEmailAddress( + emailData); + if (!user.isPresent()) { data.addError(new GlobalizedMessage( "login.form.reset_password.error", LOGIN_BUNDLE)); return; @@ -192,7 +194,7 @@ public class ResetPasswordForm extends Form { final OneTimeAuthManager oneTimeAuthManager = cdiUtil.findBean( OneTimeAuthManager.class); if (!oneTimeAuthManager.validTokenExistsForUser( - user, OneTimeAuthTokenPurpose.RECOVER_PASSWORD)) { + user.get(), OneTimeAuthTokenPurpose.RECOVER_PASSWORD)) { data.addError(new GlobalizedMessage( "login.form.reset_password.error", LOGIN_BUNDLE)); @@ -201,7 +203,7 @@ public class ResetPasswordForm extends Form { final List tokens = oneTimeAuthManager .retrieveForUser( - user, OneTimeAuthTokenPurpose.RECOVER_PASSWORD); + user.get(), OneTimeAuthTokenPurpose.RECOVER_PASSWORD); boolean result = false; for (OneTimeAuthToken token : tokens) { @@ -239,8 +241,9 @@ public class ResetPasswordForm extends Form { final UserRepository userRepository = cdiUtil.findBean( UserRepository.class); - final User user = userRepository.findByEmailAddress(emailData); - if (user == null) { + final Optional user = userRepository.findByEmailAddress( + emailData); + if (!user.isPresent()) { throw new FormProcessException( "No matching user found. This should not happen because " + "we verified that just a few moments ago.", @@ -251,7 +254,7 @@ public class ResetPasswordForm extends Form { final ChallengeManager challengeManager = cdiUtil.findBean( ChallengeManager.class); try { - challengeManager.finishPasswordRecover(user, + challengeManager.finishPasswordRecover(user.get(), authTokenData, passwordData); } catch (ChallengeFailedException ex) { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/ScreenNameInitListener.java b/ccm-core/src/main/java/com/arsdigita/ui/login/ScreenNameInitListener.java index fd5b6c2d3..58eab0853 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/ScreenNameInitListener.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/ScreenNameInitListener.java @@ -72,7 +72,7 @@ public class ScreenNameInitListener implements FormInitListener { return; } - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); if (user.getName() == null) { s_log.debug("FAILURE null screen name"); return; diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/UserAccountActivationForm.java b/ccm-core/src/main/java/com/arsdigita/ui/login/UserAccountActivationForm.java index e36fd500d..1e495ec88 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/UserAccountActivationForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/UserAccountActivationForm.java @@ -45,6 +45,7 @@ import org.libreccm.security.User; import org.libreccm.security.UserRepository; import java.util.List; +import java.util.Optional; import javax.servlet.http.HttpServletRequest; @@ -143,8 +144,9 @@ public class UserAccountActivationForm extends Form { final UserRepository userRepository = cdiUtil.findBean( UserRepository.class); - final User user = userRepository.findByEmailAddress(emailData); - if (user == null) { + final Optional user = userRepository.findByEmailAddress( + emailData); + if (!user.isPresent()) { data.addError(new GlobalizedMessage( "login.form.account_activation.error", LOGIN_BUNDLE)); return; @@ -153,7 +155,7 @@ public class UserAccountActivationForm extends Form { final OneTimeAuthManager oneTimeAuthManager = cdiUtil.findBean( OneTimeAuthManager.class); if (!oneTimeAuthManager.validTokenExistsForUser( - user, OneTimeAuthTokenPurpose.ACCOUNT_ACTIVATION)) { + user.get(), OneTimeAuthTokenPurpose.ACCOUNT_ACTIVATION)) { data.addError(new GlobalizedMessage( "login.form.account_activation.error", LOGIN_BUNDLE)); @@ -162,7 +164,7 @@ public class UserAccountActivationForm extends Form { final List tokens = oneTimeAuthManager .retrieveForUser( - user, OneTimeAuthTokenPurpose.ACCOUNT_ACTIVATION); + user.get(), OneTimeAuthTokenPurpose.ACCOUNT_ACTIVATION); boolean result = false; for (OneTimeAuthToken token : tokens) { @@ -192,8 +194,9 @@ public class UserAccountActivationForm extends Form { final UserRepository userRepository = cdiUtil.findBean( UserRepository.class); - final User user = userRepository.findByEmailAddress(emailData); - if (user == null) { + final Optional user = userRepository.findByEmailAddress( + emailData); + if (!user.isPresent()) { throw new FormProcessException( "No matching user found. This should not happen because " + "we verified that just a few moments ago.", @@ -204,7 +207,7 @@ public class UserAccountActivationForm extends Form { final ChallengeManager challengeManager = cdiUtil.findBean( ChallengeManager.class); try { - challengeManager.finishAccountActivation(user, + challengeManager.finishAccountActivation(user.get(), authTokenData); } catch (ChallengeFailedException ex) { throw new FormProcessException( diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/UserEditForm.java b/ccm-core/src/main/java/com/arsdigita/ui/login/UserEditForm.java index 74088494f..ef65ace1a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/UserEditForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/UserEditForm.java @@ -67,7 +67,7 @@ public class UserEditForm extends UserForm @Override public Object initialValue(final PageState ps) { final Shiro shiro = CdiUtil.createCdiUtil().findBean(Shiro.class); - final User result = shiro.getUser(); + final User result = shiro.getUser().get(); return result; } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/UserForm.java b/ccm-core/src/main/java/com/arsdigita/ui/login/UserForm.java index 26c8209b5..14f9051f3 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/UserForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/UserForm.java @@ -43,6 +43,8 @@ import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.security.User; import org.libreccm.security.UserRepository; +import java.util.Optional; + /** * Common code for user new / add / edit forms. * @@ -279,8 +281,8 @@ public abstract class UserForm extends Form final String oldScreenName = user.getName(); final String screenName = (String) m_screenName.getValue(state); if (screenName != null && !screenName.equals(oldScreenName)) { - final User result = userRepository.findByName(screenName); - if (result != null) { + final Optional result = userRepository.findByName(screenName); + if (result.isPresent()) { data.addError(FORM_SCREEN_NAME, ERROR_DUPLICATE_SN); } } @@ -289,8 +291,8 @@ public abstract class UserForm extends Form final String email = (String) m_email.getValue(state); if (KernelConfig.getConfig().emailIsPrimaryIdentifier() && email != null && !email.equals(oldEmail)) { - final User result = userRepository.findByEmailAddress(email); - if (result != null) { + final Optional result = userRepository.findByEmailAddress(email); + if (result.isPresent()) { data.addError(FORM_EMAIL, ERROR_DUPLICATE_EMAIL); } } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/login/UserInfo.java b/ccm-core/src/main/java/com/arsdigita/ui/login/UserInfo.java index c4873abe7..f291ffd1a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/login/UserInfo.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/login/UserInfo.java @@ -209,7 +209,7 @@ public class UserInfo extends SimpleContainer { } final Shiro shiro = CdiUtil.createCdiUtil().findBean(Shiro.class); - final User user = shiro.getUser(); + final User user = shiro.getUser().get(); return user; } diff --git a/ccm-core/src/main/java/com/arsdigita/web/BaseApplicationServlet.java b/ccm-core/src/main/java/com/arsdigita/web/BaseApplicationServlet.java index 868aa2bab..cb54295cc 100644 --- a/ccm-core/src/main/java/com/arsdigita/web/BaseApplicationServlet.java +++ b/ccm-core/src/main/java/com/arsdigita/web/BaseApplicationServlet.java @@ -186,7 +186,7 @@ public abstract class BaseApplicationServlet extends BaseServlet { + "database"); } - return appRepository.findById(appId); + return appRepository.findById(appId).get(); } /** diff --git a/ccm-core/src/main/java/org/libreccm/categorization/CategoryManager.java b/ccm-core/src/main/java/org/libreccm/categorization/CategoryManager.java index 31bc3d90c..685640ed4 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/CategoryManager.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/CategoryManager.java @@ -98,7 +98,7 @@ public class CategoryManager { addObjectToCategory(object, category, null); } - + /** * Assigns an category to an object. * @@ -115,7 +115,7 @@ public class CategoryManager { * {@code null}. * @param category The category to which the object should be assigned. Can * never be {@code null}. - * @param type Type of the categorisation. + * @param type Type of the categorisation. */ @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) @@ -420,23 +420,44 @@ public class CategoryManager { @RequiresPrivilege(PRIVILEGE_MANAGE_CATEGORY) final Category parentCategory) { - final Category sub = categoryRepo.findById(subCategory.getObjectId()); - final Category parent = categoryRepo.findById(parentCategory + if (subCategory == null) { + throw new IllegalArgumentException("subCategory can't be null."); + } + if (parentCategory == null) { + throw new IllegalArgumentException("parentCategory can't be null."); + } + + final Optional sub = categoryRepo.findById(subCategory + .getObjectId()); + final Optional parent = categoryRepo.findById(parentCategory .getObjectId()); - if (sub.getParentCategory() != null) { - final Category oldParent = sub.getParentCategory(); - removeSubCategoryFromCategory(sub, oldParent); + if (!sub.isPresent()) { + throw new IllegalArgumentException(String.format( + "The provided category to add as sub category {} was not found " + + "in the database.", + subCategory.toString())); + } + if (!parent.isPresent()) { + throw new IllegalArgumentException(String.format( + "The category {} provided as parent category was not found in " + + "the database.", + parentCategory.toString())); } - final int order = parent.getSubCategories().size() + 1; - parent.addSubCategory(sub); - sub.setParentCategory(parent); - sub.setCategoryOrder(order); + if (sub.get().getParentCategory() != null) { + final Category oldParent = sub.get().getParentCategory(); + removeSubCategoryFromCategory(sub.get(), oldParent); + } + + final int order = parent.get().getSubCategories().size() + 1; + parent.get().addSubCategory(sub.get()); + sub.get().setParentCategory(parent.get()); + sub.get().setCategoryOrder(order); shiro.getSystemUser().execute(() -> { - categoryRepo.save(parent); - categoryRepo.save(sub); + categoryRepo.save(parent.get()); + categoryRepo.save(sub.get()); }); } diff --git a/ccm-core/src/main/java/org/libreccm/categorization/DomainManager.java b/ccm-core/src/main/java/org/libreccm/categorization/DomainManager.java index 4b968b8ca..a9366c65b 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/DomainManager.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/DomainManager.java @@ -24,6 +24,7 @@ import org.libreccm.web.ApplicationRepository; import org.libreccm.web.CcmApplication; import java.util.List; +import java.util.Optional; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; @@ -128,26 +129,45 @@ public class DomainManager { @Transactional(Transactional.TxType.REQUIRED) public void removeDomainOwner(final CcmApplication application, final Domain domain) { - final CcmApplication owner = applicationRepo.findById( + if (application == null) { + throw new IllegalArgumentException("Can't remove owner null."); + } + if (domain == null) { + throw new IllegalArgumentException( + "Can't remove the owner from domain null."); + } + + final Optional owner = applicationRepo.findById( application.getObjectId(), "CcmApplication.withDomains"); - final Domain ownedDomain = domainRepo.findById( + final Optional ownedDomain = domainRepo.findById( domain.getObjectId(), "Domain.withOwners"); + if (!owner.isPresent()) { + throw new IllegalArgumentException(String.format( + "The provided owner %s does not exist in the database.", + application.toString())); + } + if (!ownedDomain.isPresent()) { + throw new IllegalArgumentException(String.format( + "The provided domain %s does not exist in the database.", + domain.toString())); + } + final TypedQuery query = entityManager .createNamedQuery("DomainOwnership.findByOwnerAndDomain", DomainOwnership.class); - query.setParameter("owner", owner); - query.setParameter("domain", ownedDomain); + query.setParameter("owner", owner.get()); + query.setParameter("domain", ownedDomain.get()); final List result = query.getResultList(); if (result != null) { result.forEach(o -> { - ownedDomain.removeOwner(o); - owner.removeDomain(o); + ownedDomain.get().removeOwner(o); + owner.get().removeDomain(o); entityManager.remove(o); - domainRepo.save(ownedDomain); - applicationRepo.save(owner); + domainRepo.save(ownedDomain.get()); + applicationRepo.save(owner.get()); }); } } diff --git a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java index 1f46e3909..60c0810f2 100644 --- a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java +++ b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java @@ -45,10 +45,10 @@ import javax.transaction.Transactional; public abstract class AbstractEntityRepository { private static final Logger LOGGER = LogManager.getLogger( - AbstractEntityRepository.class); + AbstractEntityRepository.class); protected static final String FETCH_GRAPH_HINT_KEY - = "javax.persistence.fetchgraph"; + = "javax.persistence.fetchgraph"; /** * The {@link EntityManager} instance to use. Provided by the container via @@ -79,23 +79,6 @@ public abstract class AbstractEntityRepository { return entityManager.createEntityGraph(getEntityClass()); } - /** - * Helper method for retrieving a single result from a query. - * - * @param query The query from which the result is retrieved. - * - * @return A first result or the query or {@code null} of there is no - * result. - */ - protected E getSingleResultOrNull(final TypedQuery query) { - final List result = query.getResultList(); - if (result.isEmpty()) { - return null; - } else { - return result.get(0); - } - } - /** * Helper method for retrieving a single result from a query. In contrast to * {@link #getSingleResultOrNull(javax.persistence.TypedQuery)} this method @@ -104,7 +87,7 @@ public abstract class AbstractEntityRepository { * @param query The query from which the result is retrieved. * * @return An {@link Optional} instance wrapping the first result of the - * query. If there is no result the {@code Optional} is empty. + * query. If there is no result the {@code Optional} is empty. */ protected Optional getSingleResult(final TypedQuery query) { final List result = query.getResultList(); @@ -125,13 +108,12 @@ public abstract class AbstractEntityRepository { * @param entityGraphName The name of the named entity graph. * * @return A mutable copy of the named entity graph identified by the - * provided name or {@code null} if there is no such named entity - * graph. + * provided name or {@code null} if there is no such named entity graph. */ @SuppressWarnings("unchecked") public EntityGraph createEntityGraph(final String entityGraphName) { return (EntityGraph) entityManager.createEntityGraph( - entityGraphName); + entityGraphName); } /** @@ -139,7 +121,7 @@ public abstract class AbstractEntityRepository { * a repository class overwrite this method. * * @return The {@code Class} of the Entity which are managed by this - * repository. + * repository. */ public abstract Class getEntityClass(); @@ -148,27 +130,31 @@ public abstract class AbstractEntityRepository { * * @param entityId The ID of the entity to retrieve. * - * @return The entity identified by the provided ID of {@code null} if there - * is no such entity. + * @return An {@link Optional} containing the entity identified by the + * provided ID or am empty {@link Optional} if there is no such entity. */ @Transactional(Transactional.TxType.REQUIRED) - public E findById(final K entityId) { - return entityManager.find(getEntityClass(), entityId); + public Optional findById(final K entityId) { + return Optional.ofNullable(entityManager.find(getEntityClass(), + entityId)); } @Transactional(Transactional.TxType.REQUIRED) - public E findById(final K entityId, final String entityGraphName) { + public Optional findById(final K entityId, final String entityGraphName) { @SuppressWarnings("unchecked") final EntityGraph entityGraph = (EntityGraph) entityManager. - getEntityGraph(entityGraphName); + getEntityGraph(entityGraphName); return findById(entityId, entityGraph); } @Transactional(Transactional.TxType.REQUIRED) - public E findById(final K entityId, final EntityGraph entityGraph) { + public Optional findById(final K entityId, + final EntityGraph entityGraph) { final Map hints = new HashMap<>(); hints.put(FETCH_GRAPH_HINT_KEY, entityGraph); - return entityManager.find(getEntityClass(), entityId, hints); + return Optional.ofNullable(entityManager.find(getEntityClass(), + entityId, + hints)); } /** @@ -176,7 +162,7 @@ public abstract class AbstractEntityRepository { * responsible for. * * @return The list of entities in the database which are of the type - * provided by {@link #getEntityClass()}. + * provided by {@link #getEntityClass()}. */ @Transactional(Transactional.TxType.REQUIRED) public List findAll() { @@ -189,7 +175,7 @@ public abstract class AbstractEntityRepository { public List findAll(final String entityGraphName) { @SuppressWarnings("unchecked") final EntityGraph entityGraph = (EntityGraph) entityManager - .getEntityGraph(entityGraphName); + .getEntityGraph(entityGraphName); return findAll(entityGraph); } @@ -203,9 +189,9 @@ public abstract class AbstractEntityRepository { public CriteriaQuery createCriteriaQuery() { final CriteriaBuilder criteriaBuilder = entityManager - .getCriteriaBuilder(); + .getCriteriaBuilder(); final CriteriaQuery criteriaQuery = criteriaBuilder.createQuery( - getEntityClass()); + getEntityClass()); final Root root = criteriaQuery.from(getEntityClass()); return criteriaQuery.select(root); } @@ -223,8 +209,8 @@ public abstract class AbstractEntityRepository { final String graphName) { @SuppressWarnings("unchecked") final EntityGraph entityGraph = (EntityGraph< E>) entityManager - .getEntityGraph( - graphName); + .getEntityGraph( + graphName); return executeCriteriaQuery(criteriaQuery, entityGraph); } @@ -243,7 +229,7 @@ public abstract class AbstractEntityRepository { * @param entity The entity to check. * * @return {@code true} if the entity is new (isn't in the database yet), - * {@code false} otherwise. + * {@code false} otherwise. */ public abstract boolean isNew(final E entity); diff --git a/ccm-core/src/main/java/org/libreccm/security/CcmShiroRealmController.java b/ccm-core/src/main/java/org/libreccm/security/CcmShiroRealmController.java index ea28b3edf..1b2bdd111 100644 --- a/ccm-core/src/main/java/org/libreccm/security/CcmShiroRealmController.java +++ b/ccm-core/src/main/java/org/libreccm/security/CcmShiroRealmController.java @@ -26,6 +26,7 @@ import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.libreccm.configuration.ConfigurationManager; import java.util.List; +import java.util.Optional; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; @@ -75,7 +76,7 @@ class CcmShiroRealmController { final KernelConfig kernelConfig = confManager.findConfiguration( KernelConfig.class); - final User user; + final Optional user; if ("email".equals(kernelConfig.getPrimaryUserIdentifier())) { user = userRepo.findByEmailAddress(userIdentifier); } else { @@ -83,15 +84,14 @@ class CcmShiroRealmController { } // If no matching user is found throw an AuthenticationException - if (user - == null) { + if (!user.isPresent()) { throw new AuthenticationException(String.format( "No user identified by principal \"%s\" was found. Primary user " + "identifier is \"%s\".", userIdentifier, kernelConfig.getPrimaryUserIdentifier())); } - return user; + return user.get(); } @Transactional(Transactional.TxType.REQUIRED) diff --git a/ccm-core/src/main/java/org/libreccm/security/GroupRepository.java b/ccm-core/src/main/java/org/libreccm/security/GroupRepository.java index 469f28c35..7427cef5b 100644 --- a/ccm-core/src/main/java/org/libreccm/security/GroupRepository.java +++ b/ccm-core/src/main/java/org/libreccm/security/GroupRepository.java @@ -26,6 +26,8 @@ import javax.persistence.TypedQuery; import org.libreccm.core.AbstractEntityRepository; import org.libreccm.core.CoreConstants; +import java.util.Optional; + import javax.transaction.Transactional; /** @@ -60,15 +62,15 @@ public class GroupRepository extends AbstractEntityRepository { * there is no group identified by the provided name {@code null} is * returned. */ - public Group findByName(final String name) { + public Optional findByName(final String name) { final TypedQuery query = getEntityManager().createNamedQuery( "Group.findByName", Group.class); query.setParameter("name", name); final List result = query.getResultList(); if (result.isEmpty()) { - return null; + return Optional.empty(); } else { - return result.get(0); + return Optional.of(result.get(0)); } } diff --git a/ccm-core/src/main/java/org/libreccm/security/PartyRepository.java b/ccm-core/src/main/java/org/libreccm/security/PartyRepository.java index 2aae5bfcc..ac2491c1c 100644 --- a/ccm-core/src/main/java/org/libreccm/security/PartyRepository.java +++ b/ccm-core/src/main/java/org/libreccm/security/PartyRepository.java @@ -24,6 +24,7 @@ import org.libreccm.core.AbstractEntityRepository; import org.libreccm.core.CoreConstants; import java.util.List; +import java.util.Optional; import javax.persistence.TypedQuery; import javax.transaction.Transactional; @@ -56,16 +57,16 @@ public class PartyRepository extends AbstractEntityRepository { * * @return */ - public Party findByName(final String name) { + public Optional findByName(final String name) { final TypedQuery query = getEntityManager().createNamedQuery( "Party.findByName", Party.class); query.setParameter("name", name); final List result = query.getResultList(); if (result.isEmpty()) { - return null; + return Optional.empty(); } else { - return result.get(0); + return Optional.of(result.get(0)); } } diff --git a/ccm-core/src/main/java/org/libreccm/security/PermissionChecker.java b/ccm-core/src/main/java/org/libreccm/security/PermissionChecker.java index b4a64fee3..eb0cfb139 100644 --- a/ccm-core/src/main/java/org/libreccm/security/PermissionChecker.java +++ b/ccm-core/src/main/java/org/libreccm/security/PermissionChecker.java @@ -29,6 +29,8 @@ import java.util.Optional; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.transaction.Transactional; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * An utility class for checking permissions. Uses the current {@link Subject} @@ -39,6 +41,9 @@ import javax.transaction.Transactional; @RequestScoped public class PermissionChecker { + private static final Logger LOGGER = LogManager.getLogger( + PermissionChecker.class); + /** * The current subject as provided by {@link Shiro#getSubject()}. */ @@ -58,14 +63,14 @@ public class PermissionChecker { * @param privilege The privilege granted by the permission. * * @return {@code true} if the current subject has a permission granting the - * provided {@code privilege}, {@code false} otherwise. + * provided {@code privilege}, {@code false} otherwise. */ public boolean isPermitted(final String privilege) { if (subject.isAuthenticated()) { return subject.isPermitted(generatePermissionString(privilege)); } else { return shiro.getPublicUser().isPermitted(generatePermissionString( - privilege)); + privilege)); } } @@ -74,31 +79,39 @@ public class PermissionChecker { * provided {@code privilege}. * * @param privilege The privilege granted by the permission. - * @param role The role to check for a permission granting the - * {@code privilege}. + * @param role The role to check for a permission granting the + * {@code privilege}. * * @return {@code true} if the role has a permission granting the provided - * {@code privilege}, {@code false} otherwise. + * {@code privilege}, {@code false} otherwise. */ @Transactional(Transactional.TxType.REQUIRED) public boolean isPermitted(final String privilege, final Role role) { if (privilege == null || privilege.trim().isEmpty()) { throw new IllegalArgumentException( - "Can't check permission null (or empty)"); + "Can't check permission null (or empty)"); } if (role == null) { throw new IllegalArgumentException( - "Can't check permission for role null."); + "Can't check permission for role null."); } //Ensure that we have a none detached entity - final Role theRole = roleRepo.findById(role.getRoleId()); + final Optional theRole = roleRepo.findById(role.getRoleId()); + if (!theRole.isPresent()) { + //If the role is not found in the database print a warning in the + //and return false + LOGGER.warn("To provided role {} was not found in the database.", + role.toString()); + return false; + } - final Optional permission = theRole.getPermissions() - .stream() - .filter(granted -> privilege.equals(granted.getGrantedPrivilege())) - .findFirst(); + final Optional permission = theRole.get().getPermissions() + .stream() + .filter(granted -> privilege.equals(granted. + getGrantedPrivilege())) + .findFirst(); return permission.isPresent(); } @@ -108,19 +121,18 @@ public class PermissionChecker { * {@code privilege} on the provided {@code object}. * * @param privilege The granted privilege. - * @param object The object on which the privilege is granted. + * @param object The object on which the privilege is granted. * * @return {@code true} if the there is a permission granting the provided - * {@code privilege} on the provided {@code object} to the current - * subject. + * {@code privilege} on the provided {@code object} to the current subject. */ public boolean isPermitted(final String privilege, final CcmObject object) { if (subject.isAuthenticated()) { return subject.isPermitted(generatePermissionString( - privilege, object)); + privilege, object)); } else { return shiro.getPublicUser().isPermitted(generatePermissionString( - privilege, object)); + privilege, object)); } } @@ -129,42 +141,47 @@ public class PermissionChecker { * provided {@code privilege} on the provided object. * * @param privilege The granted privilege. - * @param object The object on which the {@code privilege} is granted. - * @param role The role to check for a permission granting the - * {@code privilege}. + * @param object The object on which the {@code privilege} is granted. + * @param role The role to check for a permission granting the + * {@code privilege}. * * @return {@code true} if the there is a permission granting the provided - * {@code privilege} on the provided {@code object} to the provided - * {@code role}. + * {@code privilege} on the provided {@code object} to the provided + * {@code role}. */ public boolean isPermitted(final String privilege, final CcmObject object, final Role role) { if (privilege == null || privilege.trim().isEmpty()) { throw new IllegalArgumentException( - "Can't check permission null (or empty)"); + "Can't check permission null (or empty)"); } if (role == null) { throw new IllegalArgumentException( - "Can't check permission for role null."); + "Can't check permission for role null."); } if (object == null) { throw new IllegalArgumentException( - "Can verify permissions for object null."); + "Can verify permissions for object null."); } - final boolean result; - //Ensure that we have a none detached entity - final Role theRole = roleRepo.findById(role.getRoleId()); + final Optional theRole = roleRepo.findById(role.getRoleId()); + if (!theRole.isPresent()) { + //If the role is not found in the database print a warning in the + //and return false + LOGGER.warn("To provided role {} was not found in the database.", + role.toString()); + return false; + } - final Optional permission = theRole.getPermissions() - .stream() - .filter(granted -> granted.getObject() != null) - .filter(granted -> object.equals(granted.getObject())) - .findFirst(); + final Optional permission = theRole.get().getPermissions() + .stream() + .filter(granted -> granted.getObject() != null) + .filter(granted -> object.equals(granted.getObject())) + .findFirst(); return permission.isPresent(); } @@ -176,15 +193,15 @@ public class PermissionChecker { * @param privilege The privilege to check for. * * @throws AuthorizationException If the current subject has not permission - * granting the provided privilege. + * granting the provided privilege. */ public void checkPermission(final String privilege) - throws AuthorizationException { + throws AuthorizationException { if (subject.isAuthenticated()) { subject.checkPermission(generatePermissionString(privilege)); } else { shiro.getPublicUser().checkPermission(generatePermissionString( - privilege)); + privilege)); } } @@ -194,20 +211,19 @@ public class PermissionChecker { * * * @param privilege The privilege to check for. - * @param object The object on which the privilege is granted. + * @param object The object on which the privilege is granted. * * @throws AuthorizationException If there is no permission granting the - * provided privilege to the current subject - * on the provided object.. + * provided privilege to the current subject on the provided object.. */ public void checkPermission(final String privilege, final CcmObject object) - throws AuthorizationException { + throws AuthorizationException { if (subject.isAuthenticated()) { subject.checkPermission(generatePermissionString(privilege, object)); } else { shiro.getPublicUser().checkPermission(generatePermissionString( - privilege, object)); + privilege, object)); } } @@ -218,13 +234,13 @@ public class PermissionChecker { * placeholder object is returned with the {@link CcmObject#displayName} * property set the {@code Access denied}. * - * @param The type of the object to check. + * @param The type of the object to check. * @param privilege The privilige to check for. - * @param object The object on which the privilege is granted. - * @param clazz The class of the object. + * @param object The object on which the privilege is granted. + * @param clazz The class of the object. * * @return The object if the current subject is permitted to access, a - * placeholder object if not. + * placeholder object if not. */ public T checkPermission(final String privilege, final T object, @@ -240,7 +256,7 @@ public class PermissionChecker { * @param object The object to check. * * @return {@code true} if the object is a Access denied object, - * {@code false} if not. + * {@code false} if not. */ public boolean isAccessDeniedObject(final CcmObject object) { if (object == null) { diff --git a/ccm-core/src/main/java/org/libreccm/security/RegistrationManager.java b/ccm-core/src/main/java/org/libreccm/security/RegistrationManager.java index ac74c6c3b..e9832b2d0 100644 --- a/ccm-core/src/main/java/org/libreccm/security/RegistrationManager.java +++ b/ccm-core/src/main/java/org/libreccm/security/RegistrationManager.java @@ -23,6 +23,8 @@ import com.arsdigita.ui.login.UserNewForm; import org.apache.logging.log4j.util.Strings; import org.libreccm.core.CoreConstants; +import java.util.Optional; + import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.mail.MessagingException; @@ -126,16 +128,16 @@ public class RegistrationManager { user.setBanned(true); userRepository.save(user); - final Group registeredUsers = groupRepository.findByName( + final Optional registeredUsers = groupRepository.findByName( REGISTERED_USERS); final Group group; - if (registeredUsers == null) { + if (registeredUsers.isPresent()) { + group = registeredUsers.get(); + } else { final Group newGroup = new Group(); newGroup.setName("registered-users"); groupRepository.save(newGroup); group = newGroup; - } else { - group = registeredUsers; } groupManager.addMemberToGroup(user, group); @@ -145,15 +147,11 @@ public class RegistrationManager { } private boolean checkIfUserNameExists(final String userName) { - final User user = userRepository.findByName(userName); - - return user != null; + return userRepository.findByName(userName).isPresent(); } private boolean checkIfEmailIsInUse(final String emailAddress) { - final User user = userRepository.findByEmailAddress(emailAddress); - - return user != null; + return userRepository.findByEmailAddress(emailAddress).isPresent(); } } diff --git a/ccm-core/src/main/java/org/libreccm/security/RoleRepository.java b/ccm-core/src/main/java/org/libreccm/security/RoleRepository.java index 05753ac17..e087da62e 100644 --- a/ccm-core/src/main/java/org/libreccm/security/RoleRepository.java +++ b/ccm-core/src/main/java/org/libreccm/security/RoleRepository.java @@ -28,8 +28,11 @@ import org.libreccm.core.CoreConstants; import javax.persistence.NoResultException; import javax.transaction.Transactional; + import org.libreccm.core.CcmObject; +import java.util.Optional; + /** * Repository class for {@link Role} entities. * @@ -65,15 +68,15 @@ public class RoleRepository extends AbstractEntityRepository { * @return The role identified by the provided {@code name} or {@code null} * if there is no matching role. */ - public Role findByName(final String name) { + public Optional findByName(final String name) { final TypedQuery query = getEntityManager().createNamedQuery( "Role.findByName", Role.class); query.setParameter("name", name); final List result = query.getResultList(); if (result.isEmpty()) { - return null; + return Optional.empty(); } else { - return result.get(0); + return Optional.of(result.get(0)); } } diff --git a/ccm-core/src/main/java/org/libreccm/security/Shiro.java b/ccm-core/src/main/java/org/libreccm/security/Shiro.java index cbf2310a9..a751ecf4a 100644 --- a/ccm-core/src/main/java/org/libreccm/security/Shiro.java +++ b/ccm-core/src/main/java/org/libreccm/security/Shiro.java @@ -19,6 +19,7 @@ package org.libreccm.security; import com.arsdigita.kernel.KernelConfig; + import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -28,6 +29,7 @@ import javax.enterprise.context.ApplicationScoped; import javax.enterprise.inject.Produces; import javax.inject.Inject; import javax.inject.Named; + import org.apache.shiro.SecurityUtils; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.session.Session; @@ -35,15 +37,17 @@ import org.apache.shiro.subject.PrincipalCollection; import org.apache.shiro.subject.SimplePrincipalCollection; import org.apache.shiro.subject.Subject; +import java.util.Optional; + /** * This application scoped CDI bean acts as bridge between CDI and Shiro. It * initialises the Shiro environment and provides the Shiro * {@link SecurityManager} and the current Shiro {@link Subject} via CDI * producer methods. - * - * This class is based on the implementation for the upcoming CDI integration - * of Shiro discussed at https://issues.apache.org/jira/browse/SHIRO-337 and - * the implementation which can be found at https://github.com/hwellmann/shiro + * + * This class is based on the implementation for the upcoming CDI integration of + * Shiro discussed at https://issues.apache.org/jira/browse/SHIRO-337 and the + * implementation which can be found at https://github.com/hwellmann/shiro * (commit 8a40df0). * * @author Jens Pelzetter @@ -51,6 +55,40 @@ import org.apache.shiro.subject.Subject; @ApplicationScoped public class Shiro { + /** + * Principal used for the public user if + * {@link KernelConfig#primaryUserIdentifier} is set to + * {@link KernelConfig#USER_IDENTIFIER_SCREEN_NAME}. + * + * @see #getPublicUser() + */ + public static final String PUBLIC_USER_PRINCIPAL_SCREEN_NAME = "public-user"; + /** + * Principal used for the public user if + * {@link KernelConfig#primaryUserIdentifier} is set to + * {@link KernelConfig#USER_IDENTIFIER_EMAIL}. + * + * @see #getPublicUser() + */ + public static final String PUBLIC_USER_PRINCIPAL_EMAIL = "public-user@localhost"; + + /** + * Principal used for the system user if + * {@link KernelConfig#primaryUserIdentifier} is set to + * {@link KernelConfig#USER_IDENTIFIER_SCREEN_NAME}. + * + * @see #getSystemUser() + */ + public static final String SYSTEM_USER_PRINCIPAL_SCREEN_NAME = "system-user"; + /** + * Principal used for the system user if + * {@link KernelConfig#primaryUserIdentifier} is set to + * {@link KernelConfig#USER_IDENTIFIER_EMAIL}. + * + * @see #getSystemUser() + */ + public static final String SYSTEM_USER_PRINCIPAL_EMAIL = "system-user@localhost"; + @Inject private UserRepository userRepository; @@ -62,7 +100,7 @@ public class Shiro { @Produces @Named("securityManager") public SecurityManager getSecurityManager() { - return proxy(SecurityManager.class, + return proxy(SecurityManager.class, new SecurityManagerInvocationHandler()); } @@ -82,19 +120,42 @@ public class Shiro { return proxy(Session.class, new SessionInvocationHandler()); } + /** + * Subject which is used to store the permissions for a none authenticated + * user. + * + * @return + */ public Subject getPublicUser() { if (KernelConfig.getConfig().emailIsPrimaryIdentifier()) { - return buildInternalSubject("public-user@localhost"); + return buildInternalSubject(PUBLIC_USER_PRINCIPAL_EMAIL); } else { - return buildInternalSubject("public-user"); + return buildInternalSubject(PUBLIC_USER_PRINCIPAL_SCREEN_NAME); } } + /** + * A virtual user for internal processes which has all permissions. + * + * @return + */ public Subject getSystemUser() { - return buildInternalSubject("system-user"); + return buildInternalSubject(SYSTEM_USER_PRINCIPAL_SCREEN_NAME); } - public User getUser() { + /** + * Retrieve the {@link User} entity from the database for the current + * subject. + * + * @return An {@link Optional} containing the {@link User} entity for the + * current subject. If the current subject is a virtual user which has no + * representation in the database the returned {@link Optional} is empty. + * + * @see #getSubject() + * @see #getSystemUser() + * @see #getPublicUser() + */ + public Optional getUser() { final KernelConfig kernelConfig = KernelConfig.getConfig(); if (kernelConfig.emailIsPrimaryIdentifier()) { return userRepository.findByEmailAddress((String) getSubject(). @@ -108,12 +169,12 @@ public class Shiro { private Subject buildInternalSubject(final String userName) { final PrincipalCollection principals = new SimplePrincipalCollection( userName, "CcmShiroRealm"); - final Subject publicUser = new Subject.Builder() + final Subject internalUser = new Subject.Builder() .principals(principals) .authenticated(true) .buildSubject(); - return publicUser; + return internalUser; } @SuppressWarnings("unchecked") diff --git a/ccm-core/src/main/java/org/libreccm/security/UserRepository.java b/ccm-core/src/main/java/org/libreccm/security/UserRepository.java index c33520483..da62c42fc 100644 --- a/ccm-core/src/main/java/org/libreccm/security/UserRepository.java +++ b/ccm-core/src/main/java/org/libreccm/security/UserRepository.java @@ -22,6 +22,7 @@ import org.libreccm.core.AbstractEntityRepository; import org.libreccm.core.CoreConstants; import java.util.List; +import java.util.Optional; import javax.enterprise.context.RequestScoped; import javax.persistence.EntityGraph; @@ -58,19 +59,12 @@ public class UserRepository extends AbstractEntityRepository { * user matching the user name (should be possible) the first one is * returned. If there is no matching user {@code null} is returned. */ - public User findByName(final String name) { + public Optional findByName(final String name) { final TypedQuery query = getEntityManager().createNamedQuery( "User.findByName", User.class); query.setParameter("name", name); - return getSingleResultOrNull(query); - -// final List result = query.getResultList(); -// if (result.isEmpty()) { -// return null; -// } else { -// return result.get(0); -// } + return getSingleResult(query); } /** @@ -84,7 +78,7 @@ public class UserRepository extends AbstractEntityRepository { * user matching the user name (should be possible) the first one is * returned. If there is no matching user {@code null} is returned. */ - public User findByName(final String name, final String entityGraphName) { + public Optional findByName(final String name, final String entityGraphName) { @SuppressWarnings("unchecked") final EntityGraph entityGraph = (EntityGraph) getEntityManager() @@ -92,21 +86,14 @@ public class UserRepository extends AbstractEntityRepository { return findByName(name, entityGraph); } - public User findByName(final String name, + public Optional findByName(final String name, final EntityGraph entityGraph) { final TypedQuery query = getEntityManager().createNamedQuery( "User.findByName", User.class); query.setParameter("name", name); query.setHint(FETCH_GRAPH_HINT_KEY, entityGraph); - return getSingleResultOrNull(query); - -// final List result = query.getResultList(); -// if (result.isEmpty()) { -// return null; -// } else { -// return result.get(0); -// } + return getSingleResult(query); } /** @@ -118,15 +105,15 @@ public class UserRepository extends AbstractEntityRepository { * multiple matching users only the first one is returned. If there * is no matching user {@code null} is returned. */ - public User findByEmailAddress(final String emailAddress) { + public Optional findByEmailAddress(final String emailAddress) { final TypedQuery query = getEntityManager().createNamedQuery( "User.findByEmailAddress", User.class); query.setParameter("emailAddress", emailAddress); - return getSingleResultOrNull(query); + return getSingleResult(query); } - public User findByEmailAddress(final String emailAddress, + public Optional findByEmailAddress(final String emailAddress, final String entityGraphName) { @SuppressWarnings("unchecked") final EntityGraph entityGraph @@ -135,14 +122,14 @@ public class UserRepository extends AbstractEntityRepository { return findByEmailAddress(emailAddress, entityGraph); } - public User findByEmailAddress(final String emailAddress, + public Optional findByEmailAddress(final String emailAddress, final EntityGraph entityGraph) { final TypedQuery query = getEntityManager().createNamedQuery( "User.findByEmailAddress", User.class); query.setParameter("emailAddress", emailAddress); query.setHint(FETCH_GRAPH_HINT_KEY, entityGraph); - return getSingleResultOrNull(query); + return getSingleResult(query); } public List filtered(final String term) { diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/UserContextController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/UserContextController.java index 6de01bce1..443921b9e 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/UserContextController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/UserContextController.java @@ -27,6 +27,7 @@ import org.libreccm.security.Shiro; import org.libreccm.security.User; import java.io.Serializable; +import java.util.Optional; /** @@ -50,14 +51,15 @@ public class UserContextController implements Serializable { } public String getCurrentUserName() { - final User user = shiro.getUser(); - - if (user == null) { - return ""; - } else { + final Optional user = shiro.getUser(); + + if (user.isPresent()) { return String.format("%s %s", - user.getGivenName(), - user.getFamilyName()); + user.get().getGivenName(), + user.get().getFamilyName()); + + } else { + return ""; } } diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/RolesController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/RolesController.java index 5e494dea4..371c30df0 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/RolesController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/RolesController.java @@ -31,6 +31,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; @@ -50,7 +51,7 @@ public class RolesController implements Serializable { private static final long serialVersionUID = 9092665507680111584L; private static final Logger LOGGER = LogManager.getLogger( RolesController.class); - + @Inject private RoleRepository roleRepo; @@ -78,31 +79,32 @@ public class RolesController implements Serializable { LOGGER.debug("getSelectedRole invoked..."); return selectedRole; } - + public void setSelectedRole(final Role selectedRole) { LOGGER.debug("Setting selected role to \"{}\"...", selectedRole); this.selectedRole = selectedRole; selectedRoleName = selectedRole.getName(); } - + public String getSelectedRoleName() { return selectedRoleName; } - + public void setSelectedRoleName(final String name) { selectedRoleName = name; } - + @Transactional(Transactional.TxType.REQUIRED) public Set getSelectedRoleMemberships() { - final Role role = roleRepo.findById(selectedRole.getRoleId()); + final Role role = roleRepo.findById(selectedRole.getRoleId()).get(); return role.getMemberships(); } - + @Transactional(Transactional.TxType.REQUIRED) public List getSelectedRolePermissions() { - final Role role = roleRepo.findById(selectedRole.getRoleId(), - Role.ENTITY_GRPAH_WITH_PERMISSIONS); + final Role role = roleRepo.findById(selectedRole.getRoleId(), + Role.ENTITY_GRPAH_WITH_PERMISSIONS) + .get(); return role.getPermissions(); } @@ -110,13 +112,11 @@ public class RolesController implements Serializable { selectedRole.setName(selectedRoleName); roleRepo.save(selectedRole); } - + public void renameSelectedRoleCancel() { selectedRoleName = selectedRole.getName(); } - - private class RolesTableModel extends LazyDataModel { private static final long serialVersionUID = 8878060757439667086L; diff --git a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java index 5b513a169..6ccefa92b 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java @@ -28,6 +28,7 @@ import org.libreccm.security.User; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.stream.Collectors; import javax.enterprise.context.RequestScoped; @@ -141,8 +142,13 @@ public class AssignableTaskManager { task.getLockingUser().getName())); } - task.setLocked(true); - task.setLockingUser(shiro.getUser()); + final Optional user = shiro.getUser(); + if (user.isPresent()) { + task.setLocked(true); + task.setLockingUser(user.get()); + } else { + throw new IllegalStateException("No current user."); + } taskRepo.save(task); } @@ -198,9 +204,10 @@ public class AssignableTaskManager { @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) @Transactional(Transactional.TxType.REQUIRED) public void finish(final AssignableTask task) { - final User currentUser = shiro.getUser(); + final Optional currentUser = shiro.getUser(); - if (!currentUser.equals(task.getLockingUser())) { + if (!currentUser.isPresent() + || !currentUser.get().equals(task.getLockingUser())) { throw new IllegalArgumentException(String.format( "Current user %s is not locking user for task %s. Task is" + "locaked by user %s.", @@ -233,7 +240,7 @@ public class AssignableTaskManager { "AssignableTask.findAssignedTasks", AssignableTask.class); query.setParameter("workflow", workflow); query.setParameter("roles", roles); - + return query.getResultList(); } diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskManager.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskManager.java index b1002d799..27edf3f17 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/TaskManager.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskManager.java @@ -27,6 +27,7 @@ import org.libreccm.security.Shiro; import org.libreccm.security.User; import java.util.Objects; +import java.util.Optional; import java.util.UUID; import javax.enterprise.context.RequestScoped; @@ -61,7 +62,7 @@ public class TaskManager { * Adds a {@link Task} to a {@link Workflow}. * * @param workflow The workflow to which the task is added. - * @param task The task to add. + * @param task The task to add. */ @AuthorizationRequired @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) @@ -78,7 +79,7 @@ public class TaskManager { * Removes a {@link Task} from a {@link Workflow}. * * @param workflow The workflow from which the task is removed. - * @param task The task to remove. + * @param task The task to remove. */ @AuthorizationRequired @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) @@ -95,15 +96,16 @@ public class TaskManager { * Adds a dependent {@link Task} to another {@code Task}. * * @param parent The task to which the dependent task is added. - * @param task The dependent task. + * @param task The dependent task. + * * @throws CircularTaskDependencyException If a circular dependency is - * detected. + * detected. */ @AuthorizationRequired @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) @Transactional(Transactional.TxType.REQUIRED) public void addDependentTask(final Task parent, final Task task) - throws CircularTaskDependencyException { + throws CircularTaskDependencyException { checkForCircularDependencies(parent, task); @@ -118,7 +120,7 @@ public class TaskManager { * Removes a dependent task. * * @param parent The task from which the dependent task is removed. - * @param task The dependent task to remove. + * @param task The dependent task to remove. */ @AuthorizationRequired @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) @@ -136,11 +138,12 @@ public class TaskManager { * * @param task1 * @param task2 + * * @throws CircularTaskDependencyException */ private void checkForCircularDependencies(final Task task1, final Task task2) - throws CircularTaskDependencyException { + throws CircularTaskDependencyException { if (dependsOn(task1, task2)) { throw new CircularTaskDependencyException(); @@ -154,7 +157,7 @@ public class TaskManager { } if (current.getDependsOn() != null - && !current.getDependsOn().isEmpty()) { + && !current.getDependsOn().isEmpty()) { return dependsOn(current, dependsOn); } } @@ -166,19 +169,24 @@ public class TaskManager { * Adds a new {@link TaskComment} containing the provided comment to a * {@link Task}. The author of the comment is the current user. * - * @param task The task to which the comment is added. + * @param task The task to which the comment is added. * @param comment The comment to add. */ public void addComment(final Task task, final String comment) { - addComment(task, shiro.getUser(), comment); + final Optional user = shiro.getUser(); + if (user.isPresent()) { + addComment(task, user.get(), comment); + } else { + throw new IllegalStateException("No current user."); + } } /** * Adds a new {@link TaskComment} containing the provided comment to a * {@link Task}. * - * @param task The task to which the comment is added. - * @param author the author of the comment. + * @param task The task to which the comment is added. + * @param author the author of the comment. * @param comment The comment to add. */ public void addComment(final Task task, @@ -198,7 +206,7 @@ public class TaskManager { /** * Removes a comment from a task. * - * @param task The task from which the comment is removed. + * @param task The task from which the comment is removed. * @param comment The comment to remove. */ public void removeComment(final Task task, final TaskComment comment) { @@ -251,8 +259,8 @@ public class TaskManager { if (task.getTaskState() != TaskState.ENABLED) { throw new IllegalArgumentException(String.format( - "Task %s is not enabled.", - Objects.toString(task))); + "Task %s is not enabled.", + Objects.toString(task))); } task.setTaskState(TaskState.FINISHED); @@ -282,7 +290,7 @@ public class TaskManager { LOGGER.debug("Checking dependency {}...", Objects.toString(dependsOnTask)); if (dependsOnTask.getTaskState() != TaskState.FINISHED - && dependsOnTask.isActive()) { + && dependsOnTask.isActive()) { LOGGER.debug("Dependency is not yet satisfied."); diff --git a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java index 55842d1da..4c971fb06 100644 --- a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java @@ -204,14 +204,14 @@ public class CategoryManagerTest { excludeColumns = {"categorization_id"}) @InSequence(1100) public void addObjectToCategoryBySystemUser() { - final CcmObject object2 = ccmObjectRepo.findById(-3200L); - final Category foo = categoryRepo.findById(-2100L); + final Optional object2 = ccmObjectRepo.findById(-3200L); + final Optional foo = categoryRepo.findById(-2100L); - assertThat(object2, is(not(nullValue()))); - assertThat(foo, is(not(nullValue()))); + assertThat(object2.isPresent(), is(true)); + assertThat(foo.isPresent(), is(true)); shiro.getSystemUser().execute(() -> categoryManager.addObjectToCategory( - object2, foo)); + object2.get(), foo.get())); } /** @@ -227,18 +227,18 @@ public class CategoryManagerTest { excludeColumns = {"categorization_id"}) @InSequence(1200) public void addObjectToCategoryAuthByDomain() { - final CcmObject object2 = ccmObjectRepo.findById(-3200L); - final Category foo = categoryRepo.findById(-2100L); + final Optional object2 = ccmObjectRepo.findById(-3200L); + final Optional foo = categoryRepo.findById(-2100L); - assertThat(object2, is(not(nullValue()))); - assertThat(foo, is(not(nullValue()))); + assertThat(object2.isPresent(), is(true)); + assertThat(foo.isPresent(), is(true)); final UsernamePasswordToken token = new UsernamePasswordToken( "jane.doe@example.org", "foo123"); token.setRememberMe(true); subject.login(token); - categoryManager.addObjectToCategory(object2, foo); + categoryManager.addObjectToCategory(object2.get(), foo.get()); subject.logout(); } @@ -256,18 +256,18 @@ public class CategoryManagerTest { excludeColumns = {"categorization_id"}) @InSequence(1300) public void addObjectToCategoryAuthByCategory() { - final CcmObject object2 = ccmObjectRepo.findById(-3200L); - final Category foo = categoryRepo.findById(-2100L); + final Optional object2 = ccmObjectRepo.findById(-3200L); + final Optional foo = categoryRepo.findById(-2100L); - assertThat(object2, is(not(nullValue()))); - assertThat(foo, is(not(nullValue()))); + assertThat(object2.isPresent(), is(true)); + assertThat(foo.isPresent(), is(true)); final UsernamePasswordToken token = new UsernamePasswordToken( "mmuster@example.com", "foo123"); token.setRememberMe(true); subject.login(token); - categoryManager.addObjectToCategory(object2, foo); + categoryManager.addObjectToCategory(object2.get(), foo.get()); subject.logout(); } @@ -282,13 +282,13 @@ public class CategoryManagerTest { @ShouldThrowException(UnauthorizedException.class) @InSequence(1400) public void addObjectToCategoryNotAuthorized() { - final CcmObject object2 = ccmObjectRepo.findById(-3200L); - final Category foo = categoryRepo.findById(-2100L); + final Optional object2 = ccmObjectRepo.findById(-3200L); + final Optional foo = categoryRepo.findById(-2100L); - assertThat(object2, is(not(nullValue()))); - assertThat(foo, is(not(nullValue()))); + assertThat(object2.isPresent(), is(true)); + assertThat(foo.isPresent(), is(true)); - categoryManager.addObjectToCategory(object2, foo); + categoryManager.addObjectToCategory(object2.get(), foo.get()); } /** @@ -310,14 +310,14 @@ public class CategoryManagerTest { public void removeObjectFromCategoryBySystemUser() throws ObjectNotAssignedToCategoryException { - final CcmObject object1 = ccmObjectRepo.findById(-3100L); - final Category foo = categoryRepo.findById(-2100L); + final Optional object1 = ccmObjectRepo.findById(-3100L); + final Optional foo = categoryRepo.findById(-2100L); - assertThat(object1, is(not(nullValue()))); - assertThat(foo, is(not(nullValue()))); + assertThat(object1.isPresent(), is(true)); + assertThat(foo.isPresent(), is(true)); shiro.getSystemUser().execute(() -> { - categoryManager.removeObjectFromCategory(object1, foo); + categoryManager.removeObjectFromCategory(object1.get(), foo.get()); return null; }); } @@ -343,18 +343,18 @@ public class CategoryManagerTest { public void removeObjectFromCategoryAuthByDomain() throws ObjectNotAssignedToCategoryException { - final CcmObject object1 = ccmObjectRepo.findById(-3100L); - final Category foo = categoryRepo.findById(-2100L); + final Optional object1 = ccmObjectRepo.findById(-3100L); + final Optional foo = categoryRepo.findById(-2100L); - assertThat(object1, is(not(nullValue()))); - assertThat(foo, is(not(nullValue()))); + assertThat(object1.isPresent(), is(true)); + assertThat(foo.isPresent(), is(true)); final UsernamePasswordToken token = new UsernamePasswordToken( "jane.doe@example.org", "foo123"); token.setRememberMe(true); subject.login(token); - categoryManager.removeObjectFromCategory(object1, foo); + categoryManager.removeObjectFromCategory(object1.get(), foo.get()); subject.logout(); } @@ -379,18 +379,18 @@ public class CategoryManagerTest { public void removeObjectFromCategoryAuthByCategory() throws ObjectNotAssignedToCategoryException { - final CcmObject object1 = ccmObjectRepo.findById(-3100L); - final Category foo = categoryRepo.findById(-2100L); + final Optional object1 = ccmObjectRepo.findById(-3100L); + final Optional foo = categoryRepo.findById(-2100L); - assertThat(object1, is(not(nullValue()))); - assertThat(foo, is(not(nullValue()))); + assertThat(object1.isPresent(), is(true)); + assertThat(foo.isPresent(), is(true)); final UsernamePasswordToken token = new UsernamePasswordToken( "mmuster@example.com", "foo123"); token.setRememberMe(true); subject.login(token); - categoryManager.removeObjectFromCategory(object1, foo); + categoryManager.removeObjectFromCategory(object1.get(), foo.get()); subject.logout(); } @@ -410,13 +410,13 @@ public class CategoryManagerTest { public void removeObjectFromCategoryNotAuthorized() throws ObjectNotAssignedToCategoryException { - final CcmObject object1 = ccmObjectRepo.findById(-3100L); - final Category foo = categoryRepo.findById(-2100L); + final Optional object1 = ccmObjectRepo.findById(-3100L); + final Optional foo = categoryRepo.findById(-2100L); - assertThat(object1, is(not(nullValue()))); - assertThat(foo, is(not(nullValue()))); + assertThat(object1.isPresent(), is(true)); + assertThat(foo.isPresent(), is(true)); - categoryManager.removeObjectFromCategory(object1, foo); + categoryManager.removeObjectFromCategory(object1.get(), foo.get()); } /** @@ -443,10 +443,10 @@ public class CategoryManagerTest { query.setParameter("name", "category-new"); final Category sub = query.getSingleResult(); - final Category foo = categoryRepo.findById(-2100L); + final Optional foo = categoryRepo.findById(-2100L); shiro.getSystemUser().execute( - () -> categoryManager.addSubCategoryToCategory(sub, foo)); + () -> categoryManager.addSubCategoryToCategory(sub, foo.get())); } /** @@ -474,14 +474,14 @@ public class CategoryManagerTest { query.setParameter("name", "category-new"); final Category sub = query.getSingleResult(); - final Category foo = categoryRepo.findById(-2100L); + final Optional foo = categoryRepo.findById(-2100L); final UsernamePasswordToken token = new UsernamePasswordToken( "jane.doe@example.org", "foo123"); token.setRememberMe(true); subject.login(token); - categoryManager.addSubCategoryToCategory(sub, foo); + categoryManager.addSubCategoryToCategory(sub, foo.get()); subject.logout(); } @@ -511,14 +511,14 @@ public class CategoryManagerTest { query.setParameter("name", "category-new"); final Category sub = query.getSingleResult(); - final Category foo = categoryRepo.findById(-2100L); + final Optional foo = categoryRepo.findById(-2100L); final UsernamePasswordToken token = new UsernamePasswordToken( "mmuster@example.com", "foo123"); token.setRememberMe(true); subject.login(token); - categoryManager.addSubCategoryToCategory(sub, foo); + categoryManager.addSubCategoryToCategory(sub, foo.get()); subject.logout(); } @@ -547,9 +547,9 @@ public class CategoryManagerTest { query.setParameter("name", "category-new"); final Category sub = query.getSingleResult(); - final Category foo = categoryRepo.findById(-2100L); + final Optional foo = categoryRepo.findById(-2100L); - categoryManager.addSubCategoryToCategory(sub, foo); + categoryManager.addSubCategoryToCategory(sub, foo.get()); } /** @@ -565,11 +565,12 @@ public class CategoryManagerTest { excludeColumns = {"categorization_id", "object_id"}) @InSequence(4000) public void removeSubCategoryFromCategoryBySystemUser() { - final Category foo = categoryRepo.findById(-2100L); - final Category bar = categoryRepo.findById(-2200L); + final Optional foo = categoryRepo.findById(-2100L); + final Optional bar = categoryRepo.findById(-2200L); shiro.getSystemUser().execute( - () -> categoryManager.removeSubCategoryFromCategory(bar, foo)); + () -> categoryManager.removeSubCategoryFromCategory(bar.get(), + foo.get())); } /** @@ -586,15 +587,15 @@ public class CategoryManagerTest { excludeColumns = {"categorization_id", "object_id"}) @InSequence(4000) public void removeSubCategoryFromCategoryAuthByDomain() { - final Category foo = categoryRepo.findById(-2100L); - final Category bar = categoryRepo.findById(-2200L); + final Optional foo = categoryRepo.findById(-2100L); + final Optional bar = categoryRepo.findById(-2200L); final UsernamePasswordToken token = new UsernamePasswordToken( "jane.doe@example.org", "foo123"); token.setRememberMe(true); subject.login(token); - categoryManager.removeSubCategoryFromCategory(bar, foo); + categoryManager.removeSubCategoryFromCategory(bar.get(), foo.get()); subject.logout(); } @@ -612,15 +613,15 @@ public class CategoryManagerTest { excludeColumns = {"categorization_id", "object_id"}) @InSequence(4000) public void removeSubCategoryFromCategoryAuthByCategory() { - final Category foo = categoryRepo.findById(-2100L); - final Category bar = categoryRepo.findById(-2200L); + final Optional foo = categoryRepo.findById(-2100L); + final Optional bar = categoryRepo.findById(-2200L); final UsernamePasswordToken token = new UsernamePasswordToken( "mmuster@example.com", "foo123"); token.setRememberMe(true); subject.login(token); - categoryManager.removeSubCategoryFromCategory(bar, foo); + categoryManager.removeSubCategoryFromCategory(bar.get(), foo.get()); subject.logout(); } @@ -637,10 +638,10 @@ public class CategoryManagerTest { @ShouldThrowException(UnauthorizedException.class) @InSequence(4000) public void removeSubCategoryFromCategoryNotAuthorized() { - final Category foo = categoryRepo.findById(-2100L); - final Category bar = categoryRepo.findById(-2200L); + final Optional foo = categoryRepo.findById(-2100L); + final Optional bar = categoryRepo.findById(-2200L); - categoryManager.removeSubCategoryFromCategory(bar, foo); + categoryManager.removeSubCategoryFromCategory(bar.get(), foo.get()); } /** @@ -701,11 +702,11 @@ public class CategoryManagerTest { + "data.yml") @InSequence(6000) public void hasIndexObject() { - final Category category1 = categoryRepo.findById(-2100L); - final Category category2 = categoryRepo.findById(-2200L); + final Optional category1 = categoryRepo.findById(-2100L); + final Optional category2 = categoryRepo.findById(-2200L); - assertThat(categoryManager.hasIndexObject(category1), is(false)); - assertThat(categoryManager.hasIndexObject(category2), is(true)); + assertThat(categoryManager.hasIndexObject(category1.get()), is(false)); + assertThat(categoryManager.hasIndexObject(category2.get()), is(true)); } /** @@ -718,14 +719,14 @@ public class CategoryManagerTest { "datasets/org/libreccm/categorization/CategoryManagerTest/data.yml") @InSequence(6500) public void getIndexObject() { - final Category category1 = categoryRepo.findById(-2100L); - final Category category2 = categoryRepo.findById(-2200L); + final Optional category1 = categoryRepo.findById(-2100L); + final Optional category2 = categoryRepo.findById(-2200L); - assertThat(categoryManager.getIndexObject(category1).isPresent(), + assertThat(categoryManager.getIndexObject(category1.get()).isPresent(), is(false)); final Optional index2 = categoryManager.getIndexObject( - category2); + category2.get()); assertThat(index2.isPresent(), is(true)); assertThat(index2.get().getDisplayName(), is(equalTo("object3"))); } diff --git a/ccm-core/src/test/java/org/libreccm/categorization/TestCategoryController.java b/ccm-core/src/test/java/org/libreccm/categorization/TestCategoryController.java index 105cc5bec..805298452 100644 --- a/ccm-core/src/test/java/org/libreccm/categorization/TestCategoryController.java +++ b/ccm-core/src/test/java/org/libreccm/categorization/TestCategoryController.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; @@ -41,7 +40,7 @@ public class TestCategoryController { @Transactional(Transactional.TxType.REQUIRED) public Map> getData(final long categoryId) { - final Category category = categoryRepo.findById(categoryId); + final Category category = categoryRepo.findById(categoryId).get(); if (category == null) { throw new IllegalArgumentException(String.format( "No category for id %d.", categoryId)); diff --git a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java index 362ed1d4f..c89d8f315 100644 --- a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java @@ -54,6 +54,8 @@ import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import java.util.Optional; + /** * Tests for the {@link CcmObjectRepository} which is the foundation for many * other repositories in LibreCCM. @@ -231,24 +233,24 @@ public class CcmObjectRepositoryTest { @UsingDataSet("datasets/org/libreccm/core/CcmObjectRepositoryTest/data.yml") @InSequence(10) public void findCcmObjectById() { - final CcmObject obj1 = ccmObjectRepository.findById(-10L); - final CcmObject obj2 = ccmObjectRepository.findById(-20L); - final CcmObject obj3 = ccmObjectRepository.findById(-30L); - final CcmObject none = ccmObjectRepository.findById(-999L); + final Optional obj1 = ccmObjectRepository.findById(-10L); + final Optional obj2 = ccmObjectRepository.findById(-20L); + final Optional obj3 = ccmObjectRepository.findById(-30L); + final Optional none = ccmObjectRepository.findById(-999L); - assertThat(obj1, is(not(nullValue()))); - assertThat(obj1.getObjectId(), is(-10L)); - assertThat(obj1.getDisplayName(), is(equalTo("Test Object 1"))); + assertThat(obj1.isPresent(), is(true)); + assertThat(obj1.get().getObjectId(), is(-10L)); + assertThat(obj1.get().getDisplayName(), is(equalTo("Test Object 1"))); - assertThat(obj2, is(not(nullValue()))); - assertThat(obj2.getObjectId(), is(-20L)); - assertThat(obj2.getDisplayName(), is(equalTo("Test Object 2"))); + assertThat(obj2.isPresent(), is(true)); + assertThat(obj2.get().getObjectId(), is(-20L)); + assertThat(obj2.get().getDisplayName(), is(equalTo("Test Object 2"))); - assertThat(obj3, is(not(nullValue()))); - assertThat(obj3.getObjectId(), is(-30L)); - assertThat(obj3.getDisplayName(), is(equalTo("Test Object 3"))); + assertThat(obj3.isPresent(), is(true)); + assertThat(obj3.get().getObjectId(), is(-30L)); + assertThat(obj3.get().getDisplayName(), is(equalTo("Test Object 3"))); - assertThat(none, is(nullValue())); + assertThat(none.isPresent(), is(false)); } /** @@ -297,7 +299,7 @@ public class CcmObjectRepositoryTest { excludeColumns = {"object_id"}) @InSequence(400) public void saveChangedCcmObject() { - final CcmObject obj = ccmObjectRepository.findById(-20L); + final CcmObject obj = ccmObjectRepository.findById(-20L).get(); obj.setDisplayName("Second Test Object"); ccmObjectRepository.save(obj); @@ -328,7 +330,7 @@ public class CcmObjectRepositoryTest { excludeColumns = {"object_id"}) @InSequence(600) public void deleteCcmObject() { - final CcmObject obj = ccmObjectRepository.findById(-20L); + final CcmObject obj = ccmObjectRepository.findById(-20L).get(); ccmObjectRepository.delete(obj); } diff --git a/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java b/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java index dae0a06c3..924462fb4 100644 --- a/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/AuthorizationInterceptorTest.java @@ -206,7 +206,7 @@ public class AuthorizationInterceptorTest { token.setRememberMe(true); subject.login(token); - final CcmObject object1 = objectRepository.findById(-20001L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); labBean.doSomethingWhichRequiresPermissionOnObject(object1); } @@ -221,7 +221,7 @@ public class AuthorizationInterceptorTest { token.setRememberMe(true); subject.login(token); - final CcmObject object1 = objectRepository.findById(-20001L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); labBean.doSomethingWhichRequiresPermissionOnObject(object1); } diff --git a/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java index 3937660fd..04fbc9519 100644 --- a/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/ChallengeManagerTest.java @@ -50,6 +50,8 @@ import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import java.util.Optional; + /** * * @author Jens Pelzetter @@ -159,32 +161,14 @@ public class ChallengeManagerTest { excludeColumns = {"token_id", "token", "valid_until"}) @InSequence(1100) public void createEmailVerification() { -// final String path = String.format("%s/%s/register/verify-email", -// servletContext.getVirtualServerName(), -// servletContext.getContextPath()); -// final String expected = String.format( -// "Please follow the following link to finish the email verfication " -// + "process:\n" -// + "\n" -// + "%s" -// + "\n\n" -// + "Please be aware that your verification token expires" -// + "at", -// path); - - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); + final String mail = shiro.getSystemUser().execute(() -> { return challengeManager.createEmailVerification(user); }); assertThat(mail, is(not(nullValue()))); assertThat(mail.isEmpty(), is(false)); -// assertThat( -// String -// .format("Mail is expected to start with \"%s\" but is \"%s\".", -// expected, -// mail), -// mail.startsWith(expected), is(true)); } @Test(expected = IllegalArgumentException.class) @@ -208,7 +192,7 @@ public class ChallengeManagerTest { + "after-finish-email-verification.xml") @InSequence(1300) public void finishEmailVerification() throws ChallengeFailedException { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); shiro.getSystemUser().execute(() -> { challengeManager.finishEmailVerification( user, @@ -251,7 +235,7 @@ public class ChallengeManagerTest { public void finishEmailVerificationNullToken() throws Throwable { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); try { shiro.getSystemUser().execute(() -> { challengeManager.finishEmailVerification(user, null); @@ -270,18 +254,7 @@ public class ChallengeManagerTest { excludeColumns = {"token_id", "token", "valid_until"}) @InSequence(2100) public void createAccountActivation() { -// final String path = String.format("%s/%s/register/activate-account", -// servletContext.getVirtualServerName(), -// servletContext.getContextPath()); -// final String expected = String.format( -// "Please follow the following link to enable your new account:\n" -// + "\n" -// + "%s" -// + "\n\n" -// + "Please be aware that you must activate your account before", -// path); - - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); final String mail = shiro.getSystemUser().execute(() -> { return challengeManager.createAccountActivation(user); }); @@ -312,7 +285,7 @@ public class ChallengeManagerTest { + "after-finish-account-activation.xml") @InSequence(2300) public void finishAccountActivation() throws Throwable { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); try { shiro.getSystemUser().execute(() -> { challengeManager.finishAccountActivation( @@ -357,7 +330,7 @@ public class ChallengeManagerTest { public void finishAccountActivationNullToken() throws Throwable { try { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); shiro.getSystemUser().execute(() -> { challengeManager.finishAccountActivation(user, null); return null; @@ -375,26 +348,13 @@ public class ChallengeManagerTest { excludeColumns = {"token_id", "token", "valid_until"}) @InSequence(3100) public void createPasswordRecover() { -// final String path = String.format("%s/%s/register/recover-password", -// servletContext.getVirtualServerName(), -// servletContext.getContextPath()); -// final String expected = String.format( -// "Please follow the following link to complete the password recover " -// + "process:\n" -// + "\n" -// + "%s" -// + "\n\n" -// + "Please be aware that you must complete the process until", -// path); - - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); final String mail = shiro.getSystemUser().execute(() -> { return challengeManager.createPasswordRecover(user); }); assertThat(mail, is(not(nullValue()))); assertThat(mail.isEmpty(), is(false)); -// assertThat(mail.startsWith(expected), is(true)); } @Test(expected = IllegalArgumentException.class) @@ -421,7 +381,7 @@ public class ChallengeManagerTest { excludeColumns = "password") @InSequence(3300) public void finishPasswordRecover() throws ChallengeFailedException { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); shiro.getSystemUser().execute(() -> { challengeManager.finishPasswordRecover( user, @@ -430,7 +390,7 @@ public class ChallengeManagerTest { return null; }); - final User after = userRepository.findByName("mmuster"); + final User after = userRepository.findByName("mmuster").get(); assertThat(userManager.verifyPassword(after, "new-password"), is(true)); } @@ -466,7 +426,7 @@ public class ChallengeManagerTest { @InSequence(3400) public void finishPasswordRecoverNullToken() throws Throwable { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); try { shiro.getSystemUser().execute(() -> { challengeManager.finishPasswordRecover( @@ -487,7 +447,7 @@ public class ChallengeManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3500) public void finishPasswordRecoverNullPassword() throws Throwable { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); try { shiro.getSystemUser().execute(() -> { @@ -511,7 +471,7 @@ public class ChallengeManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(3600) public void finishPasswordRecoverEmptyPassword() throws Throwable { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); try { shiro.getSystemUser().execute(() -> { challengeManager.finishPasswordRecover( diff --git a/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java index b5ea382b7..55614b77c 100644 --- a/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/GroupManagerTest.java @@ -157,11 +157,11 @@ public class GroupManagerTest { excludeColumns = {"membership_id"}) @InSequence(200) public void addUserToGroup() { - final Group admins = groupRepository.findByName("admins"); - final Group editors = groupRepository.findByName("editors"); + final Group admins = groupRepository.findByName("admins").get(); + final Group editors = groupRepository.findByName("editors").get(); - final User jdoe = userRepository.findByName("jdoe"); - final User mmuster = userRepository.findByName("mmuster"); + final User jdoe = userRepository.findByName("jdoe").get(); + final User mmuster = userRepository.findByName("mmuster").get(); shiro.getSystemUser().execute(() -> { groupManager.addMemberToGroup(mmuster, admins); @@ -174,7 +174,7 @@ public class GroupManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(210) public void addNullUserToGroup() throws Throwable { - final Group admins = groupRepository.findByName("admins"); + final Group admins = groupRepository.findByName("admins").get(); try { shiro.getSystemUser().execute( @@ -189,7 +189,7 @@ public class GroupManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(220) public void addUserToGroupNull() throws Throwable { - final User jdoe = userRepository.findByName("jdoe"); + final User jdoe = userRepository.findByName("jdoe").get(); try { shiro.getSystemUser().execute( @@ -205,8 +205,8 @@ public class GroupManagerTest { value = "datasets/org/libreccm/security/GroupManagerTest/data.yml") @InSequence(230) public void addUserToGroupAgain() { - final Group admins = groupRepository.findByName("admins"); - final User jdoe = userRepository.findByName("jdoe"); + final Group admins = groupRepository.findByName("admins").get(); + final User jdoe = userRepository.findByName("jdoe").get(); shiro.getSystemUser().execute( () -> groupManager.addMemberToGroup(jdoe, admins)); @@ -218,11 +218,11 @@ public class GroupManagerTest { + "after-remove.yml") @InSequence(300) public void removeUserFromGroup() { - final Group admins = groupRepository.findByName("admins"); - final Group users = groupRepository.findByName("users"); + final Group admins = groupRepository.findByName("admins").get(); + final Group users = groupRepository.findByName("users").get(); - final User jdoe = userRepository.findByName("jdoe"); - final User mmuster = userRepository.findByName("mmuster"); + final User jdoe = userRepository.findByName("jdoe").get(); + final User mmuster = userRepository.findByName("mmuster").get(); assertThat(admins.getMemberships().size(), is(1)); assertThat(users.getMemberships().size(), is(2)); @@ -238,7 +238,7 @@ public class GroupManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(310) public void removeUserNullFromGroup() throws Throwable { - final Group admins = groupRepository.findByName("admins"); + final Group admins = groupRepository.findByName("admins").get(); try { shiro.getSystemUser().execute( @@ -253,7 +253,7 @@ public class GroupManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(320) public void removeUserFromGroupNull() throws Throwable { - final User jdoe = userRepository.findByName("jdoe"); + final User jdoe = userRepository.findByName("jdoe").get(); try { shiro.getSystemUser().execute( @@ -269,8 +269,8 @@ public class GroupManagerTest { value = "datasets/org/libreccm/security/GroupManagerTest/data.yml") @InSequence(330) public void removeUserGroupNotAMember() { - final Group admins = groupRepository.findByName("admins"); - final User mmuster = userRepository.findByName("mmuster"); + final Group admins = groupRepository.findByName("admins").get(); + final User mmuster = userRepository.findByName("mmuster").get(); shiro.getSystemUser().execute( () -> groupManager.removeMemberFromGroup(mmuster, admins)); diff --git a/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java index 32707e519..90e91a560 100644 --- a/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/GroupRepositoryTest.java @@ -54,6 +54,8 @@ import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.libreccm.tests.categories.IntegrationTest; +import java.util.Optional; + /** * * @author Jens Pelzetter @@ -141,33 +143,33 @@ public class GroupRepositoryTest { assertThat(entityManager, is(not(nullValue()))); } - private void checkGroups(final Group admins, - final Group users, - final Group editors, - final Group none) { - assertThat(admins, is(not(nullValue()))); - assertThat(admins.getPartyId(), is(-10L)); - assertThat(admins.getName(), is(equalTo(ADMINS))); + private void checkGroups(final Optional admins, + final Optional users, + final Optional editors, + final Optional none) { + assertThat(admins.isPresent(), is(true)); + assertThat(admins.get().getPartyId(), is(-10L)); + assertThat(admins.get().getName(), is(equalTo(ADMINS))); - assertThat(users, is(not(nullValue()))); - assertThat(users.getPartyId(), is(-20L)); - assertThat(users.getName(), is(equalTo(USERS))); + assertThat(users.isPresent(), is(true)); + assertThat(users.get().getPartyId(), is(-20L)); + assertThat(users.get().getName(), is(equalTo(USERS))); - assertThat(editors, is(not(nullValue()))); - assertThat(editors.getPartyId(), is(-30L)); - assertThat(editors.getName(), is(equalTo(EDITORS))); + assertThat(editors.isPresent(), is(true)); + assertThat(editors.get().getPartyId(), is(-30L)); + assertThat(editors.get().getName(), is(equalTo(EDITORS))); - assertThat(none, is(nullValue())); + assertThat(none.isPresent(), is(false)); } @Test @UsingDataSet("datasets/org/libreccm/security/GroupRepositoryTest/data.yml") @InSequence(100) public void findGroupById() { - final Group admins = groupRepository.findById(-10L); - final Group users = groupRepository.findById(-20L); - final Group editors = groupRepository.findById(-30L); - final Group none = groupRepository.findById(-999L); + final Optional admins = groupRepository.findById(-10L); + final Optional users = groupRepository.findById(-20L); + final Optional editors = groupRepository.findById(-30L); + final Optional none = groupRepository.findById(-999L); checkGroups(admins, users, editors, none); } @@ -176,10 +178,10 @@ public class GroupRepositoryTest { @UsingDataSet("datasets/org/libreccm/security/GroupRepositoryTest/data.yml") @InSequence(200) public void findGroupByName() { - final Group admins = groupRepository.findByName(ADMINS); - final Group users = groupRepository.findByName(USERS); - final Group editors = groupRepository.findByName(EDITORS); - final Group none = groupRepository.findByName(NONE); + final Optional admins = groupRepository.findByName(ADMINS); + final Optional users = groupRepository.findByName(USERS); + final Optional editors = groupRepository.findByName(EDITORS); + final Optional none = groupRepository.findByName(NONE); checkGroups(admins, users, editors, none); } @@ -213,7 +215,7 @@ public class GroupRepositoryTest { excludeColumns = {"party_id"}) @InSequence(500) public void saveChangedGroup() { - final Group group = groupRepository.findById(-30L); + final Group group = groupRepository.findById(-30L).get(); group.setName("authors"); groupRepository.save(group); @@ -233,7 +235,7 @@ public class GroupRepositoryTest { excludeColumns = {"party_id"}) @InSequence(700) public void deleteUser() { - final Group group = groupRepository.findByName(USERS); + final Group group = groupRepository.findByName(USERS).get(); groupRepository.delete(group); } diff --git a/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java index 28fd73e26..5dc27e90b 100644 --- a/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/OneTimeAuthManagerTest.java @@ -149,7 +149,7 @@ public class OneTimeAuthManagerTest { excludeColumns = {"token_id", "token", "valid_until"}) @InSequence(100) public void createTokenForUser() { - final User mmuster = userRepository.findByName("mmuster"); + final User mmuster = userRepository.findByName("mmuster").get(); final OneTimeAuthToken token = shiro.getSystemUser().execute(() -> { return oneTimeAuthManager.createForUser( mmuster, @@ -206,7 +206,7 @@ public class OneTimeAuthManagerTest { "datasets/org/libreccm/security/OneTimeAuthManagerTest/data.xml") @InSequence(400) public void retrieveTokenForUser() { - final User jdoe = userRepository.findByName("jdoe"); + final User jdoe = userRepository.findByName("jdoe").get(); final List result = shiro.getSystemUser().execute( () -> { @@ -229,7 +229,7 @@ public class OneTimeAuthManagerTest { "datasets/org/libreccm/security/OneTimeAuthManagerTest/data.xml") @InSequence(500) public void retrieveNotExistingTokenForUser() { - final User mmuster = userRepository.findByName("mmuster"); + final User mmuster = userRepository.findByName("mmuster").get(); final List result = shiro.getSystemUser().execute( () -> { @@ -261,7 +261,7 @@ public class OneTimeAuthManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(700) public void retrieveTokenNullPurpose() throws Throwable { - final User mmuster = userRepository.findByName("mmuster"); + final User mmuster = userRepository.findByName("mmuster").get(); try { shiro.getSystemUser().execute( @@ -276,7 +276,7 @@ public class OneTimeAuthManagerTest { "datasets/org/libreccm/security/OneTimeAuthManagerTest/data.xml") @InSequence(800) public void validTokenExistsForUser() { - final User user = userRepository.findByName("jdoe"); + final User user = userRepository.findByName("jdoe").get(); shiro.getSystemUser().execute( () -> { @@ -292,7 +292,7 @@ public class OneTimeAuthManagerTest { "datasets/org/libreccm/security/OneTimeAuthManagerTest/data.xml") @InSequence(900) public void validTokenDoesNotExist() { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); shiro.getSystemUser().execute( () -> { @@ -325,7 +325,7 @@ public class OneTimeAuthManagerTest { @InSequence(1100) public void validTokenNullPurpose() throws Throwable { try { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); shiro.getSystemUser().execute( () -> oneTimeAuthManager.validTokenExistsForUser(user, null)); } catch (ExecutionException ex) { @@ -338,7 +338,7 @@ public class OneTimeAuthManagerTest { "datasets/org/libreccm/security/OneTimeAuthManagerTest/data.xml") @InSequence(1200) public void isValid() { - final User jdoe = userRepository.findByName("jdoe"); + final User jdoe = userRepository.findByName("jdoe").get(); final List result = shiro.getSystemUser().execute( () -> { @@ -358,7 +358,7 @@ public class OneTimeAuthManagerTest { "datasets/org/libreccm/security/OneTimeAuthManagerTest/data.xml") @InSequence(1300) public void isInvalid() { - final User jdoe = userRepository.findByName("jdoe"); + final User jdoe = userRepository.findByName("jdoe").get(); final List result = shiro.getSystemUser().execute( () -> { @@ -402,7 +402,7 @@ public class OneTimeAuthManagerTest { + "after-invalidate.xml") @InSequence(1500) public void invalidateToken() { - final User jdoe = userRepository.findByName("jdoe"); + final User jdoe = userRepository.findByName("jdoe").get(); final List result = shiro.getSystemUser().execute( () -> { diff --git a/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java index 4abc55d86..af3a3b156 100644 --- a/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/PartyRepositoryTest.java @@ -149,8 +149,8 @@ public class PartyRepositoryTest { @UsingDataSet("datasets/org/libreccm/security/PartyRepositoryTest/data.yml") @InSequence(100) public void findPartyById() { - final User jdoe = (User) partyRepository.findById(-10L); - final Group admins = (Group) partyRepository.findById(-20L); + final User jdoe = (User) partyRepository.findById(-10L).get(); + final Group admins = (Group) partyRepository.findById(-20L).get(); assertThat(jdoe, is(not(nullValue()))); assertThat(jdoe.getPartyId(), is(-10L)); @@ -170,8 +170,8 @@ public class PartyRepositoryTest { @UsingDataSet("datasets/org/libreccm/security/PartyRepositoryTest/data.yml") @InSequence(110) public void findByName() { - final User jdoe = (User) partyRepository.findByName(JDOE); - final Group admins = (Group) partyRepository.findByName(ADMINS); + final User jdoe = (User) partyRepository.findByName(JDOE).get(); + final Group admins = (Group) partyRepository.findByName(ADMINS).get(); assertThat(jdoe, is(not(nullValue()))); assertThat(jdoe.getPartyId(), is(-10L)); @@ -236,8 +236,8 @@ public class PartyRepositoryTest { ) @InSequence(400) public void saveChangedParty() { - final Party user = partyRepository.findById(-10L); - final Party group = partyRepository.findById(-20L); + final Party user = partyRepository.findById(-10L).get(); + final Party group = partyRepository.findById(-20L).get(); user.setName("johndoe"); group.setName("managers"); @@ -262,7 +262,7 @@ public class PartyRepositoryTest { excludeColumns = {"party_id"}) @InSequence(600) public void deleteParty() { - final Party user = partyRepository.findById(-10L); + final Party user = partyRepository.findById(-10L).get(); shiro.getSystemUser().execute(() -> partyRepository.delete(user)); } diff --git a/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java b/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java index 92e02b9a4..6066879b4 100644 --- a/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/PermissionCheckerTest.java @@ -170,9 +170,9 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(1300) public void isPermittedSystemUser() { - final CcmObject object1 = objectRepository.findById(-20001L); - final CcmObject object2 = objectRepository.findById(-20002L); - final CcmObject object3 = objectRepository.findById(-20003L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); + final CcmObject object2 = objectRepository.findById(-20002L).get(); + final CcmObject object3 = objectRepository.findById(-20003L).get(); shiro.getSystemUser().execute(new Callable() { @@ -206,8 +206,8 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(1400) public void isPermittedObjectAuthenticatedUser() { - final CcmObject object1 = objectRepository.findById(-20001L); - final CcmObject object2 = objectRepository.findById(-20002L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); + final CcmObject object2 = objectRepository.findById(-20002L).get(); final UsernamePasswordToken token = new UsernamePasswordToken("jdoe", "foo123"); @@ -227,8 +227,8 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(1500) public void isPermittedObjectUnAuthenticatedUser() { - final CcmObject object1 = objectRepository.findById(-20001L); - final CcmObject object2 = objectRepository.findById(-20002L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); + final CcmObject object2 = objectRepository.findById(-20002L).get(); assertThat(permissionChecker.isPermitted("privilege1", object1), is(false)); @@ -264,7 +264,7 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(2300) public void checkPermissionObjectAuthenticatedUser() { - final CcmObject object2 = objectRepository.findById(-20002L); + final CcmObject object2 = objectRepository.findById(-20002L).get(); final UsernamePasswordToken token = new UsernamePasswordToken("jdoe", "foo123"); @@ -279,7 +279,7 @@ public class PermissionCheckerTest { @ShouldThrowException(AuthorizationException.class) @InSequence(2400) public void checkPermissionObjectUnAuthenticatedUser() { - final CcmObject object2 = objectRepository.findById(-20002L); + final CcmObject object2 = objectRepository.findById(-20002L).get(); permissionChecker.checkPermission("privilege2", object2); } @@ -288,7 +288,7 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(2500) public void checkPermissionObjectPublicUser() { - final CcmObject object1 = objectRepository.findById(-20001L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); permissionChecker.checkPermission("privilege3", object1); } @@ -297,9 +297,9 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(2600) public void checkPermissionObjectSystemUser() { - final CcmObject object1 = objectRepository.findById(-20001L); - final CcmObject object2 = objectRepository.findById(-20002L); - final CcmObject object3 = objectRepository.findById(-20003L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); + final CcmObject object2 = objectRepository.findById(-20002L).get(); + final CcmObject object3 = objectRepository.findById(-20003L).get(); shiro.getSystemUser().execute(new Callable() { @@ -323,7 +323,7 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(3100) public void checkPermissionReturnObjectAuthenticatedUser() { - final CcmObject object2 = objectRepository.findById(-20002L); + final CcmObject object2 = objectRepository.findById(-20002L).get(); final UsernamePasswordToken token = new UsernamePasswordToken("jdoe", "foo123"); @@ -341,7 +341,7 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(3200) public void checkPermissionReturnObjectUnAuthenticatedUser() { - final CcmObject object2 = objectRepository.findById(-20002L); + final CcmObject object2 = objectRepository.findById(-20002L).get(); final CcmObject result = permissionChecker.checkPermission( "privilege2", object2, CcmObject.class); @@ -354,7 +354,7 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(600) public void checkPermissionReturnObjectPublicUser() { - final CcmObject object1 = objectRepository.findById(-20001L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); final CcmObject result = permissionChecker.checkPermission( "privilege3", object1, CcmObject.class); @@ -367,9 +367,9 @@ public class PermissionCheckerTest { @UsingDataSet("datasets/org/libreccm/security/ShiroTest/data.yml") @InSequence(3200) public void checkPermissionReturnObjectSystemUser() { - final CcmObject object1 = objectRepository.findById(-20001L); - final CcmObject object2 = objectRepository.findById(-20002L); - final CcmObject object3 = objectRepository.findById(-20003L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); + final CcmObject object2 = objectRepository.findById(-20002L).get(); + final CcmObject object3 = objectRepository.findById(-20003L).get(); final List results = shiro.getSystemUser().execute( new Callable>() { diff --git a/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java index 5a8231df7..31bc19947 100644 --- a/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/PermissionManagerTest.java @@ -184,8 +184,8 @@ public class PermissionManagerTest { excludeColumns = {"permission_id"}) @InSequence(200) public void grantPermission() { - final Role role2 = roleRepository.findByName("role2"); - final CcmObject object3 = ccmObjectRepository.findById(-20003L); + final Role role2 = roleRepository.findByName("role2").get(); + final CcmObject object3 = ccmObjectRepository.findById(-20003L).get(); shiro.getSystemUser().execute(() -> { permissionManager.grantPrivilege("privilege2", role2, object3); @@ -208,8 +208,8 @@ public class PermissionManagerTest { + "data.yml") @InSequence(210) public void grantPermissionAgain() { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); shiro.getSystemUser().execute(() -> { permissionManager.grantPrivilege("privilege1", role1); @@ -231,8 +231,8 @@ public class PermissionManagerTest { excludeColumns = {"permission_id"}) @InSequence(211) public void grantPermissionRecursively() { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject category1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject category1 = ccmObjectRepository.findById(-20001L).get(); shiro.getSystemUser().execute(() -> { permissionManager.grantPrivilege("privilege4", role1, category1); @@ -253,7 +253,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(220) public void grantPermissionPrivilegeNull() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); + final Role role1 = roleRepository.findByName("role1").get(); try { shiro.getSystemUser().execute( @@ -277,8 +277,8 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(225) public void grantPermissionOnObjectPrivilegeNull() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); try { shiro.getSystemUser().execute( @@ -302,7 +302,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(230) public void grantPermissionEmptyPrivilege() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); + final Role role1 = roleRepository.findByName("role1").get(); try { shiro.getSystemUser().execute( @@ -326,8 +326,8 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(235) public void grantPermissionOnObjectEmptyPrivilege() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); try { shiro.getSystemUser().execute( @@ -373,7 +373,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(240) public void grantPermissionOnObjectToRoleNull() throws Throwable { - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); try { shiro.getSystemUser().execute( @@ -399,7 +399,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(250) public void grantPermissionNullObject() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); + final Role role1 = roleRepository.findByName("role1").get(); try { shiro.getSystemUser().execute( @@ -427,8 +427,8 @@ public class PermissionManagerTest { excludeColumns = {"permission_id"}) @InSequence(300) public void revokePermission() { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); shiro.getSystemUser().execute(() -> { permissionManager.revokePrivilege("privilege1", role1); @@ -452,7 +452,7 @@ public class PermissionManagerTest { + "data.yml") @InSequence(310) public void revokeNotExistingPermission() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); + final Role role1 = roleRepository.findByName("role1").get(); shiro.getSystemUser().execute( () -> permissionManager.revokePrivilege("privilege999", role1)); @@ -470,8 +470,8 @@ public class PermissionManagerTest { + "after-revoke-recursivly.yml") @InSequence(311) public void revokePermissionRecursivly() { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject category1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject category1 = ccmObjectRepository.findById(-20001L).get(); shiro.getSystemUser().execute(() -> { permissionManager.revokePrivilege("privilege4", role1, category1); @@ -493,8 +493,8 @@ public class PermissionManagerTest { + "data.yml") @InSequence(310) public void revokeNotExistingPermissionOnObject() { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); shiro.getSystemUser().execute( () -> permissionManager.revokePrivilege("privilege999", @@ -516,7 +516,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(320) public void revokePermissionPrivilegeNull() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); + final Role role1 = roleRepository.findByName("role1").get(); try { shiro.getSystemUser().execute( @@ -540,8 +540,8 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(320) public void revokePermissionOnObjectPrivilegeNull() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); try { shiro.getSystemUser().execute( @@ -566,7 +566,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(330) public void revokePermissionEmptyPrivilege() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); + final Role role1 = roleRepository.findByName("role1").get(); try { shiro.getSystemUser().execute( @@ -591,8 +591,8 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(320) public void revokePermissionOnObjectEmptyPrivilege() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final Role role1 = roleRepository.findByName("role1").get(); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); try { shiro.getSystemUser().execute( @@ -639,7 +639,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(345) public void revokePermissionOnObjectFromRoleNull() throws Throwable { - final CcmObject object1 = ccmObjectRepository.findById(-20001L); + final CcmObject object1 = ccmObjectRepository.findById(-20001L).get(); try { shiro.getSystemUser().execute( @@ -665,7 +665,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(350) public void revokePermissionNullObject() throws Throwable { - final Role role1 = roleRepository.findByName("role1"); + final Role role1 = roleRepository.findByName("role1").get(); try { shiro.getSystemUser().execute( @@ -693,8 +693,8 @@ public class PermissionManagerTest { excludeColumns = {"permission_id"}) @InSequence(400) public void copyPermissions() throws Throwable { - final CcmObject object2 = ccmObjectRepository.findById(-20002L); - final CcmObject object3 = ccmObjectRepository.findById(-20003L); + final CcmObject object2 = ccmObjectRepository.findById(-20002L).get(); + final CcmObject object3 = ccmObjectRepository.findById(-20003L).get(); shiro.getSystemUser().execute( () -> permissionManager.copyPermissions(object2, object3)); @@ -714,7 +714,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(410) public void copyPermissionsNullSource() throws Throwable { - final CcmObject object3 = ccmObjectRepository.findById(-20003L); + final CcmObject object3 = ccmObjectRepository.findById(-20003L).get(); try { shiro.getSystemUser().execute( @@ -738,7 +738,7 @@ public class PermissionManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(420) public void copyPermissionsNullTarget() throws Throwable { - final CcmObject object2 = ccmObjectRepository.findById(-20002L); + final CcmObject object2 = ccmObjectRepository.findById(-20002L).get(); try { shiro.getSystemUser().execute( diff --git a/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java index 9534bdef6..ad722b11f 100644 --- a/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/RoleManagerTest.java @@ -142,11 +142,11 @@ public class RoleManagerTest { excludeColumns = {"membership_id"}) @InSequence(200) public void assignRoleToParty() { - final Role role1 = roleRepository.findByName("role1"); - final Role role3 = roleRepository.findByName("role3"); + final Role role1 = roleRepository.findByName("role1").get(); + final Role role3 = roleRepository.findByName("role3").get(); - final Party joe = partyRepository.findByName("joe"); - final Party group1 = partyRepository.findByName("group1"); + final Party joe = partyRepository.findByName("joe").get(); + final Party group1 = partyRepository.findByName("group1").get(); shiro.getSystemUser().execute(() -> { roleManager.assignRoleToParty(role1, joe); @@ -159,7 +159,7 @@ public class RoleManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(210) public void assignRoleNullToParty() throws Throwable { - final Party party = partyRepository.findByName("jdoe"); + final Party party = partyRepository.findByName("jdoe").get(); try { shiro.getSystemUser().execute( @@ -174,7 +174,7 @@ public class RoleManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(220) public void assignRoleToPartyNull() throws Throwable { - final Role role = roleRepository.findByName("role1"); + final Role role = roleRepository.findByName("role1").get(); try { shiro.getSystemUser().execute( @@ -190,8 +190,8 @@ public class RoleManagerTest { value = "datasets/org/libreccm/security/RoleManagerTest/data.yml") @InSequence(230) public void assignRoleToPartyAgain() { - final Party jdoe = partyRepository.findByName("jdoe"); - final Role role1 = roleRepository.findByName("role1"); + final Party jdoe = partyRepository.findByName("jdoe").get(); + final Role role1 = roleRepository.findByName("role1").get(); shiro.getSystemUser().execute( () -> roleManager.assignRoleToParty(role1, jdoe)); @@ -205,11 +205,11 @@ public class RoleManagerTest { excludeColumns = {"membership_id"}) @InSequence(300) public void removeRoleFromParty() { - final Role role1 = roleRepository.findByName("role1"); - final Role role2 = roleRepository.findByName("role2"); + final Role role1 = roleRepository.findByName("role1").get(); + final Role role2 = roleRepository.findByName("role2").get(); - final Party jdoe = partyRepository.findByName("jdoe"); - final Party group1 = partyRepository.findByName("group1"); + final Party jdoe = partyRepository.findByName("jdoe").get(); + final Party group1 = partyRepository.findByName("group1").get(); shiro.getSystemUser().execute(() -> { roleManager.removeRoleFromParty(role1, jdoe); @@ -222,7 +222,7 @@ public class RoleManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(310) public void removeRoleNullFromParty() throws Throwable { - final Party party = partyRepository.findByName("jdoe"); + final Party party = partyRepository.findByName("jdoe").get(); try { shiro.getSystemUser().execute( @@ -237,7 +237,7 @@ public class RoleManagerTest { @ShouldThrowException(IllegalArgumentException.class) @InSequence(220) public void removeRoleFromPartyNull() throws Throwable { - final Role role = roleRepository.findByName("role1"); + final Role role = roleRepository.findByName("role1").get(); try { shiro.getSystemUser().execute( () -> roleManager.removeRoleFromParty(role, null)); @@ -252,8 +252,8 @@ public class RoleManagerTest { value = "datasets/org/libreccm/security/RoleManagerTest/data.yml") @InSequence(330) public void removeNotAssignedRoleFromParty() { - final Role role2 = roleRepository.findByName("role2"); - final Party jdoe = partyRepository.findByName("jdoe"); + final Role role2 = roleRepository.findByName("role2").get(); + final Party jdoe = partyRepository.findByName("jdoe").get(); shiro.getSystemUser().execute( () -> roleManager.removeRoleFromParty(role2, jdoe)); diff --git a/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java index c5afe5887..a90d11c97 100644 --- a/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/RoleRepositoryTest.java @@ -56,6 +56,8 @@ import static org.libreccm.testutils.DependenciesHelpers.*; import org.jboss.arquillian.persistence.CleanupUsingScript; +import java.util.Optional; + /** * Tests for the {@link RoleRepository}. Note. We are not enabling the * {@link AuthorizationInterceptor} for this test. @@ -160,20 +162,20 @@ public class RoleRepositoryTest { * @param user The user role. * @param reader The reader role. */ - private void checkRoles(final Role administrator, - final Role user, - final Role reader) { - assertThat(administrator, is(not((nullValue())))); - assertThat(administrator.getRoleId(), is(-10L)); - assertThat(administrator.getName(), is(equalTo(ADMINISTRATOR))); + private void checkRoles(final Optional administrator, + final Optional user, + final Optional reader) { + assertThat(administrator.isPresent(), is(true)); + assertThat(administrator.get().getRoleId(), is(-10L)); + assertThat(administrator.get().getName(), is(equalTo(ADMINISTRATOR))); - assertThat(user, is(not((nullValue())))); - assertThat(user.getRoleId(), is(-20L)); - assertThat(user.getName(), is(equalTo(USER))); + assertThat(user.isPresent(), is(true)); + assertThat(user.get().getRoleId(), is(-20L)); + assertThat(user.get().getName(), is(equalTo(USER))); - assertThat(reader, is(not((nullValue())))); - assertThat(reader.getRoleId(), is(-30L)); - assertThat(reader.getName(), is(equalTo(READER))); + assertThat(reader.isPresent(), is(true)); + assertThat(reader.get().getRoleId(), is(-30L)); + assertThat(reader.get().getName(), is(equalTo(READER))); } /** @@ -184,9 +186,9 @@ public class RoleRepositoryTest { @UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml") @InSequence(100) public void findRoleById() { - final Role administrator = roleRepository.findById(-10L); - final Role user = roleRepository.findById(-20L); - final Role reader = roleRepository.findById(-30L); + final Optional administrator = roleRepository.findById(-10L); + final Optional user = roleRepository.findById(-20L); + final Optional reader = roleRepository.findById(-30L); checkRoles(administrator, user, reader); } @@ -199,9 +201,9 @@ public class RoleRepositoryTest { @UsingDataSet("datasets/org/libreccm/security/RoleRepositoryTest/data.yml") @InSequence(200) public void findRoleByName() { - final Role administrator = roleRepository.findByName(ADMINISTRATOR); - final Role user = roleRepository.findByName(USER); - final Role reader = roleRepository.findByName(READER); + final Optional administrator = roleRepository.findByName(ADMINISTRATOR); + final Optional user = roleRepository.findByName(USER); + final Optional reader = roleRepository.findByName(READER); checkRoles(administrator, user, reader); } @@ -256,9 +258,9 @@ public class RoleRepositoryTest { "datasets/org/libreccm/security/PermissionManagerTest/data.yml") @InSequence(310) public void findByPrivilegeAndObject() { - final CcmObject object1 = ccmObjRepo.findById(-20001L); - final CcmObject object2 = ccmObjRepo.findById(-20002L); - final CcmObject object3 = ccmObjRepo.findById(-20003L); + final CcmObject object1 = ccmObjRepo.findById(-20001L).get(); + final CcmObject object2 = ccmObjRepo.findById(-20002L).get(); + final CcmObject object3 = ccmObjRepo.findById(-20003L).get(); final List rolesWithPrivilege1 = roleRepository.findByPrivilege( "privilege1", object1); @@ -306,7 +308,7 @@ public class RoleRepositoryTest { excludeColumns = {"role_id"}) @InSequence(500) public void saveChangedRole() { - final Role role = roleRepository.findById(-20L); + final Role role = roleRepository.findById(-20L).get(); role.setName("writer"); roleRepository.save(role); @@ -335,7 +337,7 @@ public class RoleRepositoryTest { excludeColumns = {"role_id"}) @InSequence(700) public void deleteRole() { - final Role role = roleRepository.findByName(USER); + final Role role = roleRepository.findByName(USER).get(); roleRepository.delete(role); } diff --git a/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java b/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java index 40ff8cbc8..dd698ade9 100644 --- a/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/SecuredCollectionTest.java @@ -96,9 +96,9 @@ public class SecuredCollectionTest { @Before public void setUp() { - final CcmObject object1 = objectRepository.findById(-20001L); - final CcmObject object2 = objectRepository.findById(-20002L); - final CcmObject object3 = objectRepository.findById(-20003L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); + final CcmObject object2 = objectRepository.findById(-20002L).get(); + final CcmObject object3 = objectRepository.findById(-20003L).get(); final List list = new ArrayList<>(); list.add(object1); diff --git a/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java b/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java index 0c17d2314..b7259bf8b 100644 --- a/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/SecuredIteratorTest.java @@ -98,9 +98,9 @@ public class SecuredIteratorTest { @Before public void setUp() { - final CcmObject object1 = objectRepository.findById(-20001L); - final CcmObject object2 = objectRepository.findById(-20002L); - final CcmObject object3 = objectRepository.findById(-20003L); + final CcmObject object1 = objectRepository.findById(-20001L).get(); + final CcmObject object2 = objectRepository.findById(-20002L).get(); + final CcmObject object3 = objectRepository.findById(-20003L).get(); final List list = new ArrayList<>(); list.add(object1); diff --git a/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java b/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java index ca34d06a5..2cdbd1880 100644 --- a/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/UserManagerTest.java @@ -148,9 +148,9 @@ public class UserManagerTest { @UsingDataSet("datasets/org/libreccm/security/UserManagerTest/data.yml") @InSequence(200) public void verifyPassword() { - final User jdoe = userRepository.findByName("jdoe"); - final User mmuster = userRepository.findByName("mmuster"); - final User joe = userRepository.findByName("joe"); + final User jdoe = userRepository.findByName("jdoe").get(); + final User mmuster = userRepository.findByName("mmuster").get(); + final User joe = userRepository.findByName("joe").get(); assertThat(userManager.verifyPassword(jdoe, "foo123"), is(true)); assertThat(userManager.verifyPassword(mmuster, "foo123"), is(true)); @@ -172,7 +172,7 @@ public class UserManagerTest { "jane.doe@example.org", "foo456")); - final User jane2 = userRepository.findByName("jane"); + final User jane2 = userRepository.findByName("jane").get(); assertThat(userManager.verifyPassword(jane2, "foo456"), is(true)); } @@ -198,11 +198,11 @@ public class UserManagerTest { @UsingDataSet("datasets/org/libreccm/security/UserManagerTest/data.yml") @InSequence(500) public void updatePassword() { - final User jdoe = userRepository.findByName("jdoe"); + final User jdoe = userRepository.findByName("jdoe").get(); shiro.getSystemUser().execute( () -> userManager.updatePassword(jdoe, "foo456")); - final User jdoe2 = userRepository.findByName("jdoe"); + final User jdoe2 = userRepository.findByName("jdoe").get(); assertThat(userManager.verifyPassword(jdoe, "foo456"), is(true)); assertThat(userManager.verifyPassword(jdoe2, "foo456"), is(true)); diff --git a/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java index 01700286a..fbe04bf27 100644 --- a/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/UserRepositoryTest.java @@ -50,6 +50,7 @@ import org.libreccm.core.EmailAddress; import org.libreccm.tests.categories.IntegrationTest; import java.util.List; +import java.util.Optional; import javax.inject.Inject; import javax.persistence.EntityManager; @@ -144,48 +145,48 @@ public class UserRepositoryTest { assertThat(entityManager, is(not(nullValue()))); } - private void checkUsers(final User jdoe, - final User mmuster, - final User joe, - final User nobody) { - assertThat(jdoe, is(not(nullValue()))); - assertThat(jdoe.getPartyId(), is(-10L)); - assertThat(jdoe.getName(), is(equalTo(JDOE))); - assertThat(jdoe.getFamilyName(), is(equalTo("Doe"))); - assertThat(jdoe.getGivenName(), is(equalTo("John"))); - assertThat(jdoe.getPassword(), + private void checkUsers(final Optional jdoe, + final Optional mmuster, + final Optional joe, + final Optional nobody) { + assertThat(jdoe.isPresent(), is(true)); + assertThat(jdoe.get().getPartyId(), is(-10L)); + assertThat(jdoe.get().getName(), is(equalTo(JDOE))); + assertThat(jdoe.get().getFamilyName(), is(equalTo("Doe"))); + assertThat(jdoe.get().getGivenName(), is(equalTo("John"))); + assertThat(jdoe.get().getPassword(), is(equalTo( "$shiro1$SHA-512$500000$7xkDcZUN0/whJInHIvGsDw==$WhelBVmJU/cLV7lAkMOrE5B/mqCW0bUuid1WX+xBwzzAaekC5bYn9eeOFGJWhiDgmaC50ZCUmM96/iGsRoc4uA=="))); - assertThat(mmuster, is(not(nullValue()))); - assertThat(mmuster.getPartyId(), is(-20L)); - assertThat(mmuster.getName(), is(equalTo(MMUSTER))); - assertThat(mmuster.getFamilyName(), is(equalTo("Mustermann"))); - assertThat(mmuster.getGivenName(), is(equalTo("Max"))); - assertThat(mmuster.getPassword(), + assertThat(mmuster.isPresent(), is(true)); + assertThat(mmuster.get().getPartyId(), is(-20L)); + assertThat(mmuster.get().getName(), is(equalTo(MMUSTER))); + assertThat(mmuster.get().getFamilyName(), is(equalTo("Mustermann"))); + assertThat(mmuster.get().getGivenName(), is(equalTo("Max"))); + assertThat(mmuster.get().getPassword(), is(equalTo( "$shiro1$SHA-512$500000$Y7CnccN1h25sR7KCElMOXg==$CVLWBhetodaEzzhDfGjRcCFZtSW02xOnjH7xhBx0lbxO66grKIt6LWmXoUhLEydce1JZ7cbzNLYOxIwwTeqi5Q=="))); - assertThat(joe, is(not(nullValue()))); - assertThat(joe.getPartyId(), is(-30L)); - assertThat(joe.getName(), is(equalTo(JOE))); - assertThat(joe.getFamilyName(), is(equalTo("Public"))); - assertThat(joe.getGivenName(), is(equalTo("Joe"))); - assertThat(joe.getPassword(), + assertThat(joe.isPresent(), is(true)); + assertThat(joe.get().getPartyId(), is(-30L)); + assertThat(joe.get().getName(), is(equalTo(JOE))); + assertThat(joe.get().getFamilyName(), is(equalTo("Public"))); + assertThat(joe.get().getGivenName(), is(equalTo("Joe"))); + assertThat(joe.get().getPassword(), is(equalTo( "$shiro1$SHA-512$500000$RUCYXAQt+XzUmj3x8oG5gw==$qU+lX160Jc6sNUOI9X85wlf2lzn4/hLJNURtjmw9LOYJ7vAqUFFmhyNCMxpzuHIpzeMELr+A0XReoSmtcZnOOw=="))); - assertThat(nobody, is(nullValue())); + assertThat(nobody.isPresent(), is(false)); } @Test @UsingDataSet("datasets/org/libreccm/security/UserRepositoryTest/data.yml") @InSequence(100) public void findUserById() { - final User jdoe = userRepository.findById(-10L); - final User mmuster = userRepository.findById(-20L); - final User joe = userRepository.findById(-30L); - final User nobody = userRepository.findById(-999L); + final Optional jdoe = userRepository.findById(-10L); + final Optional mmuster = userRepository.findById(-20L); + final Optional joe = userRepository.findById(-30L); + final Optional nobody = userRepository.findById(-999L); checkUsers(jdoe, mmuster, joe, nobody); } @@ -194,10 +195,10 @@ public class UserRepositoryTest { @UsingDataSet("datasets/org/libreccm/security/UserRepositoryTest/data.yml") @InSequence(200) public void findUserByScreenName() { - final User jdoe = userRepository.findByName(JDOE); - final User mmuster = userRepository.findByName(MMUSTER); - final User joe = userRepository.findByName(JOE); - final User nobody = userRepository.findByName(NOBODY); + final Optional jdoe = userRepository.findByName(JDOE); + final Optional mmuster = userRepository.findByName(MMUSTER); + final Optional joe = userRepository.findByName(JOE); + final Optional nobody = userRepository.findByName(NOBODY); checkUsers(jdoe, mmuster, joe, nobody); } @@ -206,13 +207,13 @@ public class UserRepositoryTest { @UsingDataSet("datasets/org/libreccm/security/UserRepositoryTest/data.yml") @InSequence(300) public void findUserByEmail() { - final User jdoe = userRepository.findByEmailAddress( + final Optional jdoe = userRepository.findByEmailAddress( "john.doe@example.com"); - final User mmuster1 = userRepository.findByEmailAddress( + final Optional mmuster1 = userRepository.findByEmailAddress( "max.mustermann@example.org"); - final User joe = userRepository.findByEmailAddress( + final Optional joe = userRepository.findByEmailAddress( "joe.public@example.com"); - final User nobody = userRepository + final Optional nobody = userRepository .findByEmailAddress("nobody@example.org"); checkUsers(jdoe, mmuster1, joe, nobody); @@ -224,7 +225,7 @@ public class UserRepositoryTest { @InSequence(350) public void findByEmailAddressDuplicate() { final User user = userRepository.findByEmailAddress( - "max.mustermann@example.org"); + "max.mustermann@example.org").get(); assertThat(user.getPartyId(), is(-30L)); } @@ -271,7 +272,7 @@ public class UserRepositoryTest { excludeColumns = {"party_id"}) @InSequence(600) public void saveChangedUser() { - final User user = userRepository.findById(-10L); + final User user = userRepository.findById(-10L).get(); //foo456 user.setPassword( @@ -300,7 +301,7 @@ public class UserRepositoryTest { excludeColumns = {"party_id"}) @InSequence(800) public void deleteUser() { - final User user = userRepository.findByName("mmuster"); + final User user = userRepository.findByName("mmuster").get(); shiro.getSystemUser().execute(() -> userRepository.delete(user)); } diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutForm.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutForm.java index 935b52e5b..13dda26e2 100644 --- a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutForm.java +++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutForm.java @@ -121,7 +121,7 @@ public class ShortcutForm extends Form { final ShortcutRepository repo = CdiUtil.createCdiUtil() .findBean(ShortcutRepository.class); final Shortcut shortcut = repo.findById(Long.parseLong( - selectedShortcut.getSelectedKey(state))); + selectedShortcut.getSelectedKey(state))).get(); urlKeyField.setValue(state, shortcut.getUrlKey()); redirectField.setValue(state, shortcut.getRedirect()); } @@ -138,7 +138,7 @@ public class ShortcutForm extends Form { final ShortcutRepository repo = CdiUtil.createCdiUtil() .findBean(ShortcutRepository.class); shortcut = repo.findById(Long.parseLong(selectedShortcut - .getSelectedKey(state))); + .getSelectedKey(state))).get(); shortcut.setUrlKey(data.getString(URL_KEY)); shortcut.setRedirect(data.getString(REDIRECT)); diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutsTable.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutsTable.java index cb1718314..c03bd4230 100644 --- a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutsTable.java +++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutsTable.java @@ -135,7 +135,7 @@ public class ShortcutsTable extends Table { final ShortcutRepository repo = CdiUtil.createCdiUtil() .findBean(ShortcutRepository.class); final Shortcut shortcut = repo.findById(Long.parseLong( - (String) event.getRowKey())); + (String) event.getRowKey())).get(); repo.delete(shortcut); break; }