net.jawr.web.resource.bundle.locale.ResourceBundleMessagesGenerator Maven / Gradle / Ivy
Go to download
Javascript/CSS bundling and compressing tool for java web apps.
By using jawr resources are automatically bundled together and optionally minified and gzipped.
Jawr provides tag libraries to reference a generated bundle either by id or by using the name of any of its members.
/**
* Copyright 2008 Jordi Hern?ndez Sell?s
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package net.jawr.web.resource.bundle.locale;
import java.io.Reader;
import net.jawr.web.resource.bundle.factory.util.ClassLoaderResourceUtils;
import net.jawr.web.resource.bundle.generator.AbstractJavascriptGenerator;
import net.jawr.web.resource.bundle.generator.GeneratorContext;
import net.jawr.web.resource.bundle.generator.GeneratorRegistry;
import net.jawr.web.resource.bundle.generator.ResourceGenerator;
import net.jawr.web.resource.bundle.locale.message.MessageBundleScriptCreator;
import org.apache.log4j.Logger;
/**
* A generator that creates a script from message bundles.
* The generated script can be used to reference the message literals easily from javascript.
*
* @author Jordi Hern?ndez Sell?s
*
*/
public class ResourceBundleMessagesGenerator extends AbstractJavascriptGenerator implements ResourceGenerator {
public static final String GRAILS_WAR_DEPLOYED = "jawr.grails.war.deployed";
private static final String GRAILS_MESSAGE_CREATOR = "net.jawr.web.resource.bundle.locale.message.GrailsMessageBundleScriptCreator";
private static final Logger log = Logger.getLogger(ResourceBundleMessagesGenerator.class);
/* (non-Javadoc)
* @see net.jawr.web.resource.bundle.generator.ResourceGenerator#createResource(java.lang.String, java.nio.charset.Charset)
*/
public Reader createResource(GeneratorContext context) {
MessageBundleScriptCreator creator = null;
// In grails apps, the generator uses a special implementation
if(null == context.getServletContext().getAttribute(ResourceBundleMessagesGenerator.GRAILS_WAR_DEPLOYED)){
if(log.isDebugEnabled())
log.debug("Using standard messages generator. ");
creator = new MessageBundleScriptCreator(context);
}
else {
if(log.isDebugEnabled())
log.debug("Using grails messages generator. ");
// Loading this way prevents unwanted dependencies in non grails applications.
Object[] param = {context};
creator = (MessageBundleScriptCreator) ClassLoaderResourceUtils.buildObjectInstance(GRAILS_MESSAGE_CREATOR,param);
}
return creator.createScript(context.getCharset());
}
/* (non-Javadoc)
* @see net.jawr.web.resource.bundle.generator.ResourceGenerator#getMappingPrefix()
*/
public String getMappingPrefix() {
return GeneratorRegistry.MESSAGE_BUNDLE_PREFIX;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy