diff --git a/plugins/org.eclipse.xtext.ide/META-INF/MANIFEST.MF b/plugins/org.eclipse.xtext.ide/META-INF/MANIFEST.MF index 54789e86d..4271d775b 100644 --- a/plugins/org.eclipse.xtext.ide/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.xtext.ide/META-INF/MANIFEST.MF @@ -1,28 +1,28 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.xtext.ide;singleton:=true -Bundle-Version: 2.9.0.qualifier -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Bundle-ActivationPolicy: lazy -Bundle-Vendor: %providerName -Require-Bundle: org.eclipse.xtext;visibility:=reexport, - org.eclipse.xtend.lib -Import-Package: org.apache.log4j;version="1.2.15" -Export-Package: org.eclipse.xtext.ide;x-friends:="org.eclipse.xtend.ide", - org.eclipse.xtext.ide.editor.bracketmatching;x-friends:="org.eclipse.xtend.ide.common,org.eclipse.xtend.ide", - org.eclipse.xtext.ide.editor.contentassist;x-friends:="org.eclipse.xtend.ide,org.eclipse.xtext.xbase.ide", - org.eclipse.xtext.ide.editor.contentassist.antlr;x-friends:="org.eclipse.xtend.ide.common,org.eclipse.xtend.ide", - org.eclipse.xtext.ide.editor.contentassist.antlr.internal;x-friends:="org.eclipse.xtend.ide.common,org.eclipse.xtend.ide", - org.eclipse.xtext.ide.editor.model;x-internal:=true, - org.eclipse.xtext.ide.editor.partialEditing;x-friends:="org.eclipse.xtend.ide", - org.eclipse.xtext.ide.editor.syntaxcoloring; - x-friends:="org.eclipse.xtext.xbase.ide, - org.eclipse.xtext.ui, - org.eclipse.xtext.xbase.ui, - org.eclipse.xtend.ide, - org.eclipse.xtext.xtext.ui, - org.eclipse.xtext.xtext.ui.tests, - org.eclipse.xtend.ide.common", - org.eclipse.xtext.ide.labels;x-friends:="org.eclipse.xtext.web" +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.xtext.ide;singleton:=true +Bundle-Version: 2.9.0.qualifier +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ActivationPolicy: lazy +Bundle-Vendor: %providerName +Require-Bundle: org.eclipse.xtext;visibility:=reexport, + org.eclipse.xtend.lib +Import-Package: org.apache.log4j;version="1.2.15" +Export-Package: org.eclipse.xtext.ide;x-friends:="org.eclipse.xtend.ide", + org.eclipse.xtext.ide.editor.bracketmatching;x-friends:="org.eclipse.xtend.ide.common,org.eclipse.xtend.ide", + org.eclipse.xtext.ide.editor.contentassist, + org.eclipse.xtext.ide.editor.contentassist.antlr, + org.eclipse.xtext.ide.editor.contentassist.antlr.internal, + org.eclipse.xtext.ide.editor.model;x-internal:=true, + org.eclipse.xtext.ide.editor.partialEditing;x-friends:="org.eclipse.xtend.ide", + org.eclipse.xtext.ide.editor.syntaxcoloring; + x-friends:="org.eclipse.xtext.xbase.ide, + org.eclipse.xtext.ui, + org.eclipse.xtext.xbase.ui, + org.eclipse.xtend.ide, + org.eclipse.xtext.xtext.ui, + org.eclipse.xtext.xtext.ui.tests, + org.eclipse.xtend.ide.common", + org.eclipse.xtext.ide.labels;x-friends:="org.eclipse.xtext.web" diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/ContentAssistContext.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/ContentAssistContext.java index 2fb1f3611..57dfe0d2d 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/ContentAssistContext.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/ContentAssistContext.java @@ -23,6 +23,7 @@ import com.google.inject.Provider; /** * Abstraction of a commonly used set of attributes related to the current content assist request. + * @since 2.9 */ public class ContentAssistContext { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/ContentAssistEntry.xtend b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/ContentAssistEntry.xtend index 12c6b6825..a59ffcb9c 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/ContentAssistEntry.xtend +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/ContentAssistEntry.xtend @@ -14,6 +14,9 @@ import org.eclipse.xtend.lib.annotations.ToString import org.eclipse.xtext.util.ReplaceRegion import org.eclipse.xtext.util.TextRegion +/** + * @noreference + */ @Accessors @ToString(skipNulls = true) @EqualsHashCode diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IFollowElementAcceptor.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IFollowElementAcceptor.java index 794b9492e..1ff811623 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IFollowElementAcceptor.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IFollowElementAcceptor.java @@ -8,7 +8,9 @@ package org.eclipse.xtext.ide.editor.contentassist; import org.eclipse.xtext.AbstractElement; - +/** + * @since 2.9 + */ public interface IFollowElementAcceptor { void accept(AbstractElement element); diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IIdeContentProposalAcceptor.xtend b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IIdeContentProposalAcceptor.xtend index c40274534..ee621076f 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IIdeContentProposalAcceptor.xtend +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IIdeContentProposalAcceptor.xtend @@ -9,6 +9,9 @@ package org.eclipse.xtext.ide.editor.contentassist import org.eclipse.xtext.ide.editor.contentassist.ContentAssistEntry +/** + * @noreference + */ interface IIdeContentProposalAcceptor { def void accept(ContentAssistEntry entry, int priority) diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeContentProposalPriorities.xtend b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeContentProposalPriorities.xtend index e09a1c511..f2a96990e 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeContentProposalPriorities.xtend +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeContentProposalPriorities.xtend @@ -15,6 +15,7 @@ import org.eclipse.xtext.resource.IEObjectDescription /** * Determines priorities for content assist proposal entries. The priorities can be used * to sort the list of proposals. + * @noreference */ @Singleton @Accessors(PROTECTED_GETTER, PROTECTED_SETTER) diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeContentProposalProvider.xtend b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeContentProposalProvider.xtend index 589c02ddf..3f8cf4bef 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeContentProposalProvider.xtend +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeContentProposalProvider.xtend @@ -30,6 +30,7 @@ import org.eclipse.xtext.xtext.CurrentTypeFinder * Generic content proposal provider for use in different IDE contexts. This provider is * <em>not</em> used by the Eclipse integration, which has its own abstraction for * content assist proposals. + * @noreference */ class IdeContentProposalProvider { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeCrossrefProposalProvider.xtend b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeCrossrefProposalProvider.xtend index 0cbbf00e6..d24444432 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeCrossrefProposalProvider.xtend +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/IdeCrossrefProposalProvider.xtend @@ -21,6 +21,7 @@ import org.eclipse.xtext.scoping.IScope /** * Special content assist proposal provider for cross-references. + * @noreference */ class IdeCrossrefProposalProvider { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/AbstractContentAssistParser.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/AbstractContentAssistParser.java index af62538e8..4f4c96f52 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/AbstractContentAssistParser.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/AbstractContentAssistParser.java @@ -38,6 +38,9 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.name.Named; +/** + * @since 2.9 + */ public abstract class AbstractContentAssistParser implements IContentAssistParser { @Inject diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/AbstractPartialContentAssistParser.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/AbstractPartialContentAssistParser.java index 6eb8e5eb2..391ee1df4 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/AbstractPartialContentAssistParser.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/AbstractPartialContentAssistParser.java @@ -36,6 +36,7 @@ import com.google.inject.Inject; /** * Base class for content assist parsers that can reduce the input preceding the cursor * position without any impact on the follow set. + * @since 2.9 */ public abstract class AbstractPartialContentAssistParser extends AbstractContentAssistParser implements IPartialContentAssistParser { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/CallHierarchyHelper.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/CallHierarchyHelper.java index 8becfc105..5e2cf26e7 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/CallHierarchyHelper.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/CallHierarchyHelper.java @@ -30,6 +30,9 @@ import org.eclipse.xtext.util.XtextSwitch; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +/** + * @since 2.9 + */ public class CallHierarchyHelper extends XtextSwitch<Boolean> { private final EObject nextGrammarElement; private Set<AbstractRule> visiting = new HashSet<AbstractRule>(); diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/ContentAssistContextFactory.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/ContentAssistContextFactory.java index a8c76bbf8..fa876878d 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/ContentAssistContextFactory.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/ContentAssistContextFactory.java @@ -55,6 +55,9 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.name.Named; +/** + * @since 2.9 + */ public class ContentAssistContextFactory implements Function<ContentAssistContext.Builder, ContentAssistContext> { private static final Logger log = Logger.getLogger(ContentAssistContextFactory.class); diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/EntryPointFinder.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/EntryPointFinder.java index 083eb7b66..371530e49 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/EntryPointFinder.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/EntryPointFinder.java @@ -21,6 +21,7 @@ import org.eclipse.xtext.parser.IParseResult; /** * Used by the {@link AbstractPartialContentAssistParser} to find the node at which to start parsing. + * @since 2.9 */ public class EntryPointFinder { public ICompositeNode findEntryPoint(IParseResult parseResult, int offset) { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElement.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElement.java index 4f478c60c..34abea217 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElement.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElement.java @@ -14,6 +14,7 @@ import org.eclipse.xtext.AbstractElement; /** * Simple bean that reflects the current state, when the content assist parser * hit EOF. + * @since 2.9 */ public class FollowElement { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElementCalculator.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElementCalculator.java index 9ad3cc2ec..b12f9989b 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElementCalculator.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElementCalculator.java @@ -34,6 +34,9 @@ import org.eclipse.xtext.xtext.ParameterConfigHelper; import com.google.common.collect.Sets; +/** + * @since 2.9 + */ public class FollowElementCalculator extends XtextSwitch<Boolean> { protected IFollowElementAcceptor acceptor; diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElementComputer.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElementComputer.java index 8713c76c7..ed0611b07 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElementComputer.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/FollowElementComputer.java @@ -34,7 +34,7 @@ import com.google.common.collect.Multimap; import com.google.inject.Inject; /** - * + * @since 2.9 */ public class FollowElementComputer { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/IContentAssistParser.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/IContentAssistParser.java index 78648e79a..a3483802c 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/IContentAssistParser.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/IContentAssistParser.java @@ -11,6 +11,7 @@ import java.util.Collection; /** * Parser that returns the expected elements when EOF is reached. + * @since 2.9 */ public interface IContentAssistParser { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/IPartialContentAssistParser.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/IPartialContentAssistParser.java index d0f6b2c78..3b6e7b23d 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/IPartialContentAssistParser.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/IPartialContentAssistParser.java @@ -13,6 +13,7 @@ import org.eclipse.xtext.parser.IParseResult; /** * A content assist parser that can skip parts of the document for faster parsing + * @since 2.9 */ public interface IPartialContentAssistParser extends IContentAssistParser { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LeafNodeFinder.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LeafNodeFinder.java index 0a2832615..495f2d3b0 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LeafNodeFinder.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LeafNodeFinder.java @@ -11,6 +11,9 @@ import org.eclipse.xtext.nodemodel.ICompositeNode; import org.eclipse.xtext.nodemodel.ILeafNode; import org.eclipse.xtext.nodemodel.INode; +/** + * @since 2.9 + */ public class LeafNodeFinder { private final int offset; private final boolean leading; diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookAheadTerminal.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookAheadTerminal.java index fa29b0c37..4d7680b4b 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookAheadTerminal.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookAheadTerminal.java @@ -10,6 +10,9 @@ package org.eclipse.xtext.ide.editor.contentassist.antlr; import org.antlr.runtime.Token; import org.eclipse.xtext.AbstractElement; +/** + * @since 2.9 + */ public abstract class LookAheadTerminal { private Token token; diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookAheadTerminalRuleCall.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookAheadTerminalRuleCall.java index 6035409e5..36c9eae44 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookAheadTerminalRuleCall.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookAheadTerminalRuleCall.java @@ -11,6 +11,9 @@ import org.eclipse.xtext.AbstractElement; import org.eclipse.xtext.RuleCall; import org.eclipse.xtext.TerminalRule; +/** + * @since 2.9 + */ public class LookAheadTerminalRuleCall extends LookAheadTerminal { private TerminalRule rule; diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookaheadKeyword.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookaheadKeyword.java index 91fba15cb..a067fe4a2 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookaheadKeyword.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/LookaheadKeyword.java @@ -10,6 +10,9 @@ package org.eclipse.xtext.ide.editor.contentassist.antlr; import org.eclipse.xtext.AbstractElement; import org.eclipse.xtext.Keyword; +/** + * @since 2.9 + */ public class LookaheadKeyword extends LookAheadTerminal { private String keyword; diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/ObservableXtextTokenStream.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/ObservableXtextTokenStream.java index fa77ce7a5..1612d5055 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/ObservableXtextTokenStream.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/ObservableXtextTokenStream.java @@ -12,6 +12,9 @@ import org.antlr.runtime.TokenSource; import org.eclipse.xtext.parser.antlr.ITokenDefProvider; import org.eclipse.xtext.parser.antlr.XtextTokenStream; +/** + * @since 2.9 + */ public class ObservableXtextTokenStream extends XtextTokenStream { public interface StreamListener { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/PartialContentAssistContextFactory.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/PartialContentAssistContextFactory.java index ef46fbeb1..23b303175 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/PartialContentAssistContextFactory.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/PartialContentAssistContextFactory.java @@ -16,6 +16,9 @@ import org.eclipse.xtext.nodemodel.ILeafNode; import org.eclipse.xtext.nodemodel.INode; import org.eclipse.xtext.util.Strings; +/** + * @since 2.9 + */ public class PartialContentAssistContextFactory extends ContentAssistContextFactory { @Override protected void createContextsForLastCompleteNode(EObject previousModel, boolean strict) { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/RequiredRuleNameComputer.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/RequiredRuleNameComputer.java index 79a9da092..db8b09feb 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/RequiredRuleNameComputer.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/RequiredRuleNameComputer.java @@ -25,6 +25,7 @@ import com.google.inject.Singleton; /** * @author Sebastian Zarnekow - Initial contribution and API + * @since 2.9 */ @Singleton public class RequiredRuleNameComputer { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/AbstractInternalContentAssistParser.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/AbstractInternalContentAssistParser.java index 60518d479..edb3067f9 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/AbstractInternalContentAssistParser.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/AbstractInternalContentAssistParser.java @@ -45,6 +45,9 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; +/** + * @since 2.9 + */ public abstract class AbstractInternalContentAssistParser extends Parser implements ObservableXtextTokenStream.StreamListener, ITokenDefProvider { diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/DFA.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/DFA.java index 933acae6b..e549d24a8 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/DFA.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/DFA.java @@ -14,6 +14,9 @@ import org.antlr.runtime.Token; import org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper; import org.eclipse.xtext.parser.antlr.XtextTokenStream; +/** + * @since 2.9 + */ public class DFA extends org.antlr.runtime.DFA { @Override diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/InfiniteRecursion.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/InfiniteRecursion.java index 69ee2ab14..d8faf93c9 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/InfiniteRecursion.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/InfiniteRecursion.java @@ -7,5 +7,8 @@ *******************************************************************************/ package org.eclipse.xtext.ide.editor.contentassist.antlr.internal; +/** + * @since 2.9 + */ @SuppressWarnings("serial") public class InfiniteRecursion extends RuntimeException {} \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/Lexer.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/Lexer.java index 4d897159c..1a07920d3 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/Lexer.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/Lexer.java @@ -11,6 +11,9 @@ import org.antlr.runtime.CharStream; import org.antlr.runtime.RecognizerSharedState; import org.apache.log4j.Logger; +/** + * @since 2.9 + */ public abstract class Lexer extends org.antlr.runtime.Lexer { private static final Logger logger = Logger.getLogger(Lexer.class); diff --git a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/LinkedHashSetWithoutNull.java b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/LinkedHashSetWithoutNull.java index c5deb6d3f..44b01dab1 100644 --- a/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/LinkedHashSetWithoutNull.java +++ b/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/LinkedHashSetWithoutNull.java @@ -16,6 +16,7 @@ import java.util.LinkedHashSet; * with caution. * * @author Sebastian Zarnekow - Initial contribution and API + * @since 2.9 */ public class LinkedHashSetWithoutNull<T> extends LinkedHashSet<T> { private static final long serialVersionUID = 1L; diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/AbstractGeneratorFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/AbstractGeneratorFragment2.xtend index cfee33634..2e3e79a42 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/AbstractGeneratorFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/AbstractGeneratorFragment2.xtend @@ -15,7 +15,7 @@ import org.eclipse.xtext.Grammar abstract class AbstractGeneratorFragment2 implements IGeneratorFragment2 { @Accessors(PROTECTED_GETTER) - @Inject IXtextProjectConfig projectConfig + @Inject XtextProjectConfig projectConfig @Accessors(PROTECTED_GETTER) @Inject ILanguageConfig language diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/DefaultGeneratorModule.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/DefaultGeneratorModule.xtend index 3e937be13..313b145bf 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/DefaultGeneratorModule.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/DefaultGeneratorModule.xtend @@ -27,7 +27,7 @@ class DefaultGeneratorModule extends AbstractGenericModule { } def void configureXtextProjectConfig(Binder binder) { - binder.bind(IXtextProjectConfig).toInstance(project) + binder.bind(XtextProjectConfig).toInstance(project) } def void configureCodeConfig(Binder binder) { diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/IXtextProjectConfig.java b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/IXtextProjectConfig.java deleted file mode 100644 index 424ff7031..000000000 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/IXtextProjectConfig.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - *******************************************************************************/ -package org.eclipse.xtext.xtext.generator; - -import org.eclipse.xtext.xtext.generator.model.IXtextGeneratorFileSystemAccess; -import org.eclipse.xtext.xtext.generator.IGuiceAwareGeneratorComponent; -import org.eclipse.xtext.xtext.generator.model.ManifestAccess; -import org.eclipse.xtext.xtext.generator.model.PluginXmlAccess; - -/** - * Inject an instance of this interface in order to generate code in a generator fragment. - * - * <p>This file has been generated with {@link org.eclipse.xtext.xtext.generator.internal.ProjectConfigGenerator}.</p> - */ -public interface IXtextProjectConfig extends IGuiceAwareGeneratorComponent { - - IXtextGeneratorFileSystemAccess getRuntimeModelGen(); - - String getRuntimeProjectName(); - IXtextGeneratorFileSystemAccess getRuntimeRoot(); - IXtextGeneratorFileSystemAccess getRuntimeMetaInf(); - IXtextGeneratorFileSystemAccess getRuntimeSrc(); - IXtextGeneratorFileSystemAccess getRuntimeSrcGen(); - ManifestAccess getRuntimeManifest(); - PluginXmlAccess getRuntimePluginXml(); - - String getRuntimeTestProjectName(); - IXtextGeneratorFileSystemAccess getRuntimeTestRoot(); - IXtextGeneratorFileSystemAccess getRuntimeTestMetaInf(); - IXtextGeneratorFileSystemAccess getRuntimeTestSrc(); - IXtextGeneratorFileSystemAccess getRuntimeTestSrcGen(); - ManifestAccess getRuntimeTestManifest(); - PluginXmlAccess getRuntimeTestPluginXml(); - - String getGenericIdeProjectName(); - IXtextGeneratorFileSystemAccess getGenericIdeRoot(); - IXtextGeneratorFileSystemAccess getGenericIdeMetaInf(); - IXtextGeneratorFileSystemAccess getGenericIdeSrc(); - IXtextGeneratorFileSystemAccess getGenericIdeSrcGen(); - ManifestAccess getGenericIdeManifest(); - PluginXmlAccess getGenericIdePluginXml(); - - String getGenericIdeTestProjectName(); - IXtextGeneratorFileSystemAccess getGenericIdeTestRoot(); - IXtextGeneratorFileSystemAccess getGenericIdeTestMetaInf(); - IXtextGeneratorFileSystemAccess getGenericIdeTestSrc(); - IXtextGeneratorFileSystemAccess getGenericIdeTestSrcGen(); - ManifestAccess getGenericIdeTestManifest(); - PluginXmlAccess getGenericIdeTestPluginXml(); - - String getEclipsePluginProjectName(); - IXtextGeneratorFileSystemAccess getEclipsePluginRoot(); - IXtextGeneratorFileSystemAccess getEclipsePluginMetaInf(); - IXtextGeneratorFileSystemAccess getEclipsePluginSrc(); - IXtextGeneratorFileSystemAccess getEclipsePluginSrcGen(); - ManifestAccess getEclipsePluginManifest(); - PluginXmlAccess getEclipsePluginPluginXml(); - - String getEclipsePluginTestProjectName(); - IXtextGeneratorFileSystemAccess getEclipsePluginTestRoot(); - IXtextGeneratorFileSystemAccess getEclipsePluginTestMetaInf(); - IXtextGeneratorFileSystemAccess getEclipsePluginTestSrc(); - IXtextGeneratorFileSystemAccess getEclipsePluginTestSrcGen(); - ManifestAccess getEclipsePluginTestManifest(); - PluginXmlAccess getEclipsePluginTestPluginXml(); - - String getIdeaPluginProjectName(); - IXtextGeneratorFileSystemAccess getIdeaPluginRoot(); - IXtextGeneratorFileSystemAccess getIdeaPluginMetaInf(); - IXtextGeneratorFileSystemAccess getIdeaPluginSrc(); - IXtextGeneratorFileSystemAccess getIdeaPluginSrcGen(); - ManifestAccess getIdeaPluginManifest(); - - String getIdeaPluginTestProjectName(); - IXtextGeneratorFileSystemAccess getIdeaPluginTestRoot(); - IXtextGeneratorFileSystemAccess getIdeaPluginTestMetaInf(); - IXtextGeneratorFileSystemAccess getIdeaPluginTestSrc(); - IXtextGeneratorFileSystemAccess getIdeaPluginTestSrcGen(); - ManifestAccess getIdeaPluginTestManifest(); - - String getWebProjectName(); - IXtextGeneratorFileSystemAccess getWebRoot(); - IXtextGeneratorFileSystemAccess getWebMetaInf(); - IXtextGeneratorFileSystemAccess getWebSrc(); - IXtextGeneratorFileSystemAccess getWebSrcGen(); - ManifestAccess getWebManifest(); - - String getWebTestProjectName(); - IXtextGeneratorFileSystemAccess getWebTestRoot(); - IXtextGeneratorFileSystemAccess getWebTestMetaInf(); - IXtextGeneratorFileSystemAccess getWebTestSrc(); - IXtextGeneratorFileSystemAccess getWebTestSrcGen(); - ManifestAccess getWebTestManifest(); - - IXtextGeneratorFileSystemAccess getWebApp(); - -} diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ImplicitFragment.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ImplicitFragment.xtend index 6365709bf..0ab2ef56b 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ImplicitFragment.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ImplicitFragment.xtend @@ -19,26 +19,24 @@ import static extension org.eclipse.xtext.xtext.generator.model.TypeReference.* package class ImplicitFragment extends AbstractGeneratorFragment2 { - @Inject IXtextProjectConfig projectConfig - @Inject extension XbaseUsageDetector @Inject extension XtextGeneratorNaming naming override generate() { - if (projectConfig.runtimeManifest !== null) { - projectConfig.runtimeManifest.requiredBundles.addAll(#[ + if (projectConfig.runtime.manifest !== null) { + projectConfig.runtime.manifest.requiredBundles.addAll(#[ 'org.eclipse.xtext', 'org.eclipse.xtext.util', 'org.eclipse.xtend.lib' ]) - projectConfig.runtimeManifest.importedPackages.add('org.apache.log4j') + projectConfig.runtime.manifest.importedPackages.add('org.apache.log4j') } - if (projectConfig.eclipsePluginManifest !== null) { - projectConfig.eclipsePluginManifest.requiredBundles.addAll(#[ + if (projectConfig.eclipsePlugin.manifest !== null) { + projectConfig.eclipsePlugin.manifest.requiredBundles.addAll(#[ 'org.eclipse.xtext.ui', 'org.eclipse.xtext.ui.shared', 'org.eclipse.ui.editors', 'org.eclipse.ui', 'org.eclipse.xtend.lib' ]) } - if (projectConfig.eclipsePluginPluginXml !== null) { - projectConfig.eclipsePluginPluginXml.entries += grammar.implicitPluginXmlEnties + if (projectConfig.eclipsePlugin.pluginXml !== null) { + projectConfig.eclipsePlugin.pluginXml.entries += grammar.implicitPluginXmlEnties } val StringConcatenationClient expression = '''�'org.eclipse.xtext.ui.shared.Access'.typeRef�.getJavaProjectsState()''' diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/SubProjectConfig.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/SubProjectConfig.xtend new file mode 100644 index 000000000..9677daacb --- /dev/null +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/SubProjectConfig.xtend @@ -0,0 +1,126 @@ +/******************************************************************************* + * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.xtext.xtext.generator + +import com.google.common.base.CharMatcher +import com.google.inject.Injector +import org.eclipse.xtend.lib.annotations.Accessors +import org.eclipse.xtext.xtext.generator.model.IXtextGeneratorFileSystemAccess +import org.eclipse.xtext.xtext.generator.model.ManifestAccess +import org.eclipse.xtext.xtext.generator.model.PluginXmlAccess + +class SubProjectConfig implements IGuiceAwareGeneratorComponent { + @Accessors(PUBLIC_GETTER, PACKAGE_SETTER) + XtextProjectConfig owner + @Accessors + boolean enabled + @Accessors + String name + @Accessors(PUBLIC_GETTER) + IXtextGeneratorFileSystemAccess root + @Accessors(PUBLIC_GETTER) + IXtextGeneratorFileSystemAccess metaInf + @Accessors(PUBLIC_GETTER) + IXtextGeneratorFileSystemAccess src + @Accessors(PUBLIC_GETTER) + IXtextGeneratorFileSystemAccess srcGen + + def void setRoot(String path) { + root = owner.newFileSystemAccess(path, true) + } + + def void setMetaInf(String path) { + metaInf = owner.newFileSystemAccess(path, true) + } + + def void setSrc(String path) { + src = owner.newFileSystemAccess(path, false) + } + + def void setSrcGen(String path) { + srcGen = owner.newFileSystemAccess(path, true) + } + + def void checkConfiguration(Issues issues) { + } + + override initialize(Injector injector) { + injector.injectMembers(this) + root?.initialize(injector) + metaInf?.initialize(injector) + src?.initialize(injector) + srcGen?.initialize(injector) + } + +} + + + +@Accessors +class BundleProjectConfig extends SubProjectConfig { + ManifestAccess manifest + PluginXmlAccess pluginXml + + override initialize(Injector injector) { + super.initialize(injector) + manifest?.initialize(injector) + pluginXml?.initialize(injector) + } + + override checkConfiguration(Issues issues) { + super.checkConfiguration(issues) + if (manifest !== null && metaInf === null) { + issues.addError("The 'metaInf' outlet must be configured for projects with a manifest", this) + } + if (pluginXml !== null && root === null) { + issues.addError("The 'root' outlet must be configured for projects with a plugin.xml", this) + } + } + +} + + +class RuntimeProjectConfig extends BundleProjectConfig { + @Accessors(PUBLIC_GETTER) + IXtextGeneratorFileSystemAccess ecoreModel + + def void setEcoreModel(String path) { + ecoreModel = owner.newFileSystemAccess(path, true) + } + + /** + * Returns the root-relative path of the folder where the generated .ecore and .genmodel can be found. + * The path is delimited by and ends with '/' + */ + def String getEcoreModelFolder() { + val ecoreModelFolder = ecoreModel.path.replace(root.path, "").replace('\\', '/') + val slashes = CharMatcher.is('/') + slashes.trimFrom(ecoreModelFolder) + "/" + } + + override initialize(Injector injector) { + super.initialize(injector) + ecoreModel?.initialize(injector) + } + +} + +class WebProjectConfig extends SubProjectConfig { + @Accessors(PUBLIC_GETTER) + IXtextGeneratorFileSystemAccess assets + + def void setAssets(String path) { + assets = owner.newFileSystemAccess(path, true) + } + + override initialize(Injector injector) { + super.initialize(injector) + assets?.initialize(injector) + } + +} \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/WizardConfig.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/WizardConfig.xtend index 5503be42e..0bed425d6 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/WizardConfig.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/WizardConfig.xtend @@ -7,36 +7,22 @@ *******************************************************************************/ package org.eclipse.xtext.xtext.generator -import com.google.inject.Injector import org.eclipse.emf.mwe2.runtime.Mandatory import org.eclipse.xtend.lib.annotations.Accessors -import org.eclipse.xtext.xtext.generator.model.ManifestAccess -import org.eclipse.xtext.xtext.generator.model.PluginXmlAccess @Accessors class WizardConfig extends XtextProjectConfig { - - boolean eclipseEditor = true - - boolean ideaEditor = false - - boolean webSupport = false - - boolean genericIdeSupport = false - - boolean testingSupport = false - - boolean mavenLayout = false - + + boolean mavenLayout + boolean createEclipseMetaData String rootPath - String baseName - + @Mandatory def setBaseName(String baseName) { this.baseName = baseName } - + @Mandatory def setRootPath(String rootPath) { this.rootPath = rootPath @@ -44,151 +30,82 @@ class WizardConfig extends XtextProjectConfig { override checkConfiguration(Issues issues) { super.checkConfiguration(issues) - if (rootPath == null) { - issues.addError('The property \'rootPath\' must be set.', this) - return - } - if (baseName == null) { - issues.addError('The property \'baseName\' must be set.', this) - return - } - val runtimeBase = runtimeRoot?.path - if (!Character.isJavaIdentifierPart(runtimeBase.charAt(runtimeBase.length - 1))) - issues.addError('The runtime root path must end with a valid package name.', this) - if ((ideaEditor || webSupport) && !genericIdeSupport) - issues.addError('Generic IDE support must be enabled when the IDEA or web editors are enabled.', this) + if (rootPath === null) + issues.addError("The property 'rootPath' must be set", this) + if (baseName === null) + issues.addError("The property 'baseName' must be set", this) } - - override initialize(Injector injector) { - var src = 'src' - var testSrc = src - var srcGen = 'src-gen' - var testSrcGen = srcGen - var metaInf = 'META-INF' - var modelGen = 'model/generated' - var srcWeb = 'WebRoot' - if (mavenLayout) { - src = 'src/main/java' - testSrc = 'src/test/java' - srcGen = 'src/main/xtext-gen' - testSrcGen = 'src/test/xtext-gen' - metaInf = 'src/main/resources/META-INF' - modelGen = 'src/main/model-gen' - srcWeb = 'src/main/webapp' - } - - if (runtimeProjectName=== null) - runtimeProjectName = baseName - if (runtimeRoot === null) - runtimeRoot = rootPath + '/' + runtimeProjectName - if (runtimeMetaInf === null) - runtimeMetaInf = runtimeRoot.path + '/' + metaInf - if (runtimeSrc === null) - runtimeSrc = runtimeRoot.path + '/' + src - if (runtimeSrcGen === null) - runtimeSrcGen = runtimeRoot.path + '/' + srcGen - if (runtimeManifest === null) - runtimeManifest = injector.getInstance(ManifestAccess) - if (runtimePluginXml === null) - runtimePluginXml = injector.getInstance(PluginXmlAccess) - if (runtimeModelGen === null) - runtimeModelGen = runtimeRoot.path + '/' + modelGen - - if (testingSupport) { - if (runtimeTestProjectName=== null) - if(mavenLayout) { - runtimeTestProjectName = runtimeProjectName - } else { - runtimeTestProjectName = runtimeProjectName + ".tests" + + override setDefaults() { + super.setDefaults + enabledProjects.forEach [ + if (name === null) + name = computeName + if (root === null) + root = computeRoot + if (metaInf === null) + metaInf = computeMetaInf + if (src === null) + src = computeSrc + if (srcGen === null) + srcGen = computeSrcGen + if (it instanceof BundleProjectConfig) { + if (createEclipseMetaData) { + if (manifest === null) + manifest = newManifestAccess + if (pluginXml === null) + pluginXml = newPluginXmlAccess } - if (runtimeTestRoot === null) - runtimeTestRoot = rootPath + '/' + runtimeTestProjectName - if (runtimeTestMetaInf=== null) - runtimeTestMetaInf = runtimeTestRoot.path + '/' + metaInf - if (runtimeTestSrc === null) - runtimeTestSrc = runtimeTestRoot.path + '/' + testSrc - if (runtimeTestSrcGen === null) - runtimeTestSrcGen = runtimeTestRoot.path + '/' + testSrcGen - if (runtimeTestManifest === null) - runtimeTestManifest = injector.getInstance(ManifestAccess) - } - - if (eclipseEditor) { - if (eclipsePluginProjectName=== null) - eclipsePluginProjectName = baseName + '.ui' - if (eclipsePluginRoot === null) - eclipsePluginRoot = rootPath + '/' + eclipsePluginProjectName - if (eclipsePluginMetaInf === null) - eclipsePluginMetaInf = eclipsePluginRoot.path + '/' + metaInf - if (eclipsePluginSrc === null) - eclipsePluginSrc = eclipsePluginRoot.path + '/' + src - if (eclipsePluginSrcGen === null) - eclipsePluginSrcGen = eclipsePluginRoot.path + '/' + srcGen - if (eclipsePluginManifest === null) - eclipsePluginManifest = injector.getInstance(ManifestAccess) - if (eclipsePluginPluginXml === null) - eclipsePluginPluginXml = injector.getInstance(PluginXmlAccess) - - if (testingSupport) { - if (eclipsePluginTestProjectName=== null) - eclipsePluginTestProjectName = eclipsePluginProjectName + '.tests' - if (eclipsePluginTestRoot === null) - eclipsePluginTestRoot = rootPath + '/' + eclipsePluginTestProjectName - if (eclipsePluginTestRoot === null) - eclipsePluginTestRoot = eclipsePluginRoot.path + '.tests' - if (eclipsePluginTestMetaInf === null) - eclipsePluginTestMetaInf = eclipsePluginTestRoot.path + '/' + metaInf - if (eclipsePluginTestSrc === null) - eclipsePluginTestSrc = eclipsePluginTestRoot.path + '/' + testSrc - if (eclipsePluginTestSrcGen === null) - eclipsePluginTestSrcGen = eclipsePluginTestRoot.path + '/' + testSrcGen - if (eclipsePluginTestManifest === null) - eclipsePluginTestManifest = injector.getInstance(ManifestAccess) } - } - - if (ideaEditor) { - if (ideaPluginProjectName=== null) - ideaPluginProjectName = baseName + '.idea' - if (ideaPluginRoot === null) - ideaPluginRoot = rootPath + '/' + ideaPluginProjectName - if (ideaPluginSrc === null) - ideaPluginSrc = ideaPluginRoot.path + '/' + src - if (ideaPluginSrcGen === null) - ideaPluginSrcGen = ideaPluginRoot.path + '/' + srcGen - if (ideaPluginMetaInf === null) - ideaPluginMetaInf = ideaPluginRoot.path + '/' + metaInf - } - - if (webSupport) { - if (webProjectName=== null) - webProjectName = baseName + '.web' - if (webRoot === null) - webRoot = rootPath + '/' + webProjectName - if (webSrc === null) - webSrc = webRoot.path + '/' + src - if (webSrcGen === null) - webSrcGen = webRoot.path + '/' + srcGen - if (webApp === null) - webApp = webRoot.path + '/' + srcWeb - } - - if (genericIdeSupport) { - if (genericIdeProjectName=== null) - genericIdeProjectName = baseName + '.ide' - if (genericIdeRoot === null) - genericIdeRoot = rootPath + '/' + genericIdeProjectName - if (genericIdeMetaInf === null) - genericIdeMetaInf = genericIdeRoot.path + '/' + metaInf - if (genericIdeSrc === null) - genericIdeSrc = genericIdeRoot.path + '/' + src - if (genericIdeSrcGen === null) - genericIdeSrcGen = genericIdeRoot.path + '/' + srcGen - if (genericIdeManifest === null) - genericIdeManifest = injector.getInstance(ManifestAccess) - } - - super.initialize(injector) + if (it instanceof RuntimeProjectConfig) { + if (ecoreModel === null) + ecoreModel = computeEcoreModel + } + if (it instanceof WebProjectConfig) { + if (assets === null) + assets = computeAssets + } + ] } - + + protected def computeName(SubProjectConfig project) { + switch project { + case runtime: baseName + case runtimeTest: baseName + '.tests' + case genericIde: baseName + '.ide' + case eclipsePlugin: baseName + '.ui' + case eclipsePluginTest: baseName + '.ui.tests' + case ideaPlugin: baseName + '.idea' + case web: baseName + '.web' + } + } + + protected def computeRoot(SubProjectConfig project) { + rootPath + '/' + project.name + } + + protected def computeSrc(SubProjectConfig project) { + project.root.path + '/' + if(mavenLayout) 'src/' + project.computeSourceSet + '/java' else 'src' + } + + protected def computeSrcGen(SubProjectConfig project) { + project.root.path + '/' + if(mavenLayout) 'src/' + project.computeSourceSet + '/xtext-gen' else 'src-gen' + } + + protected def computeMetaInf(SubProjectConfig project) { + project.root.path + '/' + if(mavenLayout) 'src/' + project.computeSourceSet + '/resources/META-INF' else 'META-INF' + } + + protected def computeEcoreModel(RuntimeProjectConfig project) { + project.root.path + '/' + if(mavenLayout) 'src/' + project.computeSourceSet + '/ecore/generated' else 'model/generated' + } + + protected def computeAssets(WebProjectConfig project) { + project.root.path + '/' + if(mavenLayout) 'src/' + project.computeSourceSet + '/webapp' else 'WebRoot' + } + + protected def computeSourceSet(SubProjectConfig project) { + if(testProjects.contains(project)) 'test' else 'main' + } + } \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextDirectoryCleaner.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextDirectoryCleaner.xtend index ae6ea810d..41ce5119d 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextDirectoryCleaner.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextDirectoryCleaner.xtend @@ -15,7 +15,7 @@ import org.eclipse.xtend.lib.annotations.Accessors import java.io.File class XtextDirectoryCleaner implements IGuiceAwareGeneratorComponent { - @Inject IXtextProjectConfig config + @Inject XtextProjectConfig config @Accessors(PUBLIC_SETTER) boolean enabled = true @@ -38,19 +38,7 @@ class XtextDirectoryCleaner implements IGuiceAwareGeneratorComponent { return; val directories = newArrayList - directories += #[ - config.runtimeModelGen, - config.runtimeSrcGen, - config.runtimeTestSrcGen, - config.genericIdeSrcGen, - config.genericIdeTestSrcGen, - config.eclipsePluginSrcGen, - config.eclipsePluginTestSrcGen, - config.ideaPluginSrcGen, - config.ideaPluginTestSrcGen, - config.webSrcGen, - config.webTestSrcGen - ].filterNull.map[path].filter[new File(it).isDirectory] + directories += (config.enabledProjects.map[srcGen] + #[config.runtime.ecoreModel]).filterNull.map[path].filter[new File(it).isDirectory] directories += extraDirectories val delegate = new DirectoryCleaner diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGenerator.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGenerator.xtend index 4e0eac2af..4de0aa260 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGenerator.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGenerator.xtend @@ -58,7 +58,7 @@ class XtextGenerator extends AbstractWorkflowComponent2 { Injector injector - @Inject IXtextProjectConfig projectConfig + @Inject XtextProjectConfig projectConfig @Inject XtextGeneratorTemplates templates @@ -136,40 +136,30 @@ class XtextGenerator extends AbstractWorkflowComponent2 { } protected def generateSetups(ILanguageConfig language) { - templates.createRuntimeGenSetup(language).writeTo(projectConfig.runtimeSrcGen) - templates.createRuntimeSetup(language).writeTo(projectConfig.runtimeSrc) - templates.createWebSetup(language).writeTo(projectConfig.webSrc) + templates.createRuntimeGenSetup(language).writeTo(projectConfig.runtime.srcGen) + templates.createRuntimeSetup(language).writeTo(projectConfig.runtime.src) + templates.createWebSetup(language).writeTo(projectConfig.web.src) } protected def generateModules(ILanguageConfig language) { - templates.createRuntimeGenModule(language).writeTo(projectConfig.runtimeSrcGen) - templates.createRuntimeModule(language).writeTo(projectConfig.runtimeSrc) - templates.createEclipsePluginGenModule(language).writeTo(projectConfig.eclipsePluginSrcGen) - templates.createEclipsePluginModule(language).writeTo(projectConfig.eclipsePluginSrc) - templates.createIdeaGenModule(language).writeTo(projectConfig.ideaPluginSrcGen) - templates.createIdeaModule(language).writeTo(projectConfig.ideaPluginSrc) - templates.createWebGenModule(language).writeTo(projectConfig.webSrcGen) - templates.createWebModule(language).writeTo(projectConfig.webSrc) + templates.createRuntimeGenModule(language).writeTo(projectConfig.runtime.srcGen) + templates.createRuntimeModule(language).writeTo(projectConfig.runtime.src) + templates.createEclipsePluginGenModule(language).writeTo(projectConfig.eclipsePlugin.srcGen) + templates.createEclipsePluginModule(language).writeTo(projectConfig.eclipsePlugin.src) + templates.createIdeaGenModule(language).writeTo(projectConfig.ideaPlugin.srcGen) + templates.createIdeaModule(language).writeTo(projectConfig.ideaPlugin.src) + templates.createWebGenModule(language).writeTo(projectConfig.web.srcGen) + templates.createWebModule(language).writeTo(projectConfig.web.src) } protected def generateExecutableExtensionFactory(ILanguageConfig language) { - if (projectConfig.eclipsePluginSrcGen !== null) - templates.createEclipsePluginExecutableExtensionFactory(language, languageConfigs.head).writeTo(projectConfig.eclipsePluginSrcGen) + if (projectConfig.eclipsePlugin.srcGen !== null) + templates.createEclipsePluginExecutableExtensionFactory(language, languageConfigs.head).writeTo(projectConfig.eclipsePlugin.srcGen) } protected def generateManifests() { - val manifests = newLinkedList( - Tuples.create(projectConfig.runtimeManifest, projectConfig.runtimeMetaInf, projectConfig.runtimeProjectName), - Tuples.create(projectConfig.runtimeTestManifest, projectConfig.runtimeTestMetaInf, projectConfig.runtimeTestProjectName), - Tuples.create(projectConfig.genericIdeManifest, projectConfig.genericIdeMetaInf, projectConfig.genericIdeProjectName), - Tuples.create(projectConfig.genericIdeTestManifest, projectConfig.genericIdeTestMetaInf, projectConfig.genericIdeTestProjectName), - Tuples.create(projectConfig.eclipsePluginManifest, projectConfig.eclipsePluginMetaInf, projectConfig.eclipsePluginProjectName), - Tuples.create(projectConfig.eclipsePluginTestManifest, projectConfig.eclipsePluginTestMetaInf, projectConfig.eclipsePluginTestProjectName), - Tuples.create(projectConfig.ideaPluginManifest, projectConfig.ideaPluginMetaInf, projectConfig.ideaPluginProjectName), - Tuples.create(projectConfig.ideaPluginTestManifest, projectConfig.ideaPluginTestMetaInf, projectConfig.ideaPluginTestProjectName), - Tuples.create(projectConfig.webManifest, projectConfig.webMetaInf, projectConfig.webProjectName), - Tuples.create(projectConfig.webTestManifest, projectConfig.webTestMetaInf, projectConfig.webTestProjectName) - ) + val manifests = projectConfig.enabledProjects.filter(BundleProjectConfig) + .map[Tuples.create(manifest, metaInf, name)].toList // Filter null values and merge duplicate entries val uri2Manifest = Maps.<URI, ManifestAccess>newHashMapWithExpectedSize(manifests.size) val manifestIter = manifests.listIterator @@ -196,7 +186,7 @@ class XtextGenerator extends AbstractWorkflowComponent2 { if (manifest.bundleName === null) { manifest.bundleName = entry.third } - if (manifest === projectConfig.eclipsePluginManifest) { + if (manifest === projectConfig.eclipsePlugin.manifest) { val firstLanguage = languageConfigs.head manifest.activator = naming?.getEclipsePluginActivator(firstLanguage.grammar) } @@ -236,19 +226,12 @@ class XtextGenerator extends AbstractWorkflowComponent2 { } protected def generateActivator() { - if (projectConfig.eclipsePluginSrcGen !== null && !languageConfigs.empty) - templates.createEclipsePluginActivator(languageConfigs).writeTo(projectConfig.eclipsePluginSrcGen) + if (projectConfig.eclipsePlugin.srcGen !== null && !languageConfigs.empty) + templates.createEclipsePluginActivator(languageConfigs).writeTo(projectConfig.eclipsePlugin.srcGen) } protected def generatePluginXmls() { - val pluginXmls = newLinkedList( - projectConfig.runtimePluginXml -> projectConfig.runtimeRoot, - projectConfig.runtimeTestPluginXml -> projectConfig.runtimeTestRoot, - projectConfig.genericIdePluginXml -> projectConfig.genericIdeRoot, - projectConfig.genericIdeTestPluginXml -> projectConfig.genericIdeTestRoot, - projectConfig.eclipsePluginPluginXml -> projectConfig.eclipsePluginRoot, - projectConfig.eclipsePluginTestPluginXml -> projectConfig.eclipsePluginTestRoot - ) + val pluginXmls = projectConfig.enabledProjects.filter(BundleProjectConfig).map[pluginXml -> root].toList // Filter null values and merge duplicate entries val uri2PluginXml = Maps.<URI, PluginXmlAccess>newHashMapWithExpectedSize(pluginXmls.size) val pluginXmlIter = pluginXmls.listIterator diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGeneratorStandaloneSetup.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGeneratorStandaloneSetup.xtend index 1e615ac76..ab4c255ec 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGeneratorStandaloneSetup.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGeneratorStandaloneSetup.xtend @@ -16,7 +16,7 @@ import org.eclipse.xtext.util.internal.Log @Log class XtextGeneratorStandaloneSetup implements IGuiceAwareGeneratorComponent { - @Inject IXtextProjectConfig projectConfig + @Inject XtextProjectConfig projectConfig @Accessors boolean scanClasspath = true @@ -31,23 +31,12 @@ class XtextGeneratorStandaloneSetup implements IGuiceAwareGeneratorComponent { projectMappings.forEach [ mapping | delegate.addProjectMapping(new ProjectMapping => [ projectName = mapping.key - path = mapping.value.path + path = mapping.value ]) ] } private def getProjectMappings() { - #[ - projectConfig.runtimeProjectName -> projectConfig.runtimeRoot, - projectConfig.runtimeTestProjectName -> projectConfig.runtimeTestRoot, - projectConfig.genericIdeProjectName -> projectConfig.genericIdeRoot, - projectConfig.genericIdeTestProjectName -> projectConfig.genericIdeTestRoot, - projectConfig.eclipsePluginProjectName -> projectConfig.eclipsePluginRoot, - projectConfig.eclipsePluginTestProjectName -> projectConfig.eclipsePluginTestRoot, - projectConfig.ideaPluginProjectName -> projectConfig.ideaPluginRoot, - projectConfig.ideaPluginTestProjectName -> projectConfig.ideaPluginTestRoot, - projectConfig.webProjectName -> projectConfig.webRoot, - projectConfig.webTestProjectName -> projectConfig.webTestRoot - ].filter[key != null && value != null] + projectConfig.enabledProjects.filter[name != null && root != null].map[name -> root.path] } } diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextProjectConfig.java b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextProjectConfig.java deleted file mode 100644 index a5c2ef0e9..000000000 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextProjectConfig.java +++ /dev/null @@ -1,912 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - *******************************************************************************/ -package org.eclipse.xtext.xtext.generator; - -import com.google.inject.Injector; -import org.eclipse.xtext.xtext.generator.model.IXtextGeneratorFileSystemAccess; -import org.eclipse.xtext.xtext.generator.model.XtextGeneratorFileSystemAccess; -import org.eclipse.xtext.xtext.generator.model.ManifestAccess; -import org.eclipse.xtext.xtext.generator.model.PluginXmlAccess; - -/** - * Use this class to configure output paths in the XtextGenerator. - * - * <p>This file has been generated with {@link org.eclipse.xtext.xtext.generator.internal.ProjectConfigGenerator}.</p> - */ -public class XtextProjectConfig implements IXtextProjectConfig { - - private IXtextGeneratorFileSystemAccess runtimeModelGen; - private String runtimeProjectName; - private IXtextGeneratorFileSystemAccess runtimeRoot; - private IXtextGeneratorFileSystemAccess runtimeMetaInf; - private IXtextGeneratorFileSystemAccess runtimeSrc; - private IXtextGeneratorFileSystemAccess runtimeSrcGen; - private ManifestAccess runtimeManifest; - private PluginXmlAccess runtimePluginXml; - private String runtimeTestProjectName; - private IXtextGeneratorFileSystemAccess runtimeTestRoot; - private IXtextGeneratorFileSystemAccess runtimeTestMetaInf; - private IXtextGeneratorFileSystemAccess runtimeTestSrc; - private IXtextGeneratorFileSystemAccess runtimeTestSrcGen; - private ManifestAccess runtimeTestManifest; - private PluginXmlAccess runtimeTestPluginXml; - private String genericIdeProjectName; - private IXtextGeneratorFileSystemAccess genericIdeRoot; - private IXtextGeneratorFileSystemAccess genericIdeMetaInf; - private IXtextGeneratorFileSystemAccess genericIdeSrc; - private IXtextGeneratorFileSystemAccess genericIdeSrcGen; - private ManifestAccess genericIdeManifest; - private PluginXmlAccess genericIdePluginXml; - private String genericIdeTestProjectName; - private IXtextGeneratorFileSystemAccess genericIdeTestRoot; - private IXtextGeneratorFileSystemAccess genericIdeTestMetaInf; - private IXtextGeneratorFileSystemAccess genericIdeTestSrc; - private IXtextGeneratorFileSystemAccess genericIdeTestSrcGen; - private ManifestAccess genericIdeTestManifest; - private PluginXmlAccess genericIdeTestPluginXml; - private String eclipsePluginProjectName; - private IXtextGeneratorFileSystemAccess eclipsePluginRoot; - private IXtextGeneratorFileSystemAccess eclipsePluginMetaInf; - private IXtextGeneratorFileSystemAccess eclipsePluginSrc; - private IXtextGeneratorFileSystemAccess eclipsePluginSrcGen; - private ManifestAccess eclipsePluginManifest; - private PluginXmlAccess eclipsePluginPluginXml; - private String eclipsePluginTestProjectName; - private IXtextGeneratorFileSystemAccess eclipsePluginTestRoot; - private IXtextGeneratorFileSystemAccess eclipsePluginTestMetaInf; - private IXtextGeneratorFileSystemAccess eclipsePluginTestSrc; - private IXtextGeneratorFileSystemAccess eclipsePluginTestSrcGen; - private ManifestAccess eclipsePluginTestManifest; - private PluginXmlAccess eclipsePluginTestPluginXml; - private String ideaPluginProjectName; - private IXtextGeneratorFileSystemAccess ideaPluginRoot; - private IXtextGeneratorFileSystemAccess ideaPluginMetaInf; - private IXtextGeneratorFileSystemAccess ideaPluginSrc; - private IXtextGeneratorFileSystemAccess ideaPluginSrcGen; - private ManifestAccess ideaPluginManifest; - private String ideaPluginTestProjectName; - private IXtextGeneratorFileSystemAccess ideaPluginTestRoot; - private IXtextGeneratorFileSystemAccess ideaPluginTestMetaInf; - private IXtextGeneratorFileSystemAccess ideaPluginTestSrc; - private IXtextGeneratorFileSystemAccess ideaPluginTestSrcGen; - private ManifestAccess ideaPluginTestManifest; - private String webProjectName; - private IXtextGeneratorFileSystemAccess webRoot; - private IXtextGeneratorFileSystemAccess webMetaInf; - private IXtextGeneratorFileSystemAccess webSrc; - private IXtextGeneratorFileSystemAccess webSrcGen; - private ManifestAccess webManifest; - private String webTestProjectName; - private IXtextGeneratorFileSystemAccess webTestRoot; - private IXtextGeneratorFileSystemAccess webTestMetaInf; - private IXtextGeneratorFileSystemAccess webTestSrc; - private IXtextGeneratorFileSystemAccess webTestSrcGen; - private ManifestAccess webTestManifest; - private IXtextGeneratorFileSystemAccess webApp; - - public void checkConfiguration(Issues issues) { - if (runtimeSrc == null) { - issues.addError("The property 'runtimeSrc' must be set.", this); - } - if (runtimeSrcGen == null) { - issues.addError("The property 'runtimeSrcGen' must be set.", this); - } - if (runtimeManifest != null && runtimeMetaInf == null) { - issues.addError("The property 'runtimeMetaInf' must be set when 'runtimeManifest' is set."); - } - if (runtimePluginXml != null && runtimeRoot == null) { - issues.addError("The property 'runtimeRoot' must be set when 'runtimePluginXml' is set."); - } - if (runtimeTestManifest != null && runtimeTestMetaInf == null) { - issues.addError("The property 'runtimeTestMetaInf' must be set when 'runtimeTestManifest' is set."); - } - if (runtimeTestPluginXml != null && runtimeTestRoot == null) { - issues.addError("The property 'runtimeTestRoot' must be set when 'runtimeTestPluginXml' is set."); - } - if (genericIdeManifest != null && genericIdeMetaInf == null) { - issues.addError("The property 'genericIdeMetaInf' must be set when 'genericIdeManifest' is set."); - } - if (genericIdePluginXml != null && genericIdeRoot == null) { - issues.addError("The property 'genericIdeRoot' must be set when 'genericIdePluginXml' is set."); - } - if (genericIdeTestManifest != null && genericIdeTestMetaInf == null) { - issues.addError("The property 'genericIdeTestMetaInf' must be set when 'genericIdeTestManifest' is set."); - } - if (genericIdeTestPluginXml != null && genericIdeTestRoot == null) { - issues.addError("The property 'genericIdeTestRoot' must be set when 'genericIdeTestPluginXml' is set."); - } - if (eclipsePluginManifest != null && eclipsePluginMetaInf == null) { - issues.addError("The property 'eclipsePluginMetaInf' must be set when 'eclipsePluginManifest' is set."); - } - if (eclipsePluginPluginXml != null && eclipsePluginRoot == null) { - issues.addError("The property 'eclipsePluginRoot' must be set when 'eclipsePluginPluginXml' is set."); - } - if (eclipsePluginTestManifest != null && eclipsePluginTestMetaInf == null) { - issues.addError("The property 'eclipsePluginTestMetaInf' must be set when 'eclipsePluginTestManifest' is set."); - } - if (eclipsePluginTestPluginXml != null && eclipsePluginTestRoot == null) { - issues.addError("The property 'eclipsePluginTestRoot' must be set when 'eclipsePluginTestPluginXml' is set."); - } - if (ideaPluginManifest != null && ideaPluginMetaInf == null) { - issues.addError("The property 'ideaPluginMetaInf' must be set when 'ideaPluginManifest' is set."); - } - if (ideaPluginTestManifest != null && ideaPluginTestMetaInf == null) { - issues.addError("The property 'ideaPluginTestMetaInf' must be set when 'ideaPluginTestManifest' is set."); - } - if (webManifest != null && webMetaInf == null) { - issues.addError("The property 'webMetaInf' must be set when 'webManifest' is set."); - } - if (webTestManifest != null && webTestMetaInf == null) { - issues.addError("The property 'webTestMetaInf' must be set when 'webTestManifest' is set."); - } - } - - @Override - public void initialize(Injector injector) { - injector.injectMembers(this); - if (runtimeModelGen != null) { - runtimeModelGen.initialize(injector); - } - - // Initialize runtime configuration - if (runtimeRoot != null) { - runtimeRoot.initialize(injector); - } - if (runtimeMetaInf != null) { - runtimeMetaInf.initialize(injector); - } - if (runtimeSrc != null) { - runtimeSrc.initialize(injector); - } - if (runtimeSrcGen != null) { - runtimeSrcGen.initialize(injector); - } - - // Initialize runtimeTest configuration - if (runtimeTestRoot != null) { - runtimeTestRoot.initialize(injector); - } - if (runtimeTestMetaInf != null) { - runtimeTestMetaInf.initialize(injector); - } - if (runtimeTestSrc != null) { - runtimeTestSrc.initialize(injector); - } - if (runtimeTestSrcGen != null) { - runtimeTestSrcGen.initialize(injector); - } - - // Initialize genericIde configuration - if (genericIdeRoot != null) { - genericIdeRoot.initialize(injector); - } - if (genericIdeMetaInf != null) { - genericIdeMetaInf.initialize(injector); - } - if (genericIdeSrc != null) { - genericIdeSrc.initialize(injector); - } - if (genericIdeSrcGen != null) { - genericIdeSrcGen.initialize(injector); - } - - // Initialize genericIdeTest configuration - if (genericIdeTestRoot != null) { - genericIdeTestRoot.initialize(injector); - } - if (genericIdeTestMetaInf != null) { - genericIdeTestMetaInf.initialize(injector); - } - if (genericIdeTestSrc != null) { - genericIdeTestSrc.initialize(injector); - } - if (genericIdeTestSrcGen != null) { - genericIdeTestSrcGen.initialize(injector); - } - - // Initialize eclipsePlugin configuration - if (eclipsePluginRoot != null) { - eclipsePluginRoot.initialize(injector); - } - if (eclipsePluginMetaInf != null) { - eclipsePluginMetaInf.initialize(injector); - } - if (eclipsePluginSrc != null) { - eclipsePluginSrc.initialize(injector); - } - if (eclipsePluginSrcGen != null) { - eclipsePluginSrcGen.initialize(injector); - } - - // Initialize eclipsePluginTest configuration - if (eclipsePluginTestRoot != null) { - eclipsePluginTestRoot.initialize(injector); - } - if (eclipsePluginTestMetaInf != null) { - eclipsePluginTestMetaInf.initialize(injector); - } - if (eclipsePluginTestSrc != null) { - eclipsePluginTestSrc.initialize(injector); - } - if (eclipsePluginTestSrcGen != null) { - eclipsePluginTestSrcGen.initialize(injector); - } - - // Initialize ideaPlugin configuration - if (ideaPluginRoot != null) { - ideaPluginRoot.initialize(injector); - } - if (ideaPluginMetaInf != null) { - ideaPluginMetaInf.initialize(injector); - } - if (ideaPluginSrc != null) { - ideaPluginSrc.initialize(injector); - } - if (ideaPluginSrcGen != null) { - ideaPluginSrcGen.initialize(injector); - } - - // Initialize ideaPluginTest configuration - if (ideaPluginTestRoot != null) { - ideaPluginTestRoot.initialize(injector); - } - if (ideaPluginTestMetaInf != null) { - ideaPluginTestMetaInf.initialize(injector); - } - if (ideaPluginTestSrc != null) { - ideaPluginTestSrc.initialize(injector); - } - if (ideaPluginTestSrcGen != null) { - ideaPluginTestSrcGen.initialize(injector); - } - - // Initialize web configuration - if (webRoot != null) { - webRoot.initialize(injector); - } - if (webMetaInf != null) { - webMetaInf.initialize(injector); - } - if (webSrc != null) { - webSrc.initialize(injector); - } - if (webSrcGen != null) { - webSrcGen.initialize(injector); - } - - // Initialize webTest configuration - if (webTestRoot != null) { - webTestRoot.initialize(injector); - } - if (webTestMetaInf != null) { - webTestMetaInf.initialize(injector); - } - if (webTestSrc != null) { - webTestSrc.initialize(injector); - } - if (webTestSrcGen != null) { - webTestSrcGen.initialize(injector); - } - - if (webApp != null) { - webApp.initialize(injector); - } - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeModelGen() { - return runtimeModelGen; - } - - public void setRuntimeModelGen(String path) { - this.runtimeModelGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public String getRuntimeProjectName() { - return runtimeProjectName; - } - - public void setRuntimeProjectName(String projectName) { - this.runtimeProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeRoot() { - return runtimeRoot; - } - - public void setRuntimeRoot(String path) { - this.runtimeRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeMetaInf() { - return runtimeMetaInf; - } - - public void setRuntimeMetaInf(String path) { - this.runtimeMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeSrc() { - return runtimeSrc; - } - - public void setRuntimeSrc(String path) { - this.runtimeSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeSrcGen() { - return runtimeSrcGen; - } - - public void setRuntimeSrcGen(String path) { - this.runtimeSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getRuntimeManifest() { - return runtimeManifest; - } - - public void setRuntimeManifest(ManifestAccess manifest) { - this.runtimeManifest = manifest; - } - - @Override - public PluginXmlAccess getRuntimePluginXml() { - return runtimePluginXml; - } - - public void setRuntimePluginXml(PluginXmlAccess pluginXml) { - this.runtimePluginXml = pluginXml; - } - - @Override - public String getRuntimeTestProjectName() { - return runtimeTestProjectName; - } - - public void setRuntimeTestProjectName(String projectName) { - this.runtimeTestProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeTestRoot() { - return runtimeTestRoot; - } - - public void setRuntimeTestRoot(String path) { - this.runtimeTestRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeTestMetaInf() { - return runtimeTestMetaInf; - } - - public void setRuntimeTestMetaInf(String path) { - this.runtimeTestMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeTestSrc() { - return runtimeTestSrc; - } - - public void setRuntimeTestSrc(String path) { - this.runtimeTestSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeTestSrcGen() { - return runtimeTestSrcGen; - } - - public void setRuntimeTestSrcGen(String path) { - this.runtimeTestSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getRuntimeTestManifest() { - return runtimeTestManifest; - } - - public void setRuntimeTestManifest(ManifestAccess manifest) { - this.runtimeTestManifest = manifest; - } - - @Override - public PluginXmlAccess getRuntimeTestPluginXml() { - return runtimeTestPluginXml; - } - - public void setRuntimeTestPluginXml(PluginXmlAccess pluginXml) { - this.runtimeTestPluginXml = pluginXml; - } - - @Override - public String getGenericIdeProjectName() { - return genericIdeProjectName; - } - - public void setGenericIdeProjectName(String projectName) { - this.genericIdeProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getGenericIdeRoot() { - return genericIdeRoot; - } - - public void setGenericIdeRoot(String path) { - this.genericIdeRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getGenericIdeMetaInf() { - return genericIdeMetaInf; - } - - public void setGenericIdeMetaInf(String path) { - this.genericIdeMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getGenericIdeSrc() { - return genericIdeSrc; - } - - public void setGenericIdeSrc(String path) { - this.genericIdeSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getGenericIdeSrcGen() { - return genericIdeSrcGen; - } - - public void setGenericIdeSrcGen(String path) { - this.genericIdeSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getGenericIdeManifest() { - return genericIdeManifest; - } - - public void setGenericIdeManifest(ManifestAccess manifest) { - this.genericIdeManifest = manifest; - } - - @Override - public PluginXmlAccess getGenericIdePluginXml() { - return genericIdePluginXml; - } - - public void setGenericIdePluginXml(PluginXmlAccess pluginXml) { - this.genericIdePluginXml = pluginXml; - } - - @Override - public String getGenericIdeTestProjectName() { - return genericIdeTestProjectName; - } - - public void setGenericIdeTestProjectName(String projectName) { - this.genericIdeTestProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getGenericIdeTestRoot() { - return genericIdeTestRoot; - } - - public void setGenericIdeTestRoot(String path) { - this.genericIdeTestRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getGenericIdeTestMetaInf() { - return genericIdeTestMetaInf; - } - - public void setGenericIdeTestMetaInf(String path) { - this.genericIdeTestMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getGenericIdeTestSrc() { - return genericIdeTestSrc; - } - - public void setGenericIdeTestSrc(String path) { - this.genericIdeTestSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getGenericIdeTestSrcGen() { - return genericIdeTestSrcGen; - } - - public void setGenericIdeTestSrcGen(String path) { - this.genericIdeTestSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getGenericIdeTestManifest() { - return genericIdeTestManifest; - } - - public void setGenericIdeTestManifest(ManifestAccess manifest) { - this.genericIdeTestManifest = manifest; - } - - @Override - public PluginXmlAccess getGenericIdeTestPluginXml() { - return genericIdeTestPluginXml; - } - - public void setGenericIdeTestPluginXml(PluginXmlAccess pluginXml) { - this.genericIdeTestPluginXml = pluginXml; - } - - @Override - public String getEclipsePluginProjectName() { - return eclipsePluginProjectName; - } - - public void setEclipsePluginProjectName(String projectName) { - this.eclipsePluginProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getEclipsePluginRoot() { - return eclipsePluginRoot; - } - - public void setEclipsePluginRoot(String path) { - this.eclipsePluginRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getEclipsePluginMetaInf() { - return eclipsePluginMetaInf; - } - - public void setEclipsePluginMetaInf(String path) { - this.eclipsePluginMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getEclipsePluginSrc() { - return eclipsePluginSrc; - } - - public void setEclipsePluginSrc(String path) { - this.eclipsePluginSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getEclipsePluginSrcGen() { - return eclipsePluginSrcGen; - } - - public void setEclipsePluginSrcGen(String path) { - this.eclipsePluginSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getEclipsePluginManifest() { - return eclipsePluginManifest; - } - - public void setEclipsePluginManifest(ManifestAccess manifest) { - this.eclipsePluginManifest = manifest; - } - - @Override - public PluginXmlAccess getEclipsePluginPluginXml() { - return eclipsePluginPluginXml; - } - - public void setEclipsePluginPluginXml(PluginXmlAccess pluginXml) { - this.eclipsePluginPluginXml = pluginXml; - } - - @Override - public String getEclipsePluginTestProjectName() { - return eclipsePluginTestProjectName; - } - - public void setEclipsePluginTestProjectName(String projectName) { - this.eclipsePluginTestProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getEclipsePluginTestRoot() { - return eclipsePluginTestRoot; - } - - public void setEclipsePluginTestRoot(String path) { - this.eclipsePluginTestRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getEclipsePluginTestMetaInf() { - return eclipsePluginTestMetaInf; - } - - public void setEclipsePluginTestMetaInf(String path) { - this.eclipsePluginTestMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getEclipsePluginTestSrc() { - return eclipsePluginTestSrc; - } - - public void setEclipsePluginTestSrc(String path) { - this.eclipsePluginTestSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getEclipsePluginTestSrcGen() { - return eclipsePluginTestSrcGen; - } - - public void setEclipsePluginTestSrcGen(String path) { - this.eclipsePluginTestSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getEclipsePluginTestManifest() { - return eclipsePluginTestManifest; - } - - public void setEclipsePluginTestManifest(ManifestAccess manifest) { - this.eclipsePluginTestManifest = manifest; - } - - @Override - public PluginXmlAccess getEclipsePluginTestPluginXml() { - return eclipsePluginTestPluginXml; - } - - public void setEclipsePluginTestPluginXml(PluginXmlAccess pluginXml) { - this.eclipsePluginTestPluginXml = pluginXml; - } - - @Override - public String getIdeaPluginProjectName() { - return ideaPluginProjectName; - } - - public void setIdeaPluginProjectName(String projectName) { - this.ideaPluginProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getIdeaPluginRoot() { - return ideaPluginRoot; - } - - public void setIdeaPluginRoot(String path) { - this.ideaPluginRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getIdeaPluginMetaInf() { - return ideaPluginMetaInf; - } - - public void setIdeaPluginMetaInf(String path) { - this.ideaPluginMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getIdeaPluginSrc() { - return ideaPluginSrc; - } - - public void setIdeaPluginSrc(String path) { - this.ideaPluginSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getIdeaPluginSrcGen() { - return ideaPluginSrcGen; - } - - public void setIdeaPluginSrcGen(String path) { - this.ideaPluginSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getIdeaPluginManifest() { - return ideaPluginManifest; - } - - public void setIdeaPluginManifest(ManifestAccess manifest) { - this.ideaPluginManifest = manifest; - } - - @Override - public String getIdeaPluginTestProjectName() { - return ideaPluginTestProjectName; - } - - public void setIdeaPluginTestProjectName(String projectName) { - this.ideaPluginTestProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getIdeaPluginTestRoot() { - return ideaPluginTestRoot; - } - - public void setIdeaPluginTestRoot(String path) { - this.ideaPluginTestRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getIdeaPluginTestMetaInf() { - return ideaPluginTestMetaInf; - } - - public void setIdeaPluginTestMetaInf(String path) { - this.ideaPluginTestMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getIdeaPluginTestSrc() { - return ideaPluginTestSrc; - } - - public void setIdeaPluginTestSrc(String path) { - this.ideaPluginTestSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getIdeaPluginTestSrcGen() { - return ideaPluginTestSrcGen; - } - - public void setIdeaPluginTestSrcGen(String path) { - this.ideaPluginTestSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getIdeaPluginTestManifest() { - return ideaPluginTestManifest; - } - - public void setIdeaPluginTestManifest(ManifestAccess manifest) { - this.ideaPluginTestManifest = manifest; - } - - @Override - public String getWebProjectName() { - return webProjectName; - } - - public void setWebProjectName(String projectName) { - this.webProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getWebRoot() { - return webRoot; - } - - public void setWebRoot(String path) { - this.webRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getWebMetaInf() { - return webMetaInf; - } - - public void setWebMetaInf(String path) { - this.webMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getWebSrc() { - return webSrc; - } - - public void setWebSrc(String path) { - this.webSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getWebSrcGen() { - return webSrcGen; - } - - public void setWebSrcGen(String path) { - this.webSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getWebManifest() { - return webManifest; - } - - public void setWebManifest(ManifestAccess manifest) { - this.webManifest = manifest; - } - - @Override - public String getWebTestProjectName() { - return webTestProjectName; - } - - public void setWebTestProjectName(String projectName) { - this.webTestProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess getWebTestRoot() { - return webTestRoot; - } - - public void setWebTestRoot(String path) { - this.webTestRoot = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getWebTestMetaInf() { - return webTestMetaInf; - } - - public void setWebTestMetaInf(String path) { - this.webTestMetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess getWebTestSrc() { - return webTestSrc; - } - - public void setWebTestSrc(String path) { - this.webTestSrc = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess getWebTestSrcGen() { - return webTestSrcGen; - } - - public void setWebTestSrcGen(String path) { - this.webTestSrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess getWebTestManifest() { - return webTestManifest; - } - - public void setWebTestManifest(ManifestAccess manifest) { - this.webTestManifest = manifest; - } - - @Override - public IXtextGeneratorFileSystemAccess getWebApp() { - return webApp; - } - - public void setWebApp(String path) { - this.webApp = new XtextGeneratorFileSystemAccess(path, true); - } -} diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextProjectConfig.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextProjectConfig.xtend new file mode 100644 index 000000000..c5cb66d4c --- /dev/null +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextProjectConfig.xtend @@ -0,0 +1,129 @@ +/******************************************************************************* + * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.xtext.xtext.generator + +import com.google.inject.Injector +import java.util.List +import org.eclipse.xtend.lib.annotations.Accessors +import org.eclipse.xtext.xtext.generator.model.ManifestAccess +import org.eclipse.xtext.xtext.generator.model.PluginXmlAccess +import org.eclipse.xtext.xtext.generator.model.XtextGeneratorFileSystemAccess + +@Accessors(PUBLIC_GETTER) +class XtextProjectConfig implements IGuiceAwareGeneratorComponent { + RuntimeProjectConfig runtime + BundleProjectConfig runtimeTest + BundleProjectConfig genericIde + BundleProjectConfig eclipsePlugin + BundleProjectConfig eclipsePluginTest + SubProjectConfig ideaPlugin + WebProjectConfig web + + new() { + setRuntime(new RuntimeProjectConfig) + setRuntimeTest(new BundleProjectConfig) + setGenericIde(new BundleProjectConfig) + setEclipsePlugin(new BundleProjectConfig) + setEclipsePluginTest(new BundleProjectConfig) + setIdeaPlugin(new SubProjectConfig) + setWeb(new WebProjectConfig) + } + + def void setRuntime(RuntimeProjectConfig config) { + this.runtime = config + config.owner = this + } + + def void setRuntimeTest(BundleProjectConfig config) { + this.runtimeTest = config + config.owner = this + } + + def void setGenericIde(BundleProjectConfig config) { + this.genericIde = config + config.owner = this + } + + def void setEclipsePlugin(BundleProjectConfig config) { + this.eclipsePlugin = config + config.owner = this + } + + def void setEclipsePluginTest(BundleProjectConfig config) { + this.eclipsePluginTest = config + config.owner = this + } + + def void setIdeaPlugin(SubProjectConfig config) { + this.ideaPlugin = config + config.owner = this + } + + def void setWeb(WebProjectConfig config) { + this.web = config + config.owner = this + } + + def void checkConfiguration(Issues issues) { + enabledProjects.forEach[checkConfiguration(issues)] + } + + def List<? extends SubProjectConfig> getAllProjects() { + val allProjects = newArrayList + allProjects += #[ + runtime, + runtimeTest, + genericIde, + eclipsePlugin, + eclipsePluginTest, + ideaPlugin, + web + ] + allProjects + } + + def List<? extends SubProjectConfig> getTestProjects() { + val testProjects = newArrayList + testProjects += #[ + runtimeTest, + eclipsePluginTest + ] + testProjects + } + + def List<? extends SubProjectConfig> getEnabledProjects() { + val enabledProjects = newArrayList + enabledProjects += allProjects.filter[enabled] + enabledProjects + } + + override initialize(Injector injector) { + setDefaults + injector.injectMembers(this) + enabledProjects.forEach[initialize(injector)] + } + + def setDefaults() { + runtime.enabled = true + if (#[eclipsePlugin, ideaPlugin, web].exists[enabled]) + genericIde.enabled = true + } + + protected def newManifestAccess() { + new ManifestAccess + } + + protected def newPluginXmlAccess() { + new PluginXmlAccess + } + + protected def newFileSystemAccess(String path, boolean overWrite) { + new XtextGeneratorFileSystemAccess(path, overWrite) + } + +} \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/builder/BuilderIntegrationFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/builder/BuilderIntegrationFragment2.xtend index 99a723247..02547cc2a 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/builder/BuilderIntegrationFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/builder/BuilderIntegrationFragment2.xtend @@ -27,8 +27,8 @@ class BuilderIntegrationFragment2 extends AbstractGeneratorFragment2 { addRuntimeGuiceBindings addEclipsePluginGuiceBindings - if (projectConfig.eclipsePluginManifest !== null) { - projectConfig.eclipsePluginManifest.requiredBundles.addAll(#[ + if (projectConfig.eclipsePlugin.manifest !== null) { + projectConfig.eclipsePlugin.manifest.requiredBundles.addAll(#[ 'org.eclipse.xtext.builder', 'org.eclipse.xtext.ui' ]) } diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ecore/EMFGeneratorFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ecore/EMFGeneratorFragment2.xtend index db2fdeb3e..3cf64e08d 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ecore/EMFGeneratorFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ecore/EMFGeneratorFragment2.xtend @@ -200,7 +200,7 @@ class EMFGeneratorFragment2 extends AbstractGeneratorFragment2 { } protected def String getJavaModelDirectory() { - javaModelDirectory ?: projectConfig.runtimeSrcGen.path + javaModelDirectory ?: projectConfig.runtime.srcGen.path } protected def String getModelName(Grammar grammar) { @@ -215,7 +215,7 @@ class EMFGeneratorFragment2 extends AbstractGeneratorFragment2 { } protected def String getEcoreFilePath(Grammar grammar) { - projectConfig.runtimeModelGen.path + '/' + grammar.modelName + '.ecore' + projectConfig.runtime.ecoreModel.path + '/' + grammar.modelName + '.ecore' } protected def URI getEcoreFileUri(Grammar grammar) { @@ -223,7 +223,7 @@ class EMFGeneratorFragment2 extends AbstractGeneratorFragment2 { } protected def String getGenModelPath(Grammar grammar) { - genModel ?: projectConfig.runtimeModelGen.path + '/' + grammar.modelName + '.genmodel' + genModel ?: projectConfig.runtime.ecoreModel.path + '/' + grammar.modelName + '.genmodel' } protected def URI getGenModelUri(Grammar grammar) { @@ -231,7 +231,7 @@ class EMFGeneratorFragment2 extends AbstractGeneratorFragment2 { } protected def String getRelativePath(String pathInRoot) { - val projectRoot = projectConfig.runtimeRoot.path + val projectRoot = projectConfig.runtime.root.path if (pathInRoot.startsWith(projectRoot)) pathInRoot.substring(projectRoot.length + 1) else @@ -258,17 +258,17 @@ class EMFGeneratorFragment2 extends AbstractGeneratorFragment2 { protected def String getModelPluginID() { modelPluginID ?: { - val path = projectConfig.runtimeRoot.path + val path = projectConfig.runtime.root.path path.substring(path.lastIndexOf('/') + 1) } } protected def String getEditDirectory() { - editDirectory ?: projectConfig.runtimeRoot.path + '.edit/src' + editDirectory ?: projectConfig.runtime.root.path + '.edit/src' } protected def String getEditorDirectory() { - editorDirectory ?: projectConfig.runtimeRoot.path + '.editor/src' + editorDirectory ?: projectConfig.runtime.root.path + '.editor/src' } protected def String getEditPluginID() { @@ -346,8 +346,8 @@ class EMFGeneratorFragment2 extends AbstractGeneratorFragment2 { } protected def void addProjectContributions(Grammar grammar, List<EPackage> generatedPackages, ResourceSet rs) { - if (projectConfig.runtimePluginXml !== null) { - projectConfig.runtimePluginXml.entries += ''' + if (projectConfig.runtime.pluginXml !== null) { + projectConfig.runtime.pluginXml.entries += ''' <extension point="org.eclipse.emf.ecore.generated_package"> �FOR pack : generatedPackages� <package @@ -358,13 +358,13 @@ class EMFGeneratorFragment2 extends AbstractGeneratorFragment2 { </extension> ''' } - if (projectConfig.runtimeManifest !== null) { - projectConfig.runtimeManifest.requiredBundles.addAll('org.eclipse.emf.ecore', 'org.eclipse.emf.common') + if (projectConfig.runtime.manifest !== null) { + projectConfig.runtime.manifest.requiredBundles.addAll('org.eclipse.emf.ecore', 'org.eclipse.emf.common') } for (pack : generatedPackages) { val genPackage = pack.getGenPackage(rs) - if (projectConfig.runtimeManifest !== null && modelPluginID == null) { - projectConfig.runtimeManifest.exportedPackages.addAll( + if (projectConfig.runtime.manifest !== null && modelPluginID == null) { + projectConfig.runtime.manifest.exportedPackages.addAll( genPackage.interfacePackageName, genPackage.classPackageName, genPackage.utilitiesPackageName @@ -694,12 +694,9 @@ class EMFGeneratorFragment2 extends AbstractGeneratorFragment2 { private def void updateBuildProperties() { if (!updateBuildProperties || modelPluginID !== null) return; - val rootOutlet = projectConfig.runtimeRoot - val modelOutlet = projectConfig.runtimeModelGen + val rootOutlet = projectConfig.runtime.root val buildPropertiesPath = rootOutlet.path + '/build.properties' - val modelPath = modelOutlet.path.substring(rootOutlet.path.length + 1) - val modelContainerEnd = modelPath.indexOf('/') - val modelContainer = if (modelContainerEnd > 0) modelPath.substring(0, modelContainerEnd) else modelPath + val modelContainer = projectConfig.runtime.ecoreModelFolder val buildProperties = new Properties val reader = new InputStreamReader(new FileInputStream(new File(buildPropertiesPath)), Charset.forName(codeConfig.encoding)) try { diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/formatting/Formatter2Fragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/formatting/Formatter2Fragment2.xtend index 30856f023..97140d8d0 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/formatting/Formatter2Fragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/formatting/Formatter2Fragment2.xtend @@ -81,7 +81,7 @@ class Formatter2Fragment2 extends AbstractGeneratorFragment2 { �ENDFOR� } ''' - xtendFile.writeTo(projectConfig.runtimeSrc) + xtendFile.writeTo(projectConfig.runtime.src) } protected def StringConcatenationClient generateFormatMethod(EClass clazz, Collection<EReference> containmentRefs, boolean isOverriding) ''' diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/generator/GeneratorFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/generator/GeneratorFragment2.xtend index f2f5a00be..cf8fa3a70 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/generator/GeneratorFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/generator/GeneratorFragment2.xtend @@ -95,12 +95,13 @@ class GeneratorFragment2 extends AbstractGeneratorFragment2 { new GuiceModuleAccess.BindingFactory() .addTypeToType(IGenerator.typeRef, language.grammar.generatorStub) .contributeTo(language.runtimeGenModule) - if (projectConfig.runtimeManifest !== null) - projectConfig.runtimeManifest.requiredBundles += 'org.eclipse.xtext.xbase.lib' + if (projectConfig.runtime.manifest !== null) + projectConfig.runtime.manifest.requiredBundles += 'org.eclipse.xtext.xbase.lib' doGenerateStubFile } if (isGenerateStub || isGenerateJavaMain) { - projectConfig.runtimeManifest.exportedPackages += language.grammar.generatorStub.packageName + if (projectConfig.runtime.manifest !== null) + projectConfig.runtime.manifest.exportedPackages += language.grammar.generatorStub.packageName } if (isGenerateJavaMain) @@ -111,9 +112,9 @@ class GeneratorFragment2 extends AbstractGeneratorFragment2 { doGenerateMweFile contributeEclipsePluginGuiceBindings - if (projectConfig.eclipsePluginManifest !== null) - projectConfig.eclipsePluginManifest.requiredBundles += 'org.eclipse.xtext.builder' - if (projectConfig.eclipsePluginPluginXml !== null) + if (projectConfig.eclipsePlugin.manifest !== null) + projectConfig.eclipsePlugin.manifest.requiredBundles += 'org.eclipse.xtext.builder' + if (projectConfig.eclipsePlugin.pluginXml !== null) contributeEclipsePluginExtensions } @@ -147,7 +148,7 @@ class GeneratorFragment2 extends AbstractGeneratorFragment2 { } } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } protected def void doGenerateJavaMain() { @@ -197,7 +198,7 @@ class GeneratorFragment2 extends AbstractGeneratorFragment2 { System.out.println("Code generation finished."); } } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } protected def void doGenerateXtendMain() { @@ -240,7 +241,7 @@ class GeneratorFragment2 extends AbstractGeneratorFragment2 { System.out.println('Code generation finished.') } } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } protected def void doGenerateMweFile() { @@ -278,12 +279,12 @@ class GeneratorFragment2 extends AbstractGeneratorFragment2 { } } } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } protected def contributeEclipsePluginExtensions() { val name = language.grammar.name - projectConfig.eclipsePluginPluginXml.entries += ''' + projectConfig.eclipsePlugin.pluginXml.entries += ''' <extension point="org.eclipse.xtext.builder.participant"> <participant class="�grammar.eclipsePluginExecutableExtensionFactory�:org.eclipse.xtext.builder.IXtextBuilderParticipant" diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/grammarAccess/GrammarAccessFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/grammarAccess/GrammarAccessFragment2.xtend index 77511712c..c8a461ebe 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/grammarAccess/GrammarAccessFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/grammarAccess/GrammarAccessFragment2.xtend @@ -65,8 +65,8 @@ class GrammarAccessFragment2 extends AbstractGeneratorFragment2 { } bindingFactory.addTypeToType(IGrammarAccess.typeRef, language.grammar.grammarAccess) .contributeTo(language.runtimeGenModule) - if (projectConfig.runtimeManifest !== null) { - projectConfig.runtimeManifest.exportedPackages.addAll(#[ + if (projectConfig.runtime.manifest !== null) { + projectConfig.runtime.manifest.exportedPackages.addAll(#[ grammar.runtimeBasePackage, grammar.runtimeBasePackage + ".services" ]) } @@ -98,7 +98,7 @@ class GrammarAccessFragment2 extends AbstractGeneratorFragment2 { + ". Therefore, the grammar is persisted as XMI and not as binary. This can be a performance drawback.") copy.classpathRelativePathToXmi } - val uri = projectConfig.runtimeSrcGen.getURI(path) + val uri = projectConfig.runtime.srcGen.getURI(path) val resource = resourceSet.createResource(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE) addAllGrammarsToResource(resource, copy, new HashSet<Grammar>()) isSaving.set(true) @@ -243,7 +243,7 @@ class GrammarAccessFragment2 extends AbstractGeneratorFragment2 { �ENDFOR� } ''' - javaFile.writeTo(projectConfig.runtimeSrcGen) + javaFile.writeTo(projectConfig.runtime.srcGen) } protected def StringConcatenationClient parserRuleClasses(ParserRule it) ''' diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/idea/IdeaPluginGenerator.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/idea/IdeaPluginGenerator.xtend index 25e4ccde5..de6d22b8b 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/idea/IdeaPluginGenerator.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/idea/IdeaPluginGenerator.xtend @@ -122,7 +122,7 @@ class IdeaPluginGenerator extends AbstractGeneratorFragment2 { grammar.compileFacetConfiguration, grammar.compileColorSettingsPage ].forEach[ - writeTo(projectConfig.ideaPluginSrc) + writeTo(projectConfig.ideaPlugin.src) ] #[ @@ -145,15 +145,15 @@ class IdeaPluginGenerator extends AbstractGeneratorFragment2 { grammar.compileFacetType, grammar.compileBaseColorSettingsPage ].forEach[ - writeTo(projectConfig.ideaPluginSrcGen) + writeTo(projectConfig.ideaPlugin.srcGen) ] if (deployable) { val pluginXml = grammar.compilePluginXml - if (!projectConfig.ideaPluginMetaInf.isFile(pluginXml.path)) { - pluginXml.writeTo(projectConfig.ideaPluginMetaInf) + if (!projectConfig.ideaPlugin.metaInf.isFile(pluginXml.path)) { + pluginXml.writeTo(projectConfig.ideaPlugin.metaInf) } - grammar.compilePluginGenXml.writeTo(projectConfig.ideaPluginMetaInf) + grammar.compilePluginGenXml.writeTo(projectConfig.ideaPlugin.metaInf) } } diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/idea/parser/antlr/XtextAntlrIDEAGeneratorFragment.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/idea/parser/antlr/XtextAntlrIDEAGeneratorFragment.xtend index c5acd1d14..0334e568d 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/idea/parser/antlr/XtextAntlrIDEAGeneratorFragment.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/idea/parser/antlr/XtextAntlrIDEAGeneratorFragment.xtend @@ -9,7 +9,6 @@ package org.eclipse.xtext.xtext.generator.idea.parser.antlr import com.google.inject.Inject import org.eclipse.xtext.xtext.generator.CodeConfig -import org.eclipse.xtext.xtext.generator.IXtextProjectConfig import org.eclipse.xtext.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment2 class XtextAntlrIDEAGeneratorFragment extends AbstractAntlrGeneratorFragment2 { @@ -19,12 +18,10 @@ class XtextAntlrIDEAGeneratorFragment extends AbstractAntlrGeneratorFragment2 { @Inject CodeConfig codeConfig - @Inject IXtextProjectConfig projectConfig - @Inject extension PsiGrammarNaming override protected doGenerate() { - val fsa = projectConfig.ideaPluginSrcGen + val fsa = projectConfig.ideaPlugin.srcGen generator.generate(grammar, options, fsa) val encoding = codeConfig.encoding diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/internal/ProjectConfigGenerator.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/internal/ProjectConfigGenerator.xtend deleted file mode 100644 index a053fbd87..000000000 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/internal/ProjectConfigGenerator.xtend +++ /dev/null @@ -1,263 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - *******************************************************************************/ -package org.eclipse.xtext.xtext.generator.internal - -import java.io.Closeable -import java.util.ArrayList -import java.io.FileWriter -import java.io.File - -/** - * A utility class for generating XtextProjectConfig. Not intended to be used outside of this project. - */ -class ProjectConfigGenerator { - - static val INTERFACE_NAME = 'org.eclipse.xtext.xtext.generator.IXtextProjectConfig' - static val IMPL_NAME = 'org.eclipse.xtext.xtext.generator.XtextProjectConfig' - - static val PROJECTS = #[ - 'runtime', 'runtimeTest', 'genericIde', 'genericIdeTest', 'eclipsePlugin', 'eclipsePluginTest', - 'ideaPlugin', 'ideaPluginTest', 'web', 'webTest' - ] - - static def void main(String[] args) { - val closeables = new ArrayList<Closeable> - try { - val interfaceWriter = new FileWriter('src' + File.separator + INTERFACE_NAME.replace('.', File.separator) + '.java') - closeables += interfaceWriter - val implWriter = new FileWriter('src' + File.separator + IMPL_NAME.replace('.', File.separator) + '.java') - closeables += implWriter - - val generator = new ProjectConfigGenerator - interfaceWriter.write(generator.generateInterface().toString) - implWriter.write(generator.generateImpl().toString) - - } catch (Throwable t) { - t.printStackTrace() - } finally { - closeables.forEach[close()] - } - } - - private def hasPluginXml(String project) { - !project.startsWith('ideaPlugin') && !project.startsWith('web') - } - - def generateInterface() ''' - /******************************************************************************* - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - *******************************************************************************/ - package �INTERFACE_NAME.substring(0, INTERFACE_NAME.lastIndexOf('.'))�; - - import org.eclipse.xtext.xtext.generator.model.IXtextGeneratorFileSystemAccess; - import org.eclipse.xtext.xtext.generator.IGuiceAwareGeneratorComponent; - import org.eclipse.xtext.xtext.generator.model.ManifestAccess; - import org.eclipse.xtext.xtext.generator.model.PluginXmlAccess; - - /** - * Inject an instance of this interface in order to generate code in a generator fragment. - * - * <p>This file has been generated with {@link �ProjectConfigGenerator.name�}.</p> - */ - public interface �INTERFACE_NAME.substring(INTERFACE_NAME.lastIndexOf('.') + 1)� extends IGuiceAwareGeneratorComponent { - - IXtextGeneratorFileSystemAccess getRuntimeModelGen(); - - �FOR p : PROJECTS� - String get�p.toFirstUpper�ProjectName(); - IXtextGeneratorFileSystemAccess get�p.toFirstUpper�Root(); - IXtextGeneratorFileSystemAccess get�p.toFirstUpper�MetaInf(); - IXtextGeneratorFileSystemAccess get�p.toFirstUpper�Src(); - IXtextGeneratorFileSystemAccess get�p.toFirstUpper�SrcGen(); - ManifestAccess get�p.toFirstUpper�Manifest(); - �IF p.hasPluginXml� - PluginXmlAccess get�p.toFirstUpper�PluginXml(); - �ENDIF� - - �ENDFOR� - IXtextGeneratorFileSystemAccess getWebApp(); - - } - ''' - - def generateImpl() ''' - /******************************************************************************* - * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - *******************************************************************************/ - package �IMPL_NAME.substring(0, IMPL_NAME.lastIndexOf('.'))�; - - import com.google.inject.Injector; - import org.eclipse.xtext.xtext.generator.model.IXtextGeneratorFileSystemAccess; - import org.eclipse.xtext.xtext.generator.model.XtextGeneratorFileSystemAccess; - import org.eclipse.xtext.xtext.generator.model.ManifestAccess; - import org.eclipse.xtext.xtext.generator.model.PluginXmlAccess; - - /** - * Use this class to configure output paths in the XtextGenerator. - * - * <p>This file has been generated with {@link �ProjectConfigGenerator.name�}.</p> - */ - public class �IMPL_NAME.substring(IMPL_NAME.lastIndexOf('.') + 1)� implements �INTERFACE_NAME.substring(INTERFACE_NAME.lastIndexOf('.') + 1)� { - - private IXtextGeneratorFileSystemAccess runtimeModelGen; - �FOR p : PROJECTS� - private String �p�ProjectName; - private IXtextGeneratorFileSystemAccess �p�Root; - private IXtextGeneratorFileSystemAccess �p�MetaInf; - private IXtextGeneratorFileSystemAccess �p�Src; - private IXtextGeneratorFileSystemAccess �p�SrcGen; - private ManifestAccess �p�Manifest; - �IF p.hasPluginXml� - private PluginXmlAccess �p�PluginXml; - �ENDIF� - �ENDFOR� - private IXtextGeneratorFileSystemAccess webApp; - - public void checkConfiguration(Issues issues) { - if (�PROJECTS.head�Src == null) { - issues.addError("The property '�PROJECTS.head�Src' must be set.", this); - } - if (�PROJECTS.head�SrcGen == null) { - issues.addError("The property '�PROJECTS.head�SrcGen' must be set.", this); - } - �FOR p : PROJECTS� - if (�p�Manifest != null && �p�MetaInf == null) { - issues.addError("The property '�p�MetaInf' must be set when '�p�Manifest' is set."); - } - �IF p.hasPluginXml� - if (�p�PluginXml != null && �p�Root == null) { - issues.addError("The property '�p�Root' must be set when '�p�PluginXml' is set."); - } - �ENDIF� - �ENDFOR� - } - - @Override - public void initialize(Injector injector) { - injector.injectMembers(this); - if (runtimeModelGen != null) { - runtimeModelGen.initialize(injector); - } - �FOR p : PROJECTS� - - // Initialize �p� configuration - if (�p�Root != null) { - �p�Root.initialize(injector); - } - if (�p�MetaInf != null) { - �p�MetaInf.initialize(injector); - } - if (�p�Src != null) { - �p�Src.initialize(injector); - } - if (�p�SrcGen != null) { - �p�SrcGen.initialize(injector); - } - �ENDFOR� - - if (webApp != null) { - webApp.initialize(injector); - } - } - - @Override - public IXtextGeneratorFileSystemAccess getRuntimeModelGen() { - return runtimeModelGen; - } - - public void setRuntimeModelGen(String path) { - this.runtimeModelGen = new XtextGeneratorFileSystemAccess(path, true); - } - - �FOR p : PROJECTS� - @Override - public String get�p.toFirstUpper�ProjectName() { - return �p�ProjectName; - } - - public void set�p.toFirstUpper�ProjectName(String projectName) { - this.�p�ProjectName = projectName; - } - - @Override - public IXtextGeneratorFileSystemAccess get�p.toFirstUpper�Root() { - return �p�Root; - } - - public void set�p.toFirstUpper�Root(String path) { - this.�p�Root = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess get�p.toFirstUpper�MetaInf() { - return �p�MetaInf; - } - - public void set�p.toFirstUpper�MetaInf(String path) { - this.�p�MetaInf = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public IXtextGeneratorFileSystemAccess get�p.toFirstUpper�Src() { - return �p�Src; - } - - public void set�p.toFirstUpper�Src(String path) { - this.�p�Src = new XtextGeneratorFileSystemAccess(path, false); - } - - @Override - public IXtextGeneratorFileSystemAccess get�p.toFirstUpper�SrcGen() { - return �p�SrcGen; - } - - public void set�p.toFirstUpper�SrcGen(String path) { - this.�p�SrcGen = new XtextGeneratorFileSystemAccess(path, true); - } - - @Override - public ManifestAccess get�p.toFirstUpper�Manifest() { - return �p�Manifest; - } - - public void set�p.toFirstUpper�Manifest(ManifestAccess manifest) { - this.�p�Manifest = manifest; - } - - �IF p.hasPluginXml� - @Override - public PluginXmlAccess get�p.toFirstUpper�PluginXml() { - return �p�PluginXml; - } - - public void set�p.toFirstUpper�PluginXml(PluginXmlAccess pluginXml) { - this.�p�PluginXml = pluginXml; - } - - �ENDIF� - �ENDFOR� - @Override - public IXtextGeneratorFileSystemAccess getWebApp() { - return webApp; - } - - public void setWebApp(String path) { - this.webApp = new XtextGeneratorFileSystemAccess(path, true); - } - } - ''' - -} \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/junit/Junit4Fragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/junit/Junit4Fragment2.xtend index 800093d10..177a5c50a 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/junit/Junit4Fragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/junit/Junit4Fragment2.xtend @@ -2,7 +2,6 @@ package org.eclipse.xtext.xtext.generator.junit import org.eclipse.xtext.xtext.generator.AbstractGeneratorFragment2 import com.google.inject.Inject -import org.eclipse.xtext.xtext.generator.IXtextProjectConfig import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming import org.eclipse.xtext.xtext.generator.model.JavaFileAccess import org.eclipse.xtext.xtext.generator.model.FileAccessFactory @@ -12,13 +11,12 @@ import static extension org.eclipse.xtext.GrammarUtil.* import org.eclipse.xtext.xtext.generator.util.GenModelUtil2 class Junit4Fragment2 extends AbstractGeneratorFragment2 { - @Inject IXtextProjectConfig projectConfig @Inject extension XtextGeneratorNaming @Inject FileAccessFactory fileAccessFactory override generate() { - if (projectConfig.runtimeTestManifest != null) { - projectConfig.runtimeTestManifest => [ + if (projectConfig.runtimeTest.manifest != null) { + projectConfig.runtimeTest.manifest => [ requiredBundles.addAll( "org.eclipse.xtext.junit4", "org.eclipse.xtext.xbase.lib" @@ -26,8 +24,8 @@ class Junit4Fragment2 extends AbstractGeneratorFragment2 { exportedPackages.add(grammar.runtimeTestBasePackage) ] } - if (projectConfig.eclipsePluginTestManifest != null) { - projectConfig.eclipsePluginTestManifest => [ + if (projectConfig.eclipsePluginTest.manifest != null) { + projectConfig.eclipsePluginTest.manifest => [ requiredBundles.addAll( "org.eclipse.core.runtime", "org.eclipse.ui.workbench;resolution:=optional" @@ -35,13 +33,13 @@ class Junit4Fragment2 extends AbstractGeneratorFragment2 { exportedPackages.add(grammar.eclipsePluginTestBasePackage) ] } - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.exportedPackages.add(grammar.eclipsePluginActivator.packageName) + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.exportedPackages.add(grammar.eclipsePluginActivator.packageName) } #[ - projectConfig.runtimeTestManifest, - projectConfig.eclipsePluginTestManifest + projectConfig.runtimeTest.manifest, + projectConfig.eclipsePluginTest.manifest ].filterNull.forEach [ importedPackages.addAll( "org.junit;version=\"4.5.0\"", @@ -53,9 +51,9 @@ class Junit4Fragment2 extends AbstractGeneratorFragment2 { "org.hamcrest.core" ) ] - generateInjectorProvider.writeTo(projectConfig.runtimeTestSrcGen) - generateExampleRuntimeTest.writeTo(projectConfig.runtimeTestSrc) - generateUiInjectorProvider.writeTo(projectConfig.eclipsePluginTestSrcGen) + generateInjectorProvider.writeTo(projectConfig.runtimeTest.srcGen) + generateExampleRuntimeTest.writeTo(projectConfig.runtimeTest.src) + generateUiInjectorProvider.writeTo(projectConfig.eclipsePluginTest.srcGen) } def JavaFileAccess generateExampleRuntimeTest() { diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/ManifestAccess.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/ManifestAccess.xtend index b20da15a3..70a9dd0c0 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/ManifestAccess.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/ManifestAccess.xtend @@ -15,10 +15,12 @@ import org.eclipse.xtend2.lib.StringConcatenationClient import org.eclipse.xtext.generator.IFileSystemAccess2 import org.eclipse.xtext.util.MergeableManifest import org.eclipse.xtext.util.internal.Log +import org.eclipse.xtext.xtext.generator.IGuiceAwareGeneratorComponent +import com.google.inject.Injector @Log @Accessors -class ManifestAccess extends TextFileAccess { +class ManifestAccess extends TextFileAccess implements IGuiceAwareGeneratorComponent { String bundleName @@ -129,4 +131,8 @@ class ManifestAccess extends TextFileAccess { } } + override initialize(Injector injector) { + injector.injectMembers(this) + } + } diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/PluginXmlAccess.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/PluginXmlAccess.xtend index e45a48487..eeb20a46a 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/PluginXmlAccess.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/PluginXmlAccess.xtend @@ -14,10 +14,12 @@ import org.eclipse.xtext.generator.IFileSystemAccess2 import org.eclipse.xtext.util.internal.Log import org.eclipse.xtext.xtext.generator.CodeConfig import com.google.inject.Inject +import org.eclipse.xtext.xtext.generator.IGuiceAwareGeneratorComponent +import com.google.inject.Injector @Log @Accessors -class PluginXmlAccess extends TextFileAccess { +class PluginXmlAccess extends TextFileAccess implements IGuiceAwareGeneratorComponent { @Inject CodeConfig codeConfig @@ -57,4 +59,8 @@ class PluginXmlAccess extends TextFileAccess { } } + override initialize(Injector injector) { + injector.injectMembers(this) + } + } \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/scoping/ImportNamespacesScopingFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/scoping/ImportNamespacesScopingFragment2.xtend index 6d6f56426..7b657ea57 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/scoping/ImportNamespacesScopingFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/scoping/ImportNamespacesScopingFragment2.xtend @@ -72,10 +72,10 @@ class ImportNamespacesScopingFragment2 extends AbstractGeneratorFragment2 { else generateJavaScopeProvider() - if (projectConfig.runtimeManifest !== null) { - projectConfig.runtimeManifest.exportedPackages += grammar.scopeProviderClass.packageName + if (projectConfig.runtime.manifest !== null) { + projectConfig.runtime.manifest.exportedPackages += grammar.scopeProviderClass.packageName if (codeConfig.preferXtendStubs) - projectConfig.runtimeManifest.requiredBundles += 'org.eclipse.xtext.xbase.lib' + projectConfig.runtime.manifest.requiredBundles += 'org.eclipse.xtext.xbase.lib' } } } @@ -109,7 +109,7 @@ class ImportNamespacesScopingFragment2 extends AbstractGeneratorFragment2 { public class �grammar.scopeProviderClass.simpleName� extends �grammar.scopeProviderSuperClass� { } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } protected def generateXtendScopeProvider() { @@ -123,7 +123,7 @@ class ImportNamespacesScopingFragment2 extends AbstractGeneratorFragment2 { class �grammar.scopeProviderClass.simpleName� extends �grammar.scopeProviderSuperClass� { } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } } \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/types/TypesGeneratorFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/types/TypesGeneratorFragment2.xtend index d35eabc53..fb45be132 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/types/TypesGeneratorFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/types/TypesGeneratorFragment2.xtend @@ -29,21 +29,21 @@ class TypesGeneratorFragment2 extends AbstractGeneratorFragment2 { .contributeTo(language.eclipsePluginGenModule) language.eclipsePluginGenModule.superClass = 'org.eclipse.xtext.common.types.ui.DefaultCommonTypesUiModule'.typeRef - if (projectConfig.runtimeManifest !== null) { - projectConfig.runtimeManifest.requiredBundles.addAll( + if (projectConfig.runtime.manifest !== null) { + projectConfig.runtime.manifest.requiredBundles.addAll( 'org.eclipse.xtext.common.types', 'org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional' ) } - if (projectConfig.runtimeTestManifest !== null) { - projectConfig.runtimeTestManifest.requiredBundles.add( + if (projectConfig.runtimeTest.manifest !== null) { + projectConfig.runtimeTest.manifest.requiredBundles.add( 'org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional' ) } - if (projectConfig.eclipsePluginManifest !== null) { - projectConfig.eclipsePluginManifest.requiredBundles.add( + if (projectConfig.eclipsePlugin.manifest !== null) { + projectConfig.eclipsePlugin.manifest.requiredBundles.add( 'org.eclipse.xtext.common.types.ui' ) } diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/compare/CompareFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/compare/CompareFragment2.xtend index f76e3d571..fdece8d20 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/compare/CompareFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/compare/CompareFragment2.xtend @@ -33,8 +33,8 @@ class CompareFragment2 extends AbstractGeneratorFragment2 { log.info("generating Compare Framework infrastructure"); } - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtext.ui" + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.requiredBundles += "org.eclipse.xtext.ui" } new GuiceModuleAccess.BindingFactory() @@ -43,8 +43,8 @@ class CompareFragment2 extends AbstractGeneratorFragment2 { new TypeReference("org.eclipse.xtext.ui.compare.DefaultViewerCreator") ).contributeTo(language.eclipsePluginGenModule); - if (projectConfig.eclipsePluginPluginXml != null) { - projectConfig.eclipsePluginPluginXml.entries += ''' + if (projectConfig.eclipsePlugin.pluginXml != null) { + projectConfig.eclipsePlugin.pluginXml.entries += ''' <extension point="org.eclipse.compare.contentViewers"> <viewer id="�grammar.name�.compare.contentViewers" class="�grammar.eclipsePluginExecutableExtensionFactory�:org.eclipse.xtext.ui.compare.InjectableViewerCreator" diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/contentAssist/ContentAssistFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/contentAssist/ContentAssistFragment2.xtend index 7762b6860..61eca126c 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/contentAssist/ContentAssistFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/contentAssist/ContentAssistFragment2.xtend @@ -83,8 +83,8 @@ class ContentAssistFragment2 extends AbstractGeneratorFragment2 { val chosenClass = if (generateStub) grammar.getProposalProviderClass else grammar.getGenProposalProviderClass; - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtext.ui" + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.requiredBundles += "org.eclipse.xtext.ui" } new GuiceModuleAccess.BindingFactory() @@ -93,26 +93,26 @@ class ContentAssistFragment2 extends AbstractGeneratorFragment2 { chosenClass ).contributeTo(language.eclipsePluginGenModule); - if (projectConfig.eclipsePluginSrcGen !== null) { + if (projectConfig.eclipsePlugin.srcGen !== null) { // generate the 'Abstract...ProposalProvider' generateGenJavaProposalProvider } - if (generateStub && projectConfig.eclipsePluginSrc != null) { + if (generateStub && projectConfig.eclipsePlugin.src != null) { if (preferXtendStubs) { generateXtendProposalProviderStub - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtext.xbase.lib" - projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtend.lib;resolution:=optional" + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.requiredBundles += "org.eclipse.xtext.xbase.lib" + projectConfig.eclipsePlugin.manifest.requiredBundles += "org.eclipse.xtend.lib;resolution:=optional" } } else { generateJavaProposalProviderStub } } - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.exportedPackages += grammar.proposalProviderClass.packageName + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.exportedPackages += grammar.proposalProviderClass.packageName } } @@ -126,7 +126,7 @@ class ContentAssistFragment2 extends AbstractGeneratorFragment2 { */ class �grammar.proposalProviderClass.simpleName� extends �grammar.genProposalProviderClass� { } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } def generateJavaProposalProviderStub() { @@ -137,7 +137,7 @@ class ContentAssistFragment2 extends AbstractGeneratorFragment2 { */ public class �grammar.proposalProviderClass.simpleName� extends �grammar.genProposalProviderClass� { } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } @@ -191,7 +191,7 @@ class ContentAssistFragment2 extends AbstractGeneratorFragment2 { } �ENDFOR� } - ''').writeTo(projectConfig.eclipsePluginSrcGen) + ''').writeTo(projectConfig.eclipsePlugin.srcGen) } diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/labeling/LabelProviderFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/labeling/LabelProviderFragment2.xtend index 4859ab7b6..f072cf345 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/labeling/LabelProviderFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/labeling/LabelProviderFragment2.xtend @@ -91,8 +91,8 @@ class LabelProviderFragment2 extends AbstractGeneratorFragment2 { override generate() { if (generateStub || grammar.inheritsXbase) { - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtext.ui" + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.requiredBundles += "org.eclipse.xtext.ui" } val labelProviderClass = @@ -115,7 +115,7 @@ class LabelProviderFragment2 extends AbstractGeneratorFragment2 { ''').contributeTo(language.eclipsePluginGenModule) } - if (generateStub && projectConfig.eclipsePluginSrc !== null) { + if (generateStub && projectConfig.eclipsePlugin.src !== null) { if (preferXtendStubs) { generateXtendEObjectLabelProvider generateXtendDescriptionLabelProvider @@ -150,7 +150,7 @@ class LabelProviderFragment2 extends AbstractGeneratorFragment2 { // 'Greeting.gif' // } } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } def protected generateXtendDescriptionLabelProvider() { @@ -172,7 +172,7 @@ class LabelProviderFragment2 extends AbstractGeneratorFragment2 { // ele.EClass.name + '.gif' // } } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } def protected generateJavaEObjectLabelProvider() { @@ -201,7 +201,7 @@ class LabelProviderFragment2 extends AbstractGeneratorFragment2 { // return "Greeting.gif"; // } } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } def protected generateJavaDescriptionLabelProvider() { @@ -223,6 +223,6 @@ class LabelProviderFragment2 extends AbstractGeneratorFragment2 { // return ele.getEClass().getName() + ".gif"; // } } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } } \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/outline/OutlineTreeProviderFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/outline/OutlineTreeProviderFragment2.xtend index 8cb24ed8f..3fa7f3fc0 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/outline/OutlineTreeProviderFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/outline/OutlineTreeProviderFragment2.xtend @@ -38,15 +38,15 @@ class OutlineTreeProviderFragment2 extends AbstractGeneratorFragment2 { } override generate() { - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtext.ui" + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.requiredBundles += "org.eclipse.xtext.ui" } if (!generateStub) { return; } - if (projectConfig.eclipsePluginSrc !== null) { + if (projectConfig.eclipsePlugin.src !== null) { if (codeConfig.preferXtendStubs) { generateXtendOutlineTreeProvider } else { @@ -73,7 +73,7 @@ class OutlineTreeProviderFragment2 extends AbstractGeneratorFragment2 { "org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider".typeRef� { } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } def protected generateXtendOutlineTreeProvider() { @@ -87,5 +87,5 @@ class OutlineTreeProviderFragment2 extends AbstractGeneratorFragment2 { "org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider".typeRef� { } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) }} \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/outline/QuickOutlineFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/outline/QuickOutlineFragment2.xtend index ffb1bdef5..6065b6000 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/outline/QuickOutlineFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/outline/QuickOutlineFragment2.xtend @@ -22,12 +22,12 @@ class QuickOutlineFragment2 extends AbstractGeneratorFragment2 { extension XtextGeneratorNaming override generate() { - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.requiredBundles += "org.eclipse.xtext.ui" + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.requiredBundles += "org.eclipse.xtext.ui" } - if (projectConfig.eclipsePluginPluginXml != null) { - projectConfig.eclipsePluginPluginXml.entries += ''' + if (projectConfig.eclipsePlugin.pluginXml != null) { + projectConfig.eclipsePlugin.pluginXml.entries += ''' <!-- Quick Outline --> <extension point="org.eclipse.ui.handlers"> diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/quickfix/QuickfixProviderFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/quickfix/QuickfixProviderFragment2.xtend index 92e7e9f74..57861ea28 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/quickfix/QuickfixProviderFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/ui/quickfix/QuickfixProviderFragment2.xtend @@ -76,18 +76,18 @@ class QuickfixProviderFragment2 extends AbstractGeneratorFragment2 { instanceClass ).contributeTo(language.eclipsePluginGenModule); - if (generateStub && projectConfig.eclipsePluginSrc !== null) { + if (generateStub && projectConfig.eclipsePlugin.src !== null) { if (preferXtendStubs) { generateXtendQuickfixProvider } else { generateJavaQuickfixProvider } - if (projectConfig.eclipsePluginManifest != null) { - projectConfig.eclipsePluginManifest.exportedPackages += grammar.quickfixProviderClass.packageName + if (projectConfig.eclipsePlugin.manifest != null) { + projectConfig.eclipsePlugin.manifest.exportedPackages += grammar.quickfixProviderClass.packageName } - if (projectConfig.eclipsePluginPluginXml != null) { + if (projectConfig.eclipsePlugin.pluginXml != null) { addRegistrationToPluginXml } } @@ -112,7 +112,7 @@ class QuickfixProviderFragment2 extends AbstractGeneratorFragment2 { // ] // } } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } protected def generateJavaQuickfixProvider() { @@ -136,14 +136,14 @@ class QuickfixProviderFragment2 extends AbstractGeneratorFragment2 { // } } - ''').writeTo(projectConfig.eclipsePluginSrc) + ''').writeTo(projectConfig.eclipsePlugin.src) } protected def addRegistrationToPluginXml() { val markerTypePrefix = grammar.eclipsePluginBasePackage + "." + grammar.simpleName.toLowerCase val executableExtensionFactory = grammar.eclipsePluginExecutableExtensionFactory - projectConfig.eclipsePluginPluginXml.entries += ''' + projectConfig.eclipsePlugin.pluginXml.entries += ''' <!-- quickfix marker resolution generator for �grammar.name� --> <extension point="org.eclipse.ui.ide.markerResolution"> diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/validation/ValidatorFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/validation/ValidatorFragment2.xtend index e39608c6c..e5c2f0eb4 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/validation/ValidatorFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/validation/ValidatorFragment2.xtend @@ -92,10 +92,10 @@ class ValidatorFragment2 extends AbstractGeneratorFragment2 { } generateAbstractValidator() - if (projectConfig.runtimeManifest !== null) - projectConfig.runtimeManifest.exportedPackages += grammar.validatorClass.packageName + if (projectConfig.runtime.manifest !== null) + projectConfig.runtime.manifest.exportedPackages += grammar.validatorClass.packageName - if (projectConfig.eclipsePluginPluginXml !== null) + if (projectConfig.eclipsePlugin.pluginXml !== null) contributeEclipsePluginExtensions() } @@ -122,7 +122,7 @@ class ValidatorFragment2 extends AbstractGeneratorFragment2 { // } } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } protected def generateJavaValidatorStub() { @@ -144,7 +144,7 @@ class ValidatorFragment2 extends AbstractGeneratorFragment2 { // } } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } protected def generateAbstractValidator() { @@ -169,7 +169,7 @@ class ValidatorFragment2 extends AbstractGeneratorFragment2 { } ''' - javaFile.writeTo(projectConfig.runtimeSrcGen) + javaFile.writeTo(projectConfig.runtime.srcGen) } protected def getGeneratedPackagesToValidate() { @@ -188,7 +188,7 @@ class ValidatorFragment2 extends AbstractGeneratorFragment2 { protected def contributeEclipsePluginExtensions() { val simpleName = getSimpleName(grammar) - projectConfig.eclipsePluginPluginXml.entries += ''' + projectConfig.eclipsePlugin.pluginXml.entries += ''' <!-- marker definitions for �grammar.name� --> <extension id="�simpleName.toLowerCase�.check.fast" diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/web/WebIntegrationFragment.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/web/WebIntegrationFragment.xtend index 706557175..42ae3a928 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/web/WebIntegrationFragment.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/web/WebIntegrationFragment.xtend @@ -179,13 +179,13 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { super.checkConfiguration(issues) if (framework === null) issues.addError('The property \'framework\' is required.') - if (generateJsHighlighting && projectConfig.webApp === null) + if (generateJsHighlighting && projectConfig.web.assets === null) issues.addWarning('The \'webApp\' outlet is not defined in the project configuration; JS syntax highlighting is disabled.') - if (generateServlet && projectConfig.webSrc === null) - issues.addWarning('The \'webSrc\' outlet is not defined in the project configuration; the generated servlet is disabled.') - if (generateJettyLauncher && projectConfig.webSrc === null) - issues.addWarning('The \'webSrc\' outlet is not defined in the project configuration; the Jetty launcher is disabled.') - if (generateHtmlExample && projectConfig.webApp === null) + if (generateServlet && projectConfig.web.src === null) + issues.addWarning('The \'web.src\' outlet is not defined in the project configuration; the generated servlet is disabled.') + if (generateJettyLauncher && projectConfig.web.src === null) + issues.addWarning('The \'web.src\' outlet is not defined in the project configuration; the Jetty launcher is disabled.') + if (generateHtmlExample && projectConfig.web.assets === null) issues.addWarning('The \'webApp\' outlet is not defined in the project configuration; the example HTML page is disabled.') for (pattern : enabledPatterns.filter[suppressedPatterns.contains(it)]) { issues.addError('The pattern \'' + pattern + '\' cannot be enabled and suppressed.') @@ -193,7 +193,7 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { } override generate() { - if (generateJsHighlighting && projectConfig.webApp !== null) { + if (generateJsHighlighting && projectConfig.web.assets !== null) { val langId = language.fileExtensions.head if (highlightingModuleName.nullOrEmpty) { highlightingModuleName = switch framework { @@ -208,17 +208,17 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { generateJsHighlighting(langId) } - if (generateServlet && projectConfig.webSrc !== null) { + if (generateServlet && projectConfig.web.src !== null) { generateServlet() } - if (generateJettyLauncher && projectConfig.webSrc !== null) { + if (generateJettyLauncher && projectConfig.web.src !== null) { generateServerLauncher() } - if (generateHtmlExample && projectConfig.webApp !== null) { + if (generateHtmlExample && projectConfig.web.assets !== null) { generateIndexDoc() generateStyleSheet() } - if (generateWebXml && projectConfig.webApp !== null) { + if (generateWebXml && projectConfig.web.assets !== null) { generateWebXml() } @@ -344,7 +344,7 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { } } - jsFile.writeTo(projectConfig.webApp) + jsFile.writeTo(projectConfig.web.assets) } protected def Collection<String> createOrionPatterns(String langId, Set<String> keywords) { @@ -460,7 +460,7 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { } protected def void generateIndexDoc() { - if (projectConfig.webApp.isFile('index.html')) { + if (projectConfig.web.assets.isFile('index.html')) { // Don't overwrite an existing index document return } @@ -561,11 +561,11 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { </body> </html> ''' - indexFile.writeTo(projectConfig.webApp) + indexFile.writeTo(projectConfig.web.assets) } protected def void generateStyleSheet() { - if (projectConfig.webApp.isFile('style.css')) { + if (projectConfig.web.assets.isFile('style.css')) { // Don't overwrite an existing style sheet return } @@ -648,7 +648,7 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { */ �ENDIF� ''' - styleFile.writeTo(projectConfig.webApp) + styleFile.writeTo(projectConfig.web.assets) } protected def void generateServerLauncher() { @@ -661,7 +661,7 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { def static void main(String[] args) { val server = new �'org.eclipse.jetty.server.Server'.typeRef�(new �'java.net.InetSocketAddress'.typeRef�('localhost', 8080)) server.handler = new �'org.eclipse.jetty.webapp.WebAppContext'.typeRef� => [ - resourceBase = '�projectConfig.webApp.path.replace(projectConfig.webRoot.path + "/", "")�' + resourceBase = '�projectConfig.web.assets.path.replace(projectConfig.web.root.path + "/", "")�' welcomeFiles = #["index.html"] contextPath = "/" configurations = #[ @@ -670,7 +670,7 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { new �'org.eclipse.jetty.webapp.WebInfConfiguration'.typeRef�, new �'org.eclipse.jetty.webapp.MetaInfConfiguration'.typeRef� ] - setAttribute(�'org.eclipse.jetty.webapp.WebInfConfiguration'.typeRef�.CONTAINER_JAR_PATTERN, '.*/�projectConfig.webProjectName.replace('.', '\\\\.')�/.*,.*/org\\.eclipse\\.xtext\\.web.*,.*/org\\.webjars.*') + setAttribute(�'org.eclipse.jetty.webapp.WebInfConfiguration'.typeRef�.CONTAINER_JAR_PATTERN, '.*/�projectConfig.web.name.replace('.', '\\\\.')�/.*,.*/org\\.eclipse\\.xtext\\.web.*,.*/org\\.webjars.*') ] val log = new �'org.eclipse.jetty.util.log.Slf4jLog'.typeRef�(�grammar.serverLauncherClass.simpleName�.name) try { @@ -692,7 +692,7 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { } } } - ''').writeTo(projectConfig.webSrc) + ''').writeTo(projectConfig.web.src) } protected def void generateServlet() { @@ -720,11 +720,11 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { } } - ''').writeTo(projectConfig.webSrc) + ''').writeTo(projectConfig.web.src) } protected def void generateWebXml() { - if (projectConfig.webApp.isFile('WEB-INF/web.xml')) { + if (projectConfig.web.assets.isFile('WEB-INF/web.xml')) { // Don't overwrite an existing web.xml return } @@ -787,7 +787,7 @@ class WebIntegrationFragment extends AbstractGeneratorFragment2 { </session-config> </web-app> ''' - xmlFile.writeTo(projectConfig.webApp) + xmlFile.writeTo(projectConfig.web.assets) } } \ No newline at end of file diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/xbase/XbaseGeneratorFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/xbase/XbaseGeneratorFragment2.xtend index 5c6fe99f0..deffe15ac 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/xbase/XbaseGeneratorFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/xbase/XbaseGeneratorFragment2.xtend @@ -68,21 +68,21 @@ class XbaseGeneratorFragment2 extends AbstractGeneratorFragment2 { contributeRuntimeGuiceBindings() contributeEclipsePluginGuiceBindings() - if (projectConfig.eclipsePluginPluginXml !== null) + if (projectConfig.eclipsePlugin.pluginXml !== null) contributeEclipsePluginExtensions() if (generateXtendInferrer) doGenerateXtendInferrer() - if (projectConfig.runtimeManifest !== null) { - projectConfig.runtimeManifest.requiredBundles.addAll(#[ + if (projectConfig.runtime.manifest !== null) { + projectConfig.runtime.manifest.requiredBundles.addAll(#[ 'org.eclipse.xtext.xbase', 'org.eclipse.xtext.xbase.lib' ]) if ((generateXtendInferrer || useInferredJvmModel) && !skipExportedPackage) { - projectConfig.runtimeManifest.exportedPackages += jvmModelInferrer.packageName + projectConfig.runtime.manifest.exportedPackages += jvmModelInferrer.packageName } } - if (projectConfig.eclipsePluginManifest !== null) { - projectConfig.eclipsePluginManifest.requiredBundles.addAll(#[ + if (projectConfig.eclipsePlugin.manifest !== null) { + projectConfig.eclipsePlugin.manifest.requiredBundles.addAll(#[ 'org.eclipse.xtext.xbase.ui', 'org.eclipse.jdt.debug.ui' ]) } @@ -259,13 +259,13 @@ class XbaseGeneratorFragment2 extends AbstractGeneratorFragment2 { // ] } } - ''').writeTo(projectConfig.runtimeSrc) + ''').writeTo(projectConfig.runtime.src) } protected def contributeEclipsePluginExtensions() { val name = language.grammar.name if (jdtTypeHierarchy) { - projectConfig.eclipsePluginPluginXml.entries += ''' + projectConfig.eclipsePlugin.pluginXml.entries += ''' <!-- Type Hierarchy --> <extension point="org.eclipse.ui.handlers"> <handler @@ -338,7 +338,7 @@ class XbaseGeneratorFragment2 extends AbstractGeneratorFragment2 { ''' } if (jdtCallHierarchy) { - projectConfig.eclipsePluginPluginXml.entries += ''' + projectConfig.eclipsePlugin.pluginXml.entries += ''' <!-- Call Hierachy --> <extension point="org.eclipse.ui.handlers"> <handler @@ -365,7 +365,7 @@ class XbaseGeneratorFragment2 extends AbstractGeneratorFragment2 { </extension> ''' } - projectConfig.eclipsePluginPluginXml.entries += ''' + projectConfig.eclipsePlugin.pluginXml.entries += ''' <extension point="org.eclipse.core.runtime.adapters"> <factory class="�grammar.eclipsePluginExecutableExtensionFactory�:org.eclipse.xtext.builder.smap.StratumBreakpointAdapterFactory" adaptableType="org.eclipse.xtext.ui.editor.XtextEditor"> diff --git a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/xbase/XtypeGeneratorFragment2.xtend b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/xbase/XtypeGeneratorFragment2.xtend index 97825a9a2..ccd0a887d 100644 --- a/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/xbase/XtypeGeneratorFragment2.xtend +++ b/plugins/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/xbase/XtypeGeneratorFragment2.xtend @@ -15,8 +15,8 @@ class XtypeGeneratorFragment2 extends AbstractGeneratorFragment2 { @Inject extension XbaseUsageDetector override generate() { - if (language.grammar.inheritsXtype && projectConfig.eclipsePluginManifest !== null) - projectConfig.eclipsePluginManifest.requiredBundles += 'org.eclipse.xtext.xbase.ui' + if (language.grammar.inheritsXtype && projectConfig.eclipsePlugin.manifest !== null) + projectConfig.eclipsePlugin.manifest.requiredBundles += 'org.eclipse.xtext.xbase.ui' } } diff --git a/plugins/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/RuntimeProjectDescriptor.xtend b/plugins/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/RuntimeProjectDescriptor.xtend index 6169b4e82..69c0aaf19 100644 --- a/plugins/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/RuntimeProjectDescriptor.xtend +++ b/plugins/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/RuntimeProjectDescriptor.xtend @@ -166,24 +166,43 @@ class RuntimeProjectDescriptor extends TestedProjectDescriptor { component = XtextGenerator auto-inject { configuration = { project = WizardConfig auto-inject { - �IF !config.uiProject.enabled� - eclipseEditor = false + �IF testProject.enabled� + runtimeTest = { + enabled = true + } + �ENDIF� + �IF config.ideProject.enabled + && !#[config.webProject, config.intellijProject, config.uiProject].exists[enabled]� + genericIde = { + enabled = true + } + �ENDIF� + �IF config.uiProject.enabled� + eclipsePlugin = { + enabled = true + } + �ENDIF� + �IF config.uiProject.testProject.enabled� + eclipsePluginTest = { + enabled = true + } �ENDIF� �IF config.intellijProject.enabled� - ideaEditor = true + ideaPlugin = { + enabled = true + } �ENDIF� �IF config.webProject.enabled� - webSupport = true - �ENDIF� - �IF config.ideProject.enabled� - genericIdeSupport = true - �ENDIF� - �IF testProject.enabled� - testingSupport = true + web = { + enabled = true + } �ENDIF� �IF config.sourceLayout == SourceLayout.MAVEN� mavenLayout = true �ENDIF� + �IF isEclipsePluginProject� + createEclipseMetaData = true + �ENDIF� } code = auto-inject { encoding = "�config.encoding�" diff --git a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.eclipsePlugin/org.xtext.example.eclipsePlugin/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.eclipsePlugin/org.xtext.example.eclipsePlugin/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 index 5021710e7..c13a5a5ca 100644 --- a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.eclipsePlugin/org.xtext.example.eclipsePlugin/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 +++ b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.eclipsePlugin/org.xtext.example.eclipsePlugin/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -15,8 +15,16 @@ Workflow { component = XtextGenerator auto-inject { configuration = { project = WizardConfig auto-inject { - genericIdeSupport = true - testingSupport = true + runtimeTest = { + enabled = true + } + eclipsePlugin = { + enabled = true + } + eclipsePluginTest = { + enabled = true + } + createEclipseMetaData = true } code = auto-inject { encoding = "UTF-8" diff --git a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.full/org.xtext.example.full.parent/org.xtext.example.full/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.full/org.xtext.example.full.parent/org.xtext.example.full/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 index bbff7ae20..9b4ba9419 100644 --- a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.full/org.xtext.example.full.parent/org.xtext.example.full/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 +++ b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.full/org.xtext.example.full.parent/org.xtext.example.full/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -15,10 +15,22 @@ Workflow { component = XtextGenerator auto-inject { configuration = { project = WizardConfig auto-inject { - ideaEditor = true - webSupport = true - genericIdeSupport = true - testingSupport = true + runtimeTest = { + enabled = true + } + eclipsePlugin = { + enabled = true + } + eclipsePluginTest = { + enabled = true + } + ideaPlugin = { + enabled = true + } + web = { + enabled = true + } + createEclipseMetaData = true } code = auto-inject { encoding = "UTF-8" diff --git a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.gradle/org.xtext.example.gradle.parent/org.xtext.example.gradle/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.gradle/org.xtext.example.gradle.parent/org.xtext.example.gradle/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 index 11c81bb38..6fdaec92b 100644 --- a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.gradle/org.xtext.example.gradle.parent/org.xtext.example.gradle/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 +++ b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.gradle/org.xtext.example.gradle.parent/org.xtext.example.gradle/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -15,11 +15,15 @@ Workflow { component = XtextGenerator auto-inject { configuration = { project = WizardConfig auto-inject { - eclipseEditor = false - ideaEditor = true - webSupport = true - genericIdeSupport = true - testingSupport = true + runtimeTest = { + enabled = true + } + ideaPlugin = { + enabled = true + } + web = { + enabled = true + } mavenLayout = true } code = auto-inject { diff --git a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.mavenTycho/org.xtext.example.mavenTycho.parent/org.xtext.example.mavenTycho/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.mavenTycho/org.xtext.example.mavenTycho.parent/org.xtext.example.mavenTycho/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 index b36ca53f7..f99d158f9 100644 --- a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.mavenTycho/org.xtext.example.mavenTycho.parent/org.xtext.example.mavenTycho/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 +++ b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.mavenTycho/org.xtext.example.mavenTycho.parent/org.xtext.example.mavenTycho/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -15,9 +15,19 @@ Workflow { component = XtextGenerator auto-inject { configuration = { project = WizardConfig auto-inject { - webSupport = true - genericIdeSupport = true - testingSupport = true + runtimeTest = { + enabled = true + } + eclipsePlugin = { + enabled = true + } + eclipsePluginTest = { + enabled = true + } + web = { + enabled = true + } + createEclipseMetaData = true } code = auto-inject { encoding = "UTF-8" diff --git a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.plainMaven/org.xtext.example.plainMaven.parent/org.xtext.example.plainMaven/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.plainMaven/org.xtext.example.plainMaven.parent/org.xtext.example.plainMaven/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 index 389f49edf..0c8d34db5 100644 --- a/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.plainMaven/org.xtext.example.plainMaven.parent/org.xtext.example.plainMaven/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 +++ b/tests/org.eclipse.xtext.tests/testdata/wizard-expectations/org.xtext.example.plainMaven/org.xtext.example.plainMaven.parent/org.xtext.example.plainMaven/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -15,10 +15,12 @@ Workflow { component = XtextGenerator auto-inject { configuration = { project = WizardConfig auto-inject { - eclipseEditor = false - webSupport = true - genericIdeSupport = true - testingSupport = true + runtimeTest = { + enabled = true + } + web = { + enabled = true + } mavenLayout = true } code = auto-inject {