Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 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.resource.deployer;
 
 
 import java.util.List;
 import java.util.Set;
Created by IntelliJ IDEA. User: naman Date: 24/4/12 Time: 10:39 AM To change this template use File | Settings | File Templates.
 
 
 public class MailSessionDeployer implements ResourceDeployer {
 
     @Inject
 
     @Inject
 
     @Inject
 
     @Inject
     private ConnectorRuntime runtime;
 
     private static Logger _logger = LogDomains.getLogger(MailSessionDeployer.class.);
    @Override
    public void deployResource(Object resourceString applicationNameString moduleNamethrows Exception {
        //do nothing
    }
    @Override
    public void deployResource(Object resourcethrows Exception {
        final MailSessionDescriptor desc = (MailSessionDescriptorresource;
        String resourceName = ConnectorsUtil.deriveResourceName(desc.getResourceId(), desc.getName(), desc.getResourceType());
        MailResource mailResource = new MyMailResource(desc,resourceName);
        getDeployer(mailResource).deployResource(mailResource);
        .log(."Mail-Session resource is deployed having resource-name [" + desc.getName() + "]");
    }
    @Override
    public void undeployResource(Object resourcethrows Exception {
        final MailSessionDescriptor desc = (MailSessionDescriptorresource;
        String resourceName = ConnectorsUtil.deriveResourceName(desc.getResourceId(), desc.getName(),desc.getResourceType());
        MailResource mailResource = new MyMailResource(descresourceName);
        getDeployer(mailResource).undeployResource(mailResource);
        .log(."Mail-Session resource is undeployed having resource-name [" + desc.getName() + "]");
    }
    @Override
    public void undeployResource(Object resourceString applicationNameString moduleNamethrows Exception {
        //do nothing
    }
    @Override
    public void redeployResource(Object resourcethrows Exception {
        throw new UnsupportedOperationException("redeploy() not supported for mail-session type");
    }
    @Override
    public void enableResource(Object resourcethrows Exception {
        throw new UnsupportedOperationException("enable() not supported for mail-session type");
    }
    @Override
    public void disableResource(Object resourcethrows Exception {
        throw new UnsupportedOperationException("disable() not supported for mail-session type");
    }
    @Override
    public boolean handles(Object resource) {
        return resource instanceof MailSessionDescriptor;
    }
    @Override
    public boolean supportsDynamicReconfiguration() {
        return false;
    }
    @Override
        return new Class[0];
    }
    @Override
    public boolean canDeploy(boolean postApplicationDeploymentCollection<ResourceallResourcesResource resource) {
        if (handles(resource)) {
            if (!postApplicationDeployment) {
                return true;
            }
        }
        return false;
    }
    @Override
    public void validatePreservedResource(Application oldAppApplication newAppResource resourceResources allResourcesthrows ResourceConflictException {
        //To change body of implemented methods use File | Settings | File Templates.
    }
    private ResourceDeployer getDeployer(Object resource) {
        return .get().getResourceDeployer(resource);
    }
    public void registerMailSessions(com.sun.enterprise.deployment.Application application) {
        String appName = application.getAppName();
        Set<BundleDescriptorbundles = application.getBundleDescriptors();
        for (BundleDescriptor bundle : bundles) {
            registerMailSessionDefinitions(appNamebundle);
            Collection<RootDeploymentDescriptordds = bundle.getExtensionsDescriptors();
            if (dds != null) {
                for (RootDeploymentDescriptor dd : dds) {
                    registerMailSessionDefinitions(appNamedd);
                }
            }
        }
    }
    private void registerMailSessionDefinitions(String appNameDescriptor descriptor) {
        if (descriptor instanceof JndiNameEnvironment) {
            JndiNameEnvironment env = (JndiNameEnvironmentdescriptor;
            for (Descriptor msd : env.getResourceDescriptors(.)) {
                registerMSDReferredByApplication(appName, (MailSessionDescriptor)msd);
            }
        }
        //ejb descriptor
        if (descriptor instanceof EjbBundleDescriptor) {
            EjbBundleDescriptor ejbDesc = (EjbBundleDescriptordescriptor;
            Set<EjbDescriptorejbDescriptors = (Set<EjbDescriptor>) ejbDesc.getEjbs();
            for (EjbDescriptor ejbDescriptor : ejbDescriptors) {
                for (Descriptor msd : ejbDescriptor.getResourceDescriptors(.)) {
                    registerMSDReferredByApplication(appName, (MailSessionDescriptor)msd);
                }
            }
            //ejb interceptors
            Set<EjbInterceptorejbInterceptors = ejbDesc.getInterceptors();
            for (EjbInterceptor ejbInterceptor : ejbInterceptors) {
                for (Descriptor msd : ejbInterceptor.getResourceDescriptors(.)) {
                    registerMSDReferredByApplication(appName, (MailSessionDescriptor)msd);
                }
            }
        }
        if (descriptor instanceof BundleDescriptor) {
            // managed bean descriptors
            Set<ManagedBeanDescriptormanagedBeanDescriptors = ((BundleDescriptordescriptor).getManagedBeans();
            for (ManagedBeanDescriptor mbd : managedBeanDescriptors) {
                for (Descriptor msd : mbd.getResourceDescriptors(.)) {
                    registerMSDReferredByApplication(appName, (MailSessionDescriptor)msd);
                }
            }
        }
    }
    private void registerMSDReferredByApplication(String appName,
                                                  MailSessionDescriptor msd) {
        if (!msd.isDeployed()) {
            CommonResourceProxy proxy = .get();
            proxy.setDescriptor(msd);
                msd.setResourceId(appName);
            }
                    || msd.getName().startsWith(.)) {
                ResourceInfo resourceInfo = new ResourceInfo(msd.getName(), appName);
                try {
                    resourceNamingService.publishObject(resourceInfoproxytrue);
                    msd.setDeployed(true);
                } catch (NamingException e) {
                    Object params[] = new Object[]{appNamemsd.getName(), e};
                    .log(."exception while registering mail-session "params);
                }
            }
        }
    }
    public void unRegisterMailSessions(com.sun.enterprise.deployment.Application application) {
        Set<BundleDescriptorbundles = application.getBundleDescriptors();
        for (BundleDescriptor bundle : bundles) {
            unRegisterMailSessions(bundle);
            Collection<RootDeploymentDescriptordds = bundle.getExtensionsDescriptors();
            if (dds != null) {
                for (RootDeploymentDescriptor dd : dds) {
                    unRegisterMailSessions(dd);
                }
            }
        }
    }
    private void unRegisterMailSessions(Descriptor descriptor) {
        if (descriptor instanceof JndiNameEnvironment) {
            JndiNameEnvironment env = (JndiNameEnvironmentdescriptor;
            for (Descriptor msd : env.getResourceDescriptors(.)) {
                unRegisterMSDReferredByApplication((MailSessionDescriptor)msd);
            }
        }
        //ejb descriptor
        if (descriptor instanceof EjbBundleDescriptor) {
            EjbBundleDescriptor ejbDesc = (EjbBundleDescriptordescriptor;
            Set<EjbDescriptorejbDescriptors = (Set<EjbDescriptor>) ejbDesc.getEjbs();
            for (EjbDescriptor ejbDescriptor : ejbDescriptors) {
                for (Descriptor msd : ejbDescriptor.getResourceDescriptors(.)) {
                    unRegisterMSDReferredByApplication((MailSessionDescriptor)msd);
                }
            }
            //ejb interceptors
            Set<EjbInterceptorejbInterceptors = ejbDesc.getInterceptors();
            for (EjbInterceptor ejbInterceptor : ejbInterceptors) {
                for (Descriptor msd : ejbInterceptor.getResourceDescriptors(.)) {
                    unRegisterMSDReferredByApplication((MailSessionDescriptor)msd);
                }
            }
        }
        // managed bean descriptors
        if (descriptor instanceof BundleDescriptor) {
            Set<ManagedBeanDescriptormanagedBeanDescriptors = ((BundleDescriptordescriptor).getManagedBeans();
            for (ManagedBeanDescriptor mbd : managedBeanDescriptors) {
                for (Descriptor msd : mbd.getResourceDescriptors(.)) {
                    unRegisterMSDReferredByApplication((MailSessionDescriptor)msd);
                }
            }
        }
    }
        try {
            if (msd.isDeployed()) {
                undeployResource(msd);
            }
        } catch (Exception e) {
            .log(."exception while unregistering mail-session [ " + msd.getName() + " ]"e);
        }
    }
    abstract class FakeConfigBean implements ConfigBeanProxy {
        @Override
        public ConfigBeanProxy deepCopy(ConfigBeanProxy parent) {
            throw new UnsupportedOperationException();
        }
        @Override
        public ConfigBeanProxy getParent() {
            return null;
        }
        @Override
        public <T extends ConfigBeanProxy> T getParent(Class<T> tClass) {
            return null;
        }
        @Override
        public <T extends ConfigBeanProxy> T createChild(Class<T> tClassthrows TransactionFailure {
            return null;
        }
    }
    class MyMailResource extends FakeConfigBean implements MailResource {
        private MailSessionDescriptor desc;
        private String name;
        public MyMailResource(MailSessionDescriptor descString name) {
            this. = desc;
            this. = name;
        }
        @Override
        public String getStoreProtocol() {
            return .getStoreProtocol();
        }
        @Override
        public void setStoreProtocol(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getStoreProtocolClass() {
            return .getStoreProtocolClass();
        }
        @Override
        public void setStoreProtocolClass(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getTransportProtocol() {
            return .getTransportProtocol();
        }
        @Override
        public void setTransportProtocol(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getTransportProtocolClass() {
            return .getTransportProtocol();
        }
        @Override
        public void setTransportProtocolClass(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getHost() {
            return .getHost();
        }
        @Override
        public void setHost(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getUser() {
            return .getUser();
        }
        @Override
        public void setUser(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getFrom() {
            return .getFrom();
        }
        @Override
        public void setFrom(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getDebug() {
            return String.valueOf(true);
        }
        @Override
        public void setDebug(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getJndiName() {
            return ;
        }
        @Override
        public void setJndiName(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getEnabled() {
            return String.valueOf(true);
        }
        @Override
        public void setEnabled(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getDescription() {
            return .getDescription();
        }
        @Override
        public void setDescription(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public List<PropertygetProperty() {
            return null;
        }
        @Override
        public Property getProperty(String name) {
            return null;
        }
        @Override
        public String getPropertyValue(String name) {
            return null;
        }
        @Override
        public String getPropertyValue(String nameString defaultValue) {
            return null;
        }
        @Override
        public String getObjectType() {
            return null;
        }
        @Override
        public void setObjectType(String valuethrows PropertyVetoException {
            //do nothing
        }
        @Override
        public String getIdentity() {
            return ;
        }
    }
New to GrepCode? Check out our FAQ X