diff --git a/project-info/Approved IP Log Modeling MDT UML2 Juno Release.html b/project-info/Approved IP Log Modeling MDT UML2 Juno Release.html
new file mode 100644
index 0000000..1899d33
--- /dev/null
+++ b/project-info/Approved IP Log Modeling MDT UML2 Juno Release.html
@@ -0,0 +1,304 @@
+
+
+<form method="POST">
+
+<div id="maincontent">
+<div id="midcolumn">
+<h1>IP Log for modeling.mdt.uml2</h1>
+
+<h2>Licenses</h2>
+	<ul>
+			<li>Eclipse Public License v1.0</li>
+		</ul>
+
+<h2>Third-Party Code</h2>
+
+<h3>Pre-Req Dependencies</h3><table border="1" cellpadding="3" cellspacing="0" width="100%"><tr><th bordercolor="#7A79A7" bgcolor="#7A79A7">CQ</th><th bordercolor="#7A79A7" bgcolor="#7A79A7">Third-Party Code</th><th bordercolor="#7A79A7" bgcolor="#7A79A7">License</th><th bordercolor="#7A79A7" bgcolor="#7A79A7">Use</th></tr><tr><td align="right" width="5%"><a href="https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5308">5308</a></td><td width="55%">OMG UML 2.4 Beta 2 XML Files (Subset)</td><td width="20%">Object Management Group License</td><td width="20%">unmodified source </td></tr><tr><td align="right" width="5%"><a href="https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5541">5541</a></td><td width="55%">OMG MOF 2.4 Beta 2 XML Files (Subset)</td><td width="20%">Object Management Group License</td><td width="20%"></td></tr><tr><td align="right" width="5%"><a href="https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5795">5795</a></td><td width="55%">OMG MOF 2.4.1 XML Files (Subset)
+ </td><td width="20%">Object Management Group License</td><td width="20%">unmodified source&nbsp;&amp;&nbsp;binary</td></tr><tr><td align="right" width="5%"><a href="https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5796">5796</a></td><td width="55%">OMG UML 2.4.1 XML Files (Subset)</td><td width="20%">Object Management Group License</td><td width="20%">unmodified source&nbsp;&amp;&nbsp;binary</td></tr></table><h3>Exempt Pre-Req and Works With Dependencies</h3><p><em>No Exempt Pre-Req or Works With dependencies</em></p><h2>Committers</h2>
+
+
+<table border="1" cellpadding="3" cellspacing="0">
+<tr><th colspan="3" bordercolor="#7A79A7" bgcolor="#7A79A7">Past and Present Active</th></tr>
+<tr><th bordercolor="#7A79A7" bgcolor="#7A79A7">Name</th>
+<th bordercolor="#7A79A7" bgcolor="#7A79A7">Organization</th>
+<th bordercolor="#7A79A7" bgcolor="#7A79A7">&nbsp;</th>
+</tr>
+<tr>
+	<td>James Bruck</td>
+	<td>Research In Motion </td>
+		<td></td>
+		</tr>
+	<tr>
+	<td>Kenn Hussey</td>
+	<td> </td>
+		<td></td>
+		</tr>
+	</table>
+<p>
+<h2>Contributors and Their Contributions</h2>
+<table border="1" cellpadding="3" cellspacing="0">
+<tr>
+<th bordercolor="#7A79A7" bgcolor="#7A79A7">Ref</th>
+<th bordercolor="#7A79A7" bgcolor="#7A79A7">Size</th>
+<th bordercolor="#7A79A7" bgcolor="#7A79A7">Description</th>
+</tr>
+<tr><td colspan="3" style="background-color: #DDDDDD">Christian&nbsp;W.&nbsp;Damus (gmail.com)</td>
+		</tr>
+	<tr>
+		<td><a href="http://git.eclipse.org/c/uml2/org.eclipse.uml2.git/commit?id=03fb56e21ee537f8fa55cb08be0a7d6b69ec4dad">03fb56</a></td>
+		<td>12 lines</td>
+		<td>Fix DelegatingConstraintProvider localized string keys</td>
+				</tr>
+	<tr>
+		<td><a href="http://git.eclipse.org/c/uml2/org.eclipse.uml2.git/commit?id=3ea4c101ee474c6cac2d07a94a8d9927f480f257">3ea4c1</a></td>
+		<td>73 lines</td>
+		<td>Enable substitution label providers for problem messages in the DelegatingConstraintProvider.</td>
+				</tr>
+	<tr>
+		<td><a href="http://git.eclipse.org/c/uml2/org.eclipse.uml2.git/commit?id=8fac4dcf8c3970f1f1a270d706f8c127b421785f">8fac4d</a></td>
+		<td>992 lines</td>
+		<td>[373643] Adding dynamic provider for UML2 validation constraints.</td>
+				</tr>
+	<tr>
+		<td><a href="http://git.eclipse.org/c/uml2/org.eclipse.uml2.git/commit?id=d23f1efe8a606c668ba8979b5894c647cb27d6e3">d23f1e</a></td>
+		<td>6 lines</td>
+		<td>Initialize constraint enablement from preference store.</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=220558">220558</a></td>
+		<td>1779 bytes</td>
+		<td>Convert to Metamodel action makes too many elements private<br/>Proposed enhancement</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=373643">373643</a></td>
+		<td>37312 bytes</td>
+		<td>Provide a dynamic constraint provider for UML2 constraints<br/>EMF Validation Framework constraint provider for UML2 metamodel constraints</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=374012">374012</a></td>
+		<td>3244 bytes</td>
+		<td>Missing localized string key exception in constraint preferences<br/>Patch to fix the localized string keys</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=374537">374537</a></td>
+		<td>7332 bytes</td>
+		<td>Cryptic element names in messages from the DelegatingConstraintProvider<br/>git e-mail patch</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=374691">374691</a></td>
+		<td>1757 bytes</td>
+		<td>Delegating constraint provider constraint enablement is not persistent<br/>Patch to fix the problem</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">Ed&nbsp;Merks (gmail.com)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=166843">166843</a></td>
+		<td>1772 bytes</td>
+		<td>Minor changes need to deal with EMF's Java 5.0 changes<br/>Minor changes to handle more specific types</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=183817">183817</a></td>
+		<td>6687 bytes</td>
+		<td>Problem export model to UML2<br/>Exporting the GenModel in this project results in a bad UML model that fails to save properly</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">James&nbsp;Bruck (gmail.com)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=105199">105199</a></td>
+		<td>982635 bytes</td>
+		<td>[Plan Item] Integration with OCL<br/>streamlined</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=139765">139765</a></td>
+		<td>4544 bytes</td>
+		<td>ConnectorOperations.validateTypes() should take end order into account<br/>combined patch</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=140590">140590</a></td>
+		<td>8409 bytes</td>
+		<td>potential NPE for end conformance check<br/>partWithPort property checked to avoid NPE</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=141575">141575</a></td>
+		<td>2593 bytes</td>
+		<td>validation rule on propertyOperations incorrect.<br/>validateMultiplicityOfComposite patch</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=144311">144311</a></td>
+		<td>5113 bytes</td>
+		<td>validateMetaclassReferenceNotSpecialized not checking recursively<br/>patch for validation on profile operations</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=150154">150154</a></td>
+		<td>68581 bytes</td>
+		<td>[Plan Item] XML Primitive Types<br/>update with all mods</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=152592">152592</a></td>
+		<td>1490 bytes</td>
+		<td>string for connector validation should be clearer<br/>change text on validation rule</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=155535">155535</a></td>
+		<td>18009 bytes</td>
+		<td>[Plan Item] Static Profile Definition<br/>merged patch.</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=157714">157714</a></td>
+		<td>19062 bytes</td>
+		<td>Component.getRequireds() and getProvideds() should consider inherited required and provided interfaces<br/>patch for required and provided interfaces</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=157715">157715</a></td>
+		<td>19062 bytes</td>
+		<td>Incorrect validation rule : ConnectorOperations::validateAssemblyConnector()<br/>patch for validation rule</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=159855">159855</a></td>
+		<td>1842 bytes</td>
+		<td>Profiles for extended metamodels<br/>Updated patch to UMLUtil</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160319">160319</a></td>
+		<td>1488 bytes</td>
+		<td>The Ecore importer should list *.uml *.uml2 and *.xmi<br/>extension filter for import should show all extensions.</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160679">160679</a></td>
+		<td>46741 bytes</td>
+		<td>[Plan Item] Eclipse 3.3 / EMF 2.3 Compatibility<br/>generics</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160680">160680</a></td>
+		<td>16564 bytes</td>
+		<td>[Plan Item] Ant Task for Ecore Importer<br/>update</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=172503">172503</a></td>
+		<td>982 bytes</td>
+		<td>UML export wizard improvements<br/>update patch for procesing nested packages.</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=173726">173726</a></td>
+		<td>246881 bytes</td>
+		<td>No api exists to create a Usage dependency on a NamedElement<br/>updated API</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=176995">176995</a></td>
+		<td>4791 bytes</td>
+		<td>Validate action should validate stereotype applications<br/>validation of applied stereotypes</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=176996">176996</a></td>
+		<td>949 bytes</td>
+		<td>Import type action should filter selectable type<br/>filter types</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=178250">178250</a></td>
+		<td>11727 bytes</td>
+		<td>Exception from stereotype application copier<br/>added guards to ensure target is changeable.</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=186917">186917</a></td>
+		<td>32635 bytes</td>
+		<td>UML22UMLResourceHandler should consider the getMixed feature map<br/>some minor touch ups .. this is looking righteous.</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=187120">187120</a></td>
+		<td>4587 bytes</td>
+		<td>No icon for Generic type and type parameter in Ecore profile<br/>updated icons</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191053">191053</a></td>
+		<td>2050 bytes</td>
+		<td>Backport fixes to the maintenance stream<br/>Updated version information</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195417">195417</a></td>
+		<td>1416 bytes</td>
+		<td>Cache Adapter should be more robust in how it loads plugin<br/>allow specification of plugin id when loading cache adapter</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196070">196070</a></td>
+		<td>1619 bytes</td>
+		<td>handleProxy() should be called to set proxy uri when type of object is known<br/>spaces updated</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">John&nbsp;T.E.&nbsp;Timm (us.ibm.com)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=284810">284810</a></td>
+		<td>2458 bytes</td>
+		<td>Problems with EOCL_ENV declaration when switching back and forth between using operations package and not using operations package<br/>Patch</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">John&nbsp;Yeung (instream.co.uk)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193276">193276</a></td>
+		<td>1048 bytes</td>
+		<td>Memory leak in UML2Util resource bundle cache<br/>Proposed patch for UML2Util</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">Keith&nbsp;W.&nbsp;Campbell (ca.ibm.com)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=343783">343783</a></td>
+		<td>1343 bytes</td>
+		<td>BasicEList$BasicIndexOutOfBoundsException triggered via Element.destroy()<br/>proposed patch</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">Kenn&nbsp;Hussey (gmail.com)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=327039">327039</a></td>
+		<td>946270 bytes</td>
+		<td>Support for UML 2.4<br/>source files</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=350402">350402</a></td>
+		<td>55 bytes</td>
+		<td>[Static Profiles] API proposal to get StereotypeApplication from a UML Element<br/>comment #1</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">Lutz&nbsp;Wrage (andrew.cmu.edu)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=241411">241411</a></td>
+		<td>1915 bytes</td>
+		<td>No eGet, eSet, eIsSet, eUnset generated for certain redefined features<br/>Proposed fix in GenClass.java</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=242726">242726</a></td>
+		<td>1330 bytes</td>
+		<td>Genmodel copyright fields setting ignored for operations classes<br/>Improved fix</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">Nicolas&nbsp;Rouquette (jpl.nasa.gov)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=260120">260120</a></td>
+		<td>3038 bytes</td>
+		<td>Change the PackageMerge API to provide access to the resulting/merged element traceability metadata<br/>Proposed UMLUtil patch (for HEAD)</td>
+				</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=313837">313837</a></td>
+		<td>1019 bytes</td>
+		<td>Merging the UML metamodel for OMG's UML 2.4 RTF<br/>Patch for Eclipse UML2 to support OMG UML2.4 RTF.</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">Sergey&nbsp;Boyko (gmail.com)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=282440">282440</a></td>
+		<td>760 bytes</td>
+		<td>Fragment segment created with NamedElementImpl::eURIFragmentSegment() should be encoded<br/>Proposed patch</td>
+				</tr>
+	<tr><td colspan="3" style="background-color: #DDDDDD">Yann&nbsp;Tanguy (cea.fr)</td>
+		</tr>
+	<tr>
+		<td><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=350402">350402</a></td>
+		<td>1229 bytes</td>
+		<td>[Static Profiles] API proposal to get StereotypeApplication from a UML Element<br/>comment #0</td>
+				</tr>
+	</table>
+<h2>Repositories</h2>
+<p>The information contained in this log was generated by using commit information from the following repositories:</p>
+<div style='padding-left: 2em'>/gitroot/uml2/org.eclipse.uml2.git</div>
+<p>
+</div><!-- midcolumn -->
+</div><!-- maincontent -->
+
