You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2013/05/17 19:14:52 UTC
[3/3] git commit: Remove tapestry-yuicompressor Build
improved/overridable infrastructure for tapestry-wro4j
Remove tapestry-yuicompressor
Build improved/overridable infrastructure for tapestry-wro4j
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/32beedda
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/32beedda
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/32beedda
Branch: refs/heads/master
Commit: 32beedda3426c5b90b93b5cc42d8535df4979f3a
Parents: a5600e8
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Fri May 17 10:14:44 2013 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Fri May 17 10:14:44 2013 -0700
----------------------------------------------------------------------
54_RELEASE_NOTES.txt | 14 +
settings.gradle | 2 +-
.../internal/wro4j/AbstractMinimizer.java | 123 ++++
.../wro4j/CoffeeScriptResourceCompiler.java | 67 +--
.../wro4j/ResourceProcessorSourceImpl.java | 83 +++
.../tapestry5/wro4j/modules/WRO4JModule.java | 35 +-
.../wro4j/services/ResourceProcessor.java | 43 ++
.../wro4j/services/ResourceProcessorSource.java | 39 ++
tapestry-yuicompressor/LICENSE-2.0.txt | 202 ------
tapestry-yuicompressor/NOTICE.txt | 492 ---------------
tapestry-yuicompressor/build.gradle | 15 -
.../internal/yuicompressor/AbstractMinimizer.java | 123 ----
.../yuicompressor/CSSResourceMinimizer.java | 53 --
.../yuicompressor/JavaScriptResourceMinimizer.java | 269 --------
.../internal/yuicompressor/package-info.java | 18 -
.../yuicompressor/modules/YuiCompressorModule.java | 43 --
.../yuicompressor/modules/package-info.java | 18 -
tapestry-yuicompressor/src/test/conf/testng.xml | 11 -
.../itest/YUICompressorIntegrationTests.groovy | 61 --
.../yuicompressor/testapp/pages/BadJavaScript.java | 9 -
.../java/yuicompressor/testapp/pages/Index.java | 55 --
.../yuicompressor/testapp/services/AppModule.java | 23 -
.../src/test/resources/log4j.properties | 17 -
.../yuicompressor/testapp/pages/BadJavaScript.tml | 6 -
.../yuicompressor/testapp/pages/Index.tml | 26 -
.../resources/yuicompressor/testapp/pages/bad.js | 30 -
.../src/test/webapp/WEB-INF/web.xml | 19 -
27 files changed, 356 insertions(+), 1540 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/54_RELEASE_NOTES.txt
----------------------------------------------------------------------
diff --git a/54_RELEASE_NOTES.txt b/54_RELEASE_NOTES.txt
index da6c633..477d4f0 100644
--- a/54_RELEASE_NOTES.txt
+++ b/54_RELEASE_NOTES.txt
@@ -72,6 +72,20 @@ The useful RandomDataSource class has been extracted into a new module, tapestry
# Breaking Changes:
+## tapestry-yuicompressor replaced with tapestry-wro4j
+
+The tapestry-yuicompressor module has been removed and superseded by tapestry-wro4j. WRO4J (Web Resource
+Optimizer for Java) is a Apache-licensed project that provides support for CoffeeScript support, Less and
+SASS processing, and various forms of JavaScript and CSS minimization. The new tapestry-wro4j module enables
+a base set of these.
+
+With tapestry-wro4j in place, you can write your client-side code in CoffeeScript (with the ".coffee" file
+extension) and Tapestry will take care of converting it, at runtime, to JavaScript.
+
+The WRO4J support is separate and optional, as it is not an Apache Software Foundation project, and it has a
+large number of dependencies needed to run the various processors (some of which are written in Ruby and require JRuby,
+for example).
+
## RenderSupport Removed
The RenderSupport interface, which was deprecated in Tapestry 5.2, has been removed entirely.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/settings.gradle
----------------------------------------------------------------------
diff --git a/settings.gradle b/settings.gradle
index 4338dbc..6b3e63f 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,6 +1,6 @@
include "plastic", "tapestry5-annotations", "tapestry-test", "tapestry-func", "tapestry-ioc", "tapestry-json", "tapestry-core"
include "tapestry-hibernate-core", "tapestry-hibernate", "tapestry-jmx", "tapestry-upload", "tapestry-spring"
-include "tapestry-beanvalidator", "tapestry-yuicompressor", "tapestry-jpa", "tapestry-kaptcha"
+include "tapestry-beanvalidator", "tapestry-jpa", "tapestry-kaptcha"
include "tapestry-javadoc", "quickstart", "tapestry-clojure", "tapestry-mongodb"
include "tapestry-test-data", 'tapestry-internal-test'
include "tapestry-wro4j"
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/AbstractMinimizer.java
----------------------------------------------------------------------
diff --git a/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/AbstractMinimizer.java b/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/AbstractMinimizer.java
new file mode 100644
index 0000000..37a0f62
--- /dev/null
+++ b/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/AbstractMinimizer.java
@@ -0,0 +1,123 @@
+// Copyright 2011-2013 The Apache Software Foundation
+//
+// 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 org.apache.tapestry5.internal.wro4j;
+
+import org.apache.tapestry5.internal.services.assets.BytestreamCache;
+import org.apache.tapestry5.internal.services.assets.StreamableResourceImpl;
+import org.apache.tapestry5.ioc.IOOperation;
+import org.apache.tapestry5.ioc.OperationTracker;
+import org.apache.tapestry5.ioc.util.ExceptionUtils;
+import org.apache.tapestry5.services.assets.AssetChecksumGenerator;
+import org.apache.tapestry5.services.assets.CompressionStatus;
+import org.apache.tapestry5.services.assets.ResourceMinimizer;
+import org.apache.tapestry5.services.assets.StreamableResource;
+import org.slf4j.Logger;
+
+import javax.management.RuntimeErrorException;
+import java.io.*;
+
+/**
+ * Base class for resource minimizers.
+ *
+ * @since 5.3
+ */
+public abstract class AbstractMinimizer implements ResourceMinimizer
+{
+ private static final double NANOS_TO_MILLIS = 1.0d / 1000000.0d;
+
+ protected final Logger logger;
+
+ protected final OperationTracker tracker;
+
+ private final AssetChecksumGenerator checksumGenerator;
+
+ private final String resourceType;
+
+ public AbstractMinimizer(Logger logger, OperationTracker tracker, AssetChecksumGenerator checksumGenerator, String resourceType)
+ {
+ this.logger = logger;
+ this.tracker = tracker;
+ this.resourceType = resourceType;
+ this.checksumGenerator = checksumGenerator;
+ }
+
+ public StreamableResource minimize(final StreamableResource input) throws IOException
+ {
+ long startNanos = System.nanoTime();
+
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
+
+ final Writer writer = new OutputStreamWriter(bos);
+
+ tracker.perform("Minimizing " + resourceType, new IOOperation<Void>()
+ {
+ public Void perform() throws IOException
+ {
+ try
+ {
+ doMinimize(input, writer);
+ } catch (RuntimeErrorException ex)
+ {
+ throw new RuntimeException(String.format("Unable to minimize %s: %s", resourceType,
+ ExceptionUtils.toMessage(ex)), ex);
+ }
+
+ return null;
+ }
+ });
+
+ writer.close();
+
+ // The content is minimized, but can still be (GZip) compressed.
+
+ StreamableResource output = new StreamableResourceImpl("minimized " + input.getDescription(),
+ input.getContentType(), CompressionStatus.COMPRESSABLE,
+ input.getLastModified(), new BytestreamCache(bos), checksumGenerator);
+
+ if (logger.isInfoEnabled())
+ {
+ long elapsedNanos = System.nanoTime() - startNanos;
+
+ int inputSize = input.getSize();
+ int outputSize = output.getSize();
+
+ double elapsedMillis = ((double) elapsedNanos) * NANOS_TO_MILLIS;
+ // e.g., reducing 100 bytes to 25 would be a (100-25)/100 reduction, or 75%
+ double reduction = 100d * ((double) (inputSize - outputSize)) / ((double) inputSize);
+
+ logger.info(String.format("Minimized %s (%,d input bytes of %s to %,d output bytes in %.2f ms, %.2f%% reduction)",
+ input.getDescription(), inputSize, resourceType, outputSize, elapsedMillis, reduction));
+ }
+
+ return output;
+ }
+
+ protected Reader toReader(StreamableResource input) throws IOException
+ {
+ InputStream is = input.openStream();
+
+ return new InputStreamReader(is, "UTF-8");
+ }
+
+ /**
+ * Implemented in subclasses to do the actual work.
+ *
+ * @param resource
+ * content to minimize
+ * @param output
+ * writer for minimized version of input
+ */
+ protected abstract void doMinimize(StreamableResource resource, Writer output) throws IOException;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/CoffeeScriptResourceCompiler.java
----------------------------------------------------------------------
diff --git a/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/CoffeeScriptResourceCompiler.java b/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/CoffeeScriptResourceCompiler.java
index 9dd9ed3..558e3e4 100644
--- a/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/CoffeeScriptResourceCompiler.java
+++ b/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/CoffeeScriptResourceCompiler.java
@@ -14,23 +14,20 @@
package org.apache.tapestry5.internal.wro4j;
-import org.apache.tapestry5.internal.services.assets.BytestreamCache;
-import org.apache.tapestry5.ioc.IOOperation;
-import org.apache.tapestry5.ioc.OperationTracker;
import org.apache.tapestry5.ioc.Resource;
import org.apache.tapestry5.services.assets.ResourceDependencies;
import org.apache.tapestry5.services.assets.ResourceTransformer;
+import org.apache.tapestry5.wro4j.services.ResourceProcessor;
+import org.apache.tapestry5.wro4j.services.ResourceProcessorSource;
import org.slf4j.Logger;
import ro.isdc.wro.extensions.processor.js.RhinoCoffeeScriptProcessor;
-import ro.isdc.wro.extensions.processor.support.coffeescript.CoffeeScript;
-import ro.isdc.wro.model.resource.ResourceType;
-import ro.isdc.wro.model.resource.processor.ResourcePreProcessor;
-import java.io.*;
+import java.io.IOException;
+import java.io.InputStream;
/**
* Compiles CoffeeScript to JavaScript, using {@link RhinoCoffeeScriptProcessor}. Because what is most commonly written
- * are AMD Modules, which have (effectively) an implicit hygenic function wrapper, we compile as with "--bare".
+ * are AMD Modules, which have (effectively) an implicit hygienic function wrapper, we compile as with "--bare".
*
* @since 5.4
*/
@@ -38,25 +35,16 @@ public class CoffeeScriptResourceCompiler implements ResourceTransformer
{
private final Logger logger;
- private final OperationTracker tracker;
-
private static final double NANOS_TO_MILLIS = 1.0d / 1000000.0d;
- private final ResourcePreProcessor compiler =
- new RhinoCoffeeScriptProcessor()
- {
-
- @Override
- protected CoffeeScript newCoffeeScript()
- {
- return new CoffeeScript().setOptions("bare");
- }
- };
+ private final ResourceProcessor compiler;
- public CoffeeScriptResourceCompiler(Logger logger, OperationTracker tracker)
+ public CoffeeScriptResourceCompiler(Logger logger, ResourceProcessorSource processorSource)
{
this.logger = logger;
- this.tracker = tracker;
+
+ // Could set up some special kind of injection for this, but overkill for the couple of places it is used.
+ compiler = processorSource.getProcessor("CoffeeScriptCompiler");
}
public String getTransformedContentType()
@@ -64,37 +52,20 @@ public class CoffeeScriptResourceCompiler implements ResourceTransformer
return "text/javascript";
}
-
public InputStream transform(final Resource source, ResourceDependencies dependencies) throws IOException
{
+ final long startTime = System.nanoTime();
- return tracker.perform(String.format("Compiling %s from CoffeeScript to JavaScript", source),
- new IOOperation<InputStream>()
- {
- public InputStream perform() throws IOException
- {
- final long startTime = System.nanoTime();
-
-
- ro.isdc.wro.model.resource.Resource res = ro.isdc.wro.model.resource.Resource.create(
- source.toURL().toString(),
- ResourceType.JS);
-
- Reader reader = new InputStreamReader(source.openStream());
- ByteArrayOutputStream out = new ByteArrayOutputStream(5000);
- Writer writer = new OutputStreamWriter(out);
-
- compiler.process(res, reader, writer);
-
- final long elapsedTime = System.nanoTime() - startTime;
+ InputStream result = compiler.process(String.format("Compiling %s from CoffeeScript to JavaScript", source),
+ source.toURL().toString(),
+ source.openStream());
+ final long elapsedTime = System.nanoTime() - startTime;
- logger.info(String.format("Compiled %s to JavaScript in %.2f ms",
- source,
- ((double) elapsedTime) * NANOS_TO_MILLIS));
+ logger.info(String.format("Compiled %s to JavaScript in %.2f ms",
+ source,
+ ((double) elapsedTime) * NANOS_TO_MILLIS));
- return new BytestreamCache(out).openStream();
- }
- });
+ return result;
}
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/ResourceProcessorSourceImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/ResourceProcessorSourceImpl.java b/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/ResourceProcessorSourceImpl.java
new file mode 100644
index 0000000..4536592
--- /dev/null
+++ b/tapestry-wro4j/src/main/java/org/apache/tapestry5/internal/wro4j/ResourceProcessorSourceImpl.java
@@ -0,0 +1,83 @@
+// Copyright 2013 The Apache Software Foundation
+//
+// 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 org.apache.tapestry5.internal.wro4j;
+
+import org.apache.tapestry5.internal.services.assets.BytestreamCache;
+import org.apache.tapestry5.ioc.ObjectCreator;
+import org.apache.tapestry5.ioc.internal.services.CachingObjectCreator;
+import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
+import org.apache.tapestry5.ioc.util.AvailableValues;
+import org.apache.tapestry5.ioc.util.UnknownValueException;
+import org.apache.tapestry5.wro4j.services.ResourceProcessor;
+import org.apache.tapestry5.wro4j.services.ResourceProcessorSource;
+import ro.isdc.wro.model.resource.Resource;
+import ro.isdc.wro.model.resource.ResourceType;
+import ro.isdc.wro.model.resource.processor.ResourcePreProcessor;
+
+import java.io.*;
+import java.util.Map;
+
+public class ResourceProcessorSourceImpl implements ResourceProcessorSource
+{
+ private final Map<String, ObjectCreator> configuration;
+
+ private final Map<String, ResourceProcessor> cache = CollectionFactory.newCaseInsensitiveMap();
+
+ public ResourceProcessorSourceImpl(Map<String, ObjectCreator> configuration)
+ {
+ this.configuration = configuration;
+ }
+
+ // Not called very often so synchronized is easier.
+ public synchronized ResourceProcessor getProcessor(String name)
+ {
+ ResourceProcessor result = cache.get(name);
+
+ if (result == null)
+ {
+ result = create(name);
+ cache.put(name, result);
+ }
+
+ return result;
+ }
+
+ private ResourceProcessor create(String name)
+ {
+ ObjectCreator<ResourcePreProcessor> creator = configuration.get(name);
+
+ if (creator == null)
+ {
+ throw new UnknownValueException(String.format("Unknown resource processor '%s'.", name), new AvailableValues("configured processors", configuration));
+ }
+
+ final ObjectCreator<ResourcePreProcessor> lazyCreator = new CachingObjectCreator<ResourcePreProcessor>(creator);
+
+ return new ResourceProcessor()
+ {
+ public InputStream process(String operationDescription, String inputURL, InputStream input) throws IOException
+ {
+ // That second parameter will cause us some grief, shortly:
+ Resource resource = Resource.create(inputURL, ResourceType.JS);
+
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream(5000);
+
+ lazyCreator.createObject().process(resource, new InputStreamReader(input), new OutputStreamWriter(outputStream));
+
+ return new BytestreamCache(outputStream).openStream();
+ }
+ };
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/modules/WRO4JModule.java
----------------------------------------------------------------------
diff --git a/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/modules/WRO4JModule.java b/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/modules/WRO4JModule.java
index 006448c..edd4f99 100644
--- a/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/modules/WRO4JModule.java
+++ b/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/modules/WRO4JModule.java
@@ -15,10 +15,16 @@
package org.apache.tapestry5.wro4j.modules;
import org.apache.tapestry5.internal.wro4j.CoffeeScriptResourceCompiler;
+import org.apache.tapestry5.internal.wro4j.ResourceProcessorSourceImpl;
import org.apache.tapestry5.ioc.MappedConfiguration;
+import org.apache.tapestry5.ioc.ObjectCreator;
+import org.apache.tapestry5.ioc.ServiceBinder;
import org.apache.tapestry5.ioc.annotations.Contribute;
import org.apache.tapestry5.services.assets.ResourceTransformer;
import org.apache.tapestry5.services.assets.StreamableResourceSource;
+import org.apache.tapestry5.wro4j.services.ResourceProcessorSource;
+import ro.isdc.wro.extensions.processor.js.RhinoCoffeeScriptProcessor;
+import ro.isdc.wro.extensions.processor.support.coffeescript.CoffeeScript;
/**
* Configures CoffeeScript-to-JavaScript compilation.
@@ -27,8 +33,35 @@ import org.apache.tapestry5.services.assets.StreamableResourceSource;
*/
public class WRO4JModule
{
+ public static void bind(ServiceBinder binder)
+ {
+ binder.bind(ResourceProcessorSource.class, ResourceProcessorSourceImpl.class);
+ }
+
+ @Contribute(ResourceProcessorSource.class)
+ public static void provideDefaultProcessors(MappedConfiguration<String, ObjectCreator> configuration)
+ {
+ configuration.add("CoffeeScriptCompiler",
+ new ObjectCreator()
+ {
+ public Object createObject()
+ {
+ return new RhinoCoffeeScriptProcessor()
+ {
+ @Override
+ protected CoffeeScript newCoffeeScript()
+ {
+ return new CoffeeScript().setOptions("bare");
+ }
+ };
+ }
+ }
+ );
+ }
+
@Contribute(StreamableResourceSource.class)
- public static void provideCoffeeScriptCompilation(MappedConfiguration<String, ResourceTransformer> configuration)
+ public static void provideCoffeeScriptCompilation
+ (MappedConfiguration<String, ResourceTransformer> configuration)
{
configuration.addInstance("coffee", CoffeeScriptResourceCompiler.class);
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/services/ResourceProcessor.java
----------------------------------------------------------------------
diff --git a/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/services/ResourceProcessor.java b/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/services/ResourceProcessor.java
new file mode 100644
index 0000000..d63e800
--- /dev/null
+++ b/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/services/ResourceProcessor.java
@@ -0,0 +1,43 @@
+// Copyright 2013 The Apache Software Foundation
+//
+// 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 org.apache.tapestry5.wro4j.services;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * A wrapper around a WRO4J {@link ro.isdc.wro.model.resource.processor.ResourcePreProcessor}. This can represent
+ * a compilation process (such as CoffeeScript to JavaScript), or a transformation process (such as minimizing
+ * JavaScript or CSS).
+ *
+ * @see ResourceProcessorSource
+ * @since 5.4
+ */
+public interface ResourceProcessor
+{
+ /**
+ * Processes an input stream, producing an output stream.
+ *
+ * @param operationDescription
+ * used to {@linkplain org.apache.tapestry5.ioc.OperationTracker#perform(String, org.apache.tapestry5.ioc.IOOperation) track the operation}
+ * @param inputURL
+ * represents the resource being processed (typically, just used for error reporting)
+ * @param input
+ * stream of bytes to process
+ * @return processed stream
+ * @throws IOException
+ */
+ InputStream process(String operationDescription, String inputURL, InputStream input) throws IOException;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/services/ResourceProcessorSource.java
----------------------------------------------------------------------
diff --git a/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/services/ResourceProcessorSource.java b/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/services/ResourceProcessorSource.java
new file mode 100644
index 0000000..d09456a
--- /dev/null
+++ b/tapestry-wro4j/src/main/java/org/apache/tapestry5/wro4j/services/ResourceProcessorSource.java
@@ -0,0 +1,39 @@
+// Copyright 2013 The Apache Software Foundation
+//
+// 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 org.apache.tapestry5.wro4j.services;
+
+import org.apache.tapestry5.ioc.ObjectCreator;
+import org.apache.tapestry5.ioc.annotations.UsesMappedConfiguration;
+
+/**
+ * Factory for {@link ResourceProcessor} instances; its configuration assigns names to {@linkplain ObjectCreator factories} that produce a {@link ro.isdc.wro.model.resource.processor.ResourcePreProcessor}, which is
+ * wrapped and returned as a {@link ResourceProcessor}.
+ *
+ * @since 5.4
+ */
+@UsesMappedConfiguration(ObjectCreator.class)
+public interface ResourceProcessorSource
+{
+ /**
+ * Returns the processor (which are cached once created)
+ *
+ * @param name
+ * name identifying the processor.
+ * @return the processor
+ * @throws RuntimeException
+ * if no processor with name exists
+ */
+ ResourceProcessor getProcessor(String name);
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/LICENSE-2.0.txt
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/LICENSE-2.0.txt b/tapestry-yuicompressor/LICENSE-2.0.txt
deleted file mode 100644
index d645695..0000000
--- a/tapestry-yuicompressor/LICENSE-2.0.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/NOTICE.txt
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/NOTICE.txt b/tapestry-yuicompressor/NOTICE.txt
deleted file mode 100644
index 91ca961..0000000
--- a/tapestry-yuicompressor/NOTICE.txt
+++ /dev/null
@@ -1,492 +0,0 @@
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
-
-This product requires the Rhino JavaScript interpreter (http://www.mozilla.org/rhino/),
-which uses the Mozilla Public License 1.1:
-
- MOZILLA PUBLIC LICENSE
- Version 1.1
-
- ---------------
-
-1. Definitions.
-
- 1.0.1. "Commercial Use" means distribution or otherwise making the
- Covered Code available to a third party.
-
- 1.1. "Contributor" means each entity that creates or contributes to
- the creation of Modifications.
-
- 1.2. "Contributor Version" means the combination of the Original
- Code, prior Modifications used by a Contributor, and the Modifications
- made by that particular Contributor.
-
- 1.3. "Covered Code" means the Original Code or Modifications or the
- combination of the Original Code and Modifications, in each case
- including portions thereof.
-
- 1.4. "Electronic Distribution Mechanism" means a mechanism generally
- accepted in the software development community for the electronic
- transfer of data.
-
- 1.5. "Executable" means Covered Code in any form other than Source
- Code.
-
- 1.6. "Initial Developer" means the individual or entity identified
- as the Initial Developer in the Source Code notice required by Exhibit
- A.
-
- 1.7. "Larger Work" means a work which combines Covered Code or
- portions thereof with code not governed by the terms of this License.
-
- 1.8. "License" means this document.
-
- 1.8.1. "Licensable" means having the right to grant, to the maximum
- extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein.
-
- 1.9. "Modifications" means any addition to or deletion from the
- substance or structure of either the Original Code or any previous
- Modifications. When Covered Code is released as a series of files, a
- Modification is:
- A. Any addition to or deletion from the contents of a file
- containing Original Code or previous Modifications.
-
- B. Any new file that contains any part of the Original Code or
- previous Modifications.
-
- 1.10. "Original Code" means Source Code of computer software code
- which is described in the Source Code notice required by Exhibit A as
- Original Code, and which, at the time of its release under this
- License is not already Covered Code governed by this License.
-
- 1.10.1. "Patent Claims" means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process,
- and apparatus claims, in any patent Licensable by grantor.
-
- 1.11. "Source Code" means the preferred form of the Covered Code for
- making modifications to it, including all modules it contains, plus
- any associated interface definition files, scripts used to control
- compilation and installation of an Executable, or source code
- differential comparisons against either the Original Code or another
- well known, available Covered Code of the Contributor's choice. The
- Source Code can be in a compressed or archival form, provided the
- appropriate decompression or de-archiving software is widely available
- for no charge.
-
- 1.12. "You" (or "Your") means an individual or a legal entity
- exercising rights under, and complying with all of the terms of, this
- License or a future version of this License issued under Section 6.1.
- For legal entities, "You" includes any entity which controls, is
- controlled by, or is under common control with You. For purposes of
- this definition, "control" means (a) the power, direct or indirect,
- to cause the direction or management of such entity, whether by
- contract or otherwise, or (b) ownership of more than fifty percent
- (50%) of the outstanding shares or beneficial ownership of such
- entity.
-
-2. Source Code License.
-
- 2.1. The Initial Developer Grant.
- The Initial Developer hereby grants You a world-wide, royalty-free,
- non-exclusive license, subject to third party intellectual property
- claims:
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce,
- modify, display, perform, sublicense and distribute the Original
- Code (or portions thereof) with or without Modifications, and/or
- as part of a Larger Work; and
-
- (b) under Patents Claims infringed by the making, using or
- selling of Original Code, to make, have made, use, practice,
- sell, and offer for sale, and/or otherwise dispose of the
- Original Code (or portions thereof).
-
- (c) the licenses granted in this Section 2.1(a) and (b) are
- effective on the date Initial Developer first distributes
- Original Code under the terms of this License.
-
- (d) Notwithstanding Section 2.1(b) above, no patent license is
- granted: 1) for code that You delete from the Original Code; 2)
- separate from the Original Code; or 3) for infringements caused
- by: i) the modification of the Original Code or ii) the
- combination of the Original Code with other software or devices.
-
- 2.2. Contributor Grant.
- Subject to third party intellectual property claims, each Contributor
- hereby grants You a world-wide, royalty-free, non-exclusive license
-
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, to use, reproduce, modify,
- display, perform, sublicense and distribute the Modifications
- created by such Contributor (or portions thereof) either on an
- unmodified basis, with other Modifications, as Covered Code
- and/or as part of a Larger Work; and
-
- (b) under Patent Claims infringed by the making, using, or
- selling of Modifications made by that Contributor either alone
- and/or in combination with its Contributor Version (or portions
- of such combination), to make, use, sell, offer for sale, have
- made, and/or otherwise dispose of: 1) Modifications made by that
- Contributor (or portions thereof); and 2) the combination of
- Modifications made by that Contributor with its Contributor
- Version (or portions of such combination).
-
- (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
- effective on the date Contributor first makes Commercial Use of
- the Covered Code.
-
- (d) Notwithstanding Section 2.2(b) above, no patent license is
- granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version;
- 3) for infringements caused by: i) third party modifications of
- Contributor Version or ii) the combination of Modifications made
- by that Contributor with other software (except as part of the
- Contributor Version) or other devices; or 4) under Patent Claims
- infringed by Covered Code in the absence of Modifications made by
- that Contributor.
-
-3. Distribution Obligations.
-
- 3.1. Application of License.
- The Modifications which You create or to which You contribute are
- governed by the terms of this License, including without limitation
- Section 2.2. The Source Code version of Covered Code may be
- distributed only under the terms of this License or a future version
- of this License released under Section 6.1, and You must include a
- copy of this License with every copy of the Source Code You
- distribute. You may not offer or impose any terms on any Source Code
- version that alters or restricts the applicable version of this
- License or the recipients' rights hereunder. However, You may include
- an additional document offering the additional rights described in
- Section 3.5.
-
- 3.2. Availability of Source Code.
- Any Modification which You create or to which You contribute must be
- made available in Source Code form under the terms of this License
- either on the same media as an Executable version or via an accepted
- Electronic Distribution Mechanism to anyone to whom you made an
- Executable version available; and if made available via Electronic
- Distribution Mechanism, must remain available for at least twelve (12)
- months after the date it initially became available, or at least six
- (6) months after a subsequent version of that particular Modification
- has been made available to such recipients. You are responsible for
- ensuring that the Source Code version remains available even if the
- Electronic Distribution Mechanism is maintained by a third party.
-
- 3.3. Description of Modifications.
- You must cause all Covered Code to which You contribute to contain a
- file documenting the changes You made to create that Covered Code and
- the date of any change. You must include a prominent statement that
- the Modification is derived, directly or indirectly, from Original
- Code provided by the Initial Developer and including the name of the
- Initial Developer in (a) the Source Code, and (b) in any notice in an
- Executable version or related documentation in which You describe the
- origin or ownership of the Covered Code.
-
- 3.4. Intellectual Property Matters
- (a) Third Party Claims.
- If Contributor has knowledge that a license under a third party's
- intellectual property rights is required to exercise the rights
- granted by such Contributor under Sections 2.1 or 2.2,
- Contributor must include a text file with the Source Code
- distribution titled "LEGAL" which describes the claim and the
- party making the claim in sufficient detail that a recipient will
- know whom to contact. If Contributor obtains such knowledge after
- the Modification is made available as described in Section 3.2,
- Contributor shall promptly modify the LEGAL file in all copies
- Contributor makes available thereafter and shall take other steps
- (such as notifying appropriate mailing lists or newsgroups)
- reasonably calculated to inform those who received the Covered
- Code that new knowledge has been obtained.
-
- (b) Contributor APIs.
- If Contributor's Modifications include an application programming
- interface and Contributor has knowledge of patent licenses which
- are reasonably necessary to implement that API, Contributor must
- also include this information in the LEGAL file.
-
- (c) Representations.
- Contributor represents that, except as disclosed pursuant to
- Section 3.4(a) above, Contributor believes that Contributor's
- Modifications are Contributor's original creation(s) and/or
- Contributor has sufficient rights to grant the rights conveyed by
- this License.
-
- 3.5. Required Notices.
- You must duplicate the notice in Exhibit A in each file of the Source
- Code. If it is not possible to put such notice in a particular Source
- Code file due to its structure, then You must include such notice in a
- location (such as a relevant directory) where a user would be likely
- to look for such a notice. If You created one or more Modification(s)
- You may add your name as a Contributor to the notice described in
- Exhibit A. You must also duplicate this License in any documentation
- for the Source Code where You describe recipients' rights or ownership
- rights relating to Covered Code. You may choose to offer, and to
- charge a fee for, warranty, support, indemnity or liability
- obligations to one or more recipients of Covered Code. However, You
- may do so only on Your own behalf, and not on behalf of the Initial
- Developer or any Contributor. You must make it absolutely clear than
- any such warranty, support, indemnity or liability obligation is
- offered by You alone, and You hereby agree to indemnify the Initial
- Developer and every Contributor for any liability incurred by the
- Initial Developer or such Contributor as a result of warranty,
- support, indemnity or liability terms You offer.
-
- 3.6. Distribution of Executable Versions.
- You may distribute Covered Code in Executable form only if the
- requirements of Section 3.1-3.5 have been met for that Covered Code,
- and if You include a notice stating that the Source Code version of
- the Covered Code is available under the terms of this License,
- including a description of how and where You have fulfilled the
- obligations of Section 3.2. The notice must be conspicuously included
- in any notice in an Executable version, related documentation or
- collateral in which You describe recipients' rights relating to the
- Covered Code. You may distribute the Executable version of Covered
- Code or ownership rights under a license of Your choice, which may
- contain terms different from this License, provided that You are in
- compliance with the terms of this License and that the license for the
- Executable version does not attempt to limit or alter the recipient's
- rights in the Source Code version from the rights set forth in this
- License. If You distribute the Executable version under a different
- license You must make it absolutely clear that any terms which differ
- from this License are offered by You alone, not by the Initial
- Developer or any Contributor. You hereby agree to indemnify the
- Initial Developer and every Contributor for any liability incurred by
- the Initial Developer or such Contributor as a result of any such
- terms You offer.
-
- 3.7. Larger Works.
- You may create a Larger Work by combining Covered Code with other code
- not governed by the terms of this License and distribute the Larger
- Work as a single product. In such a case, You must make sure the
- requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
- If it is impossible for You to comply with any of the terms of this
- License with respect to some or all of the Covered Code due to
- statute, judicial order, or regulation then You must: (a) comply with
- the terms of this License to the maximum extent possible; and (b)
- describe the limitations and the code they affect. Such description
- must be included in the LEGAL file described in Section 3.4 and must
- be included with all distributions of the Source Code. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Application of this License.
-
- This License applies to code to which the Initial Developer has
- attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
- 6.1. New Versions.
- Netscape Communications Corporation ("Netscape") may publish revised
- and/or new versions of the License from time to time. Each version
- will be given a distinguishing version number.
-
- 6.2. Effect of New Versions.
- Once Covered Code has been published under a particular version of the
- License, You may always continue to use it under the terms of that
- version. You may also choose to use such Covered Code under the terms
- of any subsequent version of the License published by Netscape. No one
- other than Netscape has the right to modify the terms applicable to
- Covered Code created under this License.
-
- 6.3. Derivative Works.
- If You create or use a modified version of this License (which you may
- only do in order to apply it to code which is not already Covered Code
- governed by this License), You must (a) rename Your license so that
- the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
- "MPL", "NPL" or any confusingly similar phrase do not appear in your
- license (except to note that your license differs from this License)
- and (b) otherwise make it clear that Your version of the license
- contains terms which differ from the Mozilla Public License and
- Netscape Public License. (Filling in the name of the Initial
- Developer, Original Code or Contributor in the notice described in
- Exhibit A shall not of themselves be deemed to be modifications of
- this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
- COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
- DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
- IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
- YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
- COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
- OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
- ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
- 8.1. This License and the rights granted hereunder will terminate
- automatically if You fail to comply with terms herein and fail to cure
- such breach within 30 days of becoming aware of the breach. All
- sublicenses to the Covered Code which are properly granted shall
- survive any termination of this License. Provisions which, by their
- nature, must remain in effect beyond the termination of this License
- shall survive.
-
- 8.2. If You initiate litigation by asserting a patent infringement
- claim (excluding declatory judgment actions) against Initial Developer
- or a Contributor (the Initial Developer or Contributor against whom
- You file such action is referred to as "Participant") alleging that:
-
- (a) such Participant's Contributor Version directly or indirectly
- infringes any patent, then any and all rights granted by such
- Participant to You under Sections 2.1 and/or 2.2 of this License
- shall, upon 60 days notice from Participant terminate prospectively,
- unless if within 60 days after receipt of notice You either: (i)
- agree in writing to pay Participant a mutually agreeable reasonable
- royalty for Your past and future use of Modifications made by such
- Participant, or (ii) withdraw Your litigation claim with respect to
- the Contributor Version against such Participant. If within 60 days
- of notice, a reasonable royalty and payment arrangement are not
- mutually agreed upon in writing by the parties or the litigation claim
- is not withdrawn, the rights granted by Participant to You under
- Sections 2.1 and/or 2.2 automatically terminate at the expiration of
- the 60 day notice period specified above.
-
- (b) any software, hardware, or device, other than such Participant's
- Contributor Version, directly or indirectly infringes any patent, then
- any rights granted to You by such Participant under Sections 2.1(b)
- and 2.2(b) are revoked effective as of the date You first made, used,
- sold, distributed, or had made, Modifications made by that
- Participant.
-
- 8.3. If You assert a patent infringement claim against Participant
- alleging that such Participant's Contributor Version directly or
- indirectly infringes any patent where such claim is resolved (such as
- by license or settlement) prior to the initiation of patent
- infringement litigation, then the reasonable value of the licenses
- granted by such Participant under Sections 2.1 or 2.2 shall be taken
- into account in determining the amount or value of any payment or
- license.
-
- 8.4. In the event of termination under Sections 8.1 or 8.2 above,
- all end user license agreements (excluding distributors and resellers)
- which have been validly granted by You or any distributor hereunder
- prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
- UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
- (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
- DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
- OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
- ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
- WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
- COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
- INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
- LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
- RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
- PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
- EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
- THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
- The Covered Code is a "commercial item," as that term is defined in
- 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
- software" and "commercial computer software documentation," as such
- terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
- C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
- all U.S. Government End Users acquire Covered Code with only those
- rights set forth herein.
-
-11. MISCELLANEOUS.
-
- This License represents the complete agreement concerning subject
- matter hereof. If any provision of this License is held to be
- unenforceable, such provision shall be reformed only to the extent
- necessary to make it enforceable. This License shall be governed by
- California law provisions (except to the extent applicable law, if
- any, provides otherwise), excluding its conflict-of-law provisions.
- With respect to disputes in which at least one party is a citizen of,
- or an entity chartered or registered to do business in the United
- States of America, any litigation relating to this License shall be
- subject to the jurisdiction of the Federal Courts of the Northern
- District of California, with venue lying in Santa Clara County,
- California, with the losing party responsible for costs, including
- without limitation, court costs and reasonable attorneys' fees and
- expenses. The application of the United Nations Convention on
- Contracts for the International Sale of Goods is expressly excluded.
- Any law or regulation which provides that the language of a contract
- shall be construed against the drafter shall not apply to this
- License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
- As between Initial Developer and the Contributors, each party is
- responsible for claims and damages arising, directly or indirectly,
- out of its utilization of rights under this License and You agree to
- work with Initial Developer and Contributors to distribute such
- responsibility on an equitable basis. Nothing herein is intended or
- shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
- Initial Developer may designate portions of the Covered Code as
- "Multiple-Licensed". "Multiple-Licensed" means that the Initial
- Developer permits you to utilize portions of the Covered Code under
- Your choice of the NPL or the alternative licenses, if any, specified
- by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
- ``The contents of this file are subject to the Mozilla Public License
- Version 1.1 (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.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
- The Original Code is ______________________________________.
-
- The Initial Developer of the Original Code is ________________________.
- Portions created by ______________________ are Copyright (C) ______
- _______________________. All Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the terms
- of the _____ license (the "[___] License"), in which case the
- provisions of [______] License are applicable instead of those
- above. If you wish to allow use of your version of this file only
- under the terms of the [____] License and not to allow others to use
- your version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice and
- other provisions required by the [___] License. If you do not delete
- the provisions above, a recipient may use your version of this file
- under either the MPL or the [___] License."
-
- [NOTE: The text of this Exhibit A may differ slightly from the text of
- the notices in the Source Code files of the Original Code. You should
- use the text of this Exhibit A rather than the text found in the
- Original Code Source Code for Your Modifications.]
-
-
-
-This product requires the YUICompressor library from Yahoo, Inc. (http://developer.yahoo.com/yui/compressor/).
-YUICompressor is distributed using the BSD license:
-
- COPYRIGHT
-
- Copyright (c) 2007-2009, Yahoo! Inc. All rights reserved.
-
- LICENSE
-
- All code specific to YUI Compressor is issued under a BSD license.
- YUI Compressor extends and implements code from Mozilla's Rhino project.
- Rhino is issued under the Mozilla Public License (MPL), and MPL applies
- to the Rhino source and binaries that are distributed with YUI Compressor.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/build.gradle
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/build.gradle b/tapestry-yuicompressor/build.gradle
deleted file mode 100644
index 6aef587..0000000
--- a/tapestry-yuicompressor/build.gradle
+++ /dev/null
@@ -1,15 +0,0 @@
-description = "Integrates YUI Compressor to minimize JavaScript and CSS resources"
-
-dependencies {
- compile project(':tapestry-core')
- compile "com.yahoo.platform.yui:yuicompressor:2.4.6"
-
- testCompile project(':tapestry-test')
- testCompile project(":tapestry-internal-test")
-}
-
-jar {
- manifest {
- attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.yuicompressor.services.YuiCompressorModule'
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/AbstractMinimizer.java
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/AbstractMinimizer.java b/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/AbstractMinimizer.java
deleted file mode 100644
index f7c9ea7..0000000
--- a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/AbstractMinimizer.java
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright 2011-2013 The Apache Software Foundation
-//
-// 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 org.apache.tapestry5.internal.yuicompressor;
-
-import org.apache.tapestry5.internal.services.assets.BytestreamCache;
-import org.apache.tapestry5.internal.services.assets.StreamableResourceImpl;
-import org.apache.tapestry5.ioc.IOOperation;
-import org.apache.tapestry5.ioc.OperationTracker;
-import org.apache.tapestry5.ioc.util.ExceptionUtils;
-import org.apache.tapestry5.services.assets.AssetChecksumGenerator;
-import org.apache.tapestry5.services.assets.CompressionStatus;
-import org.apache.tapestry5.services.assets.ResourceMinimizer;
-import org.apache.tapestry5.services.assets.StreamableResource;
-import org.slf4j.Logger;
-
-import javax.management.RuntimeErrorException;
-import java.io.*;
-
-/**
- * Base class for resource minimizers.
- *
- * @since 5.3
- */
-public abstract class AbstractMinimizer implements ResourceMinimizer
-{
- private static final double NANOS_TO_MILLIS = 1.0d / 1000000.0d;
-
- protected final Logger logger;
-
- protected final OperationTracker tracker;
-
- private final AssetChecksumGenerator checksumGenerator;
-
- private final String resourceType;
-
- public AbstractMinimizer(Logger logger, OperationTracker tracker, AssetChecksumGenerator checksumGenerator, String resourceType)
- {
- this.logger = logger;
- this.tracker = tracker;
- this.resourceType = resourceType;
- this.checksumGenerator = checksumGenerator;
- }
-
- public StreamableResource minimize(final StreamableResource input) throws IOException
- {
- long startNanos = System.nanoTime();
-
- ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
-
- final Writer writer = new OutputStreamWriter(bos);
-
- tracker.perform("Minimizing " + resourceType, new IOOperation<Void>()
- {
- public Void perform() throws IOException
- {
- try
- {
- doMinimize(input, writer);
- } catch (RuntimeErrorException ex)
- {
- throw new RuntimeException(String.format("Unable to minimize %s: %s", resourceType,
- ExceptionUtils.toMessage(ex)), ex);
- }
-
- return null;
- }
- });
-
- writer.close();
-
- // The content is minimized, but can still be (GZip) compressed.
-
- StreamableResource output = new StreamableResourceImpl("minimized " + input.getDescription(),
- input.getContentType(), CompressionStatus.COMPRESSABLE,
- input.getLastModified(), new BytestreamCache(bos), checksumGenerator);
-
- if (logger.isInfoEnabled())
- {
- long elapsedNanos = System.nanoTime() - startNanos;
-
- int inputSize = input.getSize();
- int outputSize = output.getSize();
-
- double elapsedMillis = ((double) elapsedNanos) * NANOS_TO_MILLIS;
- // e.g., reducing 100 bytes to 25 would be a (100-25)/100 reduction, or 75%
- double reduction = 100d * ((double) (inputSize - outputSize)) / ((double) inputSize);
-
- logger.info(String.format("Minimized %s (%,d input bytes of %s to %,d output bytes in %.2f ms, %.2f%% reduction)",
- input.getDescription(), inputSize, resourceType, outputSize, elapsedMillis, reduction));
- }
-
- return output;
- }
-
- protected Reader toReader(StreamableResource input) throws IOException
- {
- InputStream is = input.openStream();
-
- return new InputStreamReader(is, "UTF-8");
- }
-
- /**
- * Implemented in subclasses to do the actual work.
- *
- * @param resource
- * content to minimize
- * @param output
- * writer for minimized version of input
- */
- protected abstract void doMinimize(StreamableResource resource, Writer output) throws IOException;
-}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/CSSResourceMinimizer.java
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/CSSResourceMinimizer.java b/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/CSSResourceMinimizer.java
deleted file mode 100644
index d786829..0000000
--- a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/CSSResourceMinimizer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2011-2013 The Apache Software Foundation
-//
-// 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 org.apache.tapestry5.internal.yuicompressor;
-
-import com.yahoo.platform.yui.compressor.CssCompressor;
-import org.apache.tapestry5.ioc.OperationTracker;
-import org.apache.tapestry5.services.assets.AssetChecksumGenerator;
-import org.apache.tapestry5.services.assets.StreamableResource;
-import org.slf4j.Logger;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Writer;
-
-/**
- * Uses {@link CssCompressor} to reduce the size of CSS content.
- *
- * @since 5.3
- */
-public class CSSResourceMinimizer extends AbstractMinimizer
-{
- public CSSResourceMinimizer(Logger logger, OperationTracker tracker, AssetChecksumGenerator checksumGenerator)
- {
- super(logger, tracker, checksumGenerator, "CSS");
- }
-
- @Override
- protected void doMinimize(StreamableResource input, Writer output) throws IOException
- {
- Reader reader = toReader(input);
-
- try
- {
- new CssCompressor(reader).compress(output, -1);
- } finally
- {
- reader.close();
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java b/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java
deleted file mode 100644
index ddcd380..0000000
--- a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java
+++ /dev/null
@@ -1,269 +0,0 @@
-// Copyright 2011-2013 The Apache Software Foundation
-//
-// 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 org.apache.tapestry5.internal.yuicompressor;
-
-import com.yahoo.platform.yui.compressor.JavaScriptCompressor;
-import org.apache.tapestry5.ioc.OperationTracker;
-import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
-import org.apache.tapestry5.ioc.util.ExceptionUtils;
-import org.apache.tapestry5.services.assets.AssetChecksumGenerator;
-import org.apache.tapestry5.services.assets.StreamableResource;
-import org.mozilla.javascript.ErrorReporter;
-import org.mozilla.javascript.EvaluatorException;
-import org.slf4j.Logger;
-
-import java.io.IOException;
-import java.io.LineNumberReader;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * JavaScript resource minimizer based on the YUI {@link JavaScriptCompressor}.
- *
- * @since 5.3
- */
-public class JavaScriptResourceMinimizer extends AbstractMinimizer
-{
- private final static int RANGE = 5;
-
- private enum Where
- {
- EXACT, NEAR, FAR
- }
-
- private static final String[] IGNORED_WARNINGS = {
- "Try to use a single 'var' statement per scope.",
- "Using 'eval' is not recommended",
- "has already been declared in the same scope"
- };
-
- public JavaScriptResourceMinimizer(Logger logger, OperationTracker tracker, AssetChecksumGenerator checksumGenerator)
- {
- super(logger, tracker, checksumGenerator, "JavaScript");
- }
-
- protected void doMinimize(final StreamableResource resource, Writer output) throws IOException
- {
- final Set<Integer> errorLines = CollectionFactory.newSet();
-
- final Runnable identifySource = new Runnable()
- {
- boolean sourceIdentified = false;
-
- public void run()
- {
- if (!sourceIdentified)
- {
- logger.error(String.format("JavaScript compression problems for resource %s:",
- resource.getDescription()));
- sourceIdentified = true;
- }
- }
- };
-
- final AtomicInteger warningCount = new AtomicInteger();
-
- Runnable identifyWarnings = new Runnable()
- {
- public void run()
- {
- if (warningCount.get() > 0)
- {
- logger.error(String.format("%,d compression warnings; enable warning logging of %s to see details.",
- warningCount.get(),
- logger.getName()));
- }
- }
- };
-
- ErrorReporter errorReporter = new ErrorReporter()
- {
- private String format(String message, int line, int lineOffset)
- {
- if (line < 0)
- return message;
-
- return String.format("(%d:%d): %s", line, lineOffset, message);
- }
-
- public void warning(String message, String sourceName, int line, String lineSource, int lineOffset)
- {
- for (String ignored : IGNORED_WARNINGS)
- {
- if (message.contains(ignored))
- {
- return;
- }
- }
-
- identifySource.run();
-
- errorLines.add(line);
-
- if (logger.isWarnEnabled())
- {
- logger.warn(format(message, line, lineOffset));
- } else
- {
- warningCount.incrementAndGet();
- }
- }
-
- public EvaluatorException runtimeError(String message, String sourceName, int line, String lineSource,
- int lineOffset)
- {
- error(message, sourceName, line, lineSource, lineOffset);
-
- return new EvaluatorException(message);
- }
-
- public void error(String message, String sourceName, int line, String lineSource, int lineOffset)
- {
- identifySource.run();
-
- errorLines.add(line);
-
- logger.error(format(message, line, lineOffset));
- }
-
- };
-
- Reader reader = toReader(resource);
-
- try
- {
- JavaScriptCompressor compressor = new JavaScriptCompressor(reader, errorReporter);
- compressor.compress(output, -1, true, true, false, false);
-
- identifyWarnings.run();
-
- } catch (EvaluatorException ex)
- {
- identifySource.run();
-
- logInputLines(resource, errorLines);
-
- recoverFromException(ex, resource, output);
-
- } catch (Exception ex)
- {
- identifySource.run();
-
- recoverFromException(ex, resource, output);
- }
-
- reader.close();
- }
-
- private void recoverFromException(Exception ex, StreamableResource resource, Writer output) throws IOException
- {
- logger.error(ExceptionUtils.toMessage(ex), ex);
-
- streamUnminimized(resource, output);
- }
-
- private void streamUnminimized(StreamableResource resource, Writer output) throws IOException
- {
- Reader reader = toReader(resource);
-
- char[] buffer = new char[5000];
-
- try
- {
-
- while (true)
- {
- int length = reader.read(buffer);
-
- if (length < 0)
- {
- break;
- }
-
- output.write(buffer, 0, length);
- }
- } finally
- {
- reader.close();
- }
- }
-
- private void logInputLines(StreamableResource resource, Set<Integer> lines)
- {
- int last = -1;
-
- try
- {
- LineNumberReader lnr = new LineNumberReader(toReader(resource));
-
- while (true)
- {
- String line = lnr.readLine();
-
- if (line == null) break;
-
- int lineNumber = lnr.getLineNumber();
-
- Where where = where(lineNumber, lines);
-
- if (where == Where.FAR)
- {
- continue;
- }
-
- // Add a blank line to separate non-consecutive parts of the content.
- if (last > 0 && last + 1 != lineNumber)
- {
- logger.error("");
- }
-
- String formatted = String.format("%s%6d %s",
- where == Where.EXACT ? "*" : " ",
- lineNumber,
- line);
-
- logger.error(formatted);
-
- last = lineNumber;
- }
-
- lnr.close();
-
- } catch (IOException ex)
- { // Ignore.
- }
-
- }
-
- private Where where(int lineNumber, Set<Integer> lines)
- {
- if (lines.contains(lineNumber))
- {
- return Where.EXACT;
- }
-
- for (int line : lines)
- {
- if (Math.abs(lineNumber - line) < RANGE)
- {
- return Where.NEAR;
- }
- }
-
- return Where.FAR;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/package-info.java
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/package-info.java b/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/package-info.java
deleted file mode 100644
index a9be516..0000000
--- a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/package-info.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2012 The Apache Software Foundation
-//
-// 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.
-
-/**
- * [INTERNAL USE ONLY] support classes for the YUICompressor; API subject to change
- */
-package org.apache.tapestry5.internal.yuicompressor;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/yuicompressor/modules/YuiCompressorModule.java
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/yuicompressor/modules/YuiCompressorModule.java b/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/yuicompressor/modules/YuiCompressorModule.java
deleted file mode 100644
index e7211c4..0000000
--- a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/yuicompressor/modules/YuiCompressorModule.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2011-2013 The Apache Software Foundation
-//
-// 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 org.apache.tapestry5.yuicompressor.modules;
-
-import com.yahoo.platform.yui.compressor.YUICompressor;
-import org.apache.tapestry5.internal.yuicompressor.CSSResourceMinimizer;
-import org.apache.tapestry5.internal.yuicompressor.JavaScriptResourceMinimizer;
-import org.apache.tapestry5.ioc.MappedConfiguration;
-import org.apache.tapestry5.ioc.annotations.Contribute;
-import org.apache.tapestry5.ioc.annotations.Primary;
-import org.apache.tapestry5.services.assets.ResourceMinimizer;
-
-/**
- * Sets up Tapestry to compress JavaScript assets using {@link YUICompressor}.
- *
- * @since 5.3
- */
-public class YuiCompressorModule
-{
- /**
- * Contibutes minimizers for <code>text/javascript</code> and <code>test/css</code>.
- *
- */
- @Contribute(ResourceMinimizer.class)
- @Primary
- public static void contributeMinimizers(MappedConfiguration<String, ResourceMinimizer> configuration)
- {
- configuration.addInstance("text/javascript", JavaScriptResourceMinimizer.class);
- configuration.addInstance("text/css", CSSResourceMinimizer.class);
- }
-}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/yuicompressor/modules/package-info.java
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/yuicompressor/modules/package-info.java b/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/yuicompressor/modules/package-info.java
deleted file mode 100644
index 4fca63c..0000000
--- a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/yuicompressor/modules/package-info.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2012-2013 The Apache Software Foundation
-//
-// 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.
-
-/**
- * [INTERNAL USE ONLY] support services for the YUICompressor; API subject to change
- */
-package org.apache.tapestry5.yuicompressor.modules;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32beedda/tapestry-yuicompressor/src/test/conf/testng.xml
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/test/conf/testng.xml b/tapestry-yuicompressor/src/test/conf/testng.xml
deleted file mode 100644
index 76bb2f7..0000000
--- a/tapestry-yuicompressor/src/test/conf/testng.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="Tapestry YUICompressor Integration" annotations="1.5" verbose="2">
-
- <parameter name="tapestry.web-app-folder" value="src/test/webapp"/>
-
- <test name="Integration Tests">
- <packages>
- <package name="org.apache.tapestry5.yuicompressor.itest"/>
- </packages>
- </test>
-</suite>