From c75d148f323d9c79a6b4acc3b152db6d6dc4bc23 Mon Sep 17 00:00:00 2001 From: Mark Niggemann Date: Tue, 18 Apr 2017 10:30:44 -0500 Subject: [PATCH 1/4] 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 000000000..683561c87 --- /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 49d63a1196840393653b262337e6be31016558e5 Mon Sep 17 00:00:00 2001 From: Mark Niggemann Date: Tue, 18 Apr 2017 11:23:36 -0500 Subject: [PATCH 2/4] 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 e9b7ed429..2981cab42 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 @@ public class EjbJar extends MatchingTask { 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 683561c87..058e2e47d 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 e93a598ad0aa21a6a0118f9bc89e746c18f47f04 Mon Sep 17 00:00:00 2001 From: Mark Niggemann Date: Mon, 10 Jul 2017 11:40:25 -0500 Subject: [PATCH 3/4] 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 aa140e703..c97650988 100644 --- a/manual/Tasks/ejb.html +++ b/manual/Tasks/ejb.html @@ -61,6 +61,8 @@ In general these tasks are specific to the particular vendor's EJB Server.

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 @@ In general these tasks are specific to the particular vendor's EJB Server.

    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 @@ include:

  • 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 @@ descriptors to use the naming standard. This will create only one ejb jar file - +

    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>
    +
    From 4e2e7d96145571c26338f21ff9405378966a2b5f Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Mon, 10 Jul 2017 21:40:23 +0200 Subject: [PATCH 4/4] add since markers, add Mark to contributors --- CONTRIBUTORS | 1 + WHATSNEW | 3 +++ contributors.xml | 4 ++++ manual/Tasks/ejb.html | 4 ++-- .../tools/ant/taskdefs/optional/ejb/EjbJar.java | 1 + .../optional/ejb/OrionDeploymentTool.java | 15 +++++++-------- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 17022c788..65a1cfa6a 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -233,6 +233,7 @@ Mariusz Nowostawski Mark A. Ziesemer Mark DeLaFranier Mark Hecker +Mark Niggemann Mark R. Diggory Mark Salter Markus Kahl diff --git a/WHATSNEW b/WHATSNEW index aa2ad036c..42f49a77b 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -22,6 +22,9 @@ Other changes: override the current time/date used by . Bugzilla Report 61079 + * added Orion support to ejbjar + Github Pull Request #33 + Changes from Ant 1.9.8 TO Ant 1.9.9 =================================== diff --git a/contributors.xml b/contributors.xml index ee049cb17..fd404f826 100644 --- a/contributors.xml +++ b/contributors.xml @@ -959,6 +959,10 @@ R. Diggory + + Mark + Niggemann + Mark A. diff --git a/manual/Tasks/ejb.html b/manual/Tasks/ejb.html index c97650988..68f7e9169 100644 --- a/manual/Tasks/ejb.html +++ b/manual/Tasks/ejb.html @@ -62,7 +62,7 @@ In general these tasks are specific to the particular vendor's EJB Server.

  • JBoss 2.1 and above EJB servers
  • - Orion Application Server 2.0
  • + Orion Application Server 2.0 since 1.9.10
  • Weblogic 4.5.1 through to 7.0 EJB servers
  • JOnAS @@ -1789,7 +1789,7 @@ to the final ejb jar file. Orion has one deployment descriptor: destdir - The base directory into which the generated + The base directory into which the generated jar files are deposited. Jar files are deposited in directories corresponding to their location within the descriptordir namespace. 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 2981cab42..6e7166b03 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 @@ -226,6 +226,7 @@ public class EjbJar extends MatchingTask { * deployment tool for Orion server. * * @return the deployment tool instance to be configured. + * @since Ant 1.9.10 */ public OrionDeploymentTool createOrion() { OrionDeploymentTool tool = new OrionDeploymentTool(); 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 058e2e47d..93bbbc0dd 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 @@ -23,19 +23,18 @@ 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 + * 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 Mark Niggemann - * @version 1.0 + * @since Ant 1.9.10 * @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"; @@ -47,14 +46,14 @@ public class OrionDeploymentTool extends GenericDeploymentTool { 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; } - + } /**