diff --git a/jsf-api-2.2.13.pom b/jsf-api-2.2.13.pom new file mode 100644 index 0000000..08a9203 --- /dev/null +++ b/jsf-api-2.2.13.pom @@ -0,0 +1,335 @@ + + + + + 4.0.0 + com.sun.faces + jsf-api + 2.2.13 + jar + + Oracle's implementation of the JSF 2.2 specification API. + + + This is the master POM file for Oracle's Implementation of the JSF 2.2 Specification. + + http://java.sun.com/javaee/javaserverfaces/ + + + + COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) plus GPL + + http://glassfish.java.net/nonav/public/CDDL+GPL.html + repo + + + + http://java.net/projects/mojarra/sources + scm:svn:https://svn.java.net/svn/mojarra~svn/trunk + + + + edburns + Ed Burns + edward.burns@oracle.com + Oracle America, Inc. + + project-owner + + -6 + + + rogerk + Roger Kitain + roger.kitain@oracle.com + Oracle America, Inc. + + project-owner + + -6 + + + + + jvnet-nexus-snapshots + Java.net Nexus Snapshots Repository + https://maven.java.net/content/repositories/snapshots/ + + + jvnet-nexus-staging + Java.net Nexus Staging Repository + https://maven.java.net/service/local/staging/deploy/maven2/ + + + + install + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.5 + 1.5 + + **/*.* + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + org.apache.maven.plugins + maven-source-plugin + 2.1 + + + attach-sources + verify + + jar-no-fork + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.7 + + + attach-artifacts + package + + attach-artifact + + + + + target/jsf-api-2.2.13-javadoc.jar + jar + javadoc + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + target/classes/META-INF/MANIFEST.MF + + + + + + + JIRA + https://java.net/jira/browse/JAVASERVERFACES + + + + JSF 2.2 Specification Comments + jsr-314-comments@jcp.org + + + Mojarra Implementation Dev List + dev@javaserverfaces.dev.java.net + + https://javaserverfaces.dev.java.net/servlets/SummarizeList?listName=dev + + + + + + Craig McClanahan + + + Deepak Gothe + + + Gregory Murray + + + Justyna Horwat + + + Jayashri Visvanathan + + + Jennifer Ball + + + Jacob Hookom + + + Raj Premkumar + + + Stan Silvert + + + Mike Youngstrom + + + Jason Lee + + + + Oracle America, Inc + http://www.oracle.com/ + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + javax.servlet.jsp + javax.servlet.jsp-api + 2.2.1 + provided + + + javax.el + javax.el-api + 2.2.1 + provided + + + javax.servlet.jsp.jstl + jstl-api + 1.2 + provided + + + + + release-sign-artifacts + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.5 + 1.5 + + **/*.* + + + + + org.apache.maven.plugins + maven-source-plugin + 2.1 + + + attach-sources + verify + + jar-no-fork + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.7 + + + attach-artifacts + package + + attach-artifact + + + + + target/jsf-api-2.2.13-javadoc.jar + jar + javadoc + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + target/classes/META-INF/MANIFEST.MF + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.3 + + + sign-artifacts + verify + + sign + + + + + + + + + + diff --git a/jsf-impl-2.2.13.pom b/jsf-impl-2.2.13.pom new file mode 100644 index 0000000..8565d25 --- /dev/null +++ b/jsf-impl-2.2.13.pom @@ -0,0 +1,295 @@ + + + + + 4.0.0 + com.sun.faces + jsf-impl + 2.2.13 + jar + + Oracle's implementation of the JSF 2.2 specification. + + + This is the master POM file for Oracle's Implementation of the JSF 2.2 Specification. + + http://java.sun.com/javaee/javaserverfaces/ + + + + COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) plus GPL + + http://glassfish.java.net/nonav/public/CDDL+GPL.html + repo + + + + http://java.net/projects/mojarra/sources + scm:svn:https://svn.java.net/svn/mojarra~svn/trunk + + + + edburns + Ed Burns + ed.burns@sun.com + Oracle America, Inc. + + project-owner + + -6 + + + rlubke + Ryan Lubke + Ryan.Lubke@sun.com + Oracle America, Inc. + + project-owner + + -9 + + + rogerk + Roger Kitain + Roger.Kitain@sun.com + Oracle America, Inc. + + project-owner + + -6 + + + driscoll + Jim Driscoll + jim.dirscoll@sun.com + Oracle America, Inc. + + project-owner + + -9 + + + + + jvnet-nexus-snapshots + Java.net Nexus Snapshots Repository + https://maven.java.net/content/repositories/snapshots/ + + + jvnet-nexus-staging + Java.net Nexus Staging Repository + https://maven.java.net/service/local/staging/deploy/maven2/ + + + + install + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.5 + 1.5 + + **/*.* + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + org.apache.maven.plugins + maven-source-plugin + 2.1 + + + attach-sources + verify + + jar-no-fork + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.7 + + + attach-artifacts + package + + attach-artifact + + + + + target/jsf-impl-2.2.13-javadoc.jar + jar + javadoc + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + target/classes/META-INF/MANIFEST.MF + + + + + + + + JIRA + https://java.net/jira/browse/JAVASERVERFACES + + + + Oracle's JavaServer Faces Implementation Dev List + dev@javaserverfaces.dev.java.net + + https://javaserverfaces.dev.java.net/servlets/SummarizeList?listName=dev + + + + + + Craig McClanahan + + + Deepak Gothe + + + Gregory Murray + + + Justyna Horwat + + + Jayashri Visvanathan + + + Jennifer Ball + + + Jacob Hookom + + + Raj Premkumar + + + Stan Silvert + + + Mike Youngstrom + + + Jason Lee + + + + Oracle America, Inc + http://www.oracle.com/ + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + javax.servlet.jsp + javax.servlet.jsp-api + 2.2.1 + provided + + + javax.el + javax.el-api + 2.2.1 + provided + + + javax.servlet.jsp.jstl + jstl-api + 1.2 + provided + + + + + release-sign-artifacts + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.3 + + + sign-artifacts + verify + + sign + + + + + + + + + diff --git a/mojarra-2.2.13-disable-references-to-com.sun.faces.spi.InjectionProvider.patch b/mojarra-2.2.13-disable-references-to-com.sun.faces.spi.InjectionProvider.patch new file mode 100644 index 0000000..9d9449a --- /dev/null +++ b/mojarra-2.2.13-disable-references-to-com.sun.faces.spi.InjectionProvider.patch @@ -0,0 +1,74 @@ +diff -Nru mojarra-2.2.13/jsf-api/src/main/java/javax/faces/FactoryFinderInstance.java mojarra-2.2.13.InjectionProvider/jsf-api/src/main/java/javax/faces/FactoryFinderInstance.java +--- mojarra-2.2.13/jsf-api/src/main/java/javax/faces/FactoryFinderInstance.java 2016-02-04 03:54:54.000000000 +0100 ++++ mojarra-2.2.13.InjectionProvider/jsf-api/src/main/java/javax/faces/FactoryFinderInstance.java 2016-09-30 16:33:55.327278523 +0200 +@@ -41,7 +41,7 @@ + + package javax.faces; + +-import com.sun.faces.spi.InjectionProvider; ++//import com.sun.faces.spi.InjectionProvider; + import java.io.BufferedReader; + import java.io.IOException; + import java.io.InputStream; +@@ -168,7 +168,7 @@ + } + + private void copyInjectionProviderFromFacesContext() { +- InjectionProvider injectionProvider = null; ++ /*InjectionProvider injectionProvider = null; + FacesContext context = FacesContext.getCurrentInstance(); + if (null != context) { + injectionProvider = (InjectionProvider) context.getAttributes().get("com.sun.faces.config.ConfigManager_INJECTION_PROVIDER_TASK"); +@@ -179,7 +179,7 @@ + if (LOGGER.isLoggable(Level.SEVERE)) { + LOGGER.log(Level.SEVERE, "Unable to obtain InjectionProvider from init time FacesContext. Does this container implement the Mojarra Injection SPI?"); + } +- } ++ }*/ + } + + /** +@@ -408,7 +408,7 @@ + } + } + +- if (null != result) { ++ /*if (null != result) { + InjectionProvider provider = getInjectionProvider(); + if (null != provider) { + try { +@@ -423,7 +423,7 @@ + LOGGER.log(Level.SEVERE, "Unable to inject {0} because no InjectionProvider can be found. Does this container implement the Mojarra Injection SPI?", result); + } + } +- } ++ }*/ + + return result; + +@@ -459,7 +459,7 @@ + } + + void releaseFactories() { +- InjectionProvider provider = getInjectionProvider(); ++ /*InjectionProvider provider = getInjectionProvider(); + if (null != provider) { + lock.writeLock().lock(); + try { +@@ -491,13 +491,13 @@ + if (LOGGER.isLoggable(Level.SEVERE)) { + LOGGER.log(Level.SEVERE, "Unable to call @PreDestroy annotated methods because no InjectionProvider can be found. Does this container implement the Mojarra Injection SPI?"); + } +- } ++ }*/ + } + +- InjectionProvider getInjectionProvider() { ++ /*InjectionProvider getInjectionProvider() { + InjectionProvider result = (InjectionProvider) factories.get(INJECTION_PROVIDER_KEY); + return result; +- } ++ }*/ + + void clearInjectionProvider() { + factories.remove(INJECTION_PROVIDER_KEY); diff --git a/mojarra-2.2.13-disabling-stripping-API-jars.patch b/mojarra-2.2.13-disabling-stripping-API-jars.patch new file mode 100644 index 0000000..302ea7a --- /dev/null +++ b/mojarra-2.2.13-disabling-stripping-API-jars.patch @@ -0,0 +1,501 @@ +From 29f666432cbd8a32ed7ff7c678b7bcd412f46b19 Mon Sep 17 00:00:00 2001 +From: mriem +Date: Fri, 22 Aug 2014 18:30:06 +0000 +Subject: [PATCH] Disabling stripping API jars + +git-svn-id: https://svn.java.net/svn/mojarra~svn/trunk@13559 761efcf2-d34d-6b61-9145-99dcacc3edf1 +--- + .../faces/generate/HtmlTaglib12Generator.java | 58 ++- + .../faces/tools/StripClassesForApiJar.java | 398 +++++++++--------- + 2 files changed, 249 insertions(+), 207 deletions(-) + +diff --git a/jsf-tools/src/main/java/com/sun/faces/generate/HtmlTaglib12Generator.java b/jsf-tools/src/main/java/com/sun/faces/generate/HtmlTaglib12Generator.java +index f3c33ff412..cb0b828185 100644 +--- a/jsf-tools/src/main/java/com/sun/faces/generate/HtmlTaglib12Generator.java ++++ b/jsf-tools/src/main/java/com/sun/faces/generate/HtmlTaglib12Generator.java +@@ -653,15 +653,55 @@ protected void tagHandlerGeneralMethods() throws Exception { + + protected static boolean isValueHolder(String componentClass) { + +- try { +- Class clazz = Class.forName(componentClass); +- Class valueHolderClass = +- Class.forName("javax.faces.component.ValueHolder"); +- return valueHolderClass.isAssignableFrom(clazz); +- } catch (ClassNotFoundException cnfe) { +- throw new IllegalStateException("Unable to find component class '" + +- componentClass + "' : " + cnfe.toString()); +- } ++ String[] valueHolderClasses = { ++ "HtmlBody", ++ "HtmlDoctype", ++ "HtmlHead", ++ "HtmlInputHidden", ++ "HtmlInputSecret", ++ "HtmlInputText", ++ "HtmlInputTextarea", ++ "HtmlOutcomeTargetButton", ++ "HtmlOutcomeTargetLink", ++ "HtmlOutputFormat", ++ "HtmlOutputLabel", ++ "HtmlOutputLink", ++ "HtmlOutputText", ++ "HtmlSelectBooleanCheckbox", ++ "HtmlSelectManyCheckbox", ++ "HtmlSelectManyListbox", ++ "HtmlSelectManyMenu", ++ "HtmlSelectOneListbox", ++ "HtmlSelectOneMenu", ++ "HtmlSelectOneRadio", ++ "UIInput", ++ "UIOutcomeTarget", ++ "UIOutput", ++ "UISelectBoolean", ++ "UISelectMany", ++ "UISelectOne", ++ "UIViewParameter" }; ++ ++ boolean result = false; ++ ++ for(int i = 0; i clazz = Class.forName(componentClass); ++// Class valueHolderClass = ++// Class.forName("javax.faces.component.ValueHolder"); ++// return valueHolderClass.isAssignableFrom(clazz); ++// } catch (ClassNotFoundException cnfe) { ++// throw new IllegalStateException("Unable to find component class '" + ++// componentClass + "' : " + cnfe.toString()); ++// } + + } // END isValueHolder + +diff --git a/jsf-tools/src/main/java/com/sun/faces/tools/StripClassesForApiJar.java b/jsf-tools/src/main/java/com/sun/faces/tools/StripClassesForApiJar.java +index 2da164b..7e02f9d 100644 +--- a/jsf-tools/src/main/java/com/sun/faces/tools/StripClassesForApiJar.java ++++ b/jsf-tools/src/main/java/com/sun/faces/tools/StripClassesForApiJar.java +@@ -43,19 +43,19 @@ package com.sun.faces.tools; + + + +-import com.sun.tools.javac.api.JavacTaskImpl; +-import com.sun.tools.javac.code.Kinds; +-import com.sun.tools.javac.code.Scope; +-import com.sun.tools.javac.code.Symbol.*; +-import com.sun.tools.javac.code.Flags; +-import com.sun.tools.javac.code.Type; +-import com.sun.tools.javac.code.Types; +-import com.sun.tools.javac.jvm.ClassReader; +-import com.sun.tools.javac.jvm.ClassWriter; +-import com.sun.tools.javac.jvm.Pool; +-import com.sun.tools.javac.processing.JavacProcessingEnvironment; +-import com.sun.tools.javac.util.List; +-import com.sun.tools.javac.util.Name; ++//import com.sun.tools.javac.api.JavacTaskImpl; ++//import com.sun.tools.javac.code.Kinds; ++//import com.sun.tools.javac.code.Scope; ++//import com.sun.tools.javac.code.Symbol.*; ++//import com.sun.tools.javac.code.Flags; ++//import com.sun.tools.javac.code.Type; ++//import com.sun.tools.javac.code.Types; ++//import com.sun.tools.javac.jvm.ClassReader; ++//import com.sun.tools.javac.jvm.ClassWriter; ++//import com.sun.tools.javac.jvm.Pool; ++//import com.sun.tools.javac.processing.JavacProcessingEnvironment; ++//import com.sun.tools.javac.util.List; ++//import com.sun.tools.javac.util.Name; + import java.io.File; + import java.io.IOException; + import java.util.ArrayList; +@@ -102,192 +102,194 @@ import javax.tools.ToolProvider; + */ + @SupportedOptions({"com.sun.tools.javac.sym.Jar","com.sun.tools.javac.sym.ExtraApiClassPath","com.sun.tools.javac.sym.Dest"}) + @SupportedAnnotationTypes("*") +-public class StripClassesForApiJar extends AbstractProcessor { ++public class StripClassesForApiJar ++//extends AbstractProcessor ++{ + +- static Set getLegacyPackages() { +- return Collections.emptySet(); +- } +- +- @Override +- public boolean process(Set tes, RoundEnvironment renv) { +- if (!renv.processingOver()) +- return true; +- +- Set legacy = getLegacyPackages(); +- Set legacyProprietary = getLegacyPackages(); +- Set documented = new HashSet(); +- Set packages = +- ((JavacProcessingEnvironment)processingEnv).getSpecifiedPackages(); +- String jarName = processingEnv.getOptions().get("com.sun.tools.javac.sym.Jar"); +- if (jarName == null) +- throw new RuntimeException("Must use -Acom.sun.tools.javac.sym.Jar=LOCATION_OF_JAR"); +- String extraApiClassPath = processingEnv.getOptions().get("com.sun.tools.javac.sym.ExtraApiClassPath"); +- if (extraApiClassPath == null) +- throw new RuntimeException("Must use -Acom.sun.tools.javac.sym.ExtraApiClassPath=extra api class path"); +- String destName = processingEnv.getOptions().get("com.sun.tools.javac.sym.Dest"); +- if (destName == null) +- throw new RuntimeException("Must use -Acom.sun.tools.javac.sym.Dest=LOCATION_OF_JAR"); +- +- for (PackageSymbol psym : packages) { +- String name = psym.getQualifiedName().toString(); +- legacyProprietary.remove(name); +- documented.add(name); +- } +- +- JavaCompiler tool = ToolProvider.getSystemJavaCompiler(); +- StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null); +- Location jarLocation = StandardLocation.locationFor(jarName); +- File jarFile = new File(jarName); +- String [] segments = extraApiClassPath.split(File.pathSeparator); +- java.util.List extraClassPathSegments = new ArrayList(segments.length); +- for (String cur : segments) { +- extraClassPathSegments.add(new File(cur)); +- } +- File ExtraApiClassPathFile = new File(extraApiClassPath); +- try { +- fm.setLocation(jarLocation, List.of(jarFile)); +- fm.setLocation(StandardLocation.CLASS_PATH, List.nil()); +- fm.setLocation(StandardLocation.SOURCE_PATH, List.nil()); +- { +- ArrayList bootClassPath = new ArrayList(); +- bootClassPath.add(jarFile); +- for (File cur : extraClassPathSegments) { +- bootClassPath.add(cur); +- } +- // ADD EXTRA DEPENDENCIES HERE: +- for (File path : fm.getLocation(StandardLocation.PLATFORM_CLASS_PATH)) { +- // if (!new File(path.getName()).equals(new File("rt.jar"))) +- bootClassPath.add(path); +- } +- System.err.println("Using boot class path = " + bootClassPath); +- fm.setLocation(StandardLocation.PLATFORM_CLASS_PATH, bootClassPath); +- } +- // System.out.println(fm.getLocation(StandardLocation.PLATFORM_CLASS_PATH)); +- File destDir = new File(destName); +- if (!destDir.exists()) +- if (!destDir.mkdirs()) +- throw new RuntimeException("Could not create " + destDir); +- fm.setLocation(StandardLocation.CLASS_OUTPUT, List.of(destDir)); +- } catch (IOException ioe) { +- System.err.println("Unable to set location"); +- return false; +- } +- Set hiddenPackages = new HashSet(); +- Set crisp = new HashSet(); +- List options = List.of("-XDdev"); +- // options = options.prepend("-doe"); +- // options = options.prepend("-verbose"); +- JavacTaskImpl task = (JavacTaskImpl) +- tool.getTask(null, fm, null, options, null, null); +- com.sun.tools.javac.main.JavaCompiler compiler = com.sun.tools.javac.main.JavaCompiler.instance(task.getContext()); +- ClassReader reader = ClassReader.instance(task.getContext()); +- ClassWriter writer = ClassWriter.instance(task.getContext()); +- Type.moreInfo = true; +- Pool pool = new Pool(Types.instance(task.getContext())); +- ClassSymbol cs = null; +- try { +- for (JavaFileObject file : fm.list(jarLocation, "", EnumSet.of(CLASS), true)) { +- String className = fm.inferBinaryName(jarLocation, file); +- int index = className.lastIndexOf('.'); +- String pckName = index == -1 ? "" : className.substring(0, index); +- if (documented.contains(pckName)) { +- if (!legacy.contains(pckName)) +- crisp.add(pckName); +- // System.out.println("Documented: " + className); +- } else if (legacyProprietary.contains(pckName)) { +- // System.out.println("Legacy proprietary: " + className); +- } else { +- // System.out.println("Hidden " + className); +- hiddenPackages.add(pckName); +- continue; +- } +- // PackageSymbol psym = reader.enterPackage(names.fromString(pckName)); +- // psym.complete(); +- TypeSymbol sym = (TypeSymbol)compiler.resolveIdent(className); +- if (sym.kind != Kinds.TYP) { +- if (className.indexOf('$') < 0) { +- System.err.println("Ignoring (other) " + className + " : " + sym); +- System.err.println(" " + sym.getClass().getSimpleName() + " " + sym.type); +- } +- continue; +- } +- sym.complete(); +- if (sym.getEnclosingElement().getKind() != ElementKind.PACKAGE) { +- System.err.println("Ignoring (bad) " + sym.getQualifiedName()); +- } +- if (false) { +- /* +- * Following eliminates non-public classes from output, +- * but is too aggressive because it also eliminates +- * non-public superclasses of public classes, which +- * makes the output unusable. +- */ +- if (sym.owner.kind == Kinds.PCK && +- (sym.flags() & Flags.AccessFlags) == Flags.PUBLIC) { +- cs = (ClassSymbol) sym; +- writeClass(pool, cs, writer); +- cs = null; +- } +- } else { +- cs = (ClassSymbol) sym; +- writeClass(pool, cs, writer); +- cs = null; +- } +- } +- } catch (IOException ex) { +- reportError(ex, cs); +- } catch (CompletionFailure ex) { +- reportError(ex, cs); +- } catch (RuntimeException ex) { +- reportError(ex, cs); +- } +- if (false) { +- for (String pckName : crisp) +- System.out.println("Crisp: " + pckName); +- for (String pckName : hiddenPackages) +- System.out.println("Hidden: " + pckName); +- for (String pckName : legacyProprietary) +- System.out.println("Legacy proprietary: " + pckName); +- for (String pckName : documented) +- System.out.println("Documented: " + pckName); +- } +- +- return true; +- } +- +- void reportError(Throwable ex, Element element) { +- if (element != null) +- processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, +- ex.getLocalizedMessage(), +- element); +- else +- processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, +- ex.getLocalizedMessage()); +- } +- +- void writeClass(final Pool pool, final ClassSymbol cs, final ClassWriter writer) { +- try { +- pool.reset(); +- cs.pool = pool; +- writer.writeClass(cs); +- for (Scope.Entry e = cs.members().elems; e != null; e = e.sibling) { +- if (e.sym.kind == Kinds.TYP) { +- ClassSymbol nestedClass = (ClassSymbol)e.sym; +- nestedClass.complete(); +- writeClass(pool, nestedClass, writer); +- } +- } +- } catch (ClassWriter.StringOverflow ex) { +- throw new RuntimeException(ex); +- } catch (ClassWriter.PoolOverflow ex) { +- throw new RuntimeException(ex); +- } catch (IOException ex) { +- throw new RuntimeException(ex); +- } +- } +- +- public SourceVersion getSupportedSourceVersion() { +- return SourceVersion.latest(); +- } ++// static Set getLegacyPackages() { ++// return Collections.emptySet(); ++// } ++// ++// @Override ++// public boolean process(Set tes, RoundEnvironment renv) { ++// if (!renv.processingOver()) ++// return true; ++// ++// Set legacy = getLegacyPackages(); ++// Set legacyProprietary = getLegacyPackages(); ++// Set documented = new HashSet(); ++// Set packages = ++// ((JavacProcessingEnvironment)processingEnv).getSpecifiedPackages(); ++// String jarName = processingEnv.getOptions().get("com.sun.tools.javac.sym.Jar"); ++// if (jarName == null) ++// throw new RuntimeException("Must use -Acom.sun.tools.javac.sym.Jar=LOCATION_OF_JAR"); ++// String extraApiClassPath = processingEnv.getOptions().get("com.sun.tools.javac.sym.ExtraApiClassPath"); ++// if (extraApiClassPath == null) ++// throw new RuntimeException("Must use -Acom.sun.tools.javac.sym.ExtraApiClassPath=extra api class path"); ++// String destName = processingEnv.getOptions().get("com.sun.tools.javac.sym.Dest"); ++// if (destName == null) ++// throw new RuntimeException("Must use -Acom.sun.tools.javac.sym.Dest=LOCATION_OF_JAR"); ++// ++// for (PackageSymbol psym : packages) { ++// String name = psym.getQualifiedName().toString(); ++// legacyProprietary.remove(name); ++// documented.add(name); ++// } ++// ++// JavaCompiler tool = ToolProvider.getSystemJavaCompiler(); ++// StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null); ++// Location jarLocation = StandardLocation.locationFor(jarName); ++// File jarFile = new File(jarName); ++// String [] segments = extraApiClassPath.split(File.pathSeparator); ++// java.util.List extraClassPathSegments = new ArrayList(segments.length); ++// for (String cur : segments) { ++// extraClassPathSegments.add(new File(cur)); ++// } ++// File ExtraApiClassPathFile = new File(extraApiClassPath); ++// try { ++// fm.setLocation(jarLocation, List.of(jarFile)); ++// fm.setLocation(StandardLocation.CLASS_PATH, List.nil()); ++// fm.setLocation(StandardLocation.SOURCE_PATH, List.nil()); ++// { ++// ArrayList bootClassPath = new ArrayList(); ++// bootClassPath.add(jarFile); ++// for (File cur : extraClassPathSegments) { ++// bootClassPath.add(cur); ++// } ++// // ADD EXTRA DEPENDENCIES HERE: ++// for (File path : fm.getLocation(StandardLocation.PLATFORM_CLASS_PATH)) { ++// // if (!new File(path.getName()).equals(new File("rt.jar"))) ++// bootClassPath.add(path); ++// } ++// System.err.println("Using boot class path = " + bootClassPath); ++// fm.setLocation(StandardLocation.PLATFORM_CLASS_PATH, bootClassPath); ++// } ++// // System.out.println(fm.getLocation(StandardLocation.PLATFORM_CLASS_PATH)); ++// File destDir = new File(destName); ++// if (!destDir.exists()) ++// if (!destDir.mkdirs()) ++// throw new RuntimeException("Could not create " + destDir); ++// fm.setLocation(StandardLocation.CLASS_OUTPUT, List.of(destDir)); ++// } catch (IOException ioe) { ++// System.err.println("Unable to set location"); ++// return false; ++// } ++// Set hiddenPackages = new HashSet(); ++// Set crisp = new HashSet(); ++// List options = List.of("-XDdev"); ++// // options = options.prepend("-doe"); ++// // options = options.prepend("-verbose"); ++// JavacTaskImpl task = (JavacTaskImpl) ++// tool.getTask(null, fm, null, options, null, null); ++// com.sun.tools.javac.main.JavaCompiler compiler = com.sun.tools.javac.main.JavaCompiler.instance(task.getContext()); ++// ClassReader reader = ClassReader.instance(task.getContext()); ++// ClassWriter writer = ClassWriter.instance(task.getContext()); ++// Type.moreInfo = true; ++// Pool pool = new Pool(Types.instance(task.getContext())); ++// ClassSymbol cs = null; ++// try { ++// for (JavaFileObject file : fm.list(jarLocation, "", EnumSet.of(CLASS), true)) { ++// String className = fm.inferBinaryName(jarLocation, file); ++// int index = className.lastIndexOf('.'); ++// String pckName = index == -1 ? "" : className.substring(0, index); ++// if (documented.contains(pckName)) { ++// if (!legacy.contains(pckName)) ++// crisp.add(pckName); ++// // System.out.println("Documented: " + className); ++// } else if (legacyProprietary.contains(pckName)) { ++// // System.out.println("Legacy proprietary: " + className); ++// } else { ++// // System.out.println("Hidden " + className); ++// hiddenPackages.add(pckName); ++// continue; ++// } ++// // PackageSymbol psym = reader.enterPackage(names.fromString(pckName)); ++// // psym.complete(); ++// TypeSymbol sym = (TypeSymbol)compiler.resolveIdent(className); ++// if (sym.kind != Kinds.TYP) { ++// if (className.indexOf('$') < 0) { ++// System.err.println("Ignoring (other) " + className + " : " + sym); ++// System.err.println(" " + sym.getClass().getSimpleName() + " " + sym.type); ++// } ++// continue; ++// } ++// sym.complete(); ++// if (sym.getEnclosingElement().getKind() != ElementKind.PACKAGE) { ++// System.err.println("Ignoring (bad) " + sym.getQualifiedName()); ++// } ++// if (false) { ++// /* ++// * Following eliminates non-public classes from output, ++// * but is too aggressive because it also eliminates ++// * non-public superclasses of public classes, which ++// * makes the output unusable. ++// */ ++// if (sym.owner.kind == Kinds.PCK && ++// (sym.flags() & Flags.AccessFlags) == Flags.PUBLIC) { ++// cs = (ClassSymbol) sym; ++// writeClass(pool, cs, writer); ++// cs = null; ++// } ++// } else { ++// cs = (ClassSymbol) sym; ++// writeClass(pool, cs, writer); ++// cs = null; ++// } ++// } ++// } catch (IOException ex) { ++// reportError(ex, cs); ++// } catch (CompletionFailure ex) { ++// reportError(ex, cs); ++// } catch (RuntimeException ex) { ++// reportError(ex, cs); ++// } ++// if (false) { ++// for (String pckName : crisp) ++// System.out.println("Crisp: " + pckName); ++// for (String pckName : hiddenPackages) ++// System.out.println("Hidden: " + pckName); ++// for (String pckName : legacyProprietary) ++// System.out.println("Legacy proprietary: " + pckName); ++// for (String pckName : documented) ++// System.out.println("Documented: " + pckName); ++// } ++// ++// return true; ++// } ++// ++// void reportError(Throwable ex, Element element) { ++// if (element != null) ++// processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, ++// ex.getLocalizedMessage(), ++// element); ++// else ++// processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, ++// ex.getLocalizedMessage()); ++// } ++// ++// void writeClass(final Pool pool, final ClassSymbol cs, final ClassWriter writer) { ++// try { ++// pool.reset(); ++// cs.pool = pool; ++// writer.writeClass(cs); ++// for (Scope.Entry e = cs.members().elems; e != null; e = e.sibling) { ++// if (e.sym.kind == Kinds.TYP) { ++// ClassSymbol nestedClass = (ClassSymbol)e.sym; ++// nestedClass.complete(); ++// writeClass(pool, nestedClass, writer); ++// } ++// } ++// } catch (ClassWriter.StringOverflow ex) { ++// throw new RuntimeException(ex); ++// } catch (ClassWriter.PoolOverflow ex) { ++// throw new RuntimeException(ex); ++// } catch (IOException ex) { ++// throw new RuntimeException(ex); ++// } ++// } ++// ++// public SourceVersion getSupportedSourceVersion() { ++// return SourceVersion.latest(); ++// } + + } +-- +2.23.0 + diff --git a/mojarra-2.2.13-dont-build-injection-providers.patch b/mojarra-2.2.13-dont-build-injection-providers.patch new file mode 100644 index 0000000..72d3ed0 --- /dev/null +++ b/mojarra-2.2.13-dont-build-injection-providers.patch @@ -0,0 +1,36 @@ +diff -Nru mojarra-2.2.13/jsf-ri/build-pre-maven-rename.xml mojarra-2.2.13.injection-providers/jsf-ri/build-pre-maven-rename.xml +--- mojarra-2.2.13/jsf-ri/build-pre-maven-rename.xml 2016-09-29 09:23:42.387167612 +0200 ++++ mojarra-2.2.13.injection-providers/jsf-ri/build-pre-maven-rename.xml 2016-09-29 09:20:39.000000000 +0200 +@@ -378,8 +378,6 @@ + toDir="${build.classes.dir}/com/sun/faces"/> + +- + + + +diff -Nru mojarra-2.2.13/jsf-ri/build-source.xml mojarra-2.2.13.injection-providers/jsf-ri/build-source.xml +--- mojarra-2.2.13/jsf-ri/build-source.xml 2016-09-29 09:23:42.683153090 +0200 ++++ mojarra-2.2.13.injection-providers/jsf-ri/build-source.xml 2016-09-29 09:21:00.000000000 +0200 +@@ -344,8 +344,6 @@ + toDir="${build.classes.dir}/com/sun/faces"/> + +- + + + +diff -Nru mojarra-2.2.13/jsf-ri/build.xml mojarra-2.2.13.injection-providers/jsf-ri/build.xml +--- mojarra-2.2.13/jsf-ri/build.xml 2016-09-29 09:23:42.684153041 +0200 ++++ mojarra-2.2.13.injection-providers/jsf-ri/build.xml 2016-09-29 09:21:31.000000000 +0200 +@@ -378,8 +378,6 @@ + toDir="${build.classes.dir}/com/sun/faces"/> + +- + + diff --git a/mojarra-2.2.13-dont-bundle-api.patch b/mojarra-2.2.13-dont-bundle-api.patch new file mode 100644 index 0000000..911ddab --- /dev/null +++ b/mojarra-2.2.13-dont-bundle-api.patch @@ -0,0 +1,16 @@ +diff -Nru mojarra-2.2.13/jsf-ri/build.xml mojarra-2.2.13.bundle-api/jsf-ri/build.xml +--- mojarra-2.2.13/jsf-ri/build.xml 2016-09-29 09:29:56.517808536 +0200 ++++ mojarra-2.2.13.bundle-api/jsf-ri/build.xml 2016-09-29 09:30:44.978430372 +0200 +@@ -378,12 +378,6 @@ + toDir="${build.classes.dir}/com/sun/faces"/> + +- +- +- +- +- + + + diff --git a/mojarra-2.2.13-dont-download-dependencies.patch b/mojarra-2.2.13-dont-download-dependencies.patch new file mode 100644 index 0000000..0df36e1 --- /dev/null +++ b/mojarra-2.2.13-dont-download-dependencies.patch @@ -0,0 +1,555 @@ +diff -Nru mojarra-2.2.13/common/ant/dependencies.xml mojarra-2.2.13.dont-download-dependencies/common/ant/dependencies.xml +--- mojarra-2.2.13/common/ant/dependencies.xml 2016-02-04 03:54:54.000000000 +0100 ++++ mojarra-2.2.13.dont-download-dependencies/common/ant/dependencies.xml 2016-09-29 21:59:38.981803483 +0200 +@@ -159,551 +159,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + diff --git a/mojarra-2.2.13-dont-use-yuicompressor.patch b/mojarra-2.2.13-dont-use-yuicompressor.patch new file mode 100644 index 0000000..2cbc6eb --- /dev/null +++ b/mojarra-2.2.13-dont-use-yuicompressor.patch @@ -0,0 +1,113 @@ +diff -Nru mojarra-2.2.13/common/ant/dependencies.xml mojarra-2.2.13.yuicompressor/common/ant/dependencies.xml +--- mojarra-2.2.13/common/ant/dependencies.xml 2016-09-29 09:11:08.759142705 +0200 ++++ mojarra-2.2.13.yuicompressor/common/ant/dependencies.xml 2016-09-29 09:12:48.618243338 +0200 +@@ -82,7 +82,6 @@ + + + +- + + + +@@ -110,14 +109,12 @@ + + + +- + + + + + + +- + + + +diff -Nru mojarra-2.2.13/jsf-ri/build-pre-maven-rename.xml mojarra-2.2.13.yuicompressor/jsf-ri/build-pre-maven-rename.xml +--- mojarra-2.2.13/jsf-ri/build-pre-maven-rename.xml 2016-02-04 03:54:54.000000000 +0100 ++++ mojarra-2.2.13.yuicompressor/jsf-ri/build-pre-maven-rename.xml 2016-09-29 09:14:50.341271267 +0200 +@@ -87,7 +87,6 @@ + + + +- + + + +@@ -344,7 +343,7 @@ + + + +- ++ + + + +@@ -353,8 +352,6 @@ + + + +- + + ++ value="${jsf.build.home}/jsf-tools/target/jsf-tools-${impl.version.number}.jar" /> + + + +@@ -159,11 +160,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -173,7 +174,7 @@ + + + +- ++ + + + +@@ -190,8 +191,8 @@ + + + +- +- ++ ++ + + + + + +- ++ + + + +@@ -158,7 +158,7 @@ + + +- ++ + + + +@@ -805,7 +805,7 @@ + + + +- ++ + + + + +- ++ + + + +@@ -59,12 +59,6 @@ + + + +- +- +- +- + + + +@@ -123,93 +117,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + diff --git a/mojarra-2.2.13-jdk7.patch b/mojarra-2.2.13-jdk7.patch new file mode 100644 index 0000000..001d4a1 --- /dev/null +++ b/mojarra-2.2.13-jdk7.patch @@ -0,0 +1,50 @@ +diff -Nru mojarra-2.2.13/jsf-tools/pom.xml mojarra-2.2.13.jdk7/jsf-tools/pom.xml +--- mojarra-2.2.13/jsf-tools/pom.xml 2016-02-04 03:54:54.000000000 +0100 ++++ mojarra-2.2.13.jdk7/jsf-tools/pom.xml 2016-09-29 08:58:51.942292347 +0200 +@@ -102,7 +102,7 @@ + + + java.vendor +- Sun Microsystems Inc. ++ Oracle Corporation + + + +@@ -110,8 +110,6 @@ + com.sun + tools + 1.6.0 +- system +- ${java.home}/../lib/tools.jar + + + +@@ -125,8 +123,6 @@ + com.sun + tools + 1.7.0 +- system +- ${java.home}/../lib/tools.jar + + + +diff -Nru mojarra-2.2.13/jsf-tools/src/main/java/com/sun/faces/tools/StripClassesForApiJar.java mojarra-2.2.13.jdk7/jsf-tools/src/main/java/com/sun/faces/tools/StripClassesForApiJar.java +--- mojarra-2.2.13/jsf-tools/src/main/java/com/sun/faces/tools/StripClassesForApiJar.java 2016-02-04 03:54:54.000000000 +0100 ++++ mojarra-2.2.13.jdk7/jsf-tools/src/main/java/com/sun/faces/tools/StripClassesForApiJar.java 2016-09-29 09:01:16.748187939 +0200 +@@ -49,6 +49,7 @@ + import com.sun.tools.javac.code.Symbol.*; + import com.sun.tools.javac.code.Flags; + import com.sun.tools.javac.code.Type; ++import com.sun.tools.javac.code.Types; + import com.sun.tools.javac.jvm.ClassReader; + import com.sun.tools.javac.jvm.ClassWriter; + import com.sun.tools.javac.jvm.Pool; +@@ -182,7 +183,7 @@ + ClassReader reader = ClassReader.instance(task.getContext()); + ClassWriter writer = ClassWriter.instance(task.getContext()); + Type.moreInfo = true; +- Pool pool = new Pool(); ++ Pool pool = new Pool(Types.instance(task.getContext())); + ClassSymbol cs = null; + try { + for (JavaFileObject file : fm.list(jarLocation, "", EnumSet.of(CLASS), true)) { diff --git a/mojarra-2.2.13-remove-installer-builder.patch b/mojarra-2.2.13-remove-installer-builder.patch new file mode 100644 index 0000000..27d4be8 --- /dev/null +++ b/mojarra-2.2.13-remove-installer-builder.patch @@ -0,0 +1,47 @@ +diff -Nru mojarra-2.2.13/build.xml mojarra-2.2.13.installer-builder/build.xml +--- mojarra-2.2.13/build.xml 2016-02-04 03:54:54.000000000 +0100 ++++ mojarra-2.2.13.installer-builder/build.xml 2016-09-29 08:33:44.348257553 +0200 +@@ -554,11 +554,6 @@ + + +- +- + + + +diff -Nru mojarra-2.2.13/common/ant/common.xml mojarra-2.2.13.installer-builder/common/ant/common.xml +--- mojarra-2.2.13/common/ant/common.xml 2016-02-04 03:54:54.000000000 +0100 ++++ mojarra-2.2.13.installer-builder/common/ant/common.xml 2016-09-29 08:32:30.083898981 +0200 +@@ -59,12 +59,6 @@ + + + +- +- +- +- +- +- + + + + +- +- +- +- +- +- + + +Date: Tue, 24 Jul 2012 19:10:59 +0200 +Subject: [PATCH] Don't use namespace-alias in merge-config.xsl + +The build process uses a stylesheet named "merge-config.xsl" to +merge the content of different XML files and it uses the +"namespace-alias" element in the following way: + + + +This generates the following error during the build: + +create.runtime.config: + [xslt] Processing /home/jhernand/rpmbuild/BUILD/mojarra-2.1.7/jsf-api/doc/standard-html-renderkit.xml to /home/jhernand/rpmbuild/BUILD/mojarra-2.1.7/jsf-ri/merged.xml + [xslt] Loading stylesheet /home/jhernand/rpmbuild/BUILD/mojarra-2.1.7/jsf-ri/conf/xslt/merge-config.xsl + [xslt] /home/jhernand/rpmbuild/BUILD/mojarra-2.1.7/jsf-ri/conf/xslt/merge-config.xsl:50:76: Error! The result-prefix attribute of an xsl:namespace-alias element has the value '#default', but there is no declaration of the default namespace in scope for the element + [xslt] /home/jhernand/rpmbuild/BUILD/mojarra-2.1.7/jsf-ri/conf/xslt/merge-config.xsl:0:0: Fatal Error! java.lang.NullPointerException Cause: java.lang.NullPointerException + [xslt] Failed to process /home/jhernand/rpmbuild/BUILD/mojarra-2.1.7/jsf-api/doc/standard-html-renderkit.xml + +The only way I find to avoid this is to remove the +"namespace-alias" element. As far as I can tell the content of the +"jsf-ri-runtime.xml" file is not affected. +--- + jsf-ri/conf/xslt/merge-config.xsl | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/jsf-ri/conf/xslt/merge-config.xsl b/jsf-ri/conf/xslt/merge-config.xsl +index 32b6bb2..5a2c397 100644 +--- a/jsf-ri/conf/xslt/merge-config.xsl ++++ b/jsf-ri/conf/xslt/merge-config.xsl +@@ -47,7 +47,6 @@ + + + +- + + + +-- +1.7.10.4 + diff --git a/mojarra-servlet-3.1.patch b/mojarra-servlet-3.1.patch new file mode 100644 index 0000000..6782984 --- /dev/null +++ b/mojarra-servlet-3.1.patch @@ -0,0 +1,35 @@ +diff --git a/jsf-ri/src/main/java/com/sun/faces/application/ByteArrayWebOutputStream.java b/jsf-ri/src/main/java/com/sun/faces/application/ByteArrayWebOutputStream.java +index 87c83f6..0dd687d 100644 +--- a/jsf-ri/src/main/java/com/sun/faces/application/ByteArrayWebOutputStream.java ++++ b/jsf-ri/src/main/java/com/sun/faces/application/ByteArrayWebOutputStream.java +@@ -43,6 +43,7 @@ package com.sun.faces.application; + import com.sun.faces.util.FacesLogger; + + import javax.servlet.ServletOutputStream; ++import javax.servlet.WriteListener; + import javax.faces.FacesException; + import java.io.Writer; + import java.io.IOException; +@@ -275,6 +276,22 @@ class ByteArrayWebOutputStream extends ServletOutputStream { + public void println(double v) throws IOException { + // no-op + } ++ ++ public void setWriteListener(WriteListener listener) { ++ // no-op ++ } ++ ++ public boolean isReady() { ++ return true; ++ } ++ } ++ ++ public void setWriteListener(WriteListener listener) { ++ // no-op ++ } ++ ++ public boolean isReady() { ++ return true; + } + } + diff --git a/mojarra.spec b/mojarra.spec new file mode 100644 index 0000000..b2dee6e --- /dev/null +++ b/mojarra.spec @@ -0,0 +1,147 @@ +Name: mojarra +Version: 2.2.13 +Release: 1 +Summary: JSF Reference Implementation +License: CDDL or GPLv2 with exceptions +URL: http://javaserverfaces.java.net +Source0: https://github.com/javaserverfaces/mojarra/archive/%{version}/mojarra-%{version}.tar.gz +Source1: http://repo1.maven.org/maven2/com/sun/faces/jsf-api/%{version}/jsf-api-%{version}.pom +Source2: http://repo1.maven.org/maven2/com/sun/faces/jsf-impl/%{version}/jsf-impl-%{version}.pom + +Patch0: mojarra-2.2.13-remove-installer-builder.patch +Patch1: mojarra-2.2.13-fix-maven-ant-tasks-classpath.patch +Patch2: mojarra-2.2.13-dont-download-dependencies.patch +Patch3: mojarra-2.2.13-jdk7.patch +Patch4: mojarra-2.2.13-fix-classpaths.patch +Patch5: mojarra-2.2.13-dont-use-yuicompressor.patch +Patch6: mojarra-2.2.13-dont-build-injection-providers.patch +Patch7: mojarra-2.2.13-dont-bundle-api.patch +Patch8: mojarra-dont-use-namespace-alias.patch +Patch9: mojarra-servlet-3.1.patch +Patch10: mojarra-2.2.13-disable-references-to-com.sun.faces.spi.InjectionProvider.patch +Patch11: mojarra-2.2.13-disabling-stripping-API-jars.patch + +BuildArch: noarch +BuildRequires: ant ant-contrib apache-commons-digester aqute-bnd atinject cdi-api +BuildRequires: bean-validation-api glassfish-annotation-api glassfish-ejb-api glassfish-el-api +BuildRequires: glassfish-jsp-api glassfish-servlet-api groovy hibernate-jpa-2.1-api java-devel +BuildRequires: jboss-jstl-1.2-api maven-install-plugin maven-local +Requires: apache-commons-digester atinject bean-validation-api cdi-api +Requires: glassfish-annotation-api glassfish-ejb-api glassfish-el-api glassfish-jsp-api +Requires: glassfish-servlet-api hibernate-jpa-2.1-api jboss-jstl-1.2-api +%description +JvaServer(TM) Faces technology simplifies building user interfaces for +JavaServer applications. Developers of various skill levels can quickly build +web applications by: assembling reusable UI components in a page; connecting +these components to an application data source; and wiring client-generated +events to server-side event handlers. + +%package javadoc +Summary: Javadoc for mojarra +%description javadoc +This package contains the API documentation for mojarra. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +sed -i "s|-f @{pomFile}|-o -f @{pomFile}|" common/ant/maven.xml common/ant/maven-pre-maven-rename.xml +find . -name '*.class' -print -delete +find . -name '*.jar' -print -delete +mv LICENSE LICENSE.tmp +iconv -f ISO-8859-1 -t UTF-8 LICENSE.tmp > LICENSE +native2ascii -encoding UTF8 jsf-api/src/main/java/javax/faces/component/UIComponent.java \ + jsf-api/src/main/java/javax/faces/component/UIComponent.java +%pom_change_dep :ant org.apache.ant: jsf-tools +cp -p %{SOURCE1} jsf-api.pom +cp -p %{SOURCE2} jsf-impl.pom +for a in jsf-api.pom jsf-impl.pom; do + %pom_change_dep javax.servlet.jsp.jstl:jstl-api org.jboss.spec.javax.servlet.jstl:jboss-jstl-api_1.2_spec:1.0.3.Final ${a} +done + +%build +mkdir -p lib +names=' +apache-commons-collections +apache-commons-digester +apache-commons-beanutils +apache-commons-logging +' +for name in ${names} +do + ln -s `build-classpath ${name}` lib/$(basename ${name}).jar +done +mkdir -p lib/compile +names=' +atinject +bean-validation-api +cdi-api +glassfish-annotation-api +glassfish-ejb-api +glassfish-el-api +glassfish-jsp-api +glassfish-servlet-api +groovy/groovy-all +hibernate-jpa-2.1-api +jboss-jstl-1.2-api +' +for name in ${names} +do + ln -s `build-classpath ${name}` lib/compile/$(basename ${name}).jar +done +mkdir -p common/lib +ln -s `build-classpath aqute-bnd/biz.aQute.bnd` common/lib/bnd.jar +ln -s `build-classpath aqute-bnd/biz.aQute.bndlib` common/lib/bndlib.jar +ant \ + -Dbuild.sysclasspath=last \ + -Djsf.build.home=$PWD \ + -Dcontainer.name=tomcat7 \ + -Dmvn.cmd=xmvn +ant \ + -Dbuild.sysclasspath=last \ + -Djsf.build.home=$PWD \ + -Dcontainer.name=tomcat7 \ + -f jsf-api/build.xml \ + javadocs +ant \ + -Dbuild.sysclasspath=last \ + -Djsf.build.home=$PWD \ + -Dcontainer.name=tomcat7 \ + -f jsf-ri/build.xml \ + javadocs +%mvn_artifact jsf-api.pom jsf-api/build/lib/jsf-api-intermediate.jar +%mvn_artifact jsf-impl.pom jsf-ri/build/lib/javax.faces.jar +%mvn_alias com.sun.faces:jsf-api javax.faces:javax.faces-api +%mvn_alias com.sun.faces:jsf-impl org.glassfish:javax.faces + +%install +%mvn_install +install -d -m 755 %{buildroot}%{_javadocdir}/mojarra/jsf-api +cp -rp jsf-api/build/javadocs/* %{buildroot}%{_javadocdir}/mojarra/jsf-api/. +install -d -m 755 %{buildroot}%{_javadocdir}/mojarra/jsf-impl +cp -rp jsf-ri/build/javadocs/* %{buildroot}%{_javadocdir}/mojarra/jsf-impl/. + +%files -f .mfiles +%license LICENSE +%doc docs/index.html +%doc docs/releasenotes.html +%doc docs/community.html +%doc docs/jsf-2_1-changelog.html + +%files javadoc +%{_javadocdir}/mojarra +%license LICENSE + +%changelog +* Fri Sep 11 2020 huanghaitao - 2.2.13-1 +- package init diff --git a/mojarra.yaml b/mojarra.yaml new file mode 100644 index 0000000..f68b535 --- /dev/null +++ b/mojarra.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: javaserverfaces/mojarra +tag_prefix: "" +seperator: "."