Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package com.sun.enterprise.web;
 
 

Author(s):
lwhite
Rajiv Mordani
 
 
     private static final Logger _logger = .....;
 
     @LogMessageInfo(
             message = "Web App Distributable {0}: {1}",
             level = "FINEST")
     public static final String WEB_APP_DISTRIBUTABLE = "AS-WEB-00308";
 
     @LogMessageInfo(
             message = "AvailabilityGloballyEnabled = {0}",
             level = "FINEST")
     public static final String AVAILABILITY_GLOBALLY_ENABLED = "AS-WEB-00309";
 
     @LogMessageInfo(
             message = "instance-level persistence-type = {0} instance-level persistenceFrequency = {1} " +
                     "instance-level persistenceScope = {2}",
             level = "FINEST")
     public static final String INSTANCE_LEVEL_INFO = "AS-WEB-00310";
 
     @LogMessageInfo(
             message = "webAppLevelPersistenceType = {0} webAppLevelPersistenceFrequency = {1} " +
                     "webAppLevelPersistenceScope = {2}",
             level = "FINEST")
     public static final String WEB_APP_LEVEL_INFO = "AS-WEB-00311";
 
     @LogMessageInfo(
             message = "IN WebContainer>>ConfigureSessionManager after web level check" +
                     "AFTER_WEB_PERSISTENCE-TYPE IS = {0} " +
                     "AFTER_WEB_PERSISTENCE_FREQUENCY IS = {1} " +
                     "AFTER_WEB_PERSISTENCE_SCOPE IS = {2}",
             level = "FINEST")
     public static final String AFTER_WEB_LEVEL_CHECK_INFO = "AS-WEB-00312";
 
     @LogMessageInfo(
             message = "Is {0} a system app: {1}",
             level = "FINEST")
     public static final String IS_SYSTEM_APP = "AS-WEB-00313";
 
     @LogMessageInfo(
             message = "SessionConfigurationHelper: Is AppDistributable {0}",
            level = "FINEST")
    public static final String IS_APP_DISTRIBUTABLE = "AS-WEB-00314";
            message = "Invalid Session Management Configuration for non-distributable app [{0}] - " +
                    "defaulting to memory: persistence-type = [{1}] / persistenceFrequency = [{2}] / " +
                    "persistenceScope = [{3}]",
            level = "INFO")
    public static final String INVALID_SESSION_MANAGER_CONFIG = "AS-WEB-00315";
            message = "IN WebContainer>>ConfigureSessionManager before builder factory" +
                    "FINAL_PERSISTENCE-TYPE IS = {0} " +
                    "FINAL_PERSISTENCE_FREQUENCY IS = {1} " +
                    "FINAL_PERSISTENCE_SCOPE IS = {2}",
            level = "FINEST")
    public static final String CONFIGURE_SESSION_MANAGER_FINAL = "AS-WEB-00316";
protected WebModule _ctx = null;
    protected SessionManager _smBean = null
    protected WebBundleDescriptor _wbd = null;
    protected WebModuleConfig _wmInfo = null;
    protected String _persistenceFrequency = null;
    protected String _persistenceScope = null;
    private boolean _initialized = false;
    private ArrayList<String_systemApps = new ArrayList<String>();
    protected ServerConfigLookup serverConfigLookup;

    
Creates a new instance of SessionManagerConfigurationHelper
        WebModule ctxSessionManager smBeanWebBundleDescriptor wbd,
        WebModuleConfig wmInfoServerConfigLookup serverConfigLookup) {
         = ctx;
         = smBean;
         = wbd;
         = wmInfo;
        this. = serverConfigLookup;
        .add("com_sun_web_ui");
        .add(. + "admingui");
        .add("adminapp");
        .add("admingui");        
    }
    
    protected boolean isSystemApp(String appName) {
        return .contains(appName);
    }
    
    protected void initializeConfiguration() {
        //XXX Need to look at whether the app is distributable.
        
        boolean isAppDistributable = false;
        if ( != null) {
            isAppDistributable = .isDistributable();
        }
        if (.isLoggable(.)) {
            .log(.,
                    ,
                    new Object[] {getApplicationId(), isAppDistributable});
        }
        PersistenceType persistence = .;
        String persistenceFrequency = null;
        String persistenceScope = null;
        
        boolean isAvailabilityEnabled = 
        if (.isLoggable(.)) {
            .log(.isAvailabilityEnabled);
        }
        if (isAvailabilityEnabled) {
            // These are the global defaults if nothing is
            // set at domain.xml or sun-web.xml
            persistence = .;
            persistenceFrequency = "web-method";
            persistenceScope = "session";
        }
        
        PersistenceType serverDefaultPersistenceType =
        if (serverDefaultPersistenceType != null) {
            persistence = serverDefaultPersistenceType;        
            persistenceFrequency = .getPersistenceFrequencyFromConfig();
            persistenceScope = .getPersistenceScopeFromConfig();
        }
        String insLevelPersistenceTypeString = null;
        if (persistence != null) {
            insLevelPersistenceTypeString = persistence.getType();
        }
        if (.isLoggable(.)) {
            .log(.,
                    ,
                    new Object[] {insLevelPersistenceTypeStringpersistenceFrequencypersistenceScope});
        }
        
        String webAppLevelPersistenceFrequency = null;
        String webAppLevelPersistenceScope = null;
        if ( != null) {
            // The persistence-type controls what properties of the 
            // session manager can be configured
            persistence = PersistenceType.parseType(pTypepersistence);
            webAppLevelPersistenceFrequency = getPersistenceFrequency();           
            webAppLevelPersistenceScope = getPersistenceScope();
            if (.isLoggable(.)) {
                .log(.,
                        ,
                        new Object[] {pTypewebAppLevelPersistenceFrequencywebAppLevelPersistenceScope});
            }
        }
        
        // Use web app level values if they exist (i.e. not null)
        if (webAppLevelPersistenceFrequency != null) {
            persistenceFrequency = webAppLevelPersistenceFrequency;
        }
        if (webAppLevelPersistenceScope != null) {
            persistenceScope = webAppLevelPersistenceScope;
        }
        if (.isLoggable(.)) {
                    new Object[] {persistence.getType(), persistenceFrequencypersistenceScope});
        }
        
        // Delegate remaining initialization to builder
        String frequency = null;
        String scope = null;
        if ( persistence == . 
            || persistence == . 
            || persistence == .) {
            // Deliberately leaving frequency & scope null
        } else {
            frequency = persistenceFrequency;
            scope = persistenceScope;
        }
        // If app is not distributable and non-memory option
        // is attempted, log error and set back to "memory"
        if (!isAppDistributable && persistence != .) {
            String wmName = getApplicationId();
            if (.isLoggable(.)) {
                .log(.new Object[] {wmNameisSystemApp(wmName)});
            }
            if (.isLoggable(.)) {
                .log(.isAppDistributable);
            }
            // Suppress log error msg for default-web-module
            // log message only if availabilityenabled = true is attempted
            if (isAvailabilityEnabled &&
                    !wmName.equals(.) &&
                    !this.isSystemApp(wmName)) { 
                //log error
                if (.isLoggable(.)) {
                    Object[] params = { getApplicationId(), persistence.getType(), frequencyscope };
                    .log(.,
                                ,
                                params); 
                }
            }    
            // Set back to memory option
            persistence = .;
            frequency = null;
            scope = null;            
        }
        
        // If availability-enabled is false, reset to "memory"
        if (!isAvailabilityEnabled && (persistence != . &&
                persistence != . &&
                persistence != .)) {
            // Set back to memory option
            persistence = .;
            frequency = null;
            scope = null;             
        }
        
        if (.isLoggable(.)) {
            .log(.,
                    ,
                    new Object[] {persistence.getType(), frequencyscope});
        }
        
         = persistence;
         = frequency;
         = scope;
    }
    
    
The application id for this web module
    
    public String getApplicationId(WebModule ctx) {
        return ctx.getID();
    }
    
    
Get the persistence frequency for this web module (this is the value from sun-web.xml if defined

Parameters:
smBean the session manager config bean
    protected String getPersistenceFrequency(SessionManager smBean) {
        String persistenceFrequency = null;        
        ManagerProperties mgrBean = smBean.getManagerProperties();
        if ((mgrBean != null) && (mgrBean.sizeWebProperty() > 0)) {
            WebProperty[] props = mgrBean.getWebProperty();
            for (int i = 0; i < props.lengthi++) {
                String name = props[i].getAttributeValue(.);
                String value = props[i].getAttributeValue(.);
                if (name.equalsIgnoreCase("persistenceFrequency")) {
                    persistenceFrequency = value;
                }
            }
        }
        return persistenceFrequency;
    }
    
    
Get the persistence scope for this web module (this is the value from sun-web.xml if defined

Parameters:
smBean the session manager config bean
    
    protected String getPersistenceScope(SessionManager smBean) {
        String persistenceScope = null;
        StoreProperties storeBean = smBean.getStoreProperties();
        if ((storeBean != null) && (storeBean.sizeWebProperty() > 0)) {
            WebProperty[] props = storeBean.getWebProperty();
            for (int i = 0; i < props.lengthi++) {
                String name = props[i].getAttributeValue(.);
                String value = props[i].getAttributeValue(.);
                if (name.equalsIgnoreCase("persistenceScope")) {
                    persistenceScope = value;
                }
            }
        }
        return persistenceScope;
    } 
    
    protected void checkInitialization() {
        if (!) {
            initializeConfiguration();
             = true;
        }
    }    
    
        checkInitialization();
        return ;
    }
    
    public String getPersistenceFrequency() {
        checkInitialization();
        return ;
    } 
    
    public String getPersistenceScope() {
        checkInitialization();
        return ;
    }    
New to GrepCode? Check out our FAQ X