1 45 package org.openejb.webadmin.main; 46 47 import org.openejb.DeploymentInfo; 48 import org.openejb.OpenEJB; 49 import org.openejb.OpenEJBException; 50 import org.openejb.alt.config.Bean; 51 import org.openejb.alt.config.ConfigUtils; 52 import org.openejb.alt.config.EjbJarUtils; 53 import org.openejb.alt.config.TempCodebase; 54 import org.openejb.alt.config.ejb11.EjbDeployment; 55 import org.openejb.alt.config.ejb11.EjbJar; 56 import org.openejb.alt.config.ejb11.EjbRef; 57 import org.openejb.alt.config.ejb11.MethodParams; 58 import org.openejb.alt.config.ejb11.OpenejbJar; 59 import org.openejb.alt.config.ejb11.Query; 60 import org.openejb.alt.config.ejb11.QueryMethod; 61 import org.openejb.alt.config.ejb11.ResourceLink; 62 import org.openejb.alt.config.ejb11.ResourceRef; 63 import org.openejb.alt.config.sys.Connector; 64 import org.openejb.alt.config.sys.Container; 65 import org.openejb.alt.config.sys.Openejb; 66 import org.openejb.util.HtmlUtilities; 67 import org.openejb.util.JarUtils; 68 import org.openejb.util.StringUtilities; 69 70 import javax.ejb.CreateException ; 71 import javax.ejb.SessionBean ; 72 import javax.ejb.SessionContext ; 73 import java.io.File ; 74 import java.lang.reflect.Method ; 75 import java.util.ArrayList ; 76 import java.util.List ; 77 import java.util.Vector ; 78 79 89 public class DeployerBean implements SessionBean { 90 public static final String ALL_FIELDS_REQUIRED_ERROR = 91 "All fields (except OQL parameters) are required, " 92 + "please hit your back button and fill out the required fields."; 93 94 104 private boolean[] options = new boolean[7]; 105 106 private SessionContext context; 108 private Openejb config; 109 private String configFile = null; 110 private boolean configChanged; 111 private boolean autoAssign; 112 private Container[] containers; 113 private Connector[] resources; 114 private Bean[] deployerBeans; 115 private EjbDeployment[] deploymentInfoArray; 116 private String jarFile; 117 private StringBuffer deploymentHTML = new StringBuffer (); 118 private String containerDeployIdsHTML = ""; 119 private OpenejbJar openejbJar; 120 private Vector beanList = new Vector (); 121 private boolean idsWritten = false; 122 private ArrayList usedBeanNames = new ArrayList (); 123 private DeployData[] deployDataArray; 124 125 129 public void ejbCreate() throws CreateException { 130 try { 131 if (configFile == null) { 132 try { 133 configFile = System.getProperty("openejb.configuration"); 134 } catch (Exception e) {} 135 } 136 if (configFile == null) { 137 configFile = ConfigUtils.searchForConfiguration(); 138 } 139 config = ConfigUtils.readConfig(configFile); 140 141 142 containers = config.getContainer(); 143 144 145 resources = config.getConnector(); 146 147 } catch (Exception e) { 148 e.printStackTrace(); 150 } 151 } 152 153 157 public void setBooleanValues(boolean[] booleanValues) { 158 options = booleanValues; 159 } 160 161 165 public boolean[] getBooleanValues() { 166 return options; 167 } 168 169 173 public void setJarFile(String jar) { 174 jarFile = jar; 175 } 176 177 181 public String getJarFile() { 182 return jarFile; 183 } 184 185 189 public String getDeploymentHTML() { 190 return deploymentHTML.toString(); 191 } 192 193 197 public DeployData[] getDeployDataArray() { 198 return this.deployDataArray; 199 } 200 201 206 public void startDeployment() throws OpenEJBException { 207 EjbJarUtils ejbJarUtils = new EjbJarUtils(this.jarFile); 208 EjbJar jar = null; 209 OpenejbJar initialOpenejbJar = null; 210 try { jar = ejbJarUtils.getEjbJar(); 212 213 if (EjbJarUtils.checkForOpenejbJar(this.jarFile)) { 215 initialOpenejbJar = ejbJarUtils.getOpenejbJar(); 216 } 217 } catch (OpenEJBException oe) { 218 throw new OpenEJBException(this.jarFile + " is not a valid jar file. "); 219 } 220 221 if (!this.options[2]) { 223 File tempJarFile = new File (this.jarFile); 224 File beansDir = new File (System.getProperty("openejb.home") + System.getProperty("file.separator") + "beans"); 226 227 File [] beans = beansDir.listFiles(); 228 for (int i = 0; i < beans.length; i++) { 229 if (tempJarFile.getName().equalsIgnoreCase(beans[i].getName())) { 230 throw new OpenEJBException( 231 System.getProperty("openejb.home") 232 + System.getProperty("file.separator") 233 + "beans" 234 + System.getProperty("file.separator") 235 + tempJarFile.getName() 236 + " already exists."); 237 } 238 } 239 } 240 241 if (initialOpenejbJar != null) { 243 deploymentInfoArray = initialOpenejbJar.getEjbDeployment(); 244 } else { 245 deploymentInfoArray = new EjbDeployment[0]; 246 } 247 248 openejbJar = new OpenejbJar(); 249 deployerBeans = ejbJarUtils.getBeans(); 250 } 251 252 257 public void setDeployAndContainerIds(DeployData[] deployDataArray) throws OpenEJBException { 258 EjbDeployment deployment; 260 ResourceLink link; 261 ReferenceData[] referenceDataArray; 262 OQLData[] oqlDataArray; 263 Query query; 264 MethodParams methodParams; 265 QueryMethod queryMethod; 266 String [] parameterArray; 267 268 for (int i = 0; i < deployDataArray.length; i++) { 269 if (this.usedBeanNames.contains(deployDataArray[i].getDeploymentIdValue())) { 270 throw new OpenEJBException( 271 "The deployment id: " 272 + deployDataArray[i].getDeploymentIdValue() 273 + " is already being used by another bean, please choose another deployment id."); 274 } else if ("".equals(deployDataArray[i].getDeploymentIdValue())) { 275 throw new OpenEJBException(ALL_FIELDS_REQUIRED_ERROR); 276 } 277 278 deployment = new EjbDeployment(); 279 this.usedBeanNames.add(deployDataArray[i].getDeploymentIdValue()); 280 281 deployment.setEjbName(deployDataArray[i].getEjbName()); 283 deploymentHTML.append("<tr>\n<td>").append(deployerBeans[i].getEjbName()).append("</td>\n"); 284 deployment.setDeploymentId(deployDataArray[i].getDeploymentIdValue()); 285 deploymentHTML.append("<td>").append(deployDataArray[i].getDeploymentIdValue()).append("</td>\n"); 286 287 if ("".equals(deployDataArray[i].getContainerIdValue())) { 288 throw new OpenEJBException(ALL_FIELDS_REQUIRED_ERROR); 289 } 290 deployment.setContainerId(deployDataArray[i].getContainerIdValue()); 291 deploymentHTML.append("<td>").append(deployDataArray[i].getContainerIdValue()).append("</td>\n"); 292 293 if (deployDataArray[i].getReferenceDataArray().length == 0) { 295 deploymentHTML.append("<td>N/A</td>\n"); 296 } else { 297 deploymentHTML.append("<td>\n"); 298 deploymentHTML.append("<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"100%\">\n"); 299 deploymentHTML.append("<tr align=\"left\">\n"); 300 deploymentHTML.append("<th>Name</th>\n"); 301 deploymentHTML.append("<th>Id</th>\n"); 302 deploymentHTML.append("</tr>\n"); 303 304 referenceDataArray = deployDataArray[i].getReferenceDataArray(); 306 for (int j = 0; j < referenceDataArray.length; j++) { 307 if ("".equals(referenceDataArray[j].getReferenceIdValue())) { 308 throw new OpenEJBException(ALL_FIELDS_REQUIRED_ERROR); 309 } 310 311 if ("".equals(referenceDataArray[j].getReferenceValue())) { 312 throw new OpenEJBException(ALL_FIELDS_REQUIRED_ERROR); 313 } 314 315 link = new ResourceLink(); 316 link.setResId(referenceDataArray[j].getReferenceIdValue()); 317 318 link.setResRefName(referenceDataArray[j].getReferenceValue()); 319 deploymentHTML.append("<tr>\n<td>").append(referenceDataArray[j].getReferenceValue()).append("</td>\n"); 320 deploymentHTML.append("<td>").append(referenceDataArray[j].getReferenceIdValue()).append( 321 "</td>\n</tr>\n"); 322 deployment.addResourceLink(link); 323 } 324 325 deploymentHTML.append("</table>\n</td>\n"); 326 } 327 328 deploymentHTML.append("</tr>\n"); 329 330 oqlDataArray = deployDataArray[i].getOqlDataArray(); 332 if (oqlDataArray.length > 0) { 333 deploymentHTML.append("<tr>\n<td colspan=\"4\"> </td>\n</tr>\n"); 334 deploymentHTML.append("<tr>\n<td colspan=\"2\">").append(deployDataArray[i].getEjbName()).append(" - "); 335 deploymentHTML.append( 336 "Method</td>\n<td>OQL Statement</td>\n<td>OQL Parameters (comma seperated)</td>\n</tr>\n"); 337 } 338 339 for (int j = 0; j < oqlDataArray.length; j++) { 340 if ("".equals(oqlDataArray[j].getOqlStatementValue())) { 341 throw new OpenEJBException(ALL_FIELDS_REQUIRED_ERROR); 342 } 343 344 query = new Query(); 346 methodParams = new MethodParams(); 347 queryMethod = new QueryMethod(); 348 349 queryMethod.setMethodName(oqlDataArray[j].getMethodName()); 350 query.setObjectQl(oqlDataArray[j].getOqlStatementValue()); 351 352 deploymentHTML.append("<tr>\n<td colspan=\"2\">"); 353 deploymentHTML.append(oqlDataArray[j].getMethodString()).append("</td>\n"); 354 deploymentHTML.append("<td>").append(oqlDataArray[j].getOqlStatementValue()).append("</td>\n"); 355 deploymentHTML.append("<td>"); 356 357 parameterArray = (String []) oqlDataArray[j].getOqlParameterValueList().toArray(new String [0]); 359 for (int k = 0; k < parameterArray.length; k++) { 360 deploymentHTML.append(k + 1).append(". ").append(parameterArray[k]).append("<br>"); 361 methodParams.addMethodParam(k, parameterArray[k]); 362 } 363 364 if (parameterArray.length == 0) { 365 deploymentHTML.append("N/A"); 366 } 367 368 queryMethod.setMethodParams(methodParams); 369 query.setQueryMethod(queryMethod); 370 deployment.addQuery(query); 371 deploymentHTML.append("</td>\n</tr>\n"); 372 } 373 374 openejbJar.addEjbDeployment(deployment); 375 } 376 } 377 378 383 public void finishDeployment() throws OpenEJBException { 384 jarFile = moveJar(jarFile); 385 386 391 addDeploymentEntryToConfig(jarFile); 392 saveChanges(jarFile, openejbJar); 393 } 394 395 400 private String autoAssignDeploymentId(Bean bean) { 401 this.resetUsedDeploymentIds(); 402 String ejbName = bean.getEjbName(); 403 String newEjbName; 404 405 if (this.usedBeanNames.contains(ejbName)) { 408 while (true) { 409 newEjbName = ejbName + (Long.MAX_VALUE * Math.random()); 410 if (!this.usedBeanNames.contains(newEjbName)) { 411 this.usedBeanNames.add(newEjbName); 412 return newEjbName; 413 } 414 } 415 } 416 417 this.usedBeanNames.add(ejbName); 418 return ejbName; 419 } 420 421 426 private String autoAssignContainerId(Bean bean) throws OpenEJBException { 427 Container[] cs = getUsableContainers(bean); 428 429 if (cs.length == 0) { 430 throw new OpenEJBException("There are no useable containers for this bean."); 432 } 433 434 return cs[0].getId(); 435 } 436 437 442 private void saveChanges(String jarFile, OpenejbJar openejbJar) throws OpenEJBException { 443 EjbJarUtils.writeOpenejbJar("META-INF/openejb-jar.xml", openejbJar); 444 JarUtils.addFileToJar(jarFile, "META-INF/openejb-jar.xml"); 445 446 if (configChanged) { 447 ConfigUtils.writeConfig(configFile, config); 448 } 449 } 450 451 457 public String createIdTable() throws OpenEJBException { 458 StringBuffer htmlString = new StringBuffer (); 460 String deploymentId; 461 String containerId; 462 Container[] cs; 463 ResourceRef[] refs; 464 EjbRef[] ejbRefs; 465 Class tempBean; 466 this.deployDataArray = new DeployData[deployerBeans.length]; 467 EjbDeployment ejbDeployment = null; 468 469 htmlString.append("<table cellspacing=\"0\" cellpadding=\"0\" border=\"1\">\n"); 470 htmlString.append("<tr align=\"left\">\n"); 471 htmlString.append("<th>Bean Name</th>\n"); 472 htmlString.append("<th>Deployment Id</th>\n"); 473 htmlString.append("<th>Container Id</th>\n"); 474 htmlString.append("<th>Resource References</th>\n"); 475 htmlString.append("</tr>\n"); 476 477 for (int i = 0; i < deployerBeans.length; i++) { 478 this.deployDataArray[i] = new DeployData(); 480 this.deployDataArray[i].setEjbName(deployerBeans[i].getEjbName()); 481 this.deployDataArray[i].setDeploymentIdName("deploymentId" + i); 482 this.deployDataArray[i].setContainerIdName("containerId" + i); 483 484 htmlString.append("<tr>\n"); 486 htmlString.append("<td>" + deployerBeans[i].getEjbName() + "</td>\n"); 487 488 for (int j = 0; j < this.deploymentInfoArray.length; j++) { 489 if (deployerBeans[i].getEjbName().equals(deploymentInfoArray[j].getEjbName())) { 490 ejbDeployment = deploymentInfoArray[j]; 491 break; 492 } 493 } 494 495 if (ejbDeployment != null) { 497 deploymentId = ejbDeployment.getDeploymentId(); 498 } else { 499 deploymentId = autoAssignDeploymentId(deployerBeans[i]); 500 } 501 502 htmlString 503 .append("<td>") 504 .append(HtmlUtilities.createTextFormField(deployDataArray[i].getDeploymentIdName(), deploymentId, 25, 50)) 505 .append("</td>\n"); 506 507 if (ejbDeployment != null) { 509 containerId = ejbDeployment.getContainerId(); 510 } else { 511 containerId = autoAssignContainerId(deployerBeans[i]); 512 } 513 514 htmlString.append("<td>").append( 515 HtmlUtilities.createSelectFormField(deployDataArray[i].getContainerIdName(), null)).append( 516 '\n'); 517 cs = getUsableContainers(deployerBeans[i]); 518 for (int j = 0; j < cs.length; j++) { 520 htmlString.append( 521 HtmlUtilities.createSelectOption( 522 cs[j].getId(), 523 cs[j].getId(), 524 containerId.equals(cs[j].getId()))).append( 525 '\n'); 526 } 527 htmlString.append("</select></td>\n"); 528 529 refs = deployerBeans[i].getResourceRef(); 531 ejbRefs = deployerBeans[i].getEjbRef(); 532 533 if ((refs.length > 0) || (ejbRefs.length > 0)) { 534 htmlString.append("<td>"); 535 htmlString.append( 536 createIdTableOutsideRef( 537 refs, 538 ejbRefs, 539 deployerBeans[i].getEjbName(), 540 deployDataArray[i], 541 ejbDeployment, 542 i)); 543 htmlString.append("</td>"); 544 } else { 545 htmlString.append("<td>N/A</td>\n"); 546 } 547 548 htmlString.append("</tr>\n"); 549 } 550 551 for (int i = 0; i < deployerBeans.length; i++) { 554 if ("CMP_ENTITY".equals(deployerBeans[i].getType())) { 556 TempCodebase tempCodebase = TempCodebase.getTempCodebase(this.jarFile); 557 tempBean = tempCodebase.loadClass(deployerBeans[i].getHome()); 558 htmlString.append( 559 writeOQLForEntityBeansTable( 560 tempBean, 561 deployerBeans[i].getEjbName(), 562 deployDataArray[i], 563 i, 564 ejbDeployment)); 565 } 566 } 567 568 htmlString.append("<tr><td colspan=\"4\">"); 569 htmlString.append(HtmlUtilities.createSubmitFormButton("submitDeploymentAndContainerIds", "Continue >>")); 570 htmlString.append("</td></tr></table>\n"); 571 572 this.resetUsedDeploymentIds(); 573 return htmlString.toString(); 574 } 575 576 585 private String createIdTableOutsideRef( 586 ResourceRef[] refs, 587 EjbRef[] ejbRefs, 588 String deploymentName, 589 DeployData deployData, 590 EjbDeployment ejbDeployment, 591 int index) 592 throws OpenEJBException { 593 StringBuffer htmlString = new StringBuffer (); 594 String resourceId = ""; 595 String ejbId = ""; 596 ResourceLink[] resourceLinks = 597 (ejbDeployment != null && ejbDeployment.getResourceLink() != null) 598 ? ejbDeployment.getResourceLink() 599 : new ResourceLink[0]; 600 ReferenceData[] referenceDataArray = new ReferenceData[(refs.length + ejbRefs.length)]; 601 602 htmlString.append("<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"100%\">\n"); 604 htmlString.append("<tr align=\"left\">\n"); 605 htmlString.append("<th>Name</th>\n"); 606 htmlString.append("<th>Type</th>\n"); 607 htmlString.append("<th>Id</th>\n"); 608 htmlString.append("</tr>\n"); 609 610 if (refs.length > 0) { 612 for (int i = 0; i < refs.length; i++) { 613 referenceDataArray[i] = new ReferenceData(); 615 referenceDataArray[i].setReferenceType(ReferenceData.RESOURCE_REFERENCE); 616 referenceDataArray[i].setReferenceIdName("resourceRefId_" + index + "_" + i); 617 referenceDataArray[i].setReferenceName("resourceRefName_" + index + "_" + i); 618 619 htmlString.append("<tr>\n"); 620 htmlString.append("<td>").append(refs[i].getResRefName()).append("</td>\n"); 621 htmlString.append("<td>").append(refs[i].getResType()).append("</td>\n"); 622 htmlString.append("<td>"); 623 htmlString.append(HtmlUtilities.createSelectFormField(referenceDataArray[i].getReferenceIdName(), null)); 624 625 for (int j = 0; j < this.resources.length; j++) { 627 boolean selected = false; 629 for (int k = 0; k < resourceLinks.length; k++) { 630 if (resources[j].getId().equals(resourceLinks[k].getResId())) { 631 selected = true; 632 break; 633 } 634 } 635 htmlString.append( 636 HtmlUtilities.createSelectOption(resources[j].getId(), resources[j].getId(), selected)).append( 637 '\n'); 638 } 639 640 htmlString.append("</select>\n"); 641 htmlString.append( 642 HtmlUtilities.createHiddenFormField(referenceDataArray[i].getReferenceName(), refs[i].getResRefName())); 643 htmlString.append("</td>\n</tr>\n"); 644 } 645 } 646 647 if (ejbRefs.length > 0) { 648 String ejbLink; 649 for (int i = 0; i < ejbRefs.length; i++) { 650 referenceDataArray[i] = new ReferenceData(); 651 referenceDataArray[i].setReferenceType(ReferenceData.EJB_REFERENCE); 652 referenceDataArray[i].setReferenceIdName("ejbRefId_" + index + "_" + i); 653 referenceDataArray[i].setReferenceName("ejbRefName_" + index + "_" + i); 654 655 htmlString.append("<tr>\n"); 656 htmlString.append("<td>").append(ejbRefs[i].getEjbRefName()).append("</td>\n"); 657 htmlString.append("<td>").append(ejbRefs[i].getEjbRefType()).append("</td>\n"); 658 659 ejbLink = ejbRefs[i].getEjbLink(); 661 if (ejbLink == null) { 662 htmlString.append("<td>").append( 663 HtmlUtilities.createSelectFormField("ejbRefId_" + index + "_" + i, null)); 664 for (int j = 0; j < deployerBeans.length; j++) { 666 if (!deployerBeans[j].getEjbName().equals(deploymentName)) { 667 boolean selected = false; 669 for (int k = 0; k < resourceLinks.length; k++) { 670 if (deployerBeans[j].getEjbName().equals(resourceLinks[k].getResId())) { 671 selected = true; 672 break; 673 } 674 } 675 htmlString.append( 676 HtmlUtilities.createSelectOption( 677 deployerBeans[j].getEjbName(), 678 deployerBeans[j].getEjbName(), 679 selected)); 680 } 681 } 682 683 htmlString.append("</select>\n"); 684 } else { 685 htmlString 686 .append("<td>") 687 .append(HtmlUtilities.createHiddenFormField(referenceDataArray[i].getReferenceIdName(), ejbLink)) 688 .append(ejbLink) 689 .append('\n'); 690 } 691 692 htmlString.append( 693 HtmlUtilities.createHiddenFormField( 694 referenceDataArray[i].getReferenceName(), 695 ejbRefs[i].getEjbRefName())); 696 htmlString.append("</td>\n</tr>\n"); 697 } 698 } 699 700 deployData.setReferenceDataArray(referenceDataArray); 701 htmlString.append("</table>\n"); 702 703 return htmlString.toString(); 704 } 705 706 private String writeOQLForEntityBeansTable( 707 Class bean, 708 String beanName, 709 DeployData deployData, 710 int index, 711 EjbDeployment ejbDeployment) 712 throws OpenEJBException { 713 714 StringBuffer htmlString = new StringBuffer (); 715 int methodCount = 0; 716 Method[] methods = bean.getMethods(); 717 List oqlDataList = new ArrayList (); 718 OQLData oqlData; 719 String methodString; 720 721 Query[] queries = 722 (ejbDeployment != null && ejbDeployment.getQuery() != null) ? ejbDeployment.getQuery() : new Query[0]; 723 Query query = null; 724 725 htmlString.append("<tr>\n<td colspan=\"4\"> </td>\n</tr>\n"); 726 htmlString.append("<tr>\n<td colspan=\"2\">").append(beanName).append(" - "); 727 htmlString.append("Method</td>\n<td>OQL Statement</td>\n<td>OQL Parameters (comma seperated)</td>\n</tr>\n"); 728 729 for (int i = 0; i < methods.length; i++) { 730 if (methods[i].getName().startsWith("find") && !methods[i].getName().equals("findByPrimaryKey")) { 731 for (int j = 0; j < queries.length; j++) { 733 if (queries[j].getQueryMethod().getMethodName().equals(methods[i].getName())) { 734 query = queries[j]; 735 break; 736 } 737 } 738 739 methodString = StringUtilities.createMethodString(methods[i], "<br>"); 740 741 methodCount++; 742 oqlData = new OQLData(); 743 htmlString.append("<tr>\n<td colspan=\"2\">\n"); 744 htmlString.append(methodString); 745 oqlData.setMethodString(methodString); 746 747 oqlData.setMethodName(methods[i].getName()); 749 oqlData.setOqlStatementName("oqlStatement_" + beanName + "_" + methods[i].getName()); 750 oqlData.setOqlParameterName("oqlParameters_" + beanName + "_" + methods[i].getName()); 751 752 htmlString.append("\n</td>\n<td>"); 754 htmlString.append( 756 HtmlUtilities.createTextArea( 757 oqlData.getOqlStatementName(), 758 (query == null) ? "" : query.getObjectQl(), 759 4, 760 20, 761 null, 762 null, 763 null)); 764 765 htmlString.append("</td>\n<td>"); 766 767 htmlString.append( 769 HtmlUtilities.createTextArea( 770 oqlData.getOqlParameterName(), 771 (query == null) 772 ? "" 773 : StringUtilities.stringArrayToCommaDelimitedStringList( 774 query.getQueryMethod().getMethodParams().getMethodParam()), 775 4, 776 20, 777 null, 778 null, 779 null)); 780 781 htmlString.append("</td>\n</tr>\n"); 782 783 oqlDataList.add(oqlData); 784 } 785 } 786 787 deployData.setOqlDataArray((OQLData[]) oqlDataList.toArray(new OQLData[0])); 788 789 if (methodCount > 0) { 791 return htmlString.toString(); 792 } else { 793 return ""; 794 } 795 } 796 797 private void resetUsedDeploymentIds() { 798 this.usedBeanNames = new ArrayList (); 799 800 DeploymentInfo[] deployments = OpenEJB.deployments(); 802 for (int i = 0; i < deployments.length; i++) { 803 this.usedBeanNames.add(deployments[i].getDeploymentID()); 804 } 805 } 806 807 private Container[] getUsableContainers(Bean bean) { 808 return EjbJarUtils.getUsableContainers(containers, bean); 809 } 810 811 private String moveJar(String jar) throws OpenEJBException { 812 return EjbJarUtils.moveJar(jar, options[2]); 813 } 814 815 private String copyJar(String jar) throws OpenEJBException { 816 return EjbJarUtils.copyJar(jar, options[2]); 817 } 818 819 private void addDeploymentEntryToConfig(String jarLocation) { 820 configChanged = ConfigUtils.addDeploymentEntryToConfig(jarLocation, config); 821 } 822 823 public void ejbActivate() {} 825 public void ejbPassivate() {} 826 public void ejbRemove() {} 827 public void setSessionContext(SessionContext sessionContext) { 828 this.context = sessionContext; 829 } 830 } | Popular Tags |