I can put in a check that will SDE unless at least Java 8 if a base64 layering 
is used.

I am a little concerned that a serialized parser/unparser will have objects 
stored in it, the construction of which will make calls to Java-8-only base64 
code.  So it will fail on reloading the schema. We can try to avoid this by 
treatning the Base64 objects as if they were non-serializable - so they get 
constructed lazily after the reloading is done. But this is a maintenance 
headache of course.

I suppose it is ok to document a restriction that Java 7 cannot use 
pre-compiled schemas created with Java 8. Or perhaps can't use pre-compiled 
schemas at all?

From: Steve Lawrence <slawre...@apache.org>
Sent: Tuesday, April 10, 2018 8:37:53 AM
To: dev@daffodil.apache.org; Mike Beckerle
Subject: Re: Java 7 and Base64

Considering that Java 7 was end of life'd 3 years ago and we don't test
at all on Java 7, I think it's reasonable to continue requiring Java 8,
especially if it makes our lives easier for coding.

Perhaps we can say that Base64 layering is never supported in Java 7,
regardless of the errorOnUnsupportedJavaVersion tuanble, and have a
runtime Java version check that will fail with an error if any base64
layering exists in the schema?

- Steve

On 04/10/2018 08:12 AM, Mike Beckerle wrote:
> So we recently added a feature allowing Daffodil to run on Java 7, with the 
> disclaimer that we don't test on Java 7.
> Well I am working on adding "layering" aka "base64" support to Daffodil, and 
> Java 8 introduced a very nice java.util.Base64 class which is very easy to 
> use.
> What is our policy on Java 8-dependency in Daffodil releases post 2.1.0.
> Should I go back to implementing this the Java 7 way using 
> javax.mail.internet.MimeUtility?
> ...mike beckerle

Reply via email to