Class GosuCompile

  • All Implemented Interfaces:
    java.lang.Comparable<org.gradle.api.Task>, InfersGosuRuntime, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, org.gradle.api.plugins.ExtensionAware, org.gradle.api.Task, org.gradle.api.tasks.util.PatternFilterable, org.gradle.util.Configurable<org.gradle.api.Task>

    @CacheableTask
    public class GosuCompile
    extends org.gradle.api.tasks.compile.AbstractCompile
    implements InfersGosuRuntime
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.gradle.api.Task

        org.gradle.api.Task.Namer
    • Field Summary

      • Fields inherited from interface org.gradle.api.Task

        TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE
    • Constructor Summary

      Constructors 
      Constructor Description
      GosuCompile()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void compile​(org.gradle.work.InputChanges inputChanges)  
      org.gradle.api.file.FileCollection getClasspath()
      We override in order to apply the CompileClasspath, in order to ignore changes in JAR'd resources.
      groovy.lang.Closure<org.gradle.api.file.FileCollection> getGosuClasspath()  
      GosuCompileOptions getGosuOptions()  
      org.gradle.api.file.FileCollection getJavaClassesDir()
      Returns the Java classes output directory for fine-grained change tracking.
      org.gradle.api.tasks.compile.CompileOptions getOptions()  
      groovy.lang.Closure<org.gradle.api.file.FileCollection> getOrderClasspath()
      Annotating as @Input or @InputFiles causes errors in Guidewire applications, even when paired with @Optional.
      org.gradle.api.file.FileTree getSource()
      org.gradle.api.file.FileCollection getSourceRoots()  
      org.gradle.api.file.FileCollection getStableSources()  
      void setClasspath​(org.gradle.api.file.FileCollection configuration)
      Override setClasspath to defensively filter out javaClassesDir whenever the classpath is set.
      void setGosuClasspath​(groovy.lang.Closure<org.gradle.api.file.FileCollection> gosuClasspathClosure)  
      void setJavaClassesDir​(org.gradle.api.file.FileCollection javaClassesDir)
      Sets the Java classes output directory for fine-grained change tracking.
      void setOrderClasspath​(groovy.lang.Closure<org.gradle.api.file.FileCollection> orderClasspath)
      Normally setting this value is not required.
      • Methods inherited from class org.gradle.api.tasks.compile.AbstractCompile

        getDestinationDir, getDestinationDirectory, getSourceCompatibility, getTargetCompatibility, setDestinationDir, setDestinationDir, setSourceCompatibility, setTargetCompatibility
      • Methods inherited from class org.gradle.api.tasks.SourceTask

        exclude, exclude, exclude, exclude, getExcludes, getIncludes, getPatternSet, getPatternSetFactory, include, include, include, include, setExcludes, setIncludes, setSource, setSource, source
      • Methods inherited from class org.gradle.api.internal.ConventionTask

        conventionMapping, conventionMapping, getConventionMapping
      • Methods inherited from class org.gradle.api.DefaultTask

        compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService
      • Methods inherited from class org.gradle.api.internal.AbstractTask

        acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.gradle.api.Task

        doNotTrackState, getConvention, notCompatibleWithConfigurationCache
    • Constructor Detail

      • GosuCompile

        @Inject
        public GosuCompile()
    • Method Detail

      • compile

        protected void compile​(org.gradle.work.InputChanges inputChanges)
      • getSource

        @PathSensitive(NAME_ONLY)
        public org.gradle.api.file.FileTree getSource()
        Overrides:
        getSource in class org.gradle.api.tasks.SourceTask
      • getStableSources

        @PathSensitive(NAME_ONLY)
        @InputFiles
        @Incremental
        public org.gradle.api.file.FileCollection getStableSources()
      • getJavaClassesDir

        @CompileClasspath
        @Incremental
        @Optional
        public org.gradle.api.file.FileCollection getJavaClassesDir()
        Returns the Java classes output directory for fine-grained change tracking. This tracks the compileJava task's output directory to detect which specific Java class files have changed (ABI changes only, not implementation changes). Configured by GosuBasePlugin using the SourceSet's Java output directory.
        Returns:
        FileCollection pointing to the Java classes output directory
      • setJavaClassesDir

        public void setJavaClassesDir​(org.gradle.api.file.FileCollection javaClassesDir)
        Sets the Java classes output directory for fine-grained change tracking. This should be called by GosuBasePlugin during task configuration.
        Parameters:
        javaClassesDir - FileCollection pointing to the Java classes output directory
      • getGosuOptions

        public GosuCompileOptions getGosuOptions()
        Returns:
        Gosu-specific compilation options.
      • getOptions

        public org.gradle.api.tasks.compile.CompileOptions getOptions()
      • getClasspath

        @CompileClasspath
        public org.gradle.api.file.FileCollection getClasspath()
        We override in order to apply the CompileClasspath, in order to ignore changes in JAR'd resources. Also filters out javaClassesDir to prevent local .class file changes from triggering full rebuilds.

        This filtering ONLY applies when incremental compilation is configured (i.e., when javaClassesDir is set). When javaClassesDir is not set, the classpath is returned unmodified for backwards compatibility.

        Overrides:
        getClasspath in class org.gradle.api.tasks.compile.AbstractCompile
      • setClasspath

        public void setClasspath​(org.gradle.api.file.FileCollection configuration)
        Override setClasspath to defensively filter out javaClassesDir whenever the classpath is set. This ensures that even if gradle-plugins or other code explicitly sets a classpath that includes local .class files, they will be filtered out for Gradle's input tracking purposes.

        This filtering ONLY applies when incremental compilation is configured (i.e., when javaClassesDir is set). When javaClassesDir is not set, the classpath is stored unmodified for backwards compatibility.

        Overrides:
        setClasspath in class org.gradle.api.tasks.compile.AbstractCompile
      • getGosuClasspath

        @Classpath
        @InputFiles
        public groovy.lang.Closure<org.gradle.api.file.FileCollection> getGosuClasspath()
        Specified by:
        getGosuClasspath in interface InfersGosuRuntime
        Returns:
        the classpath to use to load the Gosu compiler.
      • setGosuClasspath

        public void setGosuClasspath​(groovy.lang.Closure<org.gradle.api.file.FileCollection> gosuClasspathClosure)
        Specified by:
        setGosuClasspath in interface InfersGosuRuntime
      • getOrderClasspath

        @Internal
        public groovy.lang.Closure<org.gradle.api.file.FileCollection> getOrderClasspath()
        Annotating as @Input or @InputFiles causes errors in Guidewire applications, even when paired with @Optional. Marking as @Internal instead to skip warning thrown by :validateTaskProperties (org.gradle.plugin.devel.tasks.ValidateTaskProperties)
        Returns:
        a Closure returning a classpath to be passed to the GosuCompile task
      • setOrderClasspath

        public void setOrderClasspath​(groovy.lang.Closure<org.gradle.api.file.FileCollection> orderClasspath)
        Normally setting this value is not required. Certain projects relying on depth-first resolution of module dependencies can use this Closure to reorder the classpath as needed.
        Parameters:
        orderClasspath - a Closure returning a classpath to be passed to the GosuCompile task
      • getSourceRoots

        @Internal
        public org.gradle.api.file.FileCollection getSourceRoots()