From 843e2bc1353d315fa2eaf54dc64f3ffe61242329 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Thu, 31 Mar 2016 21:01:54 +0300 Subject: [PATCH] Spring Support: "Generate @Autowired Dependency..." action #KT-11408 Fixed --- ChangeLog.md | 1 + .../src/META-INF/kotlin-spring.xml | 11 +- ...GenerateKotlinAutowiredDependencyAction.kt | 41 ++++++ ...enerateKotlinSpringBeanDependencyAction.kt | 40 +----- ...rateKotlinSpringBeanXmlDependencyAction.kt | 64 ++++++++++ .../generateAutowiredDependenciesUtils.kt | 120 ++++++++++++++++++ .../generate/generateDependenciesUtils.kt | 15 ++- ...tractGenerateSpringDependencyActionTest.kt | 2 +- ...teSpringDependencyActionTestGenerated.java | 48 +++++++ .../duplicatingPropertyAnnotationConfig.kt | 19 +++ ...plicatingPropertyAnnotationConfig.kt.after | 20 +++ .../duplicatingPropertyXmlConfig.kt | 12 ++ .../duplicatingPropertyXmlConfig.kt.after | 13 ++ .../multiplePropertiesAnnotationConfig.kt | 18 +++ ...ultiplePropertiesAnnotationConfig.kt.after | 21 +++ .../multiplePropertiesXmlConfig.kt | 10 ++ .../multiplePropertiesXmlConfig.kt.after | 14 ++ .../propertyWithQualifierAnnotationConfig.kt | 21 +++ ...ertyWithQualifierAnnotationConfig.kt.after | 24 ++++ .../propertyWithQualifierXmlConfig.kt | 12 ++ .../propertyWithQualifierXmlConfig.kt.after | 16 +++ .../singlePropertyAnnotationConfig.kt | 18 +++ .../singlePropertyAnnotationConfig.kt.after | 20 +++ .../singlePropertyXmlConfig.kt | 10 ++ .../singlePropertyXmlConfig.kt.after | 13 ++ .../autowiredDependencies/spring-config.xml | 9 ++ .../factoryBean.kt.after | 2 +- .../factoryBean.kt_disabled | 2 +- .../factoryMethod.kt.after | 2 +- .../factoryMethod.kt_disabled | 2 +- .../beanDependenciesByXml/firstConstructor.kt | 2 +- .../firstConstructor.kt.after | 2 +- .../primaryConstructorAddParam.kt | 2 +- .../primaryConstructorAddParam.kt.after | 2 +- .../beanDependenciesByXml/property.kt | 2 +- .../beanDependenciesByXml/property.kt.after | 2 +- .../secondaryConstructor.kt.after | 2 +- .../secondaryConstructor.kt_disabled | 2 +- .../secondaryConstructorAddParam.kt | 2 +- .../secondaryConstructorAddParam.kt.after | 2 +- .../generate/beanDependenciesByXml/setter.kt | 2 +- .../beanDependenciesByXml/setter.kt.after | 2 +- 42 files changed, 582 insertions(+), 62 deletions(-) create mode 100644 idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinAutowiredDependencyAction.kt create mode 100644 idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinSpringBeanXmlDependencyAction.kt create mode 100644 idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/generateAutowiredDependenciesUtils.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt.after create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt.after create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt.after create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt.after create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt.after create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt.after create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt.after create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt.after create mode 100644 idea/testData/spring/core/generate/autowiredDependencies/spring-config.xml diff --git a/ChangeLog.md b/ChangeLog.md index 7073a247745..8f9d94b6ba0 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -130,6 +130,7 @@ New features: - [KT-11406](https://youtrack.jetbrains.com/issue/KT-11406) Support Spring EL injections inside of Kotlin string literals - [KT-11604](https://youtrack.jetbrains.com/issue/KT-11604) Support "Configure Spring facet" inspection on Kotlin classes - [KT-11407](https://youtrack.jetbrains.com/issue/KT-11407) Implemented "Generate Spring Dependency..." actions +- [KT-11408](https://youtrack.jetbrains.com/issue/KT-11408) Implemented "Generate @Autowired Dependency..." action Issues fixed: diff --git a/idea/idea-ultimate/src/META-INF/kotlin-spring.xml b/idea/idea-ultimate/src/META-INF/kotlin-spring.xml index 299bf1b55c0..fe33323ba4b 100644 --- a/idea/idea-ultimate/src/META-INF/kotlin-spring.xml +++ b/idea/idea-ultimate/src/META-INF/kotlin-spring.xml @@ -25,15 +25,20 @@ + class="org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Setter"> + class="org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor"> + class="org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$LateinitProperty"> + + + + diff --git a/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinAutowiredDependencyAction.kt b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinAutowiredDependencyAction.kt new file mode 100644 index 00000000000..7cfce21c887 --- /dev/null +++ b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinAutowiredDependencyAction.kt @@ -0,0 +1,41 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * 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.jetbrains.kotlin.idea.spring.generate + +import com.intellij.openapi.editor.Editor +import com.intellij.openapi.module.Module +import com.intellij.openapi.project.Project +import com.intellij.psi.PsiFile +import com.intellij.spring.SpringBundle +import org.jetbrains.kotlin.asJava.toLightClass +import org.jetbrains.kotlin.idea.editor.BatchTemplateRunner +import org.jetbrains.kotlin.idea.util.application.executeWriteCommand +import org.jetbrains.kotlin.psi.KtClass + +class GenerateKotlinAutowiredDependencyAction : GenerateKotlinSpringBeanDependencyAction( + SpringBundle.message("action.generate.autowired.dependencies.action.text") +) { + override fun checkContext(module: Module) = true + + override fun invoke(project: Project, editor: Editor, file: PsiFile) { + val klass = getTargetClass(editor, file) as? KtClass ?: return + val lightClass = klass.toLightClass() ?: return + project + .executeWriteCommand>("") { generateAutowiredDependenciesFor(lightClass) } + .forEach { it.runTemplates() } + } +} \ No newline at end of file diff --git a/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinSpringBeanDependencyAction.kt b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinSpringBeanDependencyAction.kt index 992a7836d7d..b280c592f99 100644 --- a/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinSpringBeanDependencyAction.kt +++ b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinSpringBeanDependencyAction.kt @@ -16,39 +16,15 @@ package org.jetbrains.kotlin.idea.spring.generate -import com.intellij.openapi.editor.Editor -import com.intellij.openapi.project.Project -import com.intellij.psi.PsiFile -import com.intellij.psi.xml.XmlFile -import com.intellij.spring.SpringBundle -import com.intellij.spring.SpringManager +import com.intellij.openapi.module.Module import com.intellij.spring.model.actions.generate.GenerateSpringBeanDependenciesUtil -import com.intellij.spring.model.utils.SpringModelUtils import icons.SpringApiIcons import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.idea.actions.generate.KotlinGenerateActionBase -import org.jetbrains.kotlin.idea.editor.BatchTemplateRunner -import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import org.jetbrains.kotlin.psi.KtClass import org.jetbrains.kotlin.psi.KtClassOrObject -abstract class GenerateKotlinSpringBeanDependencyAction( - text: String, - private val injectionKind: SpringDependencyInjectionKind -) : KotlinGenerateActionBase() { - class Constructor: GenerateKotlinSpringBeanDependencyAction( - SpringBundle.message("action.Spring.Beans.Generate.Constructor.Dependency.Action.text"), - SpringDependencyInjectionKind.CONSTRUCTOR - ) - class Setter: GenerateKotlinSpringBeanDependencyAction( - SpringBundle.message("action.Spring.Beans.Generate.Setter.Dependency.Action.text"), - SpringDependencyInjectionKind.SETTER - ) - class LateinitProperty: GenerateKotlinSpringBeanDependencyAction( - "Spring 'lateinit' Dependency...", - SpringDependencyInjectionKind.LATEINIT_PROPERTY - ) - +abstract class GenerateKotlinSpringBeanDependencyAction(text: String) : KotlinGenerateActionBase() { init { templatePresentation.text = text templatePresentation.icon = SpringApiIcons.Spring @@ -58,16 +34,8 @@ abstract class GenerateKotlinSpringBeanDependencyAction( if (targetClass !is KtClass || targetClass.isInterface() || targetClass.isEnum() || targetClass.fqName == null) return false val lightClass = targetClass.toLightClass() ?: return false val module = GenerateSpringBeanDependenciesUtil.getSpringModule(lightClass) ?: return false - return SpringManager.getInstance(module.project).getCombinedModel(module).configFiles.any { it is XmlFile } + return checkContext(module) } - override fun invoke(project: Project, editor: Editor, file: PsiFile) { - val klass = getTargetClass(editor, file) as? KtClass ?: return - val lightClass = klass.toLightClass() ?: return - val springModel = SpringModelUtils.getInstance().getPsiClassSpringModel(lightClass) - val templates = project.executeWriteCommand>("") { - generateDependenciesFor(springModel, lightClass, injectionKind) - } - templates.forEach { it.runTemplates() } - } + abstract fun checkContext(module: Module): Boolean } \ No newline at end of file diff --git a/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinSpringBeanXmlDependencyAction.kt b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinSpringBeanXmlDependencyAction.kt new file mode 100644 index 00000000000..ab6692aeca3 --- /dev/null +++ b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/GenerateKotlinSpringBeanXmlDependencyAction.kt @@ -0,0 +1,64 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * 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.jetbrains.kotlin.idea.spring.generate + +import com.intellij.openapi.editor.Editor +import com.intellij.openapi.module.Module +import com.intellij.openapi.project.Project +import com.intellij.psi.PsiFile +import com.intellij.psi.xml.XmlFile +import com.intellij.spring.SpringBundle +import com.intellij.spring.SpringManager +import com.intellij.spring.model.utils.SpringModelUtils +import org.jetbrains.kotlin.asJava.toLightClass +import org.jetbrains.kotlin.idea.editor.BatchTemplateRunner +import org.jetbrains.kotlin.idea.util.application.executeWriteCommand +import org.jetbrains.kotlin.psi.KtClass + +abstract class GenerateKotlinSpringBeanXmlDependencyAction( + text: String, + private val injectionKind: SpringDependencyInjectionKind +) : GenerateKotlinSpringBeanDependencyAction(text) { + class Constructor: GenerateKotlinSpringBeanXmlDependencyAction( + SpringBundle.message("action.Spring.Beans.Generate.Constructor.Dependency.Action.text"), + SpringDependencyInjectionKind.CONSTRUCTOR + ) + + class Setter: GenerateKotlinSpringBeanXmlDependencyAction( + SpringBundle.message("action.Spring.Beans.Generate.Setter.Dependency.Action.text"), + SpringDependencyInjectionKind.SETTER + ) + + class LateinitProperty: GenerateKotlinSpringBeanXmlDependencyAction( + "Spring 'lateinit' Dependency...", + SpringDependencyInjectionKind.LATEINIT_PROPERTY + ) + + override fun checkContext(module: Module): Boolean { + return SpringManager.getInstance(module.project).getCombinedModel(module).configFiles.any { it is XmlFile } + } + + override fun invoke(project: Project, editor: Editor, file: PsiFile) { + val klass = getTargetClass(editor, file) as? KtClass ?: return + val lightClass = klass.toLightClass() ?: return + val springModel = SpringModelUtils.getInstance().getPsiClassSpringModel(lightClass) + val templates = project.executeWriteCommand>("") { + generateDependenciesFor(springModel, lightClass, injectionKind) + } + templates.forEach { it.runTemplates() } + } +} \ No newline at end of file diff --git a/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/generateAutowiredDependenciesUtils.kt b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/generateAutowiredDependenciesUtils.kt new file mode 100644 index 00000000000..8e4cf182e80 --- /dev/null +++ b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/generateAutowiredDependenciesUtils.kt @@ -0,0 +1,120 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * 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.jetbrains.kotlin.idea.spring.generate + +import com.intellij.codeInsight.template.TemplateBuilderImpl +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.util.text.StringUtil +import com.intellij.psi.PsiClass +import com.intellij.spring.CommonSpringModel +import com.intellij.spring.constants.SpringAnnotationsConstants +import com.intellij.spring.model.CommonSpringBean +import com.intellij.spring.model.SpringBeanPointer +import com.intellij.spring.model.SpringModelSearchParameters +import com.intellij.spring.model.actions.generate.GenerateSpringBeanDependenciesUtil +import com.intellij.spring.model.utils.SpringModelSearchers +import com.intellij.spring.model.utils.SpringModelUtils +import com.intellij.util.IncorrectOperationException +import org.jetbrains.kotlin.asJava.KtLightClass +import org.jetbrains.kotlin.idea.core.KotlinNameSuggester +import org.jetbrains.kotlin.idea.editor.BatchTemplateRunner +import org.jetbrains.kotlin.psi.KtProperty +import org.jetbrains.kotlin.psi.KtPsiFactory +import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject +import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer +import org.jetbrains.kotlin.utils.ifEmpty +import org.jetbrains.kotlin.idea.util.ShortenReferences + +// TODO: GenerateAutowiredDependenciesUtil.getQualifierName() is not accessible here +private fun SpringBeanPointer.getQualifierName(): String? { + val value = springBean.springQualifier?.qualifierValue + return if (value.isNullOrBlank()) name else value +} + +private fun createAutowiredProperty( + currentBeanClass: KtLightClass, + candidateBean: SpringBeanPointer, + candidateBeanClasses: Array, + model: CommonSpringModel +): KtProperty? { + try { + val ktBeanClass = currentBeanClass.kotlinOrigin ?: return null + + val qualifierName = candidateBean.getQualifierName() + val candidateBeanClass = candidateBeanClasses.first() + val beanName = candidateBean.name + val name = if (beanName != null && KotlinNameSuggester.isIdentifier(beanName)) beanName else candidateBeanClass.name!! + + val psiFactory = KtPsiFactory(currentBeanClass.project) + // TODO: Use KtPsiFactory.CallableBuilder + val prototype = psiFactory.createProperty("lateinit var ${name.decapitalize()}: ${candidateBeanClass.defaultTypeText}").apply { + addAnnotationEntry(psiFactory.createAnnotationEntry("@${SpringAnnotationsConstants.AUTOWIRED}")) + + val searchParameters = SpringModelSearchParameters.byClass(candidateBeanClass).withInheritors().effectiveBeanTypes() + if (SpringModelSearchers.findBeans(model, searchParameters).size > 1 && !qualifierName.isNullOrBlank()) { + val annotationText = "@${SpringAnnotationsConstants.QUALIFIER}(\"${StringUtil.escapeStringCharacters(qualifierName!!)}\")" + addAnnotationEntry(psiFactory.createAnnotationEntry(annotationText)) + } + } + return ktBeanClass.addDeclaration(prototype).apply { ShortenReferences.DEFAULT.process(this) } + } + catch (e: IncorrectOperationException) { + throw RuntimeException(e) + } +} + +private fun addCreatePropertyTemplate( + property: KtProperty, + candidateBean: SpringBeanPointer, + candidateBeanClasses: Array +): BatchTemplateRunner { + return BatchTemplateRunner(property.project).apply { + val propertyPointer = property.createSmartPointer() + addTemplateFactory(property) { + val currentProperty = propertyPointer.element ?: return@addTemplateFactory null + val builder = TemplateBuilderImpl(currentProperty) + builder.appendVariableTemplate(currentProperty, candidateBeanClasses) { + val existingNames = currentProperty.containingClassOrObject!!.declarations + .mapNotNull { if (it != currentProperty) (it as? KtProperty)?.name else null } + getSuggestedNames(candidateBean, currentProperty, existingNames) { returnType } + } + builder.buildInlineTemplate() + } + } +} + +private fun createAutowiredDependency( + klass: KtLightClass, + candidateBean: SpringBeanPointer, + model: CommonSpringModel +): BatchTemplateRunner? { + val candidateBeanClasses = candidateBean.effectiveBeanType.ifEmpty { return null } + if (!GenerateSpringBeanDependenciesUtil.ensureFileWritable(klass)) return null + val property = createAutowiredProperty(klass, candidateBean, candidateBeanClasses, model) ?: return null + return addCreatePropertyTemplate(property, candidateBean, candidateBeanClasses) +} + +fun generateAutowiredDependenciesFor(klass: KtLightClass): List { + val model = SpringModelUtils.getInstance().getPsiClassSpringModel(klass) + val candidates = GenerateSpringBeanDependenciesUtil.getAutowiredBeanCandidates(model) { it.containingFile != klass.containingFile } + val dependencies = if (ApplicationManager.getApplication().isUnitTestMode) { + candidates.map { it.springBean }.filter(klass.project.beanFilter).sortedBy { it.name } + } else { + GenerateSpringBeanDependenciesUtil.chooseDependentBeans(candidates, klass.project, true) + } + return dependencies.mapNotNull { createAutowiredDependency(klass, it, model) } +} \ No newline at end of file diff --git a/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/generateDependenciesUtils.kt b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/generateDependenciesUtils.kt index 1b55a04992f..9b95243affc 100644 --- a/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/generateDependenciesUtils.kt +++ b/idea/idea-ultimate/src/org/jetbrains/kotlin/idea/spring/generate/generateDependenciesUtils.kt @@ -136,7 +136,7 @@ private fun SpringBean.getFactoryFunctionName(factoryBeanClass: KtClass): String return KotlinNameSuggester.suggestNameByName("create${beanClass!!.name}") { it !in existingNames } } -private val PsiClass.defaultTypeText: String +internal val PsiClass.defaultTypeText: String get() { val qName = qualifiedName ?: return "Any" val typeParameters = typeParameters @@ -175,29 +175,32 @@ private fun createSettable( } } -private fun getSuggestedNames( +internal fun getSuggestedNames( beanPointer: SpringBeanPointer, declaration: KtCallableDeclaration, + existingNames: Collection = emptyList(), getType: CallableDescriptor.() -> KotlinType? ): Collection { val names = LinkedHashSet() - val validator = NewDeclarationNameValidator(declaration.parent, null, NewDeclarationNameValidator.Target.VARIABLES, listOf(declaration)) + val newDeclarationNameValidator = + NewDeclarationNameValidator(declaration.parent, null, NewDeclarationNameValidator.Target.VARIABLES, listOf(declaration)) + fun validate(name: String) = name !in existingNames && newDeclarationNameValidator(name) SpringBeanUtils.getInstance() .findBeanNames(beanPointer.springBean) .asSequence() .filter { KotlinNameSuggester.isIdentifier(it) } - .mapTo(names) { KotlinNameSuggester.suggestNameByName(it, validator) } + .mapTo(names) { KotlinNameSuggester.suggestNameByName(it, ::validate) } (declaration.resolveToDescriptor() as CallableDescriptor).getType()?.let { - names += KotlinNameSuggester.suggestNamesByType(it, validator) + names += KotlinNameSuggester.suggestNamesByType(it, ::validate) } return names } -private fun TemplateBuilderImpl.appendVariableTemplate( +internal fun TemplateBuilderImpl.appendVariableTemplate( variable: KtCallableDeclaration, candidateBeanClasses: Array, computeSuggestions: (() -> Collection)? diff --git a/idea/idea-ultimate/tests/org/jetbrains/kotlin/idea/spring/tests/generate/AbstractGenerateSpringDependencyActionTest.kt b/idea/idea-ultimate/tests/org/jetbrains/kotlin/idea/spring/tests/generate/AbstractGenerateSpringDependencyActionTest.kt index acd686afd3e..bce95786229 100644 --- a/idea/idea-ultimate/tests/org/jetbrains/kotlin/idea/spring/tests/generate/AbstractGenerateSpringDependencyActionTest.kt +++ b/idea/idea-ultimate/tests/org/jetbrains/kotlin/idea/spring/tests/generate/AbstractGenerateSpringDependencyActionTest.kt @@ -43,7 +43,7 @@ abstract class AbstractGenerateSpringDependencyActionTest : AbstractCodeInsightA val springFileSet = TestFixtureExtension .getFixture()!! .configureFileSet(myFixture, listOf(configFilePath!!)) - if (configFilePath != mainFilePath) { + if (configFilePath != mainFilePath && PathUtil.getFileName(configFilePath!!) != "spring-config.xml") { configFile = springFileSet.files.single().file!! } diff --git a/idea/idea-ultimate/tests/org/jetbrains/kotlin/idea/spring/tests/generate/GenerateSpringDependencyActionTestGenerated.java b/idea/idea-ultimate/tests/org/jetbrains/kotlin/idea/spring/tests/generate/GenerateSpringDependencyActionTestGenerated.java index 6772298d562..a2ce2d0c364 100644 --- a/idea/idea-ultimate/tests/org/jetbrains/kotlin/idea/spring/tests/generate/GenerateSpringDependencyActionTestGenerated.java +++ b/idea/idea-ultimate/tests/org/jetbrains/kotlin/idea/spring/tests/generate/GenerateSpringDependencyActionTestGenerated.java @@ -35,6 +35,54 @@ public class GenerateSpringDependencyActionTestGenerated extends AbstractGenerat KotlinTestUtils.assertAllTestsPresentInSingleGeneratedClass(this.getClass(), new File("idea/testData/spring/core/generate"), Pattern.compile("^([\\w]+)\\.kt$")); } + @TestMetadata("autowiredDependencies/duplicatingPropertyAnnotationConfig.kt") + public void testAutowiredDependencies_DuplicatingPropertyAnnotationConfig() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt"); + doTest(fileName); + } + + @TestMetadata("autowiredDependencies/duplicatingPropertyXmlConfig.kt") + public void testAutowiredDependencies_DuplicatingPropertyXmlConfig() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt"); + doTest(fileName); + } + + @TestMetadata("autowiredDependencies/multiplePropertiesAnnotationConfig.kt") + public void testAutowiredDependencies_MultiplePropertiesAnnotationConfig() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt"); + doTest(fileName); + } + + @TestMetadata("autowiredDependencies/multiplePropertiesXmlConfig.kt") + public void testAutowiredDependencies_MultiplePropertiesXmlConfig() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt"); + doTest(fileName); + } + + @TestMetadata("autowiredDependencies/propertyWithQualifierAnnotationConfig.kt") + public void testAutowiredDependencies_PropertyWithQualifierAnnotationConfig() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt"); + doTest(fileName); + } + + @TestMetadata("autowiredDependencies/propertyWithQualifierXmlConfig.kt") + public void testAutowiredDependencies_PropertyWithQualifierXmlConfig() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt"); + doTest(fileName); + } + + @TestMetadata("autowiredDependencies/singlePropertyAnnotationConfig.kt") + public void testAutowiredDependencies_SinglePropertyAnnotationConfig() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt"); + doTest(fileName); + } + + @TestMetadata("autowiredDependencies/singlePropertyXmlConfig.kt") + public void testAutowiredDependencies_SinglePropertyXmlConfig() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt"); + doTest(fileName); + } + @TestMetadata("beanDependenciesByXml/firstConstructor.kt") public void testBeanDependenciesByXml_FirstConstructor() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt"); diff --git a/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt b/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt new file mode 100644 index 00000000000..290785bfff2 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt @@ -0,0 +1,19 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CHOOSE_BEAN: barBean +package a + +import org.springframework.stereotype.Component +import org.springframework.context.annotation.Configuration +import org.springframework.beans.factory.annotation.Autowired + +@Component +open class FooBean { + @Autowired lateinit var bean: BarBean +} + +@Component +open class BarBean + +@Configuration +@ComponentScan +open class Application \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt.after b/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt.after new file mode 100644 index 00000000000..f41f5cc0ecb --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyAnnotationConfig.kt.after @@ -0,0 +1,20 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CHOOSE_BEAN: barBean +package a + +import org.springframework.stereotype.Component +import org.springframework.context.annotation.Configuration +import org.springframework.beans.factory.annotation.Autowired + +@Component +open class FooBean { + @Autowired lateinit var bean: BarBean + @Autowired lateinit var barBean: BarBean +} + +@Component +open class BarBean + +@Configuration +@ComponentScan +open class Application \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt b/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt new file mode 100644 index 00000000000..32f4afb1c4a --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt @@ -0,0 +1,12 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CONFIG_FILE: spring-config.xml +// CHOOSE_BEAN: barBean +package a + +import org.springframework.beans.factory.annotation.Autowired + +open class FooBean { + @Autowired lateinit var bean: BarBean +} + +open class BarBean \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt.after b/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt.after new file mode 100644 index 00000000000..6ca4a64a12b --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/duplicatingPropertyXmlConfig.kt.after @@ -0,0 +1,13 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CONFIG_FILE: spring-config.xml +// CHOOSE_BEAN: barBean +package a + +import org.springframework.beans.factory.annotation.Autowired + +open class FooBean { + @Autowired lateinit var bean: BarBean + @Autowired lateinit var barBean: BarBean +} + +open class BarBean \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt b/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt new file mode 100644 index 00000000000..c7c458253f1 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt @@ -0,0 +1,18 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CHOOSE_BEAN: barBean, application +package a + +import org.springframework.stereotype.Component +import org.springframework.context.annotation.Configuration + +@Component +open class FooBean { + +} + +@Component +open class BarBean + +@Configuration +@ComponentScan +open class Application \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt.after b/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt.after new file mode 100644 index 00000000000..c0eb222be18 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesAnnotationConfig.kt.after @@ -0,0 +1,21 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CHOOSE_BEAN: barBean, application +package a + +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.stereotype.Component +import org.springframework.context.annotation.Configuration + +@Component +open class FooBean { + @Autowired lateinit var application: Application + @Autowired lateinit var barBean: BarBean + +} + +@Component +open class BarBean + +@Configuration +@ComponentScan +open class Application \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt b/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt new file mode 100644 index 00000000000..118d34cb644 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt @@ -0,0 +1,10 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CONFIG_FILE: spring-config.xml +// CHOOSE_BEAN: barBean, fooBean +package a + +open class FooBean { + +} + +open class BarBean \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt.after b/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt.after new file mode 100644 index 00000000000..67b0c650cdf --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/multiplePropertiesXmlConfig.kt.after @@ -0,0 +1,14 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CONFIG_FILE: spring-config.xml +// CHOOSE_BEAN: barBean, fooBean +package a + +import org.springframework.beans.factory.annotation.Autowired + +open class FooBean { + @Autowired lateinit var barBean: BarBean + @Autowired lateinit var fooBean: FooBean + +} + +open class BarBean \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt b/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt new file mode 100644 index 00000000000..348b68abee9 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt @@ -0,0 +1,21 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CHOOSE_BEAN: barBean +package a + +import org.springframework.stereotype.Component +import org.springframework.context.annotation.Configuration + +@Component +open class FooBean { + +} + +@Component +open class BarBean + +@Component +open class BarBeanChild : BarBean() + +@Configuration +@ComponentScan +open class Application \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt.after b/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt.after new file mode 100644 index 00000000000..f64da29b903 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierAnnotationConfig.kt.after @@ -0,0 +1,24 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CHOOSE_BEAN: barBean +package a + +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.beans.factory.annotation.Qualifier +import org.springframework.stereotype.Component +import org.springframework.context.annotation.Configuration + +@Component +open class FooBean { + @Qualifier("barBean") @Autowired lateinit var barBean: BarBean + +} + +@Component +open class BarBean + +@Component +open class BarBeanChild : BarBean() + +@Configuration +@ComponentScan +open class Application \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt b/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt new file mode 100644 index 00000000000..e92ff4833b5 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt @@ -0,0 +1,12 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CONFIG_FILE: +// CHOOSE_BEAN: barBean +package a + +open class FooBean { + +} + +open class BarBean + +open class BarBeanChild : BarBean() \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt.after b/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt.after new file mode 100644 index 00000000000..bcde72e9a6d --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/propertyWithQualifierXmlConfig.kt.after @@ -0,0 +1,16 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CONFIG_FILE: +// CHOOSE_BEAN: barBean +package a + +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.beans.factory.annotation.Qualifier + +open class FooBean { + @Qualifier("barBean") @Autowired lateinit var barBean: BarBean + +} + +open class BarBean + +open class BarBeanChild : BarBean() \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt b/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt new file mode 100644 index 00000000000..b5a95406837 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt @@ -0,0 +1,18 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CHOOSE_BEAN: barBean +package a + +import org.springframework.stereotype.Component +import org.springframework.context.annotation.Configuration + +@Component +open class FooBean { + +} + +@Component +open class BarBean + +@Configuration +@ComponentScan +open class Application \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt.after b/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt.after new file mode 100644 index 00000000000..cb93d4837bb --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyAnnotationConfig.kt.after @@ -0,0 +1,20 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CHOOSE_BEAN: barBean +package a + +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.stereotype.Component +import org.springframework.context.annotation.Configuration + +@Component +open class FooBean { + @Autowired lateinit var barBean: BarBean + +} + +@Component +open class BarBean + +@Configuration +@ComponentScan +open class Application \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt b/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt new file mode 100644 index 00000000000..9c5cffa3409 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt @@ -0,0 +1,10 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CONFIG_FILE: spring-config.xml +// CHOOSE_BEAN: barBean +package a + +open class FooBean { + +} + +open class BarBean \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt.after b/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt.after new file mode 100644 index 00000000000..2067edd4dd4 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/singlePropertyXmlConfig.kt.after @@ -0,0 +1,13 @@ +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinAutowiredDependencyAction +// CONFIG_FILE: spring-config.xml +// CHOOSE_BEAN: barBean +package a + +import org.springframework.beans.factory.annotation.Autowired + +open class FooBean { + @Autowired lateinit var barBean: BarBean + +} + +open class BarBean \ No newline at end of file diff --git a/idea/testData/spring/core/generate/autowiredDependencies/spring-config.xml b/idea/testData/spring/core/generate/autowiredDependencies/spring-config.xml new file mode 100644 index 00000000000..6db75fdfa41 --- /dev/null +++ b/idea/testData/spring/core/generate/autowiredDependencies/spring-config.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/factoryBean.kt.after b/idea/testData/spring/core/generate/beanDependenciesByXml/factoryBean.kt.after index e9ad046b134..6e64bc62e45 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/factoryBean.kt.after +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/factoryBean.kt.after @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: factoryMethod-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/factoryBean.kt_disabled b/idea/testData/spring/core/generate/beanDependenciesByXml/factoryBean.kt_disabled index dcf374bc3fd..d4de14b8507 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/factoryBean.kt_disabled +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/factoryBean.kt_disabled @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: factoryMethod-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/factoryMethod.kt.after b/idea/testData/spring/core/generate/beanDependenciesByXml/factoryMethod.kt.after index 51a40fdd467..424ccd0757c 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/factoryMethod.kt.after +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/factoryMethod.kt.after @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: factoryMethod-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/factoryMethod.kt_disabled b/idea/testData/spring/core/generate/beanDependenciesByXml/factoryMethod.kt_disabled index 16fa45bf3dc..d512fff0724 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/factoryMethod.kt_disabled +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/factoryMethod.kt_disabled @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: factoryMethod-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt b/idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt index b213095167f..fa4d9589960 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: firstConstructor-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt.after b/idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt.after index 1163a05776c..196006c3d69 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt.after +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/firstConstructor.kt.after @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: firstConstructor-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/primaryConstructorAddParam.kt b/idea/testData/spring/core/generate/beanDependenciesByXml/primaryConstructorAddParam.kt index 95fa3405af8..9fb12bd6f6d 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/primaryConstructorAddParam.kt +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/primaryConstructorAddParam.kt @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: primaryConstructorAddParam-config.xml // CHOOSE_BEAN: bazBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/primaryConstructorAddParam.kt.after b/idea/testData/spring/core/generate/beanDependenciesByXml/primaryConstructorAddParam.kt.after index d88722a7fab..f9aaddf3cf9 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/primaryConstructorAddParam.kt.after +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/primaryConstructorAddParam.kt.after @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: primaryConstructorAddParam-config.xml // CHOOSE_BEAN: bazBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/property.kt b/idea/testData/spring/core/generate/beanDependenciesByXml/property.kt index d09a4e26ac0..7e114b10eae 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/property.kt +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/property.kt @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$LateinitProperty +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$LateinitProperty // CONFIG_FILE: property-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/property.kt.after b/idea/testData/spring/core/generate/beanDependenciesByXml/property.kt.after index 948f319f03c..8e09487f54a 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/property.kt.after +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/property.kt.after @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$LateinitProperty +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$LateinitProperty // CONFIG_FILE: property-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructor.kt.after b/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructor.kt.after index 5be5ad1ab11..6be454dac43 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructor.kt.after +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructor.kt.after @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: secondaryConstructor-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructor.kt_disabled b/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructor.kt_disabled index f996220b413..a3cffb2bb2f 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructor.kt_disabled +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructor.kt_disabled @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: secondaryConstructor-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructorAddParam.kt b/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructorAddParam.kt index 577d8b9ed69..a8458799c2e 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructorAddParam.kt +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructorAddParam.kt @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: secondaryConstructorAddParam-config.xml // CHOOSE_BEAN: bazBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructorAddParam.kt.after b/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructorAddParam.kt.after index dd41823b604..855d816f3a8 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructorAddParam.kt.after +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/secondaryConstructorAddParam.kt.after @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Constructor +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Constructor // CONFIG_FILE: secondaryConstructorAddParam-config.xml // CHOOSE_BEAN: bazBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/setter.kt b/idea/testData/spring/core/generate/beanDependenciesByXml/setter.kt index 08f5fa2dbd7..0ad550ed207 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/setter.kt +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/setter.kt @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Setter +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Setter // CONFIG_FILE: setter-config.xml // CHOOSE_BEAN: barBean package a diff --git a/idea/testData/spring/core/generate/beanDependenciesByXml/setter.kt.after b/idea/testData/spring/core/generate/beanDependenciesByXml/setter.kt.after index 1aec3e2e81e..f7b706e6f24 100644 --- a/idea/testData/spring/core/generate/beanDependenciesByXml/setter.kt.after +++ b/idea/testData/spring/core/generate/beanDependenciesByXml/setter.kt.after @@ -1,4 +1,4 @@ -// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanDependencyAction$Setter +// ACTION_CLASS: org.jetbrains.kotlin.idea.spring.generate.GenerateKotlinSpringBeanXmlDependencyAction$Setter // CONFIG_FILE: setter-config.xml // CHOOSE_BEAN: barBean package a