Package fr.openwide.maven.artifact.notifier.web.application

Source Code of fr.openwide.maven.artifact.notifier.web.application.MavenArtifactNotifierApplication

package fr.openwide.maven.artifact.notifier.web.application;

import org.apache.wicket.Page;
import org.apache.wicket.RuntimeConfigurationType;
import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
import org.apache.wicket.devutils.stateless.StatelessChecker;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.resource.UrlResourceReference;
import org.apache.wicket.resource.JQueryResourceReference;

import fr.openwide.core.wicket.more.application.CoreWicketAuthenticatedApplication;
import fr.openwide.core.wicket.more.console.common.model.ConsoleMenuItem;
import fr.openwide.core.wicket.more.console.common.model.ConsoleMenuSection;
import fr.openwide.core.wicket.more.console.template.ConsoleConfiguration;
import fr.openwide.core.wicket.more.link.descriptor.parameter.CommonParameters;
import fr.openwide.core.wicket.more.markup.html.pages.monitoring.DatabaseMonitoringPage;
import fr.openwide.core.wicket.more.security.page.LoginFailurePage;
import fr.openwide.core.wicket.more.security.page.LoginSuccessPage;
import fr.openwide.core.wicket.more.security.page.LogoutPage;
import fr.openwide.maven.artifact.notifier.web.application.administration.page.AdministrationArtifactDescriptionPage;
import fr.openwide.maven.artifact.notifier.web.application.administration.page.AdministrationArtifactPortfolioPage;
import fr.openwide.maven.artifact.notifier.web.application.administration.page.AdministrationUserDescriptionPage;
import fr.openwide.maven.artifact.notifier.web.application.administration.page.AdministrationUserGroupDescriptionPage;
import fr.openwide.maven.artifact.notifier.web.application.administration.page.AdministrationUserGroupPortfolioPage;
import fr.openwide.maven.artifact.notifier.web.application.administration.page.AdministrationUserPortfolioPage;
import fr.openwide.maven.artifact.notifier.web.application.artifact.page.ArtifactDescriptionPage;
import fr.openwide.maven.artifact.notifier.web.application.artifact.page.ArtifactPomSearchPage;
import fr.openwide.maven.artifact.notifier.web.application.artifact.page.ArtifactSearchPage;
import fr.openwide.maven.artifact.notifier.web.application.common.template.MainTemplate;
import fr.openwide.maven.artifact.notifier.web.application.console.importation.page.ConsoleImportProjectPage;
import fr.openwide.maven.artifact.notifier.web.application.console.notification.page.ConsoleNotificationIndexPage;
import fr.openwide.maven.artifact.notifier.web.application.navigation.link.parameter.mapping.ArtifactLinkParameterMappingEntry;
import fr.openwide.maven.artifact.notifier.web.application.navigation.page.AboutPage;
import fr.openwide.maven.artifact.notifier.web.application.navigation.page.DashboardPage;
import fr.openwide.maven.artifact.notifier.web.application.navigation.page.ForgottenPasswordPage;
import fr.openwide.maven.artifact.notifier.web.application.navigation.page.HomePage;
import fr.openwide.maven.artifact.notifier.web.application.navigation.page.Pac4jLoginSuccessPage;
import fr.openwide.maven.artifact.notifier.web.application.navigation.page.RegisterPage;
import fr.openwide.maven.artifact.notifier.web.application.navigation.page.ViewProfilePage;
import fr.openwide.maven.artifact.notifier.web.application.navigation.util.LinkUtils;
import fr.openwide.maven.artifact.notifier.web.application.notification.page.ConfirmEmailNotificationPage;
import fr.openwide.maven.artifact.notifier.web.application.notification.page.ConfirmRegistrationNotificationPage;
import fr.openwide.maven.artifact.notifier.web.application.notification.page.DeleteEmailNotificationPage;
import fr.openwide.maven.artifact.notifier.web.application.notification.page.ResetPasswordNotificationPage;
import fr.openwide.maven.artifact.notifier.web.application.project.page.ProjectDescriptionPage;
import fr.openwide.maven.artifact.notifier.web.application.project.page.ProjectListPage;

public class MavenArtifactNotifierApplication extends CoreWicketAuthenticatedApplication {
 
  /**
   * This is the name used in the filter definition. Wicket uses the filter name to set the name of the application.
   */
  public static final String NAME = "MavenArtifactNotifierApplication";
 
  public static final String REGISTER_URL = "/register/";
  public static final String PAC4J_LOGIN_SUCCESS_URL = "/login/pac4j/success/";
 
  @Override
  public void init() {
    super.init();
   
    if (RuntimeConfigurationType.DEVELOPMENT.equals(getConfigurationType())) {
      getComponentPostOnBeforeRenderListeners().add(new StatelessChecker());
    }
   
    if (RuntimeConfigurationType.DEPLOYMENT.equals(getConfigurationType())) {
      addResourceReplacement(JQueryResourceReference.get(),
          new UrlResourceReference(Url.parse("//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js")));
    }
  }

  @Override
  protected void mountApplicationPages() {
    // Public
    mountUnversionedPage("/about/", AboutPage.class);
    mountPage(REGISTER_URL, RegisterPage.class);
    mountPage("/forgotten-password/", ForgottenPasswordPage.class);
   
    // Sign in
    mountPage("/login/failure/", LoginFailurePage.class);
    mountPage("/login/success/", LoginSuccessPage.class);
    mountPage(PAC4J_LOGIN_SUCCESS_URL, Pac4jLoginSuccessPage.class);
   
    // Dashboard
    mountPage("/dashboard/", DashboardPage.class);
   
    // Profile
    mountPage("/profile/", ViewProfilePage.class);
   
    // Artifact
    mountPage("/search/", ArtifactSearchPage.class);
    mountPage("/search/pom/", ArtifactPomSearchPage.class);
    mountParameterizedPage("/artifact/${" + ArtifactLinkParameterMappingEntry.GROUP_ID_PARAMETER + "}/${" + ArtifactLinkParameterMappingEntry.ARTIFACT_ID_PARAMETER + "}/", ArtifactDescriptionPage.class);
   
    // Project
    mountPage("/projects/", ProjectListPage.class);
    mountParameterizedPage("/project/${" + CommonParameters.NATURAL_ID + "}/", ProjectDescriptionPage.class);
   
    // Notification
    mountParameterizedPage("/notification/account/confirm/${" + LinkUtils.HASH_PARAMETER + "}/", ConfirmRegistrationNotificationPage.class);
    mountParameterizedPage("/notification/account/reset/${" + LinkUtils.HASH_PARAMETER + "}/", ResetPasswordNotificationPage.class);
    mountParameterizedPage("/notification/email/confirm/${" + LinkUtils.HASH_PARAMETER + "}/", ConfirmEmailNotificationPage.class);
    mountParameterizedPage("/notification/email/delete/${" + LinkUtils.HASH_PARAMETER + "}/", DeleteEmailNotificationPage.class);
   
    // Administration
    mountPage("/administration/user/", AdministrationUserPortfolioPage.class);
    mountParameterizedPage("/administration/user/${" + CommonParameters.ID + "}/", AdministrationUserDescriptionPage.class);
    mountPage("/administration/user-group/", AdministrationUserGroupPortfolioPage.class);
    mountParameterizedPage("/administration/user-group/${" + CommonParameters.ID + "}/", AdministrationUserGroupDescriptionPage.class);
    mountPage("/administration/artifact/", AdministrationArtifactPortfolioPage.class);
    mountParameterizedPage("/administration/artifact/${" + ArtifactLinkParameterMappingEntry.GROUP_ID_PARAMETER + "}/${" + ArtifactLinkParameterMappingEntry.ARTIFACT_ID_PARAMETER + "}/",
        AdministrationArtifactDescriptionPage.class);
   
    // Console
    ConsoleConfiguration consoleConfiguration = ConsoleConfiguration.build("console");
    consoleConfiguration.addMenuSection(new ConsoleMenuSection("notificationMenuSection", "console.notifications",
        "notifications", ConsoleNotificationIndexPage.class));
   
    ConsoleMenuSection importMenuSection = new ConsoleMenuSection("importMenuSection", "console.import", "import", ConsoleImportProjectPage.class);
    importMenuSection.addMenuItem(new ConsoleMenuItem("importProjectMenuItem", "console.import.project", "project", ConsoleImportProjectPage.class));
    consoleConfiguration.addMenuSection(importMenuSection);
    consoleConfiguration.mountPages(this);
   
    // Monitoring
    mountPage("/monitoring/db-access/", DatabaseMonitoringPage.class);
  }
 
  @Override
  protected void mountCommonPages() {
    mountPage("/logout/", LogoutPage.class);
  }

  @Override
  protected void mountApplicationResources() {
    mountStaticResourceDirectory("/application", MainTemplate.class);
    mountStaticResourceDirectory("/console/import/project", ConsoleImportProjectPage.class);
  }

  @Override
  protected Class<? extends AuthenticatedWebSession> getWebSessionClass() {
    return MavenArtifactNotifierSession.class;
  }

  @Override
  public Class<? extends WebPage> getSignInPageClass() {
    return HomePage.class;
  }

  @Override
  public Class<? extends Page> getHomePage() {
    return HomePage.class;
  }
}
TOP

Related Classes of fr.openwide.maven.artifact.notifier.web.application.MavenArtifactNotifierApplication

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.