Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » No Definition 'generator::Test::main for List' found!
No Definition 'generator::Test::main for List' found! [message #533152] Wed, 12 May 2010 12:54 Go to next message
Rubén Porras Campo is currently offline Rubén Porras CampoFriend
Messages: 67
Registered: July 2009
Member
Hi,

I am migrating my project from MWE to MWE2 and I have problems while generating the code, I always get an error in the xpand2.Generator:

Quote:
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri 'C:\eclipse_workspaces\heliosm6\com.foo.bttg.model'
47 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'com.foo.bttg.meta_model.btc.btc.BtcPackage'
47 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'com.foo.bttg.meta_model.btpt.btpt.BtptPackage'
407 [main] DEBUG org.eclipse.xtext.mwe.Reader - Resource Pathes : [src/btt]
485 [main] DEBUG xt.validation.ResourceValidatorImpl - Syntax check OK! Resource: file:/C:/eclipse_workspaces/heliosm6/com.foo.bttg.model/src/ btt/fidd.btt
970 [main] ERROR org.eclipse.xpand2.Generator - Error in Component of type org.eclipse.xpand2.Generator:
EvaluationException : No Definition 'com::foo::bttg::generator::abs::btt::Test::main for List' found!
[23,67] on line 1 'EXPAND com::foo::bttg::generator::abs::btt::Test::main FOR model'

970 [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher - No Definition 'com::foo::bttg::generator::abs::btt::Test::main for List' found!
org.eclipse.emf.mwe.core.WorkflowInterruptedException: No Definition 'com::foo::bttg::generator::abs::btt::Test::main for List' found!
at org.eclipse.xtend.expression.AbstractExpressionsUsingWorkflo wComponent.invokeInternal(AbstractExpressionsUsingWorkflowCo mponent.java:246)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:129)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:199)
at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkf lowComponent.invoke(AbstractCompositeWorkflowComponent.java: 31)
at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow. java:19)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:73)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:51)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Lau ncher.java:74)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2La uncher.java:35)




A simplified version of the grammatic is:

grammar com.foo.bttg.meta_model.btt.BTT with org.eclipse.xtext.common.Terminals

generate btt "http://www.foo.com/bttg/meta_model/btt"

BttModel:
  (btt+=BusinessTrxType)*
;



The workflow file would be

module workflow.fiddGenerator

import org.eclipse.emf.mwe.utils.*

var targetDir = "src-gen/btt/fidd"
var fileEncoding = "UTF-8"

Workflow {
	bean = StandaloneSetup {
	  platformUri = "."
	  registerGeneratedEPackage = "com.foo.bttg.meta_model.btc.btc.BtcPackage"
	  registerGeneratedEPackage = "com.foo.bttg.meta_model.btpt.btpt.BtptPackage"
	}
	
	component = DirectoryCleaner {
	  directory = targetDir
	}	
	
	component = org.eclipse.xtext.mwe.Reader {
		path = "src/btt"

	    register = com.foo.bttg.meta_model.btc.BTCStandaloneSetup {}
		register = com.foo.bttg.meta_model.btpt.BTPTStandaloneSetup {}
		register = com.foo.bttg.meta_model.btt.BTTStandaloneSetup {}

	    load = {
			slot = "model"
			type = "BusinessTrxType"
		}
	}


	component = org.eclipse.xpand2.Generator {
		metaModel = org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel {}
		expand = "generator::btt::Test::main FOR model"
		outlet = {
			path = targetDir
		}		
		fileEncoding = fileEncoding
	}
}


And the btt::Test source is just

«IMPORT btt»

«DEFINE test FOR BusinessTrxType-»
  «FILE "a.txt"-»
  aa 
  «ENDFILE-»
«ENDDEFINE»


Why is the XPAND2 generator complaining about the List?
Re: No Definition 'generator::Test::main for List' found! [message #533157 is a reply to message #533152] Wed, 12 May 2010 13:01 Go to previous messageGo to next message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14669
Registered: July 2009
Senior Member
Hello, this is cause your model (slot) as MWEReader reads it - consists of a list of BusinessTrxType, so you have either to change your workflow

expand = "generator::btt::Test::main FOREACHmodel"


or your template

«DEFINE test FOR List[BusinessTrxType]-»
  «EXPAND testbtrxt FORACH this»
«ENDDEFINE»

«DEFINE testbtrxt FOR BusinessTrxType-»
  «FILE "a.txt"-»
  aa 
  «ENDFILE-»
«ENDDEFINE»



~Christian


Twitter : @chrdietrich
Blog : https://www.dietrich-it.de

[Updated on: Wed, 12 May 2010 13:05]

Report message to a moderator

Re: No Definition 'generator::Test::main for List' found! [message #533158 is a reply to message #533152] Wed, 12 May 2010 13:11 Go to previous messageGo to next message
Rubén Porras Campo is currently offline Rubén Porras CampoFriend
Messages: 67
Registered: July 2009
Member
Hi Christian,

The first attempt

«IMPORT btt»

«DEFINE test FOR List[BusinessTrxType]-»
  «EXPAND testbtrxt FOREACH this»
«ENDDEFINE»

«DEFINE testbtrxt FOR BusinessTrxType-»
  «FILE "a.txt"-»
  aa 
  «ENDFILE-»
«ENDDEFINE»




ended with the same exception:

Quote:
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri 'C:\eclipse_workspaces\heliosm6\com.foo.bttg.model'
47 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'com.foo.bttg.meta_model.btc.btc.BtcPackage'
63 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'com.foo.bttg.meta_model.btpt.btpt.BtptPackage'
438 [main] DEBUG org.eclipse.xtext.mwe.Reader - Resource Pathes : [src/btt]
532 [main] DEBUG xt.validation.ResourceValidatorImpl - Syntax check OK! Resource: file:/C:/eclipse_workspaces/heliosm6/com.foo.bttg.model/src/ btt/fidd.btt
1737 [main] ERROR org.eclipse.xpand2.Generator - Error in Component of type org.eclipse.xpand2.Generator:
EvaluationException : No Definition 'com::foo::bttg::generator::abs::btt::Test::main for List' found!
[23,67] on line 1 'EXPAND com::foo::bttg::generator::abs::btt::Test::main FOR model'

1737 [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher - No Definition 'com::foo::bttg::generator::abs::btt::Test::main for List' found!
org.eclipse.emf.mwe.core.WorkflowInterruptedException: No Definition 'com::foo::bttg::generator::abs::btt::Test::main for List' found!
at org.eclipse.xtend.expression.AbstractExpressionsUsingWorkflo wComponent.invokeInternal(AbstractExpressionsUsingWorkflowCo mponent.java:246)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:129)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:199)
at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkf lowComponent.invoke(AbstractCompositeWorkflowComponent.java: 31)
at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow. java:19)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:73)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:51)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Lau ncher.java:74)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2La uncher.java:35)




The second attempt (with expand = "generator::btt::Test::main FORARCH model") ends with another error message:

Quote:
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri 'C:\eclipse_workspaces\heliosm6\com.foo.bttg.model'
47 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'com.foo.bttg.meta_model.btc.btc.BtcPackage'
47 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'com.foo.bttg.meta_model.btpt.btpt.BtptPackage'
407 [main] DEBUG org.eclipse.xtext.mwe.Reader - Resource Pathes : [src/btt]
501 [main] DEBUG xt.validation.ResourceValidatorImpl - Syntax check OK! Resource: file:/C:/eclipse_workspaces/heliosm6/com.foo.bttg.model/src/ btt/fidd.btt
971 [main] ERROR org.eclipse.xpand2.Generator - Error in Component of type org.eclipse.xpand2.Generator:
EvaluationException : No Definition 'com::foo::bttg::generator::abs::btt::Test::main for btt::BusinessTrxType' found!
[23,71] on line 1 'EXPAND com::foo::bttg::generator::abs::btt::Test::main FOREACH model'

971 [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher - No Definition 'com::foo::bttg::generator::abs::btt::Test::main for btt::BusinessTrxType' found!
org.eclipse.emf.mwe.core.WorkflowInterruptedException: No Definition 'com::foo::bttg::generator::abs::btt::Test::main for btt::BusinessTrxType' found!
at org.eclipse.xtend.expression.AbstractExpressionsUsingWorkflo wComponent.invokeInternal(AbstractExpressionsUsingWorkflowCo mponent.java:246)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:129)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:199)
at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkf lowComponent.invoke(AbstractCompositeWorkflowComponent.java: 31)
at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow. java:19)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:73)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:51)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Lau ncher.java:74)
at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2La uncher.java:35)


Re: No Definition 'generator::Test::main for List' found! [message #533161 is a reply to message #533158] Wed, 12 May 2010 13:13 Go to previous messageGo to next message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14669
Registered: July 2009
Senior Member
Hello,

are you sure that you have a definition main
in the template file Test.xpt within the package
com::foo::bttg::generator::abs::btt?

~Christian


Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
Re: No Definition 'generator::Test::main for List' found! [message #533166 is a reply to message #533152] Wed, 12 May 2010 13:34 Go to previous messageGo to next message
Rubén Porras Campo is currently offline Rubén Porras CampoFriend
Messages: 67
Registered: July 2009
Member
Hi Christian,

thanks, I deleted the main accidentally by testing.

Now it is working.
Re: No Definition 'generator::Test::main for List' found! [message #556828 is a reply to message #533166] Thu, 02 September 2010 17:57 Go to previous messageGo to next message
David  is currently offline David Friend
Messages: 3
Registered: September 2010
Junior Member
Hi, I have the same problem, but I couldn't solve.

This is the error message:
0    [main] DEBUG        org.eclipse.xtext.mwe.Reader  - Resource Pathes : [src/model]
1    [main] INFO         org.eclipse.xpand2.Generator  - No meta models configured, using JavaBeans as default.
106  [main] DEBUG xt.validation.ResourceValidatorImpl  - Syntax check OK! Resource: file:/home/david/Dropbox/WorkSpace/org.xtext.example.entity.generator/src/model/vaca.entity
281  [main] ERROR        org.eclipse.xpand2.Generator  - Error in Component  of type org.eclipse.xpand2.Generator: 
	EvaluationException : No Definition 'templates::Main::main for org::xtext::example::entity::impl::TypeDefImpl' found!
	[23,46] on line 1 'EXPAND templates::Main::main FOREACH greetings'

282  [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher  - Problems running workflow workflow.EntityGenerator: No Definition 'templates::Main::main for org::xtext::example::entity::impl::TypeDefImpl' found!
java.lang.RuntimeException: Problems running workflow workflow.EntityGenerator: No Definition 'templates::Main::main for org::xtext::example::entity::impl::TypeDefImpl' found!
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:82)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
Caused by: org.eclipse.emf.mwe.core.WorkflowInterruptedException: No Definition 'templates::Main::main for org::xtext::example::entity::impl::TypeDefImpl' found!
	at org.eclipse.xtend.expression.AbstractExpressionsUsingWorkflowComponent.invokeInternal(AbstractExpressionsUsingWorkflowComponent.java:247)
	at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126)
	at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
	at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
	at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:31)
	at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:80)
	... 3 more



And this is my EntityGenerator.mwe2:
module workflow.EntityGenerator

import org.eclipse.emf.mwe.utils.*

var targetDir = "src-gen"
var fileEncoding = "UTF-8"
var modelPath = "src/model"

Workflow {

	component = org.eclipse.xtext.mwe.Reader {
		// lookup all resources on the classpath
		// useJavaClassPath = true

		// or define search scope explicitly
		path = modelPath

		// this class will be generated by the xtext generator 
		register = org.xtext.example.EntityStandaloneSetup {}
		load = {
			slot = "greetings"
			type = "Type"
		}
	}

	component = org.eclipse.xpand2.Generator {
		expand = "templates::Main::main FOREACH greetings"
		outlet = {
			path = targetDir
		}
		fileEncoding = fileEncoding
	}
}


And this is my Main.xpt
«IMPORT entity»

«DEFINE main FOR Model»
	«EXPAND Entity::entity FOREACH this.types.typeSelect(Entity)»  
	«EXPAND DAO::dao FOREACH this.types.typeSelect(Entity)»  
«ENDDEFINE»



Finally, this is my grammar:

grammar org.xtext.example.Entity with org.eclipse.xtext.common.Terminals

generate entity "http://www.xtext.org/example/Entity"

Model:
  (types+=Type)*;

Type:
  TypeDef | Entity;

TypeDef:
  "typedef" name=ID ("mapsto" mappedType=JAVAID)?;

JAVAID:
  name=ID("." ID)*;

Entity:
  "entity" name=ID ("extends" superEntity=[Entity])?
  "{"
    (attributes+=Attribute)*
  "}";

Attribute:
  type=[Type] (many?="*")? name=ID;




Do you have any ideia about this?

Regards

David F Neto

[Updated on: Thu, 02 September 2010 17:57]

Report message to a moderator

Re: No Definition 'generator::Test::main for List' found! [message #556829 is a reply to message #556828] Thu, 02 September 2010 17:59 Go to previous messageGo to next message
Christian Dietrich is currently offline Christian DietrichFriend
Messages: 14669
Registered: July 2009
Senior Member
Hello David,

you are passing Types to the generator but don't have a definition for them.

and the import should be org::xtext::example::entity
therefor you should configute the javabeans metamodel for your generator project.

~Christian


Twitter : @chrdietrich
Blog : https://www.dietrich-it.de

[Updated on: Thu, 02 September 2010 18:03]

Report message to a moderator

Re: No Definition 'generator::Test::main for List' found! [message #557369 is a reply to message #556828] Tue, 07 September 2010 07:12 Go to previous messageGo to next message
Jan Koehnlein is currently offline Jan KoehnleinFriend
Messages: 760
Registered: July 2009
Location: Hamburg
Senior Member
The generator component assumes (and tells you) the JavaBeans metamodel,
i.e. your import should read

«IMPORT org::xtext::example::entity»

Am 02.09.10 19:57, schrieb David:
> Hi, I have the same problem, but I couldn't solve.
>
> This is the error message:
> 0 [main] DEBUG org.eclipse.xtext.mwe.Reader - Resource Pathes : [src/model]
> 1 [main] INFO org.eclipse.xpand2.Generator - No meta models configured,
> using JavaBeans as default.
> 106 [main] DEBUG xt.validation.ResourceValidatorImpl - Syntax check OK!
> Resource:
> file:/home/david/Dropbox/WorkSpace/org.xtext.example.entity. generator/src/model/vaca.entity
>
> 281 [main] ERROR org.eclipse.xpand2.Generator - Error in Component of
> type org.eclipse.xpand2.Generator: EvaluationException : No Definition
> 'templates::Main::main for
> org::xtext::example::entity::impl::TypeDefImpl' found!
> [23,46] on line 1 'EXPAND templates::Main::main FOREACH greetings'
>
> 282 [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher - Problems running
> workflow workflow.EntityGenerator: No Definition 'templates::Main::main
> for org::xtext::example::entity::impl::TypeDefImpl' found!
> java.lang.RuntimeException: Problems running workflow
> workflow.EntityGenerator: No Definition 'templates::Main::main for
> org::xtext::example::entity::impl::TypeDefImpl' found!
> at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:82)
> at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:52)
> at
> org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Lau ncher.java:74)
> at
> org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2La uncher.java:35)
> Caused by: org.eclipse.emf.mwe.core.WorkflowInterruptedException: No
> Definition 'templates::Main::main for
> org::xtext::example::entity::impl::TypeDefImpl' found!
> at
> org.eclipse.xtend.expression.AbstractExpressionsUsingWorkflo wComponent.invokeInternal(AbstractExpressionsUsingWorkflowCo mponent.java:247)
>
> at
> org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:126)
>
> at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.ja va:34)
> at
> org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:201)
>
> at
> org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkf lowComponent.invoke(AbstractCompositeWorkflowComponent.java: 31)
>
> at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow. java:19)
> at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runne r.java:80)
> ... 3 more
>
>
>
> And this is my EntityGenerator.mwe2:
>
> module workflow.EntityGenerator
>
> import org.eclipse.emf.mwe.utils.*
>
> var targetDir = "src-gen"
> var fileEncoding = "UTF-8"
> var modelPath = "src/model"
>
> Workflow {
>
> component = org.eclipse.xtext.mwe.Reader {
> // lookup all resources on the classpath
> // useJavaClassPath = true
>
> // or define search scope explicitly
> path = modelPath
>
> // this class will be generated by the xtext generator register =
> org.xtext.example.EntityStandaloneSetup {}
> load = {
> slot = "greetings"
> type = "Type"
> }
> }
>
> component = org.eclipse.xpand2.Generator {
> expand = "templates::Main::main FOREACH greetings"
> outlet = {
> path = targetDir
> }
> fileEncoding = fileEncoding
> }
> }
>
>
> And this is my Main.xpt
>
> «IMPORT entity»
>
> «DEFINE main FOR Model»
> «EXPAND Entity::entity FOREACH this.types.typeSelect(Entity)» «EXPAND
> DAO::dao FOREACH this.types.typeSelect(Entity)» «ENDDEFINE»
>
>
>
> Finally, this is my grammar:
>
>
> grammar org.xtext.example.Entity with org.eclipse.xtext.common.Terminals
>
> generate entity "http://www.xtext.org/example/Entity"
>
> Model:
> (types+=Type)*;
>
> Type:
> TypeDef | Entity;
>
> TypeDef:
> "typedef" name=ID ("mapsto" mappedType=JAVAID)?;
>
> JAVAID:
> name=ID("." ID)*;
>
> Entity:
> "entity" name=ID ("extends" superEntity=[Entity])?
> "{"
> (attributes+=Attribute)*
> "}";
>
> Attribute:
> type=[Type] (many?="*")? name=ID;
>
>
>
>
> Do you have any ideia about this?
>
> Regards
>
> David F Neto


--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com


---
Get professional support from the Xtext committers at www.typefox.io
Re: No Definition 'generator::Test::main for List' found! [message #557916 is a reply to message #557369] Thu, 09 September 2010 12:14 Go to previous message
David  is currently offline David Friend
Messages: 3
Registered: September 2010
Junior Member
Dear Christian Dietrich and Jan Koehnlein, thanks for the answers. I am trying applying them.
Previous Topic:Adding new menus to UI
Next Topic:Java Types in Xtext DSL
Goto Forum:
  


Current Time: Sat Apr 27 00:41:56 GMT 2024

Powered by FUDForum. Page generated in 0.03426 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top