Changes for page EOGenerator
Last modified by David Avendasora on 2011/08/25 00:02
From version 79.1
edited by David Avendasora
on 2011/08/25 00:02
on 2011/08/25 00:02
Change comment:
Migrated to Confluence 4.0
To version 76.1
edited by David Avendasora
on 2011/08/25 00:02
on 2011/08/25 00:02
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,39 +1,42 @@ 1 -The WOLips EOGenerator is an integral part of WOLips and shares its codebase with Entity Modeler. It uses release 1.5 of the [[Velocity Templating Engine>> url:http://velocity.apache.org||shape="rect"]] and template files that use the [[Velocity Template Language>>url:http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html||shape="rect"]]. This templating language is similar to the original Rubicode EOGenerator that many developers used with WebObjects 5.3 and earlier so migrating old templates to the new language is time consuming, but not difficult.1 +The WOLips EOGenerator is an integral part of WOLips and shares its codebase with Entity Modeler. It uses release 1.5 of the [[Velocity Templating Engine>>http://velocity.apache.org]] and template files that use the [[Velocity Template Language>>http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html]]. This templating language is similar to the original Rubicode EOGenerator that many developers used with WebObjects 5.3 and earlier so migrating old templates to the new language is time consuming, but not difficult. 2 2 3 3 === Default Setup === 4 4 5 -If you don't specify a custom template name in your .eogen file, then the WOLips EOGenerator will simply use the built-in ones. This is the way all developers should start out. You can always grab those templates and modify them, or use some of the many modifications shared by other WebObjects developers on the [[ doc:EOGenerator Templates and Additions]] page.5 +If you don't specify a custom template name in your .eogen file, then the WOLips EOGenerator will simply use the built-in ones. This is the way all developers should start out. You can always grab those templates and modify them, or use some of the many modifications shared by other WebObjects developers on the [[WOL:EOGenerator Templates and Additions]] page. 6 6 7 7 === Customizing === 8 8 9 9 There are two ways: create eclipse-wide settings, or create settings per project. 10 10 11 -Note: There is actually no need to download Mike's templates as described below unless you want to customize them. WOLips includes two sets of default templates in the .jar files (so don't bother searching your file system for them) - one as described below and another for use with WOnder. If you are using WOnder, you need to follow Mike's instructions for their use: "Where it says "Entity.java" and " _Entity.java" you can use WonderEntity.java and_WonderEntity.java ... If your individual .eogen files override that, you will have to set it in there also". If you leave the "EOGenerator Template Folder" field empty, it will use the default templates...11 +Note: There is actually no need to download Mike's templates as described below unless you want to customize them. WOLips includes two sets of default templates in the .jar files (so don't bother searching your file system for them) - one as described below and another for use with WOnder. If you are using WOnder, you need to follow Mike's instructions for their use: "Where it says "Entity.java" and "//Entity.java" you can use WonderEntity.java and WonderEntity.java ... If your individual .eogen files override that, you will have to set it in there also". If you leave the "EOGenerator Template Folder" field empty, it will use the default templates...// 12 12 13 13 ==== eclipse-wide settings for EOGeneration ==== 14 14 15 -~1. Download the templates that Mike Schrag made from [[https: ~~/~~/github.com/wolips/wolips/tree/master/wolips/core/plugins/org.objectstyle.wolips.eogenerator.core/templates>>url:https://github.com/wolips/wolips/tree/master/wolips/core/plugins/org.objectstyle.wolips.eogenerator.core/templates||shape="rect"]]15 +~1. Download the templates that Mike Schrag made from [[https://github.com/wolips/wolips/tree/master/wolips/core/plugins/org.objectstyle.wolips.eogenerator.core/templates]] 16 16 17 17 and place them in a folder. In my case that was in 18 18 19 19 /Applications/Developing/VelocityEOGeneratorTemplates 20 20 21 -Inside this folder you will have two standard templates: _Entity.java en Entity.java. Do not change them for the moment.21 +Inside this folder you will have two standard templates: Entity.java en Entity.java. Do not change them for the moment. 22 22 23 -(Additional templates and a reference are available [[here>> doc:EOGenerator Templates and Additions]])23 +(Additional templates and a reference are available [[here>>EOGenerator Templates and Additions]]) 24 24 25 -2. Go to Preferences > WOLips > EOGenerator 25 +2. Go to Preferences > WOLips > EOGenerator 26 26 27 27 In EOGenerator Template Folder, fill in the folder you have placed the templates 28 - _Entity.java29 - 28 +In EOGenerator Java Template fill in Entity.java 29 +In EOGenerator Subclass Java Template fill in Entity.java 30 30 31 31 This is how it looks in my settings: 32 32 33 33 {{panel bgColor="#d8e4f1"}} 34 34 35 -[[image:attach:VEOGeneratorSettingsEclipse.png]] 36 -\\\\\\ 35 +\\ !VEOGeneratorSettingsEclipse.png|align=center!\\ 36 +\\ 37 +\\ 38 +\\ 39 + 37 37 {{/panel}} 38 38 39 39 3. Go to the eomodel from which you want to create classes and subclasses in the WOPackage sidebar of Eclipse ... ... @@ -42,18 +42,24 @@ 42 42 43 43 {{panel bgColor="#d8e4f1"}} 44 44 45 -[[image:attach:CreateEOGenContextualMenu.png]] 46 -\\\\\\ 48 +\\ !CreateEOGenContextualMenu.png|align=center!\\ 49 +\\ 50 +\\ 51 +\\ 52 + 47 47 {{/panel}} 48 48 49 49 Now a eogen file is created which has the name of the EOModel and an .eogen extension. 50 - 51 - 56 +If there is already an eogen file, then another one will be created, with a number between the EOModel name and the extension. 57 +The one with the highest number will be the newest (unless you decided to throw earlier ones away, then the numbering starts all over again). 52 52 53 53 {{panel bgColor="#d8e4f1"}} 54 54 55 -[[image:attach:MoreEogenfiles.png]] 56 -\\\\\\ 61 +\\ !MoreEogenfiles.png|align=center!\\ 62 +\\ 63 +\\ 64 +\\ 65 + 57 57 {{/panel}} 58 58 59 59 5. Go to the eogen file, right click and choose EOGenerate... from the contextual menu. ... ... @@ -60,13 +60,16 @@ 60 60 61 61 {{panel bgColor="#d8e4f1"}} 62 62 63 -[[image:attach:EOGenerateContextualMenu.png]] 64 -\\\\\\ 72 +\\ !EOGenerateContextualMenu.png|align=center!\\ 73 +\\ 74 +\\ 75 +\\ 76 + 65 65 {{/panel}} 66 66 67 67 If you have some definitions in your EOModel that have a Class Name that is not an EOGenericRecord, then the appropriate java class and subclass will be generated. 68 68 69 -For instance: a Person class name in EOModel will result in a _Person.java file (which will be overwritten the next time EOGeneration will take place) and a Person.java file. The java file without the underscore is the file that will not be overwritten the next time. This file is the file that you would add your own methods. The next time the model changes, the_underscore.java file will be overwritten, but your methods are safe.81 +For instance: a Person class name in EOModel will result in a Person.java file (which will be overwritten the next time EOGeneration will take place) and a Person.java file. The java file without the underscore is the file that will not be overwritten the next time. This file is the file that you would add your own methods. The next time the model changes, the underscore.java file will be overwritten, but your methods are safe. 70 70 71 71 6. Check if everything worked out fine. If not (e.g. you made a typing error and a java file happens to be empty) throw away the generated file yo do not want, and restart the process. 72 72 ... ... @@ -75,35 +75,44 @@ 75 75 ==== making Velocity EOGenerator settings per project ==== 76 76 77 77 ~1. Under Preferences > WOLips > EOGenerator 78 - -> Remove all entries (this is not strictly necessary, but it rules out any errors at the project level)90 +~> Remove all entries (this is not strictly necessary, but it rules out any errors at the project level) 79 79 80 80 {{panel bgColor="#d8e4f1"}} 81 81 82 -[[image:attach:1. EOGenerator Project.png]] 83 -\\\\\\ 94 +\\ !1. EOGenerator Project.png|align=center!\\ 95 +\\ 96 +\\ 97 +\\ 98 + 84 84 {{/panel}} 85 85 86 86 2. Add a folder named templates in your project folder, inside of which you place your template files. 87 - 88 - ~~/~~/webobjects.mdimension.com/wolips/EOGenerator/Velocity%20EOGenerator%20Templates/>>url:http://webobjects.mdimension.com/wolips/EOGenerator/Velocity%20EOGenerator%20Templates/||shape="rect"]]102 +For starters, don't rename them. You can download them here: 103 +[[http://webobjects.mdimension.com/wolips/EOGenerator/Velocity%20EOGenerator%20Templates/]] 89 89 90 90 {{panel bgColor="#d8e4f1"}} 91 91 92 -[[image:attach:2. Directory Structure.png]] 93 -\\\\\\ 107 +\\ !2. Directory Structure.png|align=center!\\ 108 +\\ 109 +\\ 110 +\\ 111 + 94 94 {{/panel}} 95 95 96 96 Other options for Veogen to pick up any changes you wish to make to the templates: 97 97 98 -* inside your eogen file you need to set template path to the folder containing _Entity.java, and if it's named something other than_Entity.java, you need to also set template name. Note that template name is ONLY a name, not a full path.99 -* or locate the template files in one of the paths that Velocity EOGenerator looks in by default ( ~~/Library/Application Support/WOLips/EOGenerator/_Entity.java, for example).116 +* inside your eogen file you need to set template path to the folder containing Entity.java, and if it's named something other than Entity.java, you need to also set template name. Note that template name is ONLY a name, not a full path. 117 +* or locate the template files in one of the paths that Velocity EOGenerator looks in by default (,,/Library/Application Support/WOLips/EOGenerator///Entity.java, for example).//,, 100 100 101 -3. Double check your model. It used to be true that none of your entities could extend EOGenericRecord. That is no longer true and you can use either custom classes or EOGenericRecord as a class, or a mix of the two. We suggest that your entity classes should be in packages for this all to work optimally, such as "your _com.projectname.eo_class". If you use a class that is not in a package, there may be a number of errors in the resulting Java class files.119 +3. Double check your model. It used to be true that none of your entities could extend EOGenericRecord. That is no longer true and you can use either custom classes or EOGenericRecord as a class, or a mix of the two. We suggest that your entity classes should be in packages for this all to work optimally, such as "your//com.projectname.eo//class". If you use a class that is not in a package, there may be a number of errors in the resulting Java class files. 102 102 103 103 {{panel bgColor="#d8e4f1"}} 104 104 105 -[[image:attach:3. Entities Snapshot.png]] 106 -\\\\\\ 123 +\\ !3. Entities Snapshot.png|align=center!\\ 124 +\\ 125 +\\ 126 +\\ 127 + 107 107 {{/panel}} 108 108 109 109 4. Create or edit your .eogen file, mine looks like this: ... ... @@ -110,17 +110,18 @@ 110 110 111 111 {{panel bgColor="#d8e4f1"}} 112 112 113 -[[image:attach:4. Config Overview.png]] 114 -\\\\\\ 134 +\\ !4. Config Overview.png|align=center!\\ 135 +\\ 136 +\\ 137 +\\ 138 + 115 115 {{/panel}} 116 116 117 117 5. Double check, and open the .eogen file using open with > text editor. The whole command must all be on a single line; this is formatted for clarity: 118 118 119 119 {{panel bgColor="#d8e4f1"}} 120 - 121 121 122 -{{code}} 123 - 145 +{code} 124 124 1. -destination Sources 125 125 -java 126 126 -javaTemplate _Entity.java ... ... @@ -130,22 +130,28 @@ 130 130 -subclassJavaTemplate Entity.java 131 131 -templatedir templates 132 132 -verbose 155 +{code} 133 133 134 -{{/code}} 135 135 {{/panel}} 136 136 137 -6. If you are not seeing your entity files that start with the underscore character " _" in Eclipse, it is because you have them filtered out. Select filters from the down triangle in the package explorer:159 +6. If you are not seeing your entity files that start with the underscore character "//" in Eclipse, it is because you have them filtered out. Select filters from the down triangle in the package explorer~:// 138 138 139 139 {{panel bgColor="#d8e4f1"}} 140 140 141 -[[image:attach:select.png]] 142 -\\\\\\ 163 +\\ !select.png|align=center!\\ 164 +\\ 165 +\\ 166 +\\ 167 + 143 143 {{/panel}} 144 144 145 -7. Then uncheck 'EOGenerator _Files':170 +7. Then uncheck 'EOGenerator Files': 146 146 147 147 {{panel bgColor="#d8e4f1"}} 148 148 149 -[[image:attach:filters.png]] 150 -\\\\\\ 174 +\\ !filters.png|align=center!\\ 175 +\\ 176 +\\ 177 +\\ 178 + 151 151 {{/panel}}