summaryrefslogtreecommitdiff
path: root/src/proguard/ant/ConfigurationTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/proguard/ant/ConfigurationTask.java')
-rw-r--r--src/proguard/ant/ConfigurationTask.java450
1 files changed, 0 insertions, 450 deletions
diff --git a/src/proguard/ant/ConfigurationTask.java b/src/proguard/ant/ConfigurationTask.java
deleted file mode 100644
index 0bd1b35..0000000
--- a/src/proguard/ant/ConfigurationTask.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
- * of Java bytecode.
- *
- * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package proguard.ant;
-
-import org.apache.tools.ant.*;
-import proguard.*;
-
-import java.io.IOException;
-import java.util.*;
-
-/**
- * This Task allows to define a ProGuard configuration from Ant.
- *
- * @author Eric Lafortune
- */
-public class ConfigurationTask extends Task
-{
- protected final Configuration configuration = new Configuration();
-
-
- /**
- * Adds the contents of this configuration task to the given configuration.
- * @param configuration the configuration to be extended.
- */
- public void appendTo(Configuration configuration)
- {
- // Append all of these configuration entries to the given configuration.
- configuration.programJars = extendClassPath(configuration.programJars,
- this.configuration.programJars);
-
- configuration.libraryJars = extendClassPath(configuration.libraryJars,
- this.configuration.libraryJars);
-
- configuration.keep = extendClassSpecifications(configuration.keep,
- this.configuration.keep);
-
- configuration.keepDirectories = extendList(configuration.keepDirectories,
- this.configuration.keepDirectories);
-
- configuration.whyAreYouKeeping = extendClassSpecifications(configuration.whyAreYouKeeping,
- this.configuration.whyAreYouKeeping);
-
- configuration.optimizations = extendClassSpecifications(configuration.optimizations,
- this.configuration.optimizations);
-
- configuration.assumeNoSideEffects = extendClassSpecifications(configuration.assumeNoSideEffects,
- this.configuration.assumeNoSideEffects);
-
- configuration.keepPackageNames = extendList(configuration.keepPackageNames,
- this.configuration.keepPackageNames);
-
- configuration.keepAttributes = extendList(configuration.keepAttributes,
- this.configuration.keepAttributes);
-
- configuration.adaptClassStrings = extendList(configuration.adaptClassStrings,
- this.configuration.adaptClassStrings);
-
- configuration.adaptResourceFileNames = extendList(configuration.adaptResourceFileNames,
- this.configuration.adaptResourceFileNames);
-
- configuration.adaptResourceFileContents = extendList(configuration.adaptResourceFileContents,
- this.configuration.adaptResourceFileContents);
-
- configuration.note = extendList(configuration.note,
- this.configuration.note);
-
- configuration.warn = extendList(configuration.warn,
- this.configuration.warn);
- }
-
-
- // Ant task nested elements.
-
- public void addConfiguredInjar(ClassPathElement classPathElement)
- {
- configuration.programJars = extendClassPath(configuration.programJars,
- classPathElement,
- false);
- }
-
-
- public void addConfiguredOutjar(ClassPathElement classPathElement)
- {
- configuration.programJars = extendClassPath(configuration.programJars,
- classPathElement,
- true);
- }
-
-
- public void addConfiguredLibraryjar(ClassPathElement classPathElement)
- {
- configuration.libraryJars = extendClassPath(configuration.libraryJars,
- classPathElement,
- false);
- }
-
-
- public void addConfiguredKeepdirectory(FilterElement filterElement)
- {
- configuration.keepDirectories = extendFilter(configuration.keepDirectories,
- filterElement);
- }
-
-
- public void addConfiguredKeepdirectories(FilterElement filterElement)
- {
- configuration.keepDirectories = extendFilter(configuration.keepDirectories,
- filterElement);
- }
-
-
- public void addConfiguredKeep(KeepSpecificationElement keepSpecificationElement)
- {
- configuration.keep = extendKeepSpecifications(configuration.keep,
- keepSpecificationElement,
- true,
- false);
- }
-
-
- public void addConfiguredKeepclassmembers(KeepSpecificationElement keepSpecificationElement)
- {
- configuration.keep = extendKeepSpecifications(configuration.keep,
- keepSpecificationElement,
- false,
- false);
- }
-
-
- public void addConfiguredKeepclasseswithmembers(KeepSpecificationElement keepSpecificationElement)
- {
- configuration.keep = extendKeepSpecifications(configuration.keep,
- keepSpecificationElement,
- true,
- true);
- }
-
-
- public void addConfiguredKeepnames(KeepSpecificationElement keepSpecificationElement)
- {
- // Set the shrinking flag, based on the name (backward compatibility).
- keepSpecificationElement.setAllowshrinking(true);
-
- configuration.keep = extendKeepSpecifications(configuration.keep,
- keepSpecificationElement,
- true,
- false);
- }
-
-
- public void addConfiguredKeepclassmembernames(KeepSpecificationElement keepSpecificationElement)
- {
- // Set the shrinking flag, based on the name (backward compatibility).
- keepSpecificationElement.setAllowshrinking(true);
-
- configuration.keep = extendKeepSpecifications(configuration.keep,
- keepSpecificationElement,
- false,
- false);
- }
-
-
- public void addConfiguredKeepclasseswithmembernames(KeepSpecificationElement keepSpecificationElement)
- {
- // Set the shrinking flag, based on the name (backward compatibility).
- keepSpecificationElement.setAllowshrinking(true);
-
- configuration.keep = extendKeepSpecifications(configuration.keep,
- keepSpecificationElement,
- true,
- true);
- }
-
-
- public void addConfiguredWhyareyoukeeping(ClassSpecificationElement classSpecificationElement)
- {
- configuration.whyAreYouKeeping = extendClassSpecifications(configuration.whyAreYouKeeping,
- classSpecificationElement);
- }
-
-
- public void addConfiguredAssumenosideeffects(ClassSpecificationElement classSpecificationElement)
- {
- configuration.assumeNoSideEffects = extendClassSpecifications(configuration.assumeNoSideEffects,
- classSpecificationElement);
- }
-
-
- public void addConfiguredOptimizations(FilterElement filterElement)
- {
- addConfiguredOptimization(filterElement);
- }
-
-
- public void addConfiguredOptimization(FilterElement filterElement)
- {
- configuration.optimizations = extendFilter(configuration.optimizations,
- filterElement);
- }
-
-
- public void addConfiguredKeeppackagename(FilterElement filterElement)
- {
- configuration.keepPackageNames = extendFilter(configuration.keepPackageNames,
- filterElement,
- true);
- }
-
-
- public void addConfiguredKeeppackagenames(FilterElement filterElement)
- {
- configuration.keepPackageNames = extendFilter(configuration.keepPackageNames,
- filterElement,
- true);
- }
-
-
- public void addConfiguredKeepattributes(FilterElement filterElement)
- {
- addConfiguredKeepattribute(filterElement);
- }
-
-
- public void addConfiguredKeepattribute(FilterElement filterElement)
- {
- configuration.keepAttributes = extendFilter(configuration.keepAttributes,
- filterElement);
- }
-
-
- public void addConfiguredAdaptclassstrings(FilterElement filterElement)
- {
- configuration.adaptClassStrings = extendFilter(configuration.adaptClassStrings,
- filterElement, true);
- }
-
-
- public void addConfiguredAdaptresourcefilenames(FilterElement filterElement)
- {
- configuration.adaptResourceFileNames = extendFilter(configuration.adaptResourceFileNames,
- filterElement);
- }
-
-
- public void addConfiguredAdaptresourcefilecontents(FilterElement filterElement)
- {
- configuration.adaptResourceFileContents = extendFilter(configuration.adaptResourceFileContents,
- filterElement);
- }
-
-
- public void addConfiguredDontnote(FilterElement filterElement)
- {
- configuration.note = extendFilter(configuration.note, filterElement, true);
- }
-
-
- public void addConfiguredDontwarn(FilterElement filterElement)
- {
- configuration.warn = extendFilter(configuration.warn, filterElement, true);
- }
-
-
- public void addConfiguredConfiguration(ConfigurationElement configurationElement)
- {
- configurationElement.appendTo(configuration);
- }
-
-
- // Implementations for Task.
-
- public void addText(String text) throws BuildException
- {
- try
- {
- Project project = getProject();
-
- // Replace Ant-style properties ('${...}').
- String arg = project.replaceProperties(text);
-
- // Get the combined system properties and Ant properties, for
- // replacing ProGuard-style properties ('<...>').
- Properties properties = new Properties();
- properties.putAll(project.getProperties());
-
- ConfigurationParser parser = new ConfigurationParser(arg,
- "embedded configuration",
- project.getBaseDir(),
- properties);
-
- try
- {
- parser.parse(configuration);
- }
- catch (ParseException ex)
- {
- throw new BuildException(ex.getMessage());
- }
- finally
- {
- parser.close();
- }
- }
- catch (IOException ex)
- {
- throw new BuildException(ex.getMessage());
- }
- }
-
-
- // Small utility methods.
-
- private ClassPath extendClassPath(ClassPath classPath,
- ClassPathElement classPathElement,
- boolean output)
- {
- if (classPath == null)
- {
- classPath = new ClassPath();
- }
-
- classPathElement.appendClassPathEntriesTo(classPath,
- output);
-
- return classPath;
- }
-
-
- private ClassPath extendClassPath(ClassPath classPath,
- ClassPath additionalClassPath)
- {
- if (additionalClassPath != null)
- {
- if (classPath == null)
- {
- classPath = new ClassPath();
- }
-
- classPath.addAll(additionalClassPath);
- }
-
- return classPath;
- }
-
-
- private List extendKeepSpecifications(List keepSpecifications,
- KeepSpecificationElement keepSpecificationElement,
- boolean markClasses,
- boolean markClassesConditionally)
- {
- if (keepSpecifications == null)
- {
- keepSpecifications = new ArrayList();
- }
-
- keepSpecificationElement.appendTo(keepSpecifications,
- markClasses,
- markClassesConditionally);
-
- return keepSpecifications;
- }
-
-
- private List extendClassSpecifications(List classSpecifications,
- ClassSpecificationElement classSpecificationElement)
- {
- if (classSpecifications == null)
- {
- classSpecifications = new ArrayList();
- }
-
- classSpecificationElement.appendTo(classSpecifications);
-
- return classSpecifications;
- }
-
-
- private List extendClassSpecifications(List classSpecifications,
- List additionalClassSpecifications)
- {
- if (additionalClassSpecifications != null)
- {
- if (classSpecifications == null)
- {
- classSpecifications = new ArrayList();
- }
-
- classSpecifications.addAll(additionalClassSpecifications);
- }
-
- return classSpecifications;
- }
-
-
- private List extendFilter(List filter,
- FilterElement filterElement)
- {
- return extendFilter(filter, filterElement, false);
- }
-
-
- private List extendFilter(List filter,
- FilterElement filterElement,
- boolean internal)
- {
- if (filter == null)
- {
- filter = new ArrayList();
- }
-
- filterElement.appendTo(filter, internal);
-
- return filter;
- }
-
-
- private List extendList(List list,
- List additionalList)
- {
- if (additionalList != null)
- {
- if (list == null)
- {
- list = new ArrayList();
- }
-
- list.addAll(additionalList);
- }
-
- return list;
- }
-}