cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Kienenberger <mkien...@gmail.com>
Subject Re: CayenneModeler not generating classes
Date Fri, 09 Oct 2015 13:26:40 GMT
The three things needed to track this down are:

1) The version of velocity you are using -- it looks like the pom.xml
file asks for 1.6.3, but there are at least two newer versions of
velocity that something else might be requesting instead.

2) The template you use using when you get the error.     If you give
us the exact steps you are taking, (clicked this, clicked that, etc)
we can verify what that is.  Most likely, it is
https://github.com/apache/cayenne/blob/master/cayenne-tools/src/main/resources/templates/v1_2/superclass.vm
as this has the word "and" starting at column 35 on line 38, unless I
overlooked another template which also has this characteristic.

3) The data you are putting into the template (probably a specific
entity is causing it).   Again the exact steps you are taking should
give us what was selected at the time you generated the classes.

Possibly it's the version of velocity that is the problem.

But the line itself seems odd:

#if((${object.DeclaredAttributes} and
!${object.DeclaredAttributes.isEmpty()}) or
(${object.DeclaredRelationships} and
!${object.DeclaredRelationships.isEmpty()}))

As far as I can tell [ and ] and [ or ] aren't supported in velocity,
although maybe velocity 2.0 supports it and the docs are out of date.
 It used to be [ && ] and [ || ].

Second, I use a pretty old version of velocity, but I wasn't aware
that velocity allowed a directive to span multiple lines.   I would
expect line 38 and 39 to be on one line.   Again, maybe this is only
valid under velocity 2.0?

It looks like this was last changed on April, which wasn't that long ago.

On Fri, Oct 9, 2015 at 12:44 AM, Dipesh Jain <dipesh@ivgroup.in> wrote:
> I also used latest repository from github, Java 1.8.0_51, Windows 7 Pro.
> but its still not working on my end. Any ideas ?
>
> On Tue, Oct 6, 2015 at 11:44 AM, Dipesh Jain <dipesh@ivgroup.in> wrote:
>
>> Hi Savva,
>>
>> In which environment you are working? Did you build latest repository to reproduce
>> my error ?
>>
>> On Mon, Oct 5, 2015 at 11:06 AM, Dipesh Jain <dipesh@ivgroup.in> wrote:
>>
>>> I am using JAVA 8 and Here is my
>>>
>>> *cayenne-IV.xml*
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>> <domain project-version="7">
>>> <map name="MastersDataMap"/>
>>>
>>> <node name="MastersDataNode"
>>> factory="org.apache.cayenne.configuration.server.DBCPDataSourceFactory"
>>> parameters="mastersdbcp.properties"
>>>
>>> schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy"
>>> >
>>> <map-ref name="MastersDataMap"/>
>>> </node>
>>> </domain>
>>>
>>> *MasterDataMap.map.xml*
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>> <data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap
>>> http://cayenne.apache.org/schema/7/modelMap.xsd"
>>> project-version="7">
>>> <property name="defaultPackage" value="com.org.ivcargo.platform.dto"/>
>>> <db-entity name="PersonTemp" schema="dbo" catalog="test">
>>> <db-attribute name="address" type="VARCHAR" length="100"/>
>>> <db-attribute name="birthdate" type="DATE" length="10"/>
>>> <db-attribute name="city" type="VARCHAR" length="100"/>
>>> <db-attribute name="companyName" type="VARCHAR" length="100"/>
>>> <db-attribute name="country" type="VARCHAR" length="100"/>
>>> <db-attribute name="countryCode" type="VARCHAR" length="50"/>
>>> <db-attribute name="createdOn" type="DATE" length="10"/>
>>> <db-attribute name="creditCardNo" type="VARCHAR" length="100"/>
>>> <db-attribute name="domain" type="VARCHAR" length="50"/>
>>> <db-attribute name="domainName" type="VARCHAR" length="100"/>
>>> <db-attribute name="email" type="VARCHAR" length="100"/>
>>> <db-attribute name="firstName" type="VARCHAR" length="100"/>
>>> <db-attribute name="gender" type="VARCHAR" length="50"/>
>>> <db-attribute name="ipaddress" type="VARCHAR" length="30"/>
>>> <db-attribute name="jobTitle" type="VARCHAR" length="100"/>
>>> <db-attribute name="language" type="VARCHAR" length="50"/>
>>> <db-attribute name="lastName" type="VARCHAR" length="100"/>
>>> <db-attribute name="macAddress" type="VARCHAR" length="100"/>
>>> <db-attribute name="markForDelete" type="BIT" length="1"/>
>>> <db-attribute name="moblie" type="VARCHAR" length="50"/>
>>> <db-attribute name="modifiedOn" type="DATE" length="10"/>
>>> <db-attribute name="password" type="VARCHAR" length="50"/>
>>> <db-attribute name="personId" type="NUMERIC" isPrimaryKey="true"
>>> isGenerated="true" isMandatory="true" length="10"/>
>>> <db-attribute name="socialSecurityNumber" type="VARCHAR" length="100"/>
>>> <db-attribute name="state" type="VARCHAR" length="100"/>
>>> <db-attribute name="streetName" type="VARCHAR" length="100"/>
>>> <db-attribute name="streetNumber" type="NUMERIC" length="10"/>
>>> <db-attribute name="title" type="VARCHAR" length="50"/>
>>> <db-attribute name="url" type="VARCHAR" length="2000"/>
>>> <db-attribute name="userName" type="VARCHAR" length="50"/>
>>> <db-attribute name="zipcode" type="NUMERIC" length="10"/>
>>> </db-entity>
>>> <obj-entity name="PersonTemp"
>>> className="com.org.ivcargo.platform.dto.PersonTemp"
>>> dbEntityName="PersonTemp">
>>> <obj-attribute name="address" type="java.lang.String"
>>> db-attribute-path="address"/>
>>> <obj-attribute name="birthdate" type="java.util.Date"
>>> db-attribute-path="birthdate"/>
>>> <obj-attribute name="city" type="java.lang.String"
>>> db-attribute-path="city"/>
>>> <obj-attribute name="companyName" type="java.lang.String"
>>> db-attribute-path="companyName"/>
>>> <obj-attribute name="country" type="java.lang.String"
>>> db-attribute-path="country"/>
>>> <obj-attribute name="countryCode" type="java.lang.String"
>>> db-attribute-path="countryCode"/>
>>> <obj-attribute name="createdOn" type="java.util.Date"
>>> db-attribute-path="createdOn"/>
>>> <obj-attribute name="creditCardNo" type="java.lang.String"
>>> db-attribute-path="creditCardNo"/>
>>> <obj-attribute name="domain" type="java.lang.String"
>>> db-attribute-path="domain"/>
>>> <obj-attribute name="domainName" type="java.lang.String"
>>> db-attribute-path="domainName"/>
>>> <obj-attribute name="email" type="java.lang.String"
>>> db-attribute-path="email"/>
>>> <obj-attribute name="firstName" type="java.lang.String"
>>> db-attribute-path="firstName"/>
>>> <obj-attribute name="gender" type="java.lang.String"
>>> db-attribute-path="gender"/>
>>> <obj-attribute name="ipaddress" type="java.lang.String"
>>> db-attribute-path="ipaddress"/>
>>> <obj-attribute name="jobTitle" type="java.lang.String"
>>> db-attribute-path="jobTitle"/>
>>> <obj-attribute name="language" type="java.lang.String"
>>> db-attribute-path="language"/>
>>> <obj-attribute name="lastName" type="java.lang.String"
>>> db-attribute-path="lastName"/>
>>> <obj-attribute name="macAddress" type="java.lang.String"
>>> db-attribute-path="macAddress"/>
>>> <obj-attribute name="markForDelete" type="java.lang.Boolean"
>>> db-attribute-path="markForDelete"/>
>>> <obj-attribute name="moblie" type="java.lang.String"
>>> db-attribute-path="moblie"/>
>>> <obj-attribute name="modifiedOn" type="java.util.Date"
>>> db-attribute-path="modifiedOn"/>
>>> <obj-attribute name="password" type="java.lang.String"
>>> db-attribute-path="password"/>
>>> <obj-attribute name="personId" type="java.lang.Long" lock="true"
>>> db-attribute-path="personId"/>
>>> <obj-attribute name="socialSecurityNumber" type="java.lang.String"
>>> db-attribute-path="socialSecurityNumber"/>
>>> <obj-attribute name="state" type="java.lang.String"
>>> db-attribute-path="state"/>
>>> <obj-attribute name="streetName" type="java.lang.String"
>>> db-attribute-path="streetName"/>
>>> <obj-attribute name="streetNumber" type="java.lang.Long"
>>> db-attribute-path="streetNumber"/>
>>> <obj-attribute name="title" type="java.lang.String"
>>> db-attribute-path="title"/>
>>> <obj-attribute name="url" type="java.lang.String"
>>> db-attribute-path="url"/>
>>> <obj-attribute name="userName" type="java.lang.String"
>>> db-attribute-path="userName"/>
>>> <obj-attribute name="zipcode" type="java.lang.Long"
>>> db-attribute-path="zipcode"/>
>>> </obj-entity>
>>> </data-map>
>>>
>>>
>>>
>>> On Sat, Oct 3, 2015 at 10:10 AM, Dipesh Jain <dipesh@ivgroup.in> wrote:
>>>
>>>> Nope. I was just doing simple example which was working in Cayenne 4.2.
>>>>
>>>> On Tue, Sep 29, 2015 at 5:21 PM, Dipesh Jain <dipesh@ivgroup.in> wrote:
>>>>
>>>>> I have downloaded CayenneModeler 4.3 repository repository from
>>>>> https://github.com/apache/cayenne and build it with maven because
>>>>> CayenneModeler 4.2 was always showing empty change list when migrating
>>>>> database. So when I generated classes form 4.3 cayenne logger shows this
>>>>> error :-
>>>>>
>>>>> Sep 29, 2015 5:10:58 PM
>>>>> ERROR: Error generating classes
>>>>> org.apache.velocity.exception.ParseErrorException: Encountered "and"
at
>>>>> line 38, column 35.
>>>>> Was expecting one of:
>>>>>     <RPAREN> ...
>>>>>     "-" ...
>>>>>     "+" ...
>>>>>     "*" ...
>>>>>     "/" ...
>>>>>     "%" ...
>>>>>     "&&" ...
>>>>>     "||" ...
>>>>>     "<" ...
>>>>>     "<=" ...
>>>>>     ">" ...
>>>>>     ">=" ...
>>>>>     "==" ...
>>>>>     "!=" ...
>>>>>     "=" ...
>>>>>
>>>>> at org.apache.velocity.Template.process(Template.java:181)
>>>>> at
>>>>> org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:466)
>>>>> at
>>>>> org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:384)
>>>>> at
>>>>> org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:814)
>>>>> at
>>>>> org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:796)
>>>>> at
>>>>> org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:512)
>>>>> at
>>>>> org.apache.cayenne.gen.ClassGenerationAction.getTemplate(ClassGenerationAction.java:272)
>>>>> at
>>>>> org.apache.cayenne.gen.ClassGenerationAction.execute(ClassGenerationAction.java:238)
>>>>> at
>>>>> org.apache.cayenne.gen.ClassGenerationAction.execute(ClassGenerationAction.java:211)
>>>>> at
>>>>> org.apache.cayenne.modeler.dialog.codegen.CodeGeneratorController.generateAction(CodeGeneratorController.java:146)
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>>> at java.lang.reflect.Method.invoke(Unknown Source)
>>>>> at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:491)
>>>>> at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:785)
>>>>> at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:61)
>>>>> at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:819)
>>>>> at ognl.ASTMethod.getValueBody(ASTMethod.java:75)
>>>>> at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
>>>>> at ognl.SimpleNode.getValue(SimpleNode.java:210)
>>>>> at ognl.Ognl.getValue(Ognl.java:333)
>>>>> at ognl.Ognl.getValue(Ognl.java:413)
>>>>> at ognl.Ognl.getValue(Ognl.java:395)
>>>>> at org.apache.cayenne.swing.BindingBase.getValue(BindingBase.java:168)
>>>>> at
>>>>> org.apache.cayenne.swing.ActionBinding.fireAction(ActionBinding.java:80)
>>>>> at
>>>>> org.apache.cayenne.swing.ActionBinding$1.actionPerformed(ActionBinding.java:42)
>>>>> at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
>>>>> at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
>>>>> at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
>>>>> at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
>>>>> at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown
>>>>> Source)
>>>>> at java.awt.Component.processMouseEvent(Unknown Source)
>>>>> at javax.swing.JComponent.processMouseEvent(Unknown Source)
>>>>> at java.awt.Component.processEvent(Unknown Source)
>>>>> at java.awt.Container.processEvent(Unknown Source)
>>>>> at java.awt.Component.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Container.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Component.dispatchEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
>>>>> at java.awt.Container.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Window.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Component.dispatchEvent(Unknown Source)
>>>>> at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.EventQueue.access$500(Unknown Source)
>>>>> at java.awt.EventQueue$3.run(Unknown Source)
>>>>> at java.awt.EventQueue$3.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>> Source)
>>>>> at
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>> Source)
>>>>> at java.awt.EventQueue$4.run(Unknown Source)
>>>>> at java.awt.EventQueue$4.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>> Source)
>>>>> at java.awt.EventQueue.dispatchEvent(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>>>>> at java.awt.WaitDispatchSupport$2.run(Unknown Source)
>>>>> at java.awt.WaitDispatchSupport$4.run(Unknown Source)
>>>>> at java.awt.WaitDispatchSupport$4.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at java.awt.WaitDispatchSupport.enter(Unknown Source)
>>>>> at java.awt.Dialog.show(Unknown Source)
>>>>> at java.awt.Component.show(Unknown Source)
>>>>> at java.awt.Component.setVisible(Unknown Source)
>>>>> at java.awt.Window.setVisible(Unknown Source)
>>>>> at java.awt.Dialog.setVisible(Unknown Source)
>>>>> at
>>>>> org.apache.cayenne.modeler.dialog.codegen.CodeGeneratorController.startup(CodeGeneratorController.java:74)
>>>>> at
>>>>> org.apache.cayenne.modeler.action.GenerateCodeAction.performAction(GenerateCodeAction.java:55)
>>>>> at
>>>>> org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:162)
>>>>> at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
>>>>> at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
>>>>> at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
>>>>> at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
>>>>> at javax.swing.AbstractButton.doClick(Unknown Source)
>>>>> at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
>>>>> at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown
>>>>> Source)
>>>>> at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
>>>>> at java.awt.Component.processMouseEvent(Unknown Source)
>>>>> at javax.swing.JComponent.processMouseEvent(Unknown Source)
>>>>> at java.awt.Component.processEvent(Unknown Source)
>>>>> at java.awt.Container.processEvent(Unknown Source)
>>>>> at java.awt.Component.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Container.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Component.dispatchEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
>>>>> at java.awt.Container.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Window.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Component.dispatchEvent(Unknown Source)
>>>>> at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.EventQueue.access$500(Unknown Source)
>>>>> at java.awt.EventQueue$3.run(Unknown Source)
>>>>> at java.awt.EventQueue$3.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>> Source)
>>>>> at
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>> Source)
>>>>> at java.awt.EventQueue$4.run(Unknown Source)
>>>>> at java.awt.EventQueue$4.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>> Source)
>>>>> at java.awt.EventQueue.dispatchEvent(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>>>>> at java.awt.EventDispatchThread.run(Unknown Source)
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Thanks and Regards
>>>>> Deepesh Jain
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Thanks and Regards
>>>> Deepesh Jain
>>>>
>>>
>>>
>>>
>>> --
>>> Thanks and Regards
>>> Deepesh Jain
>>>
>>
>>
>>
>> --
>> Thanks and Regards
>> Deepesh Jain
>>
>
>
>
> --
> Thanks and Regards
> Deepesh Jain

Mime
View raw message