From 543bfc78fb9d716f2aa7b26bf84fb7987b38d00b Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Tue, 6 Oct 2020 08:05:52 +0200 Subject: [PATCH] JavaDoc for the admin UI (general UI classes, general classes for admin UI, users management) --- .../libreccm/ui/IsAuthenticatedFilter.java | 4 +- .../main/java/org/libreccm/ui/Message.java | 9 +++- .../java/org/libreccm/ui/MessageType.java | 4 +- .../org/libreccm/ui/MvcLocaleResolver.java | 4 +- .../libreccm/ui/admin/AdminApplication.java | 7 ++- .../org/libreccm/ui/admin/AdminConstants.java | 6 ++- .../org/libreccm/ui/admin/AdminMessages.java | 50 +++++++++++++++++++ .../java/org/libreccm/ui/admin/AdminPage.java | 7 ++- .../org/libreccm/ui/admin/AdminPageModel.java | 5 +- .../libreccm/ui/admin/AdminPagesModel.java | 12 ++++- .../org/libreccm/ui/admin/package-info.java | 22 ++++++++ .../usersgroupsroles/EmailFormController.java | 11 ++-- .../usersgroupsroles/EmailFormModel.java | 7 +-- .../admin/usersgroupsroles/OverviewModel.java | 3 +- .../usersgroupsroles/PartyRoleMembership.java | 3 +- .../usersgroupsroles/UserDetailsModel.java | 3 +- .../usersgroupsroles/UserFormController.java | 3 +- .../usersgroupsroles/UserGroupMembership.java | 3 +- .../usersgroupsroles/UserGroupsFormEntry.java | 3 +- .../usersgroupsroles/UserRolesFormEntry.java | 3 +- .../usersgroupsroles/UsersController.java | 4 +- .../UsersGroupsRolesController.java | 3 +- .../usersgroupsroles/UsersTableModel.java | 3 +- .../admin/usersgroupsroles/package-info.java | 23 +++++++++ .../java/org/libreccm/ui/package-info.java | 22 ++++++++ 25 files changed, 196 insertions(+), 28 deletions(-) create mode 100644 ccm-core/src/main/java/org/libreccm/ui/admin/package-info.java create mode 100644 ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/package-info.java create mode 100644 ccm-core/src/main/java/org/libreccm/ui/package-info.java diff --git a/ccm-core/src/main/java/org/libreccm/ui/IsAuthenticatedFilter.java b/ccm-core/src/main/java/org/libreccm/ui/IsAuthenticatedFilter.java index 037a26ed8..dea89b408 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/IsAuthenticatedFilter.java +++ b/ccm-core/src/main/java/org/libreccm/ui/IsAuthenticatedFilter.java @@ -31,7 +31,9 @@ import javax.ws.rs.container.PreMatching; import javax.ws.rs.core.Response; /** - * + * Filter for securing EE MVC UIs. Checks if the current user is authenticated. + * If not the user is redirected to the login application. + * * @author Jens Pelzetter */ @PreMatching diff --git a/ccm-core/src/main/java/org/libreccm/ui/Message.java b/ccm-core/src/main/java/org/libreccm/ui/Message.java index 916aa2b29..06bab7d56 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/Message.java +++ b/ccm-core/src/main/java/org/libreccm/ui/Message.java @@ -19,13 +19,20 @@ package org.libreccm.ui; /** - * + * Stores a message to be displayed in the UI. + * * @author Jens Pelzetter */ public class Message { + /** + * The message (or the translation key for the message). + */ private final String message; + /** + * The type of the message. + */ private final MessageType messageType; public Message(String message, MessageType messageType) { diff --git a/ccm-core/src/main/java/org/libreccm/ui/MessageType.java b/ccm-core/src/main/java/org/libreccm/ui/MessageType.java index 83f46f005..740f78bdd 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/MessageType.java +++ b/ccm-core/src/main/java/org/libreccm/ui/MessageType.java @@ -19,7 +19,9 @@ package org.libreccm.ui; /** - * + * Possible message types. The types are equivalent to the contextual classes + * of the Bootstrap framework. + * * @author Jens Pelzetter */ public enum MessageType { diff --git a/ccm-core/src/main/java/org/libreccm/ui/MvcLocaleResolver.java b/ccm-core/src/main/java/org/libreccm/ui/MvcLocaleResolver.java index ca80dcbfa..23960329d 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/MvcLocaleResolver.java +++ b/ccm-core/src/main/java/org/libreccm/ui/MvcLocaleResolver.java @@ -28,7 +28,9 @@ import javax.mvc.locale.LocaleResolver; import javax.mvc.locale.LocaleResolverContext; /** - * + * A locale resolver implementation that simply passes the locale negoiated by + * LibreCCM to Jakarta EE MVC. + * * @author Jens Pelzetter */ @RequestScoped diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminApplication.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminApplication.java index c8bc90169..193aee0e1 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminApplication.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminApplication.java @@ -30,12 +30,17 @@ import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; /** - * + * Collects the controllers for the admin application and registers them with + * JAX-RS. + * * @author Jens Pelzetter */ @ApplicationPath("/@admin") public class AdminApplication extends Application { + /** + * Injection point for the admin pages. + */ @Inject private Instance adminPages; diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminConstants.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminConstants.java index e8629ce98..6b21d404c 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminConstants.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminConstants.java @@ -19,7 +19,8 @@ package org.libreccm.ui.admin; /** - * + * Some constants for the admin application + * * @author Jens Pelzetter */ public class AdminConstants { @@ -28,6 +29,9 @@ public class AdminConstants { // Nothing } + /** + * Bundle that provides the translations for the admin application. + */ public static final String ADMIN_BUNDLE = "org.libreccm.ui.AdminBundle"; diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminMessages.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminMessages.java index f0af45d4a..998fe8ae4 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminMessages.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminMessages.java @@ -33,6 +33,18 @@ import javax.inject.Inject; import javax.inject.Named; /** + * Provides simple access to the messages in the admin bundle. The make it as + * easy as possible to access the messages this class is implemented as a map a + * made available as named bean. For simple messages, {@code AdminMesssages} can + * be used like a map in a facelets template: + * + *
+ * #{AdminMessages['some.message.key'])
+ * 
+ * + * Messages with placeholders can be retrieved using + * {@link #getMessage(java.lang.String, java.util.List)} or + * {@link #getMessage(java.lang.String, java.lang.Object[])}. * * @author Jens Pelzetter */ @@ -40,11 +52,20 @@ import javax.inject.Named; @Named("AdminMessages") public class AdminMessages extends AbstractMap { + /** + * Provides access to the locale negoiated by LibreCCM. + */ @Inject private GlobalizationHelper globalizationHelper; + /** + * The {@link ResourceBundle} to use. + */ private ResourceBundle messages; + /** + * Loads the resource bundle. + */ @PostConstruct private void init() { messages = ResourceBundle.getBundle( @@ -53,6 +74,13 @@ public class AdminMessages extends AbstractMap { ); } + /** + * Retrieves a message from the resource bundle. + * + * @param key The key of the message. + * @return The translated message or {@code ???message???} if the the key is + * not found in the resource bundle (message is replaced with the key). + */ public String getMessage(final String key) { if (messages.containsKey(key)) { return messages.getString(key); @@ -61,12 +89,29 @@ public class AdminMessages extends AbstractMap { } } + /** + * Retrieves a message with placeholders. + * + * @param key The key of the message. + * @param parameters The parameters for the placeholders. + * @return The translated message or {@code ???message???} if the the key is + * not found in the resource bundle (message is replaced with the key). + */ public String getMessage( final String key, final List parameters ) { return getMessage(key, parameters.toArray()); } + /** + * The translated message or {@code ???message???} if the the key is + * not found in the resource bundle (message is replaced with the key). + * + @param key The key of the message. + * @param parameters The parameters for the placeholders. + * @return The translated message or {@code ???message???} if the the key is + * not found in the resource bundle (message is replaced with the key). + */ public String getMessage( final String key, final Object[] parameters ) { @@ -77,6 +122,11 @@ public class AdminMessages extends AbstractMap { } } + @Override + public String get(final Object key) { + return get((String) key); + } + public String get(final String key) { return getMessage(key); } diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPage.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPage.java index 9fcf96015..88ed5dbe2 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPage.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPage.java @@ -23,6 +23,8 @@ import java.util.Set; import javax.mvc.MvcContext; /** + * Implementations of this interface provide the controllers etc. for an admin + * page. * * @author Jens Pelzetter */ @@ -37,11 +39,12 @@ public interface AdminPage { /** * A identifier to use by {@link MvcContext#uri(java.lang.String)} to - * generate the URI of the page. The identifier has the same format as used in JavaDoc: + * generate the URI of the page. The identifier has the same format as used + * in JavaDoc: *
      *     ControllerSimpleClassName#methodName
      * 
- * + * * @return The identifier to use for generating the URL of the page */ String getUriIdentifier(); diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPageModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPageModel.java index 96a7899d3..f8d6ac2b6 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPageModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPageModel.java @@ -19,7 +19,10 @@ package org.libreccm.ui.admin; /** - * + * Model for the data of an admin page. + * + * @see AdminPage + * * @author Jens Pelzetter */ public class AdminPageModel { diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPagesModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPagesModel.java index 08de0c083..75eca2dea 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPagesModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPagesModel.java @@ -32,6 +32,7 @@ import javax.inject.Inject; import javax.inject.Named; /** + * Model for the available admin pages. * * @author Jens Pelzetter */ @@ -39,6 +40,9 @@ import javax.inject.Named; @Named("AdminPagesModel") public class AdminPagesModel { + /** + * Injection point for the admin pages. + */ @Inject private Instance adminPages; @@ -50,6 +54,12 @@ public class AdminPagesModel { */ private final Map bundles = new HashMap<>(); + /** + * Retrieves the available admin pages and converts them into + * {@link AdminPageModel}s for usage in the views. + * + * @return A list of the available admin pages. + */ public List getAdminPages() { return adminPages .stream() @@ -86,7 +96,7 @@ public class AdminPagesModel { if (bundles.containsKey(bundleName)) { return bundles.get(bundleName); } else { - final ResourceBundle bundle = ResourceBundle.getBundle( + final ResourceBundle bundle = ResourceBundle.getBundle( bundleName, globalizationHelper.getNegotiatedLocale() ); diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/package-info.java b/ccm-core/src/main/java/org/libreccm/ui/admin/package-info.java new file mode 100644 index 000000000..c60a8dc83 --- /dev/null +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/package-info.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2020 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +/** + * Base classes for the admin application. + */ +package org.libreccm.ui.admin; diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/EmailFormController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/EmailFormController.java index d661ff8e5..b0868fb54 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/EmailFormController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/EmailFormController.java @@ -37,7 +37,6 @@ import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.mvc.Controller; import javax.mvc.Models; -import javax.mvc.binding.BindingResult; import javax.transaction.Transactional; import javax.ws.rs.FormParam; import javax.ws.rs.POST; @@ -45,21 +44,23 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; /** + * Controller managing the post request from the email edit form. + * * * @author Jens Pelzetter */ @RequestScoped @Controller @Path( - "/users-groups-roles/users/{userIdentifier}/email-addresses/{emailIdentifier}/save") + "/users-groups-roles/users/{userIdentifier}/email-addresses/{emailIdentifier}/save" +) public class EmailFormController { @Inject private AdminMessages adminMessages; - @Inject - private BindingResult bindingResult; - +// @Inject +// private BindingResult bindingResult; @Inject private EmailFormModel emailFormModel; diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/EmailFormModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/EmailFormModel.java index 443da7b23..8b7d6b0eb 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/EmailFormModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/EmailFormModel.java @@ -29,7 +29,8 @@ import javax.enterprise.context.RequestScoped; import javax.inject.Named; /** - * + * Model providing the data for the email edit form. + * * @author Jens Pelzetter */ @RequestScoped @@ -38,7 +39,7 @@ public class EmailFormModel { private String userIdentifier; - private int emailId; + private int emailId = -1; private String address; @@ -77,7 +78,7 @@ public class EmailFormModel { } public boolean isNew() { - return emailId == 0; + return emailId == -1; } public String getUserIdentifier() { diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/OverviewModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/OverviewModel.java index 52d958648..9ddf66253 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/OverviewModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/OverviewModel.java @@ -31,7 +31,8 @@ import javax.inject.Named; import javax.transaction.Transactional; /** - * + * Model for the overview page of the users/groups/roles admin module. + * * @author Jens Pelzetter */ @RequestScoped diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/PartyRoleMembership.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/PartyRoleMembership.java index 46cbaeec1..5e8ec5058 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/PartyRoleMembership.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/PartyRoleMembership.java @@ -21,7 +21,8 @@ package org.libreccm.ui.admin.usersgroupsroles; import org.libreccm.security.Role; /** - * + * Model friendly representation of the role membership of a {@link Party}. + * * @author Jens Pelzetter */ public class PartyRoleMembership implements Comparable{ diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserDetailsModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserDetailsModel.java index cc5371138..206ff5f18 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserDetailsModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserDetailsModel.java @@ -40,7 +40,8 @@ import javax.inject.Named; import javax.transaction.Transactional; /** - * + * Model used by the user details view and the user edit form. + * * @author Jens Pelzetter */ @RequestScoped diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserFormController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserFormController.java index 677bc41c1..41b9a2fdc 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserFormController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserFormController.java @@ -48,7 +48,8 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; /** - * + * Controller managing the user post requests from the user edit form. + * * @author Jens Pelzetter */ @Controller diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserGroupMembership.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserGroupMembership.java index 31b48b3aa..3ab997e7d 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserGroupMembership.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserGroupMembership.java @@ -21,7 +21,8 @@ package org.libreccm.ui.admin.usersgroupsroles; import org.libreccm.security.Group; /** - * + * Model friendly representation of a group membership of the user. + * * @author Jens Pelzetter */ public class UserGroupMembership implements Comparable { diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserGroupsFormEntry.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserGroupsFormEntry.java index 06eb026f5..be0d545a5 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserGroupsFormEntry.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserGroupsFormEntry.java @@ -19,7 +19,8 @@ package org.libreccm.ui.admin.usersgroupsroles; /** - * + * Model for an selectable group in the user groups form. + * * @author Jens Pelzetter */ public class UserGroupsFormEntry { diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserRolesFormEntry.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserRolesFormEntry.java index 2332c3adc..24a623aa3 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserRolesFormEntry.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UserRolesFormEntry.java @@ -19,7 +19,8 @@ package org.libreccm.ui.admin.usersgroupsroles; /** - * + * Model for an entry of a selectable role in the user roles form. + * * @author Jens Pelzetter */ public class UserRolesFormEntry { diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersController.java index 704800ac4..8ff095e33 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersController.java @@ -48,7 +48,9 @@ import javax.ws.rs.PathParam; import javax.ws.rs.QueryParam; /** - * + * Controller for the user details view and the {@code GET} requests to the + * user edit form. + * * @author Jens Pelzetter */ @RequestScoped diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersGroupsRolesController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersGroupsRolesController.java index 5011f27a1..70951149a 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersGroupsRolesController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersGroupsRolesController.java @@ -28,7 +28,8 @@ import javax.ws.rs.GET; import javax.ws.rs.Path; /** - * + * + * * @author Jens Pelzetter */ @RequestScoped diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersTableModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersTableModel.java index e6a0b9c82..26a7250f6 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersTableModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/UsersTableModel.java @@ -32,7 +32,8 @@ import javax.inject.Named; import javax.transaction.Transactional; /** - * + * Model for the table/list of users. + * * @author Jens Pelzetter */ @RequestScoped diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/package-info.java b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/package-info.java new file mode 100644 index 000000000..1866e2d00 --- /dev/null +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/usersgroupsroles/package-info.java @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2020 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +/** + * Provides the backend for the user interface for managing users, groups and + * roles. + */ +package org.libreccm.ui.admin.usersgroupsroles; diff --git a/ccm-core/src/main/java/org/libreccm/ui/package-info.java b/ccm-core/src/main/java/org/libreccm/ui/package-info.java new file mode 100644 index 000000000..5c8f1eeb2 --- /dev/null +++ b/ccm-core/src/main/java/org/libreccm/ui/package-info.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2020 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +/** + * Utility classes for Jakarta EE MVC based user interfaces. + */ +package org.libreccm.ui;