EXSLT

Hi,
Does Oracles XSLT processor in 10g support EXSLT? If not, how can I gain advanced date transformations using XSLT and Oracle?
Regards

Oracle XDK 10g does have nice support for calling Java extension functions,
for example, see this article:
http://www.devx.com/Java/Article/31675/0/page/1
The problem is that it's not portable, which might be acceptable as well,
but Oracle XDK makes it impossible to craft portable functions
as described here:
http://www.exslt.org/howto.html#function-portability
For example, if you try this:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exslt-math="http://exslt.org/math"
xmlns:ora-math="http://www.oracle.com/XSL/Transform/java/java.lang.Math"
extension-element-prefixes="ora-math exslt-math"
exclude-result-prefixes="xsl ora-math exslt-math">
<xsl:import href="....exslt/functions/sqrt/math.sqrt.template.xsl" />
<xsl:template name="magnitude">
<xsl:param name="u"/>
<xsl:param name="v"/>
<xsl:choose>
<xsl:when test="function-available('exslt-math:sqrt')">
<xsl:value-of select="exslt-math:sqrt( ($u*$u) + ($v*$v) )" />
</xsl:when>
<xsl:when test="function-available('ora-math:sqrt')">
<xsl:value-of select="ora-math:sqrt( ($u*$u) + ($v*$v) )" />
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="exslt-math:sqrt">
<xsl:with-param name="number" select="($u*$u) + ($v*$v)" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
The Oracle XSLT engine complains:
XML-22016: (Error) Extension function namespace should start with
'http://www.oracle.com/XSL/Transform/java/'.
This paranoid attitude means that the EXSLT stuff cannot even be in an Oracle stylesheet, even if it is never invoked. A more open minded live-n-let-live approach woud allow some approximation to portability.
Mik
P.S. The standard EXSLT library has a bug for this example,
you have to change a line in math.sqrt.template.xsl from
<xsl:call-template name="sqrt">
to
<xsl:call-template name="math:sqrt">

Similar Messages

  • Xalan and EXSLT problems - namespace issue?

    Hi all,
    I have some code that runs fine when using some older Xalan libraries:
    import org.apache.xalan.extensions.ExpressionContext;
    import org.apache.xpath.NodeSet;I was trying to upgrade to use the latest libraries (from what I understand are included in the latest version of the JDK):
    import com.sun.org.apache.xalan.internal.extensions.ExpressionContext;
    import com.sun.org.apache.xpath.internal.NodeSet;However when running exactly the same code I get the following exception:
    javax.xml.transform.TransformerException: java.lang.NoSuchMethodException: For extension function, could not find method
    I think this could be related to EXSLT namespaces or something but am really not sure,
    Any help appreciated,

    Hi all,
    I have some code that runs fine when using some older Xalan libraries:
    import org.apache.xalan.extensions.ExpressionContext;
    import org.apache.xpath.NodeSet;I was trying to upgrade to use the latest libraries (from what I understand are included in the latest version of the JDK):
    import com.sun.org.apache.xalan.internal.extensions.ExpressionContext;
    import com.sun.org.apache.xpath.internal.NodeSet;However when running exactly the same code I get the following exception:
    javax.xml.transform.TransformerException: java.lang.NoSuchMethodException: For extension function, could not find method
    I think this could be related to EXSLT namespaces or something but am really not sure,
    Any help appreciated,

  • EXSLT implementation

    I was wondering if there is any plan to make the oracle XSLT processor supporting the valuable EXSL extensions
    http://www.exslt.org/

    Oracle XDK 10g does have nice support for calling Java extension functions,
    for example, see this article:
    http://www.devx.com/Java/Article/31675/0/page/1
    The problem is that it's not portable, which might be acceptable as well,
    but Oracle XDK makes it impossible to craft portable functions
    as described here:
    http://www.exslt.org/howto.html#function-portability
    For example, if you try this:
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:exslt-math="http://exslt.org/math"
    xmlns:ora-math="http://www.oracle.com/XSL/Transform/java/java.lang.Math"
    extension-element-prefixes="ora-math exslt-math"
    exclude-result-prefixes="xsl ora-math exslt-math">
    <xsl:import href="....exslt/functions/sqrt/math.sqrt.template.xsl" />
    <xsl:template name="magnitude">
    <xsl:param name="u"/>
    <xsl:param name="v"/>
    <xsl:choose>
    <xsl:when test="function-available('exslt-math:sqrt')">
    <xsl:value-of select="exslt-math:sqrt( ($u*$u) + ($v*$v) )" />
    </xsl:when>
    <xsl:when test="function-available('ora-math:sqrt')">
    <xsl:value-of select="ora-math:sqrt( ($u*$u) + ($v*$v) )" />
    </xsl:when>
    <xsl:otherwise>
    <xsl:call-template name="exslt-math:sqrt">
    <xsl:with-param name="number" select="($u*$u) + ($v*$v)" />
    </xsl:call-template>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    The Oracle XSLT engine complains:
    XML-22016: (Error) Extension function namespace should start with
    'http://www.oracle.com/XSL/Transform/java/'.
    This paranoid attitude means that the EXSLT stuff cannot even be in an Oracle stylesheet, even if it is never invoked. A more open minded live-n-let-live approach woud allow some approximation to portability.
    Mik
    P.S. The standard EXSLT library has a bug for this example,
    you have to change a line in math.sqrt.template.xsl from
    <xsl:call-template name="sqrt">
    to
    <xsl:call-template name="math:sqrt">

  • Support of exslt in OSB/ALSB

    Hi,
    Does OSB/ALSb support extended xslt functions i.e exslt(http://exslt.org/functions)?
    When I tried to import/save an xslt having exslt functions, it gives an error
    An error occurred compiling the XSLT template: javax.xml.transform.TransformerException: weblogic.apache.xml.utils.WrappedRuntimeException: Could not find variable with the name of val.
    and the function is defined in xsl as :
    <func:function name="ctvf:convertToNumber">
    <xsl:param name="val"/>
    <xsl:variable name="strVal" select="string($val)"/>
    <xsl:choose>
    <xsl:when test="$strVal = 'NaN'">
    <func:result select="''"/>
    </xsl:when>
    <xsl:otherwise>
    <func:result select="$strVal"/>
    </xsl:otherwise>
    </xsl:choose>
    </func:function>
    where namespaces in the header are as:
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:func="http://exslt.org/functions"
    Thanks,
    Rajesh

    Hi all!
    Thanx for the answers! I have tried in the past the /text() I tried it again and didn´t worked, some body knows how can I post some screen shots so you can see that I´m using the /text() and maybe with the screen shot you can detect something, also I´m loging the $body in the default branch(cause it is not detecting the value between the tags it goes directly to the Defaul Branch) you will se some differences in the XML since I simplified the XML to make the example and tested this simplified XML it in the TEST Tool in the console and had the same results that with the original evendough I put the /text() at the end
    Here is the Body I loged in the default Branch:
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <imp:iniciarCambio xmlns:imp="http://bea.com/albpm/MMME/ImpactarCambiosClienteBILLING">
    <cambios xmlns:bea="http://bea.com/">
    <bea:ListaDeCambios>
    <!--1 or more repetitions:-->
    <bea:Cambio>
    <bea:campoNombre>Cambio1</bea:campoNombre>
    <bea:valorAnterior>antes</bea:valorAnterior>
    <bea:valorNuevo>despues</bea:valorNuevo>
    </bea:Cambio>
    </bea:ListaDeCambios>
    <bea:companiaId>32</bea:companiaId>
    <bea:companiaNombre>MMRedes</bea:companiaNombre>
    <bea:companiaTipo>Servicio</bea:companiaTipo>
    </cambios>
    </imp:iniciarCambio>
    </soapenv:Body>>
    as you can see it is Servicio and it should have gone to one of the branches instead of the default but it didn´t
    Can´t see what I´m doing wrong, but maybe some of you can.
    Thanx in advanced!
    Gerardo J

  • Support for EXSLT

    Does SOA Suite support exslt?
    I am trying to extract the "day of the year" from a sysdate. I cannot find this function in SOA Suite/JDeveloper. I found an extension http://exslt.org/dates-and-times that provides more date functionality.
    Has anybody tried using this extension?
    Regards,
    Robert

    Hi Robert,
    add the exslt template into your appliation (/bpel) folder.
    and import/add the namespace of the 'day in year' function/template into your xslt.
    now add the function 'day of the year' at the location you require.
    please, find the xslt code here
    *<xsl:stylesheet version="1.0"*
    xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:ehdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions"
    xmlns:ns1="http://xmlns.oracle.com/TestBRMSyncTimout"
    xmlns:ns0="http://www.w3.org/2001/XMLSchema"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
    xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
    xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
    xmlns:date="http://exslt.org/dates-and-times"
    exclude-result-prefixes="xsl ns1 ns0 xref xp20 bpws ora ehdr orcl ids hwf">
    *<xsl:import href="date.difference.template.xsl"/>*
    *<xsl:template match="/">*
    *<ns1:ProcessResponse>*
    *<ns1:result>*
    *<xsl:call-template name="date:difference">*
    *<xsl:with-param name="start" select="/ns1:ProcessRequest/ns1:startDate" />*
    *<xsl:with-param name="end" select="/ns1:ProcessRequest/ns1:endDate" />*
    *</xsl:call-template>*
    *</ns1:result>*
    *<ns1:result1>*
    *<xsl:value-of select="xp20:format-dateTime(/ns1:ProcessRequest/ns1:startDate,'[MM]/[DD]/[YYYY]')"/>*
    *</ns1:result1>*
    *</ns1:ProcessResponse>*
    *</xsl:template>*
    *</xsl:stylesheet>*
    Hope you got it.
    regards,
    anvv sharma
    Edited by: anvv sharma on Nov 10, 2009 7:10 PM

  • Trouble adding regular oracle oci8 support to RPM, CentOs 5

    Hello,
    It seems that i'm missing smth simple while trying to add oci8 support to RPM.
    I took Christopher Jones's SRPM for 5.2.3 as a base, but since i don't have and don't need a support for instant client i modified latest available 5.1.6 SRPM from CentOS 5 repo.
    The compile env is :
    HOSTNAME=server.home
    SHELL=/bin/bash
    TERM=vt100
    HISTSIZE=1000
    OLDPWD=/root
    USER=root
    LD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0/db_1/lib
    LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
    TNS_ADMIN=/u01/app/oracle/product/10.2.0/db_1/network/admin
    MAIL=/var/spool/mail/root
    PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    INPUTRC=/etc/inputrc
    PWD=/usr/src/redhat/SPECS
    LANG=en_US.UTF-8
    SHLVL=1
    HOME=/root
    LOGNAME=root
    LESSOPEN=|/usr/bin/lesspipe.sh %s
    ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
    G_BROKEN_FILENAMES=1
    _=/bin/envi compile as a root. Here is my spec file.
    %define contentdir /var/www
    %define apiver 20041225
    %define zendver 20050922
    %define pdover 20060409
    # AZ
    # Version of Instant Client RPM. [email protected] May 2007
    %define ociver 10.2.0.3
    # For testing OCI8 and PDO_OCI.  Use the password of the SYSTEM schema
    # and the connection string for the target
    # database. [email protected] May 2007
    %define oci8_test_system_password tiger
    %define oci8_test_connection_string localhost/lhome
    # Set oci8_test_local_db to TRUE when the Oracle DB is on the machine
    # building the RPMS.  Otherwise set it to FALSE.
    # [email protected] May 2007
    %define oci8_test_local_db TRUE
    #AZ
    Summary: The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor)
    Name: php
    Version: 5.1.6
    Release: 15%{?dist}
    License: The PHP License v3.01
    Group: Development/Languages
    URL: http://www.php.net/
    Source0: http://www.php.net/distributions/php-%{version}.tar.gz
    Source50: php.conf
    Source51: php.ini
    Patch1: php-5.1.4-gnusrc.patch
    Patch2: php-5.1.4-warnings.patch
    Patch5: php-4.3.3-install.patch
    Patch6: php-5.0.4-norpath.patch
    Patch7: php-4.3.2-libtool15.patch
    Patch13: php-5.0.2-phpize64.patch
    Patch14: php-5.1.6-ecalloc.patch
    # Fixes for extension modules
    Patch21: php-4.3.1-odbc.patch
    Patch22: php-4.3.11-shutdown.patch
    # Functional changes
    Patch30: php-5.0.4-dlopen.patch
    Patch31: php-5.0.0-easter.patch
    # Fixes for tests
    Patch50: php-5.0.4-tests-dashn.patch
    Patch51: php-5.0.4-tests-wddx.patch
    # Security fixes
    Patch70: php-4.3.9-CVE-2006-5465.patch
    Patch71: php-5.1.6-CVE-2007-0906-imap.patch
    Patch72: php-4.3.9-CVE-2007-0906-strreplace.patch
    Patch73: php-4.3.9-CVE-2007-0907.patch
    Patch74: php-4.3.9-CVE-2007-0908.patch
    Patch75: php-4.3.9-CVE-2007-0909-odbc.patch
    Patch76: php-4.3.9-CVE-2007-0909-printf.patch
    Patch77: php-5.1.6-CVE-2007-0910.patch
    Patch78: php-4.3.9-CVE-2007-0988.patch
    Patch79: php-5.1.6-CVE-2007-1285.patch
    Patch80: php-5.1.6-CVE-2007-1583.patch
    Patch81: php-5.1.6-CVE-2007-0455.patch
    Patch82: php-5.1.6-CVE-2007-1001.patch
    Patch83: php-5.1.6-CVE-2007-1718.patch
    Patch84: php-5.1.6-CVE-2007-1864.patch
    Patch85: php-5.1.6-soapredir.patch
    Patch86: php-5.1.6-ftpcrlf.patch
    Patch87: php-5.1.6-CVE-2007-2872.patch
    Patch88: php-5.1.6-CVE-2007-4658.patch
    Patch89: php-5.1.6-CVE-2007-2756.patch
    Patch90: php-5.1.6-CVE-2007-3799.patch
    Patch91: php-5.1.6-CVE-2007-3996.patch
    Patch92: php-5.1.6-CVE-2007-4670.patch
    Patch93: php-5.1.6-CVE-2007-3998.patch
    BuildRoot: %{_tmppath}/%{name}-root
    BuildRequires: bzip2-devel, curl-devel >= 7.9, db4-devel, expat-devel
    BuildRequires: gmp-devel, aspell-devel >= 0.50.0
    BuildRequires: httpd-devel >= 2.0.46-1, libjpeg-devel, libpng-devel, pam-devel
    BuildRequires: libstdc++-devel, openssl-devel, sqlite-devel >= 3.0.0
    BuildRequires: zlib-devel, pcre-devel >= 4.5, smtpdaemon
    BuildRequires: bzip2, fileutils, file >= 4.0, perl, libtool >= 1.4.3, gcc-c++
    Obsoletes: php-dbg, php3, phpfi, stronghold-php
    # Enforce Apache module ABI compatibility
    Requires: httpd-mmn = %(cat %{_includedir}/httpd/.mmn || echo missing-httpd-devel)
    Requires: file >= 4.0
    Provides: mod_php = %{version}-%{release}
    Requires: php-common = %{version}-%{release}
    # For backwards-compatibility, require php-cli for the time being:
    Requires: php-cli = %{version}-%{release}
    %description
    PHP is an HTML-embedded scripting language. PHP attempts to make it
    easy for developers to write dynamically generated webpages. PHP also
    offers built-in database integration for several commercial and
    non-commercial database management systems, so writing a
    database-enabled webpage with PHP is fairly simple. The most common
    use of PHP coding is probably as a replacement for CGI scripts.
    The php package contains the module which adds support for the PHP
    language to Apache HTTP Server.
    %package cli
    Group: Development/Languages
    Summary: Command-line interface for PHP
    Requires: php-common = %{version}-%{release}
    Provides: php-cgi = %{version}-%{release}
    Provides: php-pcntl
    %description cli
    The php-cli package contains the command-line interface
    executing PHP scripts, /usr/bin/php, and the CGI interface.
    %package common
    Group: Development/Languages
    Summary: Common files for PHP
    Provides: php-api = %{apiver}, php-zend-abi = %{zendver}
    # Provides for all builtin modules:
    Provides: php-bz2, php-calendar, php-ctype, php-curl, php-date, php-exif
    Provides: php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-libxml
    Provides: php-mime_magic, php-openssl, php-pcre, php-posix, php-pspell
    Provides: php-reflection, php-session, php-shmop, php-simplexml, php-sockets
    Provides: php-spl, php-sysvsem, php-sysvshm, php-sysvmsg, php-tokenizer
    Provides: php-wddx, php-zlib
    #AZ
    Provides: php-oci
    #AZ
    Obsoletes: php-openssl
    %description common
    The php-common package contains files used by both the php
    package and the php-cli package.
    %package devel
    Group: Development/Libraries
    Summary: Files needed for building PHP extensions.
    Requires: php = %{version}-%{release}, autoconf, automake
    Obsoletes: php-pecl-pdo-devel
    %description devel
    The php-devel package contains the files needed for building PHP
    extensions. If you need to compile your own PHP extensions, you will
    need to install this package.
    %package imap
    Summary: A module for PHP applications that use IMAP.
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    Obsoletes: mod_php3-imap, stronghold-php-imap
    BuildRequires: krb5-devel, openssl-devel, libc-client-devel
    %description imap
    The php-imap package contains a dynamic shared object (DSO) for the
    Apache Web server. When compiled into Apache, the php-imap module will
    add IMAP (Internet Message Access Protocol) support to PHP. IMAP is a
    protocol for retrieving and uploading e-mail messages on mail
    servers. PHP is an HTML-embedded scripting language. If you need IMAP
    support for PHP applications, you will need to install this package
    and the php package.
    %package ldap
    Summary: A module for PHP applications that use LDAP.
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    Obsoletes: mod_php3-ldap, stronghold-php-ldap
    BuildRequires: cyrus-sasl-devel, openldap-devel, openssl-devel
    %description ldap
    The php-ldap package is a dynamic shared object (DSO) for the Apache
    Web server that adds Lightweight Directory Access Protocol (LDAP)
    support to PHP. LDAP is a set of protocols for accessing directory
    services over the Internet. PHP is an HTML-embedded scripting
    language. If you need LDAP support for PHP applications, you will
    need to install this package in addition to the php package.
    %package pdo
    Summary: A database access abstraction module for PHP applications
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    Obsoletes: php-pecl-pdo-sqlite, php-pecl-pdo
    Provides: php-pdo-abi = %{pdover}
    %description pdo
    The php-pdo package contains a dynamic shared object that will add
    a database access abstraction layer to PHP.  This module provides
    a common interface for accessing MySQL, PostgreSQL or other
    databases.
    %package mysql
    Summary: A module for PHP applications that use MySQL databases.
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}, php-pdo
    Provides: php_database, php-mysqli
    Obsoletes: mod_php3-mysql, stronghold-php-mysql
    BuildRequires: mysql-devel >= 4.1.0
    %description mysql
    The php-mysql package contains a dynamic shared object that will add
    MySQL database support to PHP. MySQL is an object-relational database
    management system. PHP is an HTML-embeddable scripting language. If
    you need MySQL support for PHP applications, you will need to install
    this package and the php package.
    %package pgsql
    Summary: A PostgreSQL database module for PHP.
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}, php-pdo
    Provides: php_database
    Obsoletes: mod_php3-pgsql, stronghold-php-pgsql
    BuildRequires: krb5-devel, openssl-devel, postgresql-devel
    %description pgsql
    The php-pgsql package includes a dynamic shared object (DSO) that can
    be compiled in to the Apache Web server to add PostgreSQL database
    support to PHP. PostgreSQL is an object-relational database management
    system that supports almost all SQL constructs. PHP is an
    HTML-embedded scripting language. If you need back-end support for
    PostgreSQL, you should install this package in addition to the main
    php package.
    #AZ
    # Added oci8.  [email protected] May 2007
    %package oci8
    Summary: A module for PHP applications using the Oracle database
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}, php-pdo
    #BuildRequires: oracle-instantclient-devel = %{ociver}
    Provides: php_database, php-oci
    AutoReqProv: No
    %description oci8
    The php-oci8 package contains a dynamic shared object (DSO) for the
    Apache Web server. When compiled into Apache, the php-oci8 module will
    add OCI8 support to PHP. OCI8 is an extension for Oracle Database
    access.  PHP is an HTML-embedded scripting language. If you need
    Oracle support for PHP applications, you can install this package and
    the php package.
    This package also contains PDO_OCI for use with the PDO extension.
    #AZ
    %package odbc
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}, php-pdo
    Summary: A module for PHP applications that use ODBC databases.
    Provides: php_database
    Obsoletes: stronghold-php-odbc
    BuildRequires: unixODBC-devel
    %description odbc
    The php-odbc package contains a dynamic shared object that will add
    database support through ODBC to PHP. ODBC is an open specification
    which provides a consistent API for developers to use for accessing
    data sources (which are often, but not always, databases). PHP is an
    HTML-embeddable scripting language. If you need ODBC support for PHP
    applications, you will need to install this package and the php
    package.
    %package soap
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    Summary: A module for PHP applications that use the SOAP protocol
    BuildRequires: libxml2-devel
    %description soap
    The php-soap package contains a dynamic shared object that will add
    support to PHP for using the SOAP web services protocol.
    %package snmp
    Summary: A module for PHP applications that query SNMP-managed devices.
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}, net-snmp
    BuildRequires: net-snmp-devel
    %description snmp
    The php-snmp package contains a dynamic shared object that will add
    support for querying SNMP devices to PHP.  PHP is an HTML-embeddable
    scripting language. If you need SNMP support for PHP applications, you
    will need to install this package and the php package.
    %package xml
    Summary: A module for PHP applications which use XML
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    Obsoletes: php-domxml, php-dom
    Provides: php-dom, php-xsl, php-domxml
    BuildRequires: libxslt-devel >= 1.0.18-1, libxml2-devel >= 2.4.14-1
    %description xml
    The php-xml package contains dynamic shared objects which add support
    to PHP for manipulating XML documents using the DOM tree,
    and performing XSL transformations on XML documents.
    %package xmlrpc
    Summary: A module for PHP applications which use the XML-RPC protocol
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    BuildRequires: expat-devel
    %description xmlrpc
    The php-xmlrpc package contains a dynamic shared object that will add
    support for the XML-RPC protocol to PHP.
    %package mbstring
    Summary: A module for PHP applications which need multi-byte string handling
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    %description mbstring
    The php-mbstring package contains a dynamic shared object that will add
    support for multi-byte string handling to PHP.
    %package ncurses
    Summary: A module for PHP applications for using ncurses interfaces
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    BuildRequires: ncurses-devel
    %description ncurses
    The php-ncurses package contains a dynamic shared object that will add
    support for using the ncurses terminal output interfaces.
    %package gd
    Summary: A module for PHP applications for using the gd graphics library
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    BuildRequires: gd-devel, freetype-devel
    %description gd
    The php-gd package contains a dynamic shared object that will add
    support for using the gd graphics library to PHP.
    %package bcmath
    Summary: A module for PHP applications for using the bcmath library
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    %description bcmath
    The php-bcmath package contains a dynamic shared object that will add
    support for using the bcmath library to PHP.
    %package dba
    Summary: A database abstraction layer module for PHP applications
    Group: Development/Languages
    Requires: php-common = %{version}-%{release}
    %description dba
    The php-dba package contains a dynamic shared object that will add
    support for using the DBA database abstraction layer to PHP.
    %prep
    %setup -q
    %patch1 -p1 -b .gnusrc
    %patch2 -p1 -b .warnings
    %patch5 -p1 -b .install
    %patch6 -p1 -b .norpath
    %patch7 -p1 -b .libtool15
    %patch13 -p1 -b .phpize64
    %patch14 -p1 -b .ecalloc
    %patch21 -p1 -b .odbc
    %patch22 -p1 -b .shutdown
    %patch30 -p1 -b .dlopen
    %patch31 -p1 -b .easter
    %patch50 -p1 -b .tests-dashn
    %patch51 -p1 -b .tests-wddx
    %patch70 -p1 -b .cve5465
    %patch71 -p1 -b .cve0906-imap
    %patch72 -p1 -b .cve0906-strreplace
    %patch73 -p1 -b .cve0907
    %patch74 -p1 -b .cve0908
    %patch75 -p1 -b .cve0909-odbc
    %patch76 -p1 -b .cve0909-printf
    %patch77 -p1 -b .cve0910
    %patch78 -p1 -b .cve0988
    %patch79 -p1 -b .cve1285
    %patch80 -p1 -b .cve1583
    %patch81 -p1 -b .cve0455
    %patch82 -p1 -b .cve1001
    %patch83 -p1 -b .cve1718
    %patch84 -p1 -b .cve1864
    %patch85 -p1 -b .soapredir
    %patch86 -p1 -b .ftpcrlf
    %patch87 -p1 -b .cve2872
    %patch88 -p1 -b .cve4658
    %patch89 -p1 -b .cve2756
    %patch90 -p1 -b .cve3799
    %patch91 -p1 -b .cve3996
    %patch92 -p1 -b .cve4670
    %patch93 -p1 -b .cve3998
    # Prevent %%doc confusion over LICENSE files
    cp Zend/LICENSE Zend/ZEND_LICENSE
    cp TSRM/LICENSE TSRM_LICENSE
    cp regex/COPYRIGHT regex_COPYRIGHT
    cp ext/gd/libgd/README gd_README
    # Source is built twice: once for /usr/bin/php, once for the Apache DSO.
    mkdir build-cgi build-apache
    # Remove bogus test; position of read position after fopen(, "a+")
    # is not defined by C standard, so don't presume anything.
    rm -f ext/standard/tests/file/bug21131.phpt
    # Tests that fail.
    rm -f ext/standard/tests/file/bug22414.phpt \
          ext/iconv/tests/bug16069.phpt
    #AZ
    # Tests that fail.
    rm -f ext/oci8/tests/bug27303.phpt \
            ext/oci8/tests/bug27303_2.phpt \
            ext/oci8/tests/bug27303_4.phpt
    # OCI8 config file. [email protected] May 2007
    cat <<EOF > ext/oci8/tests/details.inc
    <?php
    * Please, change user, password and dbase to match your configuration.
    \$user       = "scott";
    \$password   = "%{oci8_test_system_password}";
    \$dbase      = "%{oci8_test_connection_string}";
    /* Set this variable to TRUE if Oracle is installed @ localhost */
    \$oracle_on_localhost = %{oci8_test_local_db};
    ?>
    EOF
    #AZ
    # Safety check for API version change.
    vapi=`sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h`
    if test "x${vapi}" != "x%{apiver}"; then
       : Error: Upstream API version is now ${vapi}, expecting %{apiver}.
       : Update the apiver macro and rebuild.
       exit 1
    fi
    # Safety check for Zend API version change.
    vzend=`sed -n '/#define ZEND_MODULE_API_NO/{s/^[^0-9]*//;p;}' Zend/zend_modules.h`
    if test "x${vzend}" != "x%{zendver}"; then
       : Error: Upstream Zend module ABI version is now ${vzend}, expecting %{zendver}.
       : Update the zendver macro and rebuild.
       exit 1
    fi
    # Safety check for PDO ABI version change
    vpdo=`sed -n '/#define PDO_DRIVER_API/{s/.*[    ]//;p}' ext/pdo/php_pdo_driver.h`
    if test "x${vpdo}" != "x%{pdover}"; then
       : Error: Upstream PDO ABI version is now ${vpdo}, expecting %{pdover}.
       : Update the pdover macro and rebuild.
       exit 1
    fi
    %build
    # Force use of system libtool:
    libtoolize force copy
    cat `aclocal --print-ac-dir`/libtool.m4 > build/libtool.m4
    # Regenerate configure scripts (patches change config.m4's)
    ./buildconf --force
    CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign"
    CPPFLAGS="-DLDAP_DEPRECATED=1"
    export CFLAGS CPPFLAGS
    # Install extension modules in %{_libdir}/php/modules.
    EXTENSION_DIR=%{_libdir}/php/modules; export EXTENSION_DIR
    # Set PEAR_INSTALLDIR to ensure that the hard-coded include_path
    # includes the PEAR directory even though pear is packaged
    # separately.
    PEAR_INSTALLDIR=%{_datadir}/pear; export PEAR_INSTALLDIR
    # Shell function to configure and build a PHP tree.
    build() {
    # bison-1.875-2 seems to produce a broken parser; workaround.
    mkdir Zend && cp ../Zend/zend_{language,ini}_{parser,scanner}.[ch] Zend
    ln -sf ../configure
    %configure \
            --cache-file=../config.cache \
            --with-libdir=%{_lib} \
            --with-config-file-path=%{_sysconfdir} \
            --with-config-file-scan-dir=%{_sysconfdir}/php.d \
            --disable-debug \
            --with-pic \
            --disable-rpath \
            --without-pear \
            --with-bz2 \
            --with-curl \
            --with-exec-dir=%{_bindir} \
            --with-freetype-dir=%{_prefix} \
            --with-png-dir=%{_prefix} \
            --enable-gd-native-ttf \
            --without-gdbm \
            --with-gettext \
            --with-gmp \
            --with-iconv \
            --with-jpeg-dir=%{_prefix} \
            --with-openssl \
            --with-png \
            --with-pspell \
            --with-expat-dir=%{_prefix} \
            --with-pcre-regex=%{_prefix} \
            --with-zlib \
            --with-layout=GNU \
            --enable-exif \
            --enable-ftp \
            --enable-magic-quotes \
            --enable-sockets \
            enable-sysvsem enable-sysvshm --enable-sysvmsg \
            --enable-track-vars \
            --enable-trans-sid \
            --enable-yp \
            --enable-wddx \
            --with-kerberos \
            --enable-ucd-snmp-hack \
            --with-unixODBC=shared,%{_prefix} \
            --enable-memory-limit \
            --enable-shmop \
            --enable-calendar \
            --enable-dbx \
            --enable-dio \
            --with-mime-magic=%{_sysconfdir}/httpd/conf/magic \
            --without-sqlite \
            --with-libxml-dir=%{_prefix} \
            --with-oci8=$ORACLE_HOME \
            --with-apxs2=/usr/sbin/apxs \
            --with-xml \
            $*
    if test $? != 0; then
      tail -500 config.log
      : configure failed
      exit 1
    fi
    make %{?_smp_mflags}
    # Build /usr/bin/php-cgi with the CGI SAPI, and all the shared extensions
    pushd build-cgi
    build --enable-force-cgi-redirect \
          --enable-pcntl \
          with-imap=shared with-imap-ssl \
          enable-mbstring=shared enable-mbstr-enc-trans \
          --enable-mbregex \
          --with-ncurses=shared \
          --with-gd=shared \
          --enable-bcmath=shared \
          enable-dba=shared with-db4=%{_prefix} \
          --with-xmlrpc=shared \
          --with-ldap=shared \
          --with-mysql=shared,%{_prefix} \
          --with-mysqli=shared,%{_bindir}/mysql_config \
          --enable-dom=shared \
          --with-dom-xslt=%{_prefix} --with-dom-exslt=%{_prefix} \
          --with-pgsql=shared \
          --with-snmp=shared,%{_prefix} \
          --enable-soap=shared \
          --with-xsl=shared,%{_prefix} \
          enable-xmlreader=shared enable-xmlwriter=shared \
          --enable-fastcgi \
          --enable-pdo=shared \
          --with-pdo-odbc=shared,unixODBC,%{_prefix} \
          --with-pdo-mysql=shared,%{_prefix} \
          --with-pdo-pgsql=shared,%{_prefix} \
          --with-pdo-sqlite=shared,%{_prefix} \
    #      --with-pdo-oci=shared,$ORACLE_HOME \
          --with-oci8 \
           --enable-sigchild
    popd
    # Build Apache module, and the CLI SAPI, /usr/bin/php
    pushd build-apache
    build --with-apxs2=%{_sbindir}/apxs \
          without-mysql without-gd \
          without-odbc disable-dom \
          disable-dba without-unixODBC \
          disable-pdo disable-xmlreader --disable-xmlwriter
    popd
    %check
    cd build-apache
    # Run tests, using the CLI SAPI
    export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
    unset TZ LANG LC_ALL
    #AZ
    # Allows PDO_OCI tests to connect.  [email protected] May 2007
    #export PDO_OCI_TEST_DSN=oci:dbname=%{oci8_test_connection_string}
    #export PDO_OCI_TEST_USER=scott
    #export PDO_OCI_TEST_PASS=%{oci8_test_system_password}
    #AZ
    if ! make test; then
      set +x
      for f in `find .. -name \*.diff -type f -print`; do
        echo "TEST FAILURE: $f --"
        cat "$f"
        echo "-- $f result ends."
      done
      set -x
      #exit 1
    fi
    unset NO_INTERACTION REPORT_EXIT_STATUS MALLOC_CHECK_
    %install
    [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
    # Install everything from the CGI SAPI build
    pushd build-cgi
    make install INSTALL_ROOT=$RPM_BUILD_ROOT
    mv $RPM_BUILD_ROOT%{_bindir}/php $RPM_BUILD_ROOT%{_bindir}/php-cgi
    # Install the CLI SAPI as /usr/bin/php
    make install-cli INSTALL_ROOT=$RPM_BUILD_ROOT
    popd
    # Install the Apache module
    pushd build-apache
    make install-sapi INSTALL_ROOT=$RPM_BUILD_ROOT
    popd
    # Install the default configuration file and icons
    install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/
    install -m 644 $RPM_SOURCE_DIR/php.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
    install -m 755 -d $RPM_BUILD_ROOT%{contentdir}/icons
    install -m 644    *.gif $RPM_BUILD_ROOT%{contentdir}/icons/
    # For PEAR packaging:
    install -m 755 -d $RPM_BUILD_ROOT%{_libdir}/php/pear
    # Use correct libdir
    sed -i -e 's|%{_prefix}/lib|%{_libdir}|' $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
    # install the DSO
    install -m 755 -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules
    install -m 755 build-apache/libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules
    # Apache config fragment
    install -m 755 -d $RPM_BUILD_ROOT/etc/httpd/conf.d
    install -m 644 $RPM_SOURCE_DIR/php.conf $RPM_BUILD_ROOT/etc/httpd/conf.d
    install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d
    install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php
    install -m 700 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php/session
    # Generate files lists and stub .ini files for each subpackage
    #AZ
    for mod in oci8 pgsql mysql mysqli odbc ldap snmp xmlrpc imap \
        mbstring ncurses gd dom xsl soap bcmath dba xmlreader xmlwriter \
        pdo pdo_mysql pdo_pgsql pdo_odbc pdo_sqlite; do
    #AZ
        cat > $RPM_BUILD_ROOT%{_sysconfdir}/php.d/${mod}.ini <<EOF
    ; Enable ${mod} extension module
    extension=${mod}.so
    EOF
        cat > files.${mod} <<EOF
    %attr(755,root,root) %{_libdir}/php/modules/${mod}.so
    %config(noreplace) %attr(644,root,root) %{_sysconfdir}/php.d/${mod}.ini
    EOF
    done
    # The dom, xsl and xml* modules are all packaged in php-xml
    cat files.dom files.xsl files.xml{reader,writer} > files.xml
    # The mysql and mysqli modules are both packaged in php-mysql
    cat files.mysqli >> files.mysql
    # Split out the PDO modules
    #AZ
    cat files.pdo_oci >> files.oci8
    #AZ
    cat files.pdo_mysql >> files.mysql
    cat files.pdo_pgsql >> files.pgsql
    cat files.pdo_odbc >> files.odbc
    # Package pdo_sqlite with pdo; isolating the sqlite dependency
    # isn't useful at this time since rpm itself requires sqlite.
    cat files.pdo_sqlite >> files.pdo
    # Remove unpackaged files
    rm -rf $RPM_BUILD_ROOT%{_libdir}/php/modules/*.a \
           $RPM_BUILD_ROOT%{_bindir}/{phptar} \
           $RPM_BUILD_ROOT%{_datadir}/pear
    # Remove irrelevant docs
    rm -f README.{Zeus,QNX,CVS-RULES}
    %clean
    [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
    rm files.*
    %files
    %defattr(-,root,root)
    %{_libdir}/httpd/modules/libphp5.so
    %attr(0770,root,apache) %dir %{_localstatedir}/lib/php/session
    %config %{_sysconfdir}/httpd/conf.d/php.conf
    %{contentdir}/icons/php.gif
    %files common
    %defattr(-,root,root)
    %doc CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README*
    %doc Zend/ZEND_* gd_README TSRM_LICENSE regex_COPYRIGHT
    %config %{_sysconfdir}/php.ini
    %dir %{_sysconfdir}/php.d
    %dir %{_libdir}/php
    %dir %{_libdir}/php/modules
    %dir %{_localstatedir}/lib/php
    %dir %{_libdir}/php/pear
    %files cli
    %defattr(-,root,root)
    %{_bindir}/php
    %{_bindir}/php-cgi
    %{_mandir}/man1/php.1*
    %files devel
    %defattr(-,root,root)
    %{_bindir}/php-config
    %{_bindir}/phpize
    %{_includedir}/php
    %{_libdir}/php/build
    %{_mandir}/man1/php-config.1*
    %{_mandir}/man1/phpize.1*
    %files pgsql -f files.pgsql
    %files mysql -f files.mysql
    %files odbc -f files.odbc
    %files imap -f files.imap
    %files ldap -f files.ldap
    %files snmp -f files.snmp
    %files xml -f files.xml
    %files xmlrpc -f files.xmlrpc
    %files mbstring -f files.mbstring
    %files ncurses -f files.ncurses
    %files gd -f files.gd
    %files soap -f files.soap
    %files bcmath -f files.bcmath
    %files dba -f files.dba
    %files pdo -f files.pdo
    #AZ
    %files oci8 -f files.oci8
    #AZ
    %changelog
    * Wed Sep 12 2007 Joe Orton <[email protected]> 5.1.6-15.el5
    - improve fix for CVE-2007-3997 (#278411)
    * Fri Sep  7 2007 Joe Orton <[email protected]> 5.1.6-14.el5
    - fix backport for CVE-2007-3996 (#278411)
    * Thu Sep  6 2007 Joe Orton <[email protected]> 5.1.6-13.el5
    - add security fixes for CVE-2007-2756, CVE-2007-2872,
      CVE-2007-3799, CVE-2007-3996, CVE-2007-3998, CVE-2007-4658,
      CVE-2007-4670 (#278411)
    * Wed Apr  4 2007 Joe Orton <[email protected]> 5.1.6-12.el5
    - add security fix for CVE-2007-1864, SOAP redirect handling issue,
      FTP CRLF injection issue (#235016)
    * Wed Apr  4 2007 Joe Orton <[email protected]> 5.1.6-11.el5
    - add security fix for CVE-2007-1718 (#235016)
    * Tue Apr  3 2007 Joe Orton <[email protected]> 5.1.6-9.el5
    - add security fix for CVE-2007-1583 (#235016)
    - add security fixes for CVE-2007-0455, CVE-2007-1001 (#235036)
    * Fri Mar  9 2007 Joe Orton <[email protected]> 5.1.6-7.el5
    - add security fix for CVE-2007-1285 (#231597)
    * Fri Feb 16 2007 Joe Orton <[email protected]> 5.1.6-6.el5
    - add security fixes for: CVE-2007-0906, CVE-2007-0907,
      CVE-2007-0908, CVE-2007-0909, CVE-2007-0910, CVE-2007-0988 (#229013)
    * Tue Dec 19 2006 Joe Orton <[email protected]> 5.1.6-5.el5
    - fix version for php-zend-abi (#218758)
    * Thu Nov 23 2006 Joe Orton <[email protected]> 5.1.6-4.el5
    - php-xml provides php-domxml (#215656)
    - fix php-pdo-abi provide (#214281)
    - provide php-zend-abi (#212804)
    - don't Obsolete mod_php
    - fix PDO sqlite TEXT extraction truncate-by-one (#217033)
    - package php{ize,-config} man pages in -devel (#199382)
    - change module subpackages to require php-common not php (#177821)
    - add security fix for CVE-2006-5465 (#216114)
    * Wed Oct  4 2006 Joe Orton <[email protected]> 5.1.6-3
    - from upstream: add safety checks against integer overflow in _ecalloc
    * Tue Aug 29 2006 Joe Orton <[email protected]> 5.1.6-2
    - update to 5.1.6 (security fixes)
    - bump default memory_limit to 16M (#196802)
    * Wed Jul 12 2006 Jesse Keating <[email protected]> - 5.1.4-8.1
    - rebuild
    * Fri Jun  9 2006 Joe Orton <[email protected]> 5.1.4-8
    - Provide php-posix (#194583)
    - only provide php-pcntl from -cli subpackage
    - add missing defattr's (thanks to Matthias Saou)
    * Fri Jun  9 2006 Joe Orton <[email protected]> 5.1.4-7
    - move Obsoletes for php-openssl to -common (#194501)
    - Provide: php-cgi from -cli subpackage
    * Fri Jun  2 2006 Joe Orton <[email protected]> 5.1.4-6
    - split out php-cli, php-common subpackages (#177821)
    - add php-pdo-abi version export (#193202)
    * Wed May 24 2006 Radek Vokal <[email protected]> 5.1.4-5.1
    - rebuilt for new libnetsnmp
    * Thu May 18 2006 Joe Orton <[email protected]> 5.1.4-5
    - provide mod_php (#187891)
    - provide php-cli (#192196)
    - use correct LDAP fix (#181518)
    - define GNUSOURCE in php_config.h and leave it defined
    - drop (circular) dependency on php-pear
    * Mon May  8 2006 Joe Orton <[email protected]> 5.1.4-3
    - update to 5.1.4
    * Wed May  3 2006 Joe Orton <[email protected]> 5.1.3-3
    - update to 5.1.3
    * Tue Feb 28 2006 Joe Orton <[email protected]> 5.1.2-5
    - provide php-api (#183227)
    - add provides for all builtin modules (Tim Jackson, #173804)
    - own %%{_libdir}/php/pear for PEAR packages (per #176733)
    - add obsoletes to allow upgrade from FE4 PDO packages (#181863)
    * Fri Feb 10 2006 Jesse Keating <[email protected]> - 5.1.2-4.3
    - bump again for double-long bug on ppc(64)
    * Tue Feb 07 2006 Jesse Keating <[email protected]> - 5.1.2-4.1
    - rebuilt for new gcc4.1 snapshot and glibc changes
    * Tue Jan 31 2006 Joe Orton <[email protected]> 5.1.2-4
    - rebuild for new libc-client soname
    * Mon Jan 16 2006 Joe Orton <[email protected]> 5.1.2-3
    - only build xmlreader and xmlwriter shared (#177810)
    * Fri Jan 13 2006 Joe Orton <[email protected]> 5.1.2-2
    - update to 5.1.2
    * Thu Jan  5 2006 Joe Orton <[email protected]> 5.1.1-8
    - rebuild again
    * Mon Jan  2 2006 Joe Orton <[email protected]> 5.1.1-7
    - rebuild for new net-snmp
    * Mon Dec 12 2005 Joe Orton <[email protected]> 5.1.1-6
    - enable short_open_tag in default php.ini again (#175381)
    * Fri Dec 09 2005 Jesse Keating <[email protected]>
    - rebuilt
    * Thu Dec  8 2005 Joe Orton <[email protected]> 5.1.1-5
    - require net-snmp for php-snmp (#174800)
    * Sun Dec  4 2005 Joe Orton <[email protected]> 5.1.1-4
    - add /usr/share/pear back to hard-coded include_path (#174885)
    * Fri Dec  2 2005 Joe Orton <[email protected]> 5.1.1-3
    - rebuild for httpd 2.2
    * Mon Nov 28 2005 Joe Orton <[email protected]> 5.1.1-2
    - update to 5.1.1
    - remove pear subpackage
    - enable pdo extensions (php-pdo subpackage)
    - remove non-standard conditional module builds
    - enable xmlreader extension
    * Thu Nov 10 2005 Tomas Mraz <[email protected]> 5.0.5-6
    - rebuilt against new openssl
    * Mon Nov  7 2005 Joe Orton <[email protected]> 5.0.5-5
    - pear: update to XML_RPC 1.4.4, XML_Parser 1.2.7, Mail 1.1.9 (#172528)
    * Tue Nov  1 2005 Joe Orton <[email protected]> 5.0.5-4
    - rebuild for new libnetsnmp
    * Wed Sep 14 2005 Joe Orton <[email protected]> 5.0.5-3
    - update to 5.0.5
    - add fix for upstream #34435
    - devel: require autoconf, automake (#159283)
    - pear: update to HTTP-1.3.6, Mail-1.1.8, Net_SMTP-1.2.7, XML_RPC-1.4.1
    - fix imagettftext et al (upstream, #161001)
    * Thu Jun 16 2005 Joe Orton <[email protected]> 5.0.4-11
    - ldap: restore ldap_start_tls() function
    * Fri May  6 2005 Joe Orton <[email protected]> 5.0.4-10
    - disable RPATHs in shared extensions (#156974)
    * Tue May  3 2005 Joe Orton <[email protected]> 5.0.4-9
    - build simplexml_import_dom even with shared dom (#156434)
    - prevent truncation of copied files to ~2Mb (#155916)
    - install /usr/bin/php from CLI build alongside CGI
    - enable sysvmsg extension (#142988)
    * Mon Apr 25 2005 Joe Orton <[email protected]> 5.0.4-8
    - prevent build of builtin dba as well as shared extension
    * Wed Apr 13 2005 Joe Orton <[email protected]> 5.0.4-7
    - split out dba and bcmath extensions into subpackages
    - BuildRequire gcc-c++ to avoid AC_PROG_CXX{,CPP} failure (#155221)
    - pear: update to DB-1.7.6
    - enable FastCGI support in /usr/bin/php-cgi (#149596)
    * Wed Apr 13 2005 Joe Orton <[email protected]> 5.0.4-6
    - build /usr/bin/php with the CLI SAPI, and add /usr/bin/php-cgi,
      built with the CGI SAPI (thanks to Edward Rudd, #137704)
    - add php(1) man page for CLI
    - fix more test cases to use -n when invoking php
    * Wed Apr 13 2005 Joe Orton <[email protected]> 5.0.4-5
    - rebuild for new libpq soname
    * Tue Apr 12 2005 Joe Orton <[email protected]> 5.0.4-4
    - bundle from PEAR: HTTP, Mail, XML_Parser, Net_Socket, Net_SMTP
    - snmp: disable MSHUTDOWN function to prevent error_log noise (#153988)
    - mysqli: add fix for crash on x86_64 (Georg Richter, upstream #32282)
    * Mon Apr 11 2005 Joe Orton <[email protected]> 5.0.4-3
    - build shared objects as PIC (#154195)
    * Mon Apr  4 2005 Joe Orton <[email protected]> 5.0.4-2
    - fix PEAR installation and bundle PEAR DB-1.7.5 package
    * Fri Apr  1 2005 Joe Orton <[email protected]> 5.0.4-1
    - update to 5.0.4 (#153068)
    - add .phps AddType to php.conf (#152973)
    - better gcc4 fix for libxmlrpc
    * Wed Mar 30 2005 Joe Orton <[email protected]> 5.0.3-5
    - BuildRequire mysql-devel >= 4.1
    - don't mark php.ini as noreplace to make upgrades work (#152171)
    - fix subpackage descriptions (#152628)
    - fix memset(,,0) in Zend (thanks to Dave Jones)
    - fix various compiler warnings in Zend
    * Thu Mar 24 2005 Joe Orton <[email protected]> 5.0.3-4
    - package mysqli extension in php-mysql
    - really enable pcntl (#142903)
    - don't build with --enable-safe-mode (#148969)
    - use "Instant Client" libraries for oci8 module (Kai Bolay, #149873)
    * Fri Feb 18 2005 Joe Orton <[email protected]> 5.0.3-3
    - fix build with GCC 4
    * Wed Feb  9 2005 Joe Orton <[email protected]> 5.0.3-2
    - install the ext/gd headers (#145891)
    - enable pcntl extension in /usr/bin/php (#142903)
    - add libmbfl array arithmetic fix ([email protected], #143795)
    - add BuildRequire for recent pcre-devel (#147448)
    * Wed Jan 12 2005 Joe Orton <[email protected]> 5.0.3-1
    - update to 5.0.3 (thanks to Robert Scheck et al, #143101)
    - enable xsl extension (#142174)
    - package both the xsl and dom extensions in php-xml
    - enable soap extension, shared (php-soap package) (#142901)
    - add patches from upstream 5.0 branch:
    * Zend_strtod.c compile fixes
    * correct php_sprintf return value usage
    * Mon Nov 22 2004 Joe Orton <[email protected]> 5.0.2-8
    - update for db4-4.3 (Robert Scheck, #140167)
    - build against mysql-devel
    - run tests in %%check
    * Wed Nov 10 2004 Joe Orton <[email protected]> 5.0.2-7
    - truncate changelog at 4.3.1-1
    - merge from 4.3.x package:
    - enable mime_magic extension and Require: file (#130276)
    * Mon Nov  8 2004 Joe Orton <[email protected]> 5.0.2-6
    - fix dom/sqlite enable/without confusion
    * Mon Nov  8 2004 Joe Orton <[email protected]> 5.0.2-5
    - fix phpize installation for lib64 platforms
    - add fix for segfault in variable parsing introduced in 5.0.2
    * Mon Nov  8 2004 Joe Orton <[email protected]> 5.0.2-4
    - update to 5.0.2 (#127980)
    - build against mysqlclient10-devel
    - use new RTLD_DEEPBIND to load extension modules
    - drop explicit requirement for elfutils-devel
    - use AddHandler in default conf.d/php.conf (#135664)
    - "fix" round() fudging for recent gcc on x86
    - disable sqlite pending audit of warnings and subpackage split
    * Fri Sep 17 2004 Joe Orton <[email protected]> 5.0.1-4
    - don't build dom extension into 2.0 SAPI
    * Fri Sep 17 2004 Joe Orton <[email protected]> 5.0.1-3
    - ExclusiveArch: x86 ppc x86_64 for the moment
    * Fri Sep 17 2004 Joe Orton <[email protected]> 5.0.1-2
    - fix default extension_dir and conf.d/php.conf
    * Thu Sep  9 2004 Joe Orton <[email protected]> 5.0.1-1
    - update to 5.0.1
    - only build shared modules once
    - put dom extension in php-dom subpackage again
    - move extension modules into %%{_libdir}/php/modules
    - don't use --with-regex=system, it's ignored for the apache* SAPIs
    * Wed Aug 11 2004 Tom Callaway <[email protected]>
    - Merge in some spec file changes from Jeff Stern ([email protected])
    * Mon Aug 09 2004 Tom Callaway <[email protected]>
    - bump to 5.0.0
    - add patch to prevent clobbering struct re_registers from regex.h
    - remove domxml references, replaced with dom now built-in
    - fix php.ini to refer to php5 not php4
    * Wed Aug 04 2004 Florian La Roche <[email protected]>
    - rebuild
    * Wed Jul 14 2004 Joe Orton <[email protected]> 4.3.8-3
    - update to 4.3.8
    - catch some fd > FD_SETSIZE vs select() issues (#125258)
    * Mon Jun 21 2004 Joe Orton <[email protected]> 4.3.7-4
    - pick up test failures again
    - have -devel require php of same release
    * Thu Jun 17 2004 Joe Orton <[email protected]> 4.3.7-3
    - add gmp_powm fix (Oskari Saarenmaa, #124318)
    - split mbstring, ncurses, gd, openssl extns into subpackages
    - fix memory leak in apache2handler; use ap_r{write,flush}
      rather than brigade interfaces
    * Tue Jun 15 2004 Elliot Lee <[email protected]>
    - rebuilt
    * Thu Jun  3 2004 Joe Orton <[email protected]> 4.3.7-1
    - update to 4.3.7
    - have -pear subpackage require php of same VR
    * Wed May 26 2004 Joe Orton <[email protected]> 4.3.6-6
    - buildrequire smtpdaemon (#124430)
    - try switching to system libgd again (prevent symbol conflicts
      when e.g. mod_perl loads the system libgd library.)
    * Wed May 19 2004 Joe Orton <[email protected]> 4.3.6-5
    - don't obsolete php-imap (#123580)
    - unconditionally build -imap subpackage
    * Thu May 13 2004 Joe Orton <[email protected]> 4.3.6-4
    - remove trigger
    * Thu Apr 22 2004 Joe Orton <[email protected]> 4.3.6-3
    - fix umask reset "feature" (#121454)
    - don't use DL_GLOBAL when dlopen'ing extension modules
    * Sun Apr 18 2004 Joe Orton <[email protected]> 4.3.6-2
    - fix segfault on httpd SIGHUP (upstream #27810)
    * Fri Apr 16 2004 Joe Orton <[email protected]> 4.3.6-1
    - update to 4.3.6 (Robert Scheck, #121011)
    * Wed Apr  7 2004 Joe Orton <[email protected]> 4.3.4-11
    - add back imap subpackage, using libc-client (#115535)
    * Tue Mar 02 2004 Elliot Lee <[email protected]>
    - rebuilt
    * Wed Feb 18 2004 Joe Orton <[email protected]> 4.3.4-10
    - eliminate /usr/local/lib RPATH in odbc.so
    - really use system pcre library
    * Fri Feb 13 2004 Elliot Lee <[email protected]> 4.3.4-9
    - rebuilt
    * Mon Feb  2 2004 Bill Nottingham <[email protected]> 4.3.4-8
    - obsolete php-imap if we're not building it
    * Wed Jan 28 2004 Joe Orton <[email protected]> 4.3.4-7
    - gd fix for build with recent Freetype2 (from upstream)
    - remove easter egg (Oden Eriksson, Mandrake)
    * Wed Jan 21 2004 Joe Orton <[email protected]> 4.3.4-6
    - php-pear requires php
    - also remove extension=imap from php.ini in upgrade trigger
    - merge from Taroon: allow upgrade from Stronghold 4.0
    * Wed Jan 21 2004 Joe Orton <[email protected]> 4.3.4-5
    - add defattr for php-pear subpackage
    - restore defaults: output_buffering=Off, register_argc_argv=On
    - add trigger to handle php.ini upgrades smoothly (#112470)
    * Tue Jan 13 2004 Joe Orton <[email protected]> 4.3.4-4
    - conditionalize support for imap extension for the time being
    - switch /etc/php.ini to use php.ini-recommended (but leave
      variables_order as EGPCS) (#97765)
    - set session.path to /var/lib/php/session by default (#89975)
    - own /var/lib/php{,/session} and have apache own the latter
    - split off php-pear subpackage (#83771)
    * Sat Dec 13 2003 Jeff Johnson <[email protected]> 4.3.4-3
    - rebuild against db-4.2.52.
    * Mon Dec  1 2003 Joe Orton <[email protected]> 4.3.4-2
    - rebuild for new libxslt (#110658)
    - use --with-{mssql,oci8} for enabling extensions (#110482)
    - fix rebuild issues (Jan Visser, #110274)
    - remove hard-coded LIBS
    - conditional support for mhash (Aleksander Adamowski, #111251)
    * Mon Nov 10 2003 Joe Orton <[email protected]> 4.3.4-1.1
    - rebuild for FC1 updates
    * Mon Nov 10 2003 Joe Orton <[email protected]> 4.3.4-1
    - update to 4.3.4
    - include all licence files
    - libxmlrpc fixes
    * Mon Oct 20 2003 Joe Orton <[email protected]> 4.3.3-6
    - use bundled libgd (#107407)
    - remove manual: up-to-date manual sources are no longer DFSG-free;
      it's too big; it's on the web anyway; #91292, #105804, #107384
    * Wed Oct 15 2003 Joe Orton <[email protected]> 4.3.3-5
    - add php-xmlrpc subpackage (#107138)
    * Mon Oct 13 2003 Joe Orton <[email protected]> 4.3.3-4
    - drop recode support, symbols collide with MySQL
    * Sun Oct 12 2003 Joe Orton <[email protected]> 4.3.3-3
    - split domxml extension into php-domxml subpackage
    - enable xslt and xml support in domxml extension (#106042)
    - fix httpd-devel build requirement (#104341)
    - enable recode extension (#106755)
    - add workaround for #103982
    * Thu Sep 25 2003 Jeff Johnson <[email protected]> 4.3.3-3
    - rebuild against db-4.2.42.
    * Sun Sep  7 2003 Joe Orton <[email protected]> 4.3.3-2
    - don't use --enable-versioning, it depends on libtool being
    broken (#103690)
    * Sun Sep  7 2003 Joe Orton <[email protected]> 4.3.3-1
    - update to 4.3.3
    - add libtool build prereq (#103388)
    - switch to apache2handler
    * Mon Jul 28 2003 Joe Orton <[email protected]> 4.3.2-8
    - rebuild
    * Tue Jul 22 2003 Nalin Dahyabhai <[email protected]> 4.3.2-7
    - rebuild
    * Tue Jul  8 2003 Joe Orton <[email protected]> 4.3.2-6
    - use system pcre library
    * Mon Jun  9 2003 Joe Orton <[email protected]> 4.3.2-5
    - enable mbstring and mbregex (#81336)
    - fix use of libtool 1.5
    * Wed Jun 04 2003 Elliot Lee <[email protected]>
    - rebuilt
    * Tue Jun  3 2003 Joe Orton <[email protected]> 4.3.2-3
    - add lib64 and domxml fixes
    * Tue Jun  3 2003 Frank Dauer <[email protected]>
    - added conditional support for mssql module (#92149)
    * Fri May 30 2003 Joe Orton <[email protected]> 4.3.2-2
    - update the -tests and -lib64 patches
    - fixes for db4 detection
    - require aspell-devel >= 0.50.0 for pspell compatibility
    * Thu May 29 2003 Joe Orton <[email protected]> 4.3.2-1
    - update to 4.3.2
    * Fri May 16 2003 Joe Orton <[email protected]> 4.3.1-3
    - link odbc module correctly
    - patch so that php -n doesn't scan inidir
    - run tests using php -n, avoid loading system modules
    * Wed May 14 2003 Joe Orton <[email protected]> 4.3.1-2
    - workaround broken parser produced by bison-1.875
    * Tue May  6 2003 Joe Orton <[email protected]> 4.3.1-1
    - update to 4.3.1; run test suite
    - open extension modules with RTLD_NOW rather than _LAZYThe error is :
    Build complete.
    (It is safe to ignore warnings about tempnam and tmpnam).
    + with-oci8 enable-sigchild
    /var/tmp/rpm-tmp.3167: line 156: --with-oci8: command not found
    error: Bad exit status from /var/tmp/rpm-tmp.3167 (%build)
    RPM build errors:
        Bad exit status from /var/tmp/rpm-tmp.3167 (%build)If i modify spec like this :
    # Build /usr/bin/php-cgi with the CGI SAPI, and all the shared extensions
    pushd build-cgi
    build --enable-force-cgi-redirect \
          --enable-pcntl \
          with-imap=shared with-imap-ssl \
          enable-mbstring=shared enable-mbstr-enc-trans \
          --enable-mbregex \
          --with-ncurses=shared \
          --with-gd=shared \
          --enable-bcmath=shared \
          enable-dba=shared with-db4=%{_prefix} \
          --with-xmlrpc=shared \
          --with-ldap=shared \
          --with-mysql=shared,%{_prefix} \
          --with-mysqli=shared,%{_bindir}/mysql_config \
          --enable-dom=shared \
          --with-dom-xslt=%{_prefix} --with-dom-exslt=%{_prefix} \
          --with-pgsql=shared \
          --with-snmp=shared,%{_prefix} \
          --enable-soap=shared \
          --with-xsl=shared,%{_prefix} \
          enable-xmlreader=shared enable-xmlwriter=shared \
          --enable-fastcgi \
          --enable-pdo=shared \
          --with-pdo-odbc=shared,unixODBC,%{_prefix} \
          --with-pdo-mysql=shared,%{_prefix} \
          --with-pdo-pgsql=shared,%{_prefix} \
          --with-pdo-sqlite=shared,%{_prefix} \
    #      --with-pdo-oci=shared,$ORACLE_HOME \
          --with-oci8=shared,$ORACLE_HOME/lib \
           --enable-sigchild
    popdI'm getting :
    Build complete.
    (It is safe to ignore warnings about tempnam and tmpnam).
    + with-oci8=shared,/u01/app/oracle/product/10.2.0/db_1/lib enable-sigchild
    /var/tmp/rpm-tmp.11885: line 156: --with-oci8=shared,/u01/app/oracle/product/10.2.0/db_1/lib: No such file or directory
    error: Bad exit status from /var/tmp/rpm-tmp.11885 (%build)
    Please help.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

    and a bit further :
    diff:
    12,13c12,13
    < %define oci8_test_system_password tiger
    < %define oci8_test_connection_string localhost/lhome
    %define oci8_test_system_password oracle
    %define oci8_test_connection_string localhost/orcl2136,138c136,137
    < Requires: php-common = %{version}-%{release}, php-pdo
    < # oracle-instantclient-basic = %{ociver} php-pdo
    < #BuildRequires: oracle-instantclient-devel = %{ociver}
    Requires: php-common = %{version}-%{release}, oracle-instantclient-basic = %{ociver} php-pdo
    BuildRequires: oracle-instantclient-devel = %{ociver}339c338
    < \$user       = "scott";
    \$user = "system";487c486,487
    <       with-oci8 enable-sigchild
    --with-pdo-oci=shared,instantclient,/usr,%{ociver} \
    --with-oci8=shared,instantclient,/usr/lib/oracle/%{ociver}/client/lib --enable-sigchild496c496
    <       disable-pdo disable-xmlreader --disable-xmlwriter
    disable-pdo disable-xmlreader --disable-xmlwriter506,508c506,508
    < #export PDO_OCI_TEST_DSN=oci:dbname=%{oci8_test_connection_string}
    < #export PDO_OCI_TEST_USER=system
    < #export PDO_OCI_TEST_PASS=%{oci8_test_system_password}
    export PDO_OCI_TEST_DSN=oci:dbname=%{oci8_test_connection_string}
    export PDO_OCI_TEST_USER=system
    export PDO_OCI_TEST_PASS=%{oci8_test_system_password}571c571
    <     pdo pdo_mysql pdo_pgsql pdo_odbc pdo_sqlite; do
    pdo pdo_mysql pdo_pgsql pdo_odbc pdo_sqlite pdo_oci; do589c589
    < #cat files.pdo_oci >> files.oci8
    cat files.pdo_oci >> files.oci8rpmbuild -bi
    + '[' /var/tmp/php-root '!=' / ']'
    + rm -f /var/tmp/php-root/etc/httpd/conf/httpd.conf /var/tmp/php-root/etc/httpd/conf/httpd.conf.bak
    + /usr/lib/rpm/brp-compress
    + /usr/lib/rpm/brp-strip
    + /usr/lib/rpm/brp-strip-static-archive
    + /usr/lib/rpm/brp-strip-comment-note
    Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.40673
    + umask 022
    + cd /usr/src/redhat/BUILD
    + cd php-5.2.3
    + cd build-apache
    + export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
    + NO_INTERACTION=1
    + REPORT_EXIT_STATUS=1
    + MALLOC_CHECK_=2
    + unset TZ LANG LC_ALL
    + make test
    Build complete.
    Don't forget to run 'make test'.
    PHP Warning:  PHP Startup: gd: Unable to initialize module
    Module compiled with module API=20050922, debug=0, thread-safety=0
    PHP    compiled with module API=20060613, debug=0, thread-safety=0
    These options need to match
    in Unknown on line 0
    PHP Warning:  PHP Startup: ldap: Unable to initialize module
    Module compiled with module API=20050922, debug=0, thread-safety=0
    PHP    compiled with module API=20060613, debug=0, thread-safety=0
    These options need to match
    in Unknown on line 0
    PHP Warning:  PHP Startup: gd: Unable to initialize module
    Module compiled with module API=20050922, debug=0, thread-safety=0
    PHP    compiled with module API=20060613, debug=0, thread-safety=0
    These options need to match
    in Unknown on line 0
    PHP Warning:  PHP Startup: ldap: Unable to initialize module
    Module compiled with module API=20050922, debug=0, thread-safety=0
    PHP    compiled with module API=20060613, debug=0, thread-safety=0etc. etc...

  • Swapping XML Parser and XSLT to Xalan 2.7.0 - Not Working (OC4J 10.1.3)

    Hi-
    I'm trying to use the latest Xercies/Xalan classes in OC4J 10.1.3 as described in the How-To swap XML Parsers document:
    http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-swapxmlparser/doc/readme.html
    What I can see happening is that the oracle.xml shared library is successfully 'turned off', but the xalan libraries are not added. Instead, the default xml classes that are distributed with the JDK become visible. For instance, using a slightly modified version of the index.jsp page from the how-to, I get this result:
    ------ Output from JSP page ----------------
    TransformerFactory Instance: org.apache.xalan.processor.TransformerFactoryImpl
    Transformer Instance: org.apache.xalan.transformer.TransformerIdentityImpl
    Transformer Version: Xalan Java 2.4.1 (!!)
    What I expect is for that last line to say version 2.7.0, which is the version of the xalan.jar included in my shared library (code to add that line to the how-to shown below).
    I suspect what is happening is that the class loader is simply not letting a shared library override a system library - to do that you probably need to place the jar files in system endorsed directory.
    Has anyone gotten this how-to to work - actually replacing the XML parser/transform classes with the latest Xalan classes? Are you sure it is seeing the current version you placed in the shared library?
    Thanks,
    Eric Everman
    ---- My modified getXSLTDetails() method in the index.jsp page of the how-to -------
    <!-- Additional Import -->
    <%@ page import="org.apache.xalan.Version" %>
    public static String getXSLTDetails()
    Transformer transformer=null;
    TransformerFactory transformerfactory = TransformerFactory.newInstance();
         Version ver = null;
         String br = "<" + "br" + ">"; //otherwise the otn forum chocks on the break.
    try
    transformer = transformerfactory.newTransformer();
              ver = (Version) transformer.getClass().forName("org.apache.xalan.Version").newInstance();
              String ret_val =
                   "TransformerFactory Instance: "+transformerfactory.getClass().getName() + br +
                   "Transformer Instance: "+transformer.getClass().getName() + br;
              if (ver != null) {
                   ret_val = ret_val + "Transformer Version: " + ver.getVersion() + br;
              } else {
                   ret_val = ret_val + "Transformer Version not Available" + br;
              return ret_val;
    catch (Exception e)
    e.printStackTrace();
    return e.getMessage();
    }--------------------------------------------------------------------

    Steve - Thanks for responding on this.
    The Xalan SQL extension is built into Xalan. The most painless way to try it out is to run it via JEdit: www.jedit.org
    JEdit a OS Java application with a fairly painless install process (I'm assuming you already have a current JRE installed). Once its installed, you'll need to install the XSLT plugin - in JEdit goto Plugins | Plugin Manager | Install and pick the XSLT plugin. You'll need the Oracle JDBC classes on your classpath - this can be done by copying the oracle_jdbc4.jar into the [JEdit install directory]/jars directory.
    Restart to load that jar and you should be all set.
    I included a sample XSLT page at the bottom of this post that is somewhat of a template transform for the SQL extension - its more complicated then it needs to be, but it does some nice things with the results of the query. Save it as a file and make the appropriate changes to the 'datasource' parameter near the top of the file.
    Then in JEdit, open the file and make sure the XSLT plugin is visible (Plugins | XSLT | XSLT Processor Toggle - or alternately dock it in the window via global prefs). In the XSLT plugin: Allow the current buffer to be used as the source, Add that same file as a stylesheet via the '+' button, and pick a result file at the bottom. Then click the 'Transform XML' button.
    Troubleshooting: I seem to remember having some classpath errors when I tried this on windows, but others have had it work w/o issues. I do remeber that the XSLT plugin had a popup window that gave a pretty good explaintion of the problem, if it occurs. Also, for some reason the XSLT plugin will not create a new file for the output, so its often best to create a file first, then choose it as the output. Of course, you can always run a transformation from the command line or w/in an applicatoin. Full docs on the Xalan SQL extension can be found at: http://xml.apache.org/xalan-j/extensionslib.html#sql
    Here is my sample XSLT transform using the SQL extension:
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
              xmlns:sql="http://xml.apache.org/xalan/sql"
              xmlns:str="http://exslt.org/strings"
              xmlns:xalan="http://xml.apache.org/xalan"
              extension-element-prefixes="sql str xalan">
         <xsl:output indent="yes"/>
         <xsl:param name="driver">oracle.jdbc.OracleDriver</xsl:param>
         <xsl:param name="datasource">jdbc:oracle:thin:jqpublic/jqpublic@server_name:1521:dbname</xsl:param>
         <xsl:param name="jndiDatasource"><!-- jndi source for production use w/in enterprise environment --></xsl:param>
         <xsl:param name="debug">true</xsl:param>
         <xsl:variable name="connection" select="sql:new()"/>
         <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
         <xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'"/>
         <!--
              The query:  You could pass parameters in to this query to build a where clause, but here is a simple example.
              Also, its nice to wrap the query with a max row number to prevent huge results.
         -->
         <xsl:param name="query">
         select * from (
      SELECT
              'One' FIELD_1,
              'Two' FIELD_2
         FROM DUAL
         ) where rownum < 100
         </xsl:param>
         <!-- Essentially, create a XConnection object -->
         <xsl:variable name="connection" select="sql:new()"/>
         <xsl:template match="/">
        <xsl:choose><!-- Connect using JNDI -->
          <xsl:when test="$jndiDatasource != ''">
            <xsl:if test="not(sql:connect($connection, $jndiDatasource))">
              <xsl:message>Failed to connect to db via jndi connection</xsl:message>
              <xsl:comment>Failed to connect to db via jndi connection</xsl:comment>
              <xsl:if test="$debug = 'true'">
                <xsl:copy-of select="sql:getError($connection)/ext-error"/>
              </xsl:if>
            </xsl:if>
          </xsl:when>
          <xsl:otherwise><!-- Connect using connection string -->
            <xsl:if test="not(sql:connect($connection, $driver, $datasource))">
              <xsl:message>Failed to connect to db via driver/url connection</xsl:message>
              <xsl:comment>Failed to connect to db via driver/url connection</xsl:comment>
              <xsl:if test="$debug = 'true'">
                <xsl:copy-of select="sql:getError($connection)/ext-error"/>
              </xsl:if>
            </xsl:if>
          </xsl:otherwise>
        </xsl:choose>
              <!--
              The results of the query.  The rowset is brought back in 'streaming' mode,
              so its not possible to ask it for the number of rows, or to check for zero
              rows.  There is a switch to disable streaming mode, but this requires all
              rows to be brought into memory.
              -->
              <xsl:variable name="table" select="sql:query($connection, $query)"/>
              <xsl:if test="not($table)">
                   <xsl:message>Error in Query</xsl:message>
                   <xsl:copy-of select="sql:getError($connection)/ext-error"/>
              </xsl:if>
              <page>
                   <!-- Your xalan environment -->
                   <xsl:copy-of select="xalan:checkEnvironment()"/>
                   <!-- Build a bunch of metadata about the rows -->
                   <meta>
                        <cols>
                             <xsl:apply-templates select="$table/sql/metadata/column-header"/>
                        </cols>
                   </meta>
                   <rowset>
                        <!--
                             With streaming results, you must use the apply-temmplates contruct,
                             not for-each, since for-each seems to attempt to count the rows, which
                             returns zero.
                        -->
                        <xsl:apply-templates select="$table/sql/row-set"/>
                   </rowset>
              </page>
              <xsl:value-of select="sql:close($connection)"/><!-- Always close -->
         </xsl:template>
         <xsl:template match="row">
              <row>
                   <xsl:apply-templates select="col"/>
              </row>
         </xsl:template>
         <xsl:template match="column-header">
              <col>
                   <xsl:attribute name="type">
                        <xsl:value-of select="@column-typename"/>
                   </xsl:attribute>
                   <xsl:attribute name="display-name">
                        <xsl:call-template name="create-display-name"/>
                   </xsl:attribute>
                   <xsl:value-of select="@column-name"/>
              </col>
         </xsl:template>
         <!-- Convert column names to proper caps: MY_FIELD becomes My Field -->
         <xsl:template name="create-display-name">
              <xsl:variable name="col-name">
                   <xsl:for-each select="str:tokenize(@column-name, '_')">
                        <xsl:value-of
                             select="concat(translate(substring(., 1, 1), $lowercase, $uppercase), translate(substring(.,2), $uppercase, $lowercase), ' ')"/>
                   </xsl:for-each>
              </xsl:variable>
              <xsl:value-of select="substring($col-name, 1, string-length($col-name) - 1)"/>
         </xsl:template>
         <!-- Creates data columns named 'col' with a column-name attribute -->
         <xsl:template match="col">
              <col>
                   <xsl:attribute name="column-name"><xsl:value-of select="@column-name"/></xsl:attribute>
                   <xsl:value-of select="."/>
              </col>
         </xsl:template>
    </xsl:stylesheet>

  • Current date in xslt mapping

    Hi,
    I've tried to get the current date in my xslt mapping.
    I've used the following xslt coding:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date">
    <xsl:template match="/">
    <xsl:variable name="now" select="current-date()"/>
    </xsl:template>
    </xsl:stylesheet>
    In stylus studio everything is OK and i retrieve the current date.
    When i import the xslt in the mapping tool and test the mapping i get the following error:
    javax.xml.transform.TransformerException: com.sap.engine.lib.xml.util.NestedException: Function with name 'current-date' not found in context library. at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:251)
    While directly using the current date functionality within the message mapping everything is OK too.
    Does anyone know which date-functionality is used within the message mapping within the Integration Builder and/or wich mapping to be used in xslt for a working scenario?
    Thnx in advance!

    Ok thnx, these anwers where very helpfull for me to solve this problem.
    I've awarded points for all your answers.
    For anyone interested later on, I needed the date in my XSLT mapping in the following format ddMMMyy.
    Finnally I used the following xslt to achieve this:
         <xsl:template name="currentDate" xmlns:cal="java:java.util.GregorianCalendar">
              <xsl:variable name="now" select="cal:getInstance()" />
              <xsl:variable name="day" select="cal:get($now, 5)" />
              <xsl:variable name="month" select="cal:get($now, 2) + 1" />
              <xsl:variable name="year" select="substring(string(cal:get($now, 1)), 3, 2)" />
              <xsl:variable name="month">
                   <xsl:choose>
                        <xsl:when test="$month=1">Jan</xsl:when>
                        <xsl:when test="$month=2">Feb</xsl:when>
                        <xsl:when test="$month=3">Mar</xsl:when>
                        <xsl:when test="$month=4">Apr</xsl:when>
                        <xsl:when test="$month=5">May</xsl:when>
                        <xsl:when test="$month=6">Jun</xsl:when>
                        <xsl:when test="$month=7">Jul</xsl:when>
                        <xsl:when test="$month=8">Aug</xsl:when>
                        <xsl:when test="$month=9">Sep</xsl:when>
                        <xsl:when test="$month=10">Oct</xsl:when>
                        <xsl:when test="$month=11">Nov</xsl:when>
                        <xsl:when test="$month=12">Dec</xsl:when>
                        <xsl:otherwise>INVALID MONTH</xsl:otherwise>
                   </xsl:choose>
              </xsl:variable>
              <xsl:choose>
                   <xsl:when test="$day &lt; 10">
                        <xsl:value-of select="concat(concat(concat('0',$day), $month), $year)"/>
                   </xsl:when>
                   <xsl:otherwise>
                        <xsl:value-of select="concat(concat($day, $month), $year)"/>
                   </xsl:otherwise>
              </xsl:choose>
         </xsl:template>

  • XSLT Enhancement with Java, Tokenize Functionality

    I tried the following requirement using EXSLT with no luck. Is there any other alternative to tokenize in XSLT 1.0.
    The syntax i have here is  
    <xsl:for-each select="tokenize($this/Field1,',')">
           <xsl:variable name="f1v" select="."/>
         <xsl:for-each select="tokenize($this/Field2,'\|')">
              <xsl:variable name="f2v" select="."/>
              <xsl:for-each select="tokenize($this/Field3,'\|')">
                        <xsl:variable name="f3v" select="."/>
    There are multiple for-each based on tokens
    I am leaning towards to Enhancing XSLT with Java Function. As i have less experience with Java, can anybody help me with the code that can be used by XSLT for Tokenize functionality.
    I have written something like following. I still have errors to fix. But i am not sure about having resultSet or return at the end, to make sure all the tokens were sent to XSLT.
    public class MyStringToken
         public static void main(String [] args)
              String str = "sssd;wwer;ssswwwwdwwwwwwwwwww;wwwwe";
              String delimiter = ";";
              MyStringToken my = new MyStringToken();
              my.getTokens(str,delimiter);
         public void getTokens(String str,String delimiter)
              StringTokenizer st = new StringTokenizer(str,delimiter);
              while(st.hasMoreElements())
                   try
                        String delString = new String(st.nextElement().toString());
                        return (delString);
                   catch(Exception e)
                        e.printStackTrace();
    Any help is appreciated

    Hi,
    I have been searching about, and I have found the next example that maybe can help you, It's a template to tokenize in XSLT 1.0 from the web [http://stackoverflow.com/questions/1018974/tokenizing-and-sorting-with-xslt-1-0]
    <xsl:template name="tokenize">
      <xsl:param name="string" />
      <xsl:param name="delimiter" select="' '" />
      <xsl:choose>
        <xsl:when test="$delimiter and contains($string, $delimiter)">
          <token>
            <xsl:value-of select="substring-before($string, $delimiter)" />
          </token>
          <xsl:text> </xsl:text>
          <xsl:call-template name="tokenize">
            <xsl:with-param name="string"
                            select="substring-after($string, $delimiter)" />
            <xsl:with-param name="delimiter" select="$delimiter" />
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <token><xsl:value-of select="$string" /></token>
          <xsl:text> </xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
    Also I have found the next example of use tokenize in EXSLT from [http://exslt.org/str/functions/tokenize/index.html] It can be that inI your tests you are not using "str:tokenize", no?
    <xsl:template match="a">
       <xsl:apply-templates />
    </xsl:template>
    <xsl:template match="*">
       <xsl:value-of select="." />
          <xsl:value-of select="str:tokenize(string(.), ' ')" />
       <xsl:value-of select="str:tokenize(string(.), '')" />
       <xsl:for-each select="str:tokenize(string(.), ' ')">
          <xsl:value-of select="." />
       </xsl:for-each>
       <xsl:apply-templates select="*" />
    </xsl:template>
    I hope that helps you.
    Best.
    Jorge

  • Current datetime in xslt

    Hi ,
    I want to get the current datetime during my xlst tranform. I used the below codes but can not get it .
    xslt 1.0
    <xsl:stylesheet ...
    xmlns:ex="http://exslt.org/dates-and-times" extension-element-prefixes="ex">
    <xsl:value-of select="ex:date-time()"/> ...
    </xsl:stylesheet>
    error i got: the function date-time() can not be found.
    xlst 2.0
    <xsl:value-of select="current-dateTime()"/>
    error i got : the function current-dateTime() can not be found.
    Does anyone know how i can solve this problem? Any example or suggestion is welcomed.
    Thanks in advance.
    Dennis

    If that piece of xslt has any chance to succeed, you have to do either one of the modification.
    [1] Either you change the version attribute to 2.0. Oracle xslt processor is one of the earliest to get xslt 2.0 support at the time it is still a working draft. I think current-dateTime() xslt 2.0 function should be supported.
    <xsl:stylesheet version="2.0"[2] There are quite a bit of oracle proprietary extensions there. Hence, if you understand the suggestion(s) all along, it should do the task without appealing to the other extensions which may have their own functions to get the current date-time. This is how you should do for a test, keeping the version="1.0" unchanged.
    <xsl:stylesheet version="1.0"
    xmlns:date="http://www.oracle.com/XSL/Transform/java/java.util.Date"
    xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:ehdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions"
    xmlns:ns0="http://www.example.org"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
    xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
    xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
    exclude-result-prefixes="xsl xsd ns0 xref xp20 bpws ora ehdr orcl ids hwf date ">
    <xsl:template match="/">
    ...etc
    <TimeStamp><xsl:value-of select="date:toString(date:new())"/></TimeStamp>
    ...etc
    </xsl:template>

  • Error in Current Date in XSLT Mapping

    Hi Experts,
      I am having a problem in Dispaying the current Date and Time ( or System Date and Time ) .As per my Project Requirements I need do XSLT mapping
    My XSLT Mapping Looks like
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://XYZ.eu.ABC.com">
    <xsl:template match="/">
    <a:A2A>
        <a:PNo>
             <xsl:value-of select="Path/Path/PNO"/>
       </a:PNo>
       <a:Rev>
             <xsl:value-of select="Path/Path/REVISION"/>
       </a:Rev>
       <a:Current Date>
             <xsl:value-of select= ""/>
       </a:Current Date>
       <a:Current Time>
             <xsl:value-of select= ""/>
       </a:Current Time>
    </xsl:template>
    </xsl:stylesheet>
    Can any one please let me is there is any function to  dispaly the Current Date and time.

    Hi ..
    I just tried executing both the maps.. Both of them excutes well in both XMLSpy and Stylus Studio .. But having below problems in Executing in PI
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
    <xsl:template match="/aaa">
    <xxx>
    <xsl:value-of select="current-dateTime()"/>
    </xxx>
    </xsl:template>
    </xsl:stylesheet>
    Then I got the error
    javax.xml.transform.TransformerException: com.sap.engine.lib.xml.util.NestedException: Function with name 'current-dateTime' not found in context library.
    with
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:datetime="http://exslt.org/dates-and-times"
    exclude-result-prefixes="datetime">
    <xsl:template match="/">
    <currtime>
    <xsl:value-of select="datetime:dateTime()" />
    </currtime>
    </xsl:template>
    </xsl:stylesheet>
    I have got
    Unable to find resource http://exslt/org/dates-and-times.class (http://NAMESPACE Name) in the following software component versions: 0fe18820-410a-11dd-979b-dc8591374305

  • XSLT 1.0 current date

    Hi,
    I had searched on SDN already and tried few codes without success.
    If somebody had already worked on current date function in XSLT mapping version 1.0, please share it.
    Thanks in advance,
    Venkat.
    PS: links I already referred.
    http://www.w3.org/TR/xpath-functions/#func-current-dateTime
    Error in Current Date in XSLT Mapping
    Re: XSLT Mapping - Getting current date in XSLT version 1.0
    Re: Current date in xslt mapping

    Hi,
    XSLT 1.0 does not provide any standard way to get the current date/time. You can call an extension function to do it (depends on your processor), or you can pass it to the stylesheet as the value of a parameter.
    current-date() and current-time(). For XSLT 1 you'll have to use the dates-and-times EXSLT extension package. Here's a usage example for XSLT 1:
    <xsl:stylesheet    xmlns:ex="http://exslt.org/dates-and-times"      extension-element-prefixes="ex">
            <xsl:value-of select="ex:date-time()"/>
    </xsl:stylesheet>
    Refer this for
    http://www.exslt.org/date/index.html

  • 856 xslt Mapping question ...

    I was asked in the jdev forum to post this here as well :)
    Ramesh,
    I hate to keep bugging everyone but i have another question.
    I am trying to transform data into an X-12 856 document (outbound). I have most of the looping and everything working. My only issue is how do you handle the parent child relationships in the HL01/02 ? Since xpath does not let you increment a variable how can you keep the count of the HL loops let alone tell the HL02 (parent's HL01) We are using a SOPI scenario and the items need to be subordinate to the appopriate pack level.
    I really appreciate all the time and awnsers you have given me so far :)
    Thank you in advance,
    Jaden

    Hi,
    There is a way to handle x=x+1 in XSLT....here it is..assume u want to sum all the elements of an arraylist in an XML...create a temporary variable(TransCountSumVar) and do a foreach and group them in one more variable (Transactions_Count2)
    <xsl:variable name="TransCountSumVar">
                  <xsl:for-each select="/ns1:TotalDate/ns1:price">
                                   <Transactions_Count2>
                      <xsl:value-of select="number(ns1:price)"/>
                                  </Transactions_Count2>
                  </xsl:for-each>
    </xsl:variable>now get the sum of those in Transactions_Count2 as follows
    <xsl:variable name="TComp" select="sum(exsl:node-set($TransCountSumVar)/Transactions_Count2)"/>where Tcomp is another variable with holds the final sum and be sure to the the namespace xmlns:exsl="http://exslt.org/common" in XSL at name space declarations.

  • Imported XSLT cannot create attributes for generated XML element

    I have two xslts. One imports the other.
    The imported xslt creates XML elements with attributes and this XML is stored in a variable in the main stylesheet
    If I perform the transformation with JRE prior to 1.6.0.18 then all works fine
    If I use 1.6.0.18 or 1.6.0.19 then the attributes aren't added.
    If I add attributes in the main xslt it works fine or if I output the element directly instead of first storing it in a variable then it also works fine.
    Problem seems to be when you try to add attributes from an imported stylesheet and store the generated element in a variable.
    Below two stylesheets to illustrate :
    First MainStylesheet.xsl
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Copyright 1993-2005 Seagull Software Systems, Inc. -->
    <xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:exsl="http://exslt.org/common"
    extension-element-prefixes="exsl"
    exclude-result-prefixes="xs">
    <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" />
    <xsl:import href="innerstylesheet.xsl"/>
    <xsl:template match="/TestData">
    <xsl:variable name="generatedElementXml">
    <xsl:call-template name="generateElement">
    <xsl:with-param name="s">testValue</xsl:with-param>
    </xsl:call-template>
    </xsl:variable>
    <xsl:for-each select="exsl:node-set($generatedElementXml)">
    *** GeneratedElementXML {<xsl:text>
    </xsl:text><xsl:copy-of select="*"></xsl:copy-of>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>Next innerstylesheet.xsl
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:exsl="http://exslt.org/common"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    extension-element-prefixes="exsl" >
            <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
            <xsl:template name="generateElement">
                       <xsl:param name="s"/>
                    <TestElement testAttribute="$s" />
            </xsl:template>
    </xsl:stylesheet>The result output by jres before 1.6.0.18 is :
    <?xml version="1.0" encoding="UTF-8"?>
                   *** GeneratedElementXML {
              <TestElement xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" testAttribute="testValue"/>
                   }          The result output by jres since 1.6.0.18 is :
    <?xml version="1.0" encoding="UTF-8"?>
                   *** GeneratedElementXML {
              <TestElement xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                   }          Note : the 'testAttribute' attribute is missing

    Have found the difference in the code
    In both JRE1.6.0_17 & JRE1.6.0_18, the class 'com.sun.org.apache.xalan.internal.xsltc.dom.AdaptiveResultTreeImpl' has the following method
    public void addUniqueAttribute(String qName, String value, int flags)
            throws SAXException
            addAttribute(qName, value);
        }In JRE1.6.0_17 the next method is
    public void addAttribute(String name, String value)
         if (_openElementName != null) {
             _attributes.add(name, value);
         else {
             BasisLibrary.runTimeError(BasisLibrary.STRAY_ATTRIBUTE_ERR, name);
        }In JRE1.6.0_18 the next method is
    public void addAttribute(String uri, String localName, String qname,
                String type, String value)
         if (_openElementName != null) {
             _attributes.addAttribute(uri, localName, qname, type, value);
         else {
             BasisLibrary.runTimeError(BasisLibrary.STRAY_ATTRIBUTE_ERR, qname);
        }Note - the addAttribute method has additional parameters in JRE1.6.0_18 but the call from addUniqueAttribute wasn't updated.
    So in JRE1.6.0_18 addUniqueAttribute actually invokes the following method in the base package com.sun.org.apache.xml.internal.serializer.EmptySerializer
    public void addAttribute(String name, String value)
            aMethodIsCalled();
    void aMethodIsCalled()
            // throw new RuntimeException(err);
            return;
        }and as you can see this does nothing. Hence the fact that the attribute isn't added.

  • Current Date in WPC webform

    Hi Community,
    I need to get Current date into the Custom WPC webform. I used the following code in my XSL:
    <xsl:value-of disable-output-escaping="yes" select="date:date()"/>
    and the NameSpace: xmlns:date="http://exslt.org/dates-and-times"
    I am getting the following error: com.sap.engine.lib.xml.util.NestedException: Could not load class: http://exslt.org/dates-and-times required for extension library. -> java.lang.ClassNotFoundException: http://exslt.org/dates-and-times
    How should I go about this?
    Regards,
    JK

    Hi Vishal,
    Getting the following error:
    An error occurred while generating a preview : com.sap.engine.lib.xml.util.NestedException: Could not load class: http://exslt.org/dates-and-times required for extension library. -> java.lang.ClassNotFoundException: http://exslt.org/dates-and-times 
    P.S: I tired even: http://exslt.org/Dates And Times
    Regards
    JK

Maybe you are looking for

  • My MacBook Pro wont start

    I know this has probably been asked a million times, Im not sure if this has anything to do with whats up with my mac but i just installed the latest update and once I shut it down and rebooted it after a few days nothing happened other than it kept

  • Alternatives to PowerShell automation of Excel (Scheduled Task) in a Windows Server 2012 R2 world

    I have a handful of PowerShell scripts that ran as Scheduled Tasks on an old Windows 2008 SP2 server, which output reports as Excel workbooks with multiple worksheets, via a COM object. After migrating these scripts to a new Windows 2012 R2 server, t

  • HELP PLEASE - WHATS WRONG WITH THIS CODE

    Hi. I get this message coming up when I try to compile the code, run: java.lang.NullPointerException at sumcalculator.SumNumbers.<init>(SumNumbers.java:34) at sumcalculator.SumNumbers.main(SumNumbers.java:93) Exception in thread "main" Java Result: 1

  • How to add a border to ListView

    I want to add a border to a ListView control. Using the WS_BORDER window style has worked: HWND hListView = CreateWindowEx(0, WC_LISTVIEW, "", WS_CHILD | LVS_REPORT | WS_VISIBLE | WS_BORDER, 10, 10, 320, 200, hWnd, 0, hInstance, NULL); But I am not s

  • I have an error message in dreamweaver that doesn't permit me to preview in firefox.

      Unable to  launch Macintosh HD:System:Library:Automator:LaunchApplication.action:Contents:Resources:no.lproj.:main.ni b.  Please be sure that this application exists and that there is enough memory to run it.