From 26fe53c5804f4efe97fa3676840a48360537109a Mon Sep 17 00:00:00 2001 From: Mark Niggemann Date: Tue, 18 Apr 2017 10:30:44 -0500 Subject: [PATCH 1/3] Add Orion EJB deployment tool to EjbJar taskdef. --- .../optional/ejb/OrionDeploymentTool.java | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/ejb/OrionDeploymentTool.java diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/OrionDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/OrionDeploymentTool.java new file mode 100644 index 0000000000..683561c87b --- /dev/null +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/OrionDeploymentTool.java @@ -0,0 +1,102 @@ +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2000 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "The Jakarta Project", "Ant", and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + */ +package org.apache.tools.ant.taskdefs.optional.ejb; + +import java.io.*; +import java.util.*; +import org.apache.tools.ant.*; + +/** + * The deployment tool to add the orion specific deployment descriptor to the + * ejb jar file. Orion only requires one additional file orion-ejb-jar.xml + * and does not require any additional compilation. + * + * @author Atul Setlur + * @version 1.0 + * @see EjbJar#createOrion + */ + +public class OrionDeploymentTool extends GenericDeploymentTool { + + protected static final String ORION_DD = "orion-ejb-jar.xml"; + + + /** Instance variable that stores the suffix for the jboss jarfile. */ + private String jarSuffix = ".jar"; + + /** + * Add any vendor specific files which should be included in the + * EJB Jar. + */ + protected void addVendorFiles(Hashtable ejbFiles, String baseName) { + String ddPrefix = (usingBaseJarName() ? "" : baseName ); + File orionDD = new File(getConfig().descriptorDir, ddPrefix + ORION_DD); + + if (orionDD.exists()) { + ejbFiles.put(META_DIR + ORION_DD, orionDD); + } else { + log("Unable to locate Orion deployment descriptor. It was expected to be in " + orionDD.getPath(), Project.MSG_WARN); + return; + } + + } + + /** + * Get the vendor specific name of the Jar that will be output. The modification date + * of this jar will be checked against the dependent bean classes. + */ + File getVendorOutputJarFile(String baseName) { + return new File(getDestDir(), baseName + jarSuffix); + } +} From e8e787557f6f5a62ae0437293da26c26b8ff5dbc Mon Sep 17 00:00:00 2001 From: Mark Niggemann Date: Tue, 18 Apr 2017 11:23:36 -0500 Subject: [PATCH 2/3] Add Orion EJB deployment tool to EjbJar taskdef. --- .../ant/taskdefs/optional/ejb/EjbJar.java | 12 ++++ .../optional/ejb/OrionDeploymentTool.java | 69 +++++-------------- 2 files changed, 29 insertions(+), 52 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java index e9b7ed429d..2981cab42c 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java @@ -221,6 +221,18 @@ protected void addDeploymentTool(EJBDeploymentTool deploymentTool) { deploymentTools.add(deploymentTool); } + /** + * Create a orion nested element used to configure a + * deployment tool for Orion server. + * + * @return the deployment tool instance to be configured. + */ + public OrionDeploymentTool createOrion() { + OrionDeploymentTool tool = new OrionDeploymentTool(); + addDeploymentTool(tool); + return tool; + } + /** * Adds a deployment tool for Weblogic server. * diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/OrionDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/OrionDeploymentTool.java index 683561c87b..058e2e47d7 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/OrionDeploymentTool.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/OrionDeploymentTool.java @@ -1,68 +1,33 @@ /* - * The Apache Software License, Version 1.1 + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Copyright (c) 2000 The Apache Software Foundation. All rights - * reserved. + * http://www.apache.org/licenses/LICENSE-2.0 * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, if - * any, must include the following acknowlegement: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowlegement may appear in the software itself, - * if and wherever such third-party acknowlegements normally appear. - * - * 4. The names "The Jakarta Project", "Ant", and "Apache Software - * Foundation" must not be used to endorse or promote products derived - * from this software without prior written permission. For written - * permission, please contact apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache" - * nor may "Apache" appear in their names without prior written - * permission of the Apache Group. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * . */ + package org.apache.tools.ant.taskdefs.optional.ejb; -import java.io.*; -import java.util.*; -import org.apache.tools.ant.*; +import java.io.File; +import java.util.Hashtable; +import org.apache.tools.ant.Project; /** * The deployment tool to add the orion specific deployment descriptor to the * ejb jar file. Orion only requires one additional file orion-ejb-jar.xml * and does not require any additional compilation. * - * @author Atul Setlur + * @author Mark Niggemann * @version 1.0 * @see EjbJar#createOrion */ From b052477afbd95d85f0b5c3f9d854f65a6d822af0 Mon Sep 17 00:00:00 2001 From: Mark Niggemann Date: Mon, 10 Jul 2017 11:40:25 -0500 Subject: [PATCH 3/3] Update manual for ejbjar orion element. --- manual/Tasks/ejb.html | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/manual/Tasks/ejb.html b/manual/Tasks/ejb.html index aa140e703a..c976509881 100644 --- a/manual/Tasks/ejb.html +++ b/manual/Tasks/ejb.html @@ -61,6 +61,8 @@

Introduction

Application Server 6.0
  • JBoss 2.1 and above EJB servers
  • +
  • + Orion Application Server 2.0
  • Weblogic 4.5.1 through to 7.0 EJB servers
  • JOnAS @@ -81,14 +83,15 @@

    EJB Tasks

    TaskApplication Servers blgenclientBorland Application Server 4.5 and 5.x iplanet-ejbciPlanet Application Server 6.0 - ejbjarNested Elements + ejbjarNested Elements borlandBorland Application Server 4.5 and 5.x iPlanetiPlanet Application Server 6.0 jbossJBoss jonasJOnAS 2.4.x and 2.5 weblogicWeblogic 5.1 to 7.0 websphereIBM WebSphere 4.0 - + orionIronFlare(Oracle) Orion Application Server 2.0.6 +
    @@ -562,6 +565,7 @@

    Description:

  • IBM WebSphere 4.0
  • TOPLink for WebLogic 2.5.1-enabled entity beans
  • JOnAS 2.4.x and 2.5 Open Source EJB server
  • +
  • IronFlare Orion Application Server 2.0
  • @@ -1770,7 +1774,42 @@

    Examples

    +

    Orion element

    + +

    The orion element searches for the Orion Application Server specific deployment descriptors and adds them +to the final ejb jar file. Orion has one deployment descriptor: +

    • orion-ejb-jar.xml
    • +
    +
    + + + + + + + + + + + +
    AttributeDescriptionRequired
    destdirThe base directory into which the generated + jar files are deposited. Jar files are deposited in + directories corresponding to their location within the + descriptordir namespace. Yes
    + +

    Example

    +
    +      <ejbjar srcdir="${build.classes}"
    +              descriptordir="${descriptor.dir}"
    +              basejarname="TheEJBJar"
    +              flatdestdir="true"
    +              dependency="super"
    +              genericjarsuffix=".jar">
    +        <include name="**/*-ejb-jar.xml"/>
    +        <orion destdir="${deploymentjars.dir}"\>
    +      </ejbjar>
    +