com.socialsite.SocialSiteApplication.java Source code

Java tutorial

Introduction

Here is the source code for com.socialsite.SocialSiteApplication.java

Source

/**
 *     Copyright SocialSite (C) 2009
 *
 *     This program is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation, either version 3 of the License, or
 *     (at your option) any later version.
 *
 *     This program 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 General Public License for more details.
 *
 *     You should have received a copy of the GNU General Public License
 *     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.socialsite;

import org.apache.wicket.Application;
import org.apache.wicket.Request;
import org.apache.wicket.Response;
import org.apache.wicket.Session;
import org.apache.wicket.authorization.strategies.role.RoleAuthorizationStrategy;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.target.coding.QueryStringUrlCodingStrategy;
import org.apache.wicket.spring.injection.annot.SpringComponentInjector;

import com.socialsite.activation.ActivationPage;
import com.socialsite.authentication.LoginPage;
import com.socialsite.authentication.UserRolesAuthorizer;
import com.socialsite.course.CourseNoteResource;
import com.socialsite.image.CourseImageResource;
import com.socialsite.image.ImageType;
import com.socialsite.image.UniversityImageResource;
import com.socialsite.image.UserImageResource;

/**
 * 
 * starts and intializes all the settings the SocialSite Application
 * 
 * @author Ananth
 */
public class SocialSiteApplication extends WebApplication {
    private static final long serialVersionUID = 1L;

    public static SocialSiteApplication get() {
        return (SocialSiteApplication) Application.get();
    }

    /**
     * Constructor
     */
    public SocialSiteApplication() {
    }

    @Override
    public String getConfigurationType() {
        return "DEVELOPMENT";
        // return "DEPLOYMENT";
    }

    /**
     * @see org.apache.wicket.Application#getHomePage()
     */
    @Override
    public Class<LoginPage> getHomePage() {
        return LoginPage.class;
    }

    /*
     * overide the init method to initialize the springDAo
     */
    @Override
    protected void init() {

        super.init();

        getDebugSettings().setDevelopmentUtilitiesEnabled(true);

        // add spring listener to the application
        addComponentInstantiationListener(new SpringComponentInjector(this));

        // intializes the security listeners
        initSecurity();

        // enables wicket autolinking
        getMarkupSettings().setAutomaticLinking(true);

        // init all the image resources
        initImageResources();

        // mounts the activation page
        mount(new QueryStringUrlCodingStrategy("activate", ActivationPage.class));

        // logs all the request to the server
        // Application.get().getRequestLoggerSettings().setRequestLoggerEnabled(true);
    }

    /**
     * registers all the image resources
     */
    private void initImageResources() {
        // user image
        getSharedResources().add(ImageType.USER.name(), new UserImageResource());
        // university image
        getSharedResources().add(ImageType.UNIVERSITY.name(), new UniversityImageResource());
        // course image
        getSharedResources().add(ImageType.COURSE.name(), new CourseImageResource());

        // notes
        getSharedResources().add("note", new CourseNoteResource());

    }

    /**
     * initializes all the security settings
     * 
     */
    private void initSecurity() {
        // set the authorization Strategy
        getSecuritySettings().setAuthorizationStrategy(new RoleAuthorizationStrategy(new UserRolesAuthorizer()));

    }

    /**
     * 
     * defining the custom session
     * 
     * @return custom session object
     */
    @Override
    public Session newSession(final Request request, final Response response) {
        return new SocialSiteSession(request);
    }

}