1 /* 2 * The contents of this file are subject to the terms 3 * of the Common Development and Distribution License 4 * (the License). You may not use this file except in 5 * compliance with the License. 6 * 7 * You can obtain a copy of the license at 8 * https://glassfish.dev.java.net/public/CDDLv1.0.html or 9 * glassfish/bootstrap/legal/CDDLv1.0.txt. 10 * See the License for the specific language governing 11 * permissions and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL 14 * Header Notice in each file and include the License file 15 * at glassfish/bootstrap/legal/CDDLv1.0.txt. 16 * If applicable, add the following below the CDDL Header, 17 * with the fields enclosed by brackets [] replaced by 18 * you own identifying information: 19 * "Portions Copyrighted [year] [name of copyright owner]" 20 * 21 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 22 */ 23 package com.sun.enterprise.server.pluggable; 24 25 import com.sun.enterprise.admin.AdminContext; 26 import com.sun.enterprise.web.SchemaUpdater; 27 import com.sun.enterprise.web.WebContainerStartStopOperation; 28 import com.sun.enterprise.web.WebContainerAdminEventProcessor; 29 import com.sun.enterprise.deployment.pluggable.DeploymentFactory; 30 import com.sun.enterprise.admin.event.pluggable.NotificationFactory; 31 import com.sun.enterprise.admin.target.TargetFactory; 32 import com.sun.enterprise.server.ss.ASLazyKernel; 33 import com.sun.enterprise.autotxrecovery.TransactionRecovery; 34 import com.sun.enterprise.diagnostics.DiagnosticAgent; 35 /** 36 * The interface to provide access to supported Pluggable Features. The 37 * various editions of the product may provide varied implementation for 38 * same feature. This interface has different implementation for every 39 * product edition. Every method in this interface provides access to 40 * implementation of a pluggable feature. The pattern for this class is 41 * to define getter methods for every pluggable feature, where a pluggable 42 * feature is a java interface. 43 */ 44 public interface PluggableFeatureFactory { 45 46 /** 47 * Name of the property used to define pluggable features list. 48 */ 49 public static final String PLUGGABLE_FEATURES_PROPERTY_NAME = 50 "com.sun.appserv.pluggable.features"; 51 52 /** 53 * Get access to support for internal services. Internal services are 54 * lifecycle modules that are managed from within the ApplicationServer. 55 */ 56 public InternalServicesList getInternalServicesList(); 57 58 /** 59 * Get pluggable logging support. Pluggable logging support provides 60 * access to logging features appropriate for the environment (JVM). 61 * An example is log handlers. 62 */ 63 public LoggingSupport getLoggingSupport(); 64 65 /** 66 * Get pluggable loader support. Pluggable loader support provides 67 * access to the appropriate ApplicationLoader within the ApplicationServer. 68 */ 69 public ApplicationLoaderFactory getApplicationLoaderFactory(); 70 71 /** 72 * Get admin context. Admin context provides access to common objects 73 * used for server administration 74 */ 75 public AdminContext getAdminContext(); 76 77 /** 78 * Get the web container start/stop operation interface. 79 * Used by WebContainer to handle work during start and stop 80 */ 81 public WebContainerStartStopOperation getWebContainerStartStopOperation(); 82 83 /** 84 * Get the web container start/stop operation interface. 85 * Used by WebContainer to handle work during start and stop 86 */ 87 public WebContainerAdminEventProcessor getWebContainerAdminEventProcessor(); 88 89 /** 90 * Get the (HADB) SchemaUpdater interface. 91 * Used by WebContainer to handle updating hadb schema 92 * work during startup 93 */ 94 public SchemaUpdater getSchemaUpdater(); 95 96 /** 97 * Get deployment factory. Deployment factory provides access to 98 * different deployment implementation necessary to support different 99 * product features. 100 */ 101 public DeploymentFactory getDeploymentFactory(); 102 103 /** 104 * Distributed notification (event processing). 105 */ 106 107 public NotificationFactory getNotificationFactory(); 108 109 /** 110 * Pluggable target processing 111 */ 112 public TargetFactory getTargetFactory(); 113 114 /** 115 * Pluggable security support 116 */ 117 public SecuritySupport getSecuritySupport(); 118 119 /** 120 * Gets the appropriate WebContainerFeatureFactory for pluggable web 121 * container features. 122 */ 123 public WebContainerFeatureFactory getWebContainerFeatureFactory(); 124 125 /** 126 * Quick startup service. 127 */ 128 public ASLazyKernel getASLazyKernel() ; 129 130 /** 131 * HTTP Loadbalancer features . 132 */ 133 public LBFeatureFactory getLBFeatureFactory() ; 134 135 136 /** 137 * Automatic Transaction service . 138 */ 139 public TransactionRecovery getTransactionRecoveryService() ; 140 141 /** 142 * Diagnostic Agent 143 */ 144 public DiagnosticAgent getDiagnosticAgent(); 145 146 } 147