[prev in list] [next in list] [prev in thread] [next in thread] 

List:       james-dev
Subject:    [jira] Commented: (JAMES-343) James does not compile using Sun JDK 5.0
From:       "Vincenzo Gianferrari Pini (JIRA)" <server-dev () james ! apache ! org>
Date:       2005-01-11 11:03:12
Message-ID: 1498750920.1105441392712.JavaMail.jira () ajax ! apache ! org
[Download RAW message or body]

     [ http://issues.apache.org/jira/browse/JAMES-343?page=comments#action_57500 ]
     
Vincenzo Gianferrari Pini commented on JAMES-343:
-------------------------------------------------

In currrent SVN branch_2_1_fcs, a registration of the \
org.bouncycastle.jce.provider.BouncyCastleProvider provider is automatically done by \
org.apache.james.security.KeyHolder when the SMIMESign mailet is initialized. The \
BouncyCastleProvider provider is needed as such mailet needs some SMIME \
functionalities wich are not available with the SunJCE provider (at least using jre \
1.3x and 1.4x). The registration is done this way for convenience, but it could also \
be done "statically" adding a  \
"security.provider.n=org.bouncycastle.jce.provider.BouncyCastleProvider" line to the \
appropriate (JRE or JSDK) <jre>/lib/security/java.security file.

But this is specific to SMIMESign mailet; SSL does not need BouncyCastle. Let's \
explain. There are two separate actions/things to deal with:

a) The appropriate/needed security provider(s) must be "registered" either statically \
in the java.security file or dinamically through a \
java.security.Security.addProvider() call (see \
org.apache.james.security.KeyHolder.InitJCE.init() as an example, where the call is \
done in a static method - don't confuse between static and dynamic here).

b) When the registration(s) is/are done, the related jars must be found somewhere.

Now the situation is as follows:

1) SSL support needs a security provider. It can be SunJCE or some other \
(BouncyCastle works quite well).

2) SMIMESign needs BouncyCastle (because of some SMIME functionality).

3) Both JSDK and JRE 1.4x (and I suppose also 1.5) come by default with appropriate \
security.provider.n static registration entries in the \
<jre>/lib/security/java.security file for the Sun provider.

4) Both JSDK and JRE 1.4x (and I suppose also 1.5) have the appropriate Sun security \
provider jars in the <jre>/lib directory.

5) Avalon registers dynamically (see JAMES-348) the Sun providers; probably it was \
needeed for jre 1.3.

6) In the current SVN branch_2_1_fcs, hence in the next coming James release, \
org.apache.james.security.KeyHolder registers the BouncyCastle provider when the \
SMIMESign mailet is started.

7) Avalon *loads* (it's a fact) from <james>/lib, not from <jre>/lib, so the jars \
needed mus be placed in <james>/lib. I mean <james>/lib, not \
<james>/apps/james/SAR-INF/lib.

8) No one (as far as I know - am I wrong?) including ASF, is allowed to distribute \
java run-time code from Sun in its own installations, so no Sun security provider \
jars are by default in the <james>/lib, and should be put there only manually.

9) In the current SVN branch_2_1_fcs, hence in the next coming James release, the \
BouncyCastle provider jars are put in <james>/lib by the James install process, with \
the appropriate BC license file. The jars are choosen in order to have both jre 1.3x \
and 1.4x compatibility; 1.5 has never been tested.

--------------

Now the options:

A. If you are using the latest SVN branch_2_1_fcs release:

A.1 If you want to use SMIMESign, just put the appropriate entry in config.xml.

A.2 If you want to use SSL, put the appropriate entries in config.xml and:

A.2.1 If you have activated SMIMESign, SSL will work using the BouncyCastle provider. \
This is my own setup.

A.2.2 If you don't activate SMIMESign, either:

A.2.3 Copy the appropriate Sun provider jars to <james>/lib, or

A.2.4 Do a dynamic registration of the BC provider somewhere, for example issuing a \
call to org.apache.james.security.KeyHolder.InitJCE.init() from \
org.apache.james.James.initialize().

B. If you are using James 2.2.0- release, and want to use SSL:

B.1 Copy the appropriate Sun provider jars to <james>/lib, or

B.2 Copy some other provider jars to <james>/lib, and do s static or dynamic \
registration.

I think that all this applies also to jre 1.5, but it should be tested anyhow. Check \
the security.provider.n static registration entries in the \
<jre>/lib/security/java.security file: the names may have changed(?).


This comment came out very monotonous, but hopefully is clear.

> James does not compile using Sun JDK 5.0
> ----------------------------------------
> 
> Key: JAMES-343
> URL: http://issues.apache.org/jira/browse/JAMES-343
> Project: James
> Type: Bug
> Versions: 2.2.1
> Environment: Sun JDK 5.0
> Ant 1.6.2
> Reporter: Jeff Keyser
> Priority: Trivial

> 
> Several of the source files use a variable called "enum" for Enumerators.  This is \
> a new keyword in Java 1.5, and the Sun JDK 5.0 compiler fails when it sees these \
> variables. Please add "source='1.4'" (or whichever language version is officially \
> supported) to the "javac" task in build.xml. Changing the names of these variables \
> would also work, but the "source" attribute provides better forward compatability \
> as the Java language evolves.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic