<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,7 +1,7 @@
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;install4j version=&quot;4.1.3&quot; transformSequenceNumber=&quot;2&quot;&gt;
-  &lt;directoryPresets config=&quot;./src/java-rebel-1.1.1/Notice.txt&quot; /&gt;
-  &lt;application name=&quot;Lift Framework&quot; distributionSourceDir=&quot;&quot; applicationId=&quot;5718-3659-1334-6595&quot; mediaDir=&quot;./target&quot; mediaFilePattern=&quot;${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}&quot; compression=&quot;6&quot; lzmaCompression=&quot;false&quot; pack200Compression=&quot;true&quot; excludeSignedFromPacking=&quot;true&quot; keepModificationTimes=&quot;false&quot; shortName=&quot;liftweb&quot; publisher=&quot;The Lift Open Source Comunity&quot; publisherWeb=&quot;http://www.liftweb.net/&quot; version=&quot;0.8&quot; allPathsRelative=&quot;true&quot; backupOnSave=&quot;false&quot; autoSave=&quot;true&quot; convertDotsToUnderscores=&quot;true&quot; macSignature=&quot;????&quot; javaMinVersion=&quot;1.5&quot; javaMaxVersion=&quot;&quot; allowBetaVM=&quot;true&quot; jdkMode=&quot;jdk&quot; jdkName=&quot;JRE 1.5&quot;&gt;
+&lt;install4j version=&quot;4.1.5&quot; transformSequenceNumber=&quot;2&quot;&gt;
+  &lt;directoryPresets config=&quot;./src/javarebel-1.2.2/Install.html&quot; /&gt;
+  &lt;application name=&quot;Lift Framework&quot; distributionSourceDir=&quot;&quot; applicationId=&quot;5718-3659-1334-6595&quot; mediaDir=&quot;./target&quot; mediaFilePattern=&quot;${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}&quot; compression=&quot;6&quot; lzmaCompression=&quot;false&quot; pack200Compression=&quot;true&quot; excludeSignedFromPacking=&quot;true&quot; keepModificationTimes=&quot;false&quot; shortName=&quot;liftweb&quot; publisher=&quot;The Lift Open Source Comunity&quot; publisherWeb=&quot;http://www.liftweb.net/&quot; version=&quot;0.11&quot; allPathsRelative=&quot;true&quot; backupOnSave=&quot;false&quot; autoSave=&quot;true&quot; convertDotsToUnderscores=&quot;true&quot; macSignature=&quot;????&quot; installerName=&quot;&quot; javaMinVersion=&quot;1.5&quot; javaMaxVersion=&quot;&quot; allowBetaVM=&quot;true&quot; jdkMode=&quot;runtimeJre&quot; jdkName=&quot;&quot;&gt;
     &lt;languages skipLanguageSelection=&quot;false&quot;&gt;
       &lt;principalLanguage id=&quot;en&quot; customLocalizationFile=&quot;&quot; /&gt;
       &lt;additionalLanguages /&gt;
@@ -18,18 +18,18 @@
     &lt;mountPoints&gt;
       &lt;mountPoint id=&quot;171&quot; root=&quot;&quot; location=&quot;apache-maven&quot; mode=&quot;755&quot; /&gt;
       &lt;mountPoint id=&quot;172&quot; root=&quot;&quot; location=&quot;java-rebel&quot; mode=&quot;755&quot; /&gt;
-      &lt;mountPoint id=&quot;120&quot; root=&quot;&quot; location=&quot;bin&quot; mode=&quot;755&quot; /&gt;
     &lt;/mountPoints&gt;
     &lt;entries&gt;
-      &lt;dirEntry mountPoint=&quot;171&quot; file=&quot;./src/apache-maven-2.0.8&quot; overwrite=&quot;0&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; excludeSuffixes=&quot;&quot; dirMode=&quot;755&quot;&gt;
+      &lt;dirEntry mountPoint=&quot;171&quot; file=&quot;./src/apache-maven-2.0.9&quot; overwrite=&quot;0&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; excludeSuffixes=&quot;&quot; dirMode=&quot;755&quot;&gt;
         &lt;exclude&gt;
           &lt;entry location=&quot;.DS_Store&quot; fileType=&quot;regular&quot; /&gt;
         &lt;/exclude&gt;
       &lt;/dirEntry&gt;
-      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/java-rebel-1.1.1/javarebel.jar&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
-      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/java-rebel-1.1.1/javarebel.lic&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
-      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/java-rebel-1.1.1/License.txt&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
-      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/java-rebel-1.1.1/Notice.txt&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
+      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/javarebel-1.2.2/javarebel.jar&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
+      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/javarebel-1.2.2/javarebel.lic&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
+      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/javarebel-1.2.2/License.txt&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
+      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/javarebel-1.2.2/Notice.txt&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
+      &lt;fileEntry mountPoint=&quot;172&quot; file=&quot;./src/javarebel-1.2.2/Install.html&quot; overwrite=&quot;1&quot; shared=&quot;false&quot; mode=&quot;755&quot; uninstallMode=&quot;2&quot; /&gt;
     &lt;/entries&gt;
     &lt;components&gt;
       &lt;component name=&quot;Apache Maven 2.0.8&quot; id=&quot;123&quot; displayDescription=&quot;false&quot; selected=&quot;true&quot; mandatory=&quot;false&quot; downloadable=&quot;false&quot;&gt;
@@ -541,7 +541,7 @@ if(WinEnvVars.getenv(&quot;JAVA_HOME&quot;) == null){
       &lt;exclude /&gt;
       &lt;variables /&gt;
     &lt;/macosFolder&gt;
-    &lt;win32 name=&quot;Windows&quot; id=&quot;57&quot; mediaFileName=&quot;&quot; installDir=&quot;${compiler:sys.shortName}-${compiler:sys.version}&quot; overridePrincipalLanguage=&quot;false&quot; requires64bit=&quot;false&quot; runPostProcessor=&quot;false&quot; postProcessor=&quot;&quot; failOnPostProcessorError=&quot;false&quot; includedJRE=&quot;windows-x86-1.6.0_06&quot; manualJREEntry=&quot;false&quot; bundleType=&quot;1&quot; jreURL=&quot;http://scala-tools.org/windows-x86-1.6.0_06.tar.gz&quot; jreFtpURL=&quot;&quot; jreShared=&quot;false&quot; customInstallBaseDir=&quot;&quot; createUninstallIcon=&quot;true&quot; contentFilesType=&quot;1&quot; downloadURL=&quot;&quot; runAsAdmin=&quot;true&quot;&gt;
+    &lt;win32 name=&quot;Windows&quot; id=&quot;57&quot; mediaFileName=&quot;&quot; installDir=&quot;${compiler:sys.shortName}-${compiler:sys.version}&quot; overridePrincipalLanguage=&quot;false&quot; requires64bit=&quot;false&quot; runPostProcessor=&quot;false&quot; postProcessor=&quot;&quot; failOnPostProcessorError=&quot;false&quot; includedJRE=&quot;windows-x86-1.6.0_12&quot; manualJREEntry=&quot;false&quot; bundleType=&quot;2&quot; jreURL=&quot;http://scala-tools.org/windows-x86-1.6.0_12.tar.gz&quot; jreFtpURL=&quot;&quot; jreShared=&quot;true&quot; customInstallBaseDir=&quot;&quot; createUninstallIcon=&quot;true&quot; contentFilesType=&quot;1&quot; downloadURL=&quot;&quot; runAsAdmin=&quot;true&quot;&gt;
       &lt;excludedLaunchers /&gt;
       &lt;excludedComponents /&gt;
       &lt;excludedBeans /&gt;
@@ -562,6 +562,7 @@ if(WinEnvVars.getenv(&quot;JAVA_HOME&quot;) == null){
     &lt;/unixInstaller&gt;
   &lt;/mediaSets&gt;
   &lt;buildIds buildAll=&quot;false&quot;&gt;
+    &lt;mediaSet refId=&quot;54&quot; /&gt;
     &lt;mediaSet refId=&quot;57&quot; /&gt;
   &lt;/buildIds&gt;
 &lt;/install4j&gt;</diff>
      <filename>lift-installer/lift-enviroment-installer.install4j</filename>
    </modified>
    <modified>
      <diff>@@ -23,7 +23,7 @@ import _root_.net.liftweb.http.js.JSArtifacts
 import _root_.net.liftweb.http.js.jquery._
 import _root_.scala.xml._
 import _root_.scala.collection.mutable.{ListBuffer}
-import _root_.java.util.{Locale, TimeZone}
+import _root_.java.util.{Locale, TimeZone, ResourceBundle}
 import _root_.javax.servlet.http.{HttpServlet, HttpServletRequest , HttpServletResponse, HttpSession, Cookie}
 import _root_.javax.servlet.{ServletContext}
 import _root_.java.io.{InputStream, ByteArrayOutputStream, BufferedReader, StringReader}
@@ -44,8 +44,8 @@ object LiftRules {
   type ViewDispatchPF = PartialFunction[List[String], Either[() =&gt; Box[NodeSeq], LiftView]]
   type HttpAuthProtectedResourcePF = PartialFunction[ParsePath, Box[Role]]
   type ExceptionHandlerPF = PartialFunction[(Props.RunModes.Value, Req, Throwable), LiftResponse]
-
-
+  type ResourceBundleFactoryPF = PartialFunction[(String,Locale), ResourceBundle]
+  
   /**
    * A partial function that allows the application to define requests that should be
    * handled by lift rather than the default servlet handler
@@ -312,9 +312,11 @@ object LiftRules {
    * A function that takes the current HTTP request and returns the current
    */
   var localeCalculator: Box[HttpServletRequest] =&gt; Locale = defaultLocaleCalculator _
-
+  
   def defaultLocaleCalculator(request: Box[HttpServletRequest]) = request.flatMap(_.getLocale() match {case null =&gt; Empty case l: Locale =&gt; Full(l)}).openOr(Locale.getDefault())
-
+  
+  var resourceBundleFactories = RulesSeq[ResourceBundleFactoryPF] 
+  
   private val (hasContinuations_?, contSupport, getContinuation, getObject, setObject, suspend, resume) = {
     try {
       val cc = Class.forName(&quot;org.mortbay.util.ajax.ContinuationSupport&quot;)</diff>
      <filename>lift/src/main/scala/net/liftweb/http/LiftRules.scala</filename>
    </modified>
    <modified>
      <diff>@@ -232,17 +232,20 @@ object S extends HasParams {
   /**
    * Get the resource bundle for the current locale
    */
-  def resourceBundles: List[ResourceBundle] = {
-    _resBundle.value match {
-      case Nil =&gt; _resBundle.set(LiftRules.resourceNames.flatMap(name =&gt; tryo(
-              List(ResourceBundle.getBundle(name, locale))
-            ) openOr Nil))
-        _resBundle.value
-      case bundles =&gt; bundles
-
-    }
-  }
-
+   def resourceBundles: List[ResourceBundle] = {
+     _resBundle.value match {
+       case Nil =&gt; {
+         _resBundle.set(LiftRules.resourceNames.flatMap(name =&gt; tryo(
+           List(ResourceBundle.getBundle(name, locale))
+         ).openOr(
+           NamedPF.applyBox((name, locale), LiftRules.resourceBundleFactories.toList).map(List(_)) openOr Nil
+         )))
+         _resBundle.value
+       }
+       case bundles =&gt; bundles
+     }
+   }
+   
   /**
    * Get the lift core resource bundle for the current locale
    */</diff>
      <filename>lift/src/main/scala/net/liftweb/http/S.scala</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/LICENSE.txt</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/NOTICE.txt</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/README.txt</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/bin/m2</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/bin/m2.bat</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/bin/m2.conf</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/bin/mvn</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/bin/mvn.bat</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/bin/mvnDebug</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/bin/mvnDebug.bat</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/boot/classworlds-1.1.jar</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/conf/settings.xml</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/apache-maven-2.0.8/lib/maven-2.0.8-uber.jar</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/java-rebel-1.1.1/Changelog.txt</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/java-rebel-1.1.1/Install.html</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/java-rebel-1.1.1/License.txt</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/java-rebel-1.1.1/Notice.txt</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/java-rebel-1.1.1/javarebel.jar</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/java-rebel-1.1.1/javarebel.lic</filename>
    </removed>
    <removed>
      <filename>lift-installer/src/lift-helpers/TODO.txt</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>bcb72cd09d664e96e5dad42bd7a54c807ebec7b2</id>
    </parent>
  </parents>
  <author>
    <name>Timothy Perrett</name>
    <login>timperrett</login>
    <email>hello@timperrett.com</email>
  </author>
  <url>http://github.com/dpp/liftweb/commit/6b9cb7d6c97fd69f4a565b448d8f0d3077a6047a</url>
  <id>6b9cb7d6c97fd69f4a565b448d8f0d3077a6047a</id>
  <committed-date>2009-02-27T16:12:35-08:00</committed-date>
  <authored-date>2009-02-27T16:12:35-08:00</authored-date>
  <message>Added localization extensions</message>
  <tree>23c55718cf85c5d4673dca69603060114f78acd0</tree>
  <committer>
    <name>Timothy Perrett</name>
    <login>timperrett</login>
    <email>hello@timperrett.com</email>
  </committer>
</commit>
