<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-278589584459681634</id><updated>2012-02-16T19:25:40.104Z</updated><category term='SOA Suite'/><category term='JMS'/><category term='Exalogic'/><category term='XML'/><category term='XDM'/><category term='Coherence'/><category term='XAM'/><category term='Java CAPS'/><category term='NetBeans'/><category term='Java'/><category term='Networking'/><category term='Configuration'/><title type='text'>The Old Toxophilist</title><subtitle type='html'>Cyberspace is big. You just won't believe how vastly, hugely, mind-bogglingly big it is.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://theoldtoxophilist.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/278589584459681634/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://theoldtoxophilist.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>The Old Toxophilist</name><uri>http://www.blogger.com/profile/00930158998245901220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh3.ggpht.com/_iEXxIAjXQuE/SqUMN92i14I/AAAAAAAABak/yvGfGM7j7dI/s640/MeSmaller.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-278589584459681634.post-262212757639325229</id><published>2011-11-17T17:59:00.003Z</published><updated>2011-11-17T18:14:10.083Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='JMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Java CAPS'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA Suite'/><title type='text'>Connecting Oracle SOA Suite to Java CAPS JMS</title><content type='html'>Following a number of recent requests about connecting SOA Suite to existing SeeBeyond / Sun JMS I decided to put together this quick blog entry that describes the simple configuration required to successfully achieve this. The entry is based on a short document I originally wrote that described alternative connection options but JMS seems to be the most popular.&lt;br /&gt;&lt;br /&gt;The key to connecting SOA Suite to STCMS (SeeBeyond JMS) is collecting the correct information about your JMS Instance and tracking down the appropriate jar file. This blog assumes the reader is running Java CAPS, but the concepts are the same for ICAN and e*Gate, and we will be simply using a Mediator to write a message to a JMS Queue.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;Select JMS Adapter and then ThirdParty&lt;/h3&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Step 1" src="https://lh4.googleusercontent.com/-z5smOtJrKpI/TsU9SL0KwFI/AAAAAAAAHKU/U-lnBv_8ry0/s640/SOA2STCMS01.jpg" style="height: 311px; width: 640px;" /&gt;&lt;/div&gt;Edit the factory properties as follows:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;java.naming.provider.url : stcms://jcapsserver:18007&lt;/li&gt;&lt;li&gt;java.naming.factory.initial=com.stc.jms.jndispi.InitialContextFactory&lt;/li&gt;&lt;li&gt;java.naming.security.principal: Administrator&lt;/li&gt;&lt;li&gt;java.naming.security.credentials: STC&lt;br /&gt;  &lt;/li&gt;&lt;/ul&gt;Now configure the JMS Connection information.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JMS Connection Factory : connectionfactories/queueconnectionfactory&lt;/li&gt;&lt;li&gt;JNDI Name : eis/Jms/JmsAdapter/Stcms/qLogging&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Step 2" src="https://lh5.googleusercontent.com/-_zcJFDa_aLc/TsU9Ssu1GwI/AAAAAAAAHKY/MJLGPObBRDg/s612/SOA2STCMS02.jpg" style="height: 511px; width: 612px;" /&gt;&lt;/div&gt;&lt;h3&gt;Configure Message (Adapter)&lt;/h3&gt;Once the configuration is complete we need to define the Adapter Interface and in this example we will simply specify that we will specify it later. We do this because within the STCMS we will simply be passing an Opaque Type (Text Message).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Step 3" src="https://lh3.googleusercontent.com/-5G8pHMf7jGg/TsU9TDFt8UI/AAAAAAAAHKc/jkt4lEPP2Og/s621/SOA2STCMS03.jpg" style="height: 519px; width: 621px;" /&gt;&lt;/div&gt;&lt;h3&gt;Define Operation&lt;/h3&gt;Because we will be writing to the Queue we will define the Operation as a Produce Message.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Step 4" src="https://lh6.googleusercontent.com/-Q-Io6fXj_f0/TsU9Th2ueTI/AAAAAAAAHKg/7i-k1W-5Plc/s620/SOA2STCMS04.jpg" style="height: 513px; width: 620px;" /&gt;&lt;/div&gt;Following this we will need to define the define the actual STCMS Queue name which is prefixed by jms/ to locate it within the Java CAPS server.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Step 5" src="https://lh4.googleusercontent.com/-d-nXqEwbUc8/TsU9Ub8t9dI/AAAAAAAAHKk/gX-UvoKbdnk/s612/SOA2STCMS05.jpg" style="height: 507px; width: 612px;" /&gt;&lt;/div&gt;&lt;h3&gt;Define Message&lt;/h3&gt;Because we will be writing a simple log string to our Queue we will define the Message structure as Native format.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Step 6" src="https://lh5.googleusercontent.com/-JPewNeylhCg/TsU9UvL1I6I/AAAAAAAAHKo/-3ymKmZ0x9Y/s611/SOA2STCMS06.jpg" style="height: 511px; width: 611px;" /&gt;&lt;/div&gt;&lt;h3&gt;Mediator Configuration&lt;br /&gt;&lt;/h3&gt;We can now simply connect the JMS Connector to the Mediator as follows :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Step 7" src="https://lh4.googleusercontent.com/-7L15j6HvZu4/TsU9VA92YSI/AAAAAAAAHKs/jSIcCX1Crww/s640/SOA2STCMS07.jpg" style="height: 375px; width: 640px;" /&gt;&lt;/div&gt;To successfully write to the Queue we will need to define the following properties for the connection:&lt;br /&gt;&lt;br /&gt;Open Mediator and edit new service information. In Assign Values Set :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;jca.jms.JMSType = TextMessage&lt;/li&gt;&lt;li&gt;jca.jms.JMSCorrelationID = 1234567890&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="Step 8" src="https://lh4.googleusercontent.com/-ZXI5zBCBuR0/TsU9V653EaI/AAAAAAAAHKw/LcsYKCkzFcY/s640/SOA2STCMS08.jpg" style="height: 448px; width: 640px;" /&gt;&lt;/div&gt;Now we can simply copy contents to the Inbound on the Queue connection and these will be available for Java CAPS.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/278589584459681634-262212757639325229?l=theoldtoxophilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theoldtoxophilist.blogspot.com/feeds/262212757639325229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theoldtoxophilist.blogspot.com/2011/11/connecting-oracle-soa-suite-to-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/278589584459681634/posts/default/262212757639325229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/278589584459681634/posts/default/262212757639325229'/><link rel='alternate' type='text/html' href='http://theoldtoxophilist.blogspot.com/2011/11/connecting-oracle-soa-suite-to-java.html' title='Connecting Oracle SOA Suite to Java CAPS JMS'/><author><name>The Old Toxophilist</name><uri>http://www.blogger.com/profile/00930158998245901220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh3.ggpht.com/_iEXxIAjXQuE/SqUMN92i14I/AAAAAAAABak/yvGfGM7j7dI/s640/MeSmaller.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-z5smOtJrKpI/TsU9SL0KwFI/AAAAAAAAHKU/U-lnBv_8ry0/s72-c/SOA2STCMS01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-278589584459681634.post-167592228326751953</id><published>2011-09-12T18:29:00.000+01:00</published><updated>2011-11-17T18:06:06.268Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Coherence'/><category scheme='http://www.blogger.com/atom/ns#' term='XDM'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='XAM'/><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>Integrating NetBeans MultiView with XAM/XDM based XML Object Model</title><content type='html'>&lt;br /&gt;&lt;h1&gt; Overview&lt;/h1&gt;As part of my ongoing side-line work with the NetBeans Coherence       Module I have finally had the time to reimplement the GUI Editor       associated with the Coherence pof-config.xml file. As you may       remember from my previous entry "&lt;a href="http://theoldtoxophilist.blogspot.com/2011/07/implementing-xml-object-model-based-on.html"&gt;Implementing                 XML Object Model based on XAM/XDM&lt;/a&gt;" I converted my existing       JAXB Implementation of the pof-config.xml to the NetBeans       preferred XAM/XDM model. Now it is time to change GUI interface so       that it uses this new XML Object Model. In addition because this       will be shipped post NetBeans 7.1 I decided to use the new       NetBeans MultiView functionality.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1&gt; Creating the MultiView&lt;/h1&gt;To create the XML MultiView component we first need a standard       NetBeans Module Project with a base path (package), in my case, of       org.netbeans.modules.coherence and in addition I have created the       package org.netbeans.coherence.editor.pof for the MultiView       classes and org.netbeans.modules.coherence.resources.icons for the       icons associated with the file type. To create a MultiView Editor       in 7.1 is simplicity itself and can be done by following the       instructions below.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create New File Type:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;MIME Type : text/coh-pof+xml&lt;/li&gt;&lt;li&gt;Namespace :           http://xmlns.oracle.com/coherence/coherence-pof-config&lt;br /&gt;&lt;br /&gt;&lt;img alt="MultiView" src="https://lh3.googleusercontent.com/-FOMIJIYdka4/Tm4q_PygjAI/AAAAAAAAHDI/WY0tZHbpEpc/NewFileType1.jpg" style="height: 441px; width: 640px;" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Next&lt;/li&gt;&lt;li&gt;Name, Icon and Location&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Class Name Prefix : PofConfig&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Icon : Path to pof file icon&lt;/li&gt;&lt;li&gt;MultiView : checked (This is a new feature of NetBeans 7.1)&lt;/li&gt;&lt;li&gt;Package : org.netbeans.modules.coherence.editor.pof&lt;br /&gt;&lt;br /&gt;&lt;img alt="MultiView" src="https://lh6.googleusercontent.com/-Av0NZ3MHRJU/Tm4q_kGR97I/AAAAAAAAHDM/URr6p-ynsSo/NewFileType2.jpg" style="height: 441px; width: 640px;" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Finish&lt;/li&gt;&lt;/ol&gt;This will create two Java files, in addition to a number of xml       files :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;PofConfigDataObject.java&lt;/li&gt;&lt;li&gt;PofConfigVisualElement.java (.form)&lt;/li&gt;&lt;/ul&gt;These two files provide all the base functionality to implement       the MultiView functionality for the pof-config.xml file.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt; &lt;a href="http://www.blogger.com/blogger.g?blogID=278589584459681634"&gt;PofConfigDataObject.java&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 1&lt;/span&gt; /*&lt;br /&gt;&lt;span class="line-number"&gt; 2&lt;/span&gt;  * To change this template, choose Tools | Templates and open the template in&lt;br /&gt;&lt;span class="line-number"&gt; 3&lt;/span&gt;  * the editor.&lt;br /&gt;&lt;span class="line-number"&gt; 4&lt;/span&gt;  */&lt;br /&gt;&lt;span class="line-number"&gt; 5&lt;/span&gt; package org.netbeans.modules.coherence.editor.pof;&lt;br /&gt;&lt;span class="line-number"&gt; 6&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 7&lt;/span&gt; import java.io.IOException;&lt;br /&gt;&lt;span class="line-number"&gt; 8&lt;/span&gt; import org.netbeans.core.spi.multiview.MultiViewElement;&lt;br /&gt;&lt;span class="line-number"&gt; 9&lt;/span&gt; import org.netbeans.core.spi.multiview.text.MultiViewEditorElement;&lt;br /&gt;&lt;span class="line-number"&gt;10&lt;/span&gt; import org.openide.filesystems.FileObject;&lt;br /&gt;&lt;span class="line-number"&gt;11&lt;/span&gt; import org.openide.loaders.DataObjectExistsException;&lt;br /&gt;&lt;span class="line-number"&gt;12&lt;/span&gt; import org.openide.loaders.MultiDataObject;&lt;br /&gt;&lt;span class="line-number"&gt;13&lt;/span&gt; import org.openide.loaders.MultiFileLoader;&lt;br /&gt;&lt;span class="line-number"&gt;14&lt;/span&gt; import org.openide.util.Lookup;&lt;br /&gt;&lt;span class="line-number"&gt;15&lt;/span&gt; import org.openide.windows.TopComponent;&lt;br /&gt;&lt;span class="line-number"&gt;16&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;17&lt;/span&gt; public class PofConfigDataObject extends MultiDataObject {&lt;br /&gt;&lt;span class="line-number"&gt;18&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;19&lt;/span&gt;     public PofConfigDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException {&lt;br /&gt;&lt;span class="line-number"&gt;20&lt;/span&gt;         super(pf, loader);&lt;br /&gt;&lt;span class="line-number"&gt;21&lt;/span&gt;         registerEditor("text/coh-pof+xml", true);&lt;br /&gt;&lt;span class="line-number"&gt;22&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;23&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;24&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;25&lt;/span&gt;     protected int associateLookup() {&lt;br /&gt;&lt;span class="line-number"&gt;26&lt;/span&gt;         return 1;&lt;br /&gt;&lt;span class="line-number"&gt;27&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;28&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;29&lt;/span&gt;     @MultiViewElement.Registration(displayName = "#LBL_PofConfig_EDITOR",&lt;br /&gt;&lt;span class="line-number"&gt;30&lt;/span&gt;     iconBase = "org/netbeans/modules/coherence/resources/icons/pof.png",&lt;br /&gt;&lt;span class="line-number"&gt;31&lt;/span&gt;     mimeType = "text/coh-pof+xml",&lt;br /&gt;&lt;span class="line-number"&gt;32&lt;/span&gt;     persistenceType = TopComponent.PERSISTENCE_ONLY_OPENED,&lt;br /&gt;&lt;span class="line-number"&gt;33&lt;/span&gt;     preferredID = "PofConfig",&lt;br /&gt;&lt;span class="line-number"&gt;34&lt;/span&gt;     position = 1000)&lt;br /&gt;&lt;span class="line-number"&gt;35&lt;/span&gt;     public static MultiViewEditorElement createEditor(Lookup lkp) {&lt;br /&gt;&lt;span class="line-number"&gt;36&lt;/span&gt;         return new MultiViewEditorElement(lkp);&lt;br /&gt;&lt;span class="line-number"&gt;37&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;38&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;39&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;40&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt; &lt;a href="http://www.blogger.com/blogger.g?blogID=278589584459681634"&gt;PofConfigVisualElement.java&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; /*&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt;  * To change this template, choose Tools | Templates and open the template in&lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt;  * the editor.&lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt;  */&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt; package org.netbeans.modules.coherence.editor.pof;&lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt; import javax.swing.Action;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt; import javax.swing.JComponent;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; import javax.swing.JPanel;&lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt; import javax.swing.JToolBar;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt; import org.netbeans.core.spi.multiview.CloseOperationState;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt; import org.netbeans.core.spi.multiview.MultiViewElement;&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; import org.netbeans.core.spi.multiview.MultiViewElementCallback;&lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt; import org.openide.awt.UndoRedo;&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt; import org.openide.util.Lookup;&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; import org.openide.util.NbBundle.Messages;&lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt; import org.openide.windows.TopComponent;&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt; @MultiViewElement.Registration(displayName = "#LBL_PofConfig_VISUAL",&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt; iconBase = "org/netbeans/modules/coherence/resources/icons/pof.png",&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; mimeType = "text/coh-pof+xml",&lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt; persistenceType = TopComponent.PERSISTENCE_NEVER,&lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt; preferredID = "PofConfigVisual",&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt; position = 2000)&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; @Messages({&lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt;     "LBL_PofConfig_VISUAL=Visual"&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt; })&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt; public final class PofConfigVisualElement extends JPanel implements MultiViewElement {&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt;     private PofConfigDataObject obj;&lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt;     private JToolBar toolbar = new JToolBar();&lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt;     private transient MultiViewElementCallback callback;&lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt;     public PofConfigVisualElement(Lookup lkp) {&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt;         obj = lkp.lookup(PofConfigDataObject.class);&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt;         assert obj != null;&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt;         initComponents();&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt;     public String getName() {&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt;         return "PofConfigVisualElement";&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt;     /** This method is called from within the constructor to&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt;      * initialize the form.&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt;      * WARNING: Do NOT modify this code. The content of this method is&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt;      * always regenerated by the Form Editor.&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt;      */&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt;     // &lt;editor-fold defaultstate="collapsed" desc="Generated Code"&gt;                          &lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt;     private void initComponents() {&lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt;         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);&lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt;         this.setLayout(layout);&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt;         layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt;             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt;             .addGap(0, 400, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt;         layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt;             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt;             .addGap(0, 300, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt;     }// &lt;/editor-fold&gt;                        &lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt;     // Variables declaration - do not modify                     &lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt;     // End of variables declaration                   &lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt;     public JComponent getVisualRepresentation() {&lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt;         return this;&lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt;     public JComponent getToolbarRepresentation() {&lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt;         return toolbar;&lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt;     public Action[] getActions() {&lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt;         return new Action[0];&lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt;     public Lookup getLookup() {&lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt;         return obj.getLookup();&lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt;     public void componentOpened() {&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt;     public void componentClosed() {&lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt;     public void componentShowing() {&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt;     public void componentHidden() {&lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt;     public void componentActivated() {&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt;     public void componentDeactivated() {&lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt;     public UndoRedo getUndoRedo() {&lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt;         return UndoRedo.NONE;&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;116&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;117&lt;/span&gt;     public void setMultiViewCallback(MultiViewElementCallback callback) {&lt;br /&gt;&lt;span class="line-number"&gt;118&lt;/span&gt;         this.callback = callback;&lt;br /&gt;&lt;span class="line-number"&gt;119&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;120&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;121&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;122&lt;/span&gt;     public CloseOperationState canCloseElement() {&lt;br /&gt;&lt;span class="line-number"&gt;123&lt;/span&gt;         return CloseOperationState.STATE_OK;&lt;br /&gt;&lt;span class="line-number"&gt;124&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;125&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;126&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;127&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;We now need to add the following libraries.&lt;br /&gt;&lt;img alt="Libraries" src="https://lh4.googleusercontent.com/-WJnJrvftOM4/Tm4sPeaoZoI/AAAAAAAAHDY/MPuhsYT2qy4/MultiViewLibraries.jpg" style="height: 560px; width: 392px;" /&gt;&lt;br /&gt;&lt;br /&gt;Now run the project and we will see that the pof-config.xml files       have a green file icon and opening the file will initially display       the "Source" view but we also have "Visual" tab that if selected       will simply display an empty windows and this is because we have       not added any visual components.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="MultiView" src="https://lh5.googleusercontent.com/-lmMi_kGnAzo/Tm4q_wMz2gI/AAAAAAAAHDQ/_veTu8GeYxs/MultiView1.jpg" style="height: 468px; width: 640px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="MultiView" src="https://lh3.googleusercontent.com/-Jb8fyvUAwJ0/Tm4rANxQuCI/AAAAAAAAHDU/jlQeZyhZfIM/MultiView2.jpg" style="height: 468px; width: 640px;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt; Extending the MultiView&lt;/h1&gt;Obviously an empty Visual Component is not what we want and so it       is now time to edit the Visual component to display the XML in our       chosen Visual Format. In addition we will change the name of the       Visual component and place it first in the list. The end result       will be as follows:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="MultiView" src="https://lh3.googleusercontent.com/-Uy9_voPXkO4/Tm4tmy-x3EI/AAAAAAAAHDc/1cy90hdAcGs/MultiView3.jpg" style="height: 382px; width: 640px;" /&gt;&lt;/div&gt;I will not go into detail about how to create the visual       component but will assume the reader has created swing based       NetBeans components before. The resulting code is displayed below.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt; &lt;a href="http://www.blogger.com/blogger.g?blogID=278589584459681634"&gt;PofConfigDataObject.java&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 1&lt;/span&gt; /*&lt;br /&gt;&lt;span class="line-number"&gt; 2&lt;/span&gt;  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;br /&gt;&lt;span class="line-number"&gt; 3&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt; 4&lt;/span&gt;  * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;br /&gt;&lt;span class="line-number"&gt; 5&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt; 6&lt;/span&gt;  * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;br /&gt;&lt;span class="line-number"&gt; 7&lt;/span&gt;  * Other names may be trademarks of their respective owners.&lt;br /&gt;&lt;span class="line-number"&gt; 8&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt; 9&lt;/span&gt;  * The contents of this file are subject to the terms of either the GNU&lt;br /&gt;&lt;span class="line-number"&gt;10&lt;/span&gt;  * General Public License Version 2 only ("GPL") or the Common&lt;br /&gt;&lt;span class="line-number"&gt;11&lt;/span&gt;  * Development and Distribution License("CDDL") (collectively, the&lt;br /&gt;&lt;span class="line-number"&gt;12&lt;/span&gt;  * "License"). You may not use this file except in compliance with the&lt;br /&gt;&lt;span class="line-number"&gt;13&lt;/span&gt;  * License. You can obtain a copy of the License at&lt;br /&gt;&lt;span class="line-number"&gt;14&lt;/span&gt;  * http://www.netbeans.org/cddl-gplv2.html&lt;br /&gt;&lt;span class="line-number"&gt;15&lt;/span&gt;  * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;br /&gt;&lt;span class="line-number"&gt;16&lt;/span&gt;  * specific language governing permissions and limitations under the&lt;br /&gt;&lt;span class="line-number"&gt;17&lt;/span&gt;  * License.  When distributing the software, include this License Header&lt;br /&gt;&lt;span class="line-number"&gt;18&lt;/span&gt;  * Notice in each file and include the License file at&lt;br /&gt;&lt;span class="line-number"&gt;19&lt;/span&gt;  * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;br /&gt;&lt;span class="line-number"&gt;20&lt;/span&gt;  * particular file as subject to the "Classpath" exception as provided&lt;br /&gt;&lt;span class="line-number"&gt;21&lt;/span&gt;  * by Oracle in the GPL Version 2 section of the License file that&lt;br /&gt;&lt;span class="line-number"&gt;22&lt;/span&gt;  * accompanied this code. If applicable, add the following below the&lt;br /&gt;&lt;span class="line-number"&gt;23&lt;/span&gt;  * License Header, with the fields enclosed by brackets [] replaced by&lt;br /&gt;&lt;span class="line-number"&gt;24&lt;/span&gt;  * your own identifying information:&lt;br /&gt;&lt;span class="line-number"&gt;25&lt;/span&gt;  * "Portions Copyrighted [year] [name of copyright owner]"&lt;br /&gt;&lt;span class="line-number"&gt;26&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;27&lt;/span&gt;  * If you wish your version of this file to be governed by only the CDDL&lt;br /&gt;&lt;span class="line-number"&gt;28&lt;/span&gt;  * or only the GPL Version 2, indicate your decision by adding&lt;br /&gt;&lt;span class="line-number"&gt;29&lt;/span&gt;  * "[Contributor] elects to include this software in this distribution&lt;br /&gt;&lt;span class="line-number"&gt;30&lt;/span&gt;  * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;br /&gt;&lt;span class="line-number"&gt;31&lt;/span&gt;  * single choice of license, a recipient has the option to distribute&lt;br /&gt;&lt;span class="line-number"&gt;32&lt;/span&gt;  * your version of this file under either the CDDL, the GPL Version 2 or&lt;br /&gt;&lt;span class="line-number"&gt;33&lt;/span&gt;  * to extend the choice of license to its licensees as provided above.&lt;br /&gt;&lt;span class="line-number"&gt;34&lt;/span&gt;  * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;br /&gt;&lt;span class="line-number"&gt;35&lt;/span&gt;  * Version 2 license, then the option applies only if the new code is&lt;br /&gt;&lt;span class="line-number"&gt;36&lt;/span&gt;  * made subject to such option by the copyright holder.&lt;br /&gt;&lt;span class="line-number"&gt;37&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;38&lt;/span&gt;  * Contributor(s):&lt;br /&gt;&lt;span class="line-number"&gt;39&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;40&lt;/span&gt;  * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;br /&gt;&lt;span class="line-number"&gt;41&lt;/span&gt;  */&lt;br /&gt;&lt;span class="line-number"&gt;42&lt;/span&gt; package org.netbeans.modules.coherence.editor.pof;&lt;br /&gt;&lt;span class="line-number"&gt;43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;44&lt;/span&gt; import java.io.IOException;&lt;br /&gt;&lt;span class="line-number"&gt;45&lt;/span&gt; import org.netbeans.core.spi.multiview.MultiViewElement;&lt;br /&gt;&lt;span class="line-number"&gt;46&lt;/span&gt; import org.netbeans.core.spi.multiview.text.MultiViewEditorElement;&lt;br /&gt;&lt;span class="line-number"&gt;47&lt;/span&gt; import org.openide.filesystems.FileObject;&lt;br /&gt;&lt;span class="line-number"&gt;48&lt;/span&gt; import org.openide.loaders.DataObjectExistsException;&lt;br /&gt;&lt;span class="line-number"&gt;49&lt;/span&gt; import org.openide.loaders.MultiDataObject;&lt;br /&gt;&lt;span class="line-number"&gt;50&lt;/span&gt; import org.openide.loaders.MultiFileLoader;&lt;br /&gt;&lt;span class="line-number"&gt;51&lt;/span&gt; import org.openide.util.Lookup;&lt;br /&gt;&lt;span class="line-number"&gt;52&lt;/span&gt; import org.openide.windows.TopComponent;&lt;br /&gt;&lt;span class="line-number"&gt;53&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;54&lt;/span&gt; /**&lt;br /&gt;&lt;span class="line-number"&gt;55&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;56&lt;/span&gt;  * @author Andrew Hopkinson (Oracle A-Team)&lt;br /&gt;&lt;span class="line-number"&gt;57&lt;/span&gt;  */&lt;br /&gt;&lt;span class="line-number"&gt;58&lt;/span&gt; public class PofConfigDataObject extends MultiDataObject {&lt;br /&gt;&lt;span class="line-number"&gt;59&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;60&lt;/span&gt;     public PofConfigDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException {&lt;br /&gt;&lt;span class="line-number"&gt;61&lt;/span&gt;         super(pf, loader);&lt;br /&gt;&lt;span class="line-number"&gt;62&lt;/span&gt;         registerEditor("text/coh-pof+xml", true);&lt;br /&gt;&lt;span class="line-number"&gt;63&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;64&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;65&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;66&lt;/span&gt;     protected int associateLookup() {&lt;br /&gt;&lt;span class="line-number"&gt;67&lt;/span&gt;         return 1;&lt;br /&gt;&lt;span class="line-number"&gt;68&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;69&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;70&lt;/span&gt;     @MultiViewElement.Registration(displayName = "#LBL_PofConfig_EDITOR",&lt;br /&gt;&lt;span class="line-number"&gt;71&lt;/span&gt;     iconBase = "org/netbeans/modules/coherence/resources/icons/pof.png",&lt;br /&gt;&lt;span class="line-number"&gt;72&lt;/span&gt;     mimeType = "text/coh-pof+xml",&lt;br /&gt;&lt;span class="line-number"&gt;73&lt;/span&gt;     persistenceType = TopComponent.PERSISTENCE_ONLY_OPENED,&lt;br /&gt;&lt;span class="line-number"&gt;74&lt;/span&gt;     preferredID = "PofConfig",&lt;br /&gt;&lt;span class="line-number"&gt;75&lt;/span&gt;     position = 2000)&lt;br /&gt;&lt;span class="line-number"&gt;76&lt;/span&gt;     public static MultiViewEditorElement createEditor(Lookup lkp) {&lt;br /&gt;&lt;span class="line-number"&gt;77&lt;/span&gt;         return new MultiViewEditorElement(lkp);&lt;br /&gt;&lt;span class="line-number"&gt;78&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;79&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;80&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;81&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt; &lt;a href="http://www.blogger.com/blogger.g?blogID=278589584459681634"&gt;PofConfigVisualElement.java&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;   1&lt;/span&gt; /*&lt;br /&gt;&lt;span class="line-number"&gt;   2&lt;/span&gt;  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;br /&gt;&lt;span class="line-number"&gt;   3&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;   4&lt;/span&gt;  * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;br /&gt;&lt;span class="line-number"&gt;   5&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;   6&lt;/span&gt;  * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;br /&gt;&lt;span class="line-number"&gt;   7&lt;/span&gt;  * Other names may be trademarks of their respective owners.&lt;br /&gt;&lt;span class="line-number"&gt;   8&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;   9&lt;/span&gt;  * The contents of this file are subject to the terms of either the GNU&lt;br /&gt;&lt;span class="line-number"&gt;  10&lt;/span&gt;  * General Public License Version 2 only ("GPL") or the Common&lt;br /&gt;&lt;span class="line-number"&gt;  11&lt;/span&gt;  * Development and Distribution License("CDDL") (collectively, the&lt;br /&gt;&lt;span class="line-number"&gt;  12&lt;/span&gt;  * "License"). You may not use this file except in compliance with the&lt;br /&gt;&lt;span class="line-number"&gt;  13&lt;/span&gt;  * License. You can obtain a copy of the License at&lt;br /&gt;&lt;span class="line-number"&gt;  14&lt;/span&gt;  * http://www.netbeans.org/cddl-gplv2.html&lt;br /&gt;&lt;span class="line-number"&gt;  15&lt;/span&gt;  * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;br /&gt;&lt;span class="line-number"&gt;  16&lt;/span&gt;  * specific language governing permissions and limitations under the&lt;br /&gt;&lt;span class="line-number"&gt;  17&lt;/span&gt;  * License.  When distributing the software, include this License Header&lt;br /&gt;&lt;span class="line-number"&gt;  18&lt;/span&gt;  * Notice in each file and include the License file at&lt;br /&gt;&lt;span class="line-number"&gt;  19&lt;/span&gt;  * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;br /&gt;&lt;span class="line-number"&gt;  20&lt;/span&gt;  * particular file as subject to the "Classpath" exception as provided&lt;br /&gt;&lt;span class="line-number"&gt;  21&lt;/span&gt;  * by Oracle in the GPL Version 2 section of the License file that&lt;br /&gt;&lt;span class="line-number"&gt;  22&lt;/span&gt;  * accompanied this code. If applicable, add the following below the&lt;br /&gt;&lt;span class="line-number"&gt;  23&lt;/span&gt;  * License Header, with the fields enclosed by brackets [] replaced by&lt;br /&gt;&lt;span class="line-number"&gt;  24&lt;/span&gt;  * your own identifying information:&lt;br /&gt;&lt;span class="line-number"&gt;  25&lt;/span&gt;  * "Portions Copyrighted [year] [name of copyright owner]"&lt;br /&gt;&lt;span class="line-number"&gt;  26&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;  27&lt;/span&gt;  * If you wish your version of this file to be governed by only the CDDL&lt;br /&gt;&lt;span class="line-number"&gt;  28&lt;/span&gt;  * or only the GPL Version 2, indicate your decision by adding&lt;br /&gt;&lt;span class="line-number"&gt;  29&lt;/span&gt;  * "[Contributor] elects to include this software in this distribution&lt;br /&gt;&lt;span class="line-number"&gt;  30&lt;/span&gt;  * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;br /&gt;&lt;span class="line-number"&gt;  31&lt;/span&gt;  * single choice of license, a recipient has the option to distribute&lt;br /&gt;&lt;span class="line-number"&gt;  32&lt;/span&gt;  * your version of this file under either the CDDL, the GPL Version 2 or&lt;br /&gt;&lt;span class="line-number"&gt;  33&lt;/span&gt;  * to extend the choice of license to its licensees as provided above.&lt;br /&gt;&lt;span class="line-number"&gt;  34&lt;/span&gt;  * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;br /&gt;&lt;span class="line-number"&gt;  35&lt;/span&gt;  * Version 2 license, then the option applies only if the new code is&lt;br /&gt;&lt;span class="line-number"&gt;  36&lt;/span&gt;  * made subject to such option by the copyright holder.&lt;br /&gt;&lt;span class="line-number"&gt;  37&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;  38&lt;/span&gt;  * Contributor(s):&lt;br /&gt;&lt;span class="line-number"&gt;  39&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;  40&lt;/span&gt;  * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;br /&gt;&lt;span class="line-number"&gt;  41&lt;/span&gt;  */&lt;br /&gt;&lt;span class="line-number"&gt;  42&lt;/span&gt; package org.netbeans.modules.coherence.editor.pof;&lt;br /&gt;&lt;span class="line-number"&gt;  43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  44&lt;/span&gt; import com.sun.istack.logging.Logger;&lt;br /&gt;&lt;span class="line-number"&gt;  45&lt;/span&gt; import java.util.ArrayList;&lt;br /&gt;&lt;span class="line-number"&gt;  46&lt;/span&gt; import java.util.List;&lt;br /&gt;&lt;span class="line-number"&gt;  47&lt;/span&gt; import java.util.logging.Level;&lt;br /&gt;&lt;span class="line-number"&gt;  48&lt;/span&gt; import javax.swing.Action;&lt;br /&gt;&lt;span class="line-number"&gt;  49&lt;/span&gt; import javax.swing.JComponent;&lt;br /&gt;&lt;span class="line-number"&gt;  50&lt;/span&gt; import javax.swing.JOptionPane;&lt;br /&gt;&lt;span class="line-number"&gt;  51&lt;/span&gt; import javax.swing.JPanel;&lt;br /&gt;&lt;span class="line-number"&gt;  52&lt;/span&gt; import javax.swing.JToolBar;&lt;br /&gt;&lt;span class="line-number"&gt;  53&lt;/span&gt; import javax.swing.event.ListSelectionEvent;&lt;br /&gt;&lt;span class="line-number"&gt;  54&lt;/span&gt; import javax.swing.event.ListSelectionListener;&lt;br /&gt;&lt;span class="line-number"&gt;  55&lt;/span&gt; import javax.swing.event.TableModelEvent;&lt;br /&gt;&lt;span class="line-number"&gt;  56&lt;/span&gt; import javax.swing.event.TableModelListener;&lt;br /&gt;&lt;span class="line-number"&gt;  57&lt;/span&gt; import javax.swing.table.AbstractTableModel;&lt;br /&gt;&lt;span class="line-number"&gt;  58&lt;/span&gt; import org.jdesktop.beansbinding.AutoBinding.UpdateStrategy;&lt;br /&gt;&lt;span class="line-number"&gt;  59&lt;/span&gt; import org.jdesktop.beansbinding.BeanProperty;&lt;br /&gt;&lt;span class="line-number"&gt;  60&lt;/span&gt; import org.jdesktop.beansbinding.Binding;&lt;br /&gt;&lt;span class="line-number"&gt;  61&lt;/span&gt; import org.jdesktop.beansbinding.Binding.SyncFailure;&lt;br /&gt;&lt;span class="line-number"&gt;  62&lt;/span&gt; import org.jdesktop.beansbinding.BindingGroup;&lt;br /&gt;&lt;span class="line-number"&gt;  63&lt;/span&gt; import org.jdesktop.beansbinding.BindingListener;&lt;br /&gt;&lt;span class="line-number"&gt;  64&lt;/span&gt; import org.jdesktop.beansbinding.Bindings;&lt;br /&gt;&lt;span class="line-number"&gt;  65&lt;/span&gt; import org.jdesktop.beansbinding.Property;&lt;br /&gt;&lt;span class="line-number"&gt;  66&lt;/span&gt; import org.jdesktop.beansbinding.PropertyStateEvent;&lt;br /&gt;&lt;span class="line-number"&gt;  67&lt;/span&gt; import org.netbeans.core.spi.multiview.CloseOperationState;&lt;br /&gt;&lt;span class="line-number"&gt;  68&lt;/span&gt; import org.netbeans.core.spi.multiview.MultiViewElement;&lt;br /&gt;&lt;span class="line-number"&gt;  69&lt;/span&gt; import org.netbeans.core.spi.multiview.MultiViewElementCallback;&lt;br /&gt;&lt;span class="line-number"&gt;  70&lt;/span&gt; import org.netbeans.modules.coherence.xml.pof.PofConfig;&lt;br /&gt;&lt;span class="line-number"&gt;  71&lt;/span&gt; import org.netbeans.modules.coherence.xml.pof.PofConfigComponentFactory;&lt;br /&gt;&lt;span class="line-number"&gt;  72&lt;/span&gt; import org.netbeans.modules.coherence.xml.pof.PofConfigModel;&lt;br /&gt;&lt;span class="line-number"&gt;  73&lt;/span&gt; import org.netbeans.modules.coherence.xml.pof.PofConfigModelFactory;&lt;br /&gt;&lt;span class="line-number"&gt;  74&lt;/span&gt; import org.netbeans.modules.coherence.xml.pof.Serializer;&lt;br /&gt;&lt;span class="line-number"&gt;  75&lt;/span&gt; import org.netbeans.modules.coherence.xml.pof.UserType;&lt;br /&gt;&lt;span class="line-number"&gt;  76&lt;/span&gt; import org.netbeans.modules.coherence.xml.pof.UserTypeList;&lt;br /&gt;&lt;span class="line-number"&gt;  77&lt;/span&gt; import org.netbeans.modules.coherence.xml.pof.ValueNotPermittedException;&lt;br /&gt;&lt;span class="line-number"&gt;  78&lt;/span&gt; import org.netbeans.modules.xml.retriever.catalog.Utilities;&lt;br /&gt;&lt;span class="line-number"&gt;  79&lt;/span&gt; import org.netbeans.modules.xml.xam.ModelSource;&lt;br /&gt;&lt;span class="line-number"&gt;  80&lt;/span&gt; import org.openide.awt.StatusDisplayer;&lt;br /&gt;&lt;span class="line-number"&gt;  81&lt;/span&gt; import org.openide.awt.UndoRedo;&lt;br /&gt;&lt;span class="line-number"&gt;  82&lt;/span&gt; import org.openide.util.Exceptions;&lt;br /&gt;&lt;span class="line-number"&gt;  83&lt;/span&gt; import org.openide.util.Lookup;&lt;br /&gt;&lt;span class="line-number"&gt;  84&lt;/span&gt; import org.openide.util.NbBundle.Messages;&lt;br /&gt;&lt;span class="line-number"&gt;  85&lt;/span&gt; import org.openide.windows.TopComponent;&lt;br /&gt;&lt;span class="line-number"&gt;  86&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  87&lt;/span&gt; @MultiViewElement.Registration(displayName = "#LBL_PofConfig_VISUAL",&lt;br /&gt;&lt;span class="line-number"&gt;  88&lt;/span&gt; iconBase = "org/netbeans/modules/coherence/resources/icons/pof.png",&lt;br /&gt;&lt;span class="line-number"&gt;  89&lt;/span&gt; mimeType = "text/coh-pof+xml",&lt;br /&gt;&lt;span class="line-number"&gt;  90&lt;/span&gt; persistenceType = TopComponent.PERSISTENCE_NEVER,&lt;br /&gt;&lt;span class="line-number"&gt;  91&lt;/span&gt; preferredID = "PofConfigVisual",&lt;br /&gt;&lt;span class="line-number"&gt;  92&lt;/span&gt; position = 1000)&lt;br /&gt;&lt;span class="line-number"&gt;  93&lt;/span&gt; @Messages({&lt;br /&gt;&lt;span class="line-number"&gt;  94&lt;/span&gt;     "LBL_PofConfig_VISUAL=General"&lt;br /&gt;&lt;span class="line-number"&gt;  95&lt;/span&gt; })&lt;br /&gt;&lt;span class="line-number"&gt;  96&lt;/span&gt; /**&lt;br /&gt;&lt;span class="line-number"&gt;  97&lt;/span&gt;  *&lt;br /&gt;&lt;span class="line-number"&gt;  98&lt;/span&gt;  * @author Andrew Hopkinson (Oracle A-Team)&lt;br /&gt;&lt;span class="line-number"&gt;  99&lt;/span&gt;  */&lt;br /&gt;&lt;span class="line-number"&gt; 100&lt;/span&gt; public final class PofConfigVisualElement extends JPanel implements MultiViewElement, TableModelListener, ListSelectionListener, BindingListener {&lt;br /&gt;&lt;span class="line-number"&gt; 101&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 102&lt;/span&gt;     private PofConfigDataObject obj;&lt;br /&gt;&lt;span class="line-number"&gt; 103&lt;/span&gt;     private JToolBar toolbar = new JToolBar();&lt;br /&gt;&lt;span class="line-number"&gt; 104&lt;/span&gt;     private transient MultiViewElementCallback callback;&lt;br /&gt;&lt;span class="line-number"&gt; 105&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 106&lt;/span&gt;     public PofConfigVisualElement(Lookup lkp) {&lt;br /&gt;&lt;span class="line-number"&gt; 107&lt;/span&gt;         obj = lkp.lookup(PofConfigDataObject.class);&lt;br /&gt;&lt;span class="line-number"&gt; 108&lt;/span&gt;         assert obj != null;&lt;br /&gt;&lt;span class="line-number"&gt; 109&lt;/span&gt;         initComponents();&lt;br /&gt;&lt;span class="line-number"&gt; 110&lt;/span&gt;         initialise();&lt;br /&gt;&lt;span class="line-number"&gt; 111&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 112&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 113&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 114&lt;/span&gt;     public String getName() {&lt;br /&gt;&lt;span class="line-number"&gt; 115&lt;/span&gt;         return "PofConfigVisualElement";&lt;br /&gt;&lt;span class="line-number"&gt; 116&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 117&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 118&lt;/span&gt;     /** This method is called from within the constructor to&lt;br /&gt;&lt;span class="line-number"&gt; 119&lt;/span&gt;      * initialize the form.&lt;br /&gt;&lt;span class="line-number"&gt; 120&lt;/span&gt;      * WARNING: Do NOT modify this code. The content of this method is&lt;br /&gt;&lt;span class="line-number"&gt; 121&lt;/span&gt;      * always regenerated by the Form Editor.&lt;br /&gt;&lt;span class="line-number"&gt; 122&lt;/span&gt;      */&lt;br /&gt;&lt;span class="line-number"&gt; 123&lt;/span&gt;     // &lt;editor-fold defaultstate="collapsed" desc="Generated Code"&gt;                          &lt;br /&gt;&lt;span class="line-number"&gt; 124&lt;/span&gt;     private void initComponents() {&lt;br /&gt;&lt;span class="line-number"&gt; 125&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 126&lt;/span&gt;         jScrollPane3 = new javax.swing.JScrollPane();&lt;br /&gt;&lt;span class="line-number"&gt; 127&lt;/span&gt;         topPanel = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 128&lt;/span&gt;         generalPanel = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 129&lt;/span&gt;         jPanel9 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 130&lt;/span&gt;         jToggleButton1 = new javax.swing.JToggleButton();&lt;br /&gt;&lt;span class="line-number"&gt; 131&lt;/span&gt;         jPanel2 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 132&lt;/span&gt;         cbAllowInterfaces = new javax.swing.JCheckBox();&lt;br /&gt;&lt;span class="line-number"&gt; 133&lt;/span&gt;         cbAllowSubclesses = new javax.swing.JCheckBox();&lt;br /&gt;&lt;span class="line-number"&gt; 134&lt;/span&gt;         jPanel7 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 135&lt;/span&gt;         jLabel1 = new javax.swing.JLabel();&lt;br /&gt;&lt;span class="line-number"&gt; 136&lt;/span&gt;         tfClassName = new javax.swing.JTextField();&lt;br /&gt;&lt;span class="line-number"&gt; 137&lt;/span&gt;         standardPanel = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 138&lt;/span&gt;         jPanel3 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 139&lt;/span&gt;         jToggleButton2 = new javax.swing.JToggleButton();&lt;br /&gt;&lt;span class="line-number"&gt; 140&lt;/span&gt;         jPanel4 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 141&lt;/span&gt;         jScrollPane1 = new javax.swing.JScrollPane();&lt;br /&gt;&lt;span class="line-number"&gt; 142&lt;/span&gt;         tabStandardUT = new javax.swing.JTable();&lt;br /&gt;&lt;span class="line-number"&gt; 143&lt;/span&gt;         customPanel = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 144&lt;/span&gt;         jPanel5 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 145&lt;/span&gt;         jToggleButton3 = new javax.swing.JToggleButton();&lt;br /&gt;&lt;span class="line-number"&gt; 146&lt;/span&gt;         jPanel6 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 147&lt;/span&gt;         jScrollPane2 = new javax.swing.JScrollPane();&lt;br /&gt;&lt;span class="line-number"&gt; 148&lt;/span&gt;         tabCustomUT = new javax.swing.JTable();&lt;br /&gt;&lt;span class="line-number"&gt; 149&lt;/span&gt;         jPanel8 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 150&lt;/span&gt;         btnAdd = new javax.swing.JButton();&lt;br /&gt;&lt;span class="line-number"&gt; 151&lt;/span&gt;         btnEdit = new javax.swing.JButton();&lt;br /&gt;&lt;span class="line-number"&gt; 152&lt;/span&gt;         btnRemove = new javax.swing.JButton();&lt;br /&gt;&lt;span class="line-number"&gt; 153&lt;/span&gt;         jPanel1 = new javax.swing.JPanel();&lt;br /&gt;&lt;span class="line-number"&gt; 154&lt;/span&gt;         btnEditImage = new javax.swing.JButton();&lt;br /&gt;&lt;span class="line-number"&gt; 155&lt;/span&gt;         btnAddImage = new javax.swing.JButton();&lt;br /&gt;&lt;span class="line-number"&gt; 156&lt;/span&gt;         btnDeleteImage = new javax.swing.JButton();&lt;br /&gt;&lt;span class="line-number"&gt; 157&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 158&lt;/span&gt;         jToggleButton1.setSelected(true);&lt;br /&gt;&lt;span class="line-number"&gt; 159&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(jToggleButton1, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.jToggleButton1.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 160&lt;/span&gt;         jToggleButton1.setHorizontalAlignment(javax.swing.SwingConstants.LEADING);&lt;br /&gt;&lt;span class="line-number"&gt; 161&lt;/span&gt;         jToggleButton1.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 162&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 163&lt;/span&gt;                 jToggleButton1ActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 164&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 165&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 166&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 167&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(cbAllowInterfaces, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.cbAllowInterfaces.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 168&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 169&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(cbAllowSubclesses, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.cbAllowSubclesses.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 170&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 171&lt;/span&gt;         jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.jPanel7.border.title"))); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 172&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 173&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.jLabel1.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 174&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 175&lt;/span&gt;         javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);&lt;br /&gt;&lt;span class="line-number"&gt; 176&lt;/span&gt;         jPanel7.setLayout(jPanel7Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 177&lt;/span&gt;         jPanel7Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 178&lt;/span&gt;             jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 179&lt;/span&gt;             .addGroup(jPanel7Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 180&lt;/span&gt;                 .addContainerGap()&lt;br /&gt;&lt;span class="line-number"&gt; 181&lt;/span&gt;                 .addComponent(jLabel1)&lt;br /&gt;&lt;span class="line-number"&gt; 182&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 183&lt;/span&gt;                 .addComponent(tfClassName, javax.swing.GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 184&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 185&lt;/span&gt;         jPanel7Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 186&lt;/span&gt;             jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 187&lt;/span&gt;             .addGroup(jPanel7Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 188&lt;/span&gt;                 .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)&lt;br /&gt;&lt;span class="line-number"&gt; 189&lt;/span&gt;                     .addComponent(jLabel1)&lt;br /&gt;&lt;span class="line-number"&gt; 190&lt;/span&gt;                     .addComponent(tfClassName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))&lt;br /&gt;&lt;span class="line-number"&gt; 191&lt;/span&gt;                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 192&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 193&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 194&lt;/span&gt;         javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);&lt;br /&gt;&lt;span class="line-number"&gt; 195&lt;/span&gt;         jPanel2.setLayout(jPanel2Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 196&lt;/span&gt;         jPanel2Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 197&lt;/span&gt;             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 198&lt;/span&gt;             .addGroup(jPanel2Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 199&lt;/span&gt;                 .addContainerGap()&lt;br /&gt;&lt;span class="line-number"&gt; 200&lt;/span&gt;                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 201&lt;/span&gt;                     .addComponent(cbAllowInterfaces)&lt;br /&gt;&lt;span class="line-number"&gt; 202&lt;/span&gt;                     .addComponent(cbAllowSubclesses)&lt;br /&gt;&lt;span class="line-number"&gt; 203&lt;/span&gt;                     .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))&lt;br /&gt;&lt;span class="line-number"&gt; 204&lt;/span&gt;                 .addContainerGap(22, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 205&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 206&lt;/span&gt;         jPanel2Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 207&lt;/span&gt;             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 208&lt;/span&gt;             .addGroup(jPanel2Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 209&lt;/span&gt;                 .addComponent(cbAllowInterfaces)&lt;br /&gt;&lt;span class="line-number"&gt; 210&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 211&lt;/span&gt;                 .addComponent(cbAllowSubclesses)&lt;br /&gt;&lt;span class="line-number"&gt; 212&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 213&lt;/span&gt;                 .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;&lt;span class="line-number"&gt; 214&lt;/span&gt;                 .addContainerGap(15, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 215&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 216&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 217&lt;/span&gt;         javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);&lt;br /&gt;&lt;span class="line-number"&gt; 218&lt;/span&gt;         jPanel9.setLayout(jPanel9Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 219&lt;/span&gt;         jPanel9Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 220&lt;/span&gt;             jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 221&lt;/span&gt;             .addGroup(jPanel9Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 222&lt;/span&gt;                 .addGap(10, 10, 10)&lt;br /&gt;&lt;span class="line-number"&gt; 223&lt;/span&gt;                 .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;&lt;span class="line-number"&gt; 224&lt;/span&gt;                 .addContainerGap(75, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 225&lt;/span&gt;             .addComponent(jToggleButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 628, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 226&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 227&lt;/span&gt;         jPanel9Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 228&lt;/span&gt;             jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 229&lt;/span&gt;             .addGroup(jPanel9Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 230&lt;/span&gt;                 .addComponent(jToggleButton1)&lt;br /&gt;&lt;span class="line-number"&gt; 231&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 232&lt;/span&gt;                 .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 233&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 234&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 235&lt;/span&gt;         javax.swing.GroupLayout generalPanelLayout = new javax.swing.GroupLayout(generalPanel);&lt;br /&gt;&lt;span class="line-number"&gt; 236&lt;/span&gt;         generalPanel.setLayout(generalPanelLayout);&lt;br /&gt;&lt;span class="line-number"&gt; 237&lt;/span&gt;         generalPanelLayout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 238&lt;/span&gt;             generalPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 239&lt;/span&gt;             .addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 240&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 241&lt;/span&gt;         generalPanelLayout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 242&lt;/span&gt;             generalPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 243&lt;/span&gt;             .addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 244&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 245&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 246&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(jToggleButton2, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.jToggleButton2.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 247&lt;/span&gt;         jToggleButton2.setHorizontalAlignment(javax.swing.SwingConstants.LEADING);&lt;br /&gt;&lt;span class="line-number"&gt; 248&lt;/span&gt;         jToggleButton2.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 249&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 250&lt;/span&gt;                 jToggleButton2ActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 251&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 252&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 253&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 254&lt;/span&gt;         javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);&lt;br /&gt;&lt;span class="line-number"&gt; 255&lt;/span&gt;         jPanel3.setLayout(jPanel3Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 256&lt;/span&gt;         jPanel3Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 257&lt;/span&gt;             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 258&lt;/span&gt;             .addComponent(jToggleButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 628, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 259&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 260&lt;/span&gt;         jPanel3Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 261&lt;/span&gt;             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 262&lt;/span&gt;             .addComponent(jToggleButton2)&lt;br /&gt;&lt;span class="line-number"&gt; 263&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 264&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 265&lt;/span&gt;         tabStandardUT.setModel(getStandardUserTypes());&lt;br /&gt;&lt;span class="line-number"&gt; 266&lt;/span&gt;         tabStandardUT.setFillsViewportHeight(true);&lt;br /&gt;&lt;span class="line-number"&gt; 267&lt;/span&gt;         jScrollPane1.setViewportView(tabStandardUT);&lt;br /&gt;&lt;span class="line-number"&gt; 268&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 269&lt;/span&gt;         javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);&lt;br /&gt;&lt;span class="line-number"&gt; 270&lt;/span&gt;         jPanel4.setLayout(jPanel4Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 271&lt;/span&gt;         jPanel4Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 272&lt;/span&gt;             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 273&lt;/span&gt;             .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 628, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 274&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 275&lt;/span&gt;         jPanel4Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 276&lt;/span&gt;             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 277&lt;/span&gt;             .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 278&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 279&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 280&lt;/span&gt;         javax.swing.GroupLayout standardPanelLayout = new javax.swing.GroupLayout(standardPanel);&lt;br /&gt;&lt;span class="line-number"&gt; 281&lt;/span&gt;         standardPanel.setLayout(standardPanelLayout);&lt;br /&gt;&lt;span class="line-number"&gt; 282&lt;/span&gt;         standardPanelLayout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 283&lt;/span&gt;             standardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 284&lt;/span&gt;             .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 285&lt;/span&gt;             .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 286&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 287&lt;/span&gt;         standardPanelLayout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 288&lt;/span&gt;             standardPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 289&lt;/span&gt;             .addGroup(standardPanelLayout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 290&lt;/span&gt;                 .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;&lt;span class="line-number"&gt; 291&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 292&lt;/span&gt;                 .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))&lt;br /&gt;&lt;span class="line-number"&gt; 293&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 294&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 295&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(jToggleButton3, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.jToggleButton3.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 296&lt;/span&gt;         jToggleButton3.setHorizontalAlignment(javax.swing.SwingConstants.LEADING);&lt;br /&gt;&lt;span class="line-number"&gt; 297&lt;/span&gt;         jToggleButton3.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 298&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 299&lt;/span&gt;                 jToggleButton3ActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 300&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 301&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 302&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 303&lt;/span&gt;         javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);&lt;br /&gt;&lt;span class="line-number"&gt; 304&lt;/span&gt;         jPanel5.setLayout(jPanel5Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 305&lt;/span&gt;         jPanel5Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 306&lt;/span&gt;             jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 307&lt;/span&gt;             .addComponent(jToggleButton3, javax.swing.GroupLayout.DEFAULT_SIZE, 628, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 308&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 309&lt;/span&gt;         jPanel5Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 310&lt;/span&gt;             jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 311&lt;/span&gt;             .addGroup(jPanel5Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 312&lt;/span&gt;                 .addComponent(jToggleButton3)&lt;br /&gt;&lt;span class="line-number"&gt; 313&lt;/span&gt;                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 314&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 315&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 316&lt;/span&gt;         tabCustomUT.setModel(getCustomUserTypes());&lt;br /&gt;&lt;span class="line-number"&gt; 317&lt;/span&gt;         tabCustomUT.setFillsViewportHeight(true);&lt;br /&gt;&lt;span class="line-number"&gt; 318&lt;/span&gt;         jScrollPane2.setViewportView(tabCustomUT);&lt;br /&gt;&lt;span class="line-number"&gt; 319&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 320&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(btnAdd, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.btnAdd.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 321&lt;/span&gt;         btnAdd.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 322&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 323&lt;/span&gt;                 btnAddActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 324&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 325&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 326&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 327&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(btnEdit, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.btnEdit.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 328&lt;/span&gt;         btnEdit.setEnabled(false);&lt;br /&gt;&lt;span class="line-number"&gt; 329&lt;/span&gt;         btnEdit.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 330&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 331&lt;/span&gt;                 btnEditActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 332&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 333&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 334&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 335&lt;/span&gt;         org.openide.awt.Mnemonics.setLocalizedText(btnRemove, org.openide.util.NbBundle.getMessage(PofConfigVisualElement.class, "PofConfigVisualElement.btnRemove.text")); // NOI18N&lt;br /&gt;&lt;span class="line-number"&gt; 336&lt;/span&gt;         btnRemove.setEnabled(false);&lt;br /&gt;&lt;span class="line-number"&gt; 337&lt;/span&gt;         btnRemove.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 338&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 339&lt;/span&gt;                 btnRemoveActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 340&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 341&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 342&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 343&lt;/span&gt;         javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);&lt;br /&gt;&lt;span class="line-number"&gt; 344&lt;/span&gt;         jPanel8.setLayout(jPanel8Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 345&lt;/span&gt;         jPanel8Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 346&lt;/span&gt;             jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 347&lt;/span&gt;             .addGroup(jPanel8Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 348&lt;/span&gt;                 .addContainerGap()&lt;br /&gt;&lt;span class="line-number"&gt; 349&lt;/span&gt;                 .addComponent(btnAdd)&lt;br /&gt;&lt;span class="line-number"&gt; 350&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 351&lt;/span&gt;                 .addComponent(btnEdit)&lt;br /&gt;&lt;span class="line-number"&gt; 352&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 353&lt;/span&gt;                 .addComponent(btnRemove)&lt;br /&gt;&lt;span class="line-number"&gt; 354&lt;/span&gt;                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 355&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 356&lt;/span&gt;         jPanel8Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 357&lt;/span&gt;             jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 358&lt;/span&gt;             .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)&lt;br /&gt;&lt;span class="line-number"&gt; 359&lt;/span&gt;                 .addComponent(btnAdd)&lt;br /&gt;&lt;span class="line-number"&gt; 360&lt;/span&gt;                 .addComponent(btnEdit)&lt;br /&gt;&lt;span class="line-number"&gt; 361&lt;/span&gt;                 .addComponent(btnRemove))&lt;br /&gt;&lt;span class="line-number"&gt; 362&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 363&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 364&lt;/span&gt;         btnEditImage.setBorderPainted(false);&lt;br /&gt;&lt;span class="line-number"&gt; 365&lt;/span&gt;         btnEditImage.setContentAreaFilled(false);&lt;br /&gt;&lt;span class="line-number"&gt; 366&lt;/span&gt;         btnEditImage.setEnabled(false);&lt;br /&gt;&lt;span class="line-number"&gt; 367&lt;/span&gt;         btnEditImage.setMargin(new java.awt.Insets(2, 2, 2, 2));&lt;br /&gt;&lt;span class="line-number"&gt; 368&lt;/span&gt;         btnEditImage.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 369&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 370&lt;/span&gt;                 btnEditImageActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 371&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 372&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 373&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 374&lt;/span&gt;         btnAddImage.setBorderPainted(false);&lt;br /&gt;&lt;span class="line-number"&gt; 375&lt;/span&gt;         btnAddImage.setContentAreaFilled(false);&lt;br /&gt;&lt;span class="line-number"&gt; 376&lt;/span&gt;         btnAddImage.setMargin(new java.awt.Insets(2, 2, 2, 2));&lt;br /&gt;&lt;span class="line-number"&gt; 377&lt;/span&gt;         btnAddImage.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 378&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 379&lt;/span&gt;                 btnAddImageActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 380&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 381&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 382&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 383&lt;/span&gt;         btnDeleteImage.setBorderPainted(false);&lt;br /&gt;&lt;span class="line-number"&gt; 384&lt;/span&gt;         btnDeleteImage.setContentAreaFilled(false);&lt;br /&gt;&lt;span class="line-number"&gt; 385&lt;/span&gt;         btnDeleteImage.setEnabled(false);&lt;br /&gt;&lt;span class="line-number"&gt; 386&lt;/span&gt;         btnDeleteImage.setMargin(new java.awt.Insets(2, 2, 2, 2));&lt;br /&gt;&lt;span class="line-number"&gt; 387&lt;/span&gt;         btnDeleteImage.addActionListener(new java.awt.event.ActionListener() {&lt;br /&gt;&lt;span class="line-number"&gt; 388&lt;/span&gt;             public void actionPerformed(java.awt.event.ActionEvent evt) {&lt;br /&gt;&lt;span class="line-number"&gt; 389&lt;/span&gt;                 btnDeleteImageActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 390&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 391&lt;/span&gt;         });&lt;br /&gt;&lt;span class="line-number"&gt; 392&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 393&lt;/span&gt;         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);&lt;br /&gt;&lt;span class="line-number"&gt; 394&lt;/span&gt;         jPanel1.setLayout(jPanel1Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 395&lt;/span&gt;         jPanel1Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 396&lt;/span&gt;             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 397&lt;/span&gt;             .addComponent(btnEditImage)&lt;br /&gt;&lt;span class="line-number"&gt; 398&lt;/span&gt;             .addComponent(btnAddImage)&lt;br /&gt;&lt;span class="line-number"&gt; 399&lt;/span&gt;             .addComponent(btnDeleteImage)&lt;br /&gt;&lt;span class="line-number"&gt; 400&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 401&lt;/span&gt;         jPanel1Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 402&lt;/span&gt;             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 403&lt;/span&gt;             .addGroup(jPanel1Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 404&lt;/span&gt;                 .addComponent(btnAddImage)&lt;br /&gt;&lt;span class="line-number"&gt; 405&lt;/span&gt;                 .addGap(6, 6, 6)&lt;br /&gt;&lt;span class="line-number"&gt; 406&lt;/span&gt;                 .addComponent(btnEditImage)&lt;br /&gt;&lt;span class="line-number"&gt; 407&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 408&lt;/span&gt;                 .addComponent(btnDeleteImage)&lt;br /&gt;&lt;span class="line-number"&gt; 409&lt;/span&gt;                 .addContainerGap(43, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 410&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 411&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 412&lt;/span&gt;         javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);&lt;br /&gt;&lt;span class="line-number"&gt; 413&lt;/span&gt;         jPanel6.setLayout(jPanel6Layout);&lt;br /&gt;&lt;span class="line-number"&gt; 414&lt;/span&gt;         jPanel6Layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 415&lt;/span&gt;             jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 416&lt;/span&gt;             .addGroup(jPanel6Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 417&lt;/span&gt;                 .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 418&lt;/span&gt;                     .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;&lt;span class="line-number"&gt; 419&lt;/span&gt;                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 420&lt;/span&gt;                         .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 603, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 421&lt;/span&gt;                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 422&lt;/span&gt;                         .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))&lt;br /&gt;&lt;span class="line-number"&gt; 423&lt;/span&gt;                 .addContainerGap())&lt;br /&gt;&lt;span class="line-number"&gt; 424&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 425&lt;/span&gt;         jPanel6Layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 426&lt;/span&gt;             jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 427&lt;/span&gt;             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 428&lt;/span&gt;                 .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 429&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 430&lt;/span&gt;                 .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))&lt;br /&gt;&lt;span class="line-number"&gt; 431&lt;/span&gt;             .addGroup(jPanel6Layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 432&lt;/span&gt;                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;&lt;span class="line-number"&gt; 433&lt;/span&gt;                 .addContainerGap())&lt;br /&gt;&lt;span class="line-number"&gt; 434&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 435&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 436&lt;/span&gt;         javax.swing.GroupLayout customPanelLayout = new javax.swing.GroupLayout(customPanel);&lt;br /&gt;&lt;span class="line-number"&gt; 437&lt;/span&gt;         customPanel.setLayout(customPanelLayout);&lt;br /&gt;&lt;span class="line-number"&gt; 438&lt;/span&gt;         customPanelLayout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 439&lt;/span&gt;             customPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 440&lt;/span&gt;             .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 441&lt;/span&gt;             .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 442&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 443&lt;/span&gt;         customPanelLayout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 444&lt;/span&gt;             customPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 445&lt;/span&gt;             .addGroup(customPanelLayout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 446&lt;/span&gt;                 .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;&lt;span class="line-number"&gt; 447&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 448&lt;/span&gt;                 .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 449&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 450&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 451&lt;/span&gt;         javax.swing.GroupLayout topPanelLayout = new javax.swing.GroupLayout(topPanel);&lt;br /&gt;&lt;span class="line-number"&gt; 452&lt;/span&gt;         topPanel.setLayout(topPanelLayout);&lt;br /&gt;&lt;span class="line-number"&gt; 453&lt;/span&gt;         topPanelLayout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 454&lt;/span&gt;             topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 455&lt;/span&gt;             .addComponent(standardPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 456&lt;/span&gt;             .addComponent(generalPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 457&lt;/span&gt;             .addComponent(customPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 458&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 459&lt;/span&gt;         topPanelLayout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 460&lt;/span&gt;             topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 461&lt;/span&gt;             .addGroup(topPanelLayout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 462&lt;/span&gt;                 .addComponent(generalPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;&lt;span class="line-number"&gt; 463&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 464&lt;/span&gt;                 .addComponent(standardPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)&lt;br /&gt;&lt;span class="line-number"&gt; 465&lt;/span&gt;                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)&lt;br /&gt;&lt;span class="line-number"&gt; 466&lt;/span&gt;                 .addComponent(customPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 467&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 468&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 469&lt;/span&gt;         jScrollPane3.setViewportView(topPanel);&lt;br /&gt;&lt;span class="line-number"&gt; 470&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 471&lt;/span&gt;         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);&lt;br /&gt;&lt;span class="line-number"&gt; 472&lt;/span&gt;         this.setLayout(layout);&lt;br /&gt;&lt;span class="line-number"&gt; 473&lt;/span&gt;         layout.setHorizontalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 474&lt;/span&gt;             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 475&lt;/span&gt;             .addGap(0, 400, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 476&lt;/span&gt;             .addGroup(layout.createSequentialGroup()&lt;br /&gt;&lt;span class="line-number"&gt; 477&lt;/span&gt;                 .addContainerGap()&lt;br /&gt;&lt;span class="line-number"&gt; 478&lt;/span&gt;                 .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 390, Short.MAX_VALUE))&lt;br /&gt;&lt;span class="line-number"&gt; 479&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 480&lt;/span&gt;         layout.setVerticalGroup(&lt;br /&gt;&lt;span class="line-number"&gt; 481&lt;/span&gt;             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)&lt;br /&gt;&lt;span class="line-number"&gt; 482&lt;/span&gt;             .addGap(0, 300, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 483&lt;/span&gt;             .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)&lt;br /&gt;&lt;span class="line-number"&gt; 484&lt;/span&gt;         );&lt;br /&gt;&lt;span class="line-number"&gt; 485&lt;/span&gt;     }// &lt;/editor-fold&gt;                        &lt;br /&gt;&lt;span class="line-number"&gt; 486&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 487&lt;/span&gt; private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               &lt;br /&gt;&lt;span class="line-number"&gt; 488&lt;/span&gt;     jPanel2.setVisible(jToggleButton1.isSelected());&lt;br /&gt;&lt;span class="line-number"&gt; 489&lt;/span&gt; }                                              &lt;br /&gt;&lt;span class="line-number"&gt; 490&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 491&lt;/span&gt; private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                               &lt;br /&gt;&lt;span class="line-number"&gt; 492&lt;/span&gt;     jPanel4.setVisible(jToggleButton2.isSelected());&lt;br /&gt;&lt;span class="line-number"&gt; 493&lt;/span&gt; }                                              &lt;br /&gt;&lt;span class="line-number"&gt; 494&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 495&lt;/span&gt; private void jToggleButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                               &lt;br /&gt;&lt;span class="line-number"&gt; 496&lt;/span&gt;     jPanel6.setVisible(jToggleButton3.isSelected());&lt;br /&gt;&lt;span class="line-number"&gt; 497&lt;/span&gt; }                                              &lt;br /&gt;&lt;span class="line-number"&gt; 498&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 499&lt;/span&gt; private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {                                       &lt;br /&gt;&lt;span class="line-number"&gt; 500&lt;/span&gt;     java.awt.EventQueue.invokeLater(new Runnable() {&lt;br /&gt;&lt;span class="line-number"&gt; 501&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 502&lt;/span&gt;         public void run() {&lt;br /&gt;&lt;span class="line-number"&gt; 503&lt;/span&gt;             EditUserTypeDialog dialog = new EditUserTypeDialog(null, true, null);&lt;br /&gt;&lt;span class="line-number"&gt; 504&lt;/span&gt;             dialog.setLocationRelativeTo(null);&lt;br /&gt;&lt;span class="line-number"&gt; 505&lt;/span&gt;             dialog.setVisible(true);&lt;br /&gt;&lt;span class="line-number"&gt; 506&lt;/span&gt;             if (dialog.getReturnStatus() == dialog.RET_OK) {&lt;br /&gt;&lt;span class="line-number"&gt; 507&lt;/span&gt;                 getModel().startTransaction();&lt;br /&gt;&lt;span class="line-number"&gt; 508&lt;/span&gt;                 try {&lt;br /&gt;&lt;span class="line-number"&gt; 509&lt;/span&gt;                     UserType ut = getFactory().createUserType();&lt;br /&gt;&lt;span class="line-number"&gt; 510&lt;/span&gt;                     ut.setClassName(getFactory().createClassName());&lt;br /&gt;&lt;span class="line-number"&gt; 511&lt;/span&gt;                     ut.getClassName().setValue(dialog.getClassname());&lt;br /&gt;&lt;span class="line-number"&gt; 512&lt;/span&gt;                     ut.setTypeId(getFactory().createTypeId());&lt;br /&gt;&lt;span class="line-number"&gt; 513&lt;/span&gt;                     ut.getTypeId().setValue(Integer.parseInt(dialog.getTypeId()));&lt;br /&gt;&lt;span class="line-number"&gt; 514&lt;/span&gt;                     String serializer = dialog.getSerializerClassname();&lt;br /&gt;&lt;span class="line-number"&gt; 515&lt;/span&gt;                     if (serializer != null &amp;amp; serializer.trim().length() &amp;gt; 0) {&lt;br /&gt;&lt;span class="line-number"&gt; 516&lt;/span&gt;                         Serializer utSerializer = getFactory().createSerializer();&lt;br /&gt;&lt;span class="line-number"&gt; 517&lt;/span&gt;                         utSerializer.setClassName(getFactory().createClassName());&lt;br /&gt;&lt;span class="line-number"&gt; 518&lt;/span&gt;                         utSerializer.getClassName().setValue(serializer);&lt;br /&gt;&lt;span class="line-number"&gt; 519&lt;/span&gt;                         ut.setSerializer(utSerializer);&lt;br /&gt;&lt;span class="line-number"&gt; 520&lt;/span&gt;                     }&lt;br /&gt;&lt;span class="line-number"&gt; 521&lt;/span&gt;                     PofConfig pofConfig = getPofConfig();&lt;br /&gt;&lt;span class="line-number"&gt; 522&lt;/span&gt;                     pofConfig.getUserTypeList().addElement(ut);&lt;br /&gt;&lt;span class="line-number"&gt; 523&lt;/span&gt;                     customUserTypes.addRow(ut.getTypeId().getValue(), ut.getClassName().getValue(), serializer, ut);&lt;br /&gt;&lt;span class="line-number"&gt; 524&lt;/span&gt;                     setModified();&lt;br /&gt;&lt;span class="line-number"&gt; 525&lt;/span&gt;                     //                    serialize();&lt;br /&gt;&lt;span class="line-number"&gt; 526&lt;/span&gt;                 } catch (ValueNotPermittedException ex) {&lt;br /&gt;&lt;span class="line-number"&gt; 527&lt;/span&gt;                     Exceptions.printStackTrace(ex);&lt;br /&gt;&lt;span class="line-number"&gt; 528&lt;/span&gt;                 }&lt;br /&gt;&lt;span class="line-number"&gt; 529&lt;/span&gt;                 getModel().endTransaction();&lt;br /&gt;&lt;span class="line-number"&gt; 530&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 531&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt; 532&lt;/span&gt;     });&lt;br /&gt;&lt;span class="line-number"&gt; 533&lt;/span&gt; }                                      &lt;br /&gt;&lt;span class="line-number"&gt; 534&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 535&lt;/span&gt; private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {                                        &lt;br /&gt;&lt;span class="line-number"&gt; 536&lt;/span&gt;     java.awt.EventQueue.invokeLater(new Runnable() {&lt;br /&gt;&lt;span class="line-number"&gt; 537&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 538&lt;/span&gt;         public void run() {&lt;br /&gt;&lt;span class="line-number"&gt; 539&lt;/span&gt;             int rowNum = tabCustomUT.getSelectedRow();&lt;br /&gt;&lt;span class="line-number"&gt; 540&lt;/span&gt;             UserType ut = (UserType) customUserTypes.getUserType(rowNum);&lt;br /&gt;&lt;span class="line-number"&gt; 541&lt;/span&gt;             EditUserTypeDialog dialog = new EditUserTypeDialog(null, true, ut);&lt;br /&gt;&lt;span class="line-number"&gt; 542&lt;/span&gt;             dialog.setLocationRelativeTo(null);&lt;br /&gt;&lt;span class="line-number"&gt; 543&lt;/span&gt;             dialog.setVisible(true);&lt;br /&gt;&lt;span class="line-number"&gt; 544&lt;/span&gt;             if (dialog.getReturnStatus() == dialog.RET_OK) {&lt;br /&gt;&lt;span class="line-number"&gt; 545&lt;/span&gt;                 getModel().startTransaction();&lt;br /&gt;&lt;span class="line-number"&gt; 546&lt;/span&gt;                 try {&lt;br /&gt;&lt;span class="line-number"&gt; 547&lt;/span&gt;                     ut.getClassName().setValue(dialog.getClassname());&lt;br /&gt;&lt;span class="line-number"&gt; 548&lt;/span&gt;                     ut.getTypeId().setValue(Integer.parseInt(dialog.getTypeId()));&lt;br /&gt;&lt;span class="line-number"&gt; 549&lt;/span&gt;                     String serializer = dialog.getSerializerClassname();&lt;br /&gt;&lt;span class="line-number"&gt; 550&lt;/span&gt;                     if (serializer != null &amp;amp; serializer.trim().length() &amp;gt; 0) {&lt;br /&gt;&lt;span class="line-number"&gt; 551&lt;/span&gt;                         Serializer utSerializer = getFactory().createSerializer();&lt;br /&gt;&lt;span class="line-number"&gt; 552&lt;/span&gt;                         if (utSerializer.getClassName() == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 553&lt;/span&gt;                             utSerializer.setClassName(getFactory().createClassName());&lt;br /&gt;&lt;span class="line-number"&gt; 554&lt;/span&gt;                         }&lt;br /&gt;&lt;span class="line-number"&gt; 555&lt;/span&gt;                         utSerializer.getClassName().setValue(serializer);&lt;br /&gt;&lt;span class="line-number"&gt; 556&lt;/span&gt;                         ut.setSerializer(utSerializer);&lt;br /&gt;&lt;span class="line-number"&gt; 557&lt;/span&gt;                     }&lt;br /&gt;&lt;span class="line-number"&gt; 558&lt;/span&gt;                     //                    PofConfig pofConfig = getPofConfig();&lt;br /&gt;&lt;span class="line-number"&gt; 559&lt;/span&gt;                     //                    pofConfig.getUserTypeList().getUserTypeOrInclude().add(ut);&lt;br /&gt;&lt;span class="line-number"&gt; 560&lt;/span&gt;                     customUserTypes.updateRow(rowNum, ut.getTypeId().getValue(), ut.getClassName().getValue(), serializer);&lt;br /&gt;&lt;span class="line-number"&gt; 561&lt;/span&gt;                     setModified();&lt;br /&gt;&lt;span class="line-number"&gt; 562&lt;/span&gt;                     //                    serialize();&lt;br /&gt;&lt;span class="line-number"&gt; 563&lt;/span&gt;                 } catch (ValueNotPermittedException ex) {&lt;br /&gt;&lt;span class="line-number"&gt; 564&lt;/span&gt;                     Exceptions.printStackTrace(ex);&lt;br /&gt;&lt;span class="line-number"&gt; 565&lt;/span&gt;                 }&lt;br /&gt;&lt;span class="line-number"&gt; 566&lt;/span&gt;                 getModel().endTransaction();&lt;br /&gt;&lt;span class="line-number"&gt; 567&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 568&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt; 569&lt;/span&gt;     });&lt;br /&gt;&lt;span class="line-number"&gt; 570&lt;/span&gt; }                                       &lt;br /&gt;&lt;span class="line-number"&gt; 571&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 572&lt;/span&gt; private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {                                          &lt;br /&gt;&lt;span class="line-number"&gt; 573&lt;/span&gt;     java.awt.EventQueue.invokeLater(new Runnable() {&lt;br /&gt;&lt;span class="line-number"&gt; 574&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 575&lt;/span&gt;         public void run() {&lt;br /&gt;&lt;span class="line-number"&gt; 576&lt;/span&gt;             int option = JOptionPane.showConfirmDialog(customPanel, "Please Confirm User Type Removal", "", JOptionPane.OK_CANCEL_OPTION);&lt;br /&gt;&lt;span class="line-number"&gt; 577&lt;/span&gt;             if (option == JOptionPane.OK_OPTION) {&lt;br /&gt;&lt;span class="line-number"&gt; 578&lt;/span&gt;                 int rowNum = tabCustomUT.getSelectedRow();&lt;br /&gt;&lt;span class="line-number"&gt; 579&lt;/span&gt;                 UserType ut = (UserType) customUserTypes.getUserType(rowNum);&lt;br /&gt;&lt;span class="line-number"&gt; 580&lt;/span&gt;                 customUserTypes.removeRow(rowNum);&lt;br /&gt;&lt;span class="line-number"&gt; 581&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 582&lt;/span&gt;                 getModel().startTransaction();&lt;br /&gt;&lt;span class="line-number"&gt; 583&lt;/span&gt;                 for (UserType xmlUT : getPofConfig().getUserTypeList().getUserTypes()) {&lt;br /&gt;&lt;span class="line-number"&gt; 584&lt;/span&gt;                     if (xmlUT.getTypeId().equals(ut.getTypeId()) &amp;amp;&amp;amp; xmlUT.getClassName().equals(ut.getClassName())) {&lt;br /&gt;&lt;span class="line-number"&gt; 585&lt;/span&gt;                         getPofConfig().getUserTypeList().removeElement(xmlUT);&lt;br /&gt;&lt;span class="line-number"&gt; 586&lt;/span&gt;                         break;&lt;br /&gt;&lt;span class="line-number"&gt; 587&lt;/span&gt;                     }&lt;br /&gt;&lt;span class="line-number"&gt; 588&lt;/span&gt;                 }&lt;br /&gt;&lt;span class="line-number"&gt; 589&lt;/span&gt;                 setModified();&lt;br /&gt;&lt;span class="line-number"&gt; 590&lt;/span&gt;                 getModel().endTransaction();&lt;br /&gt;&lt;span class="line-number"&gt; 591&lt;/span&gt; //                    serialize();&lt;br /&gt;&lt;span class="line-number"&gt; 592&lt;/span&gt;             }&lt;br /&gt;&lt;span class="line-number"&gt; 593&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt; 594&lt;/span&gt;     });&lt;br /&gt;&lt;span class="line-number"&gt; 595&lt;/span&gt; }                                         &lt;br /&gt;&lt;span class="line-number"&gt; 596&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 597&lt;/span&gt; private void btnEditImageActionPerformed(java.awt.event.ActionEvent evt) {                                             &lt;br /&gt;&lt;span class="line-number"&gt; 598&lt;/span&gt;     btnEditActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 599&lt;/span&gt; }                                            &lt;br /&gt;&lt;span class="line-number"&gt; 600&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 601&lt;/span&gt; private void btnAddImageActionPerformed(java.awt.event.ActionEvent evt) {                                            &lt;br /&gt;&lt;span class="line-number"&gt; 602&lt;/span&gt;     btnAddActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 603&lt;/span&gt; }                                           &lt;br /&gt;&lt;span class="line-number"&gt; 604&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 605&lt;/span&gt; private void btnDeleteImageActionPerformed(java.awt.event.ActionEvent evt) {                                               &lt;br /&gt;&lt;span class="line-number"&gt; 606&lt;/span&gt;     btnRemoveActionPerformed(evt);&lt;br /&gt;&lt;span class="line-number"&gt; 607&lt;/span&gt; }                                              &lt;br /&gt;&lt;span class="line-number"&gt; 608&lt;/span&gt;     // Variables declaration - do not modify                     &lt;br /&gt;&lt;span class="line-number"&gt; 609&lt;/span&gt;     private javax.swing.JButton btnAdd;&lt;br /&gt;&lt;span class="line-number"&gt; 610&lt;/span&gt;     private javax.swing.JButton btnAddImage;&lt;br /&gt;&lt;span class="line-number"&gt; 611&lt;/span&gt;     private javax.swing.JButton btnDeleteImage;&lt;br /&gt;&lt;span class="line-number"&gt; 612&lt;/span&gt;     private javax.swing.JButton btnEdit;&lt;br /&gt;&lt;span class="line-number"&gt; 613&lt;/span&gt;     private javax.swing.JButton btnEditImage;&lt;br /&gt;&lt;span class="line-number"&gt; 614&lt;/span&gt;     private javax.swing.JButton btnRemove;&lt;br /&gt;&lt;span class="line-number"&gt; 615&lt;/span&gt;     private javax.swing.JCheckBox cbAllowInterfaces;&lt;br /&gt;&lt;span class="line-number"&gt; 616&lt;/span&gt;     private javax.swing.JCheckBox cbAllowSubclesses;&lt;br /&gt;&lt;span class="line-number"&gt; 617&lt;/span&gt;     private javax.swing.JPanel customPanel;&lt;br /&gt;&lt;span class="line-number"&gt; 618&lt;/span&gt;     private javax.swing.JPanel generalPanel;&lt;br /&gt;&lt;span class="line-number"&gt; 619&lt;/span&gt;     private javax.swing.JLabel jLabel1;&lt;br /&gt;&lt;span class="line-number"&gt; 620&lt;/span&gt;     private javax.swing.JPanel jPanel1;&lt;br /&gt;&lt;span class="line-number"&gt; 621&lt;/span&gt;     private javax.swing.JPanel jPanel2;&lt;br /&gt;&lt;span class="line-number"&gt; 622&lt;/span&gt;     private javax.swing.JPanel jPanel3;&lt;br /&gt;&lt;span class="line-number"&gt; 623&lt;/span&gt;     private javax.swing.JPanel jPanel4;&lt;br /&gt;&lt;span class="line-number"&gt; 624&lt;/span&gt;     private javax.swing.JPanel jPanel5;&lt;br /&gt;&lt;span class="line-number"&gt; 625&lt;/span&gt;     private javax.swing.JPanel jPanel6;&lt;br /&gt;&lt;span class="line-number"&gt; 626&lt;/span&gt;     private javax.swing.JPanel jPanel7;&lt;br /&gt;&lt;span class="line-number"&gt; 627&lt;/span&gt;     private javax.swing.JPanel jPanel8;&lt;br /&gt;&lt;span class="line-number"&gt; 628&lt;/span&gt;     private javax.swing.JPanel jPanel9;&lt;br /&gt;&lt;span class="line-number"&gt; 629&lt;/span&gt;     private javax.swing.JScrollPane jScrollPane1;&lt;br /&gt;&lt;span class="line-number"&gt; 630&lt;/span&gt;     private javax.swing.JScrollPane jScrollPane2;&lt;br /&gt;&lt;span class="line-number"&gt; 631&lt;/span&gt;     private javax.swing.JScrollPane jScrollPane3;&lt;br /&gt;&lt;span class="line-number"&gt; 632&lt;/span&gt;     private javax.swing.JToggleButton jToggleButton1;&lt;br /&gt;&lt;span class="line-number"&gt; 633&lt;/span&gt;     private javax.swing.JToggleButton jToggleButton2;&lt;br /&gt;&lt;span class="line-number"&gt; 634&lt;/span&gt;     private javax.swing.JToggleButton jToggleButton3;&lt;br /&gt;&lt;span class="line-number"&gt; 635&lt;/span&gt;     private javax.swing.JPanel standardPanel;&lt;br /&gt;&lt;span class="line-number"&gt; 636&lt;/span&gt;     private javax.swing.JTable tabCustomUT;&lt;br /&gt;&lt;span class="line-number"&gt; 637&lt;/span&gt;     private javax.swing.JTable tabStandardUT;&lt;br /&gt;&lt;span class="line-number"&gt; 638&lt;/span&gt;     private javax.swing.JTextField tfClassName;&lt;br /&gt;&lt;span class="line-number"&gt; 639&lt;/span&gt;     private javax.swing.JPanel topPanel;&lt;br /&gt;&lt;span class="line-number"&gt; 640&lt;/span&gt;     // End of variables declaration                   &lt;br /&gt;&lt;span class="line-number"&gt; 641&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 642&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 643&lt;/span&gt;     public JComponent getVisualRepresentation() {&lt;br /&gt;&lt;span class="line-number"&gt; 644&lt;/span&gt;         return this;&lt;br /&gt;&lt;span class="line-number"&gt; 645&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 646&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 647&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 648&lt;/span&gt;     public JComponent getToolbarRepresentation() {&lt;br /&gt;&lt;span class="line-number"&gt; 649&lt;/span&gt;         return toolbar;&lt;br /&gt;&lt;span class="line-number"&gt; 650&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 651&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 652&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 653&lt;/span&gt;     public Action[] getActions() {&lt;br /&gt;&lt;span class="line-number"&gt; 654&lt;/span&gt;         return new Action[0];&lt;br /&gt;&lt;span class="line-number"&gt; 655&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 656&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 657&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 658&lt;/span&gt;     public Lookup getLookup() {&lt;br /&gt;&lt;span class="line-number"&gt; 659&lt;/span&gt;         return obj.getLookup();&lt;br /&gt;&lt;span class="line-number"&gt; 660&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 661&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 662&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 663&lt;/span&gt;     public void componentOpened() {&lt;br /&gt;&lt;span class="line-number"&gt; 664&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 665&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 666&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 667&lt;/span&gt;     public void componentClosed() {&lt;br /&gt;&lt;span class="line-number"&gt; 668&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 669&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 670&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 671&lt;/span&gt;     public void componentShowing() {&lt;br /&gt;&lt;span class="line-number"&gt; 672&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 673&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 674&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 675&lt;/span&gt;     public void componentHidden() {&lt;br /&gt;&lt;span class="line-number"&gt; 676&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 677&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 678&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 679&lt;/span&gt;     public void componentActivated() {&lt;br /&gt;&lt;span class="line-number"&gt; 680&lt;/span&gt;         Logger.getLogger(this.getClass()).log(Level.INFO, "*** APH-I1 : Allowed Subclasses : " + getRoot().getAllowSubclasses().getValue());&lt;br /&gt;&lt;span class="line-number"&gt; 681&lt;/span&gt;         refreshBindings();&lt;br /&gt;&lt;span class="line-number"&gt; 682&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 683&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 684&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 685&lt;/span&gt;     public void componentDeactivated() {&lt;br /&gt;&lt;span class="line-number"&gt; 686&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 687&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 688&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 689&lt;/span&gt;     public UndoRedo getUndoRedo() {&lt;br /&gt;&lt;span class="line-number"&gt; 690&lt;/span&gt;         return UndoRedo.NONE;&lt;br /&gt;&lt;span class="line-number"&gt; 691&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 692&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 693&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 694&lt;/span&gt;     public void setMultiViewCallback(MultiViewElementCallback callback) {&lt;br /&gt;&lt;span class="line-number"&gt; 695&lt;/span&gt;         this.callback = callback;&lt;br /&gt;&lt;span class="line-number"&gt; 696&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 697&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 698&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 699&lt;/span&gt;     public CloseOperationState canCloseElement() {&lt;br /&gt;&lt;span class="line-number"&gt; 700&lt;/span&gt;         return CloseOperationState.STATE_OK;&lt;br /&gt;&lt;span class="line-number"&gt; 701&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 702&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 703&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 704&lt;/span&gt;     public void tableChanged(TableModelEvent e) {&lt;br /&gt;&lt;span class="line-number"&gt; 705&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 706&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 707&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 708&lt;/span&gt;     public void valueChanged(ListSelectionEvent e) {&lt;br /&gt;&lt;span class="line-number"&gt; 709&lt;/span&gt;         btnEdit.setEnabled(true);&lt;br /&gt;&lt;span class="line-number"&gt; 710&lt;/span&gt;         btnRemove.setEnabled(true);&lt;br /&gt;&lt;span class="line-number"&gt; 711&lt;/span&gt;         btnEditImage.setEnabled(true);&lt;br /&gt;&lt;span class="line-number"&gt; 712&lt;/span&gt;         btnDeleteImage.setEnabled(true);&lt;br /&gt;&lt;span class="line-number"&gt; 713&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 714&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 715&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 716&lt;/span&gt;     public void bindingBecameBound(Binding binding) {&lt;br /&gt;&lt;span class="line-number"&gt; 717&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 718&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 719&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 720&lt;/span&gt;     public void bindingBecameUnbound(Binding binding) {&lt;br /&gt;&lt;span class="line-number"&gt; 721&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 722&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 723&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 724&lt;/span&gt;     public void syncFailed(Binding binding, SyncFailure failure) {&lt;br /&gt;&lt;span class="line-number"&gt; 725&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 726&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 727&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 728&lt;/span&gt;     public void synced(Binding binding) {&lt;br /&gt;&lt;span class="line-number"&gt; 729&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 730&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 731&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 732&lt;/span&gt;     public void sourceChanged(Binding binding, PropertyStateEvent event) {&lt;br /&gt;&lt;span class="line-number"&gt; 733&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 734&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 735&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 736&lt;/span&gt;     public void targetChanged(Binding binding, PropertyStateEvent event) {&lt;br /&gt;&lt;span class="line-number"&gt; 737&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 738&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 739&lt;/span&gt;     /*&lt;br /&gt;&lt;span class="line-number"&gt; 740&lt;/span&gt;      * =========================================================================&lt;br /&gt;&lt;span class="line-number"&gt; 741&lt;/span&gt;      * START: Custom Code&lt;br /&gt;&lt;span class="line-number"&gt; 742&lt;/span&gt;      * =========================================================================&lt;br /&gt;&lt;span class="line-number"&gt; 743&lt;/span&gt;      */&lt;br /&gt;&lt;span class="line-number"&gt; 744&lt;/span&gt;     private PofConfigModel myModel = null;&lt;br /&gt;&lt;span class="line-number"&gt; 745&lt;/span&gt;     private PofConfig myRoot = null;&lt;br /&gt;&lt;span class="line-number"&gt; 746&lt;/span&gt;     private ModelSource myModelSource = null;&lt;br /&gt;&lt;span class="line-number"&gt; 747&lt;/span&gt;     private PofConfigComponentFactory myFactory = null;&lt;br /&gt;&lt;span class="line-number"&gt; 748&lt;/span&gt;     private UserTypesTableModel standardUserTypes = new UserTypesTableModel();&lt;br /&gt;&lt;span class="line-number"&gt; 749&lt;/span&gt;     private UserTypesTableModel customUserTypes = new UserTypesTableModel();&lt;br /&gt;&lt;span class="line-number"&gt; 750&lt;/span&gt;     private BindingGroup bindingGroup = new BindingGroup();&lt;br /&gt;&lt;span class="line-number"&gt; 751&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 752&lt;/span&gt;     private PofConfig getPofConfig() {&lt;br /&gt;&lt;span class="line-number"&gt; 753&lt;/span&gt;         return getRoot();&lt;br /&gt;&lt;span class="line-number"&gt; 754&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 755&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 756&lt;/span&gt;     private PofConfig getRoot() {&lt;br /&gt;&lt;span class="line-number"&gt; 757&lt;/span&gt;         if (myRoot == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 758&lt;/span&gt;             myRoot = getModel().getPofConfig();&lt;br /&gt;&lt;span class="line-number"&gt; 759&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt; 760&lt;/span&gt;         return myRoot;&lt;br /&gt;&lt;span class="line-number"&gt; 761&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 762&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 763&lt;/span&gt;     private PofConfigModel getModel() {&lt;br /&gt;&lt;span class="line-number"&gt; 764&lt;/span&gt;         if (myModel == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 765&lt;/span&gt;             // Get Model&lt;br /&gt;&lt;span class="line-number"&gt; 766&lt;/span&gt;             myModel = PofConfigModelFactory.getInstance().getModel(getModelSource());&lt;br /&gt;&lt;span class="line-number"&gt; 767&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt; 768&lt;/span&gt;         return myModel;&lt;br /&gt;&lt;span class="line-number"&gt; 769&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 770&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 771&lt;/span&gt;     private ModelSource getModelSource() {&lt;br /&gt;&lt;span class="line-number"&gt; 772&lt;/span&gt;         if (myModelSource == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 773&lt;/span&gt;             myModelSource = Utilities.getModelSource(obj.getPrimaryFile(), true);&lt;br /&gt;&lt;span class="line-number"&gt; 774&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt; 775&lt;/span&gt;         return myModelSource;&lt;br /&gt;&lt;span class="line-number"&gt; 776&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 777&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 778&lt;/span&gt;     private PofConfigComponentFactory getFactory() {&lt;br /&gt;&lt;span class="line-number"&gt; 779&lt;/span&gt;         if (myFactory == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 780&lt;/span&gt;             myFactory = getModel().getFactory();&lt;br /&gt;&lt;span class="line-number"&gt; 781&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt; 782&lt;/span&gt;         return myFactory;&lt;br /&gt;&lt;span class="line-number"&gt; 783&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 784&lt;/span&gt;     /*&lt;br /&gt;&lt;span class="line-number"&gt; 785&lt;/span&gt;      * Custom Inner Classes&lt;br /&gt;&lt;span class="line-number"&gt; 786&lt;/span&gt;      */&lt;br /&gt;&lt;span class="line-number"&gt; 787&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 788&lt;/span&gt;     public class UserTypesTableModel extends AbstractTableModel {&lt;br /&gt;&lt;span class="line-number"&gt; 789&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 790&lt;/span&gt;         private final String[] columnNames = {"Type Id", "Class Name", "Serializer"};&lt;br /&gt;&lt;span class="line-number"&gt; 791&lt;/span&gt;         private List&lt;object[]&gt; data = new ArrayList&lt;object[]&gt;(); &lt;span class="line-number"&gt; 792&lt;/span&gt;         private boolean[] edittable = {false, false, false}; &lt;span class="line-number"&gt; 793&lt;/span&gt;  &lt;span class="line-number"&gt; 794&lt;/span&gt;         @Override &lt;span class="line-number"&gt; 795&lt;/span&gt;         public int getRowCount() { &lt;span class="line-number"&gt; 796&lt;/span&gt;             return data.size(); &lt;span class="line-number"&gt; 797&lt;/span&gt;         } &lt;span class="line-number"&gt; 798&lt;/span&gt;  &lt;span class="line-number"&gt; 799&lt;/span&gt;         @Override &lt;span class="line-number"&gt; 800&lt;/span&gt;         public int getColumnCount() { &lt;span class="line-number"&gt; 801&lt;/span&gt;             return columnNames.length; &lt;span class="line-number"&gt; 802&lt;/span&gt;         } &lt;span class="line-number"&gt; 803&lt;/span&gt;  &lt;span class="line-number"&gt; 804&lt;/span&gt;         @Override &lt;span class="line-number"&gt; 805&lt;/span&gt;         public Object getValueAt(int rowIndex, int columnIndex) { &lt;span class="line-number"&gt; 806&lt;/span&gt;             Object value = null; &lt;span class="line-number"&gt; 807&lt;/span&gt;  &lt;span class="line-number"&gt; 808&lt;/span&gt;             if (rowIndex &amp;lt; getRowCount() &amp;amp;&amp;amp; columnIndex &amp;lt; getColumnCount()) { &lt;span class="line-number"&gt; 809&lt;/span&gt;                 value = data.get(rowIndex)[columnIndex]; &lt;span class="line-number"&gt; 810&lt;/span&gt;             } &lt;span class="line-number"&gt; 811&lt;/span&gt;             return value; &lt;span class="line-number"&gt; 812&lt;/span&gt;         } &lt;span class="line-number"&gt; 813&lt;/span&gt;  &lt;span class="line-number"&gt; 814&lt;/span&gt;         @Override &lt;span class="line-number"&gt; 815&lt;/span&gt;         public void setValueAt(Object aValue, int rowIndex, int columnIndex) { &lt;span class="line-number"&gt; 816&lt;/span&gt;             if (rowIndex &amp;lt; getRowCount() &amp;amp;&amp;amp; columnIndex &amp;lt; getColumnCount()) { &lt;span class="line-number"&gt; 817&lt;/span&gt;                 data.get(rowIndex)[columnIndex] = aValue; &lt;span class="line-number"&gt; 818&lt;/span&gt;                 fireTableCellUpdated(rowIndex, columnIndex); &lt;span class="line-number"&gt; 819&lt;/span&gt;             } &lt;span class="line-number"&gt; 820&lt;/span&gt;         } &lt;span class="line-number"&gt; 821&lt;/span&gt;  &lt;span class="line-number"&gt; 822&lt;/span&gt;         @Override &lt;span class="line-number"&gt; 823&lt;/span&gt;         public String getColumnName(int column) { &lt;span class="line-number"&gt; 824&lt;/span&gt;             return columnNames[column]; &lt;span class="line-number"&gt; 825&lt;/span&gt;         } &lt;span class="line-number"&gt; 826&lt;/span&gt;  &lt;span class="line-number"&gt; 827&lt;/span&gt;         @Override &lt;span class="line-number"&gt; 828&lt;/span&gt;         public boolean isCellEditable(int rowIndex, int columnIndex) { &lt;span class="line-number"&gt; 829&lt;/span&gt;             if (getEdittable() == null || columnIndex &amp;gt; getEdittable().length) { &lt;span class="line-number"&gt; 830&lt;/span&gt;                 return false; &lt;span class="line-number"&gt; 831&lt;/span&gt;             } else { &lt;span class="line-number"&gt; 832&lt;/span&gt;                 return getEdittable()[columnIndex]; &lt;span class="line-number"&gt; 833&lt;/span&gt;             } &lt;span class="line-number"&gt; 834&lt;/span&gt;         } &lt;span class="line-number"&gt; 835&lt;/span&gt;  &lt;span class="line-number"&gt; 836&lt;/span&gt;         public boolean[] getEdittable() { &lt;span class="line-number"&gt; 837&lt;/span&gt;             return edittable; &lt;span class="line-number"&gt; 838&lt;/span&gt;         } &lt;span class="line-number"&gt; 839&lt;/span&gt;  &lt;span class="line-number"&gt; 840&lt;/span&gt;         public void setEdittable(boolean[] edittable) { &lt;span class="line-number"&gt; 841&lt;/span&gt;             this.edittable = edittable; &lt;span class="line-number"&gt; 842&lt;/span&gt;         } &lt;span class="line-number"&gt; 843&lt;/span&gt;  &lt;span class="line-number"&gt; 844&lt;/span&gt;         public void addRow(int id, String name, String serializer, Object node) { &lt;span class="line-number"&gt; 845&lt;/span&gt;             Object[] row = {Integer.valueOf(id), name, serializer, node}; &lt;span class="line-number"&gt; 846&lt;/span&gt;             data.add(row); &lt;span class="line-number"&gt; 847&lt;/span&gt;             fireTableDataChanged(); &lt;span class="line-number"&gt; 848&lt;/span&gt;         } &lt;span class="line-number"&gt; 849&lt;/span&gt;  &lt;span class="line-number"&gt; 850&lt;/span&gt;         public void clear() { &lt;span class="line-number"&gt; 851&lt;/span&gt;             data.clear(); &lt;span class="line-number"&gt; 852&lt;/span&gt;             fireTableDataChanged(); &lt;span class="line-number"&gt; 853&lt;/span&gt;         } &lt;span class="line-number"&gt; 854&lt;/span&gt;  &lt;span class="line-number"&gt; 855&lt;/span&gt;         public void updateRow(int rowNum, int id, String name, String serializer) { &lt;span class="line-number"&gt; 856&lt;/span&gt;             try { &lt;span class="line-number"&gt; 857&lt;/span&gt;                 data.get(rowNum)[0] = id; &lt;span class="line-number"&gt; 858&lt;/span&gt;                 data.get(rowNum)[1] = name; &lt;span class="line-number"&gt; 859&lt;/span&gt;                 data.get(rowNum)[2] = serializer; &lt;span class="line-number"&gt; 860&lt;/span&gt;                 UserType ut = (UserType) data.get(rowNum)[3]; &lt;span class="line-number"&gt; 861&lt;/span&gt;                 ut.getClassName().setValue(name); &lt;span class="line-number"&gt; 862&lt;/span&gt;                 ut.getTypeId().setValue(id); &lt;span class="line-number"&gt; 863&lt;/span&gt;                 ut.getSerializer().getClassName().setValue(serializer); &lt;span class="line-number"&gt; 864&lt;/span&gt;                 fireTableDataChanged(); &lt;span class="line-number"&gt; 865&lt;/span&gt;             } catch (ValueNotPermittedException ex) { &lt;span class="line-number"&gt; 866&lt;/span&gt;                 Exceptions.printStackTrace(ex); &lt;span class="line-number"&gt; 867&lt;/span&gt;             } &lt;span class="line-number"&gt; 868&lt;/span&gt;         } &lt;span class="line-number"&gt; 869&lt;/span&gt;  &lt;span class="line-number"&gt; 870&lt;/span&gt;         public Object getUserType(int rowIndex) { &lt;span class="line-number"&gt; 871&lt;/span&gt;             Object value = null; &lt;span class="line-number"&gt; 872&lt;/span&gt;  &lt;span class="line-number"&gt; 873&lt;/span&gt;             if (rowIndex &amp;lt; getRowCount()) { &lt;span class="line-number"&gt; 874&lt;/span&gt;                 value = data.get(rowIndex)[3]; &lt;span class="line-number"&gt; 875&lt;/span&gt;             } &lt;span class="line-number"&gt; 876&lt;/span&gt;             return value; &lt;span class="line-number"&gt; 877&lt;/span&gt;         } &lt;span class="line-number"&gt; 878&lt;/span&gt;  &lt;span class="line-number"&gt; 879&lt;/span&gt;         public void removeRow(int rowIndex) { &lt;span class="line-number"&gt; 880&lt;/span&gt;             if (rowIndex &amp;lt; getRowCount()) { &lt;span class="line-number"&gt; 881&lt;/span&gt;                 data.remove(rowIndex); &lt;span class="line-number"&gt; 882&lt;/span&gt;             } &lt;span class="line-number"&gt; 883&lt;/span&gt;             fireTableDataChanged(); &lt;span class="line-number"&gt; 884&lt;/span&gt;         } &lt;span class="line-number"&gt; 885&lt;/span&gt;  &lt;span class="line-number"&gt; 886&lt;/span&gt;         public List&lt;object[]&gt; getData() { &lt;span class="line-number"&gt; 887&lt;/span&gt;             return data; &lt;span class="line-number"&gt; 888&lt;/span&gt;         } &lt;span class="line-number"&gt; 889&lt;/span&gt;  &lt;span class="line-number"&gt; 890&lt;/span&gt;         public void setData(List&lt;object[]&gt; data) { &lt;span class="line-number"&gt; 891&lt;/span&gt;             this.data = data; &lt;span class="line-number"&gt; 892&lt;/span&gt;             fireTableDataChanged(); &lt;span class="line-number"&gt; 893&lt;/span&gt;         } &lt;span class="line-number"&gt; 894&lt;/span&gt;     } &lt;span class="line-number"&gt; 895&lt;/span&gt;  &lt;span class="line-number"&gt; 896&lt;/span&gt;     public UserTypesTableModel getCustomUserTypes() { &lt;span class="line-number"&gt; 897&lt;/span&gt;         return customUserTypes; &lt;span class="line-number"&gt; 898&lt;/span&gt;     } &lt;span class="line-number"&gt; 899&lt;/span&gt;  &lt;span class="line-number"&gt; 900&lt;/span&gt;     public UserTypesTableModel getStandardUserTypes() { &lt;span class="line-number"&gt; 901&lt;/span&gt;         return standardUserTypes; &lt;span class="line-number"&gt; 902&lt;/span&gt;     } &lt;span class="line-number"&gt; 903&lt;/span&gt;  &lt;span class="line-number"&gt; 904&lt;/span&gt;     private void setModified() { &lt;span class="line-number"&gt; 905&lt;/span&gt;     } &lt;span class="line-number"&gt; 906&lt;/span&gt;  &lt;span class="line-number"&gt; 907&lt;/span&gt;     private void initialise() { &lt;span class="line-number"&gt; 908&lt;/span&gt;         // Set Display State of Panels based on Toggle Button Status &lt;span class="line-number"&gt; 909&lt;/span&gt;         jToggleButton1ActionPerformed(null); &lt;span class="line-number"&gt; 910&lt;/span&gt;         jToggleButton2ActionPerformed(null); &lt;span class="line-number"&gt; 911&lt;/span&gt;         jToggleButton3ActionPerformed(null); &lt;span class="line-number"&gt; 912&lt;/span&gt;         // Assign Change listener to Table &lt;span class="line-number"&gt; 913&lt;/span&gt;         tabCustomUT.getSelectionModel().addListSelectionListener(this); &lt;span class="line-number"&gt; 914&lt;/span&gt;         // Add Listeners &lt;span class="line-number"&gt; 915&lt;/span&gt;     } &lt;span class="line-number"&gt; 916&lt;/span&gt;  &lt;span class="line-number"&gt; 917&lt;/span&gt;     private void refreshBindings() { &lt;span class="line-number"&gt; 918&lt;/span&gt;         for (Binding b : bindingGroup.getBindings()) { &lt;span class="line-number"&gt; 919&lt;/span&gt;             bindingGroup.removeBinding(b); &lt;span class="line-number"&gt; 920&lt;/span&gt;         } &lt;span class="line-number"&gt; 921&lt;/span&gt;         setupBindings(); &lt;span class="line-number"&gt; 922&lt;/span&gt;     } &lt;span class="line-number"&gt; 923&lt;/span&gt;  &lt;span class="line-number"&gt; 924&lt;/span&gt;     private void setupBindings() { &lt;span class="line-number"&gt; 925&lt;/span&gt;         PofConfig pofConfig = getPofConfig(); &lt;span class="line-number"&gt; 926&lt;/span&gt;         // Set Bindings &lt;span class="line-number"&gt; 927&lt;/span&gt;         Property propertyTextValue = BeanProperty.create("text"); &lt;span class="line-number"&gt; 928&lt;/span&gt;         Property propertySelected = BeanProperty.create("selected"); &lt;span class="line-number"&gt; 929&lt;/span&gt;         Property propertySelectedItem = BeanProperty.create("selectedItem"); &lt;span class="line-number"&gt; 930&lt;/span&gt;         Property propertyData = BeanProperty.create("data"); &lt;span class="line-number"&gt; 931&lt;/span&gt;         // EditionName &lt;span class="line-number"&gt; 932&lt;/span&gt;         Property propertyDefaultSerializer = BeanProperty.create("defaultSerializer"); &lt;span class="line-number"&gt; 933&lt;/span&gt;         Binding bindingDefaultSerializer = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, this, propertyDefaultSerializer, tfClassName, propertyTextValue); &lt;span class="line-number"&gt; 934&lt;/span&gt;         bindingGroup.addBinding(bindingDefaultSerializer); &lt;span class="line-number"&gt; 935&lt;/span&gt;         // Allow SubClasses &lt;span class="line-number"&gt; 936&lt;/span&gt;         Property propertyAllowSubclasses = BeanProperty.create("allowSubclasses"); &lt;span class="line-number"&gt; 937&lt;/span&gt;         Binding bindingAllowSubclasses = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, this, propertyAllowSubclasses, cbAllowSubclesses, propertySelected); &lt;span class="line-number"&gt; 938&lt;/span&gt;         bindingGroup.addBinding(bindingAllowSubclasses); &lt;span class="line-number"&gt; 939&lt;/span&gt;         // Allow Interfaces &lt;span class="line-number"&gt; 940&lt;/span&gt;         Property propertyAllowInterfaces = BeanProperty.create("allowInterfaces"); &lt;span class="line-number"&gt; 941&lt;/span&gt;         Binding bindingAllowInterfaces = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, this, propertyAllowInterfaces, cbAllowInterfaces, propertySelected); &lt;span class="line-number"&gt; 942&lt;/span&gt;         bindingGroup.addBinding(bindingAllowInterfaces); &lt;span class="line-number"&gt; 943&lt;/span&gt;         // Standard Types &lt;span class="line-number"&gt; 944&lt;/span&gt;         Property propertyStandardTypes = BeanProperty.create("standardUserTypeRows"); &lt;span class="line-number"&gt; 945&lt;/span&gt;         Binding bindingStandardTypes = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, this, propertyStandardTypes, standardUserTypes, propertyData); &lt;span class="line-number"&gt; 946&lt;/span&gt;         bindingGroup.addBinding(bindingStandardTypes); &lt;span class="line-number"&gt; 947&lt;/span&gt;         // Standard Types &lt;span class="line-number"&gt; 948&lt;/span&gt;         Property propertyCustomTypes = BeanProperty.create("customUserTypeRows"); &lt;span class="line-number"&gt; 949&lt;/span&gt;         Binding bindingCustomTypes = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, this, propertyCustomTypes, customUserTypes, propertyData); &lt;span class="line-number"&gt; 950&lt;/span&gt;         bindingGroup.addBinding(bindingCustomTypes); &lt;span class="line-number"&gt; 951&lt;/span&gt;         // Bind All &lt;span class="line-number"&gt; 952&lt;/span&gt;         bindingGroup.addBindingListener(this); &lt;span class="line-number"&gt; 953&lt;/span&gt;         bindingGroup.bind(); &lt;span class="line-number"&gt; 954&lt;/span&gt;     } &lt;span class="line-number"&gt; 955&lt;/span&gt;     /* &lt;span class="line-number"&gt; 956&lt;/span&gt;      * Binding Methods &lt;span class="line-number"&gt; 957&lt;/span&gt;      */ &lt;span class="line-number"&gt; 958&lt;/span&gt;  &lt;span class="line-number"&gt; 959&lt;/span&gt;     public void setAllowInterfaces(boolean b) { &lt;span class="line-number"&gt; 960&lt;/span&gt;         getModel().startTransaction(); &lt;span class="line-number"&gt; 961&lt;/span&gt;         if (getPofConfig().getAllowInterfaces() == null) { &lt;span class="line-number"&gt; 962&lt;/span&gt;             getPofConfig().setAllowInterfaces(getFactory().createAllowInterfaces()); &lt;span class="line-number"&gt; 963&lt;/span&gt;         } &lt;span class="line-number"&gt; 964&lt;/span&gt;         getPofConfig().getAllowInterfaces().setValue(b); &lt;span class="line-number"&gt; 965&lt;/span&gt;         getModel().endTransaction(); &lt;span class="line-number"&gt; 966&lt;/span&gt;     } &lt;span class="line-number"&gt; 967&lt;/span&gt;  &lt;span class="line-number"&gt; 968&lt;/span&gt;     public boolean isAllowInterfaces() { &lt;span class="line-number"&gt; 969&lt;/span&gt;         if (getPofConfig().getAllowInterfaces() == null) { &lt;span class="line-number"&gt; 970&lt;/span&gt;             getPofConfig().setAllowInterfaces(getFactory().createAllowInterfaces()); &lt;span class="line-number"&gt; 971&lt;/span&gt;         } &lt;span class="line-number"&gt; 972&lt;/span&gt;         return getPofConfig().getAllowInterfaces().getValue(); &lt;span class="line-number"&gt; 973&lt;/span&gt;     } &lt;span class="line-number"&gt; 974&lt;/span&gt;  &lt;span class="line-number"&gt; 975&lt;/span&gt;     public boolean getAllowInterfaces() { &lt;span class="line-number"&gt; 976&lt;/span&gt;         return isAllowInterfaces(); &lt;span class="line-number"&gt; 977&lt;/span&gt;     } &lt;span class="line-number"&gt; 978&lt;/span&gt;  &lt;span class="line-number"&gt; 979&lt;/span&gt;     public void setAllowSubclasses(boolean b) { &lt;span class="line-number"&gt; 980&lt;/span&gt;         getModel().startTransaction(); &lt;span class="line-number"&gt; 981&lt;/span&gt;         if (getPofConfig().getAllowSubclasses() == null) { &lt;span class="line-number"&gt; 982&lt;/span&gt;             getPofConfig().setAllowSubclasses(getFactory().createAllowSubclasses()); &lt;span class="line-number"&gt; 983&lt;/span&gt;         } &lt;span class="line-number"&gt; 984&lt;/span&gt;         getPofConfig().getAllowSubclasses().setValue(b); &lt;span class="line-number"&gt; 985&lt;/span&gt;         getModel().endTransaction(); &lt;span class="line-number"&gt; 986&lt;/span&gt;     } &lt;span class="line-number"&gt; 987&lt;/span&gt;  &lt;span class="line-number"&gt; 988&lt;/span&gt;     public boolean isAllowSubclasses() { &lt;span class="line-number"&gt; 989&lt;/span&gt;         if (getPofConfig().getAllowSubclasses() == null) { &lt;span class="line-number"&gt; 990&lt;/span&gt;             getPofConfig().setAllowSubclasses(getFactory().createAllowSubclasses()); &lt;span class="line-number"&gt; 991&lt;/span&gt;         } &lt;span class="line-number"&gt; 992&lt;/span&gt;         return getPofConfig().getAllowSubclasses().getValue(); &lt;span class="line-number"&gt; 993&lt;/span&gt;     } &lt;span class="line-number"&gt; 994&lt;/span&gt;  &lt;span class="line-number"&gt; 995&lt;/span&gt;     public boolean getAllSubclasses() { &lt;span class="line-number"&gt; 996&lt;/span&gt;         return isAllowSubclasses(); &lt;span class="line-number"&gt; 997&lt;/span&gt;     } &lt;span class="line-number"&gt; 998&lt;/span&gt;  &lt;span class="line-number"&gt; 999&lt;/span&gt;     public void setDefaultSerializer(String s) { &lt;span class="line-number"&gt;1000&lt;/span&gt;         getModel().startTransaction(); &lt;span class="line-number"&gt;1001&lt;/span&gt;         if (s == null || s.trim().length() == 0) { &lt;span class="line-number"&gt;1002&lt;/span&gt;             getPofConfig().setDefaultSerializer(null); &lt;span class="line-number"&gt;1003&lt;/span&gt;         } else { &lt;span class="line-number"&gt;1004&lt;/span&gt;             if (getPofConfig().getDefaultSerializer() == null) { &lt;span class="line-number"&gt;1005&lt;/span&gt;                 getPofConfig().setDefaultSerializer(getFactory().createDefaultSerializer()); &lt;span class="line-number"&gt;1006&lt;/span&gt;             } &lt;span class="line-number"&gt;1007&lt;/span&gt;             if (getPofConfig().getDefaultSerializer().getClassName() == null) { &lt;span class="line-number"&gt;1008&lt;/span&gt;                 getPofConfig().getDefaultSerializer().setClassName(getFactory().createClassName()); &lt;span class="line-number"&gt;1009&lt;/span&gt;             } &lt;span class="line-number"&gt;1010&lt;/span&gt;             getPofConfig().getDefaultSerializer().getClassName().setValue(s); &lt;span class="line-number"&gt;1011&lt;/span&gt;         } &lt;span class="line-number"&gt;1012&lt;/span&gt;         getModel().endTransaction(); &lt;span class="line-number"&gt;1013&lt;/span&gt;     } &lt;span class="line-number"&gt;1014&lt;/span&gt;  &lt;span class="line-number"&gt;1015&lt;/span&gt;     public String getDefaultSerializer() { &lt;span class="line-number"&gt;1016&lt;/span&gt;         String s = null; &lt;span class="line-number"&gt;1017&lt;/span&gt;         if (getPofConfig().getDefaultSerializer() != null) { &lt;span class="line-number"&gt;1018&lt;/span&gt;             if (getPofConfig().getDefaultSerializer().getClassName() != null) { &lt;span class="line-number"&gt;1019&lt;/span&gt;                 s = getPofConfig().getDefaultSerializer().getClassName().getValue(); &lt;span class="line-number"&gt;1020&lt;/span&gt;             } &lt;span class="line-number"&gt;1021&lt;/span&gt;         } &lt;span class="line-number"&gt;1022&lt;/span&gt;         return s; &lt;span class="line-number"&gt;1023&lt;/span&gt;     } &lt;span class="line-number"&gt;1024&lt;/span&gt;  &lt;span class="line-number"&gt;1025&lt;/span&gt;     public void setStandardUserTypeRows(List&lt;object[]&gt; data) { &lt;span class="line-number"&gt;1026&lt;/span&gt;         PofConfig pofConfig = getPofConfig(); &lt;span class="line-number"&gt;1027&lt;/span&gt;         if (data != null) { &lt;span class="line-number"&gt;1028&lt;/span&gt; //            for (Object[] oArray : data) { &lt;span class="line-number"&gt;1029&lt;/span&gt; //            } &lt;span class="line-number"&gt;1030&lt;/span&gt;         } &lt;span class="line-number"&gt;1031&lt;/span&gt;     } &lt;span class="line-number"&gt;1032&lt;/span&gt;  &lt;span class="line-number"&gt;1033&lt;/span&gt;     public List&lt;object[]&gt; getStandardUserTypeRows() { &lt;span class="line-number"&gt;1034&lt;/span&gt;         PofConfig pofConfig = getPofConfig(); &lt;span class="line-number"&gt;1035&lt;/span&gt;         List&lt;object[]&gt; objArrayList = new ArrayList&lt;object[]&gt;(); &lt;span class="line-number"&gt;1036&lt;/span&gt;         Object[] row = null; &lt;span class="line-number"&gt;1037&lt;/span&gt;         // Process User Type &lt;span class="line-number"&gt;1038&lt;/span&gt;         UserTypeList utl = pofConfig.getUserTypeList(); &lt;span class="line-number"&gt;1039&lt;/span&gt;         if (utl != null) { &lt;span class="line-number"&gt;1040&lt;/span&gt;             List&lt;usertype&gt; utoiList = utl.getUserTypes(); &lt;span class="line-number"&gt;1041&lt;/span&gt;             String serializer = null; &lt;span class="line-number"&gt;1042&lt;/span&gt;             if (utoiList != null) { &lt;span class="line-number"&gt;1043&lt;/span&gt;                 for (UserType ut : utoiList) { &lt;span class="line-number"&gt;1044&lt;/span&gt;                     try { &lt;span class="line-number"&gt;1045&lt;/span&gt;                         serializer = null; &lt;span class="line-number"&gt;1046&lt;/span&gt;                         if (ut.getTypeId().getValue() &amp;lt; 1000) { &lt;span class="line-number"&gt;1047&lt;/span&gt;                             if (ut.getSerializer() != null) { &lt;span class="line-number"&gt;1048&lt;/span&gt;                                 serializer = ut.getSerializer().getClassName().getValue(); &lt;span class="line-number"&gt;1049&lt;/span&gt;                             } &lt;span class="line-number"&gt;1050&lt;/span&gt;                             row = new Object[4]; &lt;span class="line-number"&gt;1051&lt;/span&gt;                             row[0] = ut.getTypeId().getValue(); &lt;span class="line-number"&gt;1052&lt;/span&gt;                             row[1] = ut.getClassName(); &lt;span class="line-number"&gt;1053&lt;/span&gt;                             row[2] = serializer; &lt;span class="line-number"&gt;1054&lt;/span&gt;                             row[3] = ut; &lt;span class="line-number"&gt;1055&lt;/span&gt;                             objArrayList.add(row); &lt;span class="line-number"&gt;1056&lt;/span&gt;                         } &lt;span class="line-number"&gt;1057&lt;/span&gt;                     } catch (Exception e) { &lt;span class="line-number"&gt;1058&lt;/span&gt;                         StatusDisplayer.getDefault().setStatusText("Failed to parse type"); &lt;span class="line-number"&gt;1059&lt;/span&gt;                     } &lt;span class="line-number"&gt;1060&lt;/span&gt;                 } &lt;span class="line-number"&gt;1061&lt;/span&gt;             } &lt;span class="line-number"&gt;1062&lt;/span&gt;         } &lt;span class="line-number"&gt;1063&lt;/span&gt;         return objArrayList; &lt;span class="line-number"&gt;1064&lt;/span&gt;     } &lt;span class="line-number"&gt;1065&lt;/span&gt;  &lt;span class="line-number"&gt;1066&lt;/span&gt;     public void setCustomUserTypeRows(List&lt;object[]&gt; data) { &lt;span class="line-number"&gt;1067&lt;/span&gt;         PofConfig pofConfig = getPofConfig(); &lt;span class="line-number"&gt;1068&lt;/span&gt;         if (data != null) { &lt;span class="line-number"&gt;1069&lt;/span&gt; //            for (Object[] oArray : data) { &lt;span class="line-number"&gt;1070&lt;/span&gt; //            } &lt;span class="line-number"&gt;1071&lt;/span&gt;         } &lt;span class="line-number"&gt;1072&lt;/span&gt;     } &lt;span class="line-number"&gt;1073&lt;/span&gt;  &lt;span class="line-number"&gt;1074&lt;/span&gt;     public List&lt;object[]&gt; getCustomUserTypeRows() { &lt;span class="line-number"&gt;1075&lt;/span&gt;         PofConfig pofConfig = getPofConfig(); &lt;span class="line-number"&gt;1076&lt;/span&gt;         List&lt;object[]&gt; objArrayList = new ArrayList&lt;object[]&gt;(); &lt;span class="line-number"&gt;1077&lt;/span&gt;         Object[] row = null; &lt;span class="line-number"&gt;1078&lt;/span&gt;         // Process User Type &lt;span class="line-number"&gt;1079&lt;/span&gt;         UserTypeList utl = pofConfig.getUserTypeList(); &lt;span class="line-number"&gt;1080&lt;/span&gt;         if (utl != null) { &lt;span class="line-number"&gt;1081&lt;/span&gt;             List&lt;usertype&gt; utoiList = utl.getUserTypes(); &lt;span class="line-number"&gt;1082&lt;/span&gt;             String serializer = null; &lt;span class="line-number"&gt;1083&lt;/span&gt;             if (utoiList != null) { &lt;span class="line-number"&gt;1084&lt;/span&gt;                 for (UserType ut : utoiList) { &lt;span class="line-number"&gt;1085&lt;/span&gt;                     try { &lt;span class="line-number"&gt;1086&lt;/span&gt;                         serializer = null; &lt;span class="line-number"&gt;1087&lt;/span&gt;                         if (ut.getTypeId().getValue() &amp;gt;= 1000) { &lt;span class="line-number"&gt;1088&lt;/span&gt;                             if (ut.getSerializer() != null) { &lt;span class="line-number"&gt;1089&lt;/span&gt;                                 serializer = ut.getSerializer().getClassName().getValue(); &lt;span class="line-number"&gt;1090&lt;/span&gt;                             } &lt;span class="line-number"&gt;1091&lt;/span&gt;                             row = new Object[4]; &lt;span class="line-number"&gt;1092&lt;/span&gt;                             row[0] = ut.getTypeId().getValue(); &lt;span class="line-number"&gt;1093&lt;/span&gt;                             row[1] = ut.getClassName(); &lt;span class="line-number"&gt;1094&lt;/span&gt;                             row[2] = serializer; &lt;span class="line-number"&gt;1095&lt;/span&gt;                             row[3] = ut; &lt;span class="line-number"&gt;1096&lt;/span&gt;                             objArrayList.add(row); &lt;span class="line-number"&gt;1097&lt;/span&gt;                         } &lt;span class="line-number"&gt;1098&lt;/span&gt;                     } catch (Exception e) { &lt;span class="line-number"&gt;1099&lt;/span&gt;                         StatusDisplayer.getDefault().setStatusText("Failed to parse type"); &lt;span class="line-number"&gt;1100&lt;/span&gt;                     } &lt;span class="line-number"&gt;1101&lt;/span&gt;                 } &lt;span class="line-number"&gt;1102&lt;/span&gt;             } &lt;span class="line-number"&gt;1103&lt;/span&gt;         } &lt;span class="line-number"&gt;1104&lt;/span&gt;         return objArrayList; &lt;span class="line-number"&gt;1105&lt;/span&gt;     } &lt;span class="line-number"&gt;1106&lt;/span&gt;     /* &lt;span class="line-number"&gt;1107&lt;/span&gt;      * ========================================================================= &lt;span class="line-number"&gt;1108&lt;/span&gt;      * END: Custom Code &lt;span class="line-number"&gt;1109&lt;/span&gt;      * ========================================================================= &lt;span class="line-number"&gt;1110&lt;/span&gt;      */ &lt;span class="line-number"&gt;1111&lt;/span&gt; } &lt;span class="line-number"&gt;1112&lt;/span&gt;  &lt;span class="line-number"&gt;1113&lt;/span&gt;  &lt;/usertype&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/usertype&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/object[]&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The key changes that modify the MultiView tab display name and       order are done within the Annotaions in the       PofConfigVisualElement.java.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt; @MultiViewElement.Registration(displayName = "#LBL_PofConfig_VISUAL",&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt; iconBase = "org/netbeans/modules/coherence/resources/icons/pof.png",&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt; mimeType = "text/coh-pof+xml",&lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt; persistenceType = TopComponent.PERSISTENCE_NEVER,&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt; preferredID = "PofConfigVisual",&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt; position = 1000)&lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt; @Messages({&lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt; "LBL_PofConfig_VISUAL=General"&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt; })&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt; /**&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt; *&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt; * @author Andrew Hopkinson (Oracle A-Team)&lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt; */&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;To change the name of the tab we simply modify line 94 whilst       editting line 92 will change the position of the teb on the bar.       What I did for positioning was modify 92 to the value that is in       the PofConfigDataObject.java (line 75) and vica versa.&lt;br /&gt;&lt;br /&gt;We now have the graphical portion complete and all we need to do       is link the previously built XAM/XDM XML Object Model into the       Visual Component.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt; Integrating the XAM/XDM Code&lt;/h1&gt;When integrating the XAM/XDM Object Model we need to initially       create a model based on the Primary File associated with the       DataObject (see line 773 below). You will notice from the code       below that I build the XAM/XDM Object Model as required and this       is only done once because at every other point within the Visual       Code I access the Model using the getPofConfig() method.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 102&lt;/span&gt; private PofConfigDataObject obj;&lt;br /&gt;&lt;span class="line-number"&gt; 103&lt;/span&gt; private JToolBar toolbar = new JToolBar();&lt;br /&gt;&lt;span class="line-number"&gt; 104&lt;/span&gt; private transient MultiViewElementCallback callback;&lt;br /&gt;&lt;span class="line-number"&gt; 105&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 106&lt;/span&gt; public PofConfigVisualElement(Lookup lkp) {&lt;br /&gt;&lt;span class="line-number"&gt; 107&lt;/span&gt; obj = lkp.lookup(PofConfigDataObject.class);&lt;br /&gt;&lt;span class="line-number"&gt; 108&lt;/span&gt; assert obj != null;&lt;br /&gt;&lt;span class="line-number"&gt; 109&lt;/span&gt; initComponents();&lt;br /&gt;&lt;span class="line-number"&gt; 110&lt;/span&gt; initialise();&lt;br /&gt;&lt;span class="line-number"&gt; 111&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 112&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 739&lt;/span&gt; /*&lt;br /&gt;&lt;span class="line-number"&gt; 740&lt;/span&gt; * =========================================================================&lt;br /&gt;&lt;span class="line-number"&gt; 741&lt;/span&gt; * START: Custom Code&lt;br /&gt;&lt;span class="line-number"&gt; 742&lt;/span&gt; * =========================================================================&lt;br /&gt;&lt;span class="line-number"&gt; 743&lt;/span&gt; */&lt;br /&gt;&lt;span class="line-number"&gt; 744&lt;/span&gt; private PofConfigModel myModel = null;&lt;br /&gt;&lt;span class="line-number"&gt; 745&lt;/span&gt; private PofConfig myRoot = null;&lt;br /&gt;&lt;span class="line-number"&gt; 746&lt;/span&gt; private ModelSource myModelSource = null;&lt;br /&gt;&lt;span class="line-number"&gt; 747&lt;/span&gt; private PofConfigComponentFactory myFactory = null;&lt;br /&gt;&lt;span class="line-number"&gt; 748&lt;/span&gt; private UserTypesTableModel standardUserTypes = new UserTypesTableModel();&lt;br /&gt;&lt;span class="line-number"&gt; 749&lt;/span&gt; private UserTypesTableModel customUserTypes = new UserTypesTableModel();&lt;br /&gt;&lt;span class="line-number"&gt; 750&lt;/span&gt; private BindingGroup bindingGroup = new BindingGroup();&lt;br /&gt;&lt;span class="line-number"&gt; 751&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 752&lt;/span&gt; private PofConfig getPofConfig() {&lt;br /&gt;&lt;span class="line-number"&gt; 753&lt;/span&gt; return getRoot();&lt;br /&gt;&lt;span class="line-number"&gt; 754&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 755&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 756&lt;/span&gt; private PofConfig getRoot() {&lt;br /&gt;&lt;span class="line-number"&gt; 757&lt;/span&gt; if (myRoot == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 758&lt;/span&gt; myRoot = getModel().getPofConfig();&lt;br /&gt;&lt;span class="line-number"&gt; 759&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 760&lt;/span&gt; return myRoot;&lt;br /&gt;&lt;span class="line-number"&gt; 761&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 762&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 763&lt;/span&gt; private PofConfigModel getModel() {&lt;br /&gt;&lt;span class="line-number"&gt; 764&lt;/span&gt; if (myModel == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 765&lt;/span&gt; // Get Model&lt;br /&gt;&lt;span class="line-number"&gt; 766&lt;/span&gt; myModel = PofConfigModelFactory.getInstance().getModel(getModelSource());&lt;br /&gt;&lt;span class="line-number"&gt; 767&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 768&lt;/span&gt; return myModel;&lt;br /&gt;&lt;span class="line-number"&gt; 769&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 770&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 771&lt;/span&gt; private ModelSource getModelSource() {&lt;br /&gt;&lt;span class="line-number"&gt; 772&lt;/span&gt; if (myModelSource == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 773&lt;/span&gt; myModelSource = Utilities.getModelSource(obj.getPrimaryFile(), true);&lt;br /&gt;&lt;span class="line-number"&gt; 774&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 775&lt;/span&gt; return myModelSource;&lt;br /&gt;&lt;span class="line-number"&gt; 776&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 777&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 778&lt;/span&gt; private PofConfigComponentFactory getFactory() {&lt;br /&gt;&lt;span class="line-number"&gt; 779&lt;/span&gt; if (myFactory == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 780&lt;/span&gt; myFactory = getModel().getFactory();&lt;br /&gt;&lt;span class="line-number"&gt; 781&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 782&lt;/span&gt; return myFactory;&lt;br /&gt;&lt;span class="line-number"&gt; 783&lt;/span&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;You will also notice within the full code that I use the Java       Bindings functionality to link the Object model with the displayed       fields. To achieve this I have written a number of Model Accessor       methods getters and setters because when modifying the Model we       will need to do it transactionally. If we consider the  AllowInterfaces Element we can see from the methods below that when  setting the value of the Element we will need to start a transaction  against the model (line 960) then check is the Element exists (line 961)  and create it if it does not (line 962) before writing and completing  the transaction (line 965). The result of this process is that the Text  version will be updated and when the user switches views they will see  the updated values. You can also see from the code fragment below that within the get I test for and create the Element  if it does not exist. Reviewing the full code listing above you will  notice that all accessor methods are implemented in a similar fashion.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 955&lt;/span&gt; /*&lt;br /&gt;&lt;span class="line-number"&gt; 956&lt;/span&gt; * Binding Methods&lt;br /&gt;&lt;span class="line-number"&gt; 957&lt;/span&gt; */&lt;br /&gt;&lt;span class="line-number"&gt; 958&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 959&lt;/span&gt; public void setAllowInterfaces(boolean b) {&lt;br /&gt;&lt;span class="line-number"&gt; 960&lt;/span&gt; getModel().startTransaction();&lt;br /&gt;&lt;span class="line-number"&gt; 961&lt;/span&gt; if (getPofConfig().getAllowInterfaces() == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 962&lt;/span&gt; getPofConfig().setAllowInterfaces(getFactory().createAllowInterfaces());&lt;br /&gt;&lt;span class="line-number"&gt; 963&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 964&lt;/span&gt; getPofConfig().getAllowInterfaces().setValue(b);&lt;br /&gt;&lt;span class="line-number"&gt; 965&lt;/span&gt; getModel().endTransaction();&lt;br /&gt;&lt;span class="line-number"&gt; 966&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 967&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 968&lt;/span&gt; public boolean isAllowInterfaces() {&lt;br /&gt;&lt;span class="line-number"&gt; 969&lt;/span&gt; if (getPofConfig().getAllowInterfaces() == null) {&lt;br /&gt;&lt;span class="line-number"&gt; 970&lt;/span&gt; getPofConfig().setAllowInterfaces(getFactory().createAllowInterfaces());&lt;br /&gt;&lt;span class="line-number"&gt; 971&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 972&lt;/span&gt; return getPofConfig().getAllowInterfaces().getValue();&lt;br /&gt;&lt;span class="line-number"&gt; 973&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 974&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 975&lt;/span&gt; public boolean getAllowInterfaces() {&lt;br /&gt;&lt;span class="line-number"&gt; 976&lt;/span&gt; return isAllowInterfaces();&lt;br /&gt;&lt;span class="line-number"&gt; 977&lt;/span&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;The functionaly above differs from that used when accessing a JAXB  Object Model because we do not need to start transactions and in the  majority of cases we can assume the Element exists or will be created  when we get its value. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/278589584459681634-167592228326751953?l=theoldtoxophilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theoldtoxophilist.blogspot.com/feeds/167592228326751953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theoldtoxophilist.blogspot.com/2011/09/integrating-netbeans-multiview-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/278589584459681634/posts/default/167592228326751953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/278589584459681634/posts/default/167592228326751953'/><link rel='alternate' type='text/html' href='http://theoldtoxophilist.blogspot.com/2011/09/integrating-netbeans-multiview-with.html' title='Integrating NetBeans MultiView with XAM/XDM based XML Object Model'/><author><name>The Old Toxophilist</name><uri>http://www.blogger.com/profile/00930158998245901220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh3.ggpht.com/_iEXxIAjXQuE/SqUMN92i14I/AAAAAAAABak/yvGfGM7j7dI/s640/MeSmaller.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-FOMIJIYdka4/Tm4q_PygjAI/AAAAAAAAHDI/WY0tZHbpEpc/s72-c/NewFileType1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-278589584459681634.post-2412996079172416992</id><published>2011-08-10T15:29:00.002+01:00</published><updated>2011-08-10T17:54:18.154+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Exalogic'/><title type='text'>Exalogic Networking Part 1</title><content type='html'>This is the first blog entry in a series I will be writing on      Exalogic Networking. The entries will start with the low level      basics and work their way up to architectural strategies for the      partitioning and configuration an Exalogic Rack.&lt;br /&gt;&lt;br /&gt;This first entry will look at the low level creation and      configuration of vNICs, vIPs, vLANs, BONDs and how we can leverage      scripting and the dcli command to configure all Exalogic Compute      Nodes at the same time. At this point in time the scripts with      documented within this page are designed from Oracle Enterprise      Linux but can be tweaked slightly for a Solaris Exalogic      installation. In addition we will focus on the external facing      10Gb network because the the 1Gb is management only and should be      on a private network whilst the internal InfiniBand network will      not be directly accessible to the outside world.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1&gt;vNICs&lt;/h1&gt;Virtual Network Interface Cards (vNICs) emulates a NIC for a      given Compute Node within the Exalogic Rack. As part of the      installation and configuration the Oracle Engineer will create a      number of these, based on a predefined algorithm, to allow 10Gb      connection through the&amp;nbsp; switches within the rack. Internally      this is implemented over the InfiniBand Network and converted to      10Gb at the switch.&lt;br /&gt;&lt;br /&gt;As mentioned the Engineer will create the vNICs with MAC      addresses based on a predefined algorithm that takes the GUID for      each Compute Nodes Network card and a value indicating which      exernal Ethernet port we will be connecting it to. In reality the      only requirement is that the MAC addresses be unique. Given the      fact that hand cranking these for a full, 30 node, rack is time      consuming and error prone I created a number of scripts that      generate a simple script file containing all the required      createvnic commands.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;#!/bin/sh&lt;br /&gt;# "el2bcn15 192.168.10.67 VNIC&lt;br /&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:f5:fa -mac a0:f5:fa:10:00:67 -pkey default&lt;br /&gt;# "el2bcn16 192.168.10.68 VNIC&lt;br /&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:fb:4a -mac a0:fb:4a:10:00:68 -pkey default&lt;br /&gt;# "el2bcn08 192.168.10.58 VNIC&lt;br /&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:d5:85 -mac a0:d5:85:10:00:58 -pkey default&lt;br /&gt;# "el2bcn09 192.168.10.59 VNIC&lt;br /&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:d6:fe -mac a0:d6:fe:10:00:59 -pkey default&lt;br /&gt;# "el2bcn12 192.168.10.62 VNIC&lt;br /&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:d5:6e -mac a0:d5:6e:10:00:62 -pkey default&lt;br /&gt;# "el2bcn11 192.168.10.61 VNIC&lt;br /&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:d7:ea -mac a0:d7:ea:10:00:61 -pkey default&lt;br /&gt;# "el2bcn14 192.168.10.64 VNIC&lt;br /&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a1:0c:0e -mac a0:0c:0e:10:00:64 -pkey default&lt;br /&gt;# "el2bcn13 192.168.10.63 VNIC&lt;br /&gt;&lt;/pre&gt;Once generated this file can be executed on the switches to      create the actual vNICs that can then be used by the compute node      to access / be accessed from external systems using the 10Gb      network. Before this can be done we will need to create /      configure the Ethernet&amp;nbsp; and Bonds on each compute node as      described in the next section.&lt;br /&gt;&lt;br /&gt;The two scripts below, genVNICsFromLinkListUp.sh and      genVNICsFromIBNetDiscover.sh, use the existing Exalogic scripts      linklistup and inbnetdiscover to obtain information about the      Exalogic network configuration. If you already have a 10Gb cable      plugged into the Exalogic switch then using the      genVNICsFromLinkListUp.sh will identify this and create the script      file based on the active link by calling the      genVNICsFromIBNetDiscover.sh passing the information. If on the      other hand you need to create the vNICs before the cable has been      connected then you can use the genVNICsFromIBNetDiscover.sh      directly passing the Ethernet port id that will be used.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=2412996079172416992"&gt;genVNICsFromLinkListUp.sh&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; &lt;span class="comment"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;      &lt;span class="comment"&gt;Exalogic EL X2-2 1.0 (Linux x86-64) Configuration Script.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER START&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; &lt;span class="comment"&gt;#  THIS SCRIPT IS PROVIDED ON AN �AS IS� BASIS, WITHOUT WARRANTY OF ANY KIND, &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt; &lt;span class="comment"&gt;#  EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt; &lt;span class="comment"&gt;#  THE COVERED SCRIPT IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt; &lt;span class="comment"&gt;#  PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; &lt;span class="comment"&gt;#  OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt; &lt;span class="comment"&gt;#  DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt; &lt;span class="comment"&gt;#  CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; &lt;span class="comment"&gt;#  NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt; &lt;span class="comment"&gt;#  DISCLAIMER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt; &lt;span class="comment"&gt;#  When distributing this Code, include this HEADER in each file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt; &lt;span class="comment"&gt;#  If applicable, add the following below this this HEADER, with the fields&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; &lt;span class="comment"&gt;#  enclosed by brackets "[]" replaced with your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt; &lt;span class="comment"&gt;#       Portions Copyright [yyyy] [name of copyright owner]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER END&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt; &lt;span class="comment"&gt;#       Copyright 2011 Andrew Hopkinson, Oracle Corporation UK Ltd.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt; &lt;span class="comment"&gt;# genVNICsFromListLinkUp.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt; &lt;span class="comment"&gt;# =========================&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt; &lt;span class="comment"&gt;# Version : 1.0.1&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt; &lt;span class="comment"&gt;# This script does not directly affect the system it is running rather it calls&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt; &lt;span class="comment"&gt;# the genVNICsFromIBNetDiscover.sh script for each ETH port it finds which is up.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt; &lt;span class="comment"&gt;# On execution of the genVNICsFromIBNetDiscover.sh script it will pass the ETH&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt; &lt;span class="comment"&gt;# port and output from the ibnetdiscover.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt; &lt;span class="comment"&gt;# Parameters&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt; &lt;span class="comment"&gt;#   -f : Specifies a file that contain the output from the listlinkup command&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt; &lt;span class="comment"&gt;#      : executed on the switch. If no file is provided the script will execute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt; &lt;span class="comment"&gt;#      : the listlinkup command to generate the file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt; &lt;span class="comment"&gt;#   -i : If this script is not being run on a switch or you already have an&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt; &lt;span class="comment"&gt;#      : output from ibnetdiscover that you want to use then it can be specified&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt; &lt;span class="comment"&gt;#      : with this flag. If the flag is not present the script will execute &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt; &lt;span class="comment"&gt;#      : ibnetdiscover to generate the file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt; &lt;span class="comment"&gt;#   -v : If the script is not being run on a switch then you must supply the &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt; &lt;span class="comment"&gt;#      : output from showvnics. If the flag is not present then the script will&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt; &lt;span class="comment"&gt;#      : execute showvnics and write the content to a temporary file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt; &lt;span class="comment"&gt;# Version History&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.0 - Initial Realease&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.1 - Modified the generation of the delete VNICs script so that it is &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt; &lt;span class="comment"&gt;#         generated based on the output from showvnics&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt; IBNETDISCOVER=&lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt; LISTLINKUPOUT=&lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt; SHOWVNICSFILE=&lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; [ $&lt;span class="comment"&gt;# -gt 0 ]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt;         &lt;span class="command"&gt;case&lt;/span&gt; &lt;span class="string"&gt;"$1"&lt;/span&gt; in&lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt;                 -f) LISTLINKUPOUT=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt;                 -i) IBNETDISCOVER=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt;                 -v) SHOWVNICSFILE=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt;                 *) echo &lt;span class="string"&gt;""&lt;/span&gt;; &lt;span class="command"&gt;echo&lt;/span&gt; &amp;gt;&amp;amp;2 \&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt;                     &lt;span class="string"&gt;"usage: $0 [-f listlinkup output] [-i ibnetdiscover output] [-v showvnics output] "&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt;                     &lt;span class="command"&gt;echo&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;; &lt;span class="command"&gt;exit&lt;/span&gt; 1;;&lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt;                 *) break;;&lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt;         &lt;span class="command"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt;         &lt;span class="command"&gt;shift&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt; &lt;span class="comment"&gt;# Generate ibnetdiscover&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$IBNETDISCOVER"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generating ibnetdiscover"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt;         IBNETDISCOVER=ibnetdiscover.out&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt;         ibnetdiscover &amp;gt; $IBNETDISCOVER&lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ &lt;span class="string"&gt;"$?"&lt;/span&gt; -ne &lt;span class="string"&gt;"0"&lt;/span&gt; ]&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Error: Generating ibnetdiscover output only works on the switch"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt;                 &lt;span class="command"&gt;exit&lt;/span&gt; 1&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt; &lt;span class="comment"&gt;# Generate showvnics&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$SHOWVNICSFILE"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generating showvnics"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt;         SHOWVNICSFILE=showvnics.out&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt;         showvnics &amp;gt; $SHOWVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ &lt;span class="string"&gt;"$?"&lt;/span&gt; -ne &lt;span class="string"&gt;"0"&lt;/span&gt; ]&lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Error: Generating showvnics output only works on the switch"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt;                 &lt;span class="command"&gt;exit&lt;/span&gt; 1&lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt; &lt;span class="comment"&gt;# Generate listlinkup&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;116&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$LISTLINKUPOUT"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;117&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;118&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generating listlinkup"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;119&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;120&lt;/span&gt;         LISTLINKUPOUT=listlinkup.out&lt;br /&gt;&lt;span class="line-number"&gt;121&lt;/span&gt;         listlinkup &amp;gt; $LISTLINKUPOUT&lt;br /&gt;&lt;span class="line-number"&gt;122&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ &lt;span class="string"&gt;"$?"&lt;/span&gt; -ne &lt;span class="string"&gt;"0"&lt;/span&gt; ]&lt;br /&gt;&lt;span class="line-number"&gt;123&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;124&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;125&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Error: Generating listlinkup output only works on the switch"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;126&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;127&lt;/span&gt;                 &lt;span class="command"&gt;exit&lt;/span&gt; 1&lt;br /&gt;&lt;span class="line-number"&gt;128&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;129&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;130&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;131&lt;/span&gt; TEMPBRIDGEFILE=.upEthBridges&lt;br /&gt;&lt;span class="line-number"&gt;132&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;133&lt;/span&gt; &lt;span class="command"&gt;grep&lt;/span&gt; Bridge $LISTLINKUPOUT | grep &lt;span class="string"&gt;"ETH-"&lt;/span&gt; | grep &lt;span class="string"&gt;"up"&lt;/span&gt; &amp;gt; $TEMPBRIDGEFILE&lt;br /&gt;&lt;span class="line-number"&gt;134&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;135&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; read line&lt;br /&gt;&lt;span class="line-number"&gt;136&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;137&lt;/span&gt;         i=0&lt;br /&gt;&lt;span class="line-number"&gt;138&lt;/span&gt;         &lt;span class="command"&gt;for&lt;/span&gt; el in $line&lt;br /&gt;&lt;span class="line-number"&gt;139&lt;/span&gt;         &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;140&lt;/span&gt;                 i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;141&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;               &lt;span class="comment"&gt;echo "$i = $el"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;142&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 3 ]&lt;br /&gt;&lt;span class="line-number"&gt;143&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;144&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;                       &lt;span class="comment"&gt;echo "Port $el"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;145&lt;/span&gt;                         ./genVNICsFromIBNetDiscover.sh -f $IBNETDISCOVER -p $el -v $SHOWVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;146&lt;/span&gt;                         &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;147&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;148&lt;/span&gt;         &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;149&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt; &amp;lt; $TEMPBRIDGEFILE&lt;br /&gt;&lt;span class="line-number"&gt;150&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;151&lt;/span&gt; &lt;span class="comment"&gt;# Cleanup&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;152&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;153&lt;/span&gt; &lt;span class="command"&gt;rm&lt;/span&gt; $TEMPBRIDGEFILE&lt;br /&gt;&lt;span class="line-number"&gt;154&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;155&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=2412996079172416992"&gt;genVNICsFromIBNetDiscover.sh&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; &lt;span class="comment"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;      &lt;span class="comment"&gt;Exalogic EL X2-2 1.0 (Linux x86-64) Configuration Script.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER START&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; &lt;span class="comment"&gt;#  THIS SCRIPT IS PROVIDED ON AN �AS IS� BASIS, WITHOUT WARRANTY OF ANY KIND, &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt; &lt;span class="comment"&gt;#  EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt; &lt;span class="comment"&gt;#  THE COVERED SCRIPT IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt; &lt;span class="comment"&gt;#  PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; &lt;span class="comment"&gt;#  OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt; &lt;span class="comment"&gt;#  DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt; &lt;span class="comment"&gt;#  CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; &lt;span class="comment"&gt;#  NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt; &lt;span class="comment"&gt;#  DISCLAIMER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt; &lt;span class="comment"&gt;#  When distributing this Code, include this HEADER in each file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt; &lt;span class="comment"&gt;#  If applicable, add the following below this this HEADER, with the fields&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; &lt;span class="comment"&gt;#  enclosed by brackets "[]" replaced with your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt; &lt;span class="comment"&gt;#       Portions Copyright [yyyy] [name of copyright owner]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER END&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt; &lt;span class="comment"&gt;#       Copyright 2011 Andrew Hopkinson, Oracle Corporation UK Ltd.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt; &lt;span class="comment"&gt;# genVNICsFromIBNetDiscover.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt; &lt;span class="comment"&gt;# ============================&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt; &lt;span class="comment"&gt;# Version : 1.0.2&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt; &lt;span class="comment"&gt;# This does not affect the system directly rather it build a number of other &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt; &lt;span class="comment"&gt;# scripts that the user can execute to modify the system. The scripts it &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt; &lt;span class="comment"&gt;# created are in in the format :&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt; &lt;span class="comment"&gt;#      create-&lt;switch name=""&gt;-&lt;eth port=""&gt;-VNICs.sh&lt;/eth&gt;&lt;/switch&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt; &lt;span class="comment"&gt;# This file contain a series of createvnic commands similar to those below&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;       &lt;span class="comment"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;       &lt;span class="comment"&gt;# "el01cn15 192.168.10.17 VNIC&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;       &lt;span class="comment"&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:f5:fa -mac a0:f5:fa:10:00:17 -pkey default&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;       &lt;span class="comment"&gt;# "el01cn16 192.168.10.18 VNIC&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;       &lt;span class="comment"&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:fb:4a -mac a0:fb:4a:10:00:18 -pkey default&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;       &lt;span class="comment"&gt;# "el01cn08 192.168.10.8 VNIC&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;       &lt;span class="comment"&gt;createvnic 0A-ETH-1 -guid 00:21:28:00:01:a0:d5:85 -mac a0:d5:85:10:00:08 -pkey default&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt; &lt;span class="comment"&gt;# Once created the user can then execute this file on the switch or edit it as&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt; &lt;span class="comment"&gt;# required.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt; &lt;span class="comment"&gt;# Parameters&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt; &lt;span class="comment"&gt;#   -a : Specifies is the script is to generate create-$swname-$ETHPORT-VNICs.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt; &lt;span class="comment"&gt;#      : files for all switches that can be identified from the ibnetdiscover&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt; &lt;span class="comment"&gt;#      : output. By default this is false and this script will only generate&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt; &lt;span class="comment"&gt;#      : output for the first switch found that is the one it is being run on.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt; &lt;span class="comment"&gt;#   -f : If this script is not being run on a switch or you already have an&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt; &lt;span class="comment"&gt;#      : output from ibnetdiscover that you want to use then it can be specified&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt; &lt;span class="comment"&gt;#      : with this flag. If the flag is not present the script will execute &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt; &lt;span class="comment"&gt;#      : ibnetdiscover to generate the file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt; &lt;span class="comment"&gt;#   -p : Defines the ETH Port for which thes create..... script will be generated&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt; &lt;span class="comment"&gt;#      : by default we assume thise is 0A-ETH-1. &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt; &lt;span class="comment"&gt;#   -v : If the script is not being run on a switch then you must supply the &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt; &lt;span class="comment"&gt;#      : output from showvnics. If the flag is not present then the script will&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt; &lt;span class="comment"&gt;#      : execute showvnics and write the content to a temporary file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt; &lt;span class="comment"&gt;#   -c : Flag to indicate that the /conf/bx.conf should be cleared.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt; &lt;span class="comment"&gt;# When called from the genVNICsFromListLookUp.sh script -a will be ommited &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt; &lt;span class="comment"&gt;# but -f and -p will be specified.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt; &lt;span class="comment"&gt;# Version History&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.0 - Initial Realease&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.1 - Modified the generation of the delete VNICs script so that it is &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt; &lt;span class="comment"&gt;#         generated based on the output from showvnics&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.2 - Added " service bxm restart" to the end of the deletevnincs generated &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt; &lt;span class="comment"&gt;#         file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt; IBNETDISCOVER=&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt; ETHPORT=0A-ETH-1&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt; PORTNO=00&lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt; ALLSWITCHES=false&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt; SHOWVNICSFILE=&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt; CLEARBXCONF=false&lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; [ $&lt;span class="comment"&gt;# -gt 0 ]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt;         &lt;span class="command"&gt;case&lt;/span&gt; &lt;span class="string"&gt;"$1"&lt;/span&gt; in&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt;                 -a) ALLSWITCHES=true;;&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt;                 -c) CLEARBXCONF=true;;&lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt;                 -f) IBNETDISCOVER=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt;                 -p) ETHPORT=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt;                 -v) SHOWVNICSFILE=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt;                 *) echo &lt;span class="string"&gt;""&lt;/span&gt;; &lt;span class="command"&gt;echo&lt;/span&gt; &amp;gt;&amp;amp;2 \&lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt;                     &lt;span class="string"&gt;"usage: $0 [-f ibnetdiscover output] [-p Ethernet Port (eg 0A-ETH-1)] [-a generate for all visible switches] [-v showvnics output] [-c clear /conf/bx.conf]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt;                     &lt;span class="command"&gt;echo&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;; &lt;span class="command"&gt;exit&lt;/span&gt; 1;;&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt;                 *) break;;&lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt;         &lt;span class="command"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt;         &lt;span class="command"&gt;shift&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;               &lt;span class="comment"&gt;    "usage: $0 [-f ibnetdiscover output] [-p Ethernet Port (eg 0A-ETH-1)] [-n Machine Name Prefix (eg el01)]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt; &lt;span class="comment"&gt;# Generate ibnetdiscover&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$IBNETDISCOVER"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generating ibnetdiscover"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;116&lt;/span&gt;         IBNETDISCOVER=ibnetdiscover.out&lt;br /&gt;&lt;span class="line-number"&gt;117&lt;/span&gt;         ibnetdiscover &amp;gt; $IBNETDISCOVER&lt;br /&gt;&lt;span class="line-number"&gt;118&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ &lt;span class="string"&gt;"$?"&lt;/span&gt; -ne &lt;span class="string"&gt;"0"&lt;/span&gt; ]&lt;br /&gt;&lt;span class="line-number"&gt;119&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;120&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;121&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Error: Generating ibnetdiscover output only works on the switch"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;122&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;123&lt;/span&gt;                 &lt;span class="command"&gt;exit&lt;/span&gt; 1&lt;br /&gt;&lt;span class="line-number"&gt;124&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;125&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;126&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;127&lt;/span&gt; &lt;span class="comment"&gt;# Generate showvnics&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;128&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$SHOWVNICSFILE"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;129&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;130&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generating showvnics"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;131&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;132&lt;/span&gt;         SHOWVNICSFILE=showvnics.out&lt;br /&gt;&lt;span class="line-number"&gt;133&lt;/span&gt;         showvnics &amp;gt; $SHOWVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;134&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ &lt;span class="string"&gt;"$?"&lt;/span&gt; -ne &lt;span class="string"&gt;"0"&lt;/span&gt; ]&lt;br /&gt;&lt;span class="line-number"&gt;135&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;136&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;137&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Error: Generating showvnics output only works on the switch"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;138&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;139&lt;/span&gt;                 &lt;span class="command"&gt;exit&lt;/span&gt; 1&lt;br /&gt;&lt;span class="line-number"&gt;140&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;141&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;142&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;143&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;144&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETHPORT"&lt;/span&gt; = &lt;span class="string"&gt;"0A-ETH-1"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;145&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;146&lt;/span&gt;         PORTNO=10&lt;br /&gt;&lt;span class="line-number"&gt;147&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;148&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETHPORT"&lt;/span&gt; = &lt;span class="string"&gt;"0A-ETH-2"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;149&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;150&lt;/span&gt;         PORTNO=20&lt;br /&gt;&lt;span class="line-number"&gt;151&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;152&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETHPORT"&lt;/span&gt; = &lt;span class="string"&gt;"0A-ETH-3"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;153&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;154&lt;/span&gt;         PORTNO=30&lt;br /&gt;&lt;span class="line-number"&gt;155&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;156&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETHPORT"&lt;/span&gt; = &lt;span class="string"&gt;"0A-ETH-4"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;157&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;158&lt;/span&gt;         PORTNO=40&lt;br /&gt;&lt;span class="line-number"&gt;159&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;160&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETHPORT"&lt;/span&gt; = &lt;span class="string"&gt;"1A-ETH-1"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;161&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;162&lt;/span&gt;         PORTNO=50&lt;br /&gt;&lt;span class="line-number"&gt;163&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;164&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETHPORT"&lt;/span&gt; = &lt;span class="string"&gt;"1A-ETH-2"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;165&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;166&lt;/span&gt;         PORTNO=60&lt;br /&gt;&lt;span class="line-number"&gt;167&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;168&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETHPORT"&lt;/span&gt; = &lt;span class="string"&gt;"1A-ETH-3"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;169&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;170&lt;/span&gt;         PORTNO=70&lt;br /&gt;&lt;span class="line-number"&gt;171&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;172&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETHPORT"&lt;/span&gt; = &lt;span class="string"&gt;"1A-ETH-4"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;173&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;174&lt;/span&gt;         PORTNO=80&lt;br /&gt;&lt;span class="line-number"&gt;175&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;176&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;177&lt;/span&gt; DELETEVNICSFILE=&lt;br /&gt;&lt;span class="line-number"&gt;178&lt;/span&gt; CREATEVNICSFILE=&lt;br /&gt;&lt;span class="line-number"&gt;179&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;180&lt;/span&gt; &lt;span class="comment"&gt;# Process file&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;181&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;182&lt;/span&gt; switchcount=0&lt;br /&gt;&lt;span class="line-number"&gt;183&lt;/span&gt; &lt;span class="command"&gt;ln&lt;/span&gt;=0&lt;br /&gt;&lt;span class="line-number"&gt;184&lt;/span&gt; vn=0&lt;br /&gt;&lt;span class="line-number"&gt;185&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; read line&lt;br /&gt;&lt;span class="line-number"&gt;186&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;187&lt;/span&gt;         &lt;span class="command"&gt;ln&lt;/span&gt;=`expr $ln + 1`&lt;br /&gt;&lt;span class="line-number"&gt;188&lt;/span&gt;         &lt;span class="comment"&gt;# Check for IB Switch&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;189&lt;/span&gt;         i=0&lt;br /&gt;&lt;span class="line-number"&gt;190&lt;/span&gt;         createfiles=false&lt;br /&gt;&lt;span class="line-number"&gt;191&lt;/span&gt;         swname=Unknown&lt;br /&gt;&lt;span class="line-number"&gt;192&lt;/span&gt;         &lt;span class="command"&gt;for&lt;/span&gt; el in $line&lt;br /&gt;&lt;span class="line-number"&gt;193&lt;/span&gt;         &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;194&lt;/span&gt;                 i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;195&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 1 ]&lt;br /&gt;&lt;span class="line-number"&gt;196&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;197&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$el"&lt;/span&gt; != &lt;span class="string"&gt;"Switch"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;198&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;199&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;200&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;201&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;202&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 6 ]&lt;br /&gt;&lt;span class="line-number"&gt;203&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;204&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$el"&lt;/span&gt; != &lt;span class="string"&gt;"IB"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;205&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;206&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;207&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;208&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;209&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 7 ]&lt;br /&gt;&lt;span class="line-number"&gt;210&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;211&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$el"&lt;/span&gt; != &lt;span class="string"&gt;"QDR"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;212&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;213&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;214&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;215&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;216&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 10 ]&lt;br /&gt;&lt;span class="line-number"&gt;217&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;218&lt;/span&gt;                         switchname=$el&lt;br /&gt;&lt;span class="line-number"&gt;219&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$el"&lt;/span&gt; != &lt;span class="string"&gt;"localhost"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;220&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;221&lt;/span&gt;                                 swname=$el&lt;br /&gt;&lt;span class="line-number"&gt;222&lt;/span&gt;                                 createfiles=true&lt;br /&gt;&lt;span class="line-number"&gt;223&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;224&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;225&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;226&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 11 ]&lt;br /&gt;&lt;span class="line-number"&gt;227&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;228&lt;/span&gt;                         swname=$el&lt;br /&gt;&lt;span class="line-number"&gt;229&lt;/span&gt;                         createfiles=true&lt;br /&gt;&lt;span class="line-number"&gt;230&lt;/span&gt;                         &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;231&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;232&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;               &lt;span class="comment"&gt;echo "$i el = $el"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;233&lt;/span&gt;         &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;234&lt;/span&gt;         &lt;br /&gt;&lt;span class="line-number"&gt;235&lt;/span&gt;         &lt;span class="comment"&gt;# Check if we need to create files&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;236&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$createfiles"&lt;/span&gt; = &lt;span class="string"&gt;"true"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;237&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;238&lt;/span&gt;                 createfiles=false&lt;br /&gt;&lt;span class="line-number"&gt;239&lt;/span&gt;                 switchcount=`expr $switchcount + 1`&lt;br /&gt;&lt;span class="line-number"&gt;240&lt;/span&gt;                         &lt;br /&gt;&lt;span class="line-number"&gt;241&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $switchcount -eq 2 ]&lt;br /&gt;&lt;span class="line-number"&gt;242&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;243&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ALLSWITCHES"&lt;/span&gt; != &lt;span class="string"&gt;"true"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;244&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;245&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;246&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;247&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;248&lt;/span&gt;                 &lt;br /&gt;&lt;span class="line-number"&gt;249&lt;/span&gt;                 CREATEVNICSFILE=create-$swname-$ETHPORT-VNICs.sh&lt;br /&gt;&lt;span class="line-number"&gt;250&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"#!/bin/sh"&lt;/span&gt; &amp;gt; $CREATEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;251&lt;/span&gt;                 &lt;span class="command"&gt;chmod&lt;/span&gt; +x $CREATEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;252&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;253&lt;/span&gt;         &lt;br /&gt;&lt;span class="line-number"&gt;254&lt;/span&gt;         &lt;span class="comment"&gt;# Check for Connection&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;255&lt;/span&gt;         i=0&lt;br /&gt;&lt;span class="line-number"&gt;256&lt;/span&gt;         &lt;span class="command"&gt;for&lt;/span&gt; el in $line&lt;br /&gt;&lt;span class="line-number"&gt;257&lt;/span&gt;         &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;258&lt;/span&gt;                 i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;259&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 2 ]&lt;br /&gt;&lt;span class="line-number"&gt;260&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;261&lt;/span&gt;                         sc=`expr substr $el 2 1`&lt;br /&gt;&lt;span class="line-number"&gt;262&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$sc"&lt;/span&gt; != &lt;span class="string"&gt;"H"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;263&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;264&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;265&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;266&lt;/span&gt;                         &lt;br /&gt;&lt;span class="line-number"&gt;267&lt;/span&gt;                         oct1=`expr substr $el 25 2`&lt;br /&gt;&lt;span class="line-number"&gt;268&lt;/span&gt;                         oct2=`expr substr $el 27 2`&lt;br /&gt;&lt;span class="line-number"&gt;269&lt;/span&gt;                         oct3=`expr substr $el 29 2`&lt;br /&gt;&lt;span class="line-number"&gt;270&lt;/span&gt;                         oct4=`expr substr $el 31 2`&lt;br /&gt;&lt;span class="line-number"&gt;271&lt;/span&gt;                         oct5=`expr substr $el 33 2`&lt;br /&gt;&lt;span class="line-number"&gt;272&lt;/span&gt;                         oct6=`expr substr $el 35 2`&lt;br /&gt;&lt;span class="line-number"&gt;273&lt;/span&gt;                         oct7=`expr substr $el 37 2`&lt;br /&gt;&lt;span class="line-number"&gt;274&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;275&lt;/span&gt;                         guid=00:$oct1:$oct2:$oct3:$oct4:$oct5:$oct6:$oct7&lt;br /&gt;&lt;span class="line-number"&gt;276&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;277&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 4 ]&lt;br /&gt;&lt;span class="line-number"&gt;278&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;279&lt;/span&gt;                         cn=$el&lt;br /&gt;&lt;span class="line-number"&gt;280&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;281&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 5 ]&lt;br /&gt;&lt;span class="line-number"&gt;282&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;283&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$el"&lt;/span&gt; != &lt;span class="string"&gt;"EL-C"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;284&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;285&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;286&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;287&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;288&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 6 ]&lt;br /&gt;&lt;span class="line-number"&gt;289&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;290&lt;/span&gt;                         ip=$el&lt;br /&gt;&lt;span class="line-number"&gt;291&lt;/span&gt;                         len=`expr length $el`&lt;br /&gt;&lt;span class="line-number"&gt;292&lt;/span&gt;                         start=`expr $len - 1`&lt;br /&gt;&lt;span class="line-number"&gt;293&lt;/span&gt;                         mac3=`expr substr $el $start 2`&lt;br /&gt;&lt;span class="line-number"&gt;294&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"`expr substr $mac3 1 1`"&lt;/span&gt; = &lt;span class="string"&gt;"."&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;295&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;296&lt;/span&gt;                                 start=`expr $start + 1`&lt;br /&gt;&lt;span class="line-number"&gt;297&lt;/span&gt;                                 mac3=0`expr substr $el $start 1`&lt;br /&gt;&lt;span class="line-number"&gt;298&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;299&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;300&lt;/span&gt;                         mac=a0:$oct6:$oct7:$PORTNO:00:$mac3&lt;br /&gt;&lt;span class="line-number"&gt;301&lt;/span&gt;                         &lt;br /&gt;&lt;span class="line-number"&gt;302&lt;/span&gt;                         &lt;span class="comment"&gt;# Write to file&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;303&lt;/span&gt;                         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"# $cn $ip VNIC"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;304&lt;/span&gt;                         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"createvnic $ETHPORT -guid $guid -mac $mac -pkey default"&lt;/span&gt; &amp;gt;&amp;gt; $CREATEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;305&lt;/span&gt;                         &lt;br /&gt;&lt;span class="line-number"&gt;306&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;307&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;               &lt;span class="comment"&gt;echo "$i el = $el"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;308&lt;/span&gt;         &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;309&lt;/span&gt;         &lt;br /&gt;&lt;span class="line-number"&gt;310&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt; &amp;lt; $IBNETDISCOVER&lt;br /&gt;&lt;span class="line-number"&gt;311&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;312&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;313&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generated Switch Files"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;314&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;315&lt;/span&gt; &lt;span class="comment"&gt;# Generate DELETEVNICS File&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;316&lt;/span&gt; DELETEVNICSFILE=delete-$ETHPORT-VNICs.sh&lt;br /&gt;&lt;span class="line-number"&gt;317&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"#!/bin/sh"&lt;/span&gt; &amp;gt; $DELETEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;318&lt;/span&gt; &lt;span class="command"&gt;chmod&lt;/span&gt; +x $DELETEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;319&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;320&lt;/span&gt; SHOWVNICSFILEGREP=$SHOWVNICSFILE.grep&lt;br /&gt;&lt;span class="line-number"&gt;321&lt;/span&gt; &lt;span class="command"&gt;grep&lt;/span&gt; $ETHPORT $SHOWVNICSFILE &amp;gt; $SHOWVNICSFILEGREP&lt;br /&gt;&lt;span class="line-number"&gt;322&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; read line&lt;br /&gt;&lt;span class="line-number"&gt;323&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;324&lt;/span&gt;         i=0&lt;br /&gt;&lt;span class="line-number"&gt;325&lt;/span&gt;         &lt;span class="command"&gt;for&lt;/span&gt; el in $line&lt;br /&gt;&lt;span class="line-number"&gt;326&lt;/span&gt;         &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;327&lt;/span&gt;                 i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;328&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 1 ]&lt;br /&gt;&lt;span class="line-number"&gt;329&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;330&lt;/span&gt;                         vn=$el&lt;br /&gt;&lt;span class="line-number"&gt;331&lt;/span&gt;                         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"deletevnic $ETHPORT $vn"&lt;/span&gt; &amp;gt;&amp;gt; $DELETEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;332&lt;/span&gt;                         &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;333&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;334&lt;/span&gt;         &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;335&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt; &amp;lt; $SHOWVNICSFILEGREP&lt;br /&gt;&lt;span class="line-number"&gt;336&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;337&lt;/span&gt; &lt;span class="command"&gt;rm&lt;/span&gt; $SHOWVNICSFILEGREP&lt;br /&gt;&lt;span class="line-number"&gt;338&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;339&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$CLEARBXCONF"&lt;/span&gt; = &lt;span class="string"&gt;"true"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;340&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;341&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"echo &amp;gt; /conf/bx.conf"&lt;/span&gt; &amp;gt;&amp;gt; $DELETEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;342&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;343&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;344&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"service bxm restart"&lt;/span&gt; &amp;gt;&amp;gt; $DELETEVNICSFILE&lt;br /&gt;&lt;span class="line-number"&gt;345&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;346&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generated Delete VNICS Files"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;347&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;348&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h1&gt;Bonds and Eth Config&lt;/h1&gt;Once the vNICs have been created we need to configure each of the      Compute Nodes to connect to each of the switches and to do this we      will create two Ethernet configuration files, by convention named      ifcfg-eth4 and ifcfg-eth5, which are the physical connections to      the ports. In addition we will create a bonded port, by convention      name ifcfg-bond1, which it the logical port that the Compute Node      will connect through. The creation of the bonded (bond1) network      provides network resilience and fail-over. The contents of these      files are similar to the following :&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Ifcfg-eth4&lt;/h2&gt;&lt;pre class="code"&gt;DEVICE=eth4&lt;br /&gt;BOOTPROTO=none&lt;br /&gt;ONBOOT=yes&lt;br /&gt;HWADDR=A0:F9:1E:50:00:32&lt;br /&gt;MASTER=bond1&lt;br /&gt;SLAVE=yes&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Ifcfg-eth5&lt;/h2&gt;&lt;pre class="code"&gt;DEVICE=eth5&lt;br /&gt;BOOTPROTO=none&lt;br /&gt;ONBOOT=yes&lt;br /&gt;HWADDR=A0:F9:1D:50:00:32&lt;br /&gt;MASTER=bond1&lt;br /&gt;SLAVE=yes&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Ifcfg-bond1&lt;/h2&gt;&lt;pre class="code"&gt;DEVICE=bond1&lt;br /&gt;IPADDR=10.131.12.94&lt;br /&gt;NETMASK=255.255.255.0&lt;br /&gt;BOOTPROTO=none&lt;br /&gt;USERCTL=no&lt;br /&gt;TYPE=Ethernet&lt;br /&gt;ONBOOT=yes&lt;br /&gt;IPV6INIT=no&lt;br /&gt;BONDING_OPTS="mode=active-backup miimon=100 downdelay=5000 updelay=5000"&lt;br /&gt;GATEWAY=10.131.12.1&lt;br /&gt;&lt;/pre&gt;In addition to allow default routing over the 10Gb Network we      will need to modify the network conguration to specify the 10Gb      network as the default routing option.&lt;br /&gt;&lt;br /&gt;Again I have created some simple scripts to simplify the work and      running the genCNNetFiles.sh will generated an new script that      uses dcli to distribute the genIfcfgFiles.sh and execute it using      ssh. This will generate the appropriate ifcfg files based on the      outputs from the previous create vNICs execution.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=2412996079172416992"&gt;genCNNetFiles.sh&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; &lt;span class="comment"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;      &lt;span class="comment"&gt;Exalogic EL X2-2 1.0 (Linux x86-64) Configuration Script.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER START&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; &lt;span class="comment"&gt;#  THIS SCRIPT IS PROVIDED ON AN �AS IS� BASIS, WITHOUT WARRANTY OF ANY KIND, &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt; &lt;span class="comment"&gt;#  EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt; &lt;span class="comment"&gt;#  THE COVERED SCRIPT IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt; &lt;span class="comment"&gt;#  PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; &lt;span class="comment"&gt;#  OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt; &lt;span class="comment"&gt;#  DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt; &lt;span class="comment"&gt;#  CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; &lt;span class="comment"&gt;#  NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt; &lt;span class="comment"&gt;#  DISCLAIMER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt; &lt;span class="comment"&gt;#  When distributing this Code, include this HEADER in each file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt; &lt;span class="comment"&gt;#  If applicable, add the following below this this HEADER, with the fields&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; &lt;span class="comment"&gt;#  enclosed by brackets "[]" replaced with your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt; &lt;span class="comment"&gt;#       Portions Copyright [yyyy] [name of copyright owner]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER END&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt; &lt;span class="comment"&gt;#       Copyright 2011 Andrew Hopkinson, Oracle Corporation UK Ltd.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt; &lt;span class="comment"&gt;# genCNNetFiles.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt; &lt;span class="comment"&gt;# ================&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt; &lt;span class="comment"&gt;# Version : 1.0.2&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt; &lt;span class="comment"&gt;# This does not affect the system directly rather it build a number of other &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt; &lt;span class="comment"&gt;# scripts that the user can execute to modify the system. The three scripts it &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt; &lt;span class="comment"&gt;# creates are:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt; &lt;span class="comment"&gt;#    createAllIfCfg.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt; &lt;span class="comment"&gt;#    setDefaultRouting.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt; &lt;span class="comment"&gt;#    add10gIPToHosts.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt; &lt;span class="comment"&gt;# In addition it relies on the existance of the genIfcfgFiles.sh within the same&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt; &lt;span class="comment"&gt;# directory.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt; &lt;span class="comment"&gt;# Parameters&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt; &lt;span class="comment"&gt;#   -d     : Home directory of the dcli command&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt; &lt;span class="comment"&gt;#   -n     : Node list to need processed&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt; &lt;span class="comment"&gt;#   -ip    : A file containing a list (one per line) IP Address that will be&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt; &lt;span class="comment"&gt;#          : allocated to the nodes. This allows for non sequential IPs&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt; &lt;span class="comment"&gt;#   -nm    : The Bond1 Network Mask&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt; &lt;span class="comment"&gt;#   -gw    : The Gateway to be used by the 10 Gb bond1 conection.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt; &lt;span class="comment"&gt;#   -vnic1 : File containing the output for showvnics on Gateway Switch 1 &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt; &lt;span class="comment"&gt;#          : The contents will be paired with the entry for -vnics2 to&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt; &lt;span class="comment"&gt;#          : create the ifcfg-eth4 file. (Compute Nodes 1-16)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt; &lt;span class="comment"&gt;#   -vnic2 : File containing the output for showvnics on Gateway Switch 2 &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt; &lt;span class="comment"&gt;#          : The contents will be paired with the entry for -vnics1 to&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt; &lt;span class="comment"&gt;#          : create the ifcfg-eth5 file. (Compute Nodes 1-16)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt; &lt;span class="comment"&gt;#   -vnic3 : File containing the output for showvnics on Gateway Switch 3 &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt; &lt;span class="comment"&gt;#          : The contents will be paired with the entry for -vnics4 to&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt; &lt;span class="comment"&gt;#          : create the ifcfg-eth4 file. (Compute Nodes 17-30)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt; &lt;span class="comment"&gt;#   -vnic4 : File containing the output for showvnics on Gateway Switch 4 &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt; &lt;span class="comment"&gt;#          : The contents will be paired with the entry for -vnics3 to&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt; &lt;span class="comment"&gt;#          : create the ifcfg-eth5 file. (Compute Nodes 17-30)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt; &lt;span class="comment"&gt;# createAllIfCfg.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt; &lt;span class="comment"&gt;# -----------------&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt; &lt;span class="comment"&gt;# This generated script will use dcli to copy the genIfcfgFiles.sh to all nodes&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt; &lt;span class="comment"&gt;# and then execute this script using a series of ssh commands. These ssh commands&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt; &lt;span class="comment"&gt;# commands are built within the main script and pass in compute node specific &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt; &lt;span class="comment"&gt;# information (see genIfcfgFiles.sh header for information). On completion of &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt; &lt;span class="comment"&gt;# the script the genIfcfgFiles.sh will be removed from all compute nodes.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt; &lt;span class="comment"&gt;# setDefaultRouting.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt; &lt;span class="comment"&gt;# --------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt; &lt;span class="comment"&gt;# This generated script will remove the default routing information and then &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt; &lt;span class="comment"&gt;# add the 10 Gb (bond1) gateway as the default route. It should be executed &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt; &lt;span class="comment"&gt;# after the service network restart has completed.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt; &lt;span class="comment"&gt;# add10gIPToHosts.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt; &lt;span class="comment"&gt;# ------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt; &lt;span class="comment"&gt;# Optional script that when executed will add entries to the hosts file in the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt; &lt;span class="comment"&gt;# format :&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt; &lt;span class="comment"&gt;#    &lt;ip address=""&gt; &lt;compute node=""&gt;&amp;lt;10Gb Suffix&amp;gt;&lt;/compute&gt;&lt;/ip&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt; &lt;span class="comment"&gt;#    10.131.12.61 el2bcn01-10g&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt; &lt;span class="comment"&gt;# The script is simply a set of echo commands to the /etc/hosts file and it is&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt; &lt;span class="comment"&gt;# left to the user to decide if this should be executed via dcli.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt; &lt;span class="comment"&gt;# Version History&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.0 - Initial Realease.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.1 - Enable generation of add10gIPToHosts.sh script.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.2 - Extend the generated createAllIfCfg.sh so that it will re-run the ssh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt; &lt;span class="comment"&gt;#         trust setup removed at the end of the Exalogic Configuration Utility.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt; &lt;span class="comment"&gt;#         This can be disabled by using the -i flag on the createAllIfCfg.sh.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt; NODELIST=nodelist&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt; DCLIHOME=/opt/exalogic.tools/tools&lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt; VNICS1FILE=&lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt; VNICS2FILE=&lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt; VNICS3FILE=&lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt; VNICS4FILE=&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt; IPFILE=&lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt; TENGBSUFFIX=-10g&lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt; bond1nm=255.255.255.0&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt; bond1gw=10.131.12.1&lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;116&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; [ $&lt;span class="comment"&gt;# -gt 0 ]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;117&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;118&lt;/span&gt;         &lt;span class="command"&gt;case&lt;/span&gt; &lt;span class="string"&gt;"$1"&lt;/span&gt; in&lt;br /&gt;&lt;span class="line-number"&gt;119&lt;/span&gt;                 -d) DCLIHOME=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;120&lt;/span&gt;                 -n) NODELIST=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;121&lt;/span&gt;                 -ip) IPFILE=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;122&lt;/span&gt;                 -&lt;span class="command"&gt;nm&lt;/span&gt;) bond1nm=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;123&lt;/span&gt;                 -gw) bond1gw=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;124&lt;/span&gt;                 -vnic1) VNICS1FILE=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;125&lt;/span&gt;                 -vnic2) VNICS2FILE=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;126&lt;/span&gt;                 -vnic3) VNICS3FILE=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;127&lt;/span&gt;                 -vnic4) VNICS4FILE=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;128&lt;/span&gt;                 -10g) TENGBSUFFIX=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;129&lt;/span&gt;                 *) echo &lt;span class="string"&gt;""&lt;/span&gt;; &lt;span class="command"&gt;echo&lt;/span&gt; &amp;gt;&amp;amp;2 \&lt;br /&gt;&lt;span class="line-number"&gt;130&lt;/span&gt;                     &lt;span class="string"&gt;"usage: $0 -d &lt;dcli home=""&gt; -n &lt;nodelist file=""&gt; -ip &lt;file addresses="" containing="" ip=""&gt; -gw &lt;bond1 gateway=""&gt; -nm &lt;bond1 netmask=""&gt; -vnic1 &lt;output 1="" from="" of="" showvnics="" switch=""&gt; -vnic2 &lt;output 2="" from="" of="" showvnics="" switch=""&gt; [-vnic3 &lt;output 3="" from="" of="" showvnics="" switch=""&gt; -vnic4 &lt;output 4="" from="" of="" showvnics="" switch=""&gt;]"&lt;/output&gt;&lt;/output&gt;&lt;/output&gt;&lt;/output&gt;&lt;/bond1&gt;&lt;/bond1&gt;&lt;/file&gt;&lt;/nodelist&gt;&lt;/dcli&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;131&lt;/span&gt;                     &lt;span class="command"&gt;echo&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;; &lt;span class="command"&gt;exit&lt;/span&gt; 1;;&lt;br /&gt;&lt;span class="line-number"&gt;132&lt;/span&gt;                 *) break;;&lt;br /&gt;&lt;span class="line-number"&gt;133&lt;/span&gt;         &lt;span class="command"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;134&lt;/span&gt;         &lt;span class="command"&gt;shift&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;135&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;136&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;137&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$DCLIHOME"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;138&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;139&lt;/span&gt;         DCLIHOME=/opt/exalogic.tools/tools&lt;br /&gt;&lt;span class="line-number"&gt;140&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;141&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;142&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$NODELIST"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;143&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;144&lt;/span&gt;         NODELIST=nodelist&lt;br /&gt;&lt;span class="line-number"&gt;145&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;146&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;147&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$TENGBSUFFIX"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;148&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;149&lt;/span&gt;         TENGBSUFFIX=-10g&lt;br /&gt;&lt;span class="line-number"&gt;150&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;151&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;152&lt;/span&gt; vl1=${&lt;span class="comment"&gt;#VNICS1FILE}&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;153&lt;/span&gt; vl2=${&lt;span class="comment"&gt;#VNICS2FILE}&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;154&lt;/span&gt; vl3=${&lt;span class="comment"&gt;#VNICS3FILE}&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;155&lt;/span&gt; vl4=${&lt;span class="comment"&gt;#VNICS4FILE}&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;156&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;157&lt;/span&gt; &lt;span class="comment"&gt;# Check for the VNIC Files&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;158&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; [ $vl1 -eq 0 ] || [ $vl2 -eq 0 ]&lt;br /&gt;&lt;span class="line-number"&gt;159&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;160&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Outputs from showvnics for Switch 1 and 2 must be provided"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;161&lt;/span&gt;         &lt;span class="command"&gt;exit&lt;/span&gt; 1&lt;br /&gt;&lt;span class="line-number"&gt;162&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;163&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;164&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; [ $vl3 -gt 0 ] &amp;amp;&amp;amp; [ $vl4 -eq 0 ]&lt;br /&gt;&lt;span class="line-number"&gt;165&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;166&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Output from Switch 3 and 4 must be provided as a pair"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;167&lt;/span&gt;         &lt;span class="command"&gt;exit&lt;/span&gt; 1&lt;br /&gt;&lt;span class="line-number"&gt;168&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;169&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; [ $vl3 -eq 0 ] &amp;amp;&amp;amp; [ $vl4 -gt 0 ]&lt;br /&gt;&lt;span class="line-number"&gt;170&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;171&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Output from Switch 3 and 4 must be provided as a pair"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;172&lt;/span&gt;         &lt;span class="command"&gt;exit&lt;/span&gt; 1&lt;br /&gt;&lt;span class="line-number"&gt;173&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;174&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;175&lt;/span&gt; &lt;span class="comment"&gt;# Need to validate the vnic file pairing ie there are either 2 or 4 I assume they are paired correctly&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;176&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;177&lt;/span&gt; GENIFCFGSCRIPT=genIfcfgFiles.sh&lt;br /&gt;&lt;span class="line-number"&gt;178&lt;/span&gt; CREATECFGFILE=createAllIfCfg.sh&lt;br /&gt;&lt;span class="line-number"&gt;179&lt;/span&gt; SETDEFAULTROUTING=setDefaultRouting.sh&lt;br /&gt;&lt;span class="line-number"&gt;180&lt;/span&gt; ADDTOHOSTS=add10gIPToHosts.sh&lt;br /&gt;&lt;span class="line-number"&gt;181&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;182&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"#!/bin/sh"&lt;/span&gt; &amp;gt; $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;183&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"echo \"**********************\""&lt;/span&gt; &amp;gt;&amp;gt; $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;184&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"echo \"** Processing \`hostname\` \""&lt;/span&gt; &amp;gt;&amp;gt; $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;185&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"echo \"**********************\""&lt;/span&gt; &amp;gt;&amp;gt; $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;186&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"netstat -rn"&lt;/span&gt; &amp;gt;&amp;gt; $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;187&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"route delete default"&lt;/span&gt; &amp;gt;&amp;gt; $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;188&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"route add default gw $bond1gw bond1"&lt;/span&gt; &amp;gt;&amp;gt; $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;189&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"netstat -rn"&lt;/span&gt; &amp;gt;&amp;gt; $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;190&lt;/span&gt; &lt;span class="command"&gt;chmod&lt;/span&gt; +x $SETDEFAULTROUTING&lt;br /&gt;&lt;span class="line-number"&gt;191&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;192&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;193&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;194&lt;/span&gt; &lt;span class="comment"&gt;# Copy Create Script to all nodes&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;195&lt;/span&gt; DESTDIR=/tmp/GenScripts&lt;br /&gt;&lt;span class="line-number"&gt;196&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;197&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"#!/bin/sh"&lt;/span&gt; &amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;198&lt;/span&gt; &lt;span class="command"&gt;chmod&lt;/span&gt; +x $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;199&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;200&lt;/span&gt; &lt;span class="comment"&gt;# Set ssh Trust Setup&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;201&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"SETUPSSHTRUST=true"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;202&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;203&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;204&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"while [ \$# -gt 0 ]"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;205&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"do"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;206&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;  &lt;span class="string"&gt;case \"\$1\" in&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;207&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;          &lt;span class="string"&gt;-i) SETUPSSHTRUST=false;;"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;208&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;          &lt;span class="string"&gt;*) echo \"\"&lt;/span&gt;; &lt;span class="command"&gt;echo&lt;/span&gt; &amp;gt;&amp;amp;2 \\&lt;span class="string"&gt;"  &amp;gt;&amp;gt; $CREATECFGFILE&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;209&lt;/span&gt; echo &lt;span class="string"&gt;"&lt;/span&gt;          &lt;span class="string"&gt;    \"usage: \$0 [-i &lt;ignore assume="" in="" is="" place="" setup="" ssh="" trust=""&gt;]\""&lt;/ignore&gt;&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;210&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;          &lt;span class="string"&gt;    echo\"\"&lt;/span&gt;; &lt;span class="command"&gt;exit&lt;/span&gt; 1;;&lt;span class="string"&gt;"  &amp;gt;&amp;gt; $CREATECFGFILE&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;211&lt;/span&gt; echo &lt;span class="string"&gt;"&lt;/span&gt;          &lt;span class="string"&gt;*) break;;"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;212&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;  &lt;span class="string"&gt;esac"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;213&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;  &lt;span class="string"&gt;shift"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;214&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"done"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;215&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;216&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;217&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"if test \"\$SETUPSSHTRUST\" = \"true\""&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;218&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"then"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;219&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;  &lt;span class="string"&gt;echo \"Setting up SSH Trust\""&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;220&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;  &lt;span class="string"&gt;echo \"\"&lt;/span&gt;&lt;span class="string"&gt;"  &amp;gt;&amp;gt; $CREATECFGFILE&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;221&lt;/span&gt; echo &lt;span class="string"&gt;"&lt;/span&gt;  &lt;span class="string"&gt;ssh-keygen -t dsa"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;222&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"&lt;/span&gt;  &lt;span class="string"&gt;$DCLIHOME/dcli -k -g $NODELIST "&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;223&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"fi"&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;224&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;225&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;226&lt;/span&gt; &lt;span class="comment"&gt;# Copy Files&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;227&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"chmod +x genIfcfgFiles.sh"&lt;/span&gt; &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;228&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"dos2unix genIfcfgFiles.sh"&lt;/span&gt; &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;229&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"$DCLIHOME/dcli -g $NODELIST mkdir -p $DESTDIR"&lt;/span&gt; &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;230&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"$DCLIHOME/dcli -g $NODELIST -d $DESTDIR -f genIfcfgFiles.sh"&lt;/span&gt; &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;231&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"$DCLIHOME/dcli -g $NODELIST -d $DESTDIR -f $SETDEFAULTROUTING"&lt;/span&gt; &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;232&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;  &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;233&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;234&lt;/span&gt; &lt;span class="comment"&gt;# Now for each compute node we need to execute the appropriate command&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;235&lt;/span&gt; NEWNODELIST=$NODELIST.out&lt;br /&gt;&lt;span class="line-number"&gt;236&lt;/span&gt; &amp;gt; $NEWNODELIST&lt;br /&gt;&lt;span class="line-number"&gt;237&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;238&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"#!/bin/sh"&lt;/span&gt; &amp;gt; $ADDTOHOSTS&lt;br /&gt;&lt;span class="line-number"&gt;239&lt;/span&gt; &lt;span class="command"&gt;chmod&lt;/span&gt; +x $ADDTOHOSTS&lt;br /&gt;&lt;span class="line-number"&gt;240&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"echo \"\"&lt;/span&gt; &amp;gt;&amp;gt; /etc/hosts&lt;span class="string"&gt;" &amp;gt;&amp;gt; $ADDTOHOSTS&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;241&lt;/span&gt; echo &lt;span class="string"&gt;"echo \"# Auto Generated Exalogic IP / Hostname for 10Gb (bond1) Connections\" &amp;gt;&amp;gt; /etc/hosts"&lt;/span&gt; &amp;gt;&amp;gt; $ADDTOHOSTS&lt;br /&gt;&lt;span class="line-number"&gt;242&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"echo \"\"&lt;/span&gt; &amp;gt;&amp;gt; /etc/hosts&lt;span class="string"&gt;" &amp;gt;&amp;gt; $ADDTOHOSTS&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;243&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;244&lt;/span&gt; cnip=0&lt;br /&gt;&lt;span class="line-number"&gt;245&lt;/span&gt; &lt;span class="comment"&gt;# We need to execute this for the Switch pairings&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;246&lt;/span&gt; &lt;span class="comment"&gt;# VNICS1FILE &amp;amp; VNICS2FILE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;247&lt;/span&gt; &lt;span class="comment"&gt;# Optionally&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;248&lt;/span&gt; &lt;span class="comment"&gt;# VNICS3FILE &amp;amp; VNICS4FILE&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;249&lt;/span&gt; &lt;span class="command"&gt;for&lt;/span&gt; ETH4FILE in $VNICS1FILE $VNICS3FILE&lt;br /&gt;&lt;span class="line-number"&gt;250&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;251&lt;/span&gt;         &lt;span class="comment"&gt;# Get ETH5FILE&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;252&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETH4FILE"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;253&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;254&lt;/span&gt;                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;255&lt;/span&gt;         &lt;span class="command"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;256&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$ETH4FILE"&lt;/span&gt; = &lt;span class="string"&gt;"$VNICS1FILE"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;257&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;258&lt;/span&gt;                         ETH5FILE=$VNICS2FILE&lt;br /&gt;&lt;span class="line-number"&gt;259&lt;/span&gt;                 &lt;span class="command"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;260&lt;/span&gt;                         ETH5FILE=$VNICS4FILE&lt;br /&gt;&lt;span class="line-number"&gt;261&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;262&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;263&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Eth4 $ETH4FILE"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;264&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Eth5 $ETH5FILE"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;265&lt;/span&gt;         &lt;br /&gt;&lt;span class="line-number"&gt;266&lt;/span&gt;         &lt;span class="comment"&gt;# Sort Input File&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;267&lt;/span&gt;         SORTEDETH4FILE=$ETH4FILE.sorted&lt;br /&gt;&lt;span class="line-number"&gt;268&lt;/span&gt;         &lt;span class="command"&gt;sort&lt;/span&gt; +4 -5 $ETH4FILE &amp;gt; $SORTEDETH4FILE&lt;br /&gt;&lt;span class="line-number"&gt;269&lt;/span&gt;         &lt;br /&gt;&lt;span class="line-number"&gt;270&lt;/span&gt;         &lt;span class="command"&gt;ln&lt;/span&gt;=0&lt;br /&gt;&lt;span class="line-number"&gt;271&lt;/span&gt;         &lt;span class="command"&gt;while&lt;/span&gt; read line&lt;br /&gt;&lt;span class="line-number"&gt;272&lt;/span&gt;         &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;273&lt;/span&gt;                 &lt;span class="command"&gt;ln&lt;/span&gt;=`expr $ln + 1`&lt;br /&gt;&lt;span class="line-number"&gt;274&lt;/span&gt;                 &lt;br /&gt;&lt;span class="line-number"&gt;275&lt;/span&gt;                 i=0&lt;br /&gt;&lt;span class="line-number"&gt;276&lt;/span&gt;                 &lt;span class="command"&gt;for&lt;/span&gt; el in $line&lt;br /&gt;&lt;span class="line-number"&gt;277&lt;/span&gt;                 &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;278&lt;/span&gt;                         i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;279&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 1 ]&lt;br /&gt;&lt;span class="line-number"&gt;280&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;281&lt;/span&gt;                                 s=$el&lt;br /&gt;&lt;span class="line-number"&gt;282&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt;283&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;284&lt;/span&gt;                 &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;285&lt;/span&gt;                 &lt;br /&gt;&lt;span class="line-number"&gt;286&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$s"&lt;/span&gt; = &lt;span class="string"&gt;"---"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;287&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;288&lt;/span&gt;                         &lt;span class="command"&gt;continue&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;289&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;290&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$s"&lt;/span&gt; = &lt;span class="string"&gt;"ID"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;291&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;292&lt;/span&gt;                         &lt;span class="command"&gt;continue&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;293&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;294&lt;/span&gt;                 &lt;span class="comment"&gt;# It's a Compute node so lets process it&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;295&lt;/span&gt;                 &lt;br /&gt;&lt;span class="line-number"&gt;296&lt;/span&gt;                 cnip=`expr $cnip + 1`&lt;br /&gt;&lt;span class="line-number"&gt;297&lt;/span&gt;                 &lt;span class="comment"&gt;# Get the Compute Node and its Mac from the first VNIC File&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;298&lt;/span&gt;                 &lt;span class="comment"&gt;# We will assume this is eth4 Mac address&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;299&lt;/span&gt;                 i=0&lt;br /&gt;&lt;span class="line-number"&gt;300&lt;/span&gt;                 &lt;span class="command"&gt;for&lt;/span&gt; el in $line&lt;br /&gt;&lt;span class="line-number"&gt;301&lt;/span&gt;                 &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;302&lt;/span&gt;                         i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;303&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 5 ]&lt;br /&gt;&lt;span class="line-number"&gt;304&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;305&lt;/span&gt;                                 cn=$el&lt;br /&gt;&lt;span class="line-number"&gt;306&lt;/span&gt;                                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"$cn"&lt;/span&gt; &amp;gt;&amp;gt; $NEWNODELIST&lt;br /&gt;&lt;span class="line-number"&gt;307&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;308&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 7 ]&lt;br /&gt;&lt;span class="line-number"&gt;309&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;310&lt;/span&gt;                                 ip=$el&lt;br /&gt;&lt;span class="line-number"&gt;311&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;312&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 9 ]&lt;br /&gt;&lt;span class="line-number"&gt;313&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;314&lt;/span&gt;                                 eth4mac=$el&lt;br /&gt;&lt;span class="line-number"&gt;315&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;316&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 12 ]&lt;br /&gt;&lt;span class="line-number"&gt;317&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;318&lt;/span&gt;                                 port=$el&lt;br /&gt;&lt;span class="line-number"&gt;319&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;320&lt;/span&gt;                 &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;321&lt;/span&gt;                 &lt;br /&gt;&lt;span class="line-number"&gt;322&lt;/span&gt;                 &lt;span class="comment"&gt;# Now we have the information from the first VNICs file we will process&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;323&lt;/span&gt;                 &lt;span class="comment"&gt;# the second to get eth5 mac address.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;324&lt;/span&gt;                 &lt;span class="comment"&gt;#line=`grep $cn $VNICS2FILE`&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;325&lt;/span&gt;                 line=`grep $cn $ETH5FILE`&lt;br /&gt;&lt;span class="line-number"&gt;326&lt;/span&gt;                 &lt;span class="comment"&gt;#echo $line&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;327&lt;/span&gt;                 i=0&lt;br /&gt;&lt;span class="line-number"&gt;328&lt;/span&gt;                 &lt;span class="command"&gt;for&lt;/span&gt; el in $line&lt;br /&gt;&lt;span class="line-number"&gt;329&lt;/span&gt;                 &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;330&lt;/span&gt;                         i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;331&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 9 ]&lt;br /&gt;&lt;span class="line-number"&gt;332&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;333&lt;/span&gt;                                 eth5mac=$el&lt;br /&gt;&lt;span class="line-number"&gt;334&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;335&lt;/span&gt;                 &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;336&lt;/span&gt;                 &lt;br /&gt;&lt;span class="line-number"&gt;337&lt;/span&gt;                 &lt;span class="comment"&gt;# Now we need to get the Bond 1 (10 Gb) IP Address from the list in the supplied file&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;338&lt;/span&gt;                 i=0&lt;br /&gt;&lt;span class="line-number"&gt;339&lt;/span&gt;                 &lt;span class="command"&gt;while&lt;/span&gt; read ipaddr&lt;br /&gt;&lt;span class="line-number"&gt;340&lt;/span&gt;                 &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;341&lt;/span&gt;                         i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;342&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq $cnip ]&lt;br /&gt;&lt;span class="line-number"&gt;343&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;344&lt;/span&gt;                                 bond1ip=$ipaddr&lt;br /&gt;&lt;span class="line-number"&gt;345&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;346&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;347&lt;/span&gt;                 &lt;span class="command"&gt;done&lt;/span&gt; &amp;lt; $IPFILE&lt;br /&gt;&lt;span class="line-number"&gt;348&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"# Call Script on $cn"&lt;/span&gt; &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;349&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"ssh -l root $cn $DESTDIR/$GENIFCFGSCRIPT -ip $bond1ip -nm $bond1nm -gw $bond1gw -m4 $eth4mac -m5 $eth5mac -cn $cn"&lt;/span&gt; &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;350&lt;/span&gt;                 &lt;br /&gt;&lt;span class="line-number"&gt;351&lt;/span&gt;                 cnalt=&lt;br /&gt;&lt;span class="line-number"&gt;352&lt;/span&gt;                 cnl=${&lt;span class="comment"&gt;#cn}&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;353&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $cnl -gt 2 ]&lt;br /&gt;&lt;span class="line-number"&gt;354&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;355&lt;/span&gt;                         ipos=`expr $cnl - 2`&lt;br /&gt;&lt;span class="line-number"&gt;356&lt;/span&gt;                         cns=${cn:0:$ipos}&lt;br /&gt;&lt;span class="line-number"&gt;357&lt;/span&gt;                         cne=${cn:$ipos}&lt;br /&gt;&lt;span class="line-number"&gt;358&lt;/span&gt;                         cnalt=${cn/%$cne/x$cne}&lt;br /&gt;&lt;span class="line-number"&gt;359&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;360&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"echo \"$bond1ip $cn$TENGBSUFFIX $cnalt\" &amp;gt;&amp;gt; /etc/hosts"&lt;/span&gt; &amp;gt;&amp;gt; $ADDTOHOSTS&lt;br /&gt;&lt;span class="line-number"&gt;361&lt;/span&gt;         &lt;span class="command"&gt;done&lt;/span&gt; &amp;lt; $SORTEDETH4FILE&lt;br /&gt;&lt;span class="line-number"&gt;362&lt;/span&gt;         &lt;span class="comment"&gt;#done &amp;lt; $VNICS1FILE&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;363&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;364&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;365&lt;/span&gt; &lt;span class="comment"&gt;# Remove working file&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;366&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"$DCLIHOME/dcli -g $NODELIST rm -r $DESTDIR"&lt;/span&gt; &amp;gt;&amp;gt; $CREATECFGFILE&lt;br /&gt;&lt;span class="line-number"&gt;367&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;368&lt;/span&gt; &lt;span class="comment"&gt;# Report Complete&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;369&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;370&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generated $CREATECFGFILE"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;371&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"=================================="&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;372&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;373&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"File should be validated before executing"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;374&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;375&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"The script has also create the $SETDEFAULTROUTING file that can be executed"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;376&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"to reconfigure the default routing once the $CREATECFGFILE has completed"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;377&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"its restart of the network"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;378&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;379&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;380&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=2412996079172416992"&gt;genIfgcfgFiles.sh&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; &lt;span class="comment"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;      &lt;span class="comment"&gt;Exalogic EL X2-2 1.0 (Linux x86-64) Configuration Script.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER START&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; &lt;span class="comment"&gt;#  THIS SCRIPT IS PROVIDED ON AN �AS IS� BASIS, WITHOUT WARRANTY OF ANY KIND, &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt; &lt;span class="comment"&gt;#  EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt; &lt;span class="comment"&gt;#  THE COVERED SCRIPT IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt; &lt;span class="comment"&gt;#  PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; &lt;span class="comment"&gt;#  OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt; &lt;span class="comment"&gt;#  DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt; &lt;span class="comment"&gt;#  CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; &lt;span class="comment"&gt;#  NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt; &lt;span class="comment"&gt;#  DISCLAIMER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt; &lt;span class="comment"&gt;#  When distributing this Code, include this HEADER in each file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt; &lt;span class="comment"&gt;#  If applicable, add the following below this this HEADER, with the fields&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; &lt;span class="comment"&gt;#  enclosed by brackets "[]" replaced with your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt; &lt;span class="comment"&gt;#       Portions Copyright [yyyy] [name of copyright owner]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER END&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt; &lt;span class="comment"&gt;#       Copyright 2011 Andrew Hopkinson, Oracle Corporation UK Ltd.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt; &lt;span class="comment"&gt;# genIfcfgFiles.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt; &lt;span class="comment"&gt;# ================&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt; &lt;span class="comment"&gt;# Version : 1.0.0&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt; &lt;span class="comment"&gt;# This script is used to generate ifcfg_bond1, ifcfg_eth4 and ifcfg_eth5 files&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt; &lt;span class="comment"&gt;# in the /etc/sysconfig/network-scripts directory based on the passed parameters.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt; &lt;span class="comment"&gt;# The key reason for this script is to help configure the 10 Gb Networking on&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt; &lt;span class="comment"&gt;# bond1 but also configure the redundant eth4 &amp;amp; eth5 network connection to our&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt; &lt;span class="comment"&gt;# pairs of switches.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt; &lt;span class="comment"&gt;# Parameters&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt; &lt;span class="comment"&gt;#   -ip : The IP Address that should be assigned to the bond1 connection&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt; &lt;span class="comment"&gt;#   -nm : The Bond1 Network Mask&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt; &lt;span class="comment"&gt;#   -gw : The Gateway to be used by the 10 Gb bond1 conection.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt; &lt;span class="comment"&gt;#   -m4 : The MAC Address to be associated with Eth4. This may have been &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt; &lt;span class="comment"&gt;#         previously configured using the genVNICsFromIBNetDiscover.sh or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt; &lt;span class="comment"&gt;#         genVNICsFromListLinkUp.sh on the Switches.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt; &lt;span class="comment"&gt;#   -m5 : The MAC Address to be associated with Eth5. This may have been &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt; &lt;span class="comment"&gt;#         previously configured using the genVNICsFromIBNetDiscover.sh or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt; &lt;span class="comment"&gt;#         genVNICsFromListLinkUp.sh on the Switches.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt; &lt;span class="comment"&gt;# Processing&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt; &lt;span class="comment"&gt;# On execution the script will first edit the /etc/sysconfig/network file to add&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt; &lt;span class="comment"&gt;# the specified 10 Gb Gateway. Once this has been done it will create the three&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt; &lt;span class="comment"&gt;# ifcfg- files in /etc/sysconfig/network-scripts. &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt; &lt;span class="comment"&gt;# Having created the file the script will, optionally, then edit the /etc/sysctl.conf&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt; &lt;span class="comment"&gt;# file to set net.ipv4.conf.default.rp_filter = 2 which will provide a loose &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt; &lt;span class="comment"&gt;# filtering on the network and hence allow the standard management connection to be &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt; &lt;span class="comment"&gt;# discovered and connected to.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt; &lt;span class="comment"&gt;# The final part of the script will restart the network service to implement the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt; &lt;span class="comment"&gt;# changes. On completion of this script we will need to remove the default route&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt; &lt;span class="comment"&gt;# and add a new default that goes via the bond1 gateway. This is done in the &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt; &lt;span class="comment"&gt;# setDefaultRouting.sh that will be generated as part of the genCNNetFiles.sh.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt; &lt;span class="comment"&gt;# Version History&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.0 - Initial Realease&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt; &lt;span class="comment"&gt;# Define Variables&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt; BAK_EXT=`date +&lt;span class="string"&gt;"%Y%m%d-%H%M%S"&lt;/span&gt;`&lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt; BAK_PREFIX=Orig&lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt; SYSCONFROOT=/etc/sysconfig&lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt; IFCFGROOT=$SYSCONFROOT/network-scripts&lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt; NETWORKFILE=$SYSCONFROOT/network&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt; BACKUPNETWORKFILE=$SYSCONFROOT/$BAK_PREFIX.network.$BAK_EXT&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt; SYSCTLFILE=/etc/sysctl.conf&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt; BACKUPSYSCTLFILE=/etc/$BAK_PREFIX.sysctl.conf.$BAK_EXT&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt; BOND1IP=&lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt; BOND1NM=&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt; BOND1GW=&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt; ETH4MAC=&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt; ETH5MAC=&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt; COMPUTENODE=&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt; &lt;span class="comment"&gt;# Setting the following variable to true will cause the /etc/sysctl.conf file&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt; &lt;span class="comment"&gt;# to be edited so that the net.ipv4.conf.default.rp_filter = 2&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt; &lt;span class="comment"&gt;# This is not recommended for production.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt; CHANGESYSCTL=false&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt; &lt;span class="comment"&gt;# Read Parameters&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; [ $&lt;span class="comment"&gt;# -gt 0 ]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt;         &lt;span class="command"&gt;case&lt;/span&gt; &lt;span class="string"&gt;"$1"&lt;/span&gt; in&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt;                 -r) IFCFGROOT=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt;                 -ip) BOND1IP=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt;                 -&lt;span class="command"&gt;nm&lt;/span&gt;) BOND1NM=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt;                 -gw) BOND1GW=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt;                 -&lt;span class="command"&gt;m4&lt;/span&gt;) ETH4MAC=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt;                 -m5) ETH5MAC=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;116&lt;/span&gt;                 -cn) COMPUTENODE=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt;117&lt;/span&gt;                 *) echo &lt;span class="string"&gt;""&lt;/span&gt;; &lt;span class="command"&gt;echo&lt;/span&gt; &amp;gt;&amp;amp;2 \&lt;br /&gt;&lt;span class="line-number"&gt;118&lt;/span&gt;                     &lt;span class="string"&gt;"usage: $0 [-r &lt;ifcfg configuration="" file="" root=""&gt;] -ip &lt;bond (10="" 1="" address="" eth)="" gb="" ip=""&gt; -nm &lt;bond (10="" 1="" eth)="" gb="" mask="" net=""&gt; -gw &lt;bond (10="" 1="" eth)="" gateway="" gb=""&gt; -m4 &lt;eth (primary)="" 4="" address="" hardware="" mac=""&gt; -m5 &lt;eth (secondary)="" 5="" address="" hardware="" mac=""&gt; "&lt;/eth&gt;&lt;/eth&gt;&lt;/bond&gt;&lt;/bond&gt;&lt;/bond&gt;&lt;/ifcfg&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;119&lt;/span&gt;                     &lt;span class="command"&gt;echo&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;; &lt;span class="command"&gt;exit&lt;/span&gt; 1;;&lt;br /&gt;&lt;span class="line-number"&gt;120&lt;/span&gt;                 *) break;;&lt;br /&gt;&lt;span class="line-number"&gt;121&lt;/span&gt;         &lt;span class="command"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;122&lt;/span&gt;         &lt;span class="command"&gt;shift&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;123&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;124&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;125&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;126&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"***** Starting Processessing on Compute Node $COMPUTENODE *****"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;127&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;128&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;129&lt;/span&gt; &lt;span class="comment"&gt;# Set File Names&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;130&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;131&lt;/span&gt; IFCFG_BOND1=$IFCFGROOT/ifcfg-bond1&lt;br /&gt;&lt;span class="line-number"&gt;132&lt;/span&gt; IFCFG_ETH4=$IFCFGROOT/ifcfg-eth4&lt;br /&gt;&lt;span class="line-number"&gt;133&lt;/span&gt; IFCFG_ETH5=$IFCFGROOT/ifcfg-eth5&lt;br /&gt;&lt;span class="line-number"&gt;134&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;135&lt;/span&gt; BAK_IFCFG_BOND1=$IFCFGROOT/$BAK_PREFIX.ifcfg-bond1.$BAK_EXT&lt;br /&gt;&lt;span class="line-number"&gt;136&lt;/span&gt; BAK_IFCFG_ETH4=$IFCFGROOT/$BAK_PREFIX.ifcfg-eth4.$BAK_EXT&lt;br /&gt;&lt;span class="line-number"&gt;137&lt;/span&gt; BAK_IFCFG_ETH5=$IFCFGROOT/$BAK_PREFIX.ifcfg-eth5.$BAK_EXT&lt;br /&gt;&lt;span class="line-number"&gt;138&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;139&lt;/span&gt; &lt;span class="comment"&gt;# Backup any existing files&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;140&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; [ -f $IFCFG_BOND1 ] &lt;br /&gt;&lt;span class="line-number"&gt;141&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;142&lt;/span&gt;         &lt;span class="command"&gt;mv&lt;/span&gt; $IFCFG_BOND1 $BAK_IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;143&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;144&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; [ -f $IFCFG_ETH4 ] &lt;br /&gt;&lt;span class="line-number"&gt;145&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;146&lt;/span&gt;         &lt;span class="command"&gt;mv&lt;/span&gt; $IFCFG_ETH4 $BAK_IFCFG_ETH4&lt;br /&gt;&lt;span class="line-number"&gt;147&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;148&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; [ -f $IFCFG_ETH5 ] &lt;br /&gt;&lt;span class="line-number"&gt;149&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;150&lt;/span&gt;         &lt;span class="command"&gt;mv&lt;/span&gt; $IFCFG_ETH5 $BAK_IFCFG_ETH5&lt;br /&gt;&lt;span class="line-number"&gt;151&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;152&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;153&lt;/span&gt; &lt;span class="comment"&gt;# Generate Bond1 (10 Gb Ethernet File)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;154&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;155&lt;/span&gt; &amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;156&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"DEVICE=bond1"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;157&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"IPADDR=$BOND1IP"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;158&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"NETMASK=$BOND1NM"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;159&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"BOOTPROTO=none"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;160&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"USERCTL=no"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;161&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"TYPE=Ethernet"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;162&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"ONBOOT=yes"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;163&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"IPV6INIT=no"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;164&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"BONDING_OPTS=\"mode=active-backup miimon=100 downdelay=5000 updelay=5000\""&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;165&lt;/span&gt; &lt;span class="comment"&gt;# Do I need the Gateway or just set it in /etc/sysconfig/network as per EIS Checklist&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;166&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"GATEWAY=$BOND1GW"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_BOND1&lt;br /&gt;&lt;span class="line-number"&gt;167&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;168&lt;/span&gt; &lt;span class="comment"&gt;# Process Network file&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;169&lt;/span&gt; &lt;span class="comment"&gt;# Backup&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;170&lt;/span&gt; &lt;span class="command"&gt;mv&lt;/span&gt; $NETWORKFILE $BACKUPNETWORKFILE&lt;br /&gt;&lt;span class="line-number"&gt;171&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;172&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; read line&lt;br /&gt;&lt;span class="line-number"&gt;173&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;174&lt;/span&gt;         len=${&lt;span class="comment"&gt;#line}&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;175&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ $len -eq 0 ]&lt;br /&gt;&lt;span class="line-number"&gt;176&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;177&lt;/span&gt;                 &lt;span class="command"&gt;continue&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;178&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;179&lt;/span&gt;         f7=`expr substr $line 1 7`&lt;br /&gt;&lt;span class="line-number"&gt;180&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$f7"&lt;/span&gt; != &lt;span class="string"&gt;"GATEWAY"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;181&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;182&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; $line &amp;gt;&amp;gt; $NETWORKFILE&lt;br /&gt;&lt;span class="line-number"&gt;183&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;184&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt; &amp;lt; $BACKUPNETWORKFILE&lt;br /&gt;&lt;span class="line-number"&gt;185&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"GATEWAY=$BOND1GW"&lt;/span&gt; &amp;gt;&amp;gt; $NETWORKFILE&lt;br /&gt;&lt;span class="line-number"&gt;186&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"GATEWAYDEV=bond1"&lt;/span&gt; &amp;gt;&amp;gt; $NETWORKFILE&lt;br /&gt;&lt;span class="line-number"&gt;187&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;188&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Edited $NETWORKFILE file"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;189&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;190&lt;/span&gt; &lt;span class="comment"&gt;# Generate ETH4 &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;191&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;192&lt;/span&gt; &amp;gt; $IFCFG_ETH4&lt;br /&gt;&lt;span class="line-number"&gt;193&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"DEVICE=eth4"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH4&lt;br /&gt;&lt;span class="line-number"&gt;194&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"BOOTPROTO=none"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH4&lt;br /&gt;&lt;span class="line-number"&gt;195&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"ONBOOT=yes"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH4&lt;br /&gt;&lt;span class="line-number"&gt;196&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"HWADDR=$ETH4MAC"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH4&lt;br /&gt;&lt;span class="line-number"&gt;197&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"MASTER=bond1"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH4&lt;br /&gt;&lt;span class="line-number"&gt;198&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"SLAVE=yes"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH4&lt;br /&gt;&lt;span class="line-number"&gt;199&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;200&lt;/span&gt; &lt;span class="comment"&gt;# Generate ETH5 &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;201&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;202&lt;/span&gt; &amp;gt; $IFCFG_ETH5&lt;br /&gt;&lt;span class="line-number"&gt;203&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"DEVICE=eth5"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH5&lt;br /&gt;&lt;span class="line-number"&gt;204&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"BOOTPROTO=none"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH5&lt;br /&gt;&lt;span class="line-number"&gt;205&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"ONBOOT=yes"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH5&lt;br /&gt;&lt;span class="line-number"&gt;206&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"HWADDR=$ETH5MAC"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH5&lt;br /&gt;&lt;span class="line-number"&gt;207&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"MASTER=bond1"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH5&lt;br /&gt;&lt;span class="line-number"&gt;208&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"SLAVE=yes"&lt;/span&gt; &amp;gt;&amp;gt; $IFCFG_ETH5&lt;br /&gt;&lt;span class="line-number"&gt;209&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;210&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;211&lt;/span&gt; &lt;span class="comment"&gt;# Complete Message&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;212&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;213&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Generated New ifcfg files"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;214&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"          $IFCFG_BOND1"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;215&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"          $IFCFG_ETH4"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;216&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"          $IFCFG_ETH5"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;217&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;218&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$CHANGESYSCTL"&lt;/span&gt; = &lt;span class="string"&gt;"true"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;219&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;220&lt;/span&gt;         &lt;span class="comment"&gt;# Change the /etc/sysctl.conf so that the default filtering is 2&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;221&lt;/span&gt;         &lt;span class="comment"&gt;# This will allow the normal &amp;amp; 10 Gb network access&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;222&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;223&lt;/span&gt;         &lt;span class="comment"&gt;# Backup&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;224&lt;/span&gt;         &lt;span class="command"&gt;mv&lt;/span&gt; $SYSCTLFILE $BACKUPSYSCTLFILE&lt;br /&gt;&lt;span class="line-number"&gt;225&lt;/span&gt;         &lt;br /&gt;&lt;span class="line-number"&gt;226&lt;/span&gt;         &lt;span class="command"&gt;while&lt;/span&gt; read line&lt;br /&gt;&lt;span class="line-number"&gt;227&lt;/span&gt;         &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;228&lt;/span&gt;                 len=${&lt;span class="comment"&gt;#line}&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;229&lt;/span&gt;                 &lt;span class="command"&gt;if&lt;/span&gt; [ $len -eq 0 ]&lt;br /&gt;&lt;span class="line-number"&gt;230&lt;/span&gt;                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;231&lt;/span&gt;                         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt; &amp;gt;&amp;gt; $SYSCTLFILE&lt;br /&gt;&lt;span class="line-number"&gt;232&lt;/span&gt;                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;233&lt;/span&gt;                 &lt;br /&gt;&lt;span class="line-number"&gt;234&lt;/span&gt;                 i=0&lt;br /&gt;&lt;span class="line-number"&gt;235&lt;/span&gt;                 &lt;span class="command"&gt;for&lt;/span&gt; el in $line&lt;br /&gt;&lt;span class="line-number"&gt;236&lt;/span&gt;                 &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;237&lt;/span&gt;                         i=`expr $i + 1`&lt;br /&gt;&lt;span class="line-number"&gt;238&lt;/span&gt;                         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 1 ]&lt;br /&gt;&lt;span class="line-number"&gt;239&lt;/span&gt;                         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;240&lt;/span&gt;                                 &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$el"&lt;/span&gt; = &lt;span class="string"&gt;"net.ipv4.conf.default.rp_filter"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;241&lt;/span&gt;                                 &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;242&lt;/span&gt;                                         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"net.ipv4.conf.default.rp_filter = 2"&lt;/span&gt; &amp;gt;&amp;gt; $SYSCTLFILE&lt;br /&gt;&lt;span class="line-number"&gt;243&lt;/span&gt;                                 &lt;span class="command"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;244&lt;/span&gt;                                         &lt;span class="command"&gt;echo&lt;/span&gt; $line &amp;gt;&amp;gt; $SYSCTLFILE&lt;br /&gt;&lt;span class="line-number"&gt;245&lt;/span&gt;                                 &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;246&lt;/span&gt;                                 &lt;span class="command"&gt;break&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;247&lt;/span&gt;                         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;248&lt;/span&gt;                 &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;249&lt;/span&gt;         &lt;span class="command"&gt;done&lt;/span&gt; &amp;lt; $BACKUPSYSCTLFILE&lt;br /&gt;&lt;span class="line-number"&gt;250&lt;/span&gt;         &lt;br /&gt;&lt;span class="line-number"&gt;251&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Editted $SYSCTLFILE file"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;252&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;253&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;254&lt;/span&gt; &lt;span class="comment"&gt;# Restarting Network&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;255&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;256&lt;/span&gt; service network restart&lt;br /&gt;&lt;span class="line-number"&gt;257&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;258&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;259&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"***** Finished Processessing on Compute Node $COMPUTENODE *****"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;260&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;261&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;262&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h1&gt;vIPs&lt;/h1&gt;Virtual IPs are useful when multiple, virtual, IPs for a single      compute node and we have used this when running multiple WLS      domains on the same Compute Node. Using vIPs allows you the create      all the domains with the same port number but different IP      address. The net result is that we can simplify HA / Failover and      load balancing.&lt;br /&gt;&lt;br /&gt;The simple script below will generate a specified number of,      sequential, vIPs with a given Netmask for a given bond.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=2412996079172416992"&gt;genVNICsFromLinkListUp.sh&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; &lt;span class="comment"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;      &lt;span class="comment"&gt;Exalogic EL X2-2 1.0 (Linux x86-64) Configuration Script.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER START&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; &lt;span class="comment"&gt;#  THIS SCRIPT IS PROVIDED ON AN �AS IS� BASIS, WITHOUT WARRANTY OF ANY KIND, &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt; &lt;span class="comment"&gt;#  EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt; &lt;span class="comment"&gt;#  THE COVERED SCRIPT IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt; &lt;span class="comment"&gt;#  PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; &lt;span class="comment"&gt;#  OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt; &lt;span class="comment"&gt;#  DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt; &lt;span class="comment"&gt;#  CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; &lt;span class="comment"&gt;#  NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt; &lt;span class="comment"&gt;#  DISCLAIMER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt; &lt;span class="comment"&gt;#  When distributing this Code, include this HEADER in each file.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt; &lt;span class="comment"&gt;#  If applicable, add the following below this this HEADER, with the fields&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; &lt;span class="comment"&gt;#  enclosed by brackets "[]" replaced with your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt; &lt;span class="comment"&gt;#       Portions Copyright [yyyy] [name of copyright owner]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt; &lt;span class="comment"&gt;#  HEADER END&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt; &lt;span class="comment"&gt;# &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt; &lt;span class="comment"&gt;#       Copyright 2011 Andrew Hopkinson, Oracle Corporation UK Ltd.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt; &lt;span class="comment"&gt;# createVLANs.sh&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt; &lt;span class="comment"&gt;# ==============&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt; &lt;span class="comment"&gt;# Version : 1.0.0&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt; &lt;span class="comment"&gt;# This scripts simply creates a number of VLANs for a specified bond. The script&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt; &lt;span class="comment"&gt;# must be provided with all the parameters and will then simply loop starting at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt; &lt;span class="comment"&gt;# the first IP Address and incrementing by 1 until it has processed the specified &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt; &lt;span class="comment"&gt;# number. &lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt; &lt;span class="comment"&gt;# Parameters&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt; &lt;span class="comment"&gt;#   -ip : Starting IP Address in the format 192.168.12.1.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt; &lt;span class="comment"&gt;#   -nm : Netmask (i.e. 255.255.255.0)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt; &lt;span class="comment"&gt;#   -c  : Number of VLANs to create&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt; &lt;span class="comment"&gt;#   -b  : Bond on which the VLANs should be created (bond0 or bond1)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt; &lt;span class="comment"&gt;# Version History&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt; &lt;span class="comment"&gt;# 1.0.0 - Initial Realease&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt; &lt;span class="comment"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt; &lt;span class="comment"&gt;################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt; &lt;span class="comment"&gt;# functions&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt; usage()&lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt; {&lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &amp;gt;&amp;amp;2 &lt;span class="string"&gt;"usage: $0 [-ip Starting IP] [-nm Netmask] [-c Number of IPs require] [-b Bond]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt; SBIN=/sbin&lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; [ $&lt;span class="comment"&gt;# -gt 0 ]&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt;         &lt;span class="command"&gt;case&lt;/span&gt; &lt;span class="string"&gt;"$1"&lt;/span&gt; in&lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt;                 -ip) STARTIP=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt;                 -&lt;span class="command"&gt;nm&lt;/span&gt;) MASK=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt;                 -c) COUNT=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt;                 -b) BOND=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt;                 -sbin) SBIN=&lt;span class="string"&gt;"$2"&lt;/span&gt;; &lt;span class="command"&gt;shift&lt;/span&gt;;;&lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt;                 *) usage; &lt;span class="command"&gt;exit&lt;/span&gt; 1;;&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt;                 *) break;;&lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt;         &lt;span class="command"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt;         &lt;span class="command"&gt;shift&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$STARTIP"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Starting IP Address must be specified"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt;         usage&lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt;         &lt;span class="command"&gt;exit&lt;/span&gt; 1;&lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$MASK"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Netmask must be specified"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt;         usage&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt;         &lt;span class="command"&gt;exit&lt;/span&gt; 1;&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$COUNT"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Number of IP Addresses must be specified"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt;         usage&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt;         &lt;span class="command"&gt;exit&lt;/span&gt; 1;&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt; &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$BOND"&lt;/span&gt; = &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt; &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt;         &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Bond must be specified"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt;         usage&lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt;         &lt;span class="command"&gt;exit&lt;/span&gt; 1;&lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt; &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt; &lt;span class="comment"&gt;# Strip out the constituent parts of the IP Address&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt; ip=$STARTIP&lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt; &lt;span class="command"&gt;for&lt;/span&gt; i in 1 2 3&lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt;         pos=`expr index $ip .`&lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 1 ]&lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt;                 ip1=${ip:0:$pos}&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 2 ]&lt;br /&gt;&lt;span class="line-number"&gt;116&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;117&lt;/span&gt;                 ip2=${ip:0:$pos}&lt;br /&gt;&lt;span class="line-number"&gt;118&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;119&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 3 ]&lt;br /&gt;&lt;span class="line-number"&gt;120&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;121&lt;/span&gt;                 ip3=${ip:0:$pos}&lt;br /&gt;&lt;span class="line-number"&gt;122&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;123&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; [ $i -eq 4 ]&lt;br /&gt;&lt;span class="line-number"&gt;124&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;125&lt;/span&gt;                 ip4=${ip:0:$pos}&lt;br /&gt;&lt;span class="line-number"&gt;126&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;127&lt;/span&gt;         ip=${ip:$pos}&lt;br /&gt;&lt;span class="line-number"&gt;128&lt;/span&gt;         ip4=$ip&lt;br /&gt;&lt;span class="line-number"&gt;129&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;130&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;131&lt;/span&gt; &lt;span class="comment"&gt;# Loop through and create VLANS&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;132&lt;/span&gt; &lt;span class="command"&gt;for&lt;/span&gt; (( i=1; i&amp;lt;=$COUNT; i++ ))&lt;br /&gt;&lt;span class="line-number"&gt;133&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;134&lt;/span&gt;         ip=$ip1$ip2$ip3$ip4&lt;br /&gt;&lt;span class="line-number"&gt;135&lt;/span&gt;         $SBIN/ifconfig $BOND:$i $ip netmask $MASK up&lt;br /&gt;&lt;span class="line-number"&gt;136&lt;/span&gt;         $SBIN/arping -q -U -c 3 -I $BOND $ip&lt;br /&gt;&lt;span class="line-number"&gt;137&lt;/span&gt;         ip4=`expr $ip4 + 1`&lt;br /&gt;&lt;span class="line-number"&gt;138&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;139&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;140&lt;/span&gt; ip4=`expr $ip4 - 1`&lt;br /&gt;&lt;span class="line-number"&gt;141&lt;/span&gt; ENDIP=$ip1$ip2$ip3$ip4&lt;br /&gt;&lt;span class="line-number"&gt;142&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;143&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Creating a ifcfg file to make permenant"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;144&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;145&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;146&lt;/span&gt; BAK_EXT=`date +&lt;span class="string"&gt;"%Y%m%d-%H%M%S"&lt;/span&gt;`&lt;br /&gt;&lt;span class="line-number"&gt;147&lt;/span&gt; IFCFG_FILE=&lt;span class="string"&gt;"/etc/sysconfig/network-scripts/ifcfg-$BOND"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;148&lt;/span&gt; VIP_RANGE_FILE=&lt;span class="string"&gt;"$IFCFG_FILE-range0"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;149&lt;/span&gt; BACKUP_VIP_RANGE_FILE=Orig.$VIP_RANGE_FILE.$BAK_EXT&lt;br /&gt;&lt;span class="line-number"&gt;150&lt;/span&gt; &lt;span class="command"&gt;mv&lt;/span&gt; $VIP_RANGE_FILE $BACKUP_VIP_RANGE_FILE&lt;br /&gt;&lt;span class="line-number"&gt;151&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;152&lt;/span&gt; &lt;span class="command"&gt;while&lt;/span&gt; read line&lt;br /&gt;&lt;span class="line-number"&gt;153&lt;/span&gt; &lt;span class="command"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;154&lt;/span&gt;         f6=${line:0:6}&lt;br /&gt;&lt;span class="line-number"&gt;155&lt;/span&gt;         &lt;span class="command"&gt;if&lt;/span&gt; test &lt;span class="string"&gt;"$f6"&lt;/span&gt; = &lt;span class="string"&gt;"IPADDR"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;156&lt;/span&gt;         &lt;span class="command"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;157&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; $line&lt;br /&gt;&lt;span class="line-number"&gt;158&lt;/span&gt;         &lt;span class="command"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;159&lt;/span&gt;                 &lt;span class="command"&gt;echo&lt;/span&gt; $line &amp;gt;&amp;gt; $VIP_RANGE_FILE&lt;br /&gt;&lt;span class="line-number"&gt;160&lt;/span&gt;         &lt;span class="command"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;161&lt;/span&gt; &lt;span class="command"&gt;done&lt;/span&gt; &amp;lt; $IFCFG_FILE&lt;br /&gt;&lt;span class="line-number"&gt;162&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;163&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"IPADDR_START=$STARTIP"&lt;/span&gt; &amp;gt;&amp;gt; $VIP_RANGE_FILE&lt;br /&gt;&lt;span class="line-number"&gt;164&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"IPADDR_END=$ENDIP"&lt;/span&gt; &amp;gt;&amp;gt; $VIP_RANGE_FILE&lt;br /&gt;&lt;span class="line-number"&gt;165&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"CLONENUM_START=1"&lt;/span&gt; &amp;gt;&amp;gt; $VIP_RANGE_FILE&lt;br /&gt;&lt;span class="line-number"&gt;166&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;167&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;168&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;"Created VLANs $STARTIP to $ENDIP on $BOND"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;169&lt;/span&gt; &lt;span class="command"&gt;echo&lt;/span&gt; &lt;span class="string"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;170&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;171&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h1&gt;vLANs&lt;/h1&gt;Virtual LANs are used to combine multiple domains and hence IP      subnets onto a single physical port. The be fully configured both      ends of the connected cable must be capable and configured for      vLANs and hence I will assume this is the case. We use vLANs to      enforce security isolation, division of workload and splitting      traing across multiple domains / subnets.&lt;br /&gt;&lt;br /&gt;A simple scenario (I will document more in later articles) would      be to partition the Exalogic so that we can run Production, Test      and Development on the same box but keep their 10Gb Ethernet      connection isolated.&lt;br /&gt;&lt;br /&gt;To create a vLAN (no script for this one) we simply issue the      createvlan command on the switch as follows.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;createvlan &lt;eth port=""&gt; -vlan &lt;id&gt; -pkey default&lt;br /&gt;&lt;br /&gt;&lt;/id&gt;&lt;/eth&gt;&lt;/pre&gt;Where:    &lt;br /&gt;&lt;ul&gt;&lt;li&gt;ETH Port : Ethernet Port on the switch e.g. 0A-ETH-3,        1A-ETH-1, etc&lt;/li&gt;&lt;li&gt;&lt;id&gt; Unique number between 2 and 4094&lt;/id&gt;&lt;/li&gt;&lt;/ul&gt;As long as the VLAN IDs are unique we can create multiple vLANs      on each of the ports.&lt;br /&gt;At this point to enforce the network issolation we will associated the newly created vLANs to specific vNICs and hence Compute Nodes. At present the scripts for creating vNICs do not do this but it can be easily achived by modifying the generated &lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%;"&gt;Create-&lt;switch name=""&gt;-&lt;eth port=""&gt;-VNICs.sh&lt;/eth&gt;&lt;/switch&gt;&lt;/span&gt; to add the -vlan argument to specify the required vLAN ID.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/278589584459681634-2412996079172416992?l=theoldtoxophilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theoldtoxophilist.blogspot.com/feeds/2412996079172416992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theoldtoxophilist.blogspot.com/2011/08/exalogic-networking-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/278589584459681634/posts/default/2412996079172416992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/278589584459681634/posts/default/2412996079172416992'/><link rel='alternate' type='text/html' href='http://theoldtoxophilist.blogspot.com/2011/08/exalogic-networking-part-1.html' title='Exalogic Networking Part 1'/><author><name>The Old Toxophilist</name><uri>http://www.blogger.com/profile/00930158998245901220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://lh3.ggpht.com/_iEXxIAjXQuE/SqUMN92i14I/AAAAAAAABak/yvGfGM7j7dI/s640/MeSmaller.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-278589584459681634.post-928544787456181851</id><published>2011-07-05T16:18:00.010+01:00</published><updated>2011-07-05T17:12:32.805+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Coherence'/><category scheme='http://www.blogger.com/atom/ns#' term='XDM'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='XAM'/><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>Implementing XML Object Model based on XAM/XDM</title><content type='html'>&lt;h1&gt;Overview&lt;/h1&gt;As part of the the migration process for the &lt;a href="http://theoldtoxophilist.blogspot.com/2011/06/netbeans-coherence-project.html"&gt;NetBeans        Coherence Module &lt;/a&gt; I have decided to migrate my Java/XML      implementation from JAXB to a XAM/XDM based model because it will      be a more appropriate fit for the advanced XML editor      functionality and will remove some of the synchronisation issues      seen in my initial release of the &lt;a href="http://blogs.oracle.com/toxophily/entry/netbeans_coherence_code_generator_update"&gt;NetBeans        Coherence Plug-in &lt;/a&gt;. As part of this development process I      decided that it would be good to put together a simple tutorial      that will allow others to repeat the process and cement the      development strategy within my own mind.&lt;br /&gt;&lt;br /&gt;At present their is currently no automated method of generating      XAM/XDM Java Interfaces / Implementation classes similar to that      provided by JAXB (maybe a future project if I get time) so I will      be documenting my approach to the development process. The      NetBeans Coherence module provides editors for the three core      Coherence XML files "POF Config", Cache Config" and "Coherence      Operational" and for this tutorial I will be working with the      pof-config XML file. With Coherence 3.7 the Coherence team has      provided XSD definitions of the XML files and hence I will be      working with these as the source for my implementation.&lt;br /&gt;&lt;br /&gt;A future Blog entry will explain how I link the XAM/XDM Model      describe here to the existing Advanced POF Editors within the      Coherence Netbeans Module.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1&gt;Identifying the Required Objects&lt;/h1&gt;As I mentioned at present their are no automated tools for this        hence we will need to review the XSD to identify which elements        within it we need to implement. Below we can see the new        Coherence 3.7 POF XSD and from this I have identified we will        need to create the following Java Interfaces and their        corresponding implementations.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;pof-config&lt;/span&gt; -          PofConfig &amp;amp; PofConfigImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;user-type-list&lt;/span&gt;          -UserTypeList &amp;amp; UserTypeListImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;user-type&lt;/span&gt; - UserType          &amp;amp; UserTypeImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;include&lt;/span&gt; - Include          &amp;amp; IncludeImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;type-id&lt;/span&gt; - TypeId          &amp;amp; TypeIdImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;class-name&lt;/span&gt; -          ClassName &amp;amp; ClassNameImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;serializer-type&lt;/span&gt; -          SerializerType &amp;amp; SerializerTypeImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;serializer&lt;/span&gt; -          Serializer &amp;amp; SerializerImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;default-serializer&lt;/span&gt; -          DefaultSerializer &amp;amp; DefaultSerializerImpl&lt;br /&gt;        &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;init-params&lt;/span&gt; -          InitParams &amp;amp; InitParamsImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;init-param&lt;/span&gt; -          InitParam &amp;amp; InitParamImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;param-type&lt;/span&gt; -          ParamType &amp;amp; ParamTypeImpl&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;param-value&lt;/span&gt; -          ParamValue &amp;amp; ParamValueImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;allow-interfaces&lt;/span&gt; -          AllowInterfaces &amp;amp; AllowInterfacesImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;allow-subclasses&lt;/span&gt; -          AllowSubclasses &amp;amp; AllowSubclassesImpl&lt;br /&gt;        &lt;/li&gt;&lt;/ul&gt;It can be seen from the above list that I have created an        Interface for all the Elements and Complex Types. In addition to        the Interfaces defined above I will create an additional        interface that represent the Sub Elements of&amp;nbsp; the        UserTypeList Complex Element and these will be used during the        insert / removal of the Element within the appropriate Impl        classes.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;UserTypeListElement&lt;/li&gt;&lt;/ul&gt;Although I could have create an Interface to represent all        Complex Type / Element they are not strictly required for this        particular xsd. If we take for example the pof-config Element it        contains a &amp;lt;xsd:sequence&amp;gt; element that defines the Sub        Element and more importantly the order in which they can occur.        Therefore given that restriction I know that the        &amp;lt;user-type-list&amp;gt; must be the first element and that the        &amp;lt;allow-interfaces&amp;gt; element must follow, if it exists,        whilst the &amp;lt;default-serializer&amp;gt; must be the last.        Therefore rather than implement a common addElement method I        simply create a series of getters &amp;amp; setters for the Sub        Elements. &lt;br /&gt;&lt;br /&gt;In addition I created a number of Interfaces and Impl Classes        that matched the "Simple Types".&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;xsd:string&lt;/span&gt; -          PofConfigTextComponent &amp;amp; PofConfigTextComponentImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;xsd:boolean&lt;/span&gt; -          PofConfigBooleanComponent &amp;amp; PofConfigBooleanComponentImpl&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;xsd:nonNegativeInteger&lt;/span&gt;          - PofConfigNonNegativeIntegerComponent &amp;amp;          PofConfigNonNegativeIntegerComponen&lt;/li&gt;&lt;/ul&gt;Each of these has getValue and setValue methods that will be        used to access the simple data and I extend the Simple elements        (allow-subclasses, param-value, etc) from the appropriate Super        Class.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;coherence-pof-config.xsd&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; &lt;span class="ST0"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="ST0"&gt;xml&lt;/span&gt; version="1.0"?&amp;gt;&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt; &lt;span class="xml-tag"&gt;&amp;lt;xsd:schema&lt;/span&gt; &lt;span class="xml-attribute"&gt;xmlns:xsd&lt;/span&gt;=&lt;span class="xml-value"&gt;"http://www.w3.org/2001/XMLSchema"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt;             &lt;span class="xml-attribute"&gt;targetNamespace&lt;/span&gt;=&lt;span class="xml-value"&gt;"http://xmlns.oracle.com/coherence/coherence-pof-config"&lt;/span&gt;    &lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt;             &lt;span class="xml-attribute"&gt;xmlns&lt;/span&gt;=&lt;span class="xml-value"&gt;"http://xmlns.oracle.com/coherence/coherence-pof-config"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt;             &lt;span class="xml-attribute"&gt;elementFormDefault&lt;/span&gt;=&lt;span class="xml-value"&gt;"qualified"&lt;/span&gt; &lt;span class="xml-attribute"&gt;attributeFormDefault&lt;/span&gt;=&lt;span class="xml-value"&gt;"unqualified"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt;             &lt;span class="xml-attribute"&gt;version&lt;/span&gt;=&lt;span class="xml-value"&gt;"1.0"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt;             Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt;             Oracle is a registered trademarks of Oracle Corporation and/or its&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt;             affiliates.&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt;             This software is the confidential and proprietary information of&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt;             Oracle Corporation. You shall not disclose such confidential and&lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt;             proprietary information and shall use it only in accordance with the&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt;             terms of the license agreement you entered into with Oracle.&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt;             This notice may not be removed or altered.     &lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt;             This is the XML schema for the Coherence pof configuration file&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt;             (coherence-pof-config.xml).&lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"pof-config"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt;                 The pof-config element is the root element of the pof-config&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt;                 descriptor.&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt;                 Used in: n/a&lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"user-type-list"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"allow-interfaces"&lt;/span&gt; &lt;span class="xml-attribute"&gt;minOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"0"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"allow-subclasses"&lt;/span&gt; &lt;span class="xml-attribute"&gt;minOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"0"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"default-serializer"&lt;/span&gt; &lt;span class="xml-attribute"&gt;minOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"0"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"user-type-list"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt;                 The user-type-list element contains zero or more user-type elements.&lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt;                 Each POF user type that will be used must be listed in the &lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt;                 user-type-list.&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt;                 The user-type-list element may also contain zero or more include&lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt;                 elements. Each include element is used to add user-type elements &lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt;                 defined in another pof-config file.&lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt;                 Used in: pof-config      &lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:choice&lt;/span&gt; &lt;span class="xml-attribute"&gt;minOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"0"&lt;/span&gt; &lt;span class="xml-attribute"&gt;maxOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"unbounded"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"user-type"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"include"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:choice&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"user-type"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt;                 The user-type element contains the declaration of a POF user type. A&lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt;                 POF user type is a uniquely identifiable, portable, versionable &lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt;                 object class that can be communicated among systems regardless of &lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt;                 language, OS, hardware and location.&lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt;                 Within the user-type element, the type-id element is optional, but its use&lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt;                 is strongly suggested in order to support schema versioning and&lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt;                 evolution.&lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt;                 Within the user-type element, the class-name element is required, and&lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt;                 specifies the fully qualified name of the Java class or interface&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt;                 that all values of the user type are type-assignable to.&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt;                 If the serializer element is omitted, then the user type is assumed to&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt;                 implement the PortableObject interface, and the&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt;                 PortableObjectSerializer implementation is used as the PofSerializer.&lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt;                 Used in: user-type-list&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"type-id"&lt;/span&gt; &lt;span class="xml-attribute"&gt;minOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"0"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"class-name"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"serializer"&lt;/span&gt; &lt;span class="xml-attribute"&gt;minOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"0"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"include"&lt;/span&gt; &lt;span class="xml-attribute"&gt;type&lt;/span&gt;=&lt;span class="xml-value"&gt;"xsd:string"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt;                 The include element specifies the location of a pof-config file to load&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt;                 user-type elements from.&lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt;                 The value is a locator string (either a valid path or URL) that&lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt;                 identifies&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt;                 the location of the target pof-config file.&lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;116&lt;/span&gt;                 Used in: user-type-list  &lt;br /&gt;&lt;span class="line-number"&gt;117&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;118&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;119&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;120&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;121&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"type-id"&lt;/span&gt; &lt;span class="xml-attribute"&gt;type&lt;/span&gt;=&lt;span class="xml-value"&gt;"xsd:nonNegativeInteger"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;122&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;123&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;124&lt;/span&gt;                 The type-id element specifies an integer value (n &amp;gt;= 0) that uniquely&lt;br /&gt;&lt;span class="line-number"&gt;125&lt;/span&gt;                 identifies the user type.&lt;br /&gt;&lt;span class="line-number"&gt;126&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;127&lt;/span&gt;                 If none of the user-type elements contains a type-id element, then the&lt;br /&gt;&lt;span class="line-number"&gt;128&lt;/span&gt;                 type IDs for the user types will be based on the order in which they &lt;br /&gt;&lt;span class="line-number"&gt;129&lt;/span&gt;                 appear in the user-type-list, with the first user type being assigned &lt;br /&gt;&lt;span class="line-number"&gt;130&lt;/span&gt;                 the type ID 0, the second user type being assigned the type ID 1, and so on.&lt;br /&gt;&lt;span class="line-number"&gt;131&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;132&lt;/span&gt;                 However, it is strongly recommended that user types IDs always be specified,&lt;br /&gt;&lt;span class="line-number"&gt;133&lt;/span&gt;                 in order to support schema versioning and evolution.&lt;br /&gt;&lt;span class="line-number"&gt;134&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;135&lt;/span&gt;                 Used in: user-type     &lt;br /&gt;&lt;span class="line-number"&gt;136&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;137&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;138&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;139&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;140&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"class-name"&lt;/span&gt; &lt;span class="xml-attribute"&gt;type&lt;/span&gt;=&lt;span class="xml-value"&gt;"xsd:string"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;141&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;142&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;143&lt;/span&gt;                 The class-name element specifies the name of a Java class or interface.&lt;br /&gt;&lt;span class="line-number"&gt;144&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;145&lt;/span&gt;                 Within the user-type element, the class-name element is required,&lt;br /&gt;&lt;span class="line-number"&gt;146&lt;/span&gt;                 and specifies the fully qualified name of the Java class or interface &lt;br /&gt;&lt;span class="line-number"&gt;147&lt;/span&gt;                 that all values of the user type are type-assignable to.&lt;br /&gt;&lt;span class="line-number"&gt;148&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;149&lt;/span&gt;                 Within the serializer element, the class-name element is required.&lt;br /&gt;&lt;span class="line-number"&gt;150&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;151&lt;/span&gt;                 Used in: user-type, serializer&lt;br /&gt;&lt;span class="line-number"&gt;152&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;153&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;154&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;155&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;156&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:complexType&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"serializer-type"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;157&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;158&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"class-name"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;159&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"init-params"&lt;/span&gt; &lt;span class="xml-attribute"&gt;minOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"0"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;160&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;161&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;162&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;163&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"serializer"&lt;/span&gt; &lt;span class="xml-attribute"&gt;type&lt;/span&gt;=&lt;span class="xml-value"&gt;"serializer-type"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;164&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;165&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;166&lt;/span&gt;                 The serializer element specifies what PofSerializer to use to serialize&lt;br /&gt;&lt;span class="line-number"&gt;167&lt;/span&gt;                 and deserialize a specific user type.&lt;br /&gt;&lt;span class="line-number"&gt;168&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;169&lt;/span&gt;                 A PofSerializer is used to serialize and deserialize user type values&lt;br /&gt;&lt;span class="line-number"&gt;170&lt;/span&gt;                 to and from a POF stream. Within the serializer element, the class-name&lt;br /&gt;&lt;span class="line-number"&gt;171&lt;/span&gt;                 element is required, and zero or more constructor parameters can be &lt;br /&gt;&lt;span class="line-number"&gt;172&lt;/span&gt;                 defined within an init-params element.&lt;br /&gt;&lt;span class="line-number"&gt;173&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;174&lt;/span&gt;                 If the serializer element is omitted, then the user type is assumed to&lt;br /&gt;&lt;span class="line-number"&gt;175&lt;/span&gt;                 implement the PortableObject interface, and the&lt;br /&gt;&lt;span class="line-number"&gt;176&lt;/span&gt;                 PortableObjectSerializer&lt;br /&gt;&lt;span class="line-number"&gt;177&lt;/span&gt;                 implementation is used as the PofSerializer.&lt;br /&gt;&lt;span class="line-number"&gt;178&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;179&lt;/span&gt;                 If the init-params element is omitted from the serializer element,&lt;br /&gt;&lt;span class="line-number"&gt;180&lt;/span&gt;                 then the&lt;br /&gt;&lt;span class="line-number"&gt;181&lt;/span&gt;                 following four constructors are attempted on the specific PofSerializer&lt;br /&gt;&lt;span class="line-number"&gt;182&lt;/span&gt;                 implementation, and in this order:&lt;br /&gt;&lt;span class="line-number"&gt;183&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;184&lt;/span&gt;                 - (int nTypeId, Class clz, ClassLoader loader)&lt;br /&gt;&lt;span class="line-number"&gt;185&lt;/span&gt;                 - (int nTypeId, Class clz)&lt;br /&gt;&lt;span class="line-number"&gt;186&lt;/span&gt;                 - (int nTypeId)&lt;br /&gt;&lt;span class="line-number"&gt;187&lt;/span&gt;                 - ()&lt;br /&gt;&lt;span class="line-number"&gt;188&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;189&lt;/span&gt;                 Used in: user-type&lt;br /&gt;&lt;span class="line-number"&gt;190&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;191&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;192&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;193&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;194&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"default-serializer"&lt;/span&gt; &lt;span class="xml-attribute"&gt;type&lt;/span&gt;=&lt;span class="xml-value"&gt;"serializer-type"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;195&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;196&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;197&lt;/span&gt;                 The default serializer element specifies what PofSerializer to use to&lt;br /&gt;&lt;span class="line-number"&gt;198&lt;/span&gt;                 serialize and deserialize all user types defined in this config. If&lt;br /&gt;&lt;span class="line-number"&gt;199&lt;/span&gt;                 a serializer is specified for a user type, then that serializer will &lt;br /&gt;&lt;span class="line-number"&gt;200&lt;/span&gt;                 be used for that user type instead of the default serializer.&lt;br /&gt;&lt;span class="line-number"&gt;201&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;202&lt;/span&gt;                 If the default serializer element is omitted, the serializer defined&lt;br /&gt;&lt;span class="line-number"&gt;203&lt;/span&gt;                 for the specific user type will be used. If the serializer for the &lt;br /&gt;&lt;span class="line-number"&gt;204&lt;/span&gt;                 user type is also omitted, then the user type is assumed to implement &lt;br /&gt;&lt;span class="line-number"&gt;205&lt;/span&gt;                 the PortableObject interface, and the PortableObjectSerializer&lt;br /&gt;&lt;span class="line-number"&gt;206&lt;/span&gt;                 implementation is used as the PofSerializer.&lt;br /&gt;&lt;span class="line-number"&gt;207&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;208&lt;/span&gt;                 If the init-params element is omitted from the default serializer&lt;br /&gt;&lt;span class="line-number"&gt;209&lt;/span&gt;                 element, then the following four constructors are attempted on the &lt;br /&gt;&lt;span class="line-number"&gt;210&lt;/span&gt;                 specific PofSerializer implementation, and in this order:&lt;br /&gt;&lt;span class="line-number"&gt;211&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;212&lt;/span&gt;                 - (int nTypeId, Class clz, ClassLoader loader)&lt;br /&gt;&lt;span class="line-number"&gt;213&lt;/span&gt;                 - (int nTypeId, Class clz)&lt;br /&gt;&lt;span class="line-number"&gt;214&lt;/span&gt;                 - (int nTypeId)&lt;br /&gt;&lt;span class="line-number"&gt;215&lt;/span&gt;                 - ()&lt;br /&gt;&lt;span class="line-number"&gt;216&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;217&lt;/span&gt;                 Used in: pof-config&lt;br /&gt;&lt;span class="line-number"&gt;218&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;219&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;220&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;221&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;222&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"init-params"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;223&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;224&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;225&lt;/span&gt;                 The init-params element contains zero or more arguments (each as an&lt;br /&gt;&lt;span class="line-number"&gt;226&lt;/span&gt;                 init-param) that correspond to the parameters of a constructor of&lt;br /&gt;&lt;span class="line-number"&gt;227&lt;/span&gt;                 the class that is being configured.&lt;br /&gt;&lt;span class="line-number"&gt;228&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;229&lt;/span&gt;                 Used in: serializer&lt;br /&gt;&lt;span class="line-number"&gt;230&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;231&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;232&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;233&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;234&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"init-param"&lt;/span&gt; &lt;span class="xml-attribute"&gt;minOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"0"&lt;/span&gt; &lt;span class="xml-attribute"&gt;maxOccurs&lt;/span&gt;=&lt;span class="xml-value"&gt;"unbounded"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;235&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;236&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;237&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;238&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;239&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"init-param"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;240&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;241&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;242&lt;/span&gt;                 The init-param element provides a type for a configuration parameter&lt;br /&gt;&lt;span class="line-number"&gt;243&lt;/span&gt;                 and a corresponding value to pass as an argument.&lt;br /&gt;&lt;span class="line-number"&gt;244&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;245&lt;/span&gt;                 Used in: init-params          &lt;br /&gt;&lt;span class="line-number"&gt;246&lt;/span&gt;              &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;247&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;248&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;249&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;250&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"param-type"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;251&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;ref&lt;/span&gt;=&lt;span class="xml-value"&gt;"param-value"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;252&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:sequence&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;253&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:complexType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;254&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;255&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;256&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"param-type"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;257&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;258&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;259&lt;/span&gt;                 The param-type element specifies the Java type of initialization&lt;br /&gt;&lt;span class="line-number"&gt;260&lt;/span&gt;                 parameter.&lt;br /&gt;&lt;span class="line-number"&gt;261&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;262&lt;/span&gt;                 Supported types are:&lt;br /&gt;&lt;span class="line-number"&gt;263&lt;/span&gt;                 - string - indicates that the value is a java.lang.String&lt;br /&gt;&lt;span class="line-number"&gt;264&lt;/span&gt;                 - boolean - indicates that the value is a java.lang.Boolean&lt;br /&gt;&lt;span class="line-number"&gt;265&lt;/span&gt;                 - int - indicates that the value is a java.lang.Integer&lt;br /&gt;&lt;span class="line-number"&gt;266&lt;/span&gt;                 - long - indicates that the value is a java.lang.Long&lt;br /&gt;&lt;span class="line-number"&gt;267&lt;/span&gt;                 - double - indicates that the value is a java.lang.Double&lt;br /&gt;&lt;span class="line-number"&gt;268&lt;/span&gt;                 - decimal - indicates that the value is a &lt;br /&gt;&lt;span class="line-number"&gt;269&lt;/span&gt;                 java.math.BigDecimal&lt;br /&gt;&lt;span class="line-number"&gt;270&lt;/span&gt;                 - file - indicates that the value is a&lt;br /&gt;&lt;span class="line-number"&gt;271&lt;/span&gt;                 java.io.File&lt;br /&gt;&lt;span class="line-number"&gt;272&lt;/span&gt;                 - date - indicates that the value is a java.sql.Date&lt;br /&gt;&lt;span class="line-number"&gt;273&lt;/span&gt;                 - time - indicates that the value is a java.sql.Time&lt;br /&gt;&lt;span class="line-number"&gt;274&lt;/span&gt;                 - datetime -indicates that the value is a &lt;br /&gt;&lt;span class="line-number"&gt;275&lt;/span&gt;                 java.sql.Timestamp&lt;br /&gt;&lt;span class="line-number"&gt;276&lt;/span&gt;                 - xml - indicates that the value is the entire init-param &lt;br /&gt;&lt;span class="line-number"&gt;277&lt;/span&gt;                 XmlElement&lt;br /&gt;&lt;span class="line-number"&gt;278&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;279&lt;/span&gt;                 The value is converted to the specified type, and the target&lt;br /&gt;&lt;span class="line-number"&gt;280&lt;/span&gt;                 constructor or method must have a parameter of that type in &lt;br /&gt;&lt;span class="line-number"&gt;281&lt;/span&gt;                 order for the instantiation to succeed.&lt;br /&gt;&lt;span class="line-number"&gt;282&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;283&lt;/span&gt;                 Used in: init-param   &lt;br /&gt;&lt;span class="line-number"&gt;284&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;285&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;286&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:simpleType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;287&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:restriction&lt;/span&gt; &lt;span class="xml-attribute"&gt;base&lt;/span&gt;=&lt;span class="xml-value"&gt;"xsd:normalizedString"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;288&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"string"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;289&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.lang.String"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;290&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"int"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;291&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.lang.Integer"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;292&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"long"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;293&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.lang.Long"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;294&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"boolean"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;295&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.lang.Boolean"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;296&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"double"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;297&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.lang.Double"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;298&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"float"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;299&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.lang.Float"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;300&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"decimal"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;301&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.math.BigDecimal"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;302&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"file"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;303&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.io.File"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;304&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"date"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;305&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.sql.Date"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;306&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"time"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;307&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.sql.Time"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;308&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"datetime"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;309&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"java.sql.Timestamp"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;310&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"xml"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;311&lt;/span&gt;                 &lt;span class="xml-tag"&gt;&amp;lt;xsd:enumeration&lt;/span&gt; &lt;span class="xml-attribute"&gt;value&lt;/span&gt;=&lt;span class="xml-value"&gt;"com.tangosol.run.xml.XmlElement"&lt;/span&gt; &lt;span class="xml-tag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;312&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:restriction&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;313&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:simpleType&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;314&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;315&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;316&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"param-value"&lt;/span&gt; &lt;span class="xml-attribute"&gt;type&lt;/span&gt;=&lt;span class="xml-value"&gt;"xsd:string"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;317&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;318&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;319&lt;/span&gt;                 The param-value element specifies a value of the initialization&lt;br /&gt;&lt;span class="line-number"&gt;320&lt;/span&gt;                 parameter.&lt;br /&gt;&lt;span class="line-number"&gt;321&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;322&lt;/span&gt;                 The value is in a format specific to the type of the parameter.&lt;br /&gt;&lt;span class="line-number"&gt;323&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;324&lt;/span&gt;                 There are four reserved values that can be specified. Each of these&lt;br /&gt;&lt;span class="line-number"&gt;325&lt;/span&gt;                 values&lt;br /&gt;&lt;span class="line-number"&gt;326&lt;/span&gt;                 is replaced at runtime with a specific runtime value before the&lt;br /&gt;&lt;span class="line-number"&gt;327&lt;/span&gt;                 constructor&lt;br /&gt;&lt;span class="line-number"&gt;328&lt;/span&gt;                 is invoked:&lt;br /&gt;&lt;span class="line-number"&gt;329&lt;/span&gt;                 - "{type-id}" - replaced with the Type ID of the User Type;&lt;br /&gt;&lt;span class="line-number"&gt;330&lt;/span&gt;                 - "{class-name}" - replaced with the name of the class for the User&lt;br /&gt;&lt;span class="line-number"&gt;331&lt;/span&gt;                 Type;&lt;br /&gt;&lt;span class="line-number"&gt;332&lt;/span&gt;                 - "{class}" - replaced with the Class for the User Type;&lt;br /&gt;&lt;span class="line-number"&gt;333&lt;/span&gt;                 -&lt;br /&gt;&lt;span class="line-number"&gt;334&lt;/span&gt;                 "{class-loader}" - replaced with the ConfigurablePofContext's&lt;br /&gt;&lt;span class="line-number"&gt;335&lt;/span&gt;                 ContextClassLoader.&lt;br /&gt;&lt;span class="line-number"&gt;336&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;337&lt;/span&gt;                 Used in: init-param&lt;br /&gt;&lt;span class="line-number"&gt;338&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;339&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;340&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;341&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;342&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"allow-interfaces"&lt;/span&gt; &lt;span class="xml-attribute"&gt;type&lt;/span&gt;=&lt;span class="xml-value"&gt;"xsd:boolean"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;343&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;344&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;345&lt;/span&gt;                 The allow-interfaces element indicates whether the user-type class-name&lt;br /&gt;&lt;span class="line-number"&gt;346&lt;/span&gt;                 can specify Java interface types in addition to Java class types.&lt;br /&gt;&lt;span class="line-number"&gt;347&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;348&lt;/span&gt;                 Valid values are "true" or "false". Default value is false.&lt;br /&gt;&lt;span class="line-number"&gt;349&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;350&lt;/span&gt;                 Used in: pof-config &lt;br /&gt;&lt;span class="line-number"&gt;351&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;352&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;353&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;354&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;355&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class="xml-attribute"&gt;name&lt;/span&gt;=&lt;span class="xml-value"&gt;"allow-subclasses"&lt;/span&gt; &lt;span class="xml-attribute"&gt;type&lt;/span&gt;=&lt;span class="xml-value"&gt;"xsd:boolean"&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;356&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;357&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;358&lt;/span&gt;                 The allow-subclasses element indicates whether the user-type class-name&lt;br /&gt;&lt;span class="line-number"&gt;359&lt;/span&gt;                 can specify a Java class type that is abstract, and whether sub-classes &lt;br /&gt;&lt;span class="line-number"&gt;360&lt;/span&gt;                 of any specified user-type class-name will be permitted at runtime and&lt;br /&gt;&lt;span class="line-number"&gt;361&lt;/span&gt;                 automatically mapped to the specified super-class for purposes of &lt;br /&gt;&lt;span class="line-number"&gt;362&lt;/span&gt;                 obtaining a serializer.&lt;br /&gt;&lt;span class="line-number"&gt;363&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;364&lt;/span&gt;                 Valid values are "true" or "false". Default value is false.&lt;br /&gt;&lt;span class="line-number"&gt;365&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;366&lt;/span&gt;                 Used in: pof-config     &lt;br /&gt;&lt;span class="line-number"&gt;367&lt;/span&gt;             &lt;span class="xml-tag"&gt;&amp;lt;/xsd:documentation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;368&lt;/span&gt;         &lt;span class="xml-tag"&gt;&amp;lt;/xsd:annotation&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;369&lt;/span&gt;     &lt;span class="xml-tag"&gt;&amp;lt;/xsd:element&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;370&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;371&lt;/span&gt; &lt;span class="xml-tag"&gt;&amp;lt;/xsd:schema&lt;/span&gt;&lt;span class="xml-tag"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;372&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;373&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2&gt;Implementation Examples&lt;/h2&gt;Because the implementation of the Elements and Complex types is        fairly generic I will not document all the Interfaces and        Classes I have produced but rather document some example        Interfaces and Classes. The common methods and functionality        implemented will be further explained in the XAM/XDM        implementation section.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;PofConfigTextComponent &amp;amp; PofConfigTextComponentImpl&lt;/h3&gt;This Interface and class define the methods that will be used        by all Simple Elements that are of xsd:string type. The        interface defines a simple getValue and setValue method that        return and set a simple string value. It can be seen that the        Abstract class, associated with the interface, assumes that any        inherited classes implement the getTagName() methods to return        the name of this tag. This is required because setValue        implements the underlying protected setText method that requires        the name of the implementing element.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;PofConfigTextComponent&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 1&lt;/span&gt; &lt;span class="comment"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 2&lt;/span&gt; &lt;span class="comment"&gt; * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 3&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 4&lt;/span&gt; &lt;span class="comment"&gt; * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 5&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 6&lt;/span&gt; &lt;span class="comment"&gt; * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 7&lt;/span&gt; &lt;span class="comment"&gt; * Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 8&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 9&lt;/span&gt; &lt;span class="comment"&gt; * The contents of this file are subject to the terms of either the GNU&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;10&lt;/span&gt; &lt;span class="comment"&gt; * General Public License Version 2 only ("GPL") or the Common&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;11&lt;/span&gt; &lt;span class="comment"&gt; * Development and Distribution License("CDDL") (collectively, the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;12&lt;/span&gt; &lt;span class="comment"&gt; * "License"). You may not use this file except in compliance with the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;13&lt;/span&gt; &lt;span class="comment"&gt; * License. You can obtain a copy of the License at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;14&lt;/span&gt; &lt;span class="comment"&gt; * http://www.netbeans.org/cddl-gplv2.html&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;15&lt;/span&gt; &lt;span class="comment"&gt; * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;16&lt;/span&gt; &lt;span class="comment"&gt; * specific language governing permissions and limitations under the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;17&lt;/span&gt; &lt;span class="comment"&gt; * License.  When distributing the software, include this License Header&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;18&lt;/span&gt; &lt;span class="comment"&gt; * Notice in each file and include the License file at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;19&lt;/span&gt; &lt;span class="comment"&gt; * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;20&lt;/span&gt; &lt;span class="comment"&gt; * particular file as subject to the "Classpath" exception as provided&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;21&lt;/span&gt; &lt;span class="comment"&gt; * by Oracle in the GPL Version 2 section of the License file that&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;22&lt;/span&gt; &lt;span class="comment"&gt; * accompanied this code. If applicable, add the following below the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;23&lt;/span&gt; &lt;span class="comment"&gt; * License Header, with the fields enclosed by brackets [] replaced by&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;24&lt;/span&gt; &lt;span class="comment"&gt; * your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;25&lt;/span&gt; &lt;span class="comment"&gt; * "Portions Copyrighted [year] [name of copyright owner]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;26&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;27&lt;/span&gt; &lt;span class="comment"&gt; * If you wish your version of this file to be governed by only the CDDL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;28&lt;/span&gt; &lt;span class="comment"&gt; * or only the GPL Version 2, indicate your decision by adding&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;29&lt;/span&gt; &lt;span class="comment"&gt; * "[Contributor] elects to include this software in this distribution&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;30&lt;/span&gt; &lt;span class="comment"&gt; * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;31&lt;/span&gt; &lt;span class="comment"&gt; * single choice of license, a recipient has the option to distribute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;32&lt;/span&gt; &lt;span class="comment"&gt; * your version of this file under either the CDDL, the GPL Version 2 or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;33&lt;/span&gt; &lt;span class="comment"&gt; * to extend the choice of license to its licensees as provided above.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;34&lt;/span&gt; &lt;span class="comment"&gt; * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;35&lt;/span&gt; &lt;span class="comment"&gt; * Version 2 license, then the option applies only if the new code is&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;36&lt;/span&gt; &lt;span class="comment"&gt; * made subject to such option by the copyright holder.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;37&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;38&lt;/span&gt; &lt;span class="comment"&gt; * Contributor(s):&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;39&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;40&lt;/span&gt; &lt;span class="comment"&gt; * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;41&lt;/span&gt; &lt;span class="comment"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;42&lt;/span&gt; &lt;span class="keyword-directive"&gt;package&lt;/span&gt; org.netbeans.modules.coherence.xml.pof;&lt;br /&gt;&lt;span class="line-number"&gt;43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;44&lt;/span&gt; &lt;span class="comment"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;45&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;46&lt;/span&gt; &lt;span class="comment"&gt; * &lt;/span&gt;&lt;span class="ST0"&gt;@author&lt;/span&gt; &lt;span class="comment"&gt;Andrew&lt;/span&gt; &lt;span class="comment"&gt;Hopkinson&lt;/span&gt;&lt;span class="comment"&gt; (&lt;/span&gt;&lt;span class="comment"&gt;Oracle&lt;/span&gt; &lt;span class="comment"&gt;A&lt;/span&gt;&lt;span class="comment"&gt;-&lt;/span&gt;&lt;span class="comment"&gt;Team&lt;/span&gt;&lt;span class="comment"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;47&lt;/span&gt;  &lt;span class="comment"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;48&lt;/span&gt; &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;interface&lt;/span&gt; PofConfigTextComponent &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponent {&lt;br /&gt;&lt;span class="line-number"&gt;49&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; String getValue();&lt;br /&gt;&lt;span class="line-number"&gt;50&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setValue(String value);&lt;br /&gt;&lt;span class="line-number"&gt;51&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;52&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;53&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;PofConfigTextComponentImpl&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 1&lt;/span&gt; &lt;span class="comment"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 2&lt;/span&gt; &lt;span class="comment"&gt; * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 3&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 4&lt;/span&gt; &lt;span class="comment"&gt; * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 5&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 6&lt;/span&gt; &lt;span class="comment"&gt; * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 7&lt;/span&gt; &lt;span class="comment"&gt; * Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 8&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 9&lt;/span&gt; &lt;span class="comment"&gt; * The contents of this file are subject to the terms of either the GNU&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;10&lt;/span&gt; &lt;span class="comment"&gt; * General Public License Version 2 only ("GPL") or the Common&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;11&lt;/span&gt; &lt;span class="comment"&gt; * Development and Distribution License("CDDL") (collectively, the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;12&lt;/span&gt; &lt;span class="comment"&gt; * "License"). You may not use this file except in compliance with the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;13&lt;/span&gt; &lt;span class="comment"&gt; * License. You can obtain a copy of the License at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;14&lt;/span&gt; &lt;span class="comment"&gt; * http://www.netbeans.org/cddl-gplv2.html&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;15&lt;/span&gt; &lt;span class="comment"&gt; * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;16&lt;/span&gt; &lt;span class="comment"&gt; * specific language governing permissions and limitations under the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;17&lt;/span&gt; &lt;span class="comment"&gt; * License.  When distributing the software, include this License Header&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;18&lt;/span&gt; &lt;span class="comment"&gt; * Notice in each file and include the License file at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;19&lt;/span&gt; &lt;span class="comment"&gt; * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;20&lt;/span&gt; &lt;span class="comment"&gt; * particular file as subject to the "Classpath" exception as provided&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;21&lt;/span&gt; &lt;span class="comment"&gt; * by Oracle in the GPL Version 2 section of the License file that&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;22&lt;/span&gt; &lt;span class="comment"&gt; * accompanied this code. If applicable, add the following below the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;23&lt;/span&gt; &lt;span class="comment"&gt; * License Header, with the fields enclosed by brackets [] replaced by&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;24&lt;/span&gt; &lt;span class="comment"&gt; * your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;25&lt;/span&gt; &lt;span class="comment"&gt; * "Portions Copyrighted [year] [name of copyright owner]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;26&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;27&lt;/span&gt; &lt;span class="comment"&gt; * If you wish your version of this file to be governed by only the CDDL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;28&lt;/span&gt; &lt;span class="comment"&gt; * or only the GPL Version 2, indicate your decision by adding&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;29&lt;/span&gt; &lt;span class="comment"&gt; * "[Contributor] elects to include this software in this distribution&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;30&lt;/span&gt; &lt;span class="comment"&gt; * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;31&lt;/span&gt; &lt;span class="comment"&gt; * single choice of license, a recipient has the option to distribute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;32&lt;/span&gt; &lt;span class="comment"&gt; * your version of this file under either the CDDL, the GPL Version 2 or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;33&lt;/span&gt; &lt;span class="comment"&gt; * to extend the choice of license to its licensees as provided above.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;34&lt;/span&gt; &lt;span class="comment"&gt; * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;35&lt;/span&gt; &lt;span class="comment"&gt; * Version 2 license, then the option applies only if the new code is&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;36&lt;/span&gt; &lt;span class="comment"&gt; * made subject to such option by the copyright holder.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;37&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;38&lt;/span&gt; &lt;span class="comment"&gt; * Contributor(s):&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;39&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;40&lt;/span&gt; &lt;span class="comment"&gt; * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;41&lt;/span&gt; &lt;span class="comment"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;42&lt;/span&gt; &lt;span class="keyword-directive"&gt;package&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.impl;&lt;br /&gt;&lt;span class="line-number"&gt;43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;44&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.PofConfigTextComponent;&lt;br /&gt;&lt;span class="line-number"&gt;45&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.w3c.dom.Element;&lt;br /&gt;&lt;span class="line-number"&gt;46&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;47&lt;/span&gt; &lt;span class="comment"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;48&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;49&lt;/span&gt; &lt;span class="comment"&gt; * &lt;/span&gt;&lt;span class="ST0"&gt;@author&lt;/span&gt; &lt;span class="comment"&gt;Andrew&lt;/span&gt; &lt;span class="comment"&gt;Hopkinson&lt;/span&gt;&lt;span class="comment"&gt; (&lt;/span&gt;&lt;span class="comment"&gt;Oracle&lt;/span&gt; &lt;span class="comment"&gt;A&lt;/span&gt;&lt;span class="comment"&gt;-&lt;/span&gt;&lt;span class="comment"&gt;Team&lt;/span&gt;&lt;span class="comment"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;50&lt;/span&gt;  &lt;span class="comment"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;51&lt;/span&gt; &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;abstract&lt;/span&gt; &lt;span class="keyword-directive"&gt;class&lt;/span&gt; PofConfigTextComponentImpl &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponentImpl &lt;span class="keyword-directive"&gt;implements&lt;/span&gt; PofConfigTextComponent {&lt;br /&gt;&lt;span class="line-number"&gt;52&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;53&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; PofConfigTextComponentImpl(PofConfigModelImpl model, Element e) {&lt;br /&gt;&lt;span class="line-number"&gt;54&lt;/span&gt;         &lt;span class="keyword-directive"&gt;super&lt;/span&gt;(model, e);&lt;br /&gt;&lt;span class="line-number"&gt;55&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;56&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;57&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;58&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; String getValue() {&lt;br /&gt;&lt;span class="line-number"&gt;59&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; getText();&lt;br /&gt;&lt;span class="line-number"&gt;60&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;61&lt;/span&gt;     &lt;br /&gt;&lt;span class="line-number"&gt;62&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;63&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setValue(String value) {&lt;br /&gt;&lt;span class="line-number"&gt;64&lt;/span&gt;         setText(getTagName(), value);&lt;br /&gt;&lt;span class="line-number"&gt;65&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;66&lt;/span&gt;     &lt;br /&gt;&lt;span class="line-number"&gt;67&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;68&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;69&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;IncludeImpl&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 1&lt;/span&gt; &lt;span class="comment"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 2&lt;/span&gt; &lt;span class="comment"&gt; * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 3&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 4&lt;/span&gt; &lt;span class="comment"&gt; * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 5&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 6&lt;/span&gt; &lt;span class="comment"&gt; * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 7&lt;/span&gt; &lt;span class="comment"&gt; * Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 8&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 9&lt;/span&gt; &lt;span class="comment"&gt; * The contents of this file are subject to the terms of either the GNU&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;10&lt;/span&gt; &lt;span class="comment"&gt; * General Public License Version 2 only ("GPL") or the Common&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;11&lt;/span&gt; &lt;span class="comment"&gt; * Development and Distribution License("CDDL") (collectively, the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;12&lt;/span&gt; &lt;span class="comment"&gt; * "License"). You may not use this file except in compliance with the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;13&lt;/span&gt; &lt;span class="comment"&gt; * License. You can obtain a copy of the License at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;14&lt;/span&gt; &lt;span class="comment"&gt; * http://www.netbeans.org/cddl-gplv2.html&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;15&lt;/span&gt; &lt;span class="comment"&gt; * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;16&lt;/span&gt; &lt;span class="comment"&gt; * specific language governing permissions and limitations under the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;17&lt;/span&gt; &lt;span class="comment"&gt; * License.  When distributing the software, include this License Header&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;18&lt;/span&gt; &lt;span class="comment"&gt; * Notice in each file and include the License file at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;19&lt;/span&gt; &lt;span class="comment"&gt; * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;20&lt;/span&gt; &lt;span class="comment"&gt; * particular file as subject to the "Classpath" exception as provided&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;21&lt;/span&gt; &lt;span class="comment"&gt; * by Oracle in the GPL Version 2 section of the License file that&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;22&lt;/span&gt; &lt;span class="comment"&gt; * accompanied this code. If applicable, add the following below the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;23&lt;/span&gt; &lt;span class="comment"&gt; * License Header, with the fields enclosed by brackets [] replaced by&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;24&lt;/span&gt; &lt;span class="comment"&gt; * your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;25&lt;/span&gt; &lt;span class="comment"&gt; * "Portions Copyrighted [year] [name of copyright owner]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;26&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;27&lt;/span&gt; &lt;span class="comment"&gt; * If you wish your version of this file to be governed by only the CDDL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;28&lt;/span&gt; &lt;span class="comment"&gt; * or only the GPL Version 2, indicate your decision by adding&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;29&lt;/span&gt; &lt;span class="comment"&gt; * "[Contributor] elects to include this software in this distribution&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;30&lt;/span&gt; &lt;span class="comment"&gt; * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;31&lt;/span&gt; &lt;span class="comment"&gt; * single choice of license, a recipient has the option to distribute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;32&lt;/span&gt; &lt;span class="comment"&gt; * your version of this file under either the CDDL, the GPL Version 2 or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;33&lt;/span&gt; &lt;span class="comment"&gt; * to extend the choice of license to its licensees as provided above.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;34&lt;/span&gt; &lt;span class="comment"&gt; * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;35&lt;/span&gt; &lt;span class="comment"&gt; * Version 2 license, then the option applies only if the new code is&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;36&lt;/span&gt; &lt;span class="comment"&gt; * made subject to such option by the copyright holder.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;37&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;38&lt;/span&gt; &lt;span class="comment"&gt; * Contributor(s):&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;39&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;40&lt;/span&gt; &lt;span class="comment"&gt; * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;41&lt;/span&gt; &lt;span class="comment"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;42&lt;/span&gt; &lt;span class="keyword-directive"&gt;package&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.impl;&lt;br /&gt;&lt;span class="line-number"&gt;43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;44&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.Include;&lt;br /&gt;&lt;span class="line-number"&gt;45&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.PofConfigComponent;&lt;br /&gt;&lt;span class="line-number"&gt;46&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.PofConfigVisitor;&lt;br /&gt;&lt;span class="line-number"&gt;47&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.w3c.dom.Element;&lt;br /&gt;&lt;span class="line-number"&gt;48&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;49&lt;/span&gt; &lt;span class="comment"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;50&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;51&lt;/span&gt; &lt;span class="comment"&gt; * &lt;/span&gt;&lt;span class="ST0"&gt;@author&lt;/span&gt; &lt;span class="comment"&gt;Andrew&lt;/span&gt; &lt;span class="comment"&gt;Hopkinson&lt;/span&gt;&lt;span class="comment"&gt; (&lt;/span&gt;&lt;span class="comment"&gt;Oracle&lt;/span&gt; &lt;span class="comment"&gt;A&lt;/span&gt;&lt;span class="comment"&gt;-&lt;/span&gt;&lt;span class="comment"&gt;Team&lt;/span&gt;&lt;span class="comment"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;52&lt;/span&gt;  &lt;span class="comment"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;53&lt;/span&gt; &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;class&lt;/span&gt; IncludeImpl &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigTextComponentImpl &lt;span class="keyword-directive"&gt;implements&lt;/span&gt; Include {&lt;br /&gt;&lt;span class="line-number"&gt;54&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;55&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; IncludeImpl(PofConfigModelImpl model, Element e) {&lt;br /&gt;&lt;span class="line-number"&gt;56&lt;/span&gt;         &lt;span class="keyword-directive"&gt;super&lt;/span&gt;(model, e);&lt;br /&gt;&lt;span class="line-number"&gt;57&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;58&lt;/span&gt;     &lt;br /&gt;&lt;span class="line-number"&gt;59&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; IncludeImpl(PofConfigModelImpl model) {&lt;br /&gt;&lt;span class="line-number"&gt;60&lt;/span&gt;         &lt;span class="keyword-directive"&gt;super&lt;/span&gt;(model, createNewElement(XML_TAG_NAME, model));&lt;br /&gt;&lt;span class="line-number"&gt;61&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;62&lt;/span&gt;     &lt;br /&gt;&lt;span class="line-number"&gt;63&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;64&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; String getTagName() {&lt;br /&gt;&lt;span class="line-number"&gt;65&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; Include.XML_TAG_NAME;&lt;br /&gt;&lt;span class="line-number"&gt;66&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;67&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;68&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;69&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; accept(PofConfigVisitor visitor) {&lt;br /&gt;&lt;span class="line-number"&gt;70&lt;/span&gt;         visitor.visit(&lt;span class="keyword-directive"&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;71&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;72&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;73&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;74&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; Class&amp;lt;? &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponent&amp;gt; getComponentType() {&lt;br /&gt;&lt;span class="line-number"&gt;75&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; Include.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt;76&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;77&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;78&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;79&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;80&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3&gt;UserTypeList &amp;amp; UserTypeListImpl&lt;/h3&gt;The UserTypeList Interface and Class show how to implement a        Complex Element / Type that contains an un-sequenced repeating        group and it can be seen that we have 4 key methods that add,        remove and retrieve the Sub Elements of the        &amp;lt;user-type-list&amp;gt; element. The Impl class shows that these        simply wrap the underlying        org.netbeans.modules.xml.xam.AbstractComponent insertAtIndex,        appendChild and removeChild specifically indicating that the        element concerned is a Sub Element of the &amp;lt;user-type-list&amp;gt;        tag. Hence the user does not need to be aware of the tag type or        name.&lt;br /&gt;&lt;br /&gt;To improve read access I have also implement two additional        methods, one for each sub-element, getIncludes() and        getUserTypes() which simply return just the elements of the        appropriate type.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;UserTypeList&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 1&lt;/span&gt; &lt;span class="comment"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 2&lt;/span&gt; &lt;span class="comment"&gt; * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 3&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 4&lt;/span&gt; &lt;span class="comment"&gt; * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 5&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 6&lt;/span&gt; &lt;span class="comment"&gt; * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 7&lt;/span&gt; &lt;span class="comment"&gt; * Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 8&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 9&lt;/span&gt; &lt;span class="comment"&gt; * The contents of this file are subject to the terms of either the GNU&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;10&lt;/span&gt; &lt;span class="comment"&gt; * General Public License Version 2 only ("GPL") or the Common&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;11&lt;/span&gt; &lt;span class="comment"&gt; * Development and Distribution License("CDDL") (collectively, the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;12&lt;/span&gt; &lt;span class="comment"&gt; * "License"). You may not use this file except in compliance with the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;13&lt;/span&gt; &lt;span class="comment"&gt; * License. You can obtain a copy of the License at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;14&lt;/span&gt; &lt;span class="comment"&gt; * http://www.netbeans.org/cddl-gplv2.html&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;15&lt;/span&gt; &lt;span class="comment"&gt; * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;16&lt;/span&gt; &lt;span class="comment"&gt; * specific language governing permissions and limitations under the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;17&lt;/span&gt; &lt;span class="comment"&gt; * License.  When distributing the software, include this License Header&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;18&lt;/span&gt; &lt;span class="comment"&gt; * Notice in each file and include the License file at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;19&lt;/span&gt; &lt;span class="comment"&gt; * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;20&lt;/span&gt; &lt;span class="comment"&gt; * particular file as subject to the "Classpath" exception as provided&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;21&lt;/span&gt; &lt;span class="comment"&gt; * by Oracle in the GPL Version 2 section of the License file that&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;22&lt;/span&gt; &lt;span class="comment"&gt; * accompanied this code. If applicable, add the following below the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;23&lt;/span&gt; &lt;span class="comment"&gt; * License Header, with the fields enclosed by brackets [] replaced by&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;24&lt;/span&gt; &lt;span class="comment"&gt; * your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;25&lt;/span&gt; &lt;span class="comment"&gt; * "Portions Copyrighted [year] [name of copyright owner]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;26&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;27&lt;/span&gt; &lt;span class="comment"&gt; * If you wish your version of this file to be governed by only the CDDL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;28&lt;/span&gt; &lt;span class="comment"&gt; * or only the GPL Version 2, indicate your decision by adding&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;29&lt;/span&gt; &lt;span class="comment"&gt; * "[Contributor] elects to include this software in this distribution&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;30&lt;/span&gt; &lt;span class="comment"&gt; * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;31&lt;/span&gt; &lt;span class="comment"&gt; * single choice of license, a recipient has the option to distribute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;32&lt;/span&gt; &lt;span class="comment"&gt; * your version of this file under either the CDDL, the GPL Version 2 or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;33&lt;/span&gt; &lt;span class="comment"&gt; * to extend the choice of license to its licensees as provided above.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;34&lt;/span&gt; &lt;span class="comment"&gt; * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;35&lt;/span&gt; &lt;span class="comment"&gt; * Version 2 license, then the option applies only if the new code is&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;36&lt;/span&gt; &lt;span class="comment"&gt; * made subject to such option by the copyright holder.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;37&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;38&lt;/span&gt; &lt;span class="comment"&gt; * Contributor(s):&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;39&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;40&lt;/span&gt; &lt;span class="comment"&gt; * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;41&lt;/span&gt; &lt;span class="comment"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;42&lt;/span&gt; &lt;span class="keyword-directive"&gt;package&lt;/span&gt; org.netbeans.modules.coherence.xml.pof;&lt;br /&gt;&lt;span class="line-number"&gt;43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;44&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; java.util.List;&lt;br /&gt;&lt;span class="line-number"&gt;45&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;46&lt;/span&gt; &lt;span class="comment"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;47&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;48&lt;/span&gt; &lt;span class="comment"&gt; * &lt;/span&gt;&lt;span class="ST0"&gt;@author&lt;/span&gt; &lt;span class="comment"&gt;Andrew&lt;/span&gt; &lt;span class="comment"&gt;Hopkinson&lt;/span&gt;&lt;span class="comment"&gt; (&lt;/span&gt;&lt;span class="comment"&gt;Oracle&lt;/span&gt; &lt;span class="comment"&gt;A&lt;/span&gt;&lt;span class="comment"&gt;-&lt;/span&gt;&lt;span class="comment"&gt;Team&lt;/span&gt;&lt;span class="comment"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;49&lt;/span&gt;  &lt;span class="comment"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;50&lt;/span&gt; &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;interface&lt;/span&gt; UserTypeList &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponent {&lt;br /&gt;&lt;span class="line-number"&gt;51&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;52&lt;/span&gt;     &lt;span class="keyword-directive"&gt;static&lt;/span&gt; String XML_TAG_NAME = &lt;span class="character"&gt;"&lt;/span&gt;&lt;span class="character"&gt;user-type-list&lt;/span&gt;&lt;span class="character"&gt;"&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt;53&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;54&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; List&amp;lt;Include&amp;gt; getIncludes();&lt;br /&gt;&lt;span class="line-number"&gt;55&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;56&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; List&amp;lt;UserType&amp;gt; getUserTypes();&lt;br /&gt;&lt;span class="line-number"&gt;57&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;58&lt;/span&gt;     List&amp;lt;UserTypeListElement&amp;gt; getElements();&lt;br /&gt;&lt;span class="line-number"&gt;59&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;60&lt;/span&gt;     &lt;span class="keyword-directive"&gt;void&lt;/span&gt; addElement(UserTypeListElement element) &lt;span class="keyword-directive"&gt;throws&lt;/span&gt; ValueNotPermittedException;&lt;br /&gt;&lt;span class="line-number"&gt;61&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;62&lt;/span&gt;     &lt;span class="keyword-directive"&gt;void&lt;/span&gt; addElement(&lt;span class="keyword-directive"&gt;int&lt;/span&gt; index, UserTypeListElement element) &lt;span class="keyword-directive"&gt;throws&lt;/span&gt; ValueNotPermittedException;&lt;br /&gt;&lt;span class="line-number"&gt;63&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;64&lt;/span&gt;     &lt;span class="keyword-directive"&gt;void&lt;/span&gt; removeElement(UserTypeListElement element);&lt;br /&gt;&lt;span class="line-number"&gt;65&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;66&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;67&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;UserTypeListImpl&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; &lt;span class="comment"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt; &lt;span class="comment"&gt; * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt; &lt;span class="comment"&gt; * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt; &lt;span class="comment"&gt; * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt; &lt;span class="comment"&gt; * Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; &lt;span class="comment"&gt; * The contents of this file are subject to the terms of either the GNU&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt; &lt;span class="comment"&gt; * General Public License Version 2 only ("GPL") or the Common&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt; &lt;span class="comment"&gt; * Development and Distribution License("CDDL") (collectively, the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt; &lt;span class="comment"&gt; * "License"). You may not use this file except in compliance with the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; &lt;span class="comment"&gt; * License. You can obtain a copy of the License at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt; &lt;span class="comment"&gt; * http://www.netbeans.org/cddl-gplv2.html&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt; &lt;span class="comment"&gt; * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; &lt;span class="comment"&gt; * specific language governing permissions and limitations under the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt; &lt;span class="comment"&gt; * License.  When distributing the software, include this License Header&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt; &lt;span class="comment"&gt; * Notice in each file and include the License file at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt; &lt;span class="comment"&gt; * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt; &lt;span class="comment"&gt; * particular file as subject to the "Classpath" exception as provided&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; &lt;span class="comment"&gt; * by Oracle in the GPL Version 2 section of the License file that&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt; &lt;span class="comment"&gt; * accompanied this code. If applicable, add the following below the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt; &lt;span class="comment"&gt; * License Header, with the fields enclosed by brackets [] replaced by&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt; &lt;span class="comment"&gt; * your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; &lt;span class="comment"&gt; * "Portions Copyrighted [year] [name of copyright owner]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt; &lt;span class="comment"&gt; * If you wish your version of this file to be governed by only the CDDL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt; &lt;span class="comment"&gt; * or only the GPL Version 2, indicate your decision by adding&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt; &lt;span class="comment"&gt; * "[Contributor] elects to include this software in this distribution&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt; &lt;span class="comment"&gt; * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt; &lt;span class="comment"&gt; * single choice of license, a recipient has the option to distribute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt; &lt;span class="comment"&gt; * your version of this file under either the CDDL, the GPL Version 2 or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt; &lt;span class="comment"&gt; * to extend the choice of license to its licensees as provided above.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt; &lt;span class="comment"&gt; * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt; &lt;span class="comment"&gt; * Version 2 license, then the option applies only if the new code is&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt; &lt;span class="comment"&gt; * made subject to such option by the copyright holder.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt; &lt;span class="comment"&gt; * Contributor(s):&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt; &lt;span class="comment"&gt; * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt; &lt;span class="comment"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt; &lt;span class="keyword-directive"&gt;package&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.impl;&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; java.util.List;&lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.Include;&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.PofConfigComponent;&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.PofConfigVisitor;&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.UserType;&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.UserTypeList;&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.UserTypeListElement;&lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.ValueNotPermittedException;&lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.w3c.dom.Element;&lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt; &lt;span class="comment"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt; &lt;span class="comment"&gt; * &lt;/span&gt;&lt;span class="ST0"&gt;@author&lt;/span&gt; &lt;span class="comment"&gt;Andrew&lt;/span&gt; &lt;span class="comment"&gt;Hopkinson&lt;/span&gt;&lt;span class="comment"&gt; (&lt;/span&gt;&lt;span class="comment"&gt;Oracle&lt;/span&gt; &lt;span class="comment"&gt;A&lt;/span&gt;&lt;span class="comment"&gt;-&lt;/span&gt;&lt;span class="comment"&gt;Team&lt;/span&gt;&lt;span class="comment"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt;  &lt;span class="comment"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt; &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;class&lt;/span&gt; UserTypeListImpl &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponentImpl &lt;span class="keyword-directive"&gt;implements&lt;/span&gt; UserTypeList {&lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; UserTypeListImpl(PofConfigModelImpl model, Element e) {&lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt;         &lt;span class="keyword-directive"&gt;super&lt;/span&gt;(model, e);&lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt;     &lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; UserTypeListImpl(PofConfigModelImpl model) {&lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt;         &lt;span class="keyword-directive"&gt;super&lt;/span&gt;(model, createNewElement(XML_TAG_NAME, model));&lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt;     &lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; String getTagName() {&lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; UserTypeList.XML_TAG_NAME;&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; accept(PofConfigVisitor visitor) {&lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt;         visitor.visit(&lt;span class="keyword-directive"&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; Class&amp;lt;? &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponent&amp;gt; getComponentType() {&lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; UserTypeList.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; List&amp;lt;Include&amp;gt; getIncludes() {&lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; getChildren(Include.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; List&amp;lt;UserType&amp;gt; getUserTypes() {&lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; getChildren(UserType.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; List&amp;lt;UserTypeListElement&amp;gt; getElements() {&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; getChildren(UserTypeListElement.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; addElement(UserTypeListElement element) &lt;span class="keyword-directive"&gt;throws&lt;/span&gt; ValueNotPermittedException {&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt;         appendChild(UserTypeListElement.USERTYPELIST_ELEMENT, element);&lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; addElement(&lt;span class="keyword-directive"&gt;int&lt;/span&gt; index, UserTypeListElement element) &lt;span class="keyword-directive"&gt;throws&lt;/span&gt; ValueNotPermittedException {&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt;         insertAtIndex(UserTypeListElement.USERTYPELIST_ELEMENT, element, index);&lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; removeElement(UserTypeListElement element) {&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt;         removeChild( UserTypeListElement.USERTYPELIST_ELEMENT,  element );&lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt;     &lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;h3&gt;PofConfig &amp;amp; PofConfigImpl&lt;/h3&gt;This Interface and associated class are a representation of the        top level &amp;lt;pof-config&amp;gt; tag which cotains a        &amp;lt;xsd:sequence&amp;gt; now as mentioned the sequence defines the        order in which elements can appear within the xml and as such we        can simply write a getter and setter for each of the Sub        Elements. The implemented getter methods will call the        underlying getChildren method specifying the appropriate        Interface class then return the first element, because their can        only be one, or null if it does not exist.&lt;br /&gt;&lt;br /&gt;It can be seen within the implementation class that the set        methods for each of the Sub Elements use the underlying        addBefore or addAfter methods to specify where in the sequence        they should be added.&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;PofConfig&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 1&lt;/span&gt; &lt;span class="comment"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 2&lt;/span&gt; &lt;span class="comment"&gt; * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 3&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 4&lt;/span&gt; &lt;span class="comment"&gt; * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 5&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 6&lt;/span&gt; &lt;span class="comment"&gt; * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 7&lt;/span&gt; &lt;span class="comment"&gt; * Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 8&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 9&lt;/span&gt; &lt;span class="comment"&gt; * The contents of this file are subject to the terms of either the GNU&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;10&lt;/span&gt; &lt;span class="comment"&gt; * General Public License Version 2 only ("GPL") or the Common&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;11&lt;/span&gt; &lt;span class="comment"&gt; * Development and Distribution License("CDDL") (collectively, the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;12&lt;/span&gt; &lt;span class="comment"&gt; * "License"). You may not use this file except in compliance with the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;13&lt;/span&gt; &lt;span class="comment"&gt; * License. You can obtain a copy of the License at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;14&lt;/span&gt; &lt;span class="comment"&gt; * http://www.netbeans.org/cddl-gplv2.html&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;15&lt;/span&gt; &lt;span class="comment"&gt; * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;16&lt;/span&gt; &lt;span class="comment"&gt; * specific language governing permissions and limitations under the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;17&lt;/span&gt; &lt;span class="comment"&gt; * License.  When distributing the software, include this License Header&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;18&lt;/span&gt; &lt;span class="comment"&gt; * Notice in each file and include the License file at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;19&lt;/span&gt; &lt;span class="comment"&gt; * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;20&lt;/span&gt; &lt;span class="comment"&gt; * particular file as subject to the "Classpath" exception as provided&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;21&lt;/span&gt; &lt;span class="comment"&gt; * by Oracle in the GPL Version 2 section of the License file that&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;22&lt;/span&gt; &lt;span class="comment"&gt; * accompanied this code. If applicable, add the following below the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;23&lt;/span&gt; &lt;span class="comment"&gt; * License Header, with the fields enclosed by brackets [] replaced by&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;24&lt;/span&gt; &lt;span class="comment"&gt; * your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;25&lt;/span&gt; &lt;span class="comment"&gt; * "Portions Copyrighted [year] [name of copyright owner]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;26&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;27&lt;/span&gt; &lt;span class="comment"&gt; * If you wish your version of this file to be governed by only the CDDL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;28&lt;/span&gt; &lt;span class="comment"&gt; * or only the GPL Version 2, indicate your decision by adding&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;29&lt;/span&gt; &lt;span class="comment"&gt; * "[Contributor] elects to include this software in this distribution&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;30&lt;/span&gt; &lt;span class="comment"&gt; * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;31&lt;/span&gt; &lt;span class="comment"&gt; * single choice of license, a recipient has the option to distribute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;32&lt;/span&gt; &lt;span class="comment"&gt; * your version of this file under either the CDDL, the GPL Version 2 or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;33&lt;/span&gt; &lt;span class="comment"&gt; * to extend the choice of license to its licensees as provided above.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;34&lt;/span&gt; &lt;span class="comment"&gt; * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;35&lt;/span&gt; &lt;span class="comment"&gt; * Version 2 license, then the option applies only if the new code is&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;36&lt;/span&gt; &lt;span class="comment"&gt; * made subject to such option by the copyright holder.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;37&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;38&lt;/span&gt; &lt;span class="comment"&gt; * Contributor(s):&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;39&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;40&lt;/span&gt; &lt;span class="comment"&gt; * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;41&lt;/span&gt; &lt;span class="comment"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;42&lt;/span&gt; &lt;span class="keyword-directive"&gt;package&lt;/span&gt; org.netbeans.modules.coherence.xml.pof;&lt;br /&gt;&lt;span class="line-number"&gt;43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;44&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; java.util.List;&lt;br /&gt;&lt;span class="line-number"&gt;45&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;46&lt;/span&gt; &lt;span class="comment"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;47&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;48&lt;/span&gt; &lt;span class="comment"&gt; * &lt;/span&gt;&lt;span class="ST0"&gt;@author&lt;/span&gt; &lt;span class="comment"&gt;Andrew&lt;/span&gt; &lt;span class="comment"&gt;Hopkinson&lt;/span&gt;&lt;span class="comment"&gt; (&lt;/span&gt;&lt;span class="comment"&gt;Oracle&lt;/span&gt; &lt;span class="comment"&gt;A&lt;/span&gt;&lt;span class="comment"&gt;-&lt;/span&gt;&lt;span class="comment"&gt;Team&lt;/span&gt;&lt;span class="comment"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;49&lt;/span&gt;  &lt;span class="comment"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;50&lt;/span&gt; &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;interface&lt;/span&gt; PofConfig &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponent {&lt;br /&gt;&lt;span class="line-number"&gt;51&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;52&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;static&lt;/span&gt; String XML_TAG_NAME = &lt;span class="character"&gt;"&lt;/span&gt;&lt;span class="character"&gt;pof-config&lt;/span&gt;&lt;span class="character"&gt;"&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt;53&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;54&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; UserTypeList getUserTypeList();&lt;br /&gt;&lt;span class="line-number"&gt;55&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;56&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setUserTypeList(UserTypeList element);&lt;br /&gt;&lt;span class="line-number"&gt;57&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;58&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; AllowInterfaces getAllowInterfaces();&lt;br /&gt;&lt;span class="line-number"&gt;59&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;60&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setAllowInterfaces(AllowInterfaces element);&lt;br /&gt;&lt;span class="line-number"&gt;61&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;62&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; AllowSubclasses getAllowSubclasses();&lt;br /&gt;&lt;span class="line-number"&gt;63&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;64&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setAllowSubclasses(AllowSubclasses element);&lt;br /&gt;&lt;span class="line-number"&gt;65&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;66&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; DefaultSerializer getDefaultSerializer();&lt;br /&gt;&lt;span class="line-number"&gt;67&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;68&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setDefaultSerializer(DefaultSerializer element);&lt;br /&gt;&lt;span class="line-number"&gt;69&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;70&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;71&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;72&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;PofConfigImpl&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt;  1&lt;/span&gt; &lt;span class="comment"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  2&lt;/span&gt; &lt;span class="comment"&gt; * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  3&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  4&lt;/span&gt; &lt;span class="comment"&gt; * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  5&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  6&lt;/span&gt; &lt;span class="comment"&gt; * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  7&lt;/span&gt; &lt;span class="comment"&gt; * Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  8&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;  9&lt;/span&gt; &lt;span class="comment"&gt; * The contents of this file are subject to the terms of either the GNU&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 10&lt;/span&gt; &lt;span class="comment"&gt; * General Public License Version 2 only ("GPL") or the Common&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 11&lt;/span&gt; &lt;span class="comment"&gt; * Development and Distribution License("CDDL") (collectively, the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 12&lt;/span&gt; &lt;span class="comment"&gt; * "License"). You may not use this file except in compliance with the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 13&lt;/span&gt; &lt;span class="comment"&gt; * License. You can obtain a copy of the License at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 14&lt;/span&gt; &lt;span class="comment"&gt; * http://www.netbeans.org/cddl-gplv2.html&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 15&lt;/span&gt; &lt;span class="comment"&gt; * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 16&lt;/span&gt; &lt;span class="comment"&gt; * specific language governing permissions and limitations under the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 17&lt;/span&gt; &lt;span class="comment"&gt; * License.  When distributing the software, include this License Header&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 18&lt;/span&gt; &lt;span class="comment"&gt; * Notice in each file and include the License file at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 19&lt;/span&gt; &lt;span class="comment"&gt; * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 20&lt;/span&gt; &lt;span class="comment"&gt; * particular file as subject to the "Classpath" exception as provided&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 21&lt;/span&gt; &lt;span class="comment"&gt; * by Oracle in the GPL Version 2 section of the License file that&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 22&lt;/span&gt; &lt;span class="comment"&gt; * accompanied this code. If applicable, add the following below the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 23&lt;/span&gt; &lt;span class="comment"&gt; * License Header, with the fields enclosed by brackets [] replaced by&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 24&lt;/span&gt; &lt;span class="comment"&gt; * your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 25&lt;/span&gt; &lt;span class="comment"&gt; * "Portions Copyrighted [year] [name of copyright owner]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 26&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 27&lt;/span&gt; &lt;span class="comment"&gt; * If you wish your version of this file to be governed by only the CDDL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 28&lt;/span&gt; &lt;span class="comment"&gt; * or only the GPL Version 2, indicate your decision by adding&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 29&lt;/span&gt; &lt;span class="comment"&gt; * "[Contributor] elects to include this software in this distribution&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 30&lt;/span&gt; &lt;span class="comment"&gt; * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 31&lt;/span&gt; &lt;span class="comment"&gt; * single choice of license, a recipient has the option to distribute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 32&lt;/span&gt; &lt;span class="comment"&gt; * your version of this file under either the CDDL, the GPL Version 2 or&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 33&lt;/span&gt; &lt;span class="comment"&gt; * to extend the choice of license to its licensees as provided above.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 34&lt;/span&gt; &lt;span class="comment"&gt; * However, if you add GPL Version 2 code and therefore, elected the GPL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 35&lt;/span&gt; &lt;span class="comment"&gt; * Version 2 license, then the option applies only if the new code is&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 36&lt;/span&gt; &lt;span class="comment"&gt; * made subject to such option by the copyright holder.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 37&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 38&lt;/span&gt; &lt;span class="comment"&gt; * Contributor(s):&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 39&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 40&lt;/span&gt; &lt;span class="comment"&gt; * Portions Copyrighted 2011 Sun Microsystems, Inc.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 41&lt;/span&gt; &lt;span class="comment"&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 42&lt;/span&gt; &lt;span class="keyword-directive"&gt;package&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.impl;&lt;br /&gt;&lt;span class="line-number"&gt; 43&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 44&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; java.util.ArrayList;&lt;br /&gt;&lt;span class="line-number"&gt; 45&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; java.util.Collection;&lt;br /&gt;&lt;span class="line-number"&gt; 46&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; java.util.List;&lt;br /&gt;&lt;span class="line-number"&gt; 47&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.AllowInterfaces;&lt;br /&gt;&lt;span class="line-number"&gt; 48&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.AllowSubclasses;&lt;br /&gt;&lt;span class="line-number"&gt; 49&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.DefaultSerializer;&lt;br /&gt;&lt;span class="line-number"&gt; 50&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.PofConfig;&lt;br /&gt;&lt;span class="line-number"&gt; 51&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.PofConfigComponent;&lt;br /&gt;&lt;span class="line-number"&gt; 52&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.PofConfigVisitor;&lt;br /&gt;&lt;span class="line-number"&gt; 53&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.netbeans.modules.coherence.xml.pof.UserTypeList;&lt;br /&gt;&lt;span class="line-number"&gt; 54&lt;/span&gt; &lt;span class="keyword-directive"&gt;import&lt;/span&gt; org.w3c.dom.Element;&lt;br /&gt;&lt;span class="line-number"&gt; 55&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 56&lt;/span&gt; &lt;span class="comment"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 57&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 58&lt;/span&gt; &lt;span class="comment"&gt; * &lt;/span&gt;&lt;span class="ST0"&gt;@author&lt;/span&gt; &lt;span class="comment"&gt;Andrew&lt;/span&gt; &lt;span class="comment"&gt;Hopkinson&lt;/span&gt;&lt;span class="comment"&gt; (&lt;/span&gt;&lt;span class="comment"&gt;Oracle&lt;/span&gt; &lt;span class="comment"&gt;A&lt;/span&gt;&lt;span class="comment"&gt;-&lt;/span&gt;&lt;span class="comment"&gt;Team&lt;/span&gt;&lt;span class="comment"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 59&lt;/span&gt;  &lt;span class="comment"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 60&lt;/span&gt; &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;class&lt;/span&gt; PofConfigImpl &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponentImpl &lt;span class="keyword-directive"&gt;implements&lt;/span&gt; PofConfig {&lt;br /&gt;&lt;span class="line-number"&gt; 61&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 62&lt;/span&gt;     PofConfigImpl(PofConfigModelImpl model, Element e) {&lt;br /&gt;&lt;span class="line-number"&gt; 63&lt;/span&gt;         &lt;span class="keyword-directive"&gt;super&lt;/span&gt;(model, e);&lt;br /&gt;&lt;span class="line-number"&gt; 64&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 65&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 66&lt;/span&gt;     PofConfigImpl(PofConfigModelImpl model) {&lt;br /&gt;&lt;span class="line-number"&gt; 67&lt;/span&gt;         &lt;span class="keyword-directive"&gt;this&lt;/span&gt;(model, createNewElement(XML_TAG_NAME, model));&lt;br /&gt;&lt;span class="line-number"&gt; 68&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 69&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 70&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 71&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; String getTagName() {&lt;br /&gt;&lt;span class="line-number"&gt; 72&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; PofConfig.XML_TAG_NAME;&lt;br /&gt;&lt;span class="line-number"&gt; 73&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 74&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 75&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 76&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; accept(PofConfigVisitor visitor) {&lt;br /&gt;&lt;span class="line-number"&gt; 77&lt;/span&gt;         visitor.visit(&lt;span class="keyword-directive"&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt; 78&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 79&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 80&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 81&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; Class&amp;lt;? &lt;span class="keyword-directive"&gt;extends&lt;/span&gt; PofConfigComponent&amp;gt; getComponentType() {&lt;br /&gt;&lt;span class="line-number"&gt; 82&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; PofConfig.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt; 83&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 84&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 85&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 86&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; UserTypeList getUserTypeList() {&lt;br /&gt;&lt;span class="line-number"&gt; 87&lt;/span&gt;         List&amp;lt;UserTypeList&amp;gt; elements = getChildren(UserTypeList.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt; 88&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (elements != &lt;span class="keyword-directive"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; elements.size() &amp;gt; 0) {&lt;br /&gt;&lt;span class="line-number"&gt; 89&lt;/span&gt;             &lt;span class="keyword-directive"&gt;return&lt;/span&gt; elements.get(0);&lt;br /&gt;&lt;span class="line-number"&gt; 90&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt; 91&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; &lt;span class="keyword-directive"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt; 92&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt; 93&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt; 94&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt; 95&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setUserTypeList(UserTypeList element) {&lt;br /&gt;&lt;span class="line-number"&gt; 96&lt;/span&gt;         UserTypeList child = getUserTypeList();&lt;br /&gt;&lt;span class="line-number"&gt; 97&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (child != &lt;span class="keyword-directive"&gt;null&lt;/span&gt;) {&lt;br /&gt;&lt;span class="line-number"&gt; 98&lt;/span&gt;             removeChild(UserTypeList.XML_TAG_NAME, child);&lt;br /&gt;&lt;span class="line-number"&gt; 99&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;100&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (element != &lt;span class="keyword-directive"&gt;null&lt;/span&gt;) {&lt;br /&gt;&lt;span class="line-number"&gt;101&lt;/span&gt;             Collection typeList = &lt;span class="keyword-directive"&gt;new&lt;/span&gt; ArrayList();&lt;br /&gt;&lt;span class="line-number"&gt;102&lt;/span&gt;             typeList.add(AllowInterfacesImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;103&lt;/span&gt;             typeList.add(AllowSubclassesImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;104&lt;/span&gt;             typeList.add(DefaultSerializerImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;105&lt;/span&gt;             addBefore(UserTypeList.XML_TAG_NAME, element, typeList);&lt;br /&gt;&lt;span class="line-number"&gt;106&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;107&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;108&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;109&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;110&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; AllowInterfaces getAllowInterfaces() {&lt;br /&gt;&lt;span class="line-number"&gt;111&lt;/span&gt;         List&amp;lt;AllowInterfaces&amp;gt; elements = getChildren(AllowInterfaces.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;112&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (elements != &lt;span class="keyword-directive"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; elements.size() &amp;gt; 0) {&lt;br /&gt;&lt;span class="line-number"&gt;113&lt;/span&gt;             &lt;span class="keyword-directive"&gt;return&lt;/span&gt; elements.get(0);&lt;br /&gt;&lt;span class="line-number"&gt;114&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;115&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; &lt;span class="keyword-directive"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt;116&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;117&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;118&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;119&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setAllowInterfaces(AllowInterfaces element) {&lt;br /&gt;&lt;span class="line-number"&gt;120&lt;/span&gt;         AllowInterfaces child = getAllowInterfaces();&lt;br /&gt;&lt;span class="line-number"&gt;121&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (child != &lt;span class="keyword-directive"&gt;null&lt;/span&gt;) {&lt;br /&gt;&lt;span class="line-number"&gt;122&lt;/span&gt;             removeChild(AllowInterfaces.XML_TAG_NAME, child);&lt;br /&gt;&lt;span class="line-number"&gt;123&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;124&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (element != &lt;span class="keyword-directive"&gt;null&lt;/span&gt;) {&lt;br /&gt;&lt;span class="line-number"&gt;125&lt;/span&gt;             Collection typeList = &lt;span class="keyword-directive"&gt;new&lt;/span&gt; ArrayList();&lt;br /&gt;&lt;span class="line-number"&gt;126&lt;/span&gt;             typeList.add(UserTypeListImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;127&lt;/span&gt;             addAfter(AllowInterfaces.XML_TAG_NAME, element, typeList);&lt;br /&gt;&lt;span class="line-number"&gt;128&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;129&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;130&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;131&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;132&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; AllowSubclasses getAllowSubclasses() {&lt;br /&gt;&lt;span class="line-number"&gt;133&lt;/span&gt;         List&amp;lt;AllowSubclasses&amp;gt; elements = getChildren(AllowSubclasses.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;134&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (elements != &lt;span class="keyword-directive"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; elements.size() &amp;gt; 0) {&lt;br /&gt;&lt;span class="line-number"&gt;135&lt;/span&gt;             &lt;span class="keyword-directive"&gt;return&lt;/span&gt; elements.get(0);&lt;br /&gt;&lt;span class="line-number"&gt;136&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;137&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; &lt;span class="keyword-directive"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt;138&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;139&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;140&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;141&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setAllowSubclasses(AllowSubclasses element) {&lt;br /&gt;&lt;span class="line-number"&gt;142&lt;/span&gt;         AllowSubclasses child = getAllowSubclasses();&lt;br /&gt;&lt;span class="line-number"&gt;143&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (child != &lt;span class="keyword-directive"&gt;null&lt;/span&gt;) {&lt;br /&gt;&lt;span class="line-number"&gt;144&lt;/span&gt;             removeChild(AllowSubclasses.XML_TAG_NAME, child);&lt;br /&gt;&lt;span class="line-number"&gt;145&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;146&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (element != &lt;span class="keyword-directive"&gt;null&lt;/span&gt;) {&lt;br /&gt;&lt;span class="line-number"&gt;147&lt;/span&gt;             Collection typeList = &lt;span class="keyword-directive"&gt;new&lt;/span&gt; ArrayList();&lt;br /&gt;&lt;span class="line-number"&gt;148&lt;/span&gt;             typeList.add(UserTypeListImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;149&lt;/span&gt;             typeList.add(AllowInterfacesImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;150&lt;/span&gt;             addAfter(AllowSubclasses.XML_TAG_NAME, element, typeList);&lt;br /&gt;&lt;span class="line-number"&gt;151&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;152&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;153&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;154&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;155&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; DefaultSerializer getDefaultSerializer() {&lt;br /&gt;&lt;span class="line-number"&gt;156&lt;/span&gt;         List&amp;lt;DefaultSerializer&amp;gt; elements = getChildren(DefaultSerializer.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;157&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (elements != &lt;span class="keyword-directive"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; elements.size() &amp;gt; 0) {&lt;br /&gt;&lt;span class="line-number"&gt;158&lt;/span&gt;             &lt;span class="keyword-directive"&gt;return&lt;/span&gt; elements.get(0);&lt;br /&gt;&lt;span class="line-number"&gt;159&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;160&lt;/span&gt;         &lt;span class="keyword-directive"&gt;return&lt;/span&gt; &lt;span class="keyword-directive"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span class="line-number"&gt;161&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;162&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;163&lt;/span&gt;     @Override&lt;br /&gt;&lt;span class="line-number"&gt;164&lt;/span&gt;     &lt;span class="keyword-directive"&gt;public&lt;/span&gt; &lt;span class="keyword-directive"&gt;void&lt;/span&gt; setDefaultSerializer(DefaultSerializer element) {&lt;br /&gt;&lt;span class="line-number"&gt;165&lt;/span&gt;         DefaultSerializer child = getDefaultSerializer();&lt;br /&gt;&lt;span class="line-number"&gt;166&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (child != &lt;span class="keyword-directive"&gt;null&lt;/span&gt;) {&lt;br /&gt;&lt;span class="line-number"&gt;167&lt;/span&gt;             removeChild(DefaultSerializer.XML_TAG_NAME, child);&lt;br /&gt;&lt;span class="line-number"&gt;168&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;169&lt;/span&gt;         &lt;span class="keyword-directive"&gt;if&lt;/span&gt; (element != &lt;span class="keyword-directive"&gt;null&lt;/span&gt;) {&lt;br /&gt;&lt;span class="line-number"&gt;170&lt;/span&gt;             Collection typeList = &lt;span class="keyword-directive"&gt;new&lt;/span&gt; ArrayList();&lt;br /&gt;&lt;span class="line-number"&gt;171&lt;/span&gt;             typeList.add(UserTypeListImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;172&lt;/span&gt;             typeList.add(AllowInterfacesImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;173&lt;/span&gt;             typeList.add(AllowSubclassesImpl.&lt;span class="keyword-directive"&gt;class&lt;/span&gt;);&lt;br /&gt;&lt;span class="line-number"&gt;174&lt;/span&gt;             addAfter(DefaultSerializer.XML_TAG_NAME, element, typeList);&lt;br /&gt;&lt;span class="line-number"&gt;175&lt;/span&gt;         }&lt;br /&gt;&lt;span class="line-number"&gt;176&lt;/span&gt;     }&lt;br /&gt;&lt;span class="line-number"&gt;177&lt;/span&gt; }&lt;br /&gt;&lt;span class="line-number"&gt;178&lt;/span&gt; &lt;br /&gt;&lt;span class="line-number"&gt;179&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;h1&gt;XAM/XDM Implementation Requirements&lt;/h1&gt;To implement the XAM/XDM Object Model their are a number of        classes that must be created, in addition to those required for        the Elements, and these control the parsing, creation,        sychronisation and removal of the Object Model and its elements.        Essentially these Interfaces and Classes would be common across        every XAM/XDM implementation although their actual        implementation would be different as can be seen from the code.        &lt;br /&gt;&lt;br /&gt;I will discuss each of these and explain what functionality        they provide. I will use a simple naming convention that takes        the name of the top level element, pof-config (PofConfig), and        prepends it to the various required Interfaces and Classes.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;PofConfigComponentFactory &amp;amp; PofConfigComponentFactoryImpl&lt;/h2&gt;These constitute the Factory classes that will be used to        create all the available Elements within the        coherence-pof-config.xsd. It can be seen that no parameters are        passed to any of the methods and as such they create simple        empty default instances of the appropriate element. At present        the Impl does not force the existence of any Mandatory        Sub-Elements this is simply left to the user of the code to        implement.&lt;br /&gt;&lt;br /&gt;In addition to the create methods the Impl provides an        implementation of a getVisitor method that will create /        retrieve an instance of the Visitor Implementation (see later).&lt;br /&gt;&lt;br /&gt;&lt;div class="accordion"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=278589584459681634&amp;amp;postID=928544787456181851#"&gt;PofConfigComponentFactory&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;pre class="code"&gt;&lt;span class="line-number"&gt; 1&lt;/span&gt; &lt;span class="comment"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 2&lt;/span&gt; &lt;span class="comment"&gt; * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 3&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 4&lt;/span&gt; &lt;span class="comment"&gt; * Copyright 2011 Oracle and/or its affiliates. All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 5&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 6&lt;/span&gt; &lt;span class="comment"&gt; * Oracle and Java are registered trademarks of Oracle and/or its affiliates.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 7&lt;/span&gt; &lt;span class="comment"&gt; * Other names may be trademarks of their respective owners.&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 8&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt; 9&lt;/span&gt; &lt;span class="comment"&gt; * The contents of this file are subject to the terms of either the GNU&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;10&lt;/span&gt; &lt;span class="comment"&gt; * General Public License Version 2 only ("GPL") or the Common&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;11&lt;/span&gt; &lt;span class="comment"&gt; * Development and Distribution License("CDDL") (collectively, the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;12&lt;/span&gt; &lt;span class="comment"&gt; * "License"). You may not use this file except in compliance with the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;13&lt;/span&gt; &lt;span class="comment"&gt; * License. You can obtain a copy of the License at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;14&lt;/span&gt; &lt;span class="comment"&gt; * http://www.netbeans.org/cddl-gplv2.html&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;15&lt;/span&gt; &lt;span class="comment"&gt; * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;16&lt;/span&gt; &lt;span class="comment"&gt; * specific language governing permissions and limitations under the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;17&lt;/span&gt; &lt;span class="comment"&gt; * License.  When distributing the software, include this License Header&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;18&lt;/span&gt; &lt;span class="comment"&gt; * Notice in each file and include the License file at&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;19&lt;/span&gt; &lt;span class="comment"&gt; * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;20&lt;/span&gt; &lt;span class="comment"&gt; * particular file as subject to the "Classpath" exception as provided&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;21&lt;/span&gt; &lt;span class="comment"&gt; * by Oracle in the GPL Version 2 section of the License file that&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;22&lt;/span&gt; &lt;span class="comment"&gt; * accompanied this code. If applicable, add the following below the&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;23&lt;/span&gt; &lt;span class="comment"&gt; * License Header, with the fields enclosed by brackets [] replaced by&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;24&lt;/span&gt; &lt;span class="comment"&gt; * your own identifying information:&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;25&lt;/span&gt; &lt;span class="comment"&gt; * "Portions Copyrighted [year] [name of copyright owner]"&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;26&lt;/span&gt; &lt;span class="comment"&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;27&lt;/span&gt; &lt;span class="comment"&gt; * If you wish your version of this file to be governed by only the CDDL&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;28&lt;/span&gt; &lt;span class="comment"&gt; * or only the GPL Version 2, indicate your decision by adding&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;29&lt;/span&gt; &lt;span class="comment"&gt; * "[Contributor] elects to include this software in this distribution&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;30&lt;/span&gt; &lt;span class="comment"&gt; * under the [CDDL or GPL Version 2] license." If you do not indicate a&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;31&lt;/span&gt; &lt;span class="comment"&gt; * single choice of license, a recipient has the option to distribute&lt;/span&gt;&lt;br /&gt;&lt;span class="line-number"&gt;32&lt;/span&gt; &lt;span class="comment"&gt; * your version of this file under either the CDDL, the GPL Version 2 or&lt;/span&gt;&lt;br /&gt;&lt;span class=
