Save This Page
Home » geronimo-2.2-source-release » org.apache.geronimo.deployment.service.jsr88 » [javadoc | source]
    1   /**
    2    *  Licensed to the Apache Software Foundation (ASF) under one or more
    3    *  contributor license agreements.  See the NOTICE file distributed with
    4    *  this work for additional information regarding copyright ownership.
    5    *  The ASF licenses this file to You under the Apache License, Version 2.0
    6    *  (the "License"); you may not use this file except in compliance with
    7    *  the License.  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    *  Unless required by applicable law or agreed to in writing, software
   12    *  distributed under the License is distributed on an "AS IS" BASIS,
   13    *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    *  See the License for the specific language governing permissions and
   15    *  limitations under the License.
   16    */
   17   package org.apache.geronimo.deployment.service.jsr88;
   18   
   19   import java.util.Set;
   20   import java.util.HashSet;
   21   import java.util.Iterator;
   22   import org.apache.geronimo.deployment.plugin.XmlBeanSupport;
   23   import org.apache.geronimo.deployment.xbeans.DependenciesType;
   24   import org.apache.geronimo.deployment.xbeans.EnvironmentType;
   25   import org.apache.geronimo.deployment.xbeans.ArtifactType;
   26   import org.apache.xmlbeans.SchemaTypeLoader;
   27   import org.apache.xmlbeans.XmlBeans;
   28   
   29   /**
   30    * Represents an environmentType (e.g. an environment element) in a Geronimo
   31    * deployment plan.
   32    *
   33    * @version $Rev: 470597 $ $Date: 2006-11-02 15:30:55 -0800 (Thu, 02 Nov 2006) $
   34    */
   35   public class EnvironmentData extends XmlBeanSupport {
   36       static final SchemaTypeLoader SCHEMA_TYPE_LOADER = XmlBeans.typeLoaderForClassLoader(EnvironmentType.class.getClassLoader());
   37   
   38       private Artifact configId;
   39       private Artifact[] dependencies = new Artifact[0];
   40   
   41       public EnvironmentData() {
   42           super(null);
   43       }
   44   
   45       public EnvironmentData(EnvironmentType dependency) {
   46           super(null);
   47           configure(dependency);
   48       }
   49   
   50       protected EnvironmentType getEnvironmentType() {
   51           return (EnvironmentType) getXmlObject();
   52       }
   53   
   54       public void configure(EnvironmentType env) {
   55           setXmlObject(env);
   56           if(env.isSetModuleId()) {
   57               configId = new Artifact(env.getModuleId());
   58           }
   59           if(env.isSetDependencies()) {
   60               DependenciesType deps = env.getDependencies();
   61               dependencies = new Artifact[deps.getDependencyArray().length];
   62               for (int i = 0; i < dependencies.length; i++) {
   63                   dependencies[i] = new Artifact(deps.getDependencyArray(i));
   64               }
   65           }
   66       }
   67   
   68       // ----------------------- JavaBean Properties for environmentType ----------------------
   69   
   70       public Artifact getConfigId() {
   71           return configId;
   72       }
   73   
   74       public void setConfigId(Artifact configId) {
   75           Artifact old = this.configId;
   76           this.configId = configId;
   77           if((old == null && configId == null) || (old != null&& old == configId)) {
   78               return;
   79           }
   80           if(old != null) {
   81               getEnvironmentType().unsetModuleId();
   82           }
   83           if(configId != null) {
   84               configId.configure(getEnvironmentType().addNewModuleId());
   85           }
   86           pcs.firePropertyChange("moduleId", old, configId);
   87       }
   88   
   89       public Artifact[] getDependencies() {
   90           return dependencies;
   91       }
   92   
   93       public void setDependencies(Artifact[] dependencies) {
   94           Artifact[] old = this.dependencies;
   95           Set before = new HashSet();
   96           for (int i = 0; i < old.length; i++) {
   97               before.add(old[i]);
   98           }
   99           this.dependencies = dependencies;
  100           // Handle current or new dependencies
  101           for (int i = 0; i < dependencies.length; i++) {
  102               Artifact dep = dependencies[i];
  103               if(dep.getArtifactType() == null) {
  104                   if(!getEnvironmentType().isSetDependencies()) {
  105                       getEnvironmentType().addNewDependencies();
  106                   }
  107                   dep.configure(getEnvironmentType().getDependencies().addNewDependency());
  108               } else {
  109                   before.remove(dep);
  110               }
  111           }
  112           // Handle removed or new dependencies
  113           for (Iterator it = before.iterator(); it.hasNext();) {
  114               Artifact adapter = (Artifact) it.next();
  115               ArtifactType all[] = getEnvironmentType().getDependencies().getDependencyArray();
  116               for (int i = 0; i < all.length; i++) {
  117                   if(all[i] == adapter) {
  118                       getEnvironmentType().getDependencies().removeDependency(i);
  119                       break;
  120                   }
  121               }
  122           }
  123           if(getEnvironmentType().isSetDependencies() && getEnvironmentType().getDependencies().getDependencyArray().length == 0) {
  124               getEnvironmentType().unsetDependencies();
  125           }
  126           pcs.firePropertyChange("dependencies", old, dependencies);
  127       }
  128   
  129       public String[] getHiddenClasses() {
  130           return getEnvironmentType().getHiddenClasses().getFilterArray();
  131       }
  132   
  133       public void setHiddenClasses(String[] hidden) {
  134           String[] old = getEnvironmentType().isSetHiddenClasses() ? getEnvironmentType().getHiddenClasses().getFilterArray() : null;
  135           if(!getEnvironmentType().isSetHiddenClasses()) {
  136               getEnvironmentType().addNewHiddenClasses();
  137           }
  138           getEnvironmentType().getHiddenClasses().setFilterArray(hidden);
  139           pcs.firePropertyChange("hiddenClasses", old, hidden);
  140       }
  141   
  142       public String[] getNonOverridableClasses() {
  143           return getEnvironmentType().getNonOverridableClasses().getFilterArray();
  144       }
  145   
  146       public void setNonOverridableClasses(String[] fixed) {
  147           String[] old = getEnvironmentType().isSetNonOverridableClasses() ? getEnvironmentType().getNonOverridableClasses().getFilterArray() : null;
  148           if(!getEnvironmentType().isSetNonOverridableClasses()) {
  149               getEnvironmentType().addNewNonOverridableClasses();
  150           }
  151           getEnvironmentType().getNonOverridableClasses().setFilterArray(fixed);
  152           pcs.firePropertyChange("nonOverridableClasses", old, fixed);
  153       }
  154   
  155       public boolean isInverseClassLoading() {
  156           return getEnvironmentType().isSetInverseClassloading();
  157       }
  158   
  159       public void setInverseClassLoading(boolean inverse) {
  160           boolean old = isInverseClassLoading();
  161           if(!inverse) {
  162               if(old) {
  163                   getEnvironmentType().unsetInverseClassloading();
  164               }
  165           } else {
  166               if(!old) {
  167                   getEnvironmentType().addNewInverseClassloading();
  168               }
  169           }
  170           pcs.firePropertyChange("inverseClassLoading", old, inverse);
  171       }
  172   
  173       public boolean isSuppressDefaultEnvironment() {
  174           return getEnvironmentType().isSetSuppressDefaultEnvironment();
  175       }
  176   
  177       public void setSuppressDefaultEnvironment(boolean suppress) {
  178           boolean old = isSuppressDefaultEnvironment();
  179           if(!suppress) {
  180               if(old) {
  181                   getEnvironmentType().unsetSuppressDefaultEnvironment();
  182               }
  183           } else {
  184               if(!old) {
  185                   getEnvironmentType().addNewSuppressDefaultEnvironment();
  186               }
  187           }
  188           pcs.firePropertyChange("suppressDefaultEnvironment", old, suppress);
  189       }
  190   
  191       // ----------------------- End of JavaBean Properties ----------------------
  192   
  193       protected SchemaTypeLoader getSchemaTypeLoader() {
  194           return SCHEMA_TYPE_LOADER;
  195       }
  196   }

Save This Page
Home » geronimo-2.2-source-release » org.apache.geronimo.deployment.service.jsr88 » [javadoc | source]