55
66package io.openapiprocessor.gradle
77
8- import io.openapiprocessor.gradle.Version
98import org.gradle.api.Action
109import org.gradle.api.Plugin
1110import org.gradle.api.Project
@@ -16,6 +15,7 @@ import org.gradle.api.artifacts.Dependency
1615 * openapi-processor-gradle plugin.
1716 */
1817class OpenApiProcessorPlugin implements Plugin<Project > {
18+ private static final String EXTENSION_NAME = ' openapiProcessor'
1919
2020 @Override
2121 void apply (Project project ) {
@@ -26,7 +26,7 @@ class OpenApiProcessorPlugin implements Plugin<Project> {
2626 addOpenApiProcessorRepository (project)
2727
2828 def ext = createExtension (project)
29- project. afterEvaluate (createTasksBuilderAction (ext ))
29+ project. afterEvaluate (createTasksBuilderAction ())
3030 }
3131
3232 private static boolean isSupportedGradleVersion (Project project ) {
@@ -42,7 +42,7 @@ class OpenApiProcessorPlugin implements Plugin<Project> {
4242 }
4343
4444 private static OpenApiProcessorExtension createExtension (Project project ) {
45- project. extensions. create (' openapiProcessor ' , OpenApiProcessorExtension , project)
45+ project. extensions. create (EXTENSION_NAME , OpenApiProcessorExtension , project)
4646 }
4747
4848 private addOpenApiProcessorRepository (Project project ) {
@@ -91,19 +91,14 @@ class OpenApiProcessorPlugin implements Plugin<Project> {
9191 /**
9292 * Provides an Action that create a 'process{ProcessorName}' task for each configured processor.
9393 */
94- private Action<Project > createTasksBuilderAction (OpenApiProcessorExtension extension ) {
95- new Action<Project > () {
96-
94+ private Action<Project > createTasksBuilderAction () {
95+ return new Action<Project > () {
9796 @Override
9897 void execute (Project project ) {
99- registerTasks (project)
100- }
101-
102- private void registerTasks (Project project ) {
98+ OpenApiProcessorExtension extension = project. extensions. findByName (EXTENSION_NAME )
10399 extension. processors. get (). each { entry ->
104100 def name = " process${ entry.key.capitalize ()} "
105- def action = createTaskBuilderAction (entry. key, entry. value, extension)
106-
101+ def action = createTaskBuilderAction (entry. key, entry. value)
107102 project. tasks. register (name, OpenApiProcessorTask , action)
108103 }
109104 }
@@ -113,15 +108,12 @@ class OpenApiProcessorPlugin implements Plugin<Project> {
113108 /**
114109 * Creates an Action that configures a 'process{ProcessorName}' task from its configuration.
115110 */
116- private Action<OpenApiProcessorTask > createTaskBuilderAction (
117- String name , Processor config , OpenApiProcessorExtension extension ) {
118-
111+ private Action<OpenApiProcessorTask > createTaskBuilderAction (String name , Processor processor ) {
119112 new Action<OpenApiProcessorTask > () {
120-
121113 @Override
122114 void execute (OpenApiProcessorTask task ) {
123115 task. setProcessorName (name)
124- task. setProcessorProps (config . other)
116+ task. setProcessorProps (processor . other)
125117
126118 task. setGroup (' openapi processor' )
127119 task. setDescription (" process openapi with openapi-processor-$name " )
@@ -134,54 +126,51 @@ class OpenApiProcessorPlugin implements Plugin<Project> {
134126 def handler = project. getDependencies ()
135127 List<Dependency > dependencies = []
136128
137- if (config . dependencies. empty) {
138- task. logger. warn (" 'openapiProcessor. ${ name} .processor' not set!" )
129+ if (processor . dependencies. empty) {
130+ task. logger. warn (" '$E XTENSION_NAME . $ name . processor ' not set!" )
139131 }
140132
141133 dependencies. add (handler. create(
142134 " io.openapiprocessor:openapi-processor-api:${ Version.api} " ))
143135
144- config . dependencies. each {
136+ processor . dependencies. each {
145137 dependencies. add (handler. create (it))
146138 }
147139
148140 Dependency [] deps = dependencies. toArray (new Dependency [0 ])
149141
150142 Configuration cfg = project. getConfigurations ()
151143 .detachedConfiguration (deps)
152- // needed ?
153- // cfg.resolutionStrategy {
154- // force ("io.openapiprocessor:openapi-processor-api:${Version.api}")
155- // force (config.dependencies)
156- // }
144+
157145 cfg. setVisible (false )
158146 cfg. setTransitive (true )
159147 cfg. setDescription (" the dependencies of the process${ name.capitalize ()} task." )
160148 task. dependencies = cfg
161149 }
162150
163151 private String getInputDirectory () {
164- String path = config . apiPath
152+ String path = processor . apiPath
165153 def file = new File (path)
166154 file. parent
167155 }
168156
169157 private String getOutputDirectory () {
170- config . targetDir
158+ processor . targetDir
171159 }
172160
173161 // copy common api path to openapi-processor props if not set
174162 private copyApiPath (OpenApiProcessorTask task ) {
175- if (! config. hasApiPath ()) {
176- if (! extension. apiPath. present) {
177- task. logger. warn (" 'openapiProcessor.apiPath' or 'openapiProcessor.${ name} .apiPath' not set!" )
178- return
179- }
163+ if (processor. hasApiPath ())
164+ return
180165
181- config. apiPath = extension. apiPath. get ()
166+ def extension = task. project. extensions. findByName (EXTENSION_NAME )
167+ if (! extension. apiPath. present) {
168+ task. logger. warn (" '$EXTENSION_NAME . apiPath ' or '$EXTENSION_NAME . $name . apiPath ' not set!" )
169+ return
182170 }
183- }
184171
172+ processor. apiPath = extension. apiPath. get ()
173+ }
185174 }
186175 }
187176
0 commit comments