Can't you do something like this to force the rt.jar to be 1.4?

http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javac.html

% javac -target 1.4 -bootclasspath jdk1.4.2/lib/classes.zip -extdirs
"" OldCode.java


On Dec 20, 2007 10:11 AM, Simon Kitching <[EMAIL PROTECTED]> wrote:
> This problem happens no matter what java versions are being talked about. 
> When the aim is to support java N, but the latest is java X then it is 
> difficult to prevent accidents.
>
> Compiler property "source" prevents the use of *language features* that are 
> not supported in the specified version
>
> Compiler property "target" ensures that the generated bytecode is readable by 
> the specified version.
>
> But nothing checks that you are using only APIs provided by the runtime 
> library distributed by that version. Currently the only way to do that is to 
> compile against the runtime lib distributed with that version (which 
> basically means *using* that version to compile).
>
> The CLIRR project does binary-compatibility testing on jars. I have always 
> suspected that it would only need a minor enhancement to generate an "API 
> summary" for the rt.jar of version N of java, and then to be able to 
> automatically check that an app only makes calls to the APIs defined by that 
> summary file. Just need that old 40 hour day in order to get time to do it :-)
>
> Cheers,  Simon
>
> ---- Matthias Wessendorf <[EMAIL PROTECTED]> schrieb:
> > I'd be fine with Java5 instead of 1.4
> >
> > -M
> >
> > On Dec 20, 2007 3:37 PM, Martin Marinschek <[EMAIL PROTECTED]> wrote:
> > > yes, that is what I'm saying.
> > >
> > > Saying that this is a bug is maybe pushing it too hard... the
> > > attributes just translate into a compiler language level - that does
> > > not mean that someone automagically knows all API changes from 1.4 to
> > > 1.6 and automatically applies them. The only chance for you to catch
> > > all these problems is to actually compile with 1.4.
> > >
> > >
> > > regards,
> > >
> > > Martin
> > >
> > > On 12/20/07, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
> > > > So,
> > > >
> > > > you say that a configuration like:
> > > >
> > > > <plugin>
> > > >   <groupId>org.apache.maven.plugins</groupId>
> > > >   <artifactId>maven-compiler-plugin</artifactId>
> > > >   <inherited>true</inherited>
> > > >   <configuration>
> > > >     <source>1.5</source>
> > > >     <target>1.5</target>
> > > >   </configuration>
> > > > </plugin>
> > > >
> > > >
> > > > does allow you to use JDK6 methods?
> > > > That would be a bad bug, IMO.
> > > >
> > > > -M
> > > >
> > > > On Dec 20, 2007 3:22 PM, Martin Marinschek <[EMAIL PROTECTED]>
> > > > wrote:
> > > > > Yes, so 1.5/1.6 syntax will correctly be found and disallowed. But API
> > > > > changes are not checked for, so a newly added method will not be
> > > > > found.
> > > > >
> > > > >
> > > > > regards,
> > > > >
> > > > > Martin
> > > > >
> > > > > On 12/20/07, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
> > > > > > On Dec 20, 2007 3:19 PM, Matthias Wessendorf <[EMAIL PROTECTED]> 
> > > > > > wrote:
> > > > > > > I thought the compile was configured for source/target not 1.5 || 
> > > > > > > 1.6
> > > > > >
> > > > > > (the compiler plugin)
> > > > > >
> > > > > > >
> > > > > > > -M
> > > > > > >
> > > > > > >
> > > > > > > On Dec 20, 2007 3:18 PM, Martin Marinschek
> > > > <[EMAIL PROTECTED]>
> > > > > > wrote:
> > > > > > > > No - if you are building with 1.6, it won't. Only the language 
> > > > > > > > level
> > > > is
> > > > > > checked.
> > > > > > > >
> > > > > > > > regards,
> > > > > > > >
> > > > > > > > Martin
> > > > > > > >
> > > > > > > >
> > > > > > > > On 12/20/07, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
> > > > > > > > > On Dec 20, 2007 2:45 PM,  <[EMAIL PROTECTED]> wrote:
> > > > > > > > > > Author: skitching
> > > > > > > > > > Date: Thu Dec 20 05:45:06 2007
> > > > > > > > > > New Revision: 605927
> > > > > > > > > >
> > > > > > > > > > URL: http://svn.apache.org/viewvc?rev=605927&view=rev
> > > > > > > > > > Log:
> > > > > > > > > > Remove accidental use of java 1.6 method String.isEmpty
> > > > > > > > >
> > > > > > > > > isn't the build catching this ?
> > > > > > > > >
> > > > > > > > > -M
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Modified:
> > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/dateformat/SimpleDateFormatter.java
> > > > > > > > > >
> > > > > > > > > > Modified:
> > > > > > > > >
> > > > > >
> > > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/dateformat/SimpleDateFormatter.java
> > > > > > > > > > URL:
> > > > > > > > >
> > > > > >
> > > > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/dateformat/SimpleDateFormatter.java?rev=605927&r1=605926&r2=605927&view=diff
> > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > > ==============================================================================
> > > > > > > > > > ---
> > > > > > > > >
> > > > > >
> > > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/dateformat/SimpleDateFormatter.java
> > > > > > > > > (original)
> > > > > > > > > > +++
> > > > > > > > >
> > > > > >
> > > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/dateformat/SimpleDateFormatter.java
> > > > > > > > > Thu Dec 20 05:45:06 2007
> > > > > > > > > > @@ -838,7 +838,7 @@
> > > > > > > > > >
> > > > > > > > > >      private static void formatPattern(DateFormatSymbols
> > > > symbols,
> > > > > > > > > ParserContext context, String patternSub, boolean 
> > > > > > > > > yearIsWeekYear,
> > > > > > > > > StringBuffer out)
> > > > > > > > > >      {
> > > > > > > > > > -        if ((patternSub == null) || (patternSub.isEmpty()))
> > > > > > > > > > +        if ((patternSub == null) || (patternSub.length() 
> > > > > > > > > > == 0))
> > > > > > > > > >          {
> > > > > > > > > >              return;
> > > > > > > > > >          }
> > > > > > > > > > @@ -1137,7 +1137,7 @@
> > > > > > > > > >
> > > > > > > > > >      public Date parse(String dateStr)
> > > > > > > > > >      {
> > > > > > > > > > -        if ((dateStr==null) || dateStr.isEmpty())
> > > > > > > > > > +        if ((dateStr==null) || (dateStr.length() == 0))
> > > > > > > > > >              return null;
> > > > > > > > > >
> > > > > > > > > >          ParserContext context = parseOps(symbols,
> > > > yearIsWeekYear,
> > > > > > > > > firstDayOfWeek, ops, dateStr);
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Matthias Wessendorf
> > > > > > > > >
> > > > > > > > > further stuff:
> > > > > > > > > blog: http://matthiaswessendorf.wordpress.com/
> > > > > > > > > sessions: http://www.slideshare.net/mwessendorf
> > > > > > > > > mail: matzew-at-apache-dot-org
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > >
> > > > > > > > http://www.irian.at
> > > > > > > >
> > > > > > > > Your JSF powerhouse -
> > > > > > > > JSF Consulting, Development and
> > > > > > > > Courses in English and German
> > > > > > > >
> > > > > > > > Professional Support for Apache MyFaces
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > >
> > > > > > > Matthias Wessendorf
> > > > > > >
> > > > > > > further stuff:
> > > > > > > blog: http://matthiaswessendorf.wordpress.com/
> > > > > > > sessions: http://www.slideshare.net/mwessendorf
> > > > > > > mail: matzew-at-apache-dot-org
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Matthias Wessendorf
> > > > > >
> > > > > > further stuff:
> > > > > > blog: http://matthiaswessendorf.wordpress.com/
> > > > > > sessions: http://www.slideshare.net/mwessendorf
> > > > > > mail: matzew-at-apache-dot-org
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > >
> > > > > http://www.irian.at
> > > > >
> > > > > Your JSF powerhouse -
> > > > > JSF Consulting, Development and
> > > > > Courses in English and German
> > > > >
> > > > > Professional Support for Apache MyFaces
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Matthias Wessendorf
> > > >
> > > > further stuff:
> > > > blog: http://matthiaswessendorf.wordpress.com/
> > > > sessions: http://www.slideshare.net/mwessendorf
> > > > mail: matzew-at-apache-dot-org
> > > >
> > >
> > >
> > > --
> > >
> > >
> > > http://www.irian.at
> > >
> > > Your JSF powerhouse -
> > > JSF Consulting, Development and
> > > Courses in English and German
> > >
> > > Professional Support for Apache MyFaces
> > >
> >
> >
> >
> > --
> > Matthias Wessendorf
> >
> > further stuff:
> > blog: http://matthiaswessendorf.wordpress.com/
> > sessions: http://www.slideshare.net/mwessendorf
> > mail: matzew-at-apache-dot-org
>
>

Reply via email to