00001
00027 package org.objectweb.jonas.ear;
00028
00029 import java.net.URL;
00030 import java.util.ArrayList;
00031
00032 import javax.management.MalformedObjectNameException;
00033 import javax.management.ObjectName;
00034
00035 import org.objectweb.jonas.jmx.J2eeObjectName;
00036 import org.objectweb.jonas.management.j2eemanagement.J2EEDeployedObject;
00037
00049 public class Ear extends J2EEDeployedObject implements EarMBean {
00050
00054 private URL[] ejbJars = null;
00055
00056
00060 private URL[] wars = null;
00061
00065 private URL[] rars = null;
00066
00070 private URL earUrl = null;
00071
00075 private String name = null;
00076
00080 private String unpackName = null;
00081
00085 private String[] modules = null;
00086
00090 private String[] webModules = null;
00091
00103 public Ear(String objectName, String pName, String pUnpackName, URL earUrl, String deploymentDescriptor, URL[] ejbJars, URL[] wars,
00104 URL[] rars) {
00105 super(objectName);
00106 this.earUrl = earUrl;
00107
00108 setDeploymentDescriptor(deploymentDescriptor);
00109 this.ejbJars = ejbJars;
00110 this.wars = wars;
00111 this.rars = rars;
00112 name = pName;
00113 unpackName = pUnpackName;
00114 setModules();
00115 setWebModules();
00116 }
00117
00122 public URL getEarUrl() {
00123 return earUrl;
00124 }
00125
00130 public URL[] getEjbJars() {
00131 return ejbJars;
00132 }
00133
00138 public URL[] getWars() {
00139 return wars;
00140 }
00141
00146 public URL[] getRars() {
00147 return rars;
00148 }
00149
00154 public String getName() {
00155 return name;
00156 }
00157
00162 public String getUnpackName() {
00163 return unpackName;
00164 }
00165
00169 private void setModules() {
00170 ArrayList al = new ArrayList();
00171 try {
00172
00173 ObjectName on = ObjectName.getInstance(getObjectName());
00174 String domain = on.getDomain();
00175 String serverName = on.getKeyProperty(J2EE_TYPE_SERVER);
00176 String appName = on.getKeyProperty(NAME);
00177
00178 ObjectName modulesOn = J2eeObjectName.getEJBModules(domain, serverName, appName);
00179 al.addAll(J2eeObjectName.queryStrings(modulesOn));
00180
00181 modulesOn = J2eeObjectName.getWebModules(domain, serverName, appName);
00182 al.addAll(J2eeObjectName.queryStrings(modulesOn));
00183
00184 modulesOn = J2eeObjectName.getResourceAdapterModules(domain, serverName, appName);
00185 al.addAll(J2eeObjectName.queryStrings(modulesOn));
00186
00187 modulesOn = J2eeObjectName.getAppClientModules(domain, serverName, appName);
00188 al.addAll(J2eeObjectName.queryStrings(modulesOn));
00189 } catch (MalformedObjectNameException e) {
00190
00191 throw new RuntimeException("Error while using an objectname :" + e.getMessage());
00192 }
00193 modules = ((String[]) al.toArray(new String[al.size()]));
00194 }
00199 public String[] getModules() {
00200 return modules;
00201 }
00205 public String[] getWebModules() {
00206 return webModules;
00207 }
00211 public void setWebModules() {
00212 ArrayList al = new ArrayList();
00213 try {
00214
00215 ObjectName on = ObjectName.getInstance(getObjectName());
00216 String domain = on.getDomain();
00217 String serverName = on.getKeyProperty(J2EE_TYPE_SERVER);
00218 String appName = on.getKeyProperty(NAME);
00219
00220 ObjectName modulesOn = J2eeObjectName.getWebModules(domain, serverName, appName);
00221 al.addAll(J2eeObjectName.queryStrings(modulesOn));
00222 } catch (MalformedObjectNameException e) {
00223
00224 throw new RuntimeException("Error while using an objectname :" + e.getMessage());
00225 }
00226 webModules = ((String[]) al.toArray(new String[al.size()]));
00227 }
00228 }