{"id":52,"date":"2012-10-24T03:04:31","date_gmt":"2012-10-24T01:04:31","guid":{"rendered":"http:\/\/mdatools.net\/blog\/?page_id=52"},"modified":"2016-06-17T06:45:20","modified_gmt":"2016-06-17T03:45:20","slug":"modelant","status":"publish","type":"page","link":"https:\/\/mdatools.net\/blog\/modelant\/","title":{"rendered":"ModelAnt"},"content":{"rendered":"<p title=\"Model Ant\"><a href=\"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-91 size-full\" title=\"logo4\" src=\"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png\" width=\"202\" height=\"135\" \/><\/a>ModelAnt as an extension of <a href=\"http:\/\/ant.apache.org\/\">Apache ANT<\/a> to create, load, update and query models and meta-models, through industry standard technologies and Java APIs as:<\/p>\n<div>\n<ul>\n<li>a JMI 1.0, MOF 1.4 compliant model and meta-model repository (a feature provided by NetBeans <a href=\"http:\/\/www.ohloh.net\/p\/8317\">MetaData Repository (MDR)<\/a>)<\/li>\n<li>an extension of ANT scripting language to create, modify, query, query, print and process MOF 1.4 meta-models and resulting models with import from XMI 1.1 \/ 1.2 and export in XMI 1.2 format<\/li>\n<li>a template engine to generate text artifacts (including code) out of models and meta-models, using object-oriented JSP-like templates. ModelAnt provides completely extensible examples of\n<ul>\n<li>generating java code\u00a0 (POJO) from a domain model in UML 1.3<\/li>\n<li>generating SQL statements to create an [Oracle] database schema from a domain model in UML 1.3 where an ORM tool could store corresponding java (POJO) objects (see above)<\/li>\n<\/ul>\n<\/li>\n<li>a system of classes that are wrappers around the model-specific JMI API forming a middle tier between the model and the templates, providing practical and non-trivial methods for model query and processing used in the artifacts generation<\/li>\n<li>a platform that provides core reverse engineering features as:\n<ul>\n<li>reverse engineering ANT scripts and libraries<\/li>\n<li>reverse engineering XSD<\/li>\n<li>reverse engineering Java sources to reveal their packages, classes, attributes and methods<\/li>\n<li>reverse engineering databases through standard JDBC API, revealing their tables, columns, primary keys, foreign keys and relationships<\/li>\n<li>further conditional model processing and transformation<\/li>\n<\/ul>\n<\/li>\n<li>a meta-model-agnostic models comparison<\/li>\n<li>a meta-model-specific comparison of models treated as:\n<ul>\n<li>database structures<\/li>\n<li>UML 1.3 models<\/li>\n<\/ul>\n<\/li>\n<li>a meta-model-agnostic transformation\/copy of models between different meta-models<\/li>\n<li>a complete transformation of UML 1.3 models to UML 1.4 models<\/li>\n<li>an ANT script documentation macro ant.doc (i.e. reverse engineering + text generation) quite similar to the Java standard javaDoc tool<\/li>\n<li>an open platform for building more ModelAnt scripts and components to solve more practical problems.<\/li>\n<\/ul>\n<\/div>\n<p>The documentation of ModelAnt by itself is a demonstration of the <strong>ant.doc<\/strong> ANT\u00a0 macro involving the features of ModelAnt for:<\/p>\n<ul>\n<li>reverse engineering ANT scripts and antlib.xml definitions revealing the tasks, macros, types and targets in them together with the XML comments, descriptions and javaDoc documentation of the implementation tasks<\/li>\n<li>reverse engineering Java source files revealing their attributes and methods together with their javaDoc documentation<\/li>\n<li>template-based artifacts generation using a simple and effective object-oriented approach<\/li>\n<li>model creation, query, walk-through and\u00a0 import\/export using ModelAnt scripts<\/li>\n<li>general and UML 1.3 models comparison and detection of added, deleted and changed model elements<\/li>\n<\/ul>\n<p>ModelAnt distributions are published in the <a title=\"modelant 2.17\" href=\"\/product\" target=\"_blank\">distributions repository<\/a>.<\/p>\n<p>See also the <a title=\"Documentation\" href=\"http:\/\/mdatools.net\/blog\/documentation\/\">ModelAnt documentation<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ModelAnt as an extension of Apache ANT to create, load, update and query models and meta-models, through industry standard technologies and Java APIs as: a JMI 1.0, MOF 1.4 compliant &#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":35,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-52","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MDA Tools ModelAnt<\/title>\n<meta name=\"description\" content=\"ModelAnt is an extension of Apache ANT to create, update, query and compare models and metamodels in OMG MOF 1.4, XMI 1.1\/1.2, UML 1.3 standards and JMI 1.0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mdatools.net\/blog\/modelant\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MDA Tools ModelAnt\" \/>\n<meta property=\"og:description\" content=\"ModelAnt is an extension of Apache ANT to create, update, query and compare models and metamodels in OMG MOF 1.4, XMI 1.1\/1.2, UML 1.3 standards and JMI 1.0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mdatools.net\/blog\/modelant\/\" \/>\n<meta property=\"og:site_name\" content=\"MDA Tools\" \/>\n<meta property=\"article:modified_time\" content=\"2016-06-17T03:45:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mdatools.net\/blog\/modelant\/\",\"url\":\"https:\/\/mdatools.net\/blog\/modelant\/\",\"name\":\"MDA Tools ModelAnt\",\"isPartOf\":{\"@id\":\"https:\/\/mdatools.net\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/mdatools.net\/blog\/modelant\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/mdatools.net\/blog\/modelant\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png\",\"datePublished\":\"2012-10-24T01:04:31+00:00\",\"dateModified\":\"2016-06-17T03:45:20+00:00\",\"description\":\"ModelAnt is an extension of Apache ANT to create, update, query and compare models and metamodels in OMG MOF 1.4, XMI 1.1\/1.2, UML 1.3 standards and JMI 1.0\",\"breadcrumb\":{\"@id\":\"https:\/\/mdatools.net\/blog\/modelant\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mdatools.net\/blog\/modelant\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/mdatools.net\/blog\/modelant\/#primaryimage\",\"url\":\"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png\",\"contentUrl\":\"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png\",\"width\":202,\"height\":135},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mdatools.net\/blog\/modelant\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mdatools.net\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ModelAnt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mdatools.net\/blog\/#website\",\"url\":\"https:\/\/mdatools.net\/blog\/\",\"name\":\"MDA Tools\",\"description\":\"Tools and ideas for model-driven software development\",\"publisher\":{\"@id\":\"https:\/\/mdatools.net\/blog\/#\/schema\/person\/6eeb8dce737e32b72e77b5556e2be121\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mdatools.net\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/mdatools.net\/blog\/#\/schema\/person\/6eeb8dce737e32b72e77b5556e2be121\",\"name\":\"popovr\",\"logo\":{\"@id\":\"https:\/\/mdatools.net\/blog\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MDA Tools ModelAnt","description":"ModelAnt is an extension of Apache ANT to create, update, query and compare models and metamodels in OMG MOF 1.4, XMI 1.1\/1.2, UML 1.3 standards and JMI 1.0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mdatools.net\/blog\/modelant\/","og_locale":"en_US","og_type":"article","og_title":"MDA Tools ModelAnt","og_description":"ModelAnt is an extension of Apache ANT to create, update, query and compare models and metamodels in OMG MOF 1.4, XMI 1.1\/1.2, UML 1.3 standards and JMI 1.0","og_url":"https:\/\/mdatools.net\/blog\/modelant\/","og_site_name":"MDA Tools","article_modified_time":"2016-06-17T03:45:20+00:00","og_image":[{"url":"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png","type":"","width":"","height":""}],"twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mdatools.net\/blog\/modelant\/","url":"https:\/\/mdatools.net\/blog\/modelant\/","name":"MDA Tools ModelAnt","isPartOf":{"@id":"https:\/\/mdatools.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mdatools.net\/blog\/modelant\/#primaryimage"},"image":{"@id":"https:\/\/mdatools.net\/blog\/modelant\/#primaryimage"},"thumbnailUrl":"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png","datePublished":"2012-10-24T01:04:31+00:00","dateModified":"2016-06-17T03:45:20+00:00","description":"ModelAnt is an extension of Apache ANT to create, update, query and compare models and metamodels in OMG MOF 1.4, XMI 1.1\/1.2, UML 1.3 standards and JMI 1.0","breadcrumb":{"@id":"https:\/\/mdatools.net\/blog\/modelant\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mdatools.net\/blog\/modelant\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mdatools.net\/blog\/modelant\/#primaryimage","url":"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png","contentUrl":"https:\/\/mdatools.net\/blog\/wp-content\/uploads\/2012\/10\/logo4-e1399385230456.png","width":202,"height":135},{"@type":"BreadcrumbList","@id":"https:\/\/mdatools.net\/blog\/modelant\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mdatools.net\/blog\/"},{"@type":"ListItem","position":2,"name":"ModelAnt"}]},{"@type":"WebSite","@id":"https:\/\/mdatools.net\/blog\/#website","url":"https:\/\/mdatools.net\/blog\/","name":"MDA Tools","description":"Tools and ideas for model-driven software development","publisher":{"@id":"https:\/\/mdatools.net\/blog\/#\/schema\/person\/6eeb8dce737e32b72e77b5556e2be121"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mdatools.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/mdatools.net\/blog\/#\/schema\/person\/6eeb8dce737e32b72e77b5556e2be121","name":"popovr","logo":{"@id":"https:\/\/mdatools.net\/blog\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/mdatools.net\/blog\/wp-json\/wp\/v2\/pages\/52","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mdatools.net\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mdatools.net\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mdatools.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mdatools.net\/blog\/wp-json\/wp\/v2\/comments?post=52"}],"version-history":[{"count":45,"href":"https:\/\/mdatools.net\/blog\/wp-json\/wp\/v2\/pages\/52\/revisions"}],"predecessor-version":[{"id":1338,"href":"https:\/\/mdatools.net\/blog\/wp-json\/wp\/v2\/pages\/52\/revisions\/1338"}],"wp:attachment":[{"href":"https:\/\/mdatools.net\/blog\/wp-json\/wp\/v2\/media?parent=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}