sync with trunk ios_device
authorJan Becicka <jbecicka@netbeans.org>
Sat, 08 Jun 2013 07:16:57 +0200
branchios_device
changeset 2640944d22cf770a34
parent 264093 8e3dbc7b93cc
parent 263812 a84a9bb94cc4
child 264101 43962d017f98
sync with trunk
core.nativeaccess/external/binaries-list
core.nativeaccess/external/platform-3.4.0-license.txt
     1.1 --- a/api.search/src/org/netbeans/modules/search/TextDetail.java	Fri Jun 07 15:44:19 2013 +0200
     1.2 +++ b/api.search/src/org/netbeans/modules/search/TextDetail.java	Sat Jun 08 07:16:57 2013 +0200
     1.3 @@ -552,9 +552,8 @@
     1.4                          sb.append("<br/>");                             //NOI18N
     1.5                          used = true;
     1.6                      }
     1.7 -                    sb.append("<font color='!controlShadow'>");         //NOI18N
     1.8                      sb.append(escape(l.getText()));
     1.9 -                    sb.append("</font><br/>");                          //NOI18N
    1.10 +                    sb.append("<br/>");                                 //NOI18N
    1.11                  }
    1.12                  if (!used) {
    1.13                      appendMarkedText(sb);
     2.1 --- a/bugtracking/src/org/netbeans/modules/bugtracking/util/AttachmentsPanel.java	Fri Jun 07 15:44:19 2013 +0200
     2.2 +++ b/bugtracking/src/org/netbeans/modules/bugtracking/util/AttachmentsPanel.java	Sat Jun 08 07:16:57 2013 +0200
     2.3 @@ -95,7 +95,6 @@
     2.4   * // XXX merge with bugzilla and jira
     2.5   */
     2.6  public class AttachmentsPanel extends JPanel {
     2.7 -    private static final Color BG_COLOR = new Color(220, 220, 220);
     2.8      private static final Logger LOG = Logger.getLogger(AttachmentsPanel.class.getName());
     2.9      private boolean hadNoAttachments = true;
    2.10      private List<AttachmentPanel> newAttachments;
    2.11 @@ -382,7 +381,7 @@
    2.12      private JPanel createHighlightPanel() {
    2.13          JPanel panel = new JPanel();
    2.14          // PENDING what color (e.g. what key from UIDefaults) should I use?
    2.15 -        panel.setBackground(BG_COLOR);
    2.16 +        panel.setBackground(UIUtils.getSectionPanelBackground());
    2.17          add(panel);
    2.18          return panel;
    2.19      }
    2.20 @@ -493,7 +492,7 @@
    2.21          @Override
    2.22          public void actionPerformed(ActionEvent e) {
    2.23              AttachmentPanel attachment = new AttachmentPanel(nbCallback);
    2.24 -            attachment.setBackground(BG_COLOR);
    2.25 +            attachment.setBackground(UIUtils.getSectionPanelBackground());
    2.26              horizontalGroup.addComponent(attachment, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE);
    2.27              verticalGroup.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED);
    2.28              verticalGroup.addComponent(attachment, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE);
     3.1 --- a/bugzilla/src/org/netbeans/modules/bugzilla/issue/IssuePanel.java	Fri Jun 07 15:44:19 2013 +0200
     3.2 +++ b/bugzilla/src/org/netbeans/modules/bugzilla/issue/IssuePanel.java	Sat Jun 08 07:16:57 2013 +0200
     3.3 @@ -3296,7 +3296,7 @@
     3.4              @Override
     3.5              public void changedUpdate (DocumentEvent e) {
     3.6                  if (!reloading && !issue.isNew() && !addCommentArea.getText().trim().isEmpty()) {
     3.7 -                    issue.addComment(addCommentArea.getText().trim());
     3.8 +                    issue.setFieldValue(IssueField.COMMENT, addCommentArea.getText().trim());
     3.9                  }
    3.10              }
    3.11          });
     4.1 --- a/bugzilla/src/org/netbeans/modules/bugzilla/kenai/KenaiRepository.java	Fri Jun 07 15:44:19 2013 +0200
     4.2 +++ b/bugzilla/src/org/netbeans/modules/bugzilla/kenai/KenaiRepository.java	Sat Jun 08 07:16:57 2013 +0200
     4.3 @@ -56,8 +56,6 @@
     4.4  import java.util.MissingResourceException;
     4.5  import java.util.Set;
     4.6  import java.util.logging.Level;
     4.7 -import org.eclipse.core.runtime.CoreException;
     4.8 -import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
     4.9  import org.netbeans.modules.bugtracking.team.spi.TeamAccessor;
    4.10  import org.netbeans.modules.bugtracking.team.spi.TeamProject;
    4.11  import org.netbeans.modules.bugtracking.team.spi.OwnerInfo;
    4.12 @@ -75,7 +73,6 @@
    4.13  import org.netbeans.modules.bugzilla.repository.IssueField;
    4.14  import org.netbeans.modules.bugzilla.util.BugzillaConstants;
    4.15  import org.netbeans.modules.bugzilla.util.BugzillaUtil;
    4.16 -import org.netbeans.modules.mylyn.util.MylynSupport;
    4.17  import org.openide.nodes.Node;
    4.18  import org.openide.util.ImageUtilities;
    4.19  import org.openide.util.NbBundle;
    4.20 @@ -87,7 +84,6 @@
    4.21   */
    4.22  public class KenaiRepository extends BugzillaRepository implements PropertyChangeListener {
    4.23  
    4.24 -    static final String ICON_PATH = "org/netbeans/modules/bugtracking/ui/resources/kenai-small.png"; // NOI18N
    4.25      private String urlParam;
    4.26      private Image icon;
    4.27      private final String product;
    4.28 @@ -98,8 +94,21 @@
    4.29  
    4.30      KenaiRepository(TeamProject kenaiProject, String repoName, String url, String host, String userName, char[] password, String urlParam, String product) {
    4.31          super(createInfo(repoName, url)); // use name as id - can't be changed anyway
    4.32 -        this.urlParam = urlParam;
    4.33 -        icon = ImageUtilities.loadImage(ICON_PATH, true);
    4.34 +        this.urlParam = urlParam;        
    4.35 +        
    4.36 +        if (url.contains("netbeans.org")) { //NOI18N
    4.37 +            icon = ImageUtilities.loadImage("org/netbeans/modules/kenai/resources/netbeans-small.png", false); // NOI18N
    4.38 +        } else if (url.contains("kenai.com")) { //NOI18N
    4.39 +            icon = ImageUtilities.loadImage("org/netbeans/modules/kenai/resources/kenai-small.png", false); // NOI18N
    4.40 +        } else if (url.contains("java.net")) { //NOI18N
    4.41 +            icon = ImageUtilities.loadImage("org/netbeans/modules/kenai/resources/javanet.png", false); // NOI18N
    4.42 +        } 
    4.43 +        
    4.44 +        if(icon == null) {
    4.45 +            // how is this possible ?
    4.46 +            icon = ImageUtilities.loadImage("org/netbeans/modules/bugtracking/ui/resources/kenai-small.png", true); // NOI18N
    4.47 +        }        
    4.48 +        
    4.49          this.product = product;
    4.50          this.host = host;
    4.51          assert kenaiProject != null;
     5.1 --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/ConfigurationDescriptorProviderImpl.java	Fri Jun 07 15:44:19 2013 +0200
     5.2 +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/ConfigurationDescriptorProviderImpl.java	Sat Jun 08 07:16:57 2013 +0200
     5.3 @@ -47,6 +47,7 @@
     5.4  import org.netbeans.modules.cnd.makeproject.api.configurations.ConfigurationDescriptor;
     5.5  import org.netbeans.modules.cnd.makeproject.api.configurations.ConfigurationDescriptorProvider;
     5.6  import org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfigurationDescriptor;
     5.7 +import org.netbeans.spi.project.ProjectConfigurationProvider;
     5.8  import org.openide.filesystems.FileObject;
     5.9  
    5.10  /**
    5.11 @@ -83,8 +84,8 @@
    5.12          MakeConfigurationDescriptor makeConfigurationDescriptor = getConfigurationDescriptorImpl();
    5.13          
    5.14          if (makeConfigurationDescriptor.getState() != ConfigurationDescriptor.State.BROKEN) {  // IZ 122372 // IZ 182321
    5.15 -            pcs.firePropertyChange(MakeProjectConfigurationProvider.PROP_CONFIGURATIONS, null, makeConfigurationDescriptor.getConfs().getConfigurations());
    5.16 -            pcs.firePropertyChange(MakeProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE, null, makeConfigurationDescriptor.getConfs().getActive());
    5.17 +            pcs.firePropertyChange(ProjectConfigurationProvider.PROP_CONFIGURATIONS, null, makeConfigurationDescriptor.getConfs().getConfigurations());
    5.18 +            pcs.firePropertyChange(ProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE, null, makeConfigurationDescriptor.getConfs().getActive());
    5.19          } else {
    5.20              // notify problem
    5.21              pcs.firePropertyChange(MakeProjectConfigurationProvider.PROP_CONFIGURATIONS_BROKEN, null, ConfigurationDescriptor.State.BROKEN);
     6.1 --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/MakeProjectConfigurationProvider.java	Fri Jun 07 15:44:19 2013 +0200
     6.2 +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/MakeProjectConfigurationProvider.java	Sat Jun 08 07:16:57 2013 +0200
     6.3 @@ -60,8 +60,6 @@
     6.4       * Use it when firing a change in the set of configurations.
     6.5       */
     6.6      static final String PROP_CONFIGURATIONS_BROKEN = "brokenConfigurations"; // NOI18N
     6.7 -    public static final String PROP_CONFIGURATIONS = ProjectConfigurationProvider.PROP_CONFIGURATIONS;
     6.8 -    public static final String PROP_CONFIGURATION_ACTIVE = ProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE;
     6.9      private final Project project;
    6.10      private final ConfigurationDescriptorProviderImpl projectDescriptorProvider;
    6.11      private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
     7.1 --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/MakeProjectOperations.java	Fri Jun 07 15:44:19 2013 +0200
     7.2 +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/MakeProjectOperations.java	Sat Jun 08 07:16:57 2013 +0200
     7.3 @@ -61,6 +61,7 @@
     7.4  import org.netbeans.spi.project.DeleteOperationImplementation;
     7.5  import org.netbeans.spi.project.MoveOperationImplementation;
     7.6  import org.netbeans.spi.project.MoveOrRenameOperationImplementation;
     7.7 +import org.netbeans.spi.project.ProjectConfigurationProvider;
     7.8  import org.openide.filesystems.FileObject;
     7.9  
    7.10  public class MakeProjectOperations implements DeleteOperationImplementation, CopyOperationImplementation, MoveOperationImplementation, MoveOrRenameOperationImplementation {
    7.11 @@ -133,7 +134,7 @@
    7.12          // Notify configuration listeners (worka-round for http://www.netbeans.org/issues/show_bug.cgi?id=167259
    7.13          MakeProjectConfigurationProvider makeProjectConfigurationProvider = project.getLookup().lookup(MakeProjectConfigurationProvider.class);
    7.14          if (makeProjectConfigurationProvider != null) {
    7.15 -            makeProjectConfigurationProvider.propertyChange(new PropertyChangeEvent(this, MakeProjectConfigurationProvider.PROP_CONFIGURATIONS, null, null));
    7.16 +            makeProjectConfigurationProvider.propertyChange(new PropertyChangeEvent(this, ProjectConfigurationProvider.PROP_CONFIGURATIONS, null, null));
    7.17          }
    7.18      }
    7.19  
     8.1 --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/NativeProjectProvider.java	Fri Jun 07 15:44:19 2013 +0200
     8.2 +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/NativeProjectProvider.java	Sat Jun 08 07:16:57 2013 +0200
     8.3 @@ -79,7 +79,6 @@
     8.4  import org.netbeans.modules.cnd.makeproject.api.configurations.CCCompilerConfiguration;
     8.5  import org.netbeans.modules.cnd.makeproject.api.configurations.Configuration;
     8.6  import org.netbeans.modules.cnd.makeproject.api.configurations.ConfigurationDescriptorProvider;
     8.7 -import org.netbeans.modules.cnd.makeproject.api.configurations.Configurations;
     8.8  import org.netbeans.modules.cnd.makeproject.api.configurations.Item;
     8.9  import org.netbeans.modules.cnd.makeproject.api.configurations.ItemConfiguration;
    8.10  import org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfiguration;
    8.11 @@ -98,6 +97,7 @@
    8.12  import org.netbeans.modules.remote.spi.FileSystemProvider;
    8.13  import org.netbeans.spi.jumpto.file.FileProvider;
    8.14  import org.netbeans.spi.jumpto.file.FileProviderFactory;
    8.15 +import org.netbeans.spi.project.ProjectConfigurationProvider;
    8.16  import org.openide.filesystems.FileObject;
    8.17  import org.openide.filesystems.FileSystem;
    8.18  import org.openide.util.Lookup;
    8.19 @@ -588,7 +588,7 @@
    8.20          if (TRACE) {
    8.21              System.out.println("propertyChange " + evt.getPropertyName()); // NOI18N
    8.22          }
    8.23 -        if (evt.getPropertyName().equals(MakeProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE)) {
    8.24 +        if (evt.getPropertyName().equals(ProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE)) {
    8.25              checkConfigurationChanged((Configuration) evt.getOldValue(), (Configuration) evt.getNewValue());
    8.26          }
    8.27      }
     9.1 --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/Configurations.java	Fri Jun 07 15:44:19 2013 +0200
     9.2 +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/api/configurations/Configurations.java	Sat Jun 08 07:16:57 2013 +0200
     9.3 @@ -51,9 +51,9 @@
     9.4  import java.util.List;
     9.5  import java.util.concurrent.locks.ReadWriteLock;
     9.6  import java.util.concurrent.locks.ReentrantReadWriteLock;
     9.7 -import org.netbeans.modules.cnd.makeproject.MakeProjectConfigurationProvider;
     9.8  import org.netbeans.modules.cnd.spi.toolchain.CompilerSetManagerEvents;
     9.9  import org.netbeans.modules.cnd.utils.NamedRunnable;
    9.10 +import org.netbeans.spi.project.ProjectConfigurationProvider;
    9.11  import org.openide.util.RequestProcessor;
    9.12  
    9.13  public final class Configurations {
    9.14 @@ -330,7 +330,7 @@
    9.15  
    9.16              @Override
    9.17              public void run() {
    9.18 -                pcs.firePropertyChange(MakeProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE, oldActive, newActive);
    9.19 +                pcs.firePropertyChange(ProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE, oldActive, newActive);
    9.20              }
    9.21          });
    9.22      }
    9.23 @@ -340,7 +340,7 @@
    9.24  
    9.25              @Override
    9.26              public void run() {
    9.27 -                pcs.firePropertyChange(MakeProjectConfigurationProvider.PROP_CONFIGURATIONS, oldConf, newConf);
    9.28 +                pcs.firePropertyChange(ProjectConfigurationProvider.PROP_CONFIGURATIONS, oldConf, newConf);
    9.29              }
    9.30          });
    9.31      }
    10.1 --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/ui/RemoteDevelopmentAction.java	Fri Jun 07 15:44:19 2013 +0200
    10.2 +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/ui/RemoteDevelopmentAction.java	Sat Jun 08 07:16:57 2013 +0200
    10.3 @@ -61,16 +61,14 @@
    10.4  import org.netbeans.modules.cnd.api.remote.ServerRecord;
    10.5  import org.netbeans.modules.cnd.api.toolchain.CompilerSet;
    10.6  import org.netbeans.modules.cnd.api.toolchain.CompilerSetManager;
    10.7 -import org.netbeans.modules.cnd.makeproject.MakeProject;
    10.8 -import org.netbeans.modules.cnd.makeproject.MakeProjectConfigurationProvider;
    10.9  import org.netbeans.modules.cnd.makeproject.MakeProjectUtils;
   10.10  import org.netbeans.modules.cnd.makeproject.api.configurations.CompilerSet2Configuration;
   10.11  import org.netbeans.modules.cnd.makeproject.api.configurations.ConfigurationDescriptor;
   10.12  import org.netbeans.modules.cnd.makeproject.api.configurations.ConfigurationDescriptorProvider;
   10.13 -import org.netbeans.modules.cnd.makeproject.api.configurations.Configurations;
   10.14  import org.netbeans.modules.cnd.makeproject.api.configurations.DevelopmentHostConfiguration;
   10.15  import org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfiguration;
   10.16  import org.netbeans.modules.nativeexecution.api.ExecutionEnvironment;
   10.17 +import org.netbeans.spi.project.ProjectConfigurationProvider;
   10.18  import org.openide.util.NbBundle;
   10.19  import org.openide.util.RequestProcessor;
   10.20  import org.openide.util.actions.Presenter;
   10.21 @@ -203,7 +201,7 @@
   10.22              //see cnd.tha.THAMainProjectAction which should use huck to get these changes
   10.23              NativeProject npp = project.getLookup().lookup(NativeProject.class);
   10.24              if(npp instanceof PropertyChangeListener) {
   10.25 -                ((PropertyChangeListener)npp).propertyChange(new PropertyChangeEvent(source, MakeProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE, null, mconf));
   10.26 +                ((PropertyChangeListener)npp).propertyChange(new PropertyChangeEvent(source, ProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE, null, mconf));
   10.27              }
   10.28              ConfigurationDescriptorProvider configurationDescriptorProvider = project.getLookup().lookup(ConfigurationDescriptorProvider.class);
   10.29              ConfigurationDescriptor configurationDescriptor = configurationDescriptorProvider.getConfigurationDescriptor();
    11.1 --- a/cnd.refactoring/src/org/netbeans/modules/cnd/refactoring/elements/CsmRefactoringElementImpl.java	Fri Jun 07 15:44:19 2013 +0200
    11.2 +++ b/cnd.refactoring/src/org/netbeans/modules/cnd/refactoring/elements/CsmRefactoringElementImpl.java	Sat Jun 08 07:16:57 2013 +0200
    11.3 @@ -54,7 +54,7 @@
    11.4   * @author Vladimir Voskresensky
    11.5   */
    11.6  public class CsmRefactoringElementImpl extends SimpleRefactoringElementImplementation 
    11.7 -        implements FiltersManager.Filterable {
    11.8 +        /*implements FiltersManager.Filterable*/ {
    11.9      private static final boolean LAZY = false;
   11.10      private final CsmReference elem;
   11.11      private final PositionBounds bounds;
   11.12 @@ -134,7 +134,7 @@
   11.13          return new CsmRefactoringElementImpl(bounds, ref, fo, displayText);
   11.14      }
   11.15  
   11.16 -    @Override
   11.17 +    //@Override
   11.18      public boolean filter(FiltersManager manager) {
   11.19          if (isDecl && !manager.isSelected(CsmWhereUsedFilters.DECLARATIONS.getKey())) {
   11.20              return false;
    12.1 --- a/cnd.remote/test/unit/src/org/netbeans/modules/cnd/remote/test/RemoteBuildTestBase.java	Fri Jun 07 15:44:19 2013 +0200
    12.2 +++ b/cnd.remote/test/unit/src/org/netbeans/modules/cnd/remote/test/RemoteBuildTestBase.java	Sat Jun 08 07:16:57 2013 +0200
    12.3 @@ -69,12 +69,10 @@
    12.4  import org.netbeans.modules.cnd.builds.MakeExecSupport;
    12.5  import org.netbeans.modules.cnd.makeproject.ConfigurationDescriptorProviderImpl;
    12.6  import org.netbeans.modules.cnd.makeproject.MakeProject;
    12.7 -import org.netbeans.modules.cnd.makeproject.MakeProjectConfigurationProvider;
    12.8  import org.netbeans.modules.cnd.makeproject.MakeProjectTypeImpl;
    12.9  import org.netbeans.modules.cnd.makeproject.NativeProjectProvider;
   12.10  import org.netbeans.modules.cnd.makeproject.api.configurations.CompilerSet2Configuration;
   12.11  import org.netbeans.modules.cnd.makeproject.api.configurations.ConfigurationDescriptorProvider;
   12.12 -import org.netbeans.modules.cnd.makeproject.api.configurations.Configurations;
   12.13  import org.netbeans.modules.cnd.makeproject.api.configurations.DevelopmentHostConfiguration;
   12.14  import org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfiguration;
   12.15  import org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfigurationDescriptor;
   12.16 @@ -91,6 +89,7 @@
   12.17  import org.netbeans.modules.nativeexecution.test.RcFile;
   12.18  import org.netbeans.modules.remote.spi.FileSystemProvider;
   12.19  import org.netbeans.spi.project.ActionProvider;
   12.20 +import org.netbeans.spi.project.ProjectConfigurationProvider;
   12.21  import org.openide.filesystems.FileObject;
   12.22  import org.openide.filesystems.FileUtil;
   12.23  import org.openide.loaders.DataObject;
   12.24 @@ -280,7 +279,7 @@
   12.25              //when you do this changes
   12.26              //see cnd.tha.THAMainProjectAction which should use huck to get these changes
   12.27              NativeProjectProvider npp = project.getLookup().lookup(NativeProjectProvider.class);
   12.28 -            npp.propertyChange(new PropertyChangeEvent(this, MakeProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE, null, mconf));
   12.29 +            npp.propertyChange(new PropertyChangeEvent(this, ProjectConfigurationProvider.PROP_CONFIGURATION_ACTIVE, null, mconf));
   12.30              //ConfigurationDescriptorProvider configurationDescriptorProvider = project.getLookup().lookup(ConfigurationDescriptorProvider.class);
   12.31              //ConfigurationDescriptor configurationDescriptor = configurationDescriptorProvider.getConfigurationDescriptor();
   12.32              configurationDescriptor.setModified();
    13.1 --- a/core.multiview/src/org/netbeans/core/multiview/MultiViewPeer.java	Fri Jun 07 15:44:19 2013 +0200
    13.2 +++ b/core.multiview/src/org/netbeans/core/multiview/MultiViewPeer.java	Sat Jun 08 07:16:57 2013 +0200
    13.3 @@ -53,6 +53,7 @@
    13.4  import java.io.IOException;
    13.5  import java.io.ObjectInput;
    13.6  import java.io.ObjectOutput;
    13.7 +import java.io.OptionalDataException;
    13.8  import java.io.Serializable;
    13.9  import java.util.ArrayList;
   13.10  import java.util.Arrays;
   13.11 @@ -624,6 +625,9 @@
   13.12          out.writeObject(new Integer(currIndex));
   13.13          out.writeObject(new Integer(currIndexSplit));
   13.14  	out.writeObject(new Integer(splitOrientation));
   13.15 +        String htmlDisplayName = peer.getHtmlDisplayName();
   13.16 +        if( null != htmlDisplayName )
   13.17 +            out.writeObject(htmlDisplayName);
   13.18          
   13.19      }
   13.20  
   13.21 @@ -690,6 +694,19 @@
   13.22                      close = (CloseOperationHandler)obj;
   13.23                  }
   13.24              }
   13.25 +
   13.26 +            try {
   13.27 +                Object htmlDisplayName = in.readObject();
   13.28 +                if( htmlDisplayName instanceof String ) {
   13.29 +                    peer.setHtmlDisplayName( (String)htmlDisplayName );
   13.30 +                }
   13.31 +            } catch( OptionalDataException odE ) {
   13.32 +                if( odE.eof ) {
   13.33 +                    //end of file, HTML description field is not present
   13.34 +                } else {
   13.35 +                    throw odE;
   13.36 +                }
   13.37 +            }
   13.38          } catch (IOException exc) {
   13.39                  //#121119 try preventing model corruption when deserialization of client code fails.
   13.40              if (context == null) {
    14.1 --- a/core.nativeaccess/external/binaries-list	Fri Jun 07 15:44:19 2013 +0200
    14.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3 @@ -1,1 +0,0 @@
    14.4 -4B58AF397FD3156D700AD5016BCDD307A7A62EF5 platform-3.4.0.jar
    15.1 --- a/core.nativeaccess/external/platform-3.4.0-license.txt	Fri Jun 07 15:44:19 2013 +0200
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,510 +0,0 @@
    15.4 -Name: Java Native Access
    15.5 -Version: 3.4.0
    15.6 -License: LGPL-2.1
    15.7 -OSR: 7755
    15.8 -Description: Dynamically access native libraries from Java without JNI.
    15.9 -
   15.10 -
   15.11 -		  GNU LESSER GENERAL PUBLIC LICENSE
   15.12 -		       Version 2.1, February 1999
   15.13 -
   15.14 - Copyright (C) 1991, 1999 Free Software Foundation, Inc.
   15.15 - 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
   15.16 - Everyone is permitted to copy and distribute verbatim copies
   15.17 - of this license document, but changing it is not allowed.
   15.18 -
   15.19 -[This is the first released version of the Lesser GPL.  It also counts
   15.20 - as the successor of the GNU Library Public License, version 2, hence
   15.21 - the version number 2.1.]
   15.22 -
   15.23 -			    Preamble
   15.24 -
   15.25 -  The licenses for most software are designed to take away your
   15.26 -freedom to share and change it.  By contrast, the GNU General Public
   15.27 -Licenses are intended to guarantee your freedom to share and change
   15.28 -free software--to make sure the software is free for all its users.
   15.29 -
   15.30 -  This license, the Lesser General Public License, applies to some
   15.31 -specially designated software packages--typically libraries--of the
   15.32 -Free Software Foundation and other authors who decide to use it.  You
   15.33 -can use it too, but we suggest you first think carefully about whether
   15.34 -this license or the ordinary General Public License is the better
   15.35 -strategy to use in any particular case, based on the explanations below.
   15.36 -
   15.37 -  When we speak of free software, we are referring to freedom of use,
   15.38 -not price.  Our General Public Licenses are designed to make sure that
   15.39 -you have the freedom to distribute copies of free software (and charge
   15.40 -for this service if you wish); that you receive source code or can get
   15.41 -it if you want it; that you can change the software and use pieces of
   15.42 -it in new free programs; and that you are informed that you can do
   15.43 -these things.
   15.44 -
   15.45 -  To protect your rights, we need to make restrictions that forbid
   15.46 -distributors to deny you these rights or to ask you to surrender these
   15.47 -rights.  These restrictions translate to certain responsibilities for
   15.48 -you if you distribute copies of the library or if you modify it.
   15.49 -
   15.50 -  For example, if you distribute copies of the library, whether gratis
   15.51 -or for a fee, you must give the recipients all the rights that we gave
   15.52 -you.  You must make sure that they, too, receive or can get the source
   15.53 -code.  If you link other code with the library, you must provide
   15.54 -complete object files to the recipients, so that they can relink them
   15.55 -with the library after making changes to the library and recompiling
   15.56 -it.  And you must show them these terms so they know their rights.
   15.57 -
   15.58 -  We protect your rights with a two-step method: (1) we copyright the
   15.59 -library, and (2) we offer you this license, which gives you legal
   15.60 -permission to copy, distribute and/or modify the library.
   15.61 -
   15.62 -  To protect each distributor, we want to make it very clear that
   15.63 -there is no warranty for the free library.  Also, if the library is
   15.64 -modified by someone else and passed on, the recipients should know
   15.65 -that what they have is not the original version, so that the original
   15.66 -author's reputation will not be affected by problems that might be
   15.67 -introduced by others.
   15.68 -
   15.69 -  Finally, software patents pose a constant threat to the existence of
   15.70 -any free program.  We wish to make sure that a company cannot
   15.71 -effectively restrict the users of a free program by obtaining a
   15.72 -restrictive license from a patent holder.  Therefore, we insist that
   15.73 -any patent license obtained for a version of the library must be
   15.74 -consistent with the full freedom of use specified in this license.
   15.75 -
   15.76 -  Most GNU software, including some libraries, is covered by the
   15.77 -ordinary GNU General Public License.  This license, the GNU Lesser
   15.78 -General Public License, applies to certain designated libraries, and
   15.79 -is quite different from the ordinary General Public License.  We use
   15.80 -this license for certain libraries in order to permit linking those
   15.81 -libraries into non-free programs.
   15.82 -
   15.83 -  When a program is linked with a library, whether statically or using
   15.84 -a shared library, the combination of the two is legally speaking a
   15.85 -combined work, a derivative of the original library.  The ordinary
   15.86 -General Public License therefore permits such linking only if the
   15.87 -entire combination fits its criteria of freedom.  The Lesser General
   15.88 -Public License permits more lax criteria for linking other code with
   15.89 -the library.
   15.90 -
   15.91 -  We call this license the "Lesser" General Public License because it
   15.92 -does Less to protect the user's freedom than the ordinary General
   15.93 -Public License.  It also provides other free software developers Less
   15.94 -of an advantage over competing non-free programs.  These disadvantages
   15.95 -are the reason we use the ordinary General Public License for many
   15.96 -libraries.  However, the Lesser license provides advantages in certain
   15.97 -special circumstances.
   15.98 -
   15.99 -  For example, on rare occasions, there may be a special need to
  15.100 -encourage the widest possible use of a certain library, so that it becomes
  15.101 -a de-facto standard.  To achieve this, non-free programs must be
  15.102 -allowed to use the library.  A more frequent case is that a free
  15.103 -library does the same job as widely used non-free libraries.  In this
  15.104 -case, there is little to gain by limiting the free library to free
  15.105 -software only, so we use the Lesser General Public License.
  15.106 -
  15.107 -  In other cases, permission to use a particular library in non-free
  15.108 -programs enables a greater number of people to use a large body of
  15.109 -free software.  For example, permission to use the GNU C Library in
  15.110 -non-free programs enables many more people to use the whole GNU
  15.111 -operating system, as well as its variant, the GNU/Linux operating
  15.112 -system.
  15.113 -
  15.114 -  Although the Lesser General Public License is Less protective of the
  15.115 -users' freedom, it does ensure that the user of a program that is
  15.116 -linked with the Library has the freedom and the wherewithal to run
  15.117 -that program using a modified version of the Library.
  15.118 -
  15.119 -  The precise terms and conditions for copying, distribution and
  15.120 -modification follow.  Pay close attention to the difference between a
  15.121 -"work based on the library" and a "work that uses the library".  The
  15.122 -former contains code derived from the library, whereas the latter must
  15.123 -be combined with the library in order to run.
  15.124 -
  15.125 -		  GNU LESSER GENERAL PUBLIC LICENSE
  15.126 -   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  15.127 -
  15.128 -  0. This License Agreement applies to any software library or other
  15.129 -program which contains a notice placed by the copyright holder or
  15.130 -other authorized party saying it may be distributed under the terms of
  15.131 -this Lesser General Public License (also called "this License").
  15.132 -Each licensee is addressed as "you".
  15.133 -
  15.134 -  A "library" means a collection of software functions and/or data
  15.135 -prepared so as to be conveniently linked with application programs
  15.136 -(which use some of those functions and data) to form executables.
  15.137 -
  15.138 -  The "Library", below, refers to any such software library or work
  15.139 -which has been distributed under these terms.  A "work based on the
  15.140 -Library" means either the Library or any derivative work under
  15.141 -copyright law: that is to say, a work containing the Library or a
  15.142 -portion of it, either verbatim or with modifications and/or translated
  15.143 -straightforwardly into another language.  (Hereinafter, translation is
  15.144 -included without limitation in the term "modification".)
  15.145 -
  15.146 -  "Source code" for a work means the preferred form of the work for
  15.147 -making modifications to it.  For a library, complete source code means
  15.148 -all the source code for all modules it contains, plus any associated
  15.149 -interface definition files, plus the scripts used to control compilation
  15.150 -and installation of the library.
  15.151 -
  15.152 -  Activities other than copying, distribution and modification are not
  15.153 -covered by this License; they are outside its scope.  The act of
  15.154 -running a program using the Library is not restricted, and output from
  15.155 -such a program is covered only if its contents constitute a work based
  15.156 -on the Library (independent of the use of the Library in a tool for
  15.157 -writing it).  Whether that is true depends on what the Library does
  15.158 -and what the program that uses the Library does.
  15.159 -
  15.160 -  1. You may copy and distribute verbatim copies of the Library's
  15.161 -complete source code as you receive it, in any medium, provided that
  15.162 -you conspicuously and appropriately publish on each copy an
  15.163 -appropriate copyright notice and disclaimer of warranty; keep intact
  15.164 -all the notices that refer to this License and to the absence of any
  15.165 -warranty; and distribute a copy of this License along with the
  15.166 -Library.
  15.167 -
  15.168 -  You may charge a fee for the physical act of transferring a copy,
  15.169 -and you may at your option offer warranty protection in exchange for a
  15.170 -fee.
  15.171 -
  15.172 -  2. You may modify your copy or copies of the Library or any portion
  15.173 -of it, thus forming a work based on the Library, and copy and
  15.174 -distribute such modifications or work under the terms of Section 1
  15.175 -above, provided that you also meet all of these conditions:
  15.176 -
  15.177 -    a) The modified work must itself be a software library.
  15.178 -
  15.179 -    b) You must cause the files modified to carry prominent notices
  15.180 -    stating that you changed the files and the date of any change.
  15.181 -
  15.182 -    c) You must cause the whole of the work to be licensed at no
  15.183 -    charge to all third parties under the terms of this License.
  15.184 -
  15.185 -    d) If a facility in the modified Library refers to a function or a
  15.186 -    table of data to be supplied by an application program that uses
  15.187 -    the facility, other than as an argument passed when the facility
  15.188 -    is invoked, then you must make a good faith effort to ensure that,
  15.189 -    in the event an application does not supply such function or
  15.190 -    table, the facility still operates, and performs whatever part of
  15.191 -    its purpose remains meaningful.
  15.192 -
  15.193 -    (For example, a function in a library to compute square roots has
  15.194 -    a purpose that is entirely well-defined independent of the
  15.195 -    application.  Therefore, Subsection 2d requires that any
  15.196 -    application-supplied function or table used by this function must
  15.197 -    be optional: if the application does not supply it, the square
  15.198 -    root function must still compute square roots.)
  15.199 -
  15.200 -These requirements apply to the modified work as a whole.  If
  15.201 -identifiable sections of that work are not derived from the Library,
  15.202 -and can be reasonably considered independent and separate works in
  15.203 -themselves, then this License, and its terms, do not apply to those
  15.204 -sections when you distribute them as separate works.  But when you
  15.205 -distribute the same sections as part of a whole which is a work based
  15.206 -on the Library, the distribution of the whole must be on the terms of
  15.207 -this License, whose permissions for other licensees extend to the
  15.208 -entire whole, and thus to each and every part regardless of who wrote
  15.209 -it.
  15.210 -
  15.211 -Thus, it is not the intent of this section to claim rights or contest
  15.212 -your rights to work written entirely by you; rather, the intent is to
  15.213 -exercise the right to control the distribution of derivative or
  15.214 -collective works based on the Library.
  15.215 -
  15.216 -In addition, mere aggregation of another work not based on the Library
  15.217 -with the Library (or with a work based on the Library) on a volume of
  15.218 -a storage or distribution medium does not bring the other work under
  15.219 -the scope of this License.
  15.220 -
  15.221 -  3. You may opt to apply the terms of the ordinary GNU General Public
  15.222 -License instead of this License to a given copy of the Library.  To do
  15.223 -this, you must alter all the notices that refer to this License, so
  15.224 -that they refer to the ordinary GNU General Public License, version 2,
  15.225 -instead of to this License.  (If a newer version than version 2 of the
  15.226 -ordinary GNU General Public License has appeared, then you can specify
  15.227 -that version instead if you wish.)  Do not make any other change in
  15.228 -these notices.
  15.229 -
  15.230 -  Once this change is made in a given copy, it is irreversible for
  15.231 -that copy, so the ordinary GNU General Public License applies to all
  15.232 -subsequent copies and derivative works made from that copy.
  15.233 -
  15.234 -  This option is useful when you wish to copy part of the code of
  15.235 -the Library into a program that is not a library.
  15.236 -
  15.237 -  4. You may copy and distribute the Library (or a portion or
  15.238 -derivative of it, under Section 2) in object code or executable form
  15.239 -under the terms of Sections 1 and 2 above provided that you accompany
  15.240 -it with the complete corresponding machine-readable source code, which
  15.241 -must be distributed under the terms of Sections 1 and 2 above on a
  15.242 -medium customarily used for software interchange.
  15.243 -
  15.244 -  If distribution of object code is made by offering access to copy
  15.245 -from a designated place, then offering equivalent access to copy the
  15.246 -source code from the same place satisfies the requirement to
  15.247 -distribute the source code, even though third parties are not
  15.248 -compelled to copy the source along with the object code.
  15.249 -
  15.250 -  5. A program that contains no derivative of any portion of the
  15.251 -Library, but is designed to work with the Library by being compiled or
  15.252 -linked with it, is called a "work that uses the Library".  Such a
  15.253 -work, in isolation, is not a derivative work of the Library, and
  15.254 -therefore falls outside the scope of this License.
  15.255 -
  15.256 -  However, linking a "work that uses the Library" with the Library
  15.257 -creates an executable that is a derivative of the Library (because it
  15.258 -contains portions of the Library), rather than a "work that uses the
  15.259 -library".  The executable is therefore covered by this License.
  15.260 -Section 6 states terms for distribution of such executables.
  15.261 -
  15.262 -  When a "work that uses the Library" uses material from a header file
  15.263 -that is part of the Library, the object code for the work may be a
  15.264 -derivative work of the Library even though the source code is not.
  15.265 -Whether this is true is especially significant if the work can be
  15.266 -linked without the Library, or if the work is itself a library.  The
  15.267 -threshold for this to be true is not precisely defined by law.
  15.268 -
  15.269 -  If such an object file uses only numerical parameters, data
  15.270 -structure layouts and accessors, and small macros and small inline
  15.271 -functions (ten lines or less in length), then the use of the object
  15.272 -file is unrestricted, regardless of whether it is legally a derivative
  15.273 -work.  (Executables containing this object code plus portions of the
  15.274 -Library will still fall under Section 6.)
  15.275 -
  15.276 -  Otherwise, if the work is a derivative of the Library, you may
  15.277 -distribute the object code for the work under the terms of Section 6.
  15.278 -Any executables containing that work also fall under Section 6,
  15.279 -whether or not they are linked directly with the Library itself.
  15.280 -
  15.281 -  6. As an exception to the Sections above, you may also combine or
  15.282 -link a "work that uses the Library" with the Library to produce a
  15.283 -work containing portions of the Library, and distribute that work
  15.284 -under terms of your choice, provided that the terms permit
  15.285 -modification of the work for the customer's own use and reverse
  15.286 -engineering for debugging such modifications.
  15.287 -
  15.288 -  You must give prominent notice with each copy of the work that the
  15.289 -Library is used in it and that the Library and its use are covered by
  15.290 -this License.  You must supply a copy of this License.  If the work
  15.291 -during execution displays copyright notices, you must include the
  15.292 -copyright notice for the Library among them, as well as a reference
  15.293 -directing the user to the copy of this License.  Also, you must do one
  15.294 -of these things:
  15.295 -
  15.296 -    a) Accompany the work with the complete corresponding
  15.297 -    machine-readable source code for the Library including whatever
  15.298 -    changes were used in the work (which must be distributed under
  15.299 -    Sections 1 and 2 above); and, if the work is an executable linked
  15.300 -    with the Library, with the complete machine-readable "work that
  15.301 -    uses the Library", as object code and/or source code, so that the
  15.302 -    user can modify the Library and then relink to produce a modified
  15.303 -    executable containing the modified Library.  (It is understood
  15.304 -    that the user who changes the contents of definitions files in the
  15.305 -    Library will not necessarily be able to recompile the application
  15.306 -    to use the modified definitions.)
  15.307 -
  15.308 -    b) Use a suitable shared library mechanism for linking with the
  15.309 -    Library.  A suitable mechanism is one that (1) uses at run time a
  15.310 -    copy of the library already present on the user's computer system,
  15.311 -    rather than copying library functions into the executable, and (2)
  15.312 -    will operate properly with a modified version of the library, if
  15.313 -    the user installs one, as long as the modified version is
  15.314 -    interface-compatible with the version that the work was made with.
  15.315 -
  15.316 -    c) Accompany the work with a written offer, valid for at
  15.317 -    least three years, to give the same user the materials
  15.318 -    specified in Subsection 6a, above, for a charge no more
  15.319 -    than the cost of performing this distribution.
  15.320 -
  15.321 -    d) If distribution of the work is made by offering access to copy
  15.322 -    from a designated place, offer equivalent access to copy the above
  15.323 -    specified materials from the same place.
  15.324 -
  15.325 -    e) Verify that the user has already received a copy of these
  15.326 -    materials or that you have already sent this user a copy.
  15.327 -
  15.328 -  For an executable, the required form of the "work that uses the
  15.329 -Library" must include any data and utility programs needed for
  15.330 -reproducing the executable from it.  However, as a special exception,
  15.331 -the materials to be distributed need not include anything that is
  15.332 -normally distributed (in either source or binary form) with the major
  15.333 -components (compiler, kernel, and so on) of the operating system on
  15.334 -which the executable runs, unless that component itself accompanies
  15.335 -the executable.
  15.336 -
  15.337 -  It may happen that this requirement contradicts the license
  15.338 -restrictions of other proprietary libraries that do not normally
  15.339 -accompany the operating system.  Such a contradiction means you cannot
  15.340 -use both them and the Library together in an executable that you
  15.341 -distribute.
  15.342 -
  15.343 -  7. You may place library facilities that are a work based on the
  15.344 -Library side-by-side in a single library together with other library
  15.345 -facilities not covered by this License, and distribute such a combined
  15.346 -library, provided that the separate distribution of the work based on
  15.347 -the Library and of the other library facilities is otherwise
  15.348 -permitted, and provided that you do these two things:
  15.349 -
  15.350 -    a) Accompany the combined library with a copy of the same work
  15.351 -    based on the Library, uncombined with any other library
  15.352 -    facilities.  This must be distributed under the terms of the
  15.353 -    Sections above.
  15.354 -
  15.355 -    b) Give prominent notice with the combined library of the fact
  15.356 -    that part of it is a work based on the Library, and explaining
  15.357 -    where to find the accompanying uncombined form of the same work.
  15.358 -
  15.359 -  8. You may not copy, modify, sublicense, link with, or distribute
  15.360 -the Library except as expressly provided under this License.  Any
  15.361 -attempt otherwise to copy, modify, sublicense, link with, or
  15.362 -distribute the Library is void, and will automatically terminate your
  15.363 -rights under this License.  However, parties who have received copies,
  15.364 -or rights, from you under this License will not have their licenses
  15.365 -terminated so long as such parties remain in full compliance.
  15.366 -
  15.367 -  9. You are not required to accept this License, since you have not
  15.368 -signed it.  However, nothing else grants you permission to modify or
  15.369 -distribute the Library or its derivative works.  These actions are
  15.370 -prohibited by law if you do not accept this License.  Therefore, by
  15.371 -modifying or distributing the Library (or any work based on the
  15.372 -Library), you indicate your acceptance of this License to do so, and
  15.373 -all its terms and conditions for copying, distributing or modifying
  15.374 -the Library or works based on it.
  15.375 -
  15.376 -  10. Each time you redistribute the Library (or any work based on the
  15.377 -Library), the recipient automatically receives a license from the
  15.378 -original licensor to copy, distribute, link with or modify the Library
  15.379 -subject to these terms and conditions.  You may not impose any further
  15.380 -restrictions on the recipients' exercise of the rights granted herein.
  15.381 -You are not responsible for enforcing compliance by third parties with
  15.382 -this License.
  15.383 -
  15.384 -  11. If, as a consequence of a court judgment or allegation of patent
  15.385 -infringement or for any other reason (not limited to patent issues),
  15.386 -conditions are imposed on you (whether by court order, agreement or
  15.387 -otherwise) that contradict the conditions of this License, they do not
  15.388 -excuse you from the conditions of this License.  If you cannot
  15.389 -distribute so as to satisfy simultaneously your obligations under this
  15.390 -License and any other pertinent obligations, then as a consequence you
  15.391 -may not distribute the Library at all.  For example, if a patent
  15.392 -license would not permit royalty-free redistribution of the Library by
  15.393 -all those who receive copies directly or indirectly through you, then
  15.394 -the only way you could satisfy both it and this License would be to
  15.395 -refrain entirely from distribution of the Library.
  15.396 -
  15.397 -If any portion of this section is held invalid or unenforceable under any
  15.398 -particular circumstance, the balance of the section is intended to apply,
  15.399 -and the section as a whole is intended to apply in other circumstances.
  15.400 -
  15.401 -It is not the purpose of this section to induce you to infringe any
  15.402 -patents or other property right claims or to contest validity of any
  15.403 -such claims; this section has the sole purpose of protecting the
  15.404 -integrity of the free software distribution system which is
  15.405 -implemented by public license practices.  Many people have made
  15.406 -generous contributions to the wide range of software distributed
  15.407 -through that system in reliance on consistent application of that
  15.408 -system; it is up to the author/donor to decide if he or she is willing
  15.409 -to distribute software through any other system and a licensee cannot
  15.410 -impose that choice.
  15.411 -
  15.412 -This section is intended to make thoroughly clear what is believed to
  15.413 -be a consequence of the rest of this License.
  15.414 -
  15.415 -  12. If the distribution and/or use of the Library is restricted in
  15.416 -certain countries either by patents or by copyrighted interfaces, the
  15.417 -original copyright holder who places the Library under this License may add
  15.418 -an explicit geographical distribution limitation excluding those countries,
  15.419 -so that distribution is permitted only in or among countries not thus
  15.420 -excluded.  In such case, this License incorporates the limitation as if
  15.421 -written in the body of this License.
  15.422 -
  15.423 -  13. The Free Software Foundation may publish revised and/or new
  15.424 -versions of the Lesser General Public License from time to time.
  15.425 -Such new versions will be similar in spirit to the present version,
  15.426 -but may differ in detail to address new problems or concerns.
  15.427 -
  15.428 -Each version is given a distinguishing version number.  If the Library
  15.429 -specifies a version number of this License which applies to it and
  15.430 -"any later version", you have the option of following the terms and
  15.431 -conditions either of that version or of any later version published by
  15.432 -the Free Software Foundation.  If the Library does not specify a
  15.433 -license version number, you may choose any version ever published by
  15.434 -the Free Software Foundation.
  15.435 -
  15.436 -  14. If you wish to incorporate parts of the Library into other free
  15.437 -programs whose distribution conditions are incompatible with these,
  15.438 -write to the author to ask for permission.  For software which is
  15.439 -copyrighted by the Free Software Foundation, write to the Free
  15.440 -Software Foundation; we sometimes make exceptions for this.  Our
  15.441 -decision will be guided by the two goals of preserving the free status
  15.442 -of all derivatives of our free software and of promoting the sharing
  15.443 -and reuse of software generally.
  15.444 -
  15.445 -			    NO WARRANTY
  15.446 -
  15.447 -  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
  15.448 -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
  15.449 -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
  15.450 -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
  15.451 -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
  15.452 -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  15.453 -PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
  15.454 -LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
  15.455 -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
  15.456 -
  15.457 -  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
  15.458 -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
  15.459 -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
  15.460 -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
  15.461 -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
  15.462 -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
  15.463 -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
  15.464 -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
  15.465 -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
  15.466 -DAMAGES.
  15.467 -
  15.468 -		     END OF TERMS AND CONDITIONS
  15.469 -
  15.470 -           How to Apply These Terms to Your New Libraries
  15.471 -
  15.472 -  If you develop a new library, and you want it to be of the greatest
  15.473 -possible use to the public, we recommend making it free software that
  15.474 -everyone can redistribute and change.  You can do so by permitting
  15.475 -redistribution under these terms (or, alternatively, under the terms of the
  15.476 -ordinary General Public License).
  15.477 -
  15.478 -  To apply these terms, attach the following notices to the library.  It is
  15.479 -safest to attach them to the start of each source file to most effectively
  15.480 -convey the exclusion of warranty; and each file should have at least the
  15.481 -"copyright" line and a pointer to where the full notice is found.
  15.482 -
  15.483 -    <one line to give the library's name and a brief idea of what it does.>
  15.484 -    Copyright (C) <year>  <name of author>
  15.485 -
  15.486 -    This library is free software; you can redistribute it and/or
  15.487 -    modify it under the terms of the GNU Lesser General Public
  15.488 -    License as published by the Free Software Foundation; either
  15.489 -    version 2.1 of the License, or (at your option) any later version.
  15.490 -
  15.491 -    This library is distributed in the hope that it will be useful,
  15.492 -    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.493 -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.494 -    Lesser General Public License for more details.
  15.495 -
  15.496 -    You should have received a copy of the GNU Lesser General Public
  15.497 -    License along with this library; if not, write to the Free Software
  15.498 -    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
  15.499 -    USA
  15.500 -
  15.501 -Also add information on how to contact you by electronic and paper mail.
  15.502 -
  15.503 -You should also get your employer (if you work as a programmer) or your
  15.504 -school, if any, to sign a "copyright disclaimer" for the library, if
  15.505 -necessary.  Here is a sample; alter the names:
  15.506 -
  15.507 -  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  15.508 -  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
  15.509 -
  15.510 -  <signature of Ty Coon>, 1 April 1990
  15.511 -  Ty Coon, President of Vice
  15.512 -
  15.513 -That's all there is to it!
    16.1 --- a/core.nativeaccess/manifest.mf	Fri Jun 07 15:44:19 2013 +0200
    16.2 +++ b/core.nativeaccess/manifest.mf	Sat Jun 08 07:16:57 2013 +0200
    16.3 @@ -1,7 +1,7 @@
    16.4  Manifest-Version: 1.0
    16.5  AutoUpdate-Show-In-Client: false
    16.6  OpenIDE-Module: org.netbeans.core.nativeaccess/1
    16.7 -OpenIDE-Module-Specification-Version: 1.21
    16.8 +OpenIDE-Module-Specification-Version: 1.22
    16.9  OpenIDE-Module-Localizing-Bundle: org/netbeans/core/nativeaccess/Bundle.properties
   16.10  OpenIDE-Module-Provides: org.netbeans.core.windows.nativeaccess.NativeWindowSystem
   16.11  
    17.1 --- a/core.nativeaccess/nbproject/project.properties	Fri Jun 07 15:44:19 2013 +0200
    17.2 +++ b/core.nativeaccess/nbproject/project.properties	Sat Jun 08 07:16:57 2013 +0200
    17.3 @@ -1,4 +1,3 @@
    17.4  is.eager=true
    17.5  javac.compilerargs=-Xlint -Xlint:-serial
    17.6  javac.source=1.6
    17.7 -release.external/platform-3.4.0.jar=modules/ext/platform-3.4.0.jar
    18.1 --- a/core.nativeaccess/nbproject/project.xml	Fri Jun 07 15:44:19 2013 +0200
    18.2 +++ b/core.nativeaccess/nbproject/project.xml	Sat Jun 08 07:16:57 2013 +0200
    18.3 @@ -24,6 +24,15 @@
    18.4                      </run-dependency>
    18.5                  </dependency>
    18.6                  <dependency>
    18.7 +                    <code-name-base>org.netbeans.libs.jna.platform</code-name-base>
    18.8 +                    <build-prerequisite/>
    18.9 +                    <compile-dependency/>
   18.10 +                    <run-dependency>
   18.11 +                        <release-version>1</release-version>
   18.12 +                        <specification-version>1.0</specification-version>
   18.13 +                    </run-dependency>
   18.14 +                </dependency>
   18.15 +                <dependency>
   18.16                      <code-name-base>org.openide.util</code-name-base>
   18.17                      <build-prerequisite/>
   18.18                      <compile-dependency/>
   18.19 @@ -41,10 +50,6 @@
   18.20                  </dependency>
   18.21              </module-dependencies>
   18.22              <public-packages/>
   18.23 -            <class-path-extension>
   18.24 -                <runtime-relative-path>ext/platform-3.4.0.jar</runtime-relative-path>
   18.25 -                <binary-origin>external/platform-3.4.0.jar</binary-origin>
   18.26 -            </class-path-extension>
   18.27          </data>
   18.28      </configuration>
   18.29  </project>
    19.1 --- a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodNode.java	Fri Jun 07 15:44:19 2013 +0200
    19.2 +++ b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodNode.java	Sat Jun 08 07:16:57 2013 +0200
    19.3 @@ -207,7 +207,7 @@
    19.4  	if ((testcase.getTrouble() != null) && (testcase.getTrouble().getComparisonFailure() != null)){
    19.5              actions.add(new DiffViewAction(testcase));
    19.6          }
    19.7 -	if (testcase.getTrouble() != null) {
    19.8 +	if (testcase.getTrouble() != null && testcase.getTrouble().getStackTrace() != null) {
    19.9  	    StringBuilder callStack = new StringBuilder();
   19.10  	    for(String stack : testcase.getTrouble().getStackTrace()) {
   19.11  		if(stack != null) {
    20.1 --- a/html.knockout/src/org/netbeans/modules/html/knockout/HelpSupport.java	Fri Jun 07 15:44:19 2013 +0200
    20.2 +++ b/html.knockout/src/org/netbeans/modules/html/knockout/HelpSupport.java	Sat Jun 08 07:16:57 2013 +0200
    20.3 @@ -109,7 +109,7 @@
    20.4          return content.substring(stripFrom, stripTo);
    20.5      }
    20.6  
    20.7 -    public static String loadURLContent(URL url) throws IOException {
    20.8 +    public static String loadURLContent(URL url, String charset) throws IOException {
    20.9          if (url == null) {
   20.10              return null;
   20.11          }
   20.12 @@ -125,7 +125,7 @@
   20.13          } while (count > 0);
   20.14  
   20.15          is.close();
   20.16 -        String content = baos.toString();
   20.17 +        String content = baos.toString(charset);
   20.18          baos.close();
   20.19          return content;
   20.20      }
    21.1 --- a/html.knockout/src/org/netbeans/modules/html/knockout/KOAttributeCompletionItem.java	Fri Jun 07 15:44:19 2013 +0200
    21.2 +++ b/html.knockout/src/org/netbeans/modules/html/knockout/KOAttributeCompletionItem.java	Sat Jun 08 07:16:57 2013 +0200
    21.3 @@ -51,6 +51,7 @@
    21.4  import javax.swing.ImageIcon;
    21.5  import org.netbeans.modules.html.editor.api.completion.HtmlCompletionItem;
    21.6  import org.netbeans.modules.html.editor.api.gsf.CustomAttribute;
    21.7 +import org.netbeans.modules.html.knockout.model.Binding;
    21.8  
    21.9  /**
   21.10   *
   21.11 @@ -64,7 +65,7 @@
   21.12      
   21.13      private static final String CANNOT_LOAD_HELP = Bundle.cannot_load_help();
   21.14      
   21.15 -    private boolean isInKnockoutFile;
   21.16 +    private final boolean isInKnockoutFile;
   21.17      
   21.18      public KOAttributeCompletionItem(CustomAttribute ca, int offset, boolean isInKnockoutFile) {
   21.19          super(ca.getName(), offset, false, ca.getHelp());
   21.20 @@ -114,7 +115,7 @@
   21.21              if(url == null) {
   21.22                  return CANNOT_LOAD_HELP;
   21.23              } else {
   21.24 -                helpContent = HelpSupport.getKnockoutDocumentationContent(HelpSupport.loadURLContent(url));
   21.25 +                helpContent = HelpSupport.getKnockoutDocumentationContent(HelpSupport.loadURLContent(url, Binding.DOC_CHARSET));
   21.26                  HELP_CACHE = new WeakReference<>(helpContent);
   21.27                  return helpContent;
   21.28              }
    22.1 --- a/html.knockout/src/org/netbeans/modules/html/knockout/KOBindingCompletionItem.java	Fri Jun 07 15:44:19 2013 +0200
    22.2 +++ b/html.knockout/src/org/netbeans/modules/html/knockout/KOBindingCompletionItem.java	Sat Jun 08 07:16:57 2013 +0200
    22.3 @@ -62,9 +62,10 @@
    22.4      
    22.5      private static final Map<Binding, String> HELP_CACHE = new WeakHashMap<>();
    22.6  
    22.7 -    private Binding binding;
    22.8      private static final String CANNOT_LOAD_HELP = Bundle.cannot_load_help();
    22.9  
   22.10 +    private final Binding binding;
   22.11 +    
   22.12      public KOBindingCompletionItem(Binding binding, int substituteOffset) {
   22.13          super(binding.getName(), substituteOffset);
   22.14          this.binding = binding;
   22.15 @@ -110,7 +111,7 @@
   22.16              if(url == null) {
   22.17                  return CANNOT_LOAD_HELP;
   22.18              } else {
   22.19 -                helpContent = HelpSupport.getKnockoutDocumentationContent(HelpSupport.loadURLContent(url));
   22.20 +                helpContent = HelpSupport.getKnockoutDocumentationContent(HelpSupport.loadURLContent(url, Binding.DOC_CHARSET));
   22.21                  HELP_CACHE.put(binding, helpContent);
   22.22                  return helpContent;
   22.23              }
    23.1 --- a/html.knockout/src/org/netbeans/modules/html/knockout/KODataBindLexer.java	Fri Jun 07 15:44:19 2013 +0200
    23.2 +++ b/html.knockout/src/org/netbeans/modules/html/knockout/KODataBindLexer.java	Sat Jun 08 07:16:57 2013 +0200
    23.3 @@ -249,6 +249,9 @@
    23.4                              if(inSingleQuotedString || inDoubleQuotedString) {
    23.5                                  state = State.IN_VALUE_ESCAPE;
    23.6                              }
    23.7 +                            break;
    23.8 +                        default:
    23.9 +                            break;
   23.10                      }
   23.11                      break;
   23.12  
    24.1 --- a/html.knockout/src/org/netbeans/modules/html/knockout/model/Binding.java	Fri Jun 07 15:44:19 2013 +0200
    24.2 +++ b/html.knockout/src/org/netbeans/modules/html/knockout/model/Binding.java	Sat Jun 08 07:16:57 2013 +0200
    24.3 @@ -82,6 +82,9 @@
    24.4      uniqueName,
    24.5      //rendering
    24.6      template;
    24.7 +
    24.8 +    public static final String DOC_CHARSET = "UTF-8"; //NOI18N
    24.9 +    
   24.10      private static final String DOC_URL_BASE = "http://knockoutjs.com/documentation/"; //NOI18N
   24.11      private static final String DOC_URL_POSTFIX = "-binding.html"; //NOI18N
   24.12  
    25.1 --- a/ide.branding/release-toplevel/THIRDPARTYLICENSE.txt	Fri Jun 07 15:44:19 2013 +0200
    25.2 +++ b/ide.branding/release-toplevel/THIRDPARTYLICENSE.txt	Sat Jun 08 07:16:57 2013 +0200
    25.3 @@ -84,11 +84,11 @@
    25.4  ide/modules/ext/freemarker-2.3.19.jar                                 freemarker
    25.5  ide/modules/ext/html5-datatypes.jar                                   MIT-html5-datatypes
    25.6  ide/modules/ext/html5-parser.jar                                      MIT-html5-parser
    25.7 -ide/modules/ext/icu4j-4_0.jar                                         MIT-icu4j
    25.8 +ide/modules/ext/icu4j-4_4_2.jar                                       MIT-icu4j
    25.9  ide/modules/ext/ini4j-0.5.1.jar                                       Apache-2.0
   25.10  ide/modules/ext/io-xml-util.jar                                       Apache-2.0
   25.11  ide/modules/ext/iri.jar                                               BSD-iri
   25.12 -ide/modules/ext/isorelax20041111.jar                                  MIT-isorelax
   25.13 +ide/modules/ext/isorelax.jar                                          MIT-isorelax
   25.14  ide/modules/ext/jaxb/jaxb1-impl.jar                                   CDDL-1.0, incl. MIT (iso-relax) and BSD (RelaxNG)
   25.15  ide/modules/ext/jaxb/jaxb-xjc.jar                                     CDDL-1.0, incl. MIT (iso-relax) and BSD (RelaxNG)
   25.16  ide/modules/ext/jing.jar                                              BSD-jing
   25.17 @@ -99,7 +99,6 @@
   25.18  ide/modules/ext/jsch-agentproxy-usocket-nc.jar                        BSD-jsch-agent-proxy
   25.19  ide/modules/com-jcraft-jsch.jar                                       BSD-jsch
   25.20  ide/modules/com-jcraft-jzlib.jar                                      BSD-jzlib
   25.21 -ide/modules/ext/js.jar                                                MPL-1.1
   25.22  ide/modules/ext/json-simple-1.1.1.jar                                 Apache-2.0
   25.23  ide/modules/ext/jvyamlb-0.2.3.jar                                     MIT-jvyamlb
   25.24  ide/modules/ext/libpam4j-1.1.jar                                      MIT
   25.25 @@ -217,9 +216,6 @@
   25.26  platform/modules/ext/platform-3.4.0.jar                               LGPL-2.1
   25.27  platform/modules/ext/swing-layout-1.0.4.jar                           LGPL-2.1
   25.28  webcommon/bin/ios-sim                                                 MIT-sim
   25.29 -webcommon/bin/libimobiledevice.4.dylib                                LGPL-2.1
   25.30 -webcommon/bin/libplist.1.dylib                                        LGPL-2.1
   25.31 -webcommon/bin/libusbmuxd.2.dylib                                      LGPL-2.1
   25.32  webcommon/modules/ext/dd-plist.jar                                    MIT-plist
   25.33  webcommon/modules/org-netbeans-modules-web-clientproject-api.jar!org/netbeans/modules/web/clientproject/libraries/resources/cdnjs.zip  MIT-cdnjs
   25.34  
   25.35 @@ -1779,34 +1775,34 @@
   25.36  
   25.37  COPYRIGHT AND PERMISSION NOTICE
   25.38  
   25.39 -Copyright (c) 1995-2008 International Business Machines Corporation and others
   25.40 +Copyright (c) 1995-2010 International Business Machines Corporation and others
   25.41  
   25.42  All rights reserved.
   25.43  
   25.44  Permission is hereby granted, free of charge, to any person obtaining a copy
   25.45 -of this software and associated documentation files (the "Software"),
   25.46 -to deal in the Software without restriction, including without limitation
   25.47 -the rights to use, copy, modify, merge, publish, distribute, and/or sell
   25.48 -copies of the Software, and to permit persons
   25.49 -to whom the Software is furnished to do so, provided that the above
   25.50 -copyright notice(s) and this permission notice appear in all copies
   25.51 -of the Software and that both the above copyright notice(s) and this
   25.52 -permission notice appear in supporting documentation.
   25.53 -
   25.54 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
   25.55 -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
   25.56 -PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL
   25.57 -THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM,
   25.58 -OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
   25.59 -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
   25.60 -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
   25.61 -USE OR PERFORMANCE OF THIS SOFTWARE.
   25.62 -
   25.63 -Except as contained in this notice, the name of a copyright holder shall not be
   25.64 -used in advertising or otherwise to promote the sale, use or other dealings in
   25.65 -this Software without prior written authorization of the copyright holder.
   25.66 -
   25.67 -All trademarks and registered trademarks mentioned herein are the property of their respective owners.
   25.68 +of this software and associated documentation files (the "Software"), to deal
   25.69 +in the Software without restriction, including without limitation the rights
   25.70 +to use, copy, modify, merge, publish, distribute, and/or sell copies of the
   25.71 +Software, and to permit persons to whom the Software is furnished to do so,
   25.72 +provided that the above copyright notice(s) and this permission notice appear
   25.73 +in all copies of the Software and that both the above copyright notice(s) and
   25.74 +this permission notice appear in supporting documentation.
   25.75 +
   25.76 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   25.77 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   25.78 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
   25.79 +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
   25.80 +LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
   25.81 +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
   25.82 +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
   25.83 +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   25.84 +
   25.85 +Except as contained in this notice, the name of a copyright holder shall not
   25.86 +be used in advertising or otherwise to promote the sale, use or other dealings
   25.87 +in this Software without prior written authorization of the copyright holder.
   25.88 +
   25.89 +All trademarks and registered trademarks mentioned herein are the property of
   25.90 +their respective owners.
   25.91  
   25.92  
   25.93  ===
    26.1 --- a/ide.kit/test/qa-functional/data/kits.properties	Fri Jun 07 15:44:19 2013 +0200
    26.2 +++ b/ide.kit/test/qa-functional/data/kits.properties	Sat Jun 08 07:16:57 2013 +0200
    26.3 @@ -19,6 +19,7 @@
    26.4  org.netbeans.modules.css.prep=base
    26.5  org.apache.tools.ant.module=base
    26.6  org.netbeans.modules.notifications=base
    26.7 +org.netbeans.modules.cordova=base
    26.8  # --- JAVASE --- #
    26.9  org.netbeans.modules.testng.ant=javase
   26.10  org.netbeans.modules.javafx2.scenebuilder=javase
   26.11 @@ -47,7 +48,6 @@
   26.12  org.netbeans.modules.web.jsf.icefaces=javaee
   26.13  org.netbeans.modules.web.client.rest=javaee
   26.14  org.netbeans.modules.web.jsf.kit=javaee
   26.15 -org.netbeans.modules.cordova=javaee
   26.16  org.netbeans.modules.glassfish.common=javaee
   26.17  # --- PHP --- #
   26.18  org.netbeans.modules.php.latte=php
   26.19 @@ -69,8 +69,8 @@
   26.20  org.netbeans.modules.web.client.kit=webcommon
   26.21  # --- WEBSVCCOMMON --- #
   26.22  org.netbeans.modules.websvc.saas.kit=websvccommon
   26.23 -# --- CND --- #
   26.24 -org.netbeans.modules.cnd.kit=cnd
   26.25 +# --- CPP --- #
   26.26 +org.netbeans.modules.cnd.kit=cpp
   26.27  # --- FULL --- #
   26.28  org.netbeans.modules.javacard.oberthur=full
   26.29  org.netbeans.modules.groovy.kit=full
    27.1 --- a/ide.kit/test/qa-functional/src/org/netbeans/test/ide/InstallationCompletenessTest.java	Fri Jun 07 15:44:19 2013 +0200
    27.2 +++ b/ide.kit/test/qa-functional/src/org/netbeans/test/ide/InstallationCompletenessTest.java	Sat Jun 08 07:16:57 2013 +0200
    27.3 @@ -58,9 +58,11 @@
    27.4  import org.netbeans.junit.NbTestCase;
    27.5  import org.netbeans.junit.NbTestSuite;
    27.6  import org.openide.util.Exceptions;
    27.7 +import org.openide.util.NbBundle;
    27.8  
    27.9  public class InstallationCompletenessTest extends NbTestCase {
   27.10  
   27.11 +    public static final String[] NON_PRODUCTION_MODULES = {"org.netbeans.modules.timers"};
   27.12      public static final String DISTRO_PROPERTY = "netbeans.distribution";
   27.13      public static final String JAVACARD_PREFIX = "org.netbeans.modules.javacard";
   27.14      public static final String EXPECTED_INCLUDES_PROPERTY = "expected.includes";
   27.15 @@ -74,8 +76,8 @@
   27.16          JAVASE("base,javase,websvccommon"),
   27.17          JAVAEE("base,javase,websvccommon,javaee,webcommon"),
   27.18          PHP("base,php,websvccommon,webcommon"),
   27.19 -        CND("base,cnd"),
   27.20 -        FULL("base,javase,javaee,php,cnd,webcommon,websvccommon,full");
   27.21 +        CPP("base,cpp"),
   27.22 +        FULL("base,javase,javaee,php,cpp,webcommon,websvccommon,full");
   27.23          private String parts;
   27.24  
   27.25          private Type(String parts) {
   27.26 @@ -182,7 +184,7 @@
   27.27                  result.add(kit);
   27.28              }
   27.29          }
   27.30 -        return filterPlatformSpecific(result);
   27.31 +        return filterProductionSpecific(filterPlatformSpecific(result));
   27.32      }
   27.33  
   27.34      private Set<String> filterPlatformSpecific(Set<String> set){
   27.35 @@ -199,6 +201,19 @@
   27.36          return set;
   27.37      }
   27.38      
   27.39 +    private Set<String> filterProductionSpecific(Set<String> set){
   27.40 +        if (!isDevBuild()){
   27.41 +            // remove o.n.m.timers for Beta, RCs and FCS builds
   27.42 +            set.removeAll(Arrays.asList(NON_PRODUCTION_MODULES));
   27.43 +        } 
   27.44 +        return set;
   27.45 +    }
   27.46 +    
   27.47 +    private boolean isDevBuild(){
   27.48 +        return NbBundle.getBundle("org.netbeans.core.startup.Bundle").
   27.49 +                getString("currentVersion").contains("Dev");
   27.50 +    }
   27.51 +
   27.52      private Properties readProps(File f) {
   27.53          Properties props = new Properties();
   27.54          FileInputStream fis = null;
    28.1 --- a/installer/infra/build/build.xml	Fri Jun 07 15:44:19 2013 +0200
    28.2 +++ b/installer/infra/build/build.xml	Sat Jun 08 07:16:57 2013 +0200
    28.3 @@ -1872,7 +1872,7 @@
    28.4          <!-- JavaSE + JDK7 bundles -->
    28.5  	<antcall target="generate-jdk-bundle-single">
    28.6  	    <param name="jdk.bundle.files.prefix"     value="jdk-7u25"/>
    28.7 -	    <param name="jdk.full.version"            value="1.7.0.25.14"/>
    28.8 +	    <param name="jdk.full.version"            value="1.7.0.25.15"/>
    28.9              <param name="bundled.jvm.file.prefix"     value="jre-7u4"/>
   28.10  	    <param name="license.resource"            value="$S{nbi.overall.license.jdk7.resource}"/>
   28.11  	</antcall>
    29.1 --- a/installer/infra/build/products/jdk/build_jdk7.properties	Fri Jun 07 15:44:19 2013 +0200
    29.2 +++ b/installer/infra/build/products/jdk/build_jdk7.properties	Sat Jun 08 07:16:57 2013 +0200
    29.3 @@ -64,10 +64,10 @@
    29.4  # * ${product.platforms} - the list of platforms that are supported by this 
    29.5  #   product (note that this property is not related to native libraries)
    29.6  product.uid=jdk
    29.7 -product.version.windows=1.7.0.25.1432
    29.8 -product.version.windows-x64=1.7.0.25.1464
    29.9 -product.version.linux=1.7.0.25.1432
   29.10 -product.version.linux-x64=1.7.0.25.1464
   29.11 +product.version.windows=1.7.0.25.1532
   29.12 +product.version.windows-x64=1.7.0.25.1564
   29.13 +product.version.linux=1.7.0.25.1532
   29.14 +product.version.linux-x64=1.7.0.25.1564
   29.15  #product.platforms= - will be overriden, as we need to build several times 
   29.16  #                     for several platforms
   29.17  
   29.18 @@ -111,7 +111,7 @@
   29.19  product.data.length.linux=1
   29.20  product.data.length.linux-x64=1
   29.21  
   29.22 -product.data.1.uri.prefix=${jdk.builds.host}/java/re/jdk/7u25/promoted/fcs/b14/bundles
   29.23 +product.data.1.uri.prefix=${jdk.builds.host}/java/re/jdk/7u25/promoted/fcs/b15/bundles
   29.24  product.data.1.uri.windows=${product.data.1.uri.prefix}/windows-i586/jdk-7u25-windows-i586.exe
   29.25  product.data.1.uri.windows-x64=${product.data.1.uri.prefix}/windows-x64/jdk-7u25-windows-x64.exe
   29.26  product.data.1.uri.linux=${product.data.1.uri.prefix}/linux-i586/jdk-7u25-linux-i586.tar.gz
   29.27 @@ -194,4 +194,4 @@
   29.28  sources.params.3.token={jdk-install-dir}
   29.29  sources.params.3.value=${folder.name.unzipped}
   29.30  sources.params.4.token={jdk-base-dir}
   29.31 -sources.params.4.value=jdk1.7.0_25.b14
   29.32 +sources.params.4.value=jdk1.7.0_25.b15
    30.1 --- a/installer/mac/newbuild/build.pro	Fri Jun 07 15:44:19 2013 +0200
    30.2 +++ b/installer/mac/newbuild/build.pro	Sat Jun 08 07:16:57 2013 +0200
    30.3 @@ -58,7 +58,7 @@
    30.4      <property name="jdk.bundle.files.suffix" value="nb-dev"/>
    30.5      <property name="output.jdk7.dir" value="jdk/"/>
    30.6      <property name="default.jdk7.home" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home"/>
    30.7 -    <property name="jdk_bits_location" value="${jdk_builds_host}/java/re/jdk/7u25/promoted/fcs/b14/bundles/macosx-x64/jdk-7u25-macosx-x64.dmg"/>
    30.8 +    <property name="jdk_bits_location" value="${jdk_builds_host}/java/re/jdk/7u25/promoted/fcs/b15/bundles/macosx-x64/jdk-7u25-macosx-x64.dmg"/>
    30.9      <property name="jdk.package.name" value="JDK\ 7\ Update\ 25"/>
   30.10  
   30.11  </project>
    31.1 --- a/installer/mac/newbuild/dmg/distribution-jdk.dist	Fri Jun 07 15:44:19 2013 +0200
    31.2 +++ b/installer/mac/newbuild/dmg/distribution-jdk.dist	Sat Jun 08 07:16:57 2013 +0200
    31.3 @@ -93,7 +93,7 @@
    31.4  {
    31.5  	// check if it is a downgrade
    31.6  	
    31.7 -	tVersionResult = system.compareVersions(bundle.CFBundleVersion, "1.7.25.14");
    31.8 +	tVersionResult = system.compareVersions(bundle.CFBundleVersion, "1.7.25.15");
    31.9  	if (tVersionResult == 1) 
   31.10  	{
   31.11  		// Means installed version > current payload
    32.1 --- a/installer/mac/newbuild/netBeans/baseide/build.xml	Fri Jun 07 15:44:19 2013 +0200
    32.2 +++ b/installer/mac/newbuild/netBeans/baseide/build.xml	Sat Jun 08 07:16:57 2013 +0200
    32.3 @@ -82,10 +82,13 @@
    32.4      
    32.5      <target name="sign-app" description="Singing Mac OS X Application" if="do.sign-app">
    32.6          <echo message="Signing application ${appdir}"/>
    32.7 +        <echo message="Signing doesn't work reliably!!!"/>
    32.8 +<!--
    32.9          <exec executable="sh" failonerror="yes">
   32.10              <arg value="-cv"/>
   32.11              <arg value="codesign -fs '${signing_identity}' -vvvv '${appdir}'"/>
   32.12          </exec>
   32.13 +-->
   32.14      </target>
   32.15      
   32.16      <target name="build-pkg" depends="init, build-app">
    33.1 --- a/j2ee.ejbcore/src/org/netbeans/modules/j2ee/ejbcore/ejb/wizard/mdb/MdbLocationPanelVisual.form	Fri Jun 07 15:44:19 2013 +0200
    33.2 +++ b/j2ee.ejbcore/src/org/netbeans/modules/j2ee/ejbcore/ejb/wizard/mdb/MdbLocationPanelVisual.form	Sat Jun 08 07:16:57 2013 +0200
    33.3 @@ -104,9 +104,6 @@
    33.4      <Component class="javax.swing.JComboBox" name="projectDestinationsCombo">
    33.5        <Properties>
    33.6          <Property name="editable" type="boolean" value="true"/>
    33.7 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
    33.8 -          <Connection code="getProjectDestinationComboModel()" type="code"/>
    33.9 -        </Property>
   33.10        </Properties>
   33.11      </Component>
   33.12      <Component class="javax.swing.JButton" name="addButton">
    34.1 --- a/j2ee.ejbcore/src/org/netbeans/modules/j2ee/ejbcore/ejb/wizard/mdb/MdbLocationPanelVisual.java	Fri Jun 07 15:44:19 2013 +0200
    34.2 +++ b/j2ee.ejbcore/src/org/netbeans/modules/j2ee/ejbcore/ejb/wizard/mdb/MdbLocationPanelVisual.java	Sat Jun 08 07:16:57 2013 +0200
    34.3 @@ -48,8 +48,14 @@
    34.4  import java.awt.event.ActionListener;
    34.5  import java.io.IOException;
    34.6  import java.util.Set;
    34.7 +import javax.swing.ComboBoxEditor;
    34.8  import javax.swing.ComboBoxModel;
    34.9  import javax.swing.DefaultComboBoxModel;
   34.10 +import javax.swing.JComboBox;
   34.11 +import javax.swing.event.DocumentEvent;
   34.12 +import javax.swing.event.DocumentListener;
   34.13 +import javax.swing.event.EventListenerList;
   34.14 +import javax.swing.text.JTextComponent;
   34.15  import org.netbeans.api.java.source.ClasspathInfo;
   34.16  import org.netbeans.api.java.source.CompilationController;
   34.17  import org.netbeans.api.java.source.JavaSource;
   34.18 @@ -89,6 +95,7 @@
   34.19      })
   34.20      private MdbLocationPanelVisual(Project project, J2eeModuleProvider provider, Set<MessageDestination> moduleDestinations, Set<MessageDestination> serverDestinations) {
   34.21          initComponents();
   34.22 +        projectDestinationsCombo.setModel(new ProjectDestinationsComboModel(projectDestinationsCombo.getEditor()));
   34.23          this.project = project;
   34.24          this.provider = provider;
   34.25          this.moduleDestinations = moduleDestinations;
   34.26 @@ -165,10 +172,6 @@
   34.27          }
   34.28      }
   34.29  
   34.30 -    private static ComboBoxModel getProjectDestinationComboModel() {
   34.31 -        return new PDComboModel();
   34.32 -    }
   34.33 -
   34.34      private void initialize() {
   34.35          registerListeners();
   34.36          setupAddButton();
   34.37 @@ -193,6 +196,7 @@
   34.38                  handleComboBoxes();
   34.39              }
   34.40          });
   34.41 +
   34.42          // combo boxes
   34.43          projectDestinationsCombo.addActionListener(new ActionListener() {
   34.44              @Override
   34.45 @@ -206,6 +210,26 @@
   34.46                  fire(false);
   34.47              }
   34.48          });
   34.49 +
   34.50 +        // text into the project combobox
   34.51 +        final JTextComponent tc = (JTextComponent) projectDestinationsCombo.getEditor().getEditorComponent();
   34.52 +        tc.getDocument().addDocumentListener(new DocumentListener() {
   34.53 +            @Override
   34.54 +            public void insertUpdate(DocumentEvent e) {
   34.55 +                fireUpdate();
   34.56 +            }
   34.57 +            @Override
   34.58 +            public void removeUpdate(DocumentEvent e) {
   34.59 +                fireUpdate();
   34.60 +            }
   34.61 +            @Override
   34.62 +            public void changedUpdate(DocumentEvent e) {
   34.63 +                fireUpdate();
   34.64 +            }
   34.65 +            private void fireUpdate() {
   34.66 +                fire(false);
   34.67 +            }
   34.68 +        });
   34.69      }
   34.70      private void setupAddButton() {
   34.71          if (!isDestinationCreationSupportedByServerPlugin) {
   34.72 @@ -264,7 +288,6 @@
   34.73          serverDestinationsRadio.setMargin(new java.awt.Insets(0, 0, 0, 0));
   34.74  
   34.75          projectDestinationsCombo.setEditable(true);
   34.76 -        projectDestinationsCombo.setModel(getProjectDestinationComboModel());
   34.77  
   34.78          org.openide.awt.Mnemonics.setLocalizedText(addButton, org.openide.util.NbBundle.getMessage(MdbLocationPanelVisual.class, "LBL_Add")); // NOI18N
   34.79          addButton.addActionListener(new java.awt.event.ActionListener() {
   34.80 @@ -340,7 +363,13 @@
   34.81      }
   34.82  
   34.83      @SuppressWarnings("serial") // not used to be serialized
   34.84 -    private static class PDComboModel extends DefaultComboBoxModel {
   34.85 +    private static class ProjectDestinationsComboModel extends DefaultComboBoxModel {
   34.86 +
   34.87 +        private final ComboBoxEditor comboEditor;
   34.88 +
   34.89 +        public ProjectDestinationsComboModel(ComboBoxEditor comboEditor) {
   34.90 +            this.comboEditor = comboEditor;
   34.91 +        }
   34.92  
   34.93          @Override
   34.94          public Object getSelectedItem() {
   34.95 @@ -348,7 +377,7 @@
   34.96              if (selectedItem instanceof MessageDestination) {
   34.97                  return ((MessageDestination) selectedItem).getName();
   34.98              } else {
   34.99 -                return selectedItem;
  34.100 +                return comboEditor.getItem();
  34.101              }
  34.102          }
  34.103  
    35.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/JsCodeCompletion.java	Fri Jun 07 15:44:19 2013 +0200
    35.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/JsCodeCompletion.java	Sat Jun 08 07:16:57 2013 +0200
    35.3 @@ -111,7 +111,7 @@
    35.4          
    35.5          JsCompletionItem.CompletionRequest request = new JsCompletionItem.CompletionRequest();
    35.6              String pref = ccContext.getPrefix();
    35.7 -            pref = pref == null ? "" : pref; 
    35.8 +            //pref = pref == null ? "" : pref;
    35.9  
   35.10              request.anchor = caretOffset
   35.11                      // can't just use 'prefix.getLength()' here cos it might have been calculated with
    36.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/JsLanguage.java	Fri Jun 07 15:44:19 2013 +0200
    36.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/JsLanguage.java	Sat Jun 08 07:16:57 2013 +0200
    36.3 @@ -138,7 +138,7 @@
    36.4  
    36.5      @Override
    36.6      public DeclarationFinder getDeclarationFinder() {
    36.7 -        return new DeclarationFinderImpl();
    36.8 +        return new DeclarationFinderImpl(JsTokenId.javascriptLanguage());
    36.9      }
   36.10  
   36.11      @Override
    37.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/JsonLanguage.java	Fri Jun 07 15:44:19 2013 +0200
    37.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/JsonLanguage.java	Sat Jun 08 07:16:57 2013 +0200
    37.3 @@ -39,6 +39,7 @@
    37.4  
    37.5  import org.netbeans.core.spi.multiview.MultiViewElement;
    37.6  import org.netbeans.core.spi.multiview.text.MultiViewEditorElement;
    37.7 +import org.netbeans.modules.csl.api.DeclarationFinder;
    37.8  import org.netbeans.modules.csl.api.Formatter;
    37.9  import org.netbeans.modules.csl.api.StructureScanner;
   37.10  import org.netbeans.modules.csl.spi.DefaultLanguageConfig;
   37.11 @@ -46,6 +47,7 @@
   37.12  import org.netbeans.modules.javascript2.editor.classpath.ClassPathProviderImpl;
   37.13  import org.netbeans.modules.javascript2.editor.formatter.JsFormatter;
   37.14  import org.netbeans.modules.javascript2.editor.api.lexer.JsTokenId;
   37.15 +import org.netbeans.modules.javascript2.editor.navigation.DeclarationFinderImpl;
   37.16  import org.netbeans.modules.javascript2.editor.parser.JsonParser;
   37.17  import org.netbeans.modules.parsing.spi.Parser;
   37.18  import org.netbeans.modules.parsing.spi.indexing.PathRecognizerRegistration;
   37.19 @@ -116,10 +118,10 @@
   37.20  //        return new JsSemanticAnalyzer();
   37.21  //    }
   37.22  
   37.23 -//    @Override
   37.24 -//    public DeclarationFinder getDeclarationFinder() {
   37.25 -//        return new DeclarationFinderImpl();
   37.26 -//    }
   37.27 +    @Override
   37.28 +    public DeclarationFinder getDeclarationFinder() {
   37.29 +        return new DeclarationFinderImpl(JsTokenId.jsonLanguage());
   37.30 +    }
   37.31  
   37.32  //    @Override
   37.33  //    public boolean hasOccurrencesFinder() {
    38.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/Model.java	Fri Jun 07 15:44:19 2013 +0200
    38.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/Model.java	Sat Jun 08 07:16:57 2013 +0200
    38.3 @@ -340,18 +340,18 @@
    38.4          }
    38.5          JsObjectImpl ret;
    38.6          if (parameter) {
    38.7 -            ret = new ParameterObject(parent, new IdentifierImpl(name, OffsetRange.NONE), sourceLabel);
    38.8 +            ret = new ParameterObject(parent, new IdentifierImpl(name, OffsetRange.NONE), null, sourceLabel);
    38.9          } else if (function) {
   38.10              JsFunctionImpl functionImpl = new JsFunctionImpl(null, parent,
   38.11 -                    new IdentifierImpl(name, OffsetRange.NONE), Collections.<Identifier>emptyList(), OffsetRange.NONE, sourceLabel);
   38.12 +                    new IdentifierImpl(name, OffsetRange.NONE), Collections.<Identifier>emptyList(), OffsetRange.NONE, null, sourceLabel);
   38.13              functionImpl.setAnonymous(anonymous);
   38.14              ret = functionImpl;
   38.15          } else {
   38.16              if (anonymous) {
   38.17 -                ret = new AnonymousObject(parent, name, OffsetRange.NONE, sourceLabel);
   38.18 +                ret = new AnonymousObject(parent, name, OffsetRange.NONE, null, sourceLabel);
   38.19              } else {
   38.20                  ret = new JsObjectImpl(parent, new IdentifierImpl(name, OffsetRange.NONE),
   38.21 -                    OffsetRange.NONE, sourceLabel);
   38.22 +                    OffsetRange.NONE, null, sourceLabel);
   38.23              }
   38.24          }
   38.25  
    39.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/AnonymousObject.java	Fri Jun 07 15:44:19 2013 +0200
    39.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/AnonymousObject.java	Sat Jun 08 07:16:57 2013 +0200
    39.3 @@ -53,8 +53,8 @@
    39.4   */
    39.5  public class AnonymousObject extends JsObjectImpl {
    39.6  
    39.7 -    public AnonymousObject(JsObject parent, String name, OffsetRange offsetRange, String sourceLabel) {
    39.8 -        super(parent, name, true, offsetRange, EnumSet.of(Modifier.PRIVATE), sourceLabel);
    39.9 +    public AnonymousObject(JsObject parent, String name, OffsetRange offsetRange, String mimeType, String sourceLabel) {
   39.10 +        super(parent, name, true, offsetRange, EnumSet.of(Modifier.PRIVATE), mimeType, sourceLabel);
   39.11      }
   39.12  
   39.13      @Override
    40.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/CatchBlockImpl.java	Fri Jun 07 15:44:19 2013 +0200
    40.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/CatchBlockImpl.java	Sat Jun 08 07:16:57 2013 +0200
    40.3 @@ -60,10 +60,11 @@
    40.4  
    40.5      final private List<JsObject> parameters;
    40.6      
    40.7 -    public CatchBlockImpl(DeclarationScope inFunction, Identifier exception, OffsetRange range) {
    40.8 -        super(inFunction, (JsObject)inFunction, new IdentifierImpl(getBlockName((JsObject)inFunction), OffsetRange.NONE), range, null); //NOI18N
    40.9 +    public CatchBlockImpl(DeclarationScope inFunction, Identifier exception, OffsetRange range, String mimeType) {
   40.10 +        super(inFunction, (JsObject)inFunction, new IdentifierImpl(getBlockName((JsObject)inFunction), OffsetRange.NONE),
   40.11 +                range, mimeType, null); //NOI18N
   40.12          this.parameters = new ArrayList<JsObject>();
   40.13 -        ParameterObject param = new ParameterObject(this, exception, null);
   40.14 +        ParameterObject param = new ParameterObject(this, exception, mimeType, null);
   40.15          this.parameters.add(param);
   40.16          ((JsObjectImpl)inFunction).addProperty(this.getName(), this);
   40.17          param.addOccurrence(exception.getOffsetRange());
    41.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/DeclarationScopeImpl.java	Fri Jun 07 15:44:19 2013 +0200
    41.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/DeclarationScopeImpl.java	Sat Jun 08 07:16:57 2013 +0200
    41.3 @@ -66,8 +66,8 @@
    41.4      private final NavigableMap<Integer, With> withs = new TreeMap<Integer, With>();
    41.5  
    41.6      public DeclarationScopeImpl(DeclarationScope inScope, JsObject inObject,
    41.7 -            Identifier name, OffsetRange offsetRange, String sourceLabel) {
    41.8 -        super(inObject, name, offsetRange, sourceLabel);
    41.9 +            Identifier name, OffsetRange offsetRange, String mimeType, String sourceLabel) {
   41.10 +        super(inObject, name, offsetRange, mimeType, sourceLabel);
   41.11          this.parentScope = inScope;
   41.12          this.childrenScopes = new ArrayList<DeclarationScope>();
   41.13      }
    42.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/JsElementImpl.java	Fri Jun 07 15:44:19 2013 +0200
    42.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/JsElementImpl.java	Sat Jun 08 07:16:57 2013 +0200
    42.3 @@ -41,9 +41,9 @@
    42.4   */
    42.5  package org.netbeans.modules.javascript2.editor.model.impl;
    42.6  
    42.7 -import java.util.Collections;
    42.8  import java.util.Set;
    42.9  import org.netbeans.api.annotations.common.CheckForNull;
   42.10 +import org.netbeans.api.annotations.common.NullAllowed;
   42.11  import org.netbeans.modules.csl.api.ElementHandle;
   42.12  import org.netbeans.modules.csl.api.ElementKind;
   42.13  import org.netbeans.modules.csl.api.Modifier;
   42.14 @@ -74,31 +74,32 @@
   42.15   */
   42.16  public abstract class JsElementImpl implements JsElement {
   42.17  
   42.18 +    private FileObject fileObject;
   42.19 +
   42.20      private final String name;
   42.21  
   42.22 +    private boolean isDeclared;
   42.23 +
   42.24      private final OffsetRange offsetRange;
   42.25  
   42.26      private final Set<Modifier> modifiers;
   42.27  
   42.28 +    private final String mimeType;
   42.29 +
   42.30      private final String sourceLabel;
   42.31  
   42.32 -    private FileObject fileObject;
   42.33 -
   42.34 -    private boolean isDeclared;
   42.35 -
   42.36      public JsElementImpl(FileObject fileObject, String name, boolean isDeclared,
   42.37 -            OffsetRange offsetRange, Set<Modifier> modifiers, String sourceLabel) {
   42.38 +            OffsetRange offsetRange, Set<Modifier> modifiers,
   42.39 +            @NullAllowed String mimeType, @NullAllowed String sourceLabel) {
   42.40          this.fileObject = fileObject;
   42.41          this.name = name;
   42.42          this.offsetRange = offsetRange;
   42.43          this.modifiers = modifiers;
   42.44          this.isDeclared = isDeclared;
   42.45 +        assert mimeType == null || JsTokenId.JAVASCRIPT_MIME_TYPE.equals(mimeType) || JsTokenId.JSON_MIME_TYPE.equals(mimeType) : mimeType;
   42.46 +        this.mimeType = mimeType;
   42.47          this.sourceLabel = sourceLabel;
   42.48      }
   42.49 -    
   42.50 -    public JsElementImpl(FileObject fileObject, String name, boolean isDeclared, OffsetRange offsetRange) {
   42.51 -        this(fileObject, name, isDeclared, offsetRange, Collections.<Modifier>emptySet(), null);
   42.52 -    }
   42.53             
   42.54      @Override
   42.55      public ElementKind getKind() {
   42.56 @@ -116,6 +117,9 @@
   42.57  
   42.58      @Override
   42.59      public String getMimeType() {
   42.60 +        if (mimeType != null) {
   42.61 +            return mimeType;
   42.62 +        }
   42.63          return JsTokenId.JAVASCRIPT_MIME_TYPE;
   42.64      }
   42.65  
    43.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/JsFunctionImpl.java	Fri Jun 07 15:44:19 2013 +0200
    43.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/JsFunctionImpl.java	Sat Jun 08 07:16:57 2013 +0200
    43.3 @@ -60,12 +60,12 @@
    43.4      private boolean isAnonymous;
    43.5  
    43.6      public JsFunctionImpl(DeclarationScope scope, JsObject parentObject, Identifier name,
    43.7 -            List<Identifier> parameters, OffsetRange offsetRange, String sourceLabel) {
    43.8 -        super(scope, parentObject, name, offsetRange, sourceLabel);
    43.9 +            List<Identifier> parameters, OffsetRange offsetRange, String mimeType, String sourceLabel) {
   43.10 +        super(scope, parentObject, name, offsetRange, mimeType, sourceLabel);
   43.11          this.parametersByName = new HashMap<String, JsObject>(parameters.size());
   43.12          this.parameters = new ArrayList<JsObject>(parameters.size());
   43.13          for (Identifier identifier : parameters) {
   43.14 -            JsObject parameter = new ParameterObject(this, identifier, sourceLabel);
   43.15 +            JsObject parameter = new ParameterObject(this, identifier, mimeType, sourceLabel);
   43.16              addParameter(parameter);
   43.17          }
   43.18          this.isAnonymous = false;
   43.19 @@ -75,32 +75,28 @@
   43.20              // creating arguments variable
   43.21              JsObjectImpl arguments = new JsObjectImpl(this, 
   43.22                      new IdentifierImpl(ModelUtils.ARGUMENTS, new OffsetRange(name.getOffsetRange().getStart(), name.getOffsetRange().getStart())), 
   43.23 -                    name.getOffsetRange(),  false, EnumSet.of(Modifier.PRIVATE));
   43.24 +                    name.getOffsetRange(),  false, EnumSet.of(Modifier.PRIVATE), mimeType, sourceLabel);
   43.25              arguments.addAssignment(new TypeUsageImpl("Arguments", getOffset(), true), getOffset());    // NOI18N
   43.26              this.addProperty(arguments.getName(), arguments);
   43.27          }
   43.28      }
   43.29  
   43.30 -    public JsFunctionImpl(DeclarationScope scope, JsObject parentObject, Identifier name,
   43.31 -            List<Identifier> parameters, OffsetRange offsetRange) {
   43.32 -        this(scope, parentObject, name, parameters, offsetRange, null);
   43.33 -    }
   43.34 -
   43.35 -    protected JsFunctionImpl(FileObject file, JsObject parentObject, Identifier name, List<Identifier> parameters) {
   43.36 -        this(null, parentObject, name, parameters, name.getOffsetRange(), null);
   43.37 +    protected JsFunctionImpl(FileObject file, JsObject parentObject, Identifier name,
   43.38 +            List<Identifier> parameters, String mimeType, String sourceLabel) {
   43.39 +        this(null, parentObject, name, parameters, name.getOffsetRange(), mimeType, sourceLabel);
   43.40          this.setFileObject(file);
   43.41          this.setDeclared(false);
   43.42      }
   43.43  
   43.44 -    private JsFunctionImpl(FileObject file, Identifier name) {
   43.45 -        this(null, null, name, Collections.EMPTY_LIST, name.getOffsetRange(), null);
   43.46 +    private JsFunctionImpl(FileObject file, Identifier name, String mimeType, String sourceLabel) {
   43.47 +        this(null, null, name, Collections.EMPTY_LIST, name.getOffsetRange(), mimeType, sourceLabel);
   43.48          this.setFileObject(file);
   43.49      }
   43.50      
   43.51 -    public static JsFunctionImpl createGlobal(FileObject fileObject, int length) {
   43.52 +    public static JsFunctionImpl createGlobal(FileObject fileObject, int length, String mimeType) {
   43.53          String name = fileObject != null ? fileObject.getName() : "VirtualSource"; //NOI18N
   43.54          Identifier ident = new IdentifierImpl(name, new OffsetRange(0, length));
   43.55 -        return new JsFunctionImpl(fileObject, ident);
   43.56 +        return new JsFunctionImpl(fileObject, ident, mimeType, null);
   43.57      }
   43.58      
   43.59      @Override
    44.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/JsObjectImpl.java	Fri Jun 07 15:44:19 2013 +0200
    44.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/JsObjectImpl.java	Sat Jun 08 07:16:57 2013 +0200
    44.3 @@ -62,36 +62,35 @@
    44.4      private String documentation;
    44.5      protected JsElement.Kind kind;
    44.6      
    44.7 -    public JsObjectImpl(JsObject parent, Identifier name, OffsetRange offsetRange, String sourceLabel) {
    44.8 +    public JsObjectImpl(JsObject parent, Identifier name, OffsetRange offsetRange,
    44.9 +            String mimeType, String sourceLabel) {
   44.10          super((parent != null ? parent.getFileObject() : null), name.getName(),
   44.11 -                ModelUtils.PROTOTYPE.equals(name.getName()),  offsetRange, EnumSet.of(Modifier.PUBLIC), sourceLabel);
   44.12 +                ModelUtils.PROTOTYPE.equals(name.getName()),  offsetRange, EnumSet.of(Modifier.PUBLIC), mimeType, sourceLabel);
   44.13          this.declarationName = name;
   44.14          this.parent = parent;
   44.15          this.hasName = name.getOffsetRange().getStart() != name.getOffsetRange().getEnd();
   44.16          this.kind = null;
   44.17      }
   44.18      
   44.19 -    public JsObjectImpl(JsObject parent, Identifier name, OffsetRange offsetRange, boolean isDeclared, Set<Modifier> modifiers) {
   44.20 +    public JsObjectImpl(JsObject parent, Identifier name, OffsetRange offsetRange,
   44.21 +            boolean isDeclared, Set<Modifier> modifiers, String mimeType, String sourceLabel) {
   44.22          super((parent != null ? parent.getFileObject() : null), name.getName(),
   44.23 -                isDeclared,  offsetRange, modifiers, null);
   44.24 +                isDeclared,  offsetRange, modifiers, mimeType, sourceLabel);
   44.25          this.declarationName = name;
   44.26          this.parent = parent;
   44.27          this.hasName = name.getOffsetRange().getStart() != name.getOffsetRange().getEnd();
   44.28          this.kind = null;
   44.29      }
   44.30  
   44.31 -    public JsObjectImpl(JsObject parent, Identifier name, OffsetRange offsetRange) {
   44.32 -        this(parent, name, offsetRange, null);
   44.33 -    }
   44.34 -
   44.35 -    public JsObjectImpl(JsObject parent, Identifier name, OffsetRange offsetRange, boolean isDeclared) {
   44.36 -        this(parent, name, offsetRange, isDeclared, EnumSet.of(Modifier.PUBLIC));
   44.37 +    public JsObjectImpl(JsObject parent, Identifier name, OffsetRange offsetRange,
   44.38 +            boolean isDeclared, String mimeType, String sourceLabel) {
   44.39 +        this(parent, name, offsetRange, isDeclared, EnumSet.of(Modifier.PUBLIC), mimeType, sourceLabel);
   44.40      }
   44.41    
   44.42      protected JsObjectImpl(JsObject parent, String name, boolean isDeclared,
   44.43 -            OffsetRange offsetRange, Set<Modifier> modifiers, String sourceLabel) {
   44.44 +            OffsetRange offsetRange, Set<Modifier> modifiers, String mimeType, String sourceLabel) {
   44.45          super((parent != null ? parent.getFileObject() : null), name, isDeclared,
   44.46 -                offsetRange, modifiers, sourceLabel);
   44.47 +                offsetRange, modifiers, mimeType, sourceLabel);
   44.48          this.declarationName = null;
   44.49          this.parent = parent;
   44.50          this.hasName = false;
   44.51 @@ -410,7 +409,8 @@
   44.52                      JsObject originalObject = ModelUtils.findJsObjectByName(global, originalType.getType());
   44.53                      if (originalObject != null) {
   44.54                          // move all properties to the original type.
   44.55 -                        JsObject newObject = new JsObjectImpl(this.parent, this.declarationName, this.getOffsetRange(), this.isDeclared(), this.getModifiers());
   44.56 +                        JsObject newObject = new JsObjectImpl(this.parent, this.declarationName,
   44.57 +                                this.getOffsetRange(), this.isDeclared(), this.getModifiers(), this.getMimeType(), this.getSourceLabel());
   44.58                          parent.addProperty(this.getName(), newObject);
   44.59                          for (JsObject property : this.properties.values()) {
   44.60                              if (property.isDeclared()) {
    45.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/JsObjectReference.java	Fri Jun 07 15:44:19 2013 +0200
    45.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/JsObjectReference.java	Sat Jun 08 07:16:57 2013 +0200
    45.3 @@ -45,6 +45,7 @@
    45.4  import java.util.EnumSet;
    45.5  import java.util.Map;
    45.6  import java.util.Set;
    45.7 +import org.netbeans.api.annotations.common.NonNull;
    45.8  import org.netbeans.modules.csl.api.ElementKind;
    45.9  import org.netbeans.modules.csl.api.Modifier;
   45.10  import org.netbeans.modules.javascript2.editor.doc.spi.JsDocumentationHolder;
   45.11 @@ -64,10 +65,9 @@
   45.12      private final Set<Modifier> modifiers;
   45.13  
   45.14      public JsObjectReference(JsObject parent, Identifier declarationName,
   45.15 -            JsObject original, boolean isDeclared, Set<Modifier> modifiers) {
   45.16 +            @NonNull JsObject original, boolean isDeclared, Set<Modifier> modifiers) {
   45.17          super(parent, declarationName, declarationName.getOffsetRange(), isDeclared,
   45.18 -                modifiers == null ? EnumSet.noneOf(Modifier.class) : modifiers);
   45.19 -        assert original != null;
   45.20 +                modifiers == null ? EnumSet.noneOf(Modifier.class) : modifiers, original.getMimeType(), original.getSourceLabel());
   45.21          this.original = original;
   45.22          this.modifiers = modifiers;
   45.23      }
    46.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/ModelElementFactory.java	Fri Jun 07 15:44:19 2013 +0200
    46.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/ModelElementFactory.java	Sat Jun 08 07:16:57 2013 +0200
    46.3 @@ -99,13 +99,15 @@
    46.4              List<Identifier> objectName = fqName.subList(0, fqName.size() - 1);
    46.5              parentObject = isAnnonymous ? globalObject : ModelUtils.getJsObject(modelBuilder, objectName, false);
    46.6              result = new JsFunctionImpl(modelBuilder.getCurrentDeclarationFunction(), 
    46.7 -                    parentObject, fqName.get(fqName.size() - 1), parameters, new OffsetRange(start, end));
    46.8 +                    parentObject, fqName.get(fqName.size() - 1), parameters,
    46.9 +                    new OffsetRange(start, end), parserResult.getSnapshot().getMimeType(), null);
   46.10              if (parentObject instanceof JsFunction && !ModelUtils.PROTOTYPE.equals(parentObject.getName())) {
   46.11                  result.addModifier(Modifier.STATIC);
   46.12              } 
   46.13          } else {
   46.14              result = new JsFunctionImpl(modelBuilder.getCurrentDeclarationFunction(),
   46.15 -                    parentObject, fqName.get(fqName.size() - 1), parameters, new OffsetRange(start, end));
   46.16 +                    parentObject, fqName.get(fqName.size() - 1), parameters,
   46.17 +                    new OffsetRange(start, end), parserResult.getSnapshot().getMimeType(), null);
   46.18          }
   46.19          String propertyName = result.getDeclarationName().getName();
   46.20          if (parentObject == null) {
   46.21 @@ -138,7 +140,8 @@
   46.22                  params.add(new IdentifierImpl("param" + (i + 1), OffsetRange.NONE));
   46.23              }
   46.24          }
   46.25 -        JsFunctionImpl virtual = new JsFunctionImpl(parserResult.getSnapshot().getSource().getFileObject(), parentObject, name, params);
   46.26 +        JsFunctionImpl virtual = new JsFunctionImpl(parserResult.getSnapshot().getSource().getFileObject(),
   46.27 +                parentObject, name, params, parserResult.getSnapshot().getMimeType(), null);
   46.28          if (virtual.hasExactName()) {
   46.29              virtual.addOccurrence(name.getOffsetRange());
   46.30          }
   46.31 @@ -173,7 +176,8 @@
   46.32              parent = ModelUtils.getJsObject(modelBuilder, objectName, false);
   46.33          }
   46.34          result = parent.getProperty(name.getName());
   46.35 -        newObject = new JsObjectImpl(parent, name, new OffsetRange(objectNode.getStart(), objectNode.getFinish()));
   46.36 +        newObject = new JsObjectImpl(parent, name, new OffsetRange(objectNode.getStart(), objectNode.getFinish()),
   46.37 +                parserResult.getSnapshot().getMimeType(), null);
   46.38          newObject.setDeclared(true);
   46.39          if (result != null) {
   46.40              // the object already exist due a definition of a property => needs to be copied
   46.41 @@ -197,7 +201,7 @@
   46.42      static JsObjectImpl createAnonymousObject(JsParserResult parserResult, ObjectNode objectNode, ModelBuilder modelBuilder) {
   46.43          String name = modelBuilder.getUnigueNameForAnonymObject();
   46.44          JsObjectImpl result = new AnonymousObject(modelBuilder.getCurrentDeclarationFunction(),
   46.45 -                    name, new OffsetRange(objectNode.getStart(), objectNode.getFinish()), null);
   46.46 +                    name, new OffsetRange(objectNode.getStart(), objectNode.getFinish()), parserResult.getSnapshot().getMimeType(), null);
   46.47          modelBuilder.getCurrentDeclarationFunction().addProperty(name, result);
   46.48          JsDocumentationHolder docHolder = parserResult.getDocumentationHolder();
   46.49          if (docHolder != null) {
   46.50 @@ -213,7 +217,7 @@
   46.51              return null;
   46.52          }
   46.53          JsObjectImpl scope = modelBuilder.getCurrentObject();
   46.54 -        JsObjectImpl property = new JsObjectImpl(scope, name, name.getOffsetRange());
   46.55 +        JsObjectImpl property = new JsObjectImpl(scope, name, name.getOffsetRange(), parserResult.getSnapshot().getMimeType(), null);
   46.56          JsDocumentationHolder docHolder = parserResult.getDocumentationHolder();
   46.57          property.setDocumentation(docHolder.getDocumentation(propertyNode));
   46.58          property.setDeprecated(docHolder.isDeprecated(propertyNode));
    47.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/ModelUtils.java	Fri Jun 07 15:44:19 2013 +0200
    47.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/ModelUtils.java	Sat Jun 08 07:16:57 2013 +0200
    47.3 @@ -136,7 +136,8 @@
    47.4              Identifier name = fqName.get(index);
    47.5              result = tmpObject.getProperty(name.getName());
    47.6              if (result == null) {
    47.7 -                result = new JsObjectImpl(tmpObject, name, name.getOffsetRange(), (index < (fqName.size() - 1)) ? false : isLHS );
    47.8 +                result = new JsObjectImpl(tmpObject, name, name.getOffsetRange(),
    47.9 +                        (index < (fqName.size() - 1)) ? false : isLHS, tmpObject.getMimeType(), tmpObject.getSourceLabel());
   47.10                  tmpObject.addProperty(name.getName(), result);
   47.11              }
   47.12              tmpObject = result;
    48.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/ModelVisitor.java	Fri Jun 07 15:44:19 2013 +0200
    48.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/ModelVisitor.java	Sat Jun 08 07:16:57 2013 +0200
    48.3 @@ -113,7 +113,8 @@
    48.4  
    48.5      public ModelVisitor(JsParserResult parserResult) {
    48.6          FileObject fileObject = parserResult.getSnapshot().getSource().getFileObject();
    48.7 -        this.modelBuilder = new ModelBuilder(JsFunctionImpl.createGlobal(fileObject, Integer.MAX_VALUE));
    48.8 +        this.modelBuilder = new ModelBuilder(JsFunctionImpl.createGlobal(
    48.9 +                fileObject, Integer.MAX_VALUE, parserResult.getSnapshot().getMimeType()));
   48.10          this.functionStack = new ArrayList<List<FunctionNode>>();
   48.11          this.parserResult = parserResult;
   48.12      }
   48.13 @@ -218,11 +219,11 @@
   48.14                              property = ModelElementFactory.createVirtualFunction(parserResult, fromAN, name, cNode.getArgs().size());
   48.15                              //property.addOccurrence(name.getOffsetRange());
   48.16                          } else {
   48.17 -                            property = new JsObjectImpl(fromAN, name, name.getOffsetRange(), onLeftSite);
   48.18 +                            property = new JsObjectImpl(fromAN, name, name.getOffsetRange(), onLeftSite, parserResult.getSnapshot().getMimeType(), null);
   48.19                              property.addOccurrence(name.getOffsetRange());
   48.20                          }
   48.21                      } else {
   48.22 -                        property = new JsObjectImpl(fromAN, name, name.getOffsetRange(), onLeftSite);
   48.23 +                        property = new JsObjectImpl(fromAN, name, name.getOffsetRange(), onLeftSite, parserResult.getSnapshot().getMimeType(), null);
   48.24                          property.addOccurrence(name.getOffsetRange());
   48.25                      }
   48.26                      fromAN.addProperty(name.getName(), property);
   48.27 @@ -271,7 +272,7 @@
   48.28                      if(property == null) {
   48.29                          Identifier identifier = ModelElementFactory.create(parserResult, (IdentNode)aNode.getProperty());
   48.30                          if (identifier != null) {
   48.31 -                            property = new JsObjectImpl(parent, identifier, identifier.getOffsetRange(), true);
   48.32 +                            property = new JsObjectImpl(parent, identifier, identifier.getOffsetRange(), true, parserResult.getSnapshot().getMimeType(), null);
   48.33                              parent.addProperty(fieldName, property);
   48.34                              JsDocumentationHolder docHolder = parserResult.getDocumentationHolder();
   48.35                              if (docHolder != null) {
   48.36 @@ -344,7 +345,8 @@
   48.37                          }
   48.38                          if (jsObject == null) {
   48.39                              // the object with the name wasn't find yet -> create in global scope
   48.40 -                            jsObject = new JsObjectImpl(model.getGlobalObject(), name, name.getOffsetRange(), false);
   48.41 +                            jsObject = new JsObjectImpl(model.getGlobalObject(), name,
   48.42 +                                    name.getOffsetRange(), false, parserResult.getSnapshot().getMimeType(), null);
   48.43                          }
   48.44                      }
   48.45  
   48.46 @@ -495,7 +497,7 @@
   48.47          if (exception != null) {
   48.48              DeclarationScopeImpl inScope = modelBuilder.getCurrentDeclarationScope();
   48.49              CatchBlockImpl catchBlock  = new CatchBlockImpl(inScope, exception,
   48.50 -                    new OffsetRange(catchNode.getStart(), catchNode.getFinish()));
   48.51 +                    new OffsetRange(catchNode.getStart(), catchNode.getFinish()), parserResult.getSnapshot().getMimeType());
   48.52              inScope.addDeclaredScope(catchBlock);
   48.53              modelBuilder.setCurrentObject(catchBlock);
   48.54          }
   48.55 @@ -569,7 +571,7 @@
   48.56                          property.addOccurrence(new OffsetRange(indexNode.getIndex().getStart(), indexNode.getIndex().getFinish()));
   48.57                      } else {
   48.58                          Identifier name = ModelElementFactory.create(parserResult, (LiteralNode)indexNode.getIndex());
   48.59 -                        property = new JsObjectImpl(parent, name, name.getOffsetRange());
   48.60 +                        property = new JsObjectImpl(parent, name, name.getOffsetRange(), parserResult.getSnapshot().getMimeType(), null);
   48.61                          parent.addProperty(name.getName(), property);
   48.62                      }
   48.63                  }
   48.64 @@ -682,7 +684,7 @@
   48.65              Identifier varName = new IdentifierImpl(varNode.getName().getName(), new OffsetRange(varNode.getName().getStart(), varNode.getName().getFinish()));
   48.66              OffsetRange range = varNode.getInit() instanceof ObjectNode ? new OffsetRange(varNode.getName().getStart(), ((ObjectNode)varNode.getInit()).getFinish()) 
   48.67                      : varName.getOffsetRange();
   48.68 -            JsObjectImpl variable = new JsObjectImpl(fncScope, varName, range);
   48.69 +            JsObjectImpl variable = new JsObjectImpl(fncScope, varName, range, parserResult.getSnapshot().getMimeType(), null);
   48.70              variable.setDeclared(true);
   48.71              if (functionNode.getKind() != FunctionNode.Kind.SCRIPT) {
   48.72                  // here are the variables allways private
   48.73 @@ -1043,7 +1045,8 @@
   48.74                      // variable si not defined, so it has to be from global scope
   48.75                      // or from a code structure like for cycle
   48.76  
   48.77 -                    variable = new JsObjectImpl(parent, name, name.getOffsetRange(), true);
   48.78 +                    variable = new JsObjectImpl(parent, name, name.getOffsetRange(),
   48.79 +                            true, parserResult.getSnapshot().getMimeType(), null);
   48.80                      if (parent.getJSKind() != JsElement.Kind.FILE) {
   48.81                          variable.getModifiers().remove(Modifier.PUBLIC);
   48.82                          variable.getModifiers().add(Modifier.PRIVATE);
   48.83 @@ -1053,7 +1056,8 @@
   48.84                  } else if (!variable.isDeclared()){
   48.85                      // the variable was probably created as temporary before, now we
   48.86                      // need to replace it with the real one
   48.87 -                    JsObjectImpl newVariable = new JsObjectImpl(parent, name, name.getOffsetRange(), true);
   48.88 +                    JsObjectImpl newVariable = new JsObjectImpl(parent, name, name.getOffsetRange(),
   48.89 +                            true, parserResult.getSnapshot().getMimeType(), null);
   48.90                      newVariable.addOccurrence(name.getOffsetRange());
   48.91                      for(String propertyName: variable.getProperties().keySet()) {
   48.92                          JsObject property = variable.getProperty(propertyName);
   48.93 @@ -1371,10 +1375,12 @@
   48.94              if (name != null) {
   48.95                  JsObjectImpl newObject;
   48.96                  if (!isFunction) {
   48.97 -                    newObject = new JsObjectImpl(modelBuilder.getGlobal(), name, name.getOffsetRange(), leftSite);
   48.98 +                    newObject = new JsObjectImpl(modelBuilder.getGlobal(), name, name.getOffsetRange(),
   48.99 +                            leftSite, parserResult.getSnapshot().getMimeType(), null);
  48.100                  } else {
  48.101                      FileObject fo = parserResult.getSnapshot().getSource().getFileObject();
  48.102 -                    newObject = new JsFunctionImpl(fo, modelBuilder.getGlobal(), name, Collections.EMPTY_LIST);
  48.103 +                    newObject = new JsFunctionImpl(fo, modelBuilder.getGlobal(), name, Collections.EMPTY_LIST,
  48.104 +                            parserResult.getSnapshot().getMimeType(), null);
  48.105                  }
  48.106                  newObject.addOccurrence(name.getOffsetRange());
  48.107                  modelBuilder.getGlobal().addProperty(name.getName(), newObject);
    49.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/ParameterObject.java	Fri Jun 07 15:44:19 2013 +0200
    49.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/model/impl/ParameterObject.java	Sat Jun 08 07:16:57 2013 +0200
    49.3 @@ -64,8 +64,8 @@
    49.4   */
    49.5  public class ParameterObject extends JsObjectImpl {
    49.6  
    49.7 -    public ParameterObject(JsObject parent, Identifier name, String sourceLabel) {
    49.8 -        super(parent, name, name.getOffsetRange(), sourceLabel);
    49.9 +    public ParameterObject(JsObject parent, Identifier name, String mimeType, String sourceLabel) {
   49.10 +        super(parent, name, name.getOffsetRange(), mimeType, sourceLabel);
   49.11          if (hasExactName()) {
   49.12              addOccurrence(name.getOffsetRange());
   49.13          }
    50.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/navigation/DeclarationFinderImpl.java	Fri Jun 07 15:44:19 2013 +0200
    50.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/navigation/DeclarationFinderImpl.java	Sat Jun 08 07:16:57 2013 +0200
    50.3 @@ -46,6 +46,7 @@
    50.4  import java.util.Collection;
    50.5  import java.util.List;
    50.6  import javax.swing.text.Document;
    50.7 +import org.netbeans.api.lexer.Language;
    50.8  import org.netbeans.api.lexer.TokenSequence;
    50.9  import org.netbeans.modules.csl.api.DeclarationFinder;
   50.10  import org.netbeans.modules.csl.api.ElementHandle;
   50.11 @@ -75,6 +76,12 @@
   50.12   */
   50.13  public class DeclarationFinderImpl implements DeclarationFinder {
   50.14  
   50.15 +    private final Language<JsTokenId> language;
   50.16 +
   50.17 +    public DeclarationFinderImpl(Language<JsTokenId> language) {
   50.18 +        this.language = language;
   50.19 +    }
   50.20 +
   50.21      @Override
   50.22      public DeclarationLocation findDeclaration(ParserResult info, int caretOffset) {
   50.23          JsParserResult jsResult = (JsParserResult)info;
   50.24 @@ -117,7 +124,7 @@
   50.25                      }
   50.26                  } 
   50.27              } else {  
   50.28 -                TokenSequence ts = LexUtilities.getJsTokenSequence(snapshot, caretOffset);
   50.29 +                TokenSequence ts = LexUtilities.getTokenSequence(snapshot, caretOffset, language);
   50.30                  if (ts != null) {
   50.31                      ts.move(offset);
   50.32                      if (ts.moveNext() && ts.token().id() == JsTokenId.IDENTIFIER) {
   50.33 @@ -166,7 +173,7 @@
   50.34      @Override
   50.35      public OffsetRange getReferenceSpan(Document doc, int caretOffset) {
   50.36          OffsetRange result;
   50.37 -        TokenSequence<? extends JsTokenId> ts = LexUtilities.getJsTokenSequence(doc, caretOffset);
   50.38 +        TokenSequence<? extends JsTokenId> ts = LexUtilities.getTokenSequence(doc, caretOffset, language);
   50.39          if (ts != null) {
   50.40              ts.move(caretOffset);
   50.41              if (ts.moveNext() && ts.token().id() == JsTokenId.IDENTIFIER) {
    51.1 --- a/javascript2.editor/src/org/netbeans/modules/javascript2/editor/spi/model/ModelElementFactory.java	Fri Jun 07 15:44:19 2013 +0200
    51.2 +++ b/javascript2.editor/src/org/netbeans/modules/javascript2/editor/spi/model/ModelElementFactory.java	Sat Jun 08 07:16:57 2013 +0200
    51.3 @@ -94,7 +94,7 @@
    51.4      }
    51.5  
    51.6      public JsFunction newGlobalObject(FileObject fileObject, int length) {
    51.7 -        return JsFunctionImpl.createGlobal(fileObject, length);
    51.8 +        return JsFunctionImpl.createGlobal(fileObject, length, null);
    51.9      }
   51.10  
   51.11      public JsObject loadGlobalObject(FileObject fileObject, int length, String sourceLabel) throws IOException {
   51.12 @@ -140,7 +140,7 @@
   51.13      
   51.14      public JsObject newObject(JsObject parent, String name, OffsetRange offsetRange,
   51.15              boolean isDeclared) {
   51.16 -        return new JsObjectImpl(parent, new IdentifierImpl(name, offsetRange), offsetRange, isDeclared);
   51.17 +        return new JsObjectImpl(parent, new IdentifierImpl(name, offsetRange), offsetRange, isDeclared, null, null);
   51.18      }
   51.19  
   51.20      public JsFunction newFunction(DeclarationScope scope, JsObject parent, String name, Collection<String> params) {
   51.21 @@ -148,7 +148,8 @@
   51.22          for (String param : params) {
   51.23              realParams.add(new IdentifierImpl(param, OffsetRange.NONE));
   51.24          }
   51.25 -        return new JsFunctionImpl(scope, parent, new IdentifierImpl(name, OffsetRange.NONE), realParams, OffsetRange.NONE);
   51.26 +        return new JsFunctionImpl(scope, parent, new IdentifierImpl(name, OffsetRange.NONE),
   51.27 +                realParams, OffsetRange.NONE, null, null);
   51.28      }
   51.29  
   51.30      public JsObject newReference(JsObject parent, String name, OffsetRange offsetRange,
    52.1 --- a/javascript2.knockout/test/unit/src/org/netbeans/modules/javascript2/knockout/model/KnockoutModelTest.java	Fri Jun 07 15:44:19 2013 +0200
    52.2 +++ b/javascript2.knockout/test/unit/src/org/netbeans/modules/javascript2/knockout/model/KnockoutModelTest.java	Sat Jun 08 07:16:57 2013 +0200
    52.3 @@ -121,7 +121,7 @@
    52.4                          }
    52.5  
    52.6                          JsFunction function = new JsFunctionImpl(func, fn,
    52.7 -                                new IdentifierImpl(elem.getName(), OffsetRange.NONE), params, OffsetRange.NONE);
    52.8 +                                new IdentifierImpl(elem.getName(), OffsetRange.NONE), params, OffsetRange.NONE, null, null);
    52.9                          fn.addProperty(elem.getName(), function);
   52.10                          result.addProperty(elem.getName(),
   52.11                                  new JsFunctionReference(result, new IdentifierImpl(elem.getName(), OffsetRange.NONE),
    53.1 --- a/kenai.ui/src/org/netbeans/modules/kenai/ui/dashboard/MyProjectNode.java	Fri Jun 07 15:44:19 2013 +0200
    53.2 +++ b/kenai.ui/src/org/netbeans/modules/kenai/ui/dashboard/MyProjectNode.java	Sat Jun 08 07:16:57 2013 +0200
    53.3 @@ -246,8 +246,9 @@
    53.4                  
    53.5                  int idxX = 6;
    53.6                  if(canBookmark) {
    53.7 -                    btnBookmark = new LinkButton(ImageUtilities.loadImageIcon(
    53.8 -                            "org/netbeans/modules/team/ui/resources/" + (isMemberProject?"bookmark.png":"unbookmark.png"), true), accessor.getBookmarkAction(project)); //NOI18N
    53.9 +                    ImageIcon bookmarkImage = ImageUtilities.loadImageIcon(
   53.10 +                               "org/netbeans/modules/team/ui/resources/" + (isMemberProject?"bookmark.png":"unbookmark.png"), true);
   53.11 +                    btnBookmark = new LinkButton(bookmarkImage, accessor.getBookmarkAction(project)); //NOI18N
   53.12                      btnBookmark.setRolloverEnabled(true);
   53.13                      component.add( btnBookmark, new GridBagConstraints(idxX++,0,1,1,0.0,0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0,3,0,0), 0,0) );
   53.14                      if(canOpen) {
   53.15 @@ -255,8 +256,13 @@
   53.16                          component.add( myPrjLabel, new GridBagConstraints(idxX++,0,1,1,0.0,0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0,3,0,0), 0,0) );                    
   53.17                      }
   53.18                      if(closeAction == null) {
   53.19 +                        JLabel l = new JLabel();
   53.20 +                        Dimension d = new Dimension(bookmarkImage.getIconWidth(), bookmarkImage.getIconHeight());
   53.21 +                        l.setMinimumSize(d);
   53.22 +                        l.setMaximumSize(d);
   53.23 +                        l.setPreferredSize(d);
   53.24                          // placeholder for missing present close 
   53.25 -                        component.add( new JLabel(), new GridBagConstraints(idxX++,0,1,1,0.0,0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(0,3,0,0), 0,0) );
   53.26 +                        component.add( l, new GridBagConstraints(idxX++,0,1,1,0.0,0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(0,3,0,0), 0,0) );
   53.27                      }                    
   53.28                  } 
   53.29                  
    54.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    54.2 +++ b/libs.jna.platform/build.xml	Sat Jun 08 07:16:57 2013 +0200
    54.3 @@ -0,0 +1,48 @@
    54.4 +<?xml version="1.0" encoding="UTF-8"?>
    54.5 +<!--
    54.6 +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    54.7 +
    54.8 +Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
    54.9 +
   54.10 +Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   54.11 +Other names may be trademarks of their respective owners.
   54.12 +
   54.13 +
   54.14 +The contents of this file are subject to the terms of either the GNU
   54.15 +General Public License Version 2 only ("GPL") or the Common
   54.16 +Development and Distribution License("CDDL") (collectively, the
   54.17 +"License"). You may not use this file except in compliance with the
   54.18 +License. You can obtain a copy of the License at
   54.19 +http://www.netbeans.org/cddl-gplv2.html
   54.20 +or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   54.21 +specific language governing permissions and limitations under the
   54.22 +License.  When distributing the software, include this License Header
   54.23 +Notice in each file and include the License file at
   54.24 +nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   54.25 +particular file as subject to the "Classpath" exception as provided
   54.26 +by Oracle in the GPL Version 2 section of the License file that
   54.27 +accompanied this code. If applicable, add the following below the
   54.28 +License Header, with the fields enclosed by brackets [] replaced by
   54.29 +your own identifying information:
   54.30 +"Portions Copyrighted [year] [name of copyright owner]"
   54.31 +
   54.32 +Contributor(s):
   54.33 +
   54.34 +The Original Software is NetBeans. The Initial Developer of the Original
   54.35 +Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
   54.36 +Microsystems, Inc. All Rights Reserved.
   54.37 +
   54.38 +If you wish your version of this file to be governed by only the CDDL
   54.39 +or only the GPL Version 2, indicate your decision by adding
   54.40 +"[Contributor] elects to include this software in this distribution
   54.41 +under the [CDDL or GPL Version 2] license." If you do not indicate a
   54.42 +single choice of license, a recipient has the option to distribute
   54.43 +your version of this file under either the CDDL, the GPL Version 2 or
   54.44 +to extend the choice of license to its licensees as provided above.
   54.45 +However, if you add GPL Version 2 code and therefore, elected the GPL
   54.46 +Version 2 license, then the option applies only if the new code is
   54.47 +made subject to such option by the copyright holder.
   54.48 +-->
   54.49 +<project name="libs.jna.platform" default="netbeans" basedir=".">
   54.50 +    <import file="../nbbuild/templates/projectized.xml"/>
   54.51 +</project>
    55.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    55.2 +++ b/libs.jna.platform/external/binaries-list	Sat Jun 08 07:16:57 2013 +0200
    55.3 @@ -0,0 +1,1 @@
    55.4 +4B58AF397FD3156D700AD5016BCDD307A7A62EF5 platform-3.4.0.jar
    56.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    56.2 +++ b/libs.jna.platform/external/platform-3.4.0-license.txt	Sat Jun 08 07:16:57 2013 +0200
    56.3 @@ -0,0 +1,510 @@
    56.4 +Name: Java Native Access
    56.5 +Version: 3.4.0
    56.6 +License: LGPL-2.1
    56.7 +OSR: 7755
    56.8 +Description: Dynamically access native libraries from Java without JNI.
    56.9 +
   56.10 +
   56.11 +		  GNU LESSER GENERAL PUBLIC LICENSE
   56.12 +		       Version 2.1, February 1999
   56.13 +
   56.14 + Copyright (C) 1991, 1999 Free Software Foundation, Inc.
   56.15 + 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
   56.16 + Everyone is permitted to copy and distribute verbatim copies
   56.17 + of this license document, but changing it is not allowed.
   56.18 +
   56.19 +[This is the first released version of the Lesser GPL.  It also counts
   56.20 + as the successor of the GNU Library Public License, version 2, hence
   56.21 + the version number 2.1.]
   56.22 +
   56.23 +			    Preamble
   56.24 +
   56.25 +  The licenses for most software are designed to take away your
   56.26 +freedom to share and change it.  By contrast, the GNU General Public
   56.27 +Licenses are intended to guarantee your freedom to share and change
   56.28 +free software--to make sure the software is free for all its users.
   56.29 +
   56.30 +  This license, the Lesser General Public License, applies to some
   56.31 +specially designated software packages--typically libraries--of the
   56.32 +Free Software Foundation and other authors who decide to use it.  You
   56.33 +can use it too, but we suggest you first think carefully about whether
   56.34 +this license or the ordinary General Public License is the better
   56.35 +strategy to use in any particular case, based on the explanations below.
   56.36 +
   56.37 +  When we speak of free software, we are referring to freedom of use,
   56.38 +not price.  Our General Public Licenses are designed to make sure that
   56.39 +you have the freedom to distribute copies of free software (and charge
   56.40 +for this service if you wish); that you receive source code or can get
   56.41 +it if you want it; that you can change the software and use pieces of
   56.42 +it in new free programs; and that you are informed that you can do
   56.43 +these things.
   56.44 +
   56.45 +  To protect your rights, we need to make restrictions that forbid
   56.46 +distributors to deny you these rights or to ask you to surrender these
   56.47 +rights.  These restrictions translate to certain responsibilities for
   56.48 +you if you distribute copies of the library or if you modify it.
   56.49 +
   56.50 +  For example, if you distribute copies of the library, whether gratis
   56.51 +or for a fee, you must give the recipients all the rights that we gave
   56.52 +you.  You must make sure that they, too, receive or can get the source
   56.53 +code.  If you link other code with the library, you must provide
   56.54 +complete object files to the recipients, so that they can relink them
   56.55 +with the library after making changes to the library and recompiling
   56.56 +it.  And you must show them these terms so they know their rights.
   56.57 +
   56.58 +  We protect your rights with a two-step method: (1) we copyright the
   56.59 +library, and (2) we offer you this license, which gives you legal
   56.60 +permission to copy, distribute and/or modify the library.
   56.61 +
   56.62 +  To protect each distributor, we want to make it very clear that
   56.63 +there is no warranty for the free library.  Also, if the library is
   56.64 +modified by someone else and passed on, the recipients should know
   56.65 +that what they have is not the original version, so that the original
   56.66 +author's reputation will not be affected by problems that might be
   56.67 +introduced by others.
   56.68 +
   56.69 +  Finally, software patents pose a constant threat to the existence of
   56.70 +any free program.  We wish to make sure that a company cannot
   56.71 +effectively restrict the users of a free program by obtaining a
   56.72 +restrictive license from a patent holder.  Therefore, we insist that
   56.73 +any patent license obtained for a version of the library must be
   56.74 +consistent with the full freedom of use specified in this license.
   56.75 +
   56.76 +  Most GNU software, including some libraries, is covered by the
   56.77 +ordinary GNU General Public License.  This license, the GNU Lesser
   56.78 +General Public License, applies to certain designated libraries, and
   56.79 +is quite different from the ordinary General Public License.  We use
   56.80 +this license for certain libraries in order to permit linking those
   56.81 +libraries into non-free programs.
   56.82 +
   56.83 +  When a program is linked with a library, whether statically or using
   56.84 +a shared library, the combination of the two is legally speaking a
   56.85 +combined work, a derivative of the original library.  The ordinary
   56.86 +General Public License therefore permits such linking only if the
   56.87 +entire combination fits its criteria of freedom.  The Lesser General
   56.88 +Public License permits more lax criteria for linking other code with
   56.89 +the library.
   56.90 +
   56.91 +  We call this license the "Lesser" General Public License because it
   56.92 +does Less to protect the user's freedom than the ordinary General
   56.93 +Public License.  It also provides other free software developers Less
   56.94 +of an advantage over competing non-free programs.  These disadvantages
   56.95 +are the reason we use the ordinary General Public License for many
   56.96 +libraries.  However, the Lesser license provides advantages in certain
   56.97 +special circumstances.
   56.98 +
   56.99 +  For example, on rare occasions, there may be a special need to
  56.100 +encourage the widest possible use of a certain library, so that it becomes
  56.101 +a de-facto standard.  To achieve this, non-free programs must be
  56.102 +allowed to use the library.  A more frequent case is that a free
  56.103 +library does the same job as widely used non-free libraries.  In this
  56.104 +case, there is little to gain by limiting the free library to free
  56.105 +software only, so we use the Lesser General Public License.
  56.106 +
  56.107 +  In other cases, permission to use a particular library in non-free
  56.108 +programs enables a greater number of people to use a large body of
  56.109 +free software.  For example, permission to use the GNU C Library in
  56.110 +non-free programs enables many more people to use the whole GNU
  56.111 +operating system, as well as its variant, the GNU/Linux operating
  56.112 +system.
  56.113 +
  56.114 +  Although the Lesser General Public License is Less protective of the
  56.115 +users' freedom, it does ensure that the user of a program that is
  56.116 +linked with the Library has the freedom and the wherewithal to run
  56.117 +that program using a modified version of the Library.
  56.118 +
  56.119 +  The precise terms and conditions for copying, distribution and
  56.120 +modification follow.  Pay close attention to the difference between a
  56.121 +"work based on the library" and a "work that uses the library".  The
  56.122 +former contains code derived from the library, whereas the latter must
  56.123 +be combined with the library in order to run.
  56.124 +
  56.125 +		  GNU LESSER GENERAL PUBLIC LICENSE
  56.126 +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  56.127 +
  56.128 +  0. This License Agreement applies to any software library or other
  56.129 +program which contains a notice placed by the copyright holder or
  56.130 +other authorized party saying it may be distributed under the terms of
  56.131 +this Lesser General Public License (also called "this License").
  56.132 +Each licensee is addressed as "you".
  56.133 +
  56.134 +  A "library" means a collection of software functions and/or data
  56.135 +prepared so as to be conveniently linked with application programs
  56.136 +(which use some of those functions and data) to form executables.
  56.137 +
  56.138 +  The "Library", below, refers to any such software library or work
  56.139 +which has been distributed under these terms.  A "work based on the
  56.140 +Library" means either the Library or any derivative work under
  56.141 +copyright law: that is to say, a work containing the Library or a
  56.142 +portion of it, either verbatim or with modifications and/or translated
  56.143 +straightforwardly into another language.  (Hereinafter, translation is
  56.144 +included without limitation in the term "modification".)
  56.145 +
  56.146 +  "Source code" for a work means the preferred form of the work for
  56.147 +making modifications to it.  For a library, complete source code means
  56.148 +all the source code for all modules it contains, plus any associated
  56.149 +interface definition files, plus the scripts used to control compilation
  56.150 +and installation of the library.
  56.151 +
  56.152 +  Activities other than copying, distribution and modification are not
  56.153 +covered by this License; they are outside its scope.  The act of
  56.154 +running a program using the Library is not restricted, and output from
  56.155 +such a program is covered only if its contents constitute a work based
  56.156 +on the Library (independent of the use of the Library in a tool for
  56.157 +writing it).  Whether that is true depends on what the Library does
  56.158 +and what the program that uses the Library does.
  56.159 +
  56.160 +  1. You may copy and distribute verbatim copies of the Library's
  56.161 +complete source code as you receive it, in any medium, provided that
  56.162 +you conspicuously and appropriately publish on each copy an
  56.163 +appropriate copyright notice and disclaimer of warranty; keep intact
  56.164 +all the notices that refer to this License and to the absence of any
  56.165 +warranty; and distribute a copy of this License along with the
  56.166 +Library.
  56.167 +
  56.168 +  You may charge a fee for the physical act of transferring a copy,
  56.169 +and you may at your option offer warranty protection in exchange for a
  56.170 +fee.
  56.171 +
  56.172 +  2. You may modify your copy or copies of the Library or any portion
  56.173 +of it, thus forming a work based on the Library, and copy and
  56.174 +distribute such modifications or work under the terms of Section 1
  56.175 +above, provided that you also meet all of these conditions:
  56.176 +
  56.177 +    a) The modified work must itself be a software library.
  56.178 +
  56.179 +    b) You must cause the files modified to carry prominent notices
  56.180 +    stating that you changed the files and the date of any change.
  56.181 +
  56.182 +    c) You must cause the whole of the work to be licensed at no
  56.183 +    charge to all third parties under the terms of this License.
  56.184 +
  56.185 +    d) If a facility in the modified Library refers to a function or a
  56.186 +    table of data to be supplied by an application program that uses
  56.187 +    the facility, other than as an argument passed when the facility
  56.188 +    is invoked, then you must make a good faith effort to ensure that,
  56.189 +    in the event an application does not supply such function or
  56.190 +    table, the facility still operates, and performs whatever part of
  56.191 +    its purpose remains meaningful.
  56.192 +
  56.193 +    (For example, a function in a library to compute square roots has
  56.194 +    a purpose that is entirely well-defined independent of the
  56.195 +    application.  Therefore, Subsection 2d requires that any
  56.196 +    application-supplied function or table used by this function must
  56.197 +    be optional: if the application does not supply it, the square
  56.198 +    root function must still compute square roots.)
  56.199 +
  56.200 +These requirements apply to the modified work as a whole.  If
  56.201 +identifiable sections of that work are not derived from the Library,
  56.202 +and can be reasonably considered independent and separate works in
  56.203 +themselves, then this License, and its terms, do not apply to those
  56.204 +sections when you distribute them as separate works.  But when you
  56.205 +distribute the same sections as part of a whole which is a work based
  56.206 +on the Library, the distribution of the whole must be on the terms of
  56.207 +this License, whose permissions for other licensees extend to the
  56.208 +entire whole, and thus to each and every part regardless of who wrote
  56.209 +it.
  56.210 +
  56.211 +Thus, it is not the intent of this section to claim rights or contest
  56.212 +your rights to work written entirely by you; rather, the intent is to
  56.213 +exercise the right to control the distribution of derivative or
  56.214 +collective works based on the Library.
  56.215 +
  56.216 +In addition, mere aggregation of another work not based on the Library
  56.217 +with the Library (or with a work based on the Library) on a volume of
  56.218 +a storage or distribution medium does not bring the other work under
  56.219 +the scope of this License.
  56.220 +
  56.221 +  3. You may opt to apply the terms of the ordinary GNU General Public
  56.222 +License instead of this License to a given copy of the Library.  To do
  56.223 +this, you must alter all the notices that refer to this License, so
  56.224 +that they refer to the ordinary GNU General Public License, version 2,
  56.225 +instead of to this License.  (If a newer version than version 2 of the
  56.226 +ordinary GNU General Public License has appeared, then you can specify
  56.227 +that version instead if you wish.)  Do not make any other change in
  56.228 +these notices.
  56.229 +
  56.230 +  Once this change is made in a given copy, it is irreversible for
  56.231 +that copy, so the ordinary GNU General Public License applies to all
  56.232 +subsequent copies and derivative works made from that copy.
  56.233 +
  56.234 +  This option is useful when you wish to copy part of the code of
  56.235 +the Library into a program that is not a library.
  56.236 +
  56.237 +  4. You may copy and distribute the Library (or a portion or
  56.238 +derivative of it, under Section 2) in object code or executable form
  56.239 +under the terms of Sections 1 and 2 above provided that you accompany
  56.240 +it with the complete corresponding machine-readable source code, which
  56.241 +must be distributed under the terms of Sections 1 and 2 above on a
  56.242 +medium customarily used for software interchange.
  56.243 +
  56.244 +  If distribution of object code is made by offering access to copy
  56.245 +from a designated place, then offering equivalent access to copy the
  56.246 +source code from the same place satisfies the requirement to
  56.247 +distribute the source code, even though third parties are not
  56.248 +compelled to copy the source along with the object code.
  56.249 +
  56.250 +  5. A program that contains no derivative of any portion of the
  56.251 +Library, but is designed to work with the Library by being compiled or
  56.252 +linked with it, is called a "work that uses the Library".  Such a
  56.253 +work, in isolation, is not a derivative work of the Library, and
  56.254 +therefore falls outside the scope of this License.
  56.255 +
  56.256 +  However, linking a "work that uses the Library" with the Library
  56.257 +creates an executable that is a derivative of the Library (because it
  56.258 +contains portions of the Library), rather than a "work that uses the
  56.259 +library".  The executable is therefore covered by this License.
  56.260 +Section 6 states terms for distribution of such executables.
  56.261 +
  56.262 +  When a "work that uses the Library" uses material from a header file
  56.263 +that is part of the Library, the object code for the work may be a
  56.264 +derivative work of the Library even though the source code is not.
  56.265 +Whether this is true is especially significant if the work can be
  56.266 +linked without the Library, or if the work is itself a library.  The
  56.267 +threshold for this to be true is not precisely defined by law.
  56.268 +
  56.269 +  If such an object file uses only numerical parameters, data
  56.270 +structure layouts and accessors, and small macros and small inline
  56.271 +functions (ten lines or less in length), then the use of the object
  56.272 +file is unrestricted, regardless of whether it is legally a derivative
  56.273 +work.  (Executables containing this object code plus portions of the
  56.274 +Library will still fall under Section 6.)
  56.275 +
  56.276 +  Otherwise, if the work is a derivative of the Library, you may
  56.277 +distribute the object code for the work under the terms of Section 6.
  56.278 +Any executables containing that work also fall under Section 6,
  56.279 +whether or not they are linked directly with the Library itself.
  56.280 +
  56.281 +  6. As an exception to the Sections above, you may also combine or
  56.282 +link a "work that uses the Library" with the Library to produce a
  56.283 +work containing portions of the Library, and distribute that work
  56.284 +under terms of your choice, provided that the terms permit
  56.285 +modification of the work for the customer's own use and reverse
  56.286 +engineering for debugging such modifications.
  56.287 +
  56.288 +  You must give prominent notice with each copy of the work that the
  56.289 +Library is used in it and that the Library and its use are covered by
  56.290 +this License.  You must supply a copy of this License.  If the work
  56.291 +during execution displays copyright notices, you must include the
  56.292 +copyright notice for the Library among them, as well as a reference
  56.293 +directing the user to the copy of this License.  Also, you must do one
  56.294 +of these things:
  56.295 +
  56.296 +    a) Accompany the work with the complete corresponding
  56.297 +    machine-readable source code for the Library including whatever
  56.298 +    changes were used in the work (which must be distributed under
  56.299 +    Sections 1 and 2 above); and, if the work is an executable linked
  56.300 +    with the Library, with the complete machine-readable "work that
  56.301 +    uses the Library", as object code and/or source code, so that the
  56.302 +    user can modify the Library and then relink to produce a modified
  56.303 +    executable containing the modified Library.  (It is understood
  56.304 +    that the user who changes the contents of definitions files in the
  56.305 +    Library will not necessarily be able to recompile the application
  56.306 +    to use the modified definitions.)
  56.307 +
  56.308 +    b) Use a suitable shared library mechanism for linking with the
  56.309 +    Library.  A suitable mechanism is one that (1) uses at run time a
  56.310 +    copy of the library already present on the user's computer system,
  56.311 +    rather than copying library functions into the executable, and (2)
  56.312 +    will operate properly with a modified version of the library, if
  56.313 +    the user installs one, as long as the modified version is
  56.314 +    interface-compatible with the version that the work was made with.
  56.315 +
  56.316 +    c) Accompany the work with a written offer, valid for at
  56.317 +    least three years, to give the same user the materials
  56.318 +    specified in Subsection 6a, above, for a charge no more
  56.319 +    than the cost of performing this distribution.
  56.320 +
  56.321 +    d) If distribution of the work is made by offering access to copy
  56.322 +    from a designated place, offer equivalent access to copy the above
  56.323 +    specified materials from the same place.
  56.324 +
  56.325 +    e) Verify that the user has already received a copy of these
  56.326 +    materials or that you have already sent this user a copy.
  56.327 +
  56.328 +  For an executable, the required form of the "work that uses the
  56.329 +Library" must include any data and utility programs needed for
  56.330 +reproducing the executable from it.  However, as a special exception,
  56.331 +the materials to be distributed need not include anything that is
  56.332 +normally distributed (in either source or binary form) with the major
  56.333 +components (compiler, kernel, and so on) of the operating system on
  56.334 +which the executable runs, unless that component itself accompanies
  56.335 +the executable.
  56.336 +
  56.337 +  It may happen that this requirement contradicts the license
  56.338 +restrictions of other proprietary libraries that do not normally
  56.339 +accompany the operating system.  Such a contradiction means you cannot
  56.340 +use both them and the Library together in an executable that you
  56.341 +distribute.
  56.342 +
  56.343 +  7. You may place library facilities that are a work based on the
  56.344 +Library side-by-side in a single library together with other library
  56.345 +facilities not covered by this License, and distribute such a combined
  56.346 +library, provided that the separate distribution of the work based on
  56.347 +the Library and of the other library facilities is otherwise
  56.348 +permitted, and provided that you do these two things:
  56.349 +
  56.350 +    a) Accompany the combined library with a copy of the same work
  56.351 +    based on the Library, uncombined with any other library
  56.352 +    facilities.  This must be distributed under the terms of the
  56.353 +    Sections above.
  56.354 +
  56.355 +    b) Give prominent notice with the combined library of the fact
  56.356 +    that part of it is a work based on the Library, and explaining
  56.357 +    where to find the accompanying uncombined form of the same work.
  56.358 +
  56.359 +  8. You may not copy, modify, sublicense, link with, or distribute
  56.360 +the Library except as expressly provided under this License.  Any
  56.361 +attempt otherwise to copy, modify, sublicense, link with, or
  56.362 +distribute the Library is void, and will automatically terminate your
  56.363 +rights under this License.  However, parties who have received copies,
  56.364 +or rights, from you under this License will not have their licenses
  56.365 +terminated so long as such parties remain in full compliance.
  56.366 +
  56.367 +  9. You are not required to accept this License, since you have not
  56.368 +signed it.  However, nothing else grants you permission to modify or
  56.369 +distribute the Library or its derivative works.  These actions are
  56.370 +prohibited by law if you do not accept this License.  Therefore, by
  56.371 +modifying or distributing the Library (or any work based on the
  56.372 +Library), you indicate your acceptance of this License to do so, and
  56.373 +all its terms and conditions for copying, distributing or modifying
  56.374 +the Library or works based on it.
  56.375 +
  56.376 +  10. Each time you redistribute the Library (or any work based on the
  56.377 +Library), the recipient automatically receives a license from the
  56.378 +original licensor to copy, distribute, link with or modify the Library
  56.379 +subject to these terms and conditions.  You may not impose any further
  56.380 +restrictions on the recipients' exercise of the rights granted herein.
  56.381 +You are not responsible for enforcing compliance by third parties with
  56.382 +this License.
  56.383 +
  56.384 +  11. If, as a consequence of a court judgment or allegation of patent
  56.385 +infringement or for any other reason (not limited to patent issues),
  56.386 +conditions are imposed on you (whether by court order, agreement or
  56.387 +otherwise) that contradict the conditions of this License, they do not
  56.388 +excuse you from the conditions of this License.  If you cannot
  56.389 +distribute so as to satisfy simultaneously your obligations under this
  56.390 +License and any other pertinent obligations, then as a consequence you
  56.391 +may not distribute the Library at all.  For example, if a patent
  56.392 +license would not permit royalty-free redistribution of the Library by
  56.393 +all those who receive copies directly or indirectly through you, then
  56.394 +the only way you could satisfy both it and this License would be to
  56.395 +refrain entirely from distribution of the Library.
  56.396 +
  56.397 +If any portion of this section is held invalid or unenforceable under any
  56.398 +particular circumstance, the balance of the section is intended to apply,
  56.399 +and the section as a whole is intended to apply in other circumstances.
  56.400 +
  56.401 +It is not the purpose of this section to induce you to infringe any
  56.402 +patents or other property right claims or to contest validity of any
  56.403 +such claims; this section has the sole purpose of protecting the
  56.404 +integrity of the free software distribution system which is
  56.405 +implemented by public license practices.  Many people have made
  56.406 +generous contributions to the wide range of software distributed
  56.407 +through that system in reliance on consistent application of that
  56.408 +system; it is up to the author/donor to decide if he or she is willing
  56.409 +to distribute software through any other system and a licensee cannot
  56.410 +impose that choice.
  56.411 +
  56.412 +This section is intended to make thoroughly clear what is believed to
  56.413 +be a consequence of the rest of this License.
  56.414 +
  56.415 +  12. If the distribution and/or use of the Library is restricted in
  56.416 +certain countries either by patents or by copyrighted interfaces, the
  56.417 +original copyright holder who places the Library under this License may add
  56.418 +an explicit geographical distribution limitation excluding those countries,
  56.419 +so that distribution is permitted only in or among countries not thus
  56.420 +excluded.  In such case, this License incorporates the limitation as if
  56.421 +written in the body of this License.
  56.422 +
  56.423 +  13. The Free Software Foundation may publish revised and/or new
  56.424 +versions of the Lesser General Public License from time to time.
  56.425 +Such new versions will be similar in spirit to the present version,
  56.426 +but may differ in detail to address new problems or concerns.
  56.427 +
  56.428 +Each version is given a distinguishing version number.  If the Library
  56.429 +specifies a version number of this License which applies to it and
  56.430 +"any later version", you have the option of following the terms and
  56.431 +conditions either of that version or of any later version published by
  56.432 +the Free Software Foundation.  If the Library does not specify a
  56.433 +license version number, you may choose any version ever published by
  56.434 +the Free Software Foundation.
  56.435 +
  56.436 +  14. If you wish to incorporate parts of the Library into other free
  56.437 +programs whose distribution conditions are incompatible with these,
  56.438 +write to the author to ask for permission.  For software which is
  56.439 +copyrighted by the Free Software Foundation, write to the Free
  56.440 +Software Foundation; we sometimes make exceptions for this.  Our
  56.441 +decision will be guided by the two goals of preserving the free status
  56.442 +of all derivatives of our free software and of promoting the sharing
  56.443 +and reuse of software generally.
  56.444 +
  56.445 +			    NO WARRANTY
  56.446 +
  56.447 +  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
  56.448 +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
  56.449 +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
  56.450 +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
  56.451 +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
  56.452 +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  56.453 +PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
  56.454 +LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
  56.455 +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
  56.456 +
  56.457 +  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
  56.458 +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
  56.459 +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
  56.460 +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
  56.461 +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
  56.462 +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
  56.463 +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
  56.464 +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
  56.465 +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
  56.466 +DAMAGES.
  56.467 +
  56.468 +		     END OF TERMS AND CONDITIONS
  56.469 +
  56.470 +           How to Apply These Terms to Your New Libraries
  56.471 +
  56.472 +  If you develop a new library, and you want it to be of the greatest
  56.473 +possible use to the public, we recommend making it free software that
  56.474 +everyone can redistribute and change.  You can do so by permitting
  56.475 +redistribution under these terms (or, alternatively, under the terms of the
  56.476 +ordinary General Public License).
  56.477 +
  56.478 +  To apply these terms, attach the following notices to the library.  It is
  56.479 +safest to attach them to the start of each source file to most effectively
  56.480 +convey the exclusion of warranty; and each file should have at least the
  56.481 +"copyright" line and a pointer to where the full notice is found.
  56.482 +
  56.483 +    <one line to give the library's name and a brief idea of what it does.>
  56.484 +    Copyright (C) <year>  <name of author>
  56.485 +
  56.486 +    This library is free software; you can redistribute it and/or
  56.487 +    modify it under the terms of the GNU Lesser General Public
  56.488 +    License as published by the Free Software Foundation; either
  56.489 +    version 2.1 of the License, or (at your option) any later version.
  56.490 +
  56.491 +    This library is distributed in the hope that it will be useful,
  56.492 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
  56.493 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  56.494 +    Lesser General Public License for more details.
  56.495 +
  56.496 +    You should have received a copy of the GNU Lesser General Public
  56.497 +    License along with this library; if not, write to the Free Software
  56.498 +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
  56.499 +    USA
  56.500 +
  56.501 +Also add information on how to contact you by electronic and paper mail.
  56.502 +
  56.503 +You should also get your employer (if you work as a programmer) or your
  56.504 +school, if any, to sign a "copyright disclaimer" for the library, if
  56.505 +necessary.  Here is a sample; alter the names:
  56.506 +
  56.507 +  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  56.508 +  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
  56.509 +
  56.510 +  <signature of Ty Coon>, 1 April 1990
  56.511 +  Ty Coon, President of Vice
  56.512 +
  56.513 +That's all there is to it!
    57.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    57.2 +++ b/libs.jna.platform/manifest.mf	Sat Jun 08 07:16:57 2013 +0200
    57.3 @@ -0,0 +1,4 @@
    57.4 +Manifest-Version: 1.0
    57.5 +OpenIDE-Module: org.netbeans.libs.jna.platform/1
    57.6 +OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/jna/platform/Bundle.properties
    57.7 +OpenIDE-Module-Specification-Version: 1.0
    58.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    58.2 +++ b/libs.jna.platform/nbproject/project.properties	Sat Jun 08 07:16:57 2013 +0200
    58.3 @@ -0,0 +1,46 @@
    58.4 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    58.5 +#
    58.6 +# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
    58.7 +#
    58.8 +# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
    58.9 +# Other names may be trademarks of their respective owners.
   58.10 +#
   58.11 +# The contents of this file are subject to the terms of either the GNU
   58.12 +# General Public License Version 2 only ("GPL") or the Common
   58.13 +# Development and Distribution License("CDDL") (collectively, the
   58.14 +# "License"). You may not use this file except in compliance with the
   58.15 +# License. You can obtain a copy of the License at
   58.16 +# http://www.netbeans.org/cddl-gplv2.html
   58.17 +# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   58.18 +# specific language governing permissions and limitations under the
   58.19 +# License.  When distributing the software, include this License Header
   58.20 +# Notice in each file and include the License file at
   58.21 +# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   58.22 +# particular file as subject to the "Classpath" exception as provided
   58.23 +# by Oracle in the GPL Version 2 section of the License file that
   58.24 +# accompanied this code. If applicable, add the following below the
   58.25 +# License Header, with the fields enclosed by brackets [] replaced by
   58.26 +# your own identifying information:
   58.27 +# "Portions Copyrighted [year] [name of copyright owner]"
   58.28 +#
   58.29 +# Contributor(s):
   58.30 +#
   58.31 +# The Original Software is NetBeans. The Initial Developer of the Original
   58.32 +# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
   58.33 +# Microsystems, Inc. All Rights Reserved.
   58.34 +#
   58.35 +# If you wish your version of this file to be governed by only the CDDL
   58.36 +# or only the GPL Version 2, indicate your decision by adding
   58.37 +# "[Contributor] elects to include this software in this distribution
   58.38 +# under the [CDDL or GPL Version 2] license." If you do not indicate a
   58.39 +# single choice of license, a recipient has the option to distribute
   58.40 +# your version of this file under either the CDDL, the GPL Version 2 or
   58.41 +# to extend the choice of license to its licensees as provided above.
   58.42 +# However, if you add GPL Version 2 code and therefore, elected the GPL
   58.43 +# Version 2 license, then the option applies only if the new code is
   58.44 +# made subject to such option by the copyright holder.
   58.45 +
   58.46 +is.autoload=true
   58.47 +javac.source=1.6
   58.48 +release.external/platform-3.4.0.jar=modules/ext/platform-3.4.0.jar
   58.49 +sigtest.gen.fail.on.error=false
    59.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    59.2 +++ b/libs.jna.platform/nbproject/project.xml	Sat Jun 08 07:16:57 2013 +0200
    59.3 @@ -0,0 +1,76 @@
    59.4 +<?xml version="1.0" encoding="UTF-8"?>
    59.5 +<!--
    59.6 +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    59.7 +
    59.8 +Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
    59.9 +
   59.10 +Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   59.11 +Other names may be trademarks of their respective owners.
   59.12 +
   59.13 +
   59.14 +The contents of this file are subject to the terms of either the GNU
   59.15 +General Public License Version 2 only ("GPL") or the Common
   59.16 +Development and Distribution License("CDDL") (collectively, the
   59.17 +"License"). You may not use this file except in compliance with the
   59.18 +License. You can obtain a copy of the License at
   59.19 +http://www.netbeans.org/cddl-gplv2.html
   59.20 +or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   59.21 +specific language governing permissions and limitations under the
   59.22 +License.  When distributing the software, include this License Header
   59.23 +Notice in each file and include the License file at
   59.24 +nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   59.25 +particular file as subject to the "Classpath" exception as provided
   59.26 +by Oracle in the GPL Version 2 section of the License file that
   59.27 +accompanied this code. If applicable, add the following below the
   59.28 +License Header, with the fields enclosed by brackets [] replaced by
   59.29 +your own identifying information:
   59.30 +"Portions Copyrighted [year] [name of copyright owner]"
   59.31 +
   59.32 +Contributor(s):
   59.33 +
   59.34 +The Original Software is NetBeans. The Initial Developer of the Original
   59.35 +Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
   59.36 +Microsystems, Inc. All Rights Reserved.
   59.37 +
   59.38 +If you wish your version of this file to be governed by only the CDDL
   59.39 +or only the GPL Version 2, indicate your decision by adding
   59.40 +"[Contributor] elects to include this software in this distribution
   59.41 +under the [CDDL or GPL Version 2] license." If you do not indicate a
   59.42 +single choice of license, a recipient has the option to distribute
   59.43 +your version of this file under either the CDDL, the GPL Version 2 or
   59.44 +to extend the choice of license to its licensees as provided above.
   59.45 +However, if you add GPL Version 2 code and therefore, elected the GPL
   59.46 +Version 2 license, then the option applies only if the new code is
   59.47 +made subject to such option by the copyright holder.
   59.48 +-->
   59.49 +<project xmlns="http://www.netbeans.org/ns/project/1">
   59.50 +    <type>org.netbeans.modules.apisupport.project</type>
   59.51 +    <configuration>
   59.52 +        <data xmlns="http://www.netbeans.org/ns/nb-module-project/2">
   59.53 +            <code-name-base>org.netbeans.libs.jna.platform</code-name-base>
   59.54 +            <module-dependencies>
   59.55 +                <dependency>
   59.56 +                    <code-name-base>org.netbeans.libs.jna</code-name-base>
   59.57 +                    <run-dependency>
   59.58 +                        <release-version>1</release-version>
   59.59 +                        <specification-version>1.29</specification-version>
   59.60 +                    </run-dependency>
   59.61 +                </dependency>
   59.62 +            </module-dependencies>
   59.63 +            <friend-packages>
   59.64 +                <friend>org.netbeans.core.nativeaccess</friend>
   59.65 +                <friend>org.netbeans.libs.jsch.agentproxy</friend>
   59.66 +                <package>com.sun.jna.platform</package>
   59.67 +                <package>com.sun.jna.platform.dnd</package>
   59.68 +                <package>com.sun.jna.platform.mac</package>
   59.69 +                <package>com.sun.jna.platform.unix</package>
   59.70 +                <package>com.sun.jna.platform.win32</package>
   59.71 +                <package>com.sun.jna.platform.wince</package>
   59.72 +            </friend-packages>
   59.73 +            <class-path-extension>
   59.74 +                <runtime-relative-path>ext/platform-3.4.0.jar</runtime-relative-path>
   59.75 +                <binary-origin>external/platform-3.4.0.jar</binary-origin>
   59.76 +            </class-path-extension>
   59.77 +        </data>
   59.78 +    </configuration>
   59.79 +</project>
    60.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    60.2 +++ b/libs.jna.platform/src/org/netbeans/libs/jna/platform/Bundle.properties	Sat Jun 08 07:16:57 2013 +0200
    60.3 @@ -0,0 +1,47 @@
    60.4 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    60.5 +#
    60.6 +# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
    60.7 +#
    60.8 +# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
    60.9 +# Other names may be trademarks of their respective owners.
   60.10 +#
   60.11 +# The contents of this file are subject to the terms of either the GNU
   60.12 +# General Public License Version 2 only ("GPL") or the Common
   60.13 +# Development and Distribution License("CDDL") (collectively, the
   60.14 +# "License"). You may not use this file except in compliance with the
   60.15 +# License. You can obtain a copy of the License at
   60.16 +# http://www.netbeans.org/cddl-gplv2.html
   60.17 +# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   60.18 +# specific language governing permissions and limitations under the
   60.19 +# License.  When distributing the software, include this License Header
   60.20 +# Notice in each file and include the License file at
   60.21 +# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   60.22 +# particular file as subject to the "Classpath" exception as provided
   60.23 +# by Oracle in the GPL Version 2 section of the License file that
   60.24 +# accompanied this code. If applicable, add the following below the
   60.25 +# License Header, with the fields enclosed by brackets [] replaced by
   60.26 +# your own identifying information:
   60.27 +# "Portions Copyrighted [year] [name of copyright owner]"
   60.28 +#
   60.29 +# Contributor(s):
   60.30 +#
   60.31 +# The Original Software is NetBeans. The Initial Developer of the Original
   60.32 +# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
   60.33 +# Microsystems, Inc. All Rights Reserved.
   60.34 +#
   60.35 +# If you wish your version of this file to be governed by only the CDDL
   60.36 +# or only the GPL Version 2, indicate your decision by adding
   60.37 +# "[Contributor] elects to include this software in this distribution
   60.38 +# under the [CDDL or GPL Version 2] license." If you do not indicate a
   60.39 +# single choice of license, a recipient has the option to distribute
   60.40 +# your version of this file under either the CDDL, the GPL Version 2 or
   60.41 +# to extend the choice of license to its licensees as provided above.
   60.42 +# However, if you add GPL Version 2 code and therefore, elected the GPL
   60.43 +# Version 2 license, then the option applies only if the new code is
   60.44 +# made subject to such option by the copyright holder.
   60.45 +
   60.46 +## libs/swing-layout/manifest.mf
   60.47 +OpenIDE-Module-Name=JNA Platform
   60.48 +OpenIDE-Module-Display-Category=Libraries
   60.49 +OpenIDE-Module-Short-Description=Bundles JNA platform library.
   60.50 +OpenIDE-Module-Long-Description=This module bundles JNA platform library.
    61.1 --- a/libs.jna/manifest.mf	Fri Jun 07 15:44:19 2013 +0200
    61.2 +++ b/libs.jna/manifest.mf	Sat Jun 08 07:16:57 2013 +0200
    61.3 @@ -4,4 +4,4 @@
    61.4  OpenIDE-Module-Install: org/netbeans/libs/jna/Installer.class
    61.5  OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/jna/Bundle.properties
    61.6  AutoUpdate-Essential-Module: true
    61.7 -OpenIDE-Module-Specification-Version: 1.28
    61.8 +OpenIDE-Module-Specification-Version: 1.29
    62.1 --- a/libs.jna/nbproject/project.xml	Fri Jun 07 15:44:19 2013 +0200
    62.2 +++ b/libs.jna/nbproject/project.xml	Sat Jun 08 07:16:57 2013 +0200
    62.3 @@ -77,6 +77,7 @@
    62.4                  <friend>org.netbeans.libs.djnsswt.win32x64</friend>
    62.5                  <friend>org.netbeans.libs.djnsswt.win32x86</friend>
    62.6                  <friend>org.netbeans.libs.jsch.agentproxy</friend>
    62.7 +                <friend>org.netbeans.libs.jna.platform</friend>
    62.8                  <friend>org.netbeans.libs.svnClientAdapter.svnkit</friend>
    62.9                  <friend>org.netbeans.modules.dlight.nativeexecution</friend>
   62.10                  <friend>org.netbeans.modules.extbrowser</friend>
    63.1 --- a/libs.jsch.agentproxy/manifest.mf	Fri Jun 07 15:44:19 2013 +0200
    63.2 +++ b/libs.jsch.agentproxy/manifest.mf	Sat Jun 08 07:16:57 2013 +0200
    63.3 @@ -1,5 +1,5 @@
    63.4  Manifest-Version: 1.0
    63.5  OpenIDE-Module: org.netbeans.libs.jsch.agentproxy/1
    63.6  OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/jsch/agentproxy/Bundle.properties
    63.7 -OpenIDE-Module-Specification-Version: 0.1
    63.8 +OpenIDE-Module-Specification-Version: 0.2
    63.9  
    64.1 --- a/libs.jsch.agentproxy/nbproject/project.xml	Fri Jun 07 15:44:19 2013 +0200
    64.2 +++ b/libs.jsch.agentproxy/nbproject/project.xml	Sat Jun 08 07:16:57 2013 +0200
    64.3 @@ -50,19 +50,17 @@
    64.4              <code-name-base>org.netbeans.libs.jsch.agentproxy</code-name-base>
    64.5              <module-dependencies>
    64.6                  <dependency>
    64.7 -                    <code-name-base>org.netbeans.core.nativeaccess</code-name-base>
    64.8 +                    <code-name-base>org.netbeans.libs.jna</code-name-base>
    64.9                      <run-dependency>
   64.10                          <release-version>1</release-version>
   64.11 -                        <specification-version>1.21</specification-version>
   64.12 +                        <specification-version>1.27</specification-version>
   64.13                      </run-dependency>
   64.14                  </dependency>
   64.15                  <dependency>
   64.16 -                    <code-name-base>org.netbeans.libs.jna</code-name-base>
   64.17 -                    <build-prerequisite/>
   64.18 -                    <compile-dependency/>
   64.19 +                    <code-name-base>org.netbeans.libs.jna.platform</code-name-base>
   64.20                      <run-dependency>
   64.21                          <release-version>1</release-version>
   64.22 -                        <specification-version>1.27</specification-version>
   64.23 +                        <specification-version>1.0</specification-version>
   64.24                      </run-dependency>
   64.25                  </dependency>
   64.26              </module-dependencies>
    65.1 --- a/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NbmWizardIterator.java	Fri Jun 07 15:44:19 2013 +0200
    65.2 +++ b/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NbmWizardIterator.java	Sat Jun 08 07:16:57 2013 +0200
    65.3 @@ -82,6 +82,7 @@
    65.4      public static final String NBM_ARTIFACTID = "nbm_artifactId";
    65.5      
    65.6      static final Archetype NB_MODULE_ARCH, NB_APP_ARCH;
    65.7 +    public static final String SNAPSHOT_VERSION = "dev-SNAPSHOT";
    65.8      static {
    65.9          NB_MODULE_ARCH = new Archetype();
   65.10          NB_MODULE_ARCH.setGroupId("org.codehaus.mojo.archetypes"); //NOI18N
   65.11 @@ -168,7 +169,7 @@
   65.12                      opers.add(osgi);
   65.13                  }
   65.14              }
   65.15 -            if ("SNAPSHOT".equals(version)) { // NOI18N
   65.16 +            if (SNAPSHOT_VERSION.equals(version)) { // NOI18N
   65.17                  opers.add(addSnapshotRepo());
   65.18              }
   65.19              if (!opers.isEmpty()) {
   65.20 @@ -306,7 +307,7 @@
   65.21                          policy.setEnabled(true);
   65.22                          repo.setSnapshots(policy);
   65.23                           */
   65.24 -                        repo.setUrl("http://bits.netbeans.org/netbeans/trunk/maven-snapshot/"); // NOI18N
   65.25 +                        repo.setUrl("http://bits.netbeans.org/nexus/content/repositories/snapshots/"); // NOI18N
   65.26                          model.getProject().addRepository(repo);
   65.27                      }
   65.28                  };
    66.1 --- a/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NbmWizardPanelVisual.java	Fri Jun 07 15:44:19 2013 +0200
    66.2 +++ b/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NbmWizardPanelVisual.java	Sat Jun 08 07:16:57 2013 +0200
    66.3 @@ -151,7 +151,7 @@
    66.4                      for (NBVersionInfo version : result.getResults()) { // NOI18N
    66.5                          versions.add(version.getVersion());
    66.6                      }
    66.7 -                    versions.add("SNAPSHOT"); // NOI18N
    66.8 +                    versions.add(NbmWizardIterator.SNAPSHOT_VERSION); // NOI18N
    66.9                      if (result.isPartial() || versions.size() == 1) {
   66.10                          RP.post(new Runnable() {
   66.11                              //download archetype to figure the default value of the netbeansVersion parameter.
   66.12 @@ -173,7 +173,7 @@
   66.13                                      if (def != null) {
   66.14                                          versions3.add(def);
   66.15                                      }
   66.16 -                                    versions3.add("SNAPSHOT");
   66.17 +                                    versions3.add(NbmWizardIterator.SNAPSHOT_VERSION);
   66.18                                      if (result.isPartial()) {
   66.19                                          versions3.add(SEARCHING);
   66.20                                      }
   66.21 @@ -205,7 +205,7 @@
   66.22                                  for (NBVersionInfo version : result.getResults()) { // NOI18N
   66.23                                      versions2.add(version.getVersion());
   66.24                                  }
   66.25 -                                versions2.add("SNAPSHOT"); // NOI18N
   66.26 +                                versions2.add(NbmWizardIterator.SNAPSHOT_VERSION); // NOI18N
   66.27  
   66.28                                  EventQueue.invokeLater(new Runnable()  {
   66.29                                              public @Override void run() {
   66.30 @@ -323,7 +323,7 @@
   66.31      private void versionComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_versionComboActionPerformed
   66.32          String version = (String) versionCombo.getSelectedItem();
   66.33          NBVersionInfo nbvi = new NBVersionInfo("x", "x", "x", version, null, null, null, null, null);
   66.34 -        if (version != null && (version.equals("SNAPSHOT") || nbvi.compareTo(new NBVersionInfo("x", "x", "x", "RELEASE69-BETA", null, null, null, null, null)) <= 0)) {
   66.35 +        if (version != null && (version.equals(NbmWizardIterator.SNAPSHOT_VERSION) || nbvi.compareTo(new NBVersionInfo("x", "x", "x", "RELEASE69-BETA", null, null, null, null, null)) <= 0)) {
   66.36              cbOsgiDeps.setEnabled(true);
   66.37              //cbOsgiDeps.setSelected(version.equals("SNAPSHOT") || nbvi.compareTo(new NBVersionInfo("x", "x", "x", "RELEASE71", null, null, null, null, null)) <= 0);
   66.38          } else {
    67.1 --- a/maven/src/org/netbeans/modules/maven/execute/ui/ShowExecutionPanel.java	Fri Jun 07 15:44:19 2013 +0200
    67.2 +++ b/maven/src/org/netbeans/modules/maven/execute/ui/ShowExecutionPanel.java	Sat Jun 08 07:16:57 2013 +0200
    67.3 @@ -55,8 +55,6 @@
    67.4  import static javax.swing.Action.NAME;
    67.5  import javax.swing.tree.TreeSelectionModel;
    67.6  import org.apache.maven.execution.ExecutionEvent;
    67.7 -import org.netbeans.api.annotations.common.CheckForNull;
    67.8 -import org.netbeans.api.annotations.common.NullAllowed;
    67.9  import org.netbeans.modules.maven.api.ModelUtils;
   67.10  import org.netbeans.modules.maven.execute.cmd.ExecutionEventObject;
   67.11  import org.netbeans.modules.maven.execute.cmd.ExecMojo;
   67.12 @@ -495,6 +493,7 @@
   67.13  
   67.14          @Override
   67.15          public void actionPerformed(ActionEvent e) {
   67.16 +            item.expandFold();
   67.17              item.getStartOffset().scrollTo();
   67.18          }
   67.19      }
    68.1 --- a/nbbuild/cluster.properties	Fri Jun 07 15:44:19 2013 +0200
    68.2 +++ b/nbbuild/cluster.properties	Sat Jun 08 07:16:57 2013 +0200
    68.3 @@ -183,6 +183,7 @@
    68.4          lib.uihandler,\
    68.5          libs.felix,\
    68.6          libs.jna,\
    68.7 +        libs.jna.platform,\
    68.8          libs.jsr223,\
    68.9          libs.osgi,\
   68.10          libs.testng,\
    69.1 --- a/nbi/infra/build/jvm/conf/common.properties	Fri Jun 07 15:44:19 2013 +0200
    69.2 +++ b/nbi/infra/build/jvm/conf/common.properties	Sat Jun 08 07:16:57 2013 +0200
    69.3 @@ -40,7 +40,7 @@
    69.4  jvm.sub.dir=jdk1.7.0_25
    69.5  jvm.file.prefix=jdk-7u25
    69.6  jvm.version=7u25
    69.7 -jvm.build=b14
    69.8 +jvm.build=b15
    69.9  jvm.build.type=fcs
   69.10  zip.executable=zip
   69.11  tar.executable=tar
    70.1 --- a/o.n.bootstrap/launcher/unix/nbexec	Fri Jun 07 15:44:19 2013 +0200
    70.2 +++ b/o.n.bootstrap/launcher/unix/nbexec	Sat Jun 08 07:16:57 2013 +0200
    70.3 @@ -112,6 +112,8 @@
    70.4          # better to handle this argument inside the java launcher part 
    70.5          --userdir) shift; if [ $# -gt 0 ] ; then userdir="$1"; fi
    70.6              ;;
    70.7 +        --cachedir) shift; if [ $# -gt 0 ] ; then cachedir="$1"; fi
    70.8 +            ;;
    70.9          -cp|-cp:a|--cp|--cp:a)
   70.10              shift;
   70.11              if [ $# -gt 0 ] ; then
   70.12 @@ -210,14 +212,16 @@
   70.13  jargs_without_clusters="$jargs"
   70.14  jargs="-Dnetbeans.dirs=\"${clusters}\" $jargs_without_clusters"
   70.15  
   70.16 -if [ -z "$nosplash" -a -f "${userdir}/var/cache/splash.png" ]; then
   70.17 -   jargs="$jargs -splash:\"${userdir}/var/cache/splash.png\""
   70.18 +if [ -z "$nosplash" -a -f "${cachedir}/splash.png" ]; then
   70.19 +   jargs="$jargs -splash:\"${cachedir}/splash.png\""
   70.20  fi
   70.21  
   70.22  jdkhome=`absolutize_path "$jdkhome"`
   70.23  
   70.24  args="--userdir \"${userdir}\" $args"
   70.25  
   70.26 +args="--cachedir \"${cachedir}\" $args"
   70.27 +
   70.28  append_jars_to_cp() {
   70.29      dir="$1"
   70.30      subpath="$2"
    71.1 --- a/o.n.core/src/org/netbeans/core/HtmlBrowserComponent.java	Fri Jun 07 15:44:19 2013 +0200
    71.2 +++ b/o.n.core/src/org/netbeans/core/HtmlBrowserComponent.java	Sat Jun 08 07:16:57 2013 +0200
    71.3 @@ -46,6 +46,8 @@
    71.4  
    71.5  import java.awt.BorderLayout;
    71.6  import java.awt.Component;
    71.7 +import java.awt.event.ActionEvent;
    71.8 +import java.awt.event.KeyEvent;
    71.9  import java.beans.PropertyChangeEvent;
   71.10  import java.beans.PropertyChangeListener;
   71.11  import java.io.IOException;
   71.12 @@ -56,7 +58,12 @@
   71.13  import java.net.URL;
   71.14  import java.util.logging.Level;
   71.15  import java.util.logging.Logger;
   71.16 +import javax.swing.AbstractAction;
   71.17 +import javax.swing.ActionMap;
   71.18  import javax.swing.ImageIcon;
   71.19 +import javax.swing.InputMap;
   71.20 +import javax.swing.JComponent;
   71.21 +import javax.swing.KeyStroke;
   71.22  import javax.swing.SwingUtilities;
   71.23  import org.openide.awt.HtmlBrowser;
   71.24  import org.openide.awt.StatusDisplayer;
   71.25 @@ -302,6 +309,8 @@
   71.26          if (browserComponent.getBrowserComponent() != null) {
   71.27              putClientProperty("InternalBrowser", Boolean.TRUE); // NOI18N
   71.28          }
   71.29 +
   71.30 +        initStandardActions();
   71.31      }
   71.32  
   71.33      // public methods ....................................................................................
   71.34 @@ -438,6 +447,44 @@
   71.35      public HtmlBrowser.Impl getBrowserImpl(){
   71.36          return browserComponent.getBrowserImpl();
   71.37      }
   71.38 +
   71.39 +    /**
   71.40 +     * Adds some standard keyboard shortcuts that are active only when the browser
   71.41 +     * window has input focus.
   71.42 +     */
   71.43 +    private void initStandardActions() {
   71.44 +        final String RELOAD = "RELOAD_BROWSER"; //NOI18N
   71.45 +        final String BACK = "NAVIGATE_BACK"; //NOI18N
   71.46 +        final String FORWARD = "NAVIGATE_FORWARD"; //NOI18N
   71.47 +        ActionMap am = getActionMap();
   71.48 +        InputMap im = getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT );
   71.49 +        am.put( RELOAD, new AbstractAction() {
   71.50 +            @Override
   71.51 +            public void actionPerformed( ActionEvent e ) {
   71.52 +                getBrowserImpl().reloadDocument();
   71.53 +            }
   71.54 +        });
   71.55 +        im.put( KeyStroke.getKeyStroke( KeyEvent.VK_F5, 0), RELOAD);
   71.56 +        im.put( KeyStroke.getKeyStroke( KeyEvent.VK_R, KeyEvent.CTRL_DOWN_MASK), RELOAD);
   71.57 +
   71.58 +        am.put( BACK, new AbstractAction() {
   71.59 +
   71.60 +            @Override
   71.61 +            public void actionPerformed( ActionEvent e ) {
   71.62 +                getBrowserImpl().backward();
   71.63 +            }
   71.64 +        });
   71.65 +
   71.66 +        am.put( FORWARD, new AbstractAction() {
   71.67 +
   71.68 +            @Override
   71.69 +            public void actionPerformed( ActionEvent e ) {
   71.70 +                getBrowserImpl().forward();
   71.71 +            }
   71.72 +        });
   71.73 +        im.put( KeyStroke.getKeyStroke( KeyEvent.VK_BACK_SPACE, 0), BACK);
   71.74 +        im.put( KeyStroke.getKeyStroke( KeyEvent.VK_BACK_SPACE, KeyEvent.SHIFT_DOWN_MASK), FORWARD);
   71.75 +    }
   71.76      
   71.77  public static final class BrowserReplacer implements java.io.Externalizable {
   71.78      
    72.1 --- a/o.n.swing.plaf/src/org/netbeans/swing/plaf/nimbus/DarkNimbusTheme.java	Fri Jun 07 15:44:19 2013 +0200
    72.2 +++ b/o.n.swing.plaf/src/org/netbeans/swing/plaf/nimbus/DarkNimbusTheme.java	Sat Jun 08 07:16:57 2013 +0200
    72.3 @@ -57,7 +57,7 @@
    72.4          UIManager.put( "info", new Color(128,128,128) );
    72.5          UIManager.put( "nimbusBase", new Color( 18, 30, 49) );
    72.6          UIManager.put( "nimbusAlertYellow", new Color( 248, 187, 0) );
    72.7 -        UIManager.put( "nimbusDisabledText", new Color( 128, 128, 128) );
    72.8 +        UIManager.put( "nimbusDisabledText", new Color( 196, 196, 196) );
    72.9          UIManager.put( "nimbusFocus", new Color(115,164,209) );
   72.10          UIManager.put( "nimbusGreen", new Color(176,179,50) );
   72.11          UIManager.put( "nimbusInfoBlue", new Color( 66, 139, 221) );
    73.1 --- a/odcs.ui/src/org/netbeans/modules/odcs/ui/dashboard/MyProjectNode.java	Fri Jun 07 15:44:19 2013 +0200
    73.2 +++ b/odcs.ui/src/org/netbeans/modules/odcs/ui/dashboard/MyProjectNode.java	Sat Jun 08 07:16:57 2013 +0200
    73.3 @@ -216,8 +216,8 @@
    73.4                  
    73.5                  int idxX = 8;
    73.6                  if(canBookmark) {
    73.7 -                    btnBookmark = new LinkButton(ImageUtilities.loadImageIcon(
    73.8 -                            "org/netbeans/modules/team/ui/resources/" + (isMemberProject?"bookmark.png":"unbookmark.png"), true), accessor.getBookmarkAction(project)); //NOI18N
    73.9 +                    ImageIcon bookmarkImage = ImageUtilities.loadImageIcon("org/netbeans/modules/team/ui/resources/" + (isMemberProject?"bookmark.png":"unbookmark.png"), true);
   73.10 +                    btnBookmark = new LinkButton(bookmarkImage, accessor.getBookmarkAction(project)); //NOI18N
   73.11                      btnBookmark.setRolloverEnabled(true);
   73.12                      component.add( btnBookmark, new GridBagConstraints(idxX++,0,1,1,0.0,0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0,3,0,0), 0,0) );
   73.13                      if(canOpen) {
   73.14 @@ -225,8 +225,13 @@
   73.15                          component.add( myPrjLabel, new GridBagConstraints(idxX++,0,1,1,0.0,0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0,3,0,0), 0,0) );                    
   73.16                      }
   73.17                      if(closeAction == null) {
   73.18 +                        JLabel l = new JLabel();
   73.19 +                        Dimension d = new Dimension(bookmarkImage.getIconWidth(), bookmarkImage.getIconHeight());
   73.20 +                        l.setMinimumSize(d);
   73.21 +                        l.setMaximumSize(d);
   73.22 +                        l.setPreferredSize(d);
   73.23                          // placeholder for missing present close 
   73.24 -                        component.add( new JLabel(), new GridBagConstraints(idxX++,0,1,1,0.0,0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(0,3,0,0), 0,0) );
   73.25 +                        component.add( l, new GridBagConstraints(idxX++,0,1,1,0.0,0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(0,3,0,0), 0,0) );
   73.26                      } 
   73.27                  }
   73.28                  if(closeAction != null) {
    74.1 --- a/openide.loaders/src/org/openide/loaders/DataFolder.java	Fri Jun 07 15:44:19 2013 +0200
    74.2 +++ b/openide.loaders/src/org/openide/loaders/DataFolder.java	Sat Jun 08 07:16:57 2013 +0200
    74.3 @@ -661,8 +661,9 @@
    74.4                  lightWeightLock.releaseLock();
    74.5              }
    74.6          }
    74.7 -
    74.8 -        super.handleDelete ();
    74.9 +        if (!DataObject.isCurrentActionTerminated()) {
   74.10 +            super.handleDelete();
   74.11 +        }
   74.12      }
   74.13  
   74.14      private static FileLock createLightWeightLock(DataFolder df) {//#43278
   74.15 @@ -810,7 +811,9 @@
   74.16  
   74.17              // remove original folder
   74.18              try {
   74.19 -                originalFolder.delete (lock);
   74.20 +                if (!DataObject.isCurrentActionTerminated()) {
   74.21 +                    originalFolder.delete(lock);
   74.22 +                }
   74.23              } catch (IOException e) {
   74.24                  Throwable t = Exceptions.attachLocalizedMessage(e,
   74.25                                                    org.openide.loaders.DataObject.getString("EXC_folder_delete_failed")); // NOI18N
    75.1 --- a/openide.loaders/src/org/openide/loaders/DataObject.java	Fri Jun 07 15:44:19 2013 +0200
    75.2 +++ b/openide.loaders/src/org/openide/loaders/DataObject.java	Sat Jun 08 07:16:57 2013 +0200
    75.3 @@ -55,6 +55,7 @@
    75.4  import java.lang.annotation.Target;
    75.5  import java.text.DateFormat;
    75.6  import java.util.*;
    75.7 +import java.util.concurrent.atomic.AtomicBoolean;
    75.8  import java.util.logging.Level;
    75.9  import java.util.logging.Logger;
   75.10  import javax.swing.Icon;
   75.11 @@ -105,8 +106,8 @@
   75.12      /** Name of files property. Allows listening to set of files handled by this object. */
   75.13      public static final String PROP_FILES = "files"; // NOI18N
   75.14  
   75.15 -    private static ThreadLocal<ProgressHandle> DELETE_PROGRESS
   75.16 -            = new ThreadLocal<ProgressHandle>();
   75.17 +    private static ThreadLocal<ProgressInfo> PROGRESS_INFO_TL
   75.18 +            = new ThreadLocal<ProgressInfo>();
   75.19  
   75.20      /** Extended attribute for holding the class of the loader that should
   75.21      * be used to recognize a file object before the normal processing takes
   75.22 @@ -617,17 +618,31 @@
   75.23      * @exception IOException if something went wrong
   75.24      * @return the new object
   75.25      */
   75.26 +    @NbBundle.Messages({
   75.27 +        "# {0} - File name",
   75.28 +        "LBL_Copying=Copying {0}"
   75.29 +    })
   75.30      public final DataObject copy (final DataFolder f) throws IOException {
   75.31 -        final DataObject[] result = new DataObject[1];
   75.32 -        invokeAtomicAction (f.getPrimaryFile (), new FileSystem.AtomicAction () {
   75.33 +        ProgressInfo pi = getProgressInfo();
   75.34 +        if (pi == null) {
   75.35 +            pi = initProgressInfo(Bundle.LBL_Copying(this.getName()), this);
   75.36 +        } else if (pi.isTerminated()) {
   75.37 +            return null;
   75.38 +        }
   75.39 +        try {
   75.40 +            pi.updateProgress(this);
   75.41 +            final DataObject[] result = new DataObject[1];
   75.42 +            invokeAtomicAction(f.getPrimaryFile(), new FileSystem.AtomicAction() {
   75.43                                  public void run () throws IOException {
   75.44                                      result[0] = handleCopy (f);
   75.45                                  }
   75.46                              }, null);
   75.47 -        fireOperationEvent (
   75.48 -            new OperationEvent.Copy (result[0], this), OperationEvent.COPY
   75.49 -        );
   75.50 -        return result[0];
   75.51 +            fireOperationEvent(
   75.52 +                    new OperationEvent.Copy(result[0], this), OperationEvent.COPY);
   75.53 +            return result[0];
   75.54 +        } finally {
   75.55 +            finishProgressInfoIfDone(pi, this);
   75.56 +        }
   75.57      }
   75.58  
   75.59      /** Copy this object to a folder (implemented by subclasses).
   75.60 @@ -678,38 +693,33 @@
   75.61          "# {0} - Deleted file or folder",
   75.62          "LBL_Deleting=Deleting {0}"})
   75.63      public final void delete () throws IOException {
   75.64 -        ProgressHandle ph = DELETE_PROGRESS.get();
   75.65 -        boolean finishProgress = false;
   75.66 +        ProgressInfo pi = getProgressInfo();
   75.67 +        if (pi == null) {
   75.68 +            pi = initProgressInfo(Bundle.LBL_Deleting(this.getName()), this);
   75.69 +        } else if (pi.isTerminated()) {
   75.70 +            return;
   75.71 +        }
   75.72          try {
   75.73 -            if (ph == null) {
   75.74 -                ph = ProgressHandleFactory.createHandle(
   75.75 -                        Bundle.LBL_Deleting(this.getName()));
   75.76 -                DELETE_PROGRESS.set(ph);
   75.77 -                ph.setInitialDelay(500);
   75.78 -                ph.start();
   75.79 -                finishProgress = true;
   75.80 -            }
   75.81 -            if (getPrimaryFile() == null) {
   75.82 -                ph.progress(this.getName());
   75.83 -            } else {
   75.84 -                ph.progress(this.getPrimaryFile().getPath());
   75.85 -            }
   75.86 +            pi.updateProgress(this);
   75.87              // the object is ready to be closed
   75.88              invokeAtomicAction(getPrimaryFile(), new FileSystem.AtomicAction() {
   75.89                  public void run () throws IOException {
   75.90                      handleDelete ();
   75.91 +                    if (isCurrentActionTerminated() && isValid()) {
   75.92 +                        return;
   75.93 +                    }
   75.94                      DataObjectPool.getPOOL().countRegistration(item().primaryFile);
   75.95                      item().deregister(false);
   75.96                      item().setDataObject(null);
   75.97                  }
   75.98              }, synchObject());
   75.99 +            if (pi.isTerminated() && isValid()) {
  75.100 +                return;
  75.101 +            }
  75.102              firePropertyChange(PROP_VALID, Boolean.TRUE, Boolean.FALSE);
  75.103              fireOperationEvent(new OperationEvent(this), OperationEvent.DELETE);
  75.104          } finally {
  75.105 -            if (finishProgress) {
  75.106 -                ph.finish();
  75.107 -                DELETE_PROGRESS.remove();
  75.108 -            }
  75.109 +            finishProgressInfoIfDone(pi, this);
  75.110          }
  75.111      }
  75.112  
  75.113 @@ -791,6 +801,9 @@
  75.114      * @param df folder to move object to
  75.115      * @exception IOException if an error occurs
  75.116      */
  75.117 +    @NbBundle.Messages({
  75.118 +        "# {0} - File name",
  75.119 +        "LBL_Moving=Moving {0}"})
  75.120      public final void move (final DataFolder df) throws IOException {
  75.121          class Op implements FileSystem.AtomicAction {
  75.122              FileObject old;
  75.123 @@ -805,13 +818,22 @@
  75.124              }
  75.125          }
  75.126          Op op = new Op();
  75.127 -        
  75.128 -        invokeAtomicAction (df.getPrimaryFile(), op, synchObject());
  75.129 -        
  75.130 -        firePropertyChange (PROP_PRIMARY_FILE, op.old, getPrimaryFile ());
  75.131 -        fireOperationEvent (
  75.132 -            new OperationEvent.Move (this, op.old), OperationEvent.MOVE
  75.133 -        );
  75.134 +        ProgressInfo pi = getProgressInfo();
  75.135 +        if (pi == null) {
  75.136 +            pi = initProgressInfo(Bundle.LBL_Moving(this.getName()), this);
  75.137 +        } else if (pi.isTerminated()) {
  75.138 +            return;
  75.139 +        }
  75.140 +        try {
  75.141 +            pi.updateProgress(this);
  75.142 +            invokeAtomicAction(df.getPrimaryFile(), op, synchObject());
  75.143 +
  75.144 +            firePropertyChange(PROP_PRIMARY_FILE, op.old, getPrimaryFile());
  75.145 +            fireOperationEvent(
  75.146 +                    new OperationEvent.Move(this, op.old), OperationEvent.MOVE);
  75.147 +        } finally {
  75.148 +            finishProgressInfoIfDone(pi, this);
  75.149 +        }
  75.150      }
  75.151  
  75.152      /** Move this object to another folder (implemented in subclasses).
  75.153 @@ -1557,4 +1579,128 @@
  75.154          }
  75.155          
  75.156      } // end of CreateAction
  75.157 +
  75.158 +    /**
  75.159 +     * Get existing thread-local ProgressInfo instance.
  75.160 +     *
  75.161 +     * @return The thread-local instance, or null if not yet initialized.
  75.162 +     */
  75.163 +    static ProgressInfo getProgressInfo() {
  75.164 +        return PROGRESS_INFO_TL.get();
  75.165 +    }
  75.166 +
  75.167 +    /**
  75.168 +     * Initialize a thread-local ProgressInfo instance. The instance mustn't be
  75.169 +     * already initialized.
  75.170 +     *
  75.171 +     * @return The new ProgressInfo instance.
  75.172 +     */
  75.173 +    static ProgressInfo initProgressInfo(String name, DataObject root) {
  75.174 +        assert PROGRESS_INFO_TL.get() == null;
  75.175 +        ProgressInfo pi = new ProgressInfo(name, root);
  75.176 +        PROGRESS_INFO_TL.set(pi);
  75.177 +        OBJ_LOG.log(Level.FINEST, "ProgressInfo init: {0}", name);      //NOI18N
  75.178 +        return pi;
  75.179 +    }
  75.180 +
  75.181 +    /**
  75.182 +     * Finish the progress bar and remove the thread-local ProgressInfo
  75.183 +     * instance, but only if the root object of the operation has just been
  75.184 +     * processed.
  75.185 +     */
  75.186 +    static void finishProgressInfoIfDone(ProgressInfo pi,
  75.187 +            DataObject dob) {
  75.188 +        assert PROGRESS_INFO_TL.get() == null || PROGRESS_INFO_TL.get() == pi;
  75.189 +        if (pi.finishIfDone(dob)) {
  75.190 +            PROGRESS_INFO_TL.remove();
  75.191 +        }
  75.192 +    }
  75.193 +
  75.194 +    /**
  75.195 +     * Check whether the current delete, move or copy action has been terminated
  75.196 +     * by the user.
  75.197 +     *
  75.198 +     * @return True if the action has been terminatad, false otherwise.
  75.199 +     */
  75.200 +    static boolean isCurrentActionTerminated() {
  75.201 +        ProgressInfo pi = getProgressInfo();
  75.202 +        return pi != null && pi.isTerminated();
  75.203 +    }
  75.204 +
  75.205 +    /**
  75.206 +     * Object holding information about a move, delete or copy operation. It
  75.207 +     * should be stored in a thread-local variable, see methods
  75.208 +     * {@link #getProgressInfo()}, {@link #initProgressInfo(DataObject)
  75.209 +     * and {@link #finishProgressInfoIfDone(ProgressInfo, DataObject)}}.
  75.210 +     */
  75.211 +    static class ProgressInfo {
  75.212 +
  75.213 +        private final int NAME_LEN_LIMIT = 128;
  75.214 +
  75.215 +        private final ProgressHandle progressHandle;
  75.216 +        private final AtomicBoolean terminated = new AtomicBoolean();
  75.217 +        private final DataObject root;
  75.218 +
  75.219 +        public ProgressInfo(String name, DataObject root) {
  75.220 +            final Cancellable can;
  75.221 +            if (root instanceof DataFolder) {
  75.222 +                can = new Cancellable() {
  75.223 +
  75.224 +                    @Override
  75.225 +                    public boolean cancel() {
  75.226 +                        terminated.set(true);
  75.227 +                        return true;
  75.228 +                    }
  75.229 +                };
  75.230 +            } else {
  75.231 +                can = null;
  75.232 +            }
  75.233 +            ProgressHandle ph = ProgressHandleFactory.createHandle(name, can);
  75.234 +            ph.setInitialDelay(500);
  75.235 +            ph.start();
  75.236 +            this.progressHandle = ph;
  75.237 +            this.root = root;
  75.238 +        }
  75.239 +
  75.240 +        public void updateProgress(DataObject dob) {
  75.241 +            OBJ_LOG.log(Level.FINEST, "Update ProgressInfo: {0}", dob); //NOI18N
  75.242 +            String displayName;
  75.243 +            if (dob.getPrimaryFile() == null) {
  75.244 +                displayName = dob.getName();
  75.245 +            } else {
  75.246 +                displayName = dob.getPrimaryFile().getPath();
  75.247 +            }
  75.248 +            if (displayName != null && displayName.length() > NAME_LEN_LIMIT) {
  75.249 +                displayName = "..." + displayName.substring( //NOI18N
  75.250 +                        displayName.length() - NAME_LEN_LIMIT + 3,
  75.251 +                        displayName.length());
  75.252 +            }
  75.253 +            progressHandle.progress(displayName);
  75.254 +        }
  75.255 +
  75.256 +        /**
  75.257 +         * Terminate the current action.
  75.258 +         */
  75.259 +        public void terminate() {
  75.260 +            terminated.set(true);
  75.261 +        }
  75.262 +
  75.263 +        public boolean isTerminated() {
  75.264 +            return terminated.get();
  75.265 +        }
  75.266 +
  75.267 +        /**
  75.268 +         * If the passed data object is the root object for the operation,
  75.269 +         * finish the progress bar and return true, otherwise do nothing and
  75.270 +         * return false.
  75.271 +         */
  75.272 +        public boolean finishIfDone(DataObject currentFile) {
  75.273 +            if (currentFile == root) {
  75.274 +                progressHandle.finish();
  75.275 +                return true;
  75.276 +            } else {
  75.277 +                return false;
  75.278 +            }
  75.279 +        }
  75.280 +    }
  75.281  }
    76.1 --- a/openide.loaders/test/unit/src/org/openide/loaders/DataFolderTest.java	Fri Jun 07 15:44:19 2013 +0200
    76.2 +++ b/openide.loaders/test/unit/src/org/openide/loaders/DataFolderTest.java	Sat Jun 08 07:16:57 2013 +0200
    76.3 @@ -52,12 +52,17 @@
    76.4  import java.io.IOException;
    76.5  import java.util.ArrayList;
    76.6  import java.util.Arrays;
    76.7 +import java.util.logging.Handler;
    76.8  import java.util.logging.Level;
    76.9 +import java.util.logging.LogRecord;
   76.10 +import java.util.logging.Logger;
   76.11  import javax.swing.SwingUtilities;
   76.12  
   76.13  import org.netbeans.junit.*;
   76.14 +import org.openide.loaders.DataObject.ProgressInfo;
   76.15  import org.openide.nodes.Index;
   76.16  import org.openide.nodes.Node;
   76.17 +import org.openide.util.Exceptions;
   76.18  import org.openide.util.test.MockPropertyChangeListener;
   76.19  
   76.20  /** Test recognition of objects in folders, and folder ordering.
   76.21 @@ -746,4 +751,163 @@
   76.22          public void handleRename(DataFolder folder, String newName) throws IllegalArgumentException {
   76.23          }
   76.24      }
   76.25 +
   76.26 +    public void testCancelDelete() throws IOException, InterruptedException {
   76.27 +        final FileSystem fs = FileUtil.createMemoryFileSystem();
   76.28 +        final FileObject a = fs.getRoot().createFolder("a");
   76.29 +        final FileObject b = a.createFolder("b");
   76.30 +        final FileObject c = b.createFolder("c");
   76.31 +        final DataFolder da = DataFolder.findFolder(a);
   76.32 +        final DataFolder db = DataFolder.findFolder(b);
   76.33 +        final DataFolder dc = DataFolder.findFolder(c);
   76.34 +
   76.35 +        cancelOperationInItsThread(new Runnable() {
   76.36 +
   76.37 +            @Override
   76.38 +            public void run() {
   76.39 +                try {
   76.40 +                    da.delete();
   76.41 +                } catch (IOException ex) {
   76.42 +                    Exceptions.printStackTrace(ex);
   76.43 +                }
   76.44 +            }
   76.45 +        });
   76.46 +        assertTrue("DataObject C should be valid", dc.isValid());
   76.47 +        assertTrue("DataObject B should be valid", db.isValid());
   76.48 +        assertTrue("DataObject A should be valid", da.isValid());
   76.49 +    }
   76.50 +
   76.51 +    public void testCancelCopy() throws IOException, InterruptedException {
   76.52 +        final FileSystem fs = FileUtil.createMemoryFileSystem();
   76.53 +        final FileObject r = fs.getRoot();
   76.54 +        final FileObject a = r.createFolder("a");
   76.55 +        final FileObject a2 = r.createFolder("a2");
   76.56 +        a.createFolder("b");
   76.57 +        final DataFolder da = DataFolder.findFolder(a);
   76.58 +        final DataFolder da2 = DataFolder.findFolder(a2);
   76.59 +
   76.60 +        cancelOperationInItsThread(new Runnable() {
   76.61 +
   76.62 +            @Override
   76.63 +            public void run() {
   76.64 +                try {
   76.65 +                    da.copy(da2);
   76.66 +                } catch (IOException ex) {
   76.67 +                    Exceptions.printStackTrace(ex);
   76.68 +                }
   76.69 +            }
   76.70 +        });
   76.71 +        assertNotNull("Parent should be copied", a2.getFileObject("a"));
   76.72 +        assertNull("Child should not be copied", a2.getFileObject("a/b"));
   76.73 +    }
   76.74 +
   76.75 +    public void testCancelMove() throws IOException, InterruptedException {
   76.76 +        final FileSystem fs = FileUtil.createMemoryFileSystem();
   76.77 +        final FileObject r = fs.getRoot();
   76.78 +        final FileObject a = r.createFolder("a");
   76.79 +        final FileObject a2 = r.createFolder("a2");
   76.80 +        final FileObject b = a.createFolder("b");
   76.81 +        b.createFolder("c");
   76.82 +        final DataFolder da2 = DataFolder.findFolder(a2);
   76.83 +        final DataFolder db = DataFolder.findFolder(b);
   76.84 +
   76.85 +        cancelOperationInItsThread(new Runnable() {
   76.86 +
   76.87 +            @Override
   76.88 +            public void run() {
   76.89 +                try {
   76.90 +                    db.move(da2);
   76.91 +                } catch (IOException ex) {
   76.92 +                    Exceptions.printStackTrace(ex);
   76.93 +                }
   76.94 +            }
   76.95 +        });
   76.96 +        assertNotNull("Parent should be copied", a2.getFileObject("b"));
   76.97 +        assertNull("Child should not be moved", a2.getFileObject("b/c"));
   76.98 +        assertNotNull("Child should not be deleted", a.getFileObject("b/c"));
   76.99 +    }
  76.100 +
  76.101 +    /**
  76.102 +     * Cancel an operation (move, delete, copy) that can be controlled by
  76.103 +     * ProgressInfo. The operation will be cancelled righ after the thread-local
  76.104 +     * ProgressInfo is initialized. So if the operation is recursive, it should
  76.105 +     * not be invoked on children of the root node.
  76.106 +     */
  76.107 +    private void cancelOperationInItsThread(
  76.108 +            final Runnable runnableWithTheOperation)
  76.109 +            throws InterruptedException {
  76.110 +
  76.111 +        final Logger log = Logger.getLogger(DataObject.class.getName());
  76.112 +        final ProgressInfo[] piRef = new ProgressInfo[1];
  76.113 +        final Exception[] exceptionRef = new Exception[1];
  76.114 +        final Thread terminateThread = new Thread(new Runnable() {
  76.115 +            @Override
  76.116 +            public void run() {
  76.117 +                try {
  76.118 +                    log.log(Level.FINEST, "Going to terminate");
  76.119 +                    assertNotNull("ProgressInfo should be available", piRef[0]);
  76.120 +                    piRef[0].terminate();
  76.121 +                    log.log(Level.FINEST, "Terminated");
  76.122 +                } catch (Exception e) {
  76.123 +                    exceptionRef[0] = e;
  76.124 +                }
  76.125 +            }
  76.126 +        }, "terminateThread");
  76.127 +        final Thread operationThread = new Thread(new Runnable() {
  76.128 +            @Override
  76.129 +            public void run() {
  76.130 +                try {
  76.131 +                    runnableWithTheOperation.run();
  76.132 +                    assertNull("ProgressInfo should be removed",
  76.133 +                            DataObject.getProgressInfo());
  76.134 +                } catch (Exception e) {
  76.135 +                    exceptionRef[0] = e;
  76.136 +                }
  76.137 +            }
  76.138 +        }, "operationThread");
  76.139 +        Log.enable(DataObject.class.getName(), Level.FINEST);
  76.140 +        Handler handler = new Handler() {
  76.141 +
  76.142 +            @Override
  76.143 +            public void publish(LogRecord record) {
  76.144 +                try {
  76.145 +                    if (record.getMessage().matches("ProgressInfo init:.*")) {
  76.146 +                        assertEquals("operationThread",
  76.147 +                                Thread.currentThread().getName());
  76.148 +                        piRef[0] = DataObject.getProgressInfo();
  76.149 +                    }
  76.150 +                } catch (Exception e) {
  76.151 +                    exceptionRef[0] = e;
  76.152 +                }
  76.153 +            }
  76.154 +
  76.155 +            @Override
  76.156 +            public void flush() {
  76.157 +            }
  76.158 +
  76.159 +            @Override
  76.160 +            public void close() throws SecurityException {
  76.161 +            }
  76.162 +        };
  76.163 +        try {
  76.164 +            log.addHandler(handler);
  76.165 +            Log.controlFlow(log, null, ""
  76.166 +                    + "THREAD: operationThread, MSG: ProgressInfo init:.*"
  76.167 +                    + "THREAD: operationThread, MSG: Going to terminate"
  76.168 +                    + "THREAD: terminateThread, MSG: Terminated"
  76.169 +                    + "THREAD: operationThread, MSG: Update ProgressInfo:.*",
  76.170 +                    1000);
  76.171 +            terminateThread.start();
  76.172 +            operationThread.start();
  76.173 +            terminateThread.join();
  76.174 +            operationThread.join();
  76.175 +            if (exceptionRef[0] != null) {
  76.176 +                throw new RuntimeException(
  76.177 +                        "An exception was thrown in a started thread.",
  76.178 +                        exceptionRef[0]);
  76.179 +            }
  76.180 +        } finally {
  76.181 +            log.removeHandler(handler);
  76.182 +        }
  76.183 +    }
  76.184  }
    77.1 --- a/openide.windows/src/org/openide/windows/DelegateActionMap.java	Fri Jun 07 15:44:19 2013 +0200
    77.2 +++ b/openide.windows/src/org/openide/windows/DelegateActionMap.java	Sat Jun 08 07:16:57 2013 +0200
    77.3 @@ -48,6 +48,7 @@
    77.4  import java.lang.ref.WeakReference;
    77.5  import java.util.ArrayList;
    77.6  import java.util.Arrays;
    77.7 +import java.util.Collections;
    77.8  import java.util.HashSet;
    77.9  import java.util.List;
   77.10  import java.util.Set;
   77.11 @@ -156,7 +157,12 @@
   77.12              List<Object> l;
   77.13  
   77.14              if (all) {
   77.15 -                l = Arrays.asList(m.allKeys());
   77.16 +                Object[] allKeys = m.allKeys();
   77.17 +                if( null == allKeys ) {
   77.18 +                    l = Collections.EMPTY_LIST;
   77.19 +                } else {
   77.20 +                    l = Arrays.asList(m.allKeys());
   77.21 +                }
   77.22              } else {
   77.23                  l = Arrays.asList(m.keys());
   77.24              }
    78.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    78.2 +++ b/openide.windows/test/unit/src/org/openide/windows/DelegateActionMapTest.java	Sat Jun 08 07:16:57 2013 +0200
    78.3 @@ -0,0 +1,103 @@
    78.4 +/*
    78.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    78.6 + *
    78.7 + * Copyright 2013 Oracle and/or its affiliates. All rights reserved.
    78.8 + *
    78.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   78.10 + * Other names may be trademarks of their respective owners.
   78.11 + *
   78.12 + * The contents of this file are subject to the terms of either the GNU
   78.13 + * General Public License Version 2 only ("GPL") or the Common
   78.14 + * Development and Distribution License("CDDL") (collectively, the
   78.15 + * "License"). You may not use this file except in compliance with the
   78.16 + * License. You can obtain a copy of the License at
   78.17 + * http://www.netbeans.org/cddl-gplv2.html
   78.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   78.19 + * specific language governing permissions and limitations under the
   78.20 + * License.  When distributing the software, include this License Header
   78.21 + * Notice in each file and include the License file at
   78.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   78.23 + * particular file as subject to the "Classpath" exception as provided
   78.24 + * by Oracle in the GPL Version 2 section of the License file that
   78.25 + * accompanied this code. If applicable, add the following below the
   78.26 + * License Header, with the fields enclosed by brackets [] replaced by
   78.27 + * your own identifying information:
   78.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   78.29 + *
   78.30 + * If you wish your version of this file to be governed by only the CDDL
   78.31 + * or only the GPL Version 2, indicate your decision by adding
   78.32 + * "[Contributor] elects to include this software in this distribution
   78.33 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   78.34 + * single choice of license, a recipient has the option to distribute
   78.35 + * your version of this file under either the CDDL, the GPL Version 2 or
   78.36 + * to extend the choice of license to its licensees as provided above.
   78.37 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   78.38 + * Version 2 license, then the option applies only if the new code is
   78.39 + * made subject to such option by the copyright holder.
   78.40 + *
   78.41 + * Contributor(s):
   78.42 + *
   78.43 + * Portions Copyrighted 2013 Sun Microsystems, Inc.
   78.44 + */
   78.45 +package org.openide.windows;
   78.46 +
   78.47 +import java.awt.event.ActionEvent;
   78.48 +import javax.swing.AbstractAction;
   78.49 +import javax.swing.ActionMap;
   78.50 +import org.junit.After;
   78.51 +import org.junit.AfterClass;
   78.52 +import org.junit.Before;
   78.53 +import org.junit.BeforeClass;
   78.54 +import org.junit.Test;
   78.55 +import static org.junit.Assert.*;
   78.56 +
   78.57 +/**
   78.58 + *
   78.59 + * @author S. Aubrecht
   78.60 + */
   78.61 +public class DelegateActionMapTest {
   78.62 +
   78.63 +    public DelegateActionMapTest() {
   78.64 +    }
   78.65 +
   78.66 +    @BeforeClass
   78.67 +    public static void setUpClass() {
   78.68 +    }
   78.69 +
   78.70 +    @AfterClass
   78.71 +    public static void tearDownClass() {
   78.72 +    }
   78.73 +
   78.74 +    @Before
   78.75 +    public void setUp() {
   78.76 +    }
   78.77 +
   78.78 +    @After
   78.79 +    public void tearDown() {
   78.80 +    }
   78.81 +
   78.82 +    /**
   78.83 +     * Test of allKeys method, of class DelegateActionMap.
   78.84 +     */
   78.85 +    @Test
   78.86 +    public void testNPEinAllKeys() {
   78.87 +        System.out.println( "allKeys" );
   78.88 +        TopComponent tc = new TopComponent();
   78.89 +        ActionMap delegate = new ActionMap();
   78.90 +        delegate.put( "test", new AbstractAction() {
   78.91 +
   78.92 +            @Override
   78.93 +            public void actionPerformed( ActionEvent e ) {
   78.94 +                throw new UnsupportedOperationException( "Not supported yet." ); //To change body of generated methods, choose Tools | Templates.
   78.95 +            }
   78.96 +        });
   78.97 +        assertNotNull( delegate.allKeys() );
   78.98 +        DelegateActionMap instance = new DelegateActionMap( tc, delegate );
   78.99 +        Object[] result = instance.allKeys();
  78.100 +        assertNotNull( result );
  78.101 +        instance.clear();
  78.102 +        result = instance.allKeys();
  78.103 +        assertNotNull( result );
  78.104 +    }
  78.105 +
  78.106 +}
  78.107 \ No newline at end of file
    79.1 --- a/options.api/src/org/netbeans/modules/options/OptionsDisplayerImpl.java	Fri Jun 07 15:44:19 2013 +0200
    79.2 +++ b/options.api/src/org/netbeans/modules/options/OptionsDisplayerImpl.java	Sat Jun 08 07:16:57 2013 +0200
    79.3 @@ -237,12 +237,12 @@
    79.4      }
    79.5  
    79.6      private void setUpApplyChecker(final OptionsPanel optsPanel) {
    79.7 -	final RequestProcessor.Task applyChecker = RP.post(new Runnable() {
    79.8 -	    @Override
    79.9 -	    public void run() {
   79.10 -		bAPPLY.setEnabled(optsPanel.isChanged());
   79.11 -	    }
   79.12 -	});
   79.13 +        final RequestProcessor.Task applyChecker = RP.post(new Runnable() {
   79.14 +            @Override
   79.15 +            public void run() {
   79.16 +                bAPPLY.setEnabled(optsPanel.isChanged() && optsPanel.dataValid());
   79.17 +            }
   79.18 +        });
   79.19  	applyChecker.addTaskListener(new TaskListener() {
   79.20  	    @Override
   79.21  	    public void taskFinished(Task task) {
    80.1 --- a/projectui/src/org/netbeans/modules/project/ui/ProjectTab.java	Fri Jun 07 15:44:19 2013 +0200
    80.2 +++ b/projectui/src/org/netbeans/modules/project/ui/ProjectTab.java	Sat Jun 08 07:16:57 2013 +0200
    80.3 @@ -197,8 +197,12 @@
    80.4          noProjectsLabel.setHorizontalAlignment(SwingConstants.CENTER);
    80.5          noProjectsLabel.setEnabled(false);
    80.6          Color usualWindowBkg = UIManager.getColor("window"); // NOI18N
    80.7 -        noProjectsLabel.setBackground(usualWindowBkg != null ? usualWindowBkg : Color.white);
    80.8 -        noProjectsLabel.setOpaque(true);
    80.9 +        if( null != usualWindowBkg ) {
   80.10 +            noProjectsLabel.setBackground(usualWindowBkg);
   80.11 +            noProjectsLabel.setOpaque(true);
   80.12 +        } else {
   80.13 +            noProjectsLabel.setOpaque(false);
   80.14 +        }
   80.15  
   80.16          associateLookup( ExplorerUtils.createLookup(manager, map) );
   80.17  
    81.1 --- a/team.ui/src/org/netbeans/modules/team/ui/picker/ServerPanel.java	Fri Jun 07 15:44:19 2013 +0200
    81.2 +++ b/team.ui/src/org/netbeans/modules/team/ui/picker/ServerPanel.java	Sat Jun 08 07:16:57 2013 +0200
    81.3 @@ -42,6 +42,7 @@
    81.4  package org.netbeans.modules.team.ui.picker;
    81.5  
    81.6  import java.awt.BorderLayout;
    81.7 +import java.awt.Color;
    81.8  import java.awt.Font;
    81.9  import java.awt.GridBagConstraints;
   81.10  import java.awt.GridBagLayout;
   81.11 @@ -62,6 +63,7 @@
   81.12  import javax.swing.JPopupMenu;
   81.13  import javax.swing.JToolBar;
   81.14  import javax.swing.SwingUtilities;
   81.15 +import javax.swing.border.LineBorder;
   81.16  import org.netbeans.modules.team.ui.common.ErrorNode;
   81.17  import org.netbeans.modules.team.ui.common.LinkButton;
   81.18  import org.netbeans.modules.team.ui.common.UserNode;
   81.19 @@ -214,12 +216,6 @@
   81.20          JPanel res = new JPanel( new BorderLayout( 5, 5 ) );
   81.21          res.setOpaque( false );
   81.22  
   81.23 -        JLabel title = new JLabel( NbBundle.getMessage(ServerPanel.class, "Ctl_PROJECTS") );
   81.24 -        Font f = title.getFont();
   81.25 -        f = f.deriveFont( Font.BOLD, f.getSize2D()+1 );
   81.26 -        title.setFont( f );
   81.27 -        res.add( title, BorderLayout.NORTH );
   81.28 -
   81.29          res.add( panelProjects, BorderLayout.CENTER );
   81.30  
   81.31          startLoadingProjects( false );
    82.1 --- a/testng.maven/src/org/netbeans/modules/testng/maven/MavenTestNGSupport.java	Fri Jun 07 15:44:19 2013 +0200
    82.2 +++ b/testng.maven/src/org/netbeans/modules/testng/maven/MavenTestNGSupport.java	Sat Jun 08 07:16:57 2013 +0200
    82.3 @@ -43,6 +43,7 @@
    82.4  import java.util.Collections;
    82.5  import java.util.HashSet;
    82.6  import java.util.Set;
    82.7 +import java.util.logging.Level;
    82.8  import java.util.logging.Logger;
    82.9  import org.netbeans.api.java.classpath.ClassPath;
   82.10  import org.netbeans.api.project.FileOwnerQuery;
   82.11 @@ -63,6 +64,7 @@
   82.12  import org.openide.execution.ExecutorTask;
   82.13  import org.openide.filesystems.FileObject;
   82.14  import org.openide.filesystems.FileUtil;
   82.15 +import org.openide.util.NbBundle;
   82.16  import org.openide.util.RequestProcessor;
   82.17  import org.openide.util.lookup.Lookups;
   82.18  import org.openide.util.lookup.ServiceProvider;
   82.19 @@ -91,6 +93,7 @@
   82.20          return p != null && p.getLookup().lookup(NbMavenProject.class) != null && SUPPORTED_ACTIONS.contains(action);
   82.21      }
   82.22  
   82.23 +    @NbBundle.Messages("remove_junit3_when_adding_testng=Removing JUnit 3.x dependency as TestNG has transitive dependency to JUnit 4.x.")
   82.24      public void configureProject(FileObject createdFile) {
   82.25          ClassPath cp = ClassPath.getClassPath(createdFile, ClassPath.COMPILE);
   82.26          FileObject ng = cp.findResource("org.testng.annotations.Test"); //NOI18N
   82.27 @@ -103,6 +106,16 @@
   82.28                      String groupID = "org.testng"; //NOI18N
   82.29                      String artifactID = "testng"; //NOI18N
   82.30                      if (!ModelUtils.hasModelDependency(model, groupID, artifactID)) {
   82.31 +                        String junitGroupID = "junit"; //NOI18N
   82.32 +                        String junitArtifactID = "junit"; //NOI18N
   82.33 +                        if (ModelUtils.hasModelDependency(model, junitGroupID, junitArtifactID)) {
   82.34 +                            Dependency junit = ModelUtils.checkModelDependency(model, junitGroupID, junitArtifactID, false);
   82.35 +                            String version = junit.getVersion();
   82.36 +                            if (version.startsWith("3")) { //NOI18N
   82.37 +                                LOGGER.log(Level.FINE, Bundle.remove_junit3_when_adding_testng());
   82.38 +                                model.getProject().removeDependency(junit);
   82.39 +                            }
   82.40 +                        }
   82.41                          Dependency dep = ModelUtils.checkModelDependency(model, groupID, artifactID, true);
   82.42                          dep.setVersion("6.8.1"); //NOI18N
   82.43                          dep.setScope("test"); //NOI18N