{"id":715,"date":"2016-02-10T23:51:43","date_gmt":"2016-02-10T23:51:43","guid":{"rendered":"http:\/\/www.pnambic.com\/home\/?p=715"},"modified":"2016-02-10T23:52:01","modified_gmt":"2016-02-10T23:52:01","slug":"depan-now-imports-graphml-files","status":"publish","type":"post","link":"http:\/\/www.pnambic.com\/home\/2016\/02\/10\/depan-now-imports-graphml-files\/","title":{"rendered":"DepAn now imports GraphML files"},"content":{"rendered":"<h1>DepAn Support For GraphML files<\/h1>\n<p>Recent git pushes\u00a0add\u00a0a new GraphML (<a href=\"https:\/\/github.com\/google\/depan\/tree\/master\/DepanGraphML\/prod\" target=\"_blank\">DepanGraphML<\/a>) plugin to the base <a href=\"https:\/\/github.com\/google\/depan\" target=\"_blank\">DepAn<\/a> product. The new plugin adds the ability to import <a href=\"http:\/\/graphml.graphdrawing.org\/\" target=\"_blank\">GraphML <\/a>content into <a href=\"http:\/\/google.github.io\/depan\/\" target=\"_blank\">DepAn<\/a>. Interested users should be able to access these capabilities in any recent build of DepAn.<\/p>\n<p>This simple GraphML support only handles GraphML files generated by the Maven <tt>dependency:tree<\/tt> mojo. This simple support is readily extended to other GraphML content with different data types, graph elements, and relations.<\/p>\n<h2>Analyzing GraphML Files<\/h2>\n<p>The GraphML plugin add a New Wizard that handles importing a GraphML file. From New Wizard dialog, select the &#8220;New GraphML Analysis&#8221; wizard. On the New GraphML Analysis page, enter the name of the GraphML file to process. Although there is a option for Processing, the only valid selection here is &#8220;Maven&#8221;.<a href=\"https:\/\/i0.wp.com\/www.pnambic.com\/home\/wp-content\/uploads\/2016\/02\/GraphML-Wizard.png\" rel=\"attachment wp-att-717\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-717\" src=\"https:\/\/i0.wp.com\/www.pnambic.com\/home\/wp-content\/uploads\/2016\/02\/GraphML-Wizard.png?resize=300%2C212\" alt=\"GraphML Wizard\" width=\"300\" height=\"212\" srcset=\"https:\/\/i0.wp.com\/www.pnambic.com\/home\/wp-content\/uploads\/2016\/02\/GraphML-Wizard.png?resize=300%2C212 300w, https:\/\/i0.wp.com\/www.pnambic.com\/home\/wp-content\/uploads\/2016\/02\/GraphML-Wizard.png?w=688 688w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Through the use of the Maven Processing option, the selected GraphML file is converted into a DepAn Graph Information file (*.dgi). The graph uses the same elements and relations provided by the Maven (<a href=\"http:\/\/www.pnambic.com\/home\/2016\/01\/29\/depan-now-supports-maven-dependency-visualization\/\" target=\"_blank\">DepanMaven<\/a>) plugin.<\/p>\n<h2 style=\"clear: both;\">Gathering Maven Dependencies<\/h2>\n<p>The Maven mojo <tt>dependency:tree<\/tt>\u00a0outputs a GraphML representation of Maven&#8217;s internal dependency model. Normal use for DepAn importing is:<\/p>\n<p style=\"padding-left: 30px;\"><tt>mvn dependency:tree -DoutputType=graphml -DoutputFile=<\/tt><em>tree.graphml<\/em><\/p>\n<p>If you don&#8217;t specify the <em>outputFile<\/em> (e.g. <tt>tree.graphml<\/tt>), the GraphML output is written to the Maven console output. The dependency data is not accessible in\u00a0that format.<\/p>\n<p>Assuming you use an aggregate master project, an <em>outputFile<\/em> is created in every project directory. In order to get a complete mapping, you will need to import each <em>outputFile<\/em> and merge the dependency graphs into a composite.<\/p>\n<p>The dependency data collected from the GraphML output is surprisingly different from the dependency analysis from the Maven plugin. \u00a0For Tycho projects, many of the target platform dependencies are resolved as system-scope dependencies. \u00a0The Maven plugin captures property dependencies, and this information is not available in the GraphML output. Resolution of these inconsistencies remains an open problem.<\/p>\n<h2>Potential Improvements<\/h2>\n<p>Today&#8217;s implementation is just the basics. A rich GraphML importer would allow other plugins to contribute processing choices. Many GraphML inputs could be handled by user defined tables. As the capabilities get richer, the underlying XML API should be namespace aware.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DepAn Support For GraphML files Recent git pushes\u00a0add\u00a0a new GraphML (DepanGraphML) plugin to the base DepAn product. The new plugin adds the ability to import GraphML content into DepAn. Interested users should be able to access these capabilities in any recent build of DepAn. This simple GraphML support only handles GraphML files generated by the<a class=\"moretag\" href=\"http:\/\/www.pnambic.com\/home\/2016\/02\/10\/depan-now-imports-graphml-files\/\"> [&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":677,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[31],"tags":[],"class_list":["post-715","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.pnambic.com\/home\/wp-content\/uploads\/2015\/12\/depan-icon-60x60.png?fit=60%2C60","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6YqIw-bx","_links":{"self":[{"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/posts\/715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/comments?post=715"}],"version-history":[{"count":3,"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/posts\/715\/revisions"}],"predecessor-version":[{"id":719,"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/posts\/715\/revisions\/719"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/media\/677"}],"wp:attachment":[{"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/media?parent=715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/categories?post=715"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.pnambic.com\/home\/wp-json\/wp\/v2\/tags?post=715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}