You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jakarta.apache.org by "Joerg Schaible (JIRA)" <ji...@apache.org> on 2010/05/19 09:33:53 UTC

[jira] Created: (BSF-32) BSF 3.0 incompatible with JEXL2

BSF 3.0 incompatible with JEXL2
-------------------------------

                 Key: BSF-32
                 URL: https://issues.apache.org/jira/browse/BSF-32
             Project: BSF
          Issue Type: Bug
          Components: BSF-3.x
    Affects Versions: BSF-3.0
            Reporter: Joerg Schaible
            Priority: Critical


BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Sebb (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12871193#action_12871193 ] 

Sebb commented on BSF-32:
-------------------------

This is one of the reasons why I started a vote thread to remove the bsf-engines jar from BSF 3 going forward.

As part of the removal, I will of course update the Release Notes and other relevant documentation to explain how to make engines available.

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Issue Comment Edited: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Sebb (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869073#action_12869073 ] 

Sebb edited comment on BSF-32 at 5/19/10 10:30 AM:
---------------------------------------------------

AFAIK, the Jexl factory provided by BSF IS optional - there's no need to include the bsf-engines jar which define the factories.

The problem stems from the SPI lookup phase - there is only one bsf-engines jar which contains all the factories.

I'm not sure it's possible to fix this without splitting the bsf-engines jar file into multiple jars, one for each language.

Maybe the best would be to drop the bsf-engines jar altogether.

People can then download only the engines that they want to appear on the classpath.

      was (Author: sebb@apache.org):
    AFAIK, the Jexl factory provided by BSF IS optional - there's no need to include the engines jar which define the factories.

The problem stems from the SPI lookup phase - AFAIK one can only have a single properties file.

I'm not sure it's possible to fix this.

  
> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Sebb (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869254#action_12869254 ] 

Sebb commented on BSF-32:
-------------------------

If only that were true.

The Sun Java 1.6 ScriptManager class does not handle NoClassDefFoundError, so if the factory class references classes in the engine, and the engine is not present, the constructor throws an Error and no factories are available.

This is why the parent POM has to include a reference to rhino for Java 1.6+.

The Apache BSF implementation ignores such errors and carries on, so at least the other factories will still be available.
AFAICT, the JSR-223 spec. does not say what to do when a factory cannot be instantiated, so both behaviours are allowed.

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Sebb (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869649#action_12869649 ] 

Sebb commented on BSF-32:
-------------------------

[BSF does not actually provide any engines. It bundles some 3rd party factories.]

Since BSF is targetted at providing JSR-223 support for Java 1.4/1.5, we cannot change the API in any of the javax.script packages - it has to remain compatible with Java 1.6+.

The bsf-api.jar has to contain just the javax.script package implementation, which has to conform to the JSR-223 spec.

Note that clients using JSR-223 on Java 1.6+ will not use the BSF3 implementation, the version in the Java installation takes precedence.
[I'm in the process of updating the command-line client to detect & report which implementation is being used.]

So even if we were allowed to implement different behaviour for the javax.script package, it would not get us very far.

However, one can of course provide utility methods as part of bsf-utils which build on the JSR-223 API, which is what I am suggesting with BSF-33.
The bsf-utils could read a bsf.properties file to control its behaviour.

Since bsf-utils uses the JSR-223 standard (as implemented by bsf-api and Java 1.6+) it will work with all versions of Java from 1.4 upwards, whether bsf-api is used or not.

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Joerg Schaible (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869215#action_12869215 ] 

Joerg Schaible commented on BSF-32:
-----------------------------------

Well, SPI managers normally ignore all services that cannot be instantiated. If each of the factories would access a class that is only available in that specific version, it might internally fail with a LinkageError. However, this would mean a very close look to all the packages that do not deliver yet a JSR 233 implemnetation on their own ...

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Joerg Schaible (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869588#action_12869588 ] 

Joerg Schaible commented on BSF-32:
-----------------------------------

The point is that you *want* both on the class path, because you like to use Jexl2 and the *other* engines provided by BSF. Since BSF uses one single ScriptEngineFactory we may use a configuration file that allows you to turn off explicitly a ScriptEngine that is normally delivered by BSF.

bsf.porperties:
engine.jsr233.jexl=off
engine.jsr233.groovy=off

This would allow the upgrade to newer artifacts that deliver such an engine on their own now, while it is still possible to use the remaining engines provided by BSF.

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Sebb (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12870398#action_12870398 ] 

Sebb commented on BSF-32:
-------------------------

I'm inclined to resolve this issue as "Won't Fix" (or possibly invalid) because it's not a problem with the BSF3 implementation.

OK?

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Sebb (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869561#action_12869561 ] 

Sebb commented on BSF-32:
-------------------------

To return to the original issue - can you confirm whether the problem is resolved, i.e. if bsf-engines is not on the classpath, then you can access Jexl2 OK?

BTW, note that Jexl2 supports the following names: "JEXL", "Jexl", "jexl" whereas I think the Jexl1 factory in bsf-engines only supports "jexl".
We should probably add "jexl2" to the JEXL2 factory.

If so, then hopefully we can resolve this issue.

I've raised BSF-33 to record the enhancement to search for engine by version.

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Sebb (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869073#action_12869073 ] 

Sebb commented on BSF-32:
-------------------------

AFAIK, the Jexl factory provided by BSF IS optional - there's no need to include the engines jar which define the factories.

The problem stems from the SPI lookup phase - AFAIK one can only have a single properties file.

I'm not sure it's possible to fix this.


> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Joerg Schaible (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869300#action_12869300 ] 

Joerg Schaible commented on BSF-32:
-----------------------------------

That's really stupid :-/

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org


[jira] Commented: (BSF-32) BSF 3.0 incompatible with JEXL2

Posted by "Joerg Schaible (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BSF-32?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12871026#action_12871026 ] 

Joerg Schaible commented on BSF-32:
-----------------------------------

I had a look at the build and understand now, that the engine artifact is simply assembled stuff and therefore no configuration can be used at all. However, because simply adding jexl2 to the classpath will break the script engine, further documentation for the bsf-engine artifact should be available. It must be clear for a user, that this artifact will simply enable all the engines provided by https://scripting.dev.java.net/, that all those dependencies are optional and have to be added manually and that using newer versions of the depednencies may break compatibility if they provide meanwhile an own implementation of the JavaScriptFactory. If a user still wants also support for one of those languages he has to build his own engine artifact that does not include an entry for the replaced ScriptEnginFactory in the META-INF/services.

> BSF 3.0 incompatible with JEXL2
> -------------------------------
>
>                 Key: BSF-32
>                 URL: https://issues.apache.org/jira/browse/BSF-32
>             Project: BSF
>          Issue Type: Bug
>          Components: BSF-3.x
>    Affects Versions: BSF-3.0
>            Reporter: Joerg Schaible
>            Priority: Critical
>
> BSF 3.0 has an optional dependency to Jexl 1.x and provides a ScriptEngineFactory for Jexl as service provider. Since version 2.x Jexl contains its own ScriptEngineFactory implementation. Both factories register the name "JEXL". If BSF 3.0 and Jexl 2.x are both in the classpath and the factory from BSF is found first, Jexl support fails with exceptions. Main problem is, that the factory provided by BSF is *not* optional, only the dependency. You may run into similar problems with Groovy. Version 1.7 delivers also its own factory (don't know, what the first Groovy version was with JSR 233 support). Basically it means you can either use languages that provide JSR 233 support on its own *or* you use BSF 3.x (excluding all languages that do not support this JSR directly).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org