- remove Updater plugin
This commit is contained in:
parent
90a364a712
commit
53a205041a
@ -30,14 +30,6 @@
|
|||||||
<specification-version>3.1.0</specification-version>
|
<specification-version>3.1.0</specification-version>
|
||||||
</run-dependency>
|
</run-dependency>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<code-name-base>com.jme3.gde.upgrader</code-name-base>
|
|
||||||
<build-prerequisite/>
|
|
||||||
<compile-dependency/>
|
|
||||||
<run-dependency>
|
|
||||||
<specification-version>3.1.0</specification-version>
|
|
||||||
</run-dependency>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<code-name-base>org.apache.commons.logging</code-name-base>
|
<code-name-base>org.apache.commons.logging</code-name-base>
|
||||||
<build-prerequisite/>
|
<build-prerequisite/>
|
||||||
|
@ -32,14 +32,12 @@
|
|||||||
package com.jme3.gde.core;
|
package com.jme3.gde.core;
|
||||||
|
|
||||||
import com.jme3.gde.core.scene.SceneApplication;
|
import com.jme3.gde.core.scene.SceneApplication;
|
||||||
import com.jme3.gde.upgrader.Upgrader;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import javax.swing.JPopupMenu;
|
import javax.swing.JPopupMenu;
|
||||||
import org.openide.filesystems.FileChooserBuilder;
|
import org.openide.filesystems.FileChooserBuilder;
|
||||||
import org.openide.modules.ModuleInstall;
|
import org.openide.modules.ModuleInstall;
|
||||||
import org.openide.util.Exceptions;
|
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.openide.util.NbPreferences;
|
import org.openide.util.NbPreferences;
|
||||||
|
|
||||||
@ -74,16 +72,6 @@ public class Installer extends ModuleInstall {
|
|||||||
|
|
||||||
//select project folder
|
//select project folder
|
||||||
String projectDir = NbPreferences.forModule(Installer.class).get("projects_path", null);
|
String projectDir = NbPreferences.forModule(Installer.class).get("projects_path", null);
|
||||||
if (projectDir == null) {
|
|
||||||
try {
|
|
||||||
Upgrader.checkUpgrade();
|
|
||||||
NbPreferences.forModule(Installer.class).sync();
|
|
||||||
logger.log(Level.INFO, "Synced settings");
|
|
||||||
} catch (Exception ex) {
|
|
||||||
Exceptions.printStackTrace(ex);
|
|
||||||
}
|
|
||||||
projectDir = NbPreferences.forModule(Installer.class).get("projects_path", null);
|
|
||||||
}
|
|
||||||
if (projectDir == null) {
|
if (projectDir == null) {
|
||||||
javax.swing.JFileChooser fr = new javax.swing.JFileChooser();
|
javax.swing.JFileChooser fr = new javax.swing.JFileChooser();
|
||||||
javax.swing.filechooser.FileSystemView fw = fr.getFileSystemView();
|
javax.swing.filechooser.FileSystemView fw = fr.getFileSystemView();
|
||||||
|
@ -5,4 +5,4 @@ build.xml.stylesheet.CRC32=79c3b980
|
|||||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||||
nbproject/build-impl.xml.data.CRC32=7f14124d
|
nbproject/build-impl.xml.data.CRC32=7f14124d
|
||||||
nbproject/build-impl.xml.script.CRC32=d103b190
|
nbproject/build-impl.xml.script.CRC32=d103b190
|
||||||
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@2.56.1
|
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@2.67.1
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- You may freely edit this file. See harness/README in the NetBeans platform -->
|
|
||||||
<!-- for some information on what you could do (e.g. targets to override). -->
|
|
||||||
<!-- If you delete this file and reopen the project it will be recreated. -->
|
|
||||||
<project name="com.jme3.gde.upgrader" default="netbeans" basedir=".">
|
|
||||||
<description>Builds, tests, and runs the project com.jme3.gde.upgrader.</description>
|
|
||||||
<import file="nbproject/build-impl.xml"/>
|
|
||||||
</project>
|
|
@ -1,5 +0,0 @@
|
|||||||
Manifest-Version: 1.0
|
|
||||||
OpenIDE-Module: com.jme3.gde.upgrader
|
|
||||||
OpenIDE-Module-Implementation-Version: 0
|
|
||||||
OpenIDE-Module-Localizing-Bundle: com/jme3/gde/upgrader/Bundle.properties
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
*** GENERATED FROM project.xml - DO NOT EDIT ***
|
|
||||||
*** EDIT ../build.xml INSTEAD ***
|
|
||||||
-->
|
|
||||||
<project name="com.jme3.gde.upgrader-impl" basedir="..">
|
|
||||||
<fail message="Please build using Ant 1.7.1 or higher.">
|
|
||||||
<condition>
|
|
||||||
<not>
|
|
||||||
<antversion atleast="1.7.1"/>
|
|
||||||
</not>
|
|
||||||
</condition>
|
|
||||||
</fail>
|
|
||||||
<property file="nbproject/private/suite-private.properties"/>
|
|
||||||
<property file="nbproject/suite.properties"/>
|
|
||||||
<fail unless="suite.dir">You must set 'suite.dir' to point to your containing module suite</fail>
|
|
||||||
<property file="${suite.dir}/nbproject/private/platform-private.properties"/>
|
|
||||||
<property file="${suite.dir}/nbproject/platform.properties"/>
|
|
||||||
<macrodef name="property" uri="http://www.netbeans.org/ns/nb-module-project/2">
|
|
||||||
<attribute name="name"/>
|
|
||||||
<attribute name="value"/>
|
|
||||||
<sequential>
|
|
||||||
<property name="@{name}" value="${@{value}}"/>
|
|
||||||
</sequential>
|
|
||||||
</macrodef>
|
|
||||||
<macrodef name="evalprops" uri="http://www.netbeans.org/ns/nb-module-project/2">
|
|
||||||
<attribute name="property"/>
|
|
||||||
<attribute name="value"/>
|
|
||||||
<sequential>
|
|
||||||
<property name="@{property}" value="@{value}"/>
|
|
||||||
</sequential>
|
|
||||||
</macrodef>
|
|
||||||
<property file="${user.properties.file}"/>
|
|
||||||
<nbmproject2:property name="harness.dir" value="nbplatform.${nbplatform.active}.harness.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
|
|
||||||
<nbmproject2:property name="nbplatform.active.dir" value="nbplatform.${nbplatform.active}.netbeans.dest.dir" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
|
|
||||||
<nbmproject2:evalprops property="cluster.path.evaluated" value="${cluster.path}" xmlns:nbmproject2="http://www.netbeans.org/ns/nb-module-project/2"/>
|
|
||||||
<fail message="Path to 'platform' cluster missing in $${cluster.path} property or using corrupt Netbeans Platform (missing harness).">
|
|
||||||
<condition>
|
|
||||||
<not>
|
|
||||||
<contains string="${cluster.path.evaluated}" substring="platform"/>
|
|
||||||
</not>
|
|
||||||
</condition>
|
|
||||||
</fail>
|
|
||||||
<import file="${harness.dir}/build.xml"/>
|
|
||||||
</project>
|
|
@ -1,8 +0,0 @@
|
|||||||
build.xml.data.CRC32=347bf459
|
|
||||||
build.xml.script.CRC32=8cafdaf9
|
|
||||||
build.xml.stylesheet.CRC32=a56c6a5b@2.56.1
|
|
||||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
|
||||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
|
||||||
nbproject/build-impl.xml.data.CRC32=347bf459
|
|
||||||
nbproject/build-impl.xml.script.CRC32=aa96997a
|
|
||||||
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@2.56.1
|
|
@ -1,3 +0,0 @@
|
|||||||
javac.source=1.6
|
|
||||||
javac.compilerargs=-Xlint -Xlint:-serial
|
|
||||||
spec.version.base=3.1.0
|
|
@ -1,47 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://www.netbeans.org/ns/project/1">
|
|
||||||
<type>org.netbeans.modules.apisupport.project</type>
|
|
||||||
<configuration>
|
|
||||||
<data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
|
|
||||||
<code-name-base>com.jme3.gde.upgrader</code-name-base>
|
|
||||||
<suite-component/>
|
|
||||||
<module-dependencies>
|
|
||||||
<dependency>
|
|
||||||
<code-name-base>org.openide.filesystems</code-name-base>
|
|
||||||
<build-prerequisite/>
|
|
||||||
<compile-dependency/>
|
|
||||||
<run-dependency>
|
|
||||||
<specification-version>8.5.1</specification-version>
|
|
||||||
</run-dependency>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<code-name-base>org.openide.modules</code-name-base>
|
|
||||||
<build-prerequisite/>
|
|
||||||
<compile-dependency/>
|
|
||||||
<run-dependency>
|
|
||||||
<specification-version>7.35.1</specification-version>
|
|
||||||
</run-dependency>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<code-name-base>org.openide.util</code-name-base>
|
|
||||||
<build-prerequisite/>
|
|
||||||
<compile-dependency/>
|
|
||||||
<run-dependency>
|
|
||||||
<specification-version>8.29.3</specification-version>
|
|
||||||
</run-dependency>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<code-name-base>org.openide.util.lookup</code-name-base>
|
|
||||||
<build-prerequisite/>
|
|
||||||
<compile-dependency/>
|
|
||||||
<run-dependency>
|
|
||||||
<specification-version>8.19.1</specification-version>
|
|
||||||
</run-dependency>
|
|
||||||
</dependency>
|
|
||||||
</module-dependencies>
|
|
||||||
<public-packages>
|
|
||||||
<package>com.jme3.gde.upgrader</package>
|
|
||||||
</public-packages>
|
|
||||||
</data>
|
|
||||||
</configuration>
|
|
||||||
</project>
|
|
@ -1 +0,0 @@
|
|||||||
suite.dir=${basedir}/..
|
|
@ -1,5 +0,0 @@
|
|||||||
OpenIDE-Module-Display-Category=jMonkeyEngine
|
|
||||||
OpenIDE-Module-Long-Description=\
|
|
||||||
Handles upgrades of the SDK, allows import of previous installs settings
|
|
||||||
OpenIDE-Module-Name=Upgrader
|
|
||||||
OpenIDE-Module-Short-Description=Handles upgrades of the SDK
|
|
@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* To change this template, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package com.jme3.gde.upgrader;
|
|
||||||
|
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
import org.netbeans.upgrade.AutoUpgrade;
|
|
||||||
import org.openide.util.Exceptions;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author normenhansen
|
|
||||||
*/
|
|
||||||
public class Upgrader {
|
|
||||||
private static final Logger logger = Logger.getLogger(Upgrader.class.getName());
|
|
||||||
public static void checkUpgrade(){
|
|
||||||
try {
|
|
||||||
logger.log(Level.INFO, "Start upgrade..");
|
|
||||||
AutoUpgrade.main(new String[0]);
|
|
||||||
logger.log(Level.INFO, "Finished upgrade.");
|
|
||||||
} catch (Exception ex) {
|
|
||||||
Exceptions.printStackTrace(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,236 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.license;
|
|
||||||
|
|
||||||
import java.awt.BorderLayout;
|
|
||||||
import java.awt.Dialog;
|
|
||||||
import java.awt.Dimension;
|
|
||||||
import java.awt.FlowLayout;
|
|
||||||
import java.awt.event.ActionEvent;
|
|
||||||
import java.awt.event.ActionListener;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ResourceBundle;
|
|
||||||
import javax.swing.AbstractAction;
|
|
||||||
import javax.swing.AbstractButton;
|
|
||||||
import javax.swing.BorderFactory;
|
|
||||||
import javax.swing.JButton;
|
|
||||||
import javax.swing.JComponent;
|
|
||||||
import javax.swing.JDialog;
|
|
||||||
import javax.swing.JPanel;
|
|
||||||
import javax.swing.KeyStroke;
|
|
||||||
import org.netbeans.util.Util;
|
|
||||||
import org.openide.util.NbBundle;
|
|
||||||
import org.openide.util.Utilities;
|
|
||||||
/**
|
|
||||||
* Displays LicensePanel to user. User must accept license to continue.
|
|
||||||
* if user does not accept license UserCancelException is thrown.
|
|
||||||
*
|
|
||||||
* @author Marek Slama
|
|
||||||
*/
|
|
||||||
|
|
||||||
public final class AcceptLicense {
|
|
||||||
|
|
||||||
private static String command;
|
|
||||||
|
|
||||||
/** If License was not accepted during installation user must accept it here.
|
|
||||||
*/
|
|
||||||
public static void showLicensePanel () throws Exception {
|
|
||||||
Util.setDefaultLookAndFeel();
|
|
||||||
URL url = AcceptLicense.class.getResource("LICENSE.txt"); // NOI18N
|
|
||||||
LicensePanel licensePanel = new LicensePanel(url);
|
|
||||||
ResourceBundle bundle = NbBundle.getBundle(AcceptLicense.class);
|
|
||||||
String yesLabel = bundle.getString("MSG_LicenseYesButton");
|
|
||||||
String noLabel = bundle.getString("MSG_LicenseNoButton");
|
|
||||||
JButton yesButton = new JButton();
|
|
||||||
JButton noButton = new JButton();
|
|
||||||
setLocalizedText(yesButton,yesLabel);
|
|
||||||
setLocalizedText(noButton,noLabel);
|
|
||||||
|
|
||||||
yesButton.setActionCommand("yes"); // NOI18N
|
|
||||||
noButton.setActionCommand("no"); // NOI18N
|
|
||||||
|
|
||||||
yesButton.getAccessibleContext().setAccessibleName(bundle.getString("ACSN_AcceptButton"));
|
|
||||||
yesButton.getAccessibleContext().setAccessibleName(bundle.getString("ACSD_AcceptButton"));
|
|
||||||
|
|
||||||
noButton.getAccessibleContext().setAccessibleName(bundle.getString("ACSN_RejectButton"));
|
|
||||||
noButton.getAccessibleContext().setAccessibleName(bundle.getString("ACSD_RejectButton"));
|
|
||||||
|
|
||||||
Dimension yesPF = yesButton.getPreferredSize();
|
|
||||||
Dimension noPF = noButton.getPreferredSize();
|
|
||||||
int maxWidth = Math.max(yesButton.getPreferredSize().width, noButton.getPreferredSize().width);
|
|
||||||
int maxHeight = Math.max(yesButton.getPreferredSize().height, noButton.getPreferredSize().height);
|
|
||||||
yesButton.setPreferredSize(new Dimension(maxWidth, maxHeight));
|
|
||||||
noButton.setPreferredSize(new Dimension(maxWidth, maxHeight));
|
|
||||||
|
|
||||||
final JDialog d = new JDialog(null, bundle.getString("MSG_LicenseDlgTitle"), Dialog.ModalityType.APPLICATION_MODAL);
|
|
||||||
Util.initIcons(d);
|
|
||||||
d.getAccessibleContext().setAccessibleName(bundle.getString("ACSN_LicenseDlg"));
|
|
||||||
d.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_LicenseDlg"));
|
|
||||||
d.getContentPane().add(licensePanel,BorderLayout.CENTER);
|
|
||||||
ActionListener listener = new ActionListener () {
|
|
||||||
public void actionPerformed (ActionEvent e) {
|
|
||||||
command = e.getActionCommand();
|
|
||||||
d.setVisible(false);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
yesButton.addActionListener(listener);
|
|
||||||
noButton.addActionListener(listener);
|
|
||||||
JPanel buttonPanel = new JPanel();
|
|
||||||
buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
|
|
||||||
buttonPanel.setBorder(BorderFactory.createEmptyBorder(17,12,11,11));
|
|
||||||
buttonPanel.add(yesButton);
|
|
||||||
buttonPanel.add(noButton);
|
|
||||||
d.getContentPane().add(buttonPanel,BorderLayout.SOUTH);
|
|
||||||
d.setSize(new Dimension(600,600));
|
|
||||||
d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
|
|
||||||
d.setResizable(true);
|
|
||||||
d.getRootPane().setDefaultButton(yesButton);
|
|
||||||
d.getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke("ESCAPE"), "exit"); //NOI18N
|
|
||||||
d.getRootPane().getActionMap().put("exit", new AbstractAction() { //NOI18N
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
command = "no"; //NOI18N
|
|
||||||
d.setVisible(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
licensePanel.jEditorPane1.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ENTER"), "accept"); //NOI18N
|
|
||||||
licensePanel.jEditorPane1.getActionMap().put("accept", new AbstractAction() { //NOI18N
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
command = "yes"; //NOI18N
|
|
||||||
d.setVisible(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//Center on screen
|
|
||||||
d.setLocationRelativeTo(null);
|
|
||||||
d.setVisible(true);
|
|
||||||
|
|
||||||
if ("yes".equals(command)) { // NOI18N
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
throw new org.openide.util.UserCancelException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Actual setter of the text & mnemonics for the AbstractButton or
|
|
||||||
* their subclasses. We must copy necessary code from org.openide.awt.Mnemonics
|
|
||||||
* because org.openide.awt module is not available yet when this code is called.
|
|
||||||
* @param item AbstractButton
|
|
||||||
* @param text new label
|
|
||||||
*/
|
|
||||||
private static void setLocalizedText (AbstractButton button, String text) {
|
|
||||||
if (text == null) {
|
|
||||||
button.setText(null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i = findMnemonicAmpersand(text);
|
|
||||||
|
|
||||||
if (i < 0) {
|
|
||||||
// no '&' - don't set the mnemonic
|
|
||||||
button.setText(text);
|
|
||||||
button.setMnemonic(0);
|
|
||||||
} else {
|
|
||||||
button.setText(text.substring(0, i) + text.substring(i + 1));
|
|
||||||
|
|
||||||
if (Utilities.isMac()) {
|
|
||||||
// there shall be no mnemonics on macosx.
|
|
||||||
//#55864
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
char ch = text.charAt(i + 1);
|
|
||||||
|
|
||||||
// it's latin character or arabic digit,
|
|
||||||
// setting it as mnemonics
|
|
||||||
button.setMnemonic(ch);
|
|
||||||
|
|
||||||
// If it's something like "Save &As", we need to set another
|
|
||||||
// mnemonic index (at least under 1.4 or later)
|
|
||||||
// see #29676
|
|
||||||
button.setDisplayedMnemonicIndex(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Searches for an ampersand in a string which indicates a mnemonic.
|
|
||||||
* Recognizes the following cases:
|
|
||||||
* <ul>
|
|
||||||
* <li>"Drag & Drop", "Ampersand ('&')" - don't have mnemonic ampersand.
|
|
||||||
* "&" is not found before " " (space), or if enclosed in "'"
|
|
||||||
* (single quotation marks).
|
|
||||||
* <li>"&File", "Save &As..." - do have mnemonic ampersand.
|
|
||||||
* <li>"Rock & Ro&ll", "Underline the '&' &character" - also do have
|
|
||||||
* mnemonic ampersand, but the second one.
|
|
||||||
* </ul>
|
|
||||||
* @param text text to search
|
|
||||||
* @return the position of mnemonic ampersand in text, or -1 if there is none
|
|
||||||
*/
|
|
||||||
public static int findMnemonicAmpersand(String text) {
|
|
||||||
int i = -1;
|
|
||||||
|
|
||||||
do {
|
|
||||||
// searching for the next ampersand
|
|
||||||
i = text.indexOf('&', i + 1);
|
|
||||||
|
|
||||||
if ((i >= 0) && ((i + 1) < text.length())) {
|
|
||||||
// before ' '
|
|
||||||
if (text.charAt(i + 1) == ' ') {
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// before ', and after '
|
|
||||||
} else if ((text.charAt(i + 1) == '\'') && (i > 0) && (text.charAt(i - 1) == '\'')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ampersand is marking mnemonics
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
} while (i >= 0);
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,66 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
#Licence dialog
|
|
||||||
MSG_LicenseDlgTitle=License Agreement
|
|
||||||
MSG_LicenseDlgLabelTop=Please read the following license agreement carefully.
|
|
||||||
MSG_LicenseDlgLabelBottom=If you accept all terms of the agreement, click I Accept \
|
|
||||||
to start NetBeans IDE. You must accept the agreement to start NetBeans IDE.
|
|
||||||
MSG_LicenseYesButton=I &Accept
|
|
||||||
MSG_LicenseNoButton=E&xit
|
|
||||||
|
|
||||||
ACSN_LicensePanel=License Panel
|
|
||||||
ACSD_LicensePanel=N/A
|
|
||||||
|
|
||||||
ACSN_LicenseDlg=License Dialog
|
|
||||||
ACSD_LicenseDlg=License Agreement
|
|
||||||
|
|
||||||
ACSN_EditorPane=License Text
|
|
||||||
ACSD_EditorPane=Please read the following license agreement carefully. \
|
|
||||||
If you accept all terms of the agreement, click I Accept \
|
|
||||||
to start NetBeans IDE. You must accept the agreement to start NetBeans IDE.
|
|
||||||
|
|
||||||
ACSN_AcceptButton=Accept Button
|
|
||||||
ACSD_AcceptButton=Click to accept license and continue
|
|
||||||
|
|
||||||
ACSN_RejectButton=Reject Button
|
|
||||||
ACSD_RejectButton=Click to reject license and exit
|
|
@ -1,87 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
|
|
||||||
<Form version="1.2" maxVersion="1.2" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
|
||||||
<Properties>
|
|
||||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
|
||||||
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
|
|
||||||
<EmptyBorder bottom="0" left="12" right="11" top="12"/>
|
|
||||||
</Border>
|
|
||||||
</Property>
|
|
||||||
</Properties>
|
|
||||||
<AuxValues>
|
|
||||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
|
||||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
|
||||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
|
||||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
|
||||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
|
||||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
|
||||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
|
||||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
|
||||||
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,27,0,0,2,124"/>
|
|
||||||
</AuxValues>
|
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout">
|
|
||||||
<Property name="axis" type="int" value="1"/>
|
|
||||||
</Layout>
|
|
||||||
<SubComponents>
|
|
||||||
<Component class="javax.swing.JTextArea" name="jTextAreaTop">
|
|
||||||
<Properties>
|
|
||||||
<Property name="background" type="java.awt.Color" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
|
||||||
<Connection component="Form" name="background" type="property"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="columns" type="int" value="20"/>
|
|
||||||
<Property name="editable" type="boolean" value="false"/>
|
|
||||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
|
||||||
<Font name="Dialog" size="12" style="1"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="lineWrap" type="boolean" value="true"/>
|
|
||||||
<Property name="rows" type="int" value="1"/>
|
|
||||||
<Property name="text" preCode="jTextAreaTop.setText(bundle.getString("MSG_LicenseDlgLabelTop"));"/>
|
|
||||||
<Property name="wrapStyleWord" type="boolean" value="true"/>
|
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
|
||||||
<Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
|
|
||||||
<Insets value="[0, 0, 2, 0]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="requestFocusEnabled" type="boolean" value="false"/>
|
|
||||||
</Properties>
|
|
||||||
</Component>
|
|
||||||
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
|
|
||||||
<AuxValues>
|
|
||||||
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
|
||||||
</AuxValues>
|
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
|
||||||
<SubComponents>
|
|
||||||
<Component class="javax.swing.JEditorPane" name="jEditorPane1">
|
|
||||||
<Properties>
|
|
||||||
<Property name="editable" type="boolean" value="false"/>
|
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[500, 500]"/>
|
|
||||||
</Property>
|
|
||||||
</Properties>
|
|
||||||
<AuxValues>
|
|
||||||
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
|
|
||||||
</AuxValues>
|
|
||||||
</Component>
|
|
||||||
</SubComponents>
|
|
||||||
</Container>
|
|
||||||
<Component class="javax.swing.JTextArea" name="jTextAreaBottom">
|
|
||||||
<Properties>
|
|
||||||
<Property name="background" type="java.awt.Color" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
|
||||||
<Connection component="Form" name="background" type="property"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="columns" type="int" value="20"/>
|
|
||||||
<Property name="editable" type="boolean" value="false"/>
|
|
||||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
|
||||||
<Font name="Dialog" size="12" style="1"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="lineWrap" type="boolean" value="true"/>
|
|
||||||
<Property name="rows" type="int" value="2"/>
|
|
||||||
<Property name="text" preCode="jTextAreaBottom.setText(bundle.getString("MSG_LicenseDlgLabelBottom"));"/>
|
|
||||||
<Property name="wrapStyleWord" type="boolean" value="true"/>
|
|
||||||
<Property name="focusable" type="boolean" value="false"/>
|
|
||||||
<Property name="requestFocusEnabled" type="boolean" value="false"/>
|
|
||||||
</Properties>
|
|
||||||
</Component>
|
|
||||||
</SubComponents>
|
|
||||||
</Form>
|
|
@ -1,169 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.license;
|
|
||||||
|
|
||||||
import java.awt.Rectangle;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ResourceBundle;
|
|
||||||
|
|
||||||
import javax.swing.AbstractAction;
|
|
||||||
import javax.swing.ActionMap;
|
|
||||||
import javax.swing.SwingConstants;
|
|
||||||
import javax.swing.text.DefaultEditorKit;
|
|
||||||
import org.openide.util.NbBundle;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class displays license during first start of IDE.
|
|
||||||
*
|
|
||||||
* @author Marek Slama
|
|
||||||
*/
|
|
||||||
final class LicensePanel extends javax.swing.JPanel {
|
|
||||||
|
|
||||||
/** Creates new form LicensePanel */
|
|
||||||
public LicensePanel(URL url) {
|
|
||||||
this.url = url;
|
|
||||||
initComponents();
|
|
||||||
initAccessibility();
|
|
||||||
try {
|
|
||||||
jEditorPane1.setPage(url);
|
|
||||||
} catch (IOException exc) {
|
|
||||||
//Problem with locating file
|
|
||||||
System.err.println("Exception: " + exc.getMessage()); //NOI18N
|
|
||||||
exc.printStackTrace();
|
|
||||||
}
|
|
||||||
ActionMap actionMap = jEditorPane1.getActionMap();
|
|
||||||
actionMap.put(DefaultEditorKit.upAction, new ScrollAction(-1));
|
|
||||||
actionMap.put(DefaultEditorKit.downAction, new ScrollAction(1));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initAccessibility() {
|
|
||||||
this.getAccessibleContext().setAccessibleName
|
|
||||||
(bundle.getString("ACSN_LicensePanel"));
|
|
||||||
this.getAccessibleContext().setAccessibleDescription
|
|
||||||
(bundle.getString("ACSD_LicensePanel"));
|
|
||||||
|
|
||||||
jEditorPane1.getAccessibleContext().setAccessibleName
|
|
||||||
(bundle.getString("ACSN_EditorPane"));
|
|
||||||
jEditorPane1.getAccessibleContext().setAccessibleDescription
|
|
||||||
(bundle.getString("ACSD_EditorPane"));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** This method is called from within the constructor to
|
|
||||||
* initialize the form.
|
|
||||||
* WARNING: Do NOT modify this code. The content of this method is
|
|
||||||
* always regenerated by the Form Editor.
|
|
||||||
*/
|
|
||||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
|
||||||
private void initComponents() {
|
|
||||||
|
|
||||||
jTextAreaTop = new javax.swing.JTextArea();
|
|
||||||
jScrollPane1 = new javax.swing.JScrollPane();
|
|
||||||
jEditorPane1 = new javax.swing.JEditorPane();
|
|
||||||
jTextAreaBottom = new javax.swing.JTextArea();
|
|
||||||
|
|
||||||
setBorder(javax.swing.BorderFactory.createEmptyBorder(12, 12, 0, 11));
|
|
||||||
setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.Y_AXIS));
|
|
||||||
|
|
||||||
jTextAreaTop.setBackground(getBackground());
|
|
||||||
jTextAreaTop.setColumns(20);
|
|
||||||
jTextAreaTop.setEditable(false);
|
|
||||||
jTextAreaTop.setFont(new java.awt.Font("Dialog", 1, 12));
|
|
||||||
jTextAreaTop.setLineWrap(true);
|
|
||||||
jTextAreaTop.setRows(1);
|
|
||||||
jTextAreaTop.setText(bundle.getString("MSG_LicenseDlgLabelTop"));
|
|
||||||
jTextAreaTop.setWrapStyleWord(true);
|
|
||||||
jTextAreaTop.setFocusable(false);
|
|
||||||
jTextAreaTop.setMargin(new java.awt.Insets(0, 0, 2, 0));
|
|
||||||
jTextAreaTop.setRequestFocusEnabled(false);
|
|
||||||
add(jTextAreaTop);
|
|
||||||
|
|
||||||
jEditorPane1.setEditable(false);
|
|
||||||
jEditorPane1.setPreferredSize(new java.awt.Dimension(500, 500));
|
|
||||||
jScrollPane1.setViewportView(jEditorPane1);
|
|
||||||
|
|
||||||
add(jScrollPane1);
|
|
||||||
|
|
||||||
jTextAreaBottom.setBackground(getBackground());
|
|
||||||
jTextAreaBottom.setColumns(20);
|
|
||||||
jTextAreaBottom.setEditable(false);
|
|
||||||
jTextAreaBottom.setFont(new java.awt.Font("Dialog", 1, 12));
|
|
||||||
jTextAreaBottom.setLineWrap(true);
|
|
||||||
jTextAreaBottom.setRows(2);
|
|
||||||
jTextAreaBottom.setText(bundle.getString("MSG_LicenseDlgLabelBottom"));
|
|
||||||
jTextAreaBottom.setWrapStyleWord(true);
|
|
||||||
jTextAreaBottom.setFocusable(false);
|
|
||||||
jTextAreaBottom.setRequestFocusEnabled(false);
|
|
||||||
add(jTextAreaBottom);
|
|
||||||
}// </editor-fold>//GEN-END:initComponents
|
|
||||||
|
|
||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
||||||
javax.swing.JEditorPane jEditorPane1;
|
|
||||||
private javax.swing.JScrollPane jScrollPane1;
|
|
||||||
private javax.swing.JTextArea jTextAreaBottom;
|
|
||||||
private javax.swing.JTextArea jTextAreaTop;
|
|
||||||
// End of variables declaration//GEN-END:variables
|
|
||||||
private URL url;
|
|
||||||
private static final ResourceBundle bundle = NbBundle.getBundle(LicensePanel.class);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An action to scroll the browser content up or down.
|
|
||||||
*/
|
|
||||||
private class ScrollAction extends AbstractAction {
|
|
||||||
int direction;
|
|
||||||
|
|
||||||
public ScrollAction(int direction) {
|
|
||||||
this.direction = direction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void actionPerformed(java.awt.event.ActionEvent e) {
|
|
||||||
Rectangle r = jEditorPane1.getVisibleRect();
|
|
||||||
int increment = jEditorPane1.getScrollableUnitIncrement(r, SwingConstants.VERTICAL, direction);
|
|
||||||
r.y += (increment * direction);
|
|
||||||
jEditorPane1.scrollRectToVisible(r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,314 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2012 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2010 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade;
|
|
||||||
import java.beans.PropertyVetoException;
|
|
||||||
import java.io.*;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
import javax.swing.JDialog;
|
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import org.netbeans.upgrade.systemoptions.Importer;
|
|
||||||
import org.netbeans.util.Util;
|
|
||||||
import org.openide.ErrorManager;
|
|
||||||
import org.openide.filesystems.FileUtil;
|
|
||||||
import org.openide.filesystems.LocalFileSystem;
|
|
||||||
import org.openide.filesystems.MultiFileSystem;
|
|
||||||
import org.openide.filesystems.XMLFileSystem;
|
|
||||||
import org.openide.modules.InstalledFileLocator;
|
|
||||||
import org.openide.util.Exceptions;
|
|
||||||
import org.openide.util.NbBundle;
|
|
||||||
import org.openide.util.Utilities;
|
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
/** pending
|
|
||||||
*
|
|
||||||
* @author Jiri Rechtacek, Jiri Skrivanek
|
|
||||||
*/
|
|
||||||
public final class AutoUpgrade {
|
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(AutoUpgrade.class.getName());
|
|
||||||
|
|
||||||
public static void main (String[] args) throws Exception {
|
|
||||||
// show warning if starts for the 1st time on changed userdir (see issue 196075)
|
|
||||||
String noteChangedDefaults = "";
|
|
||||||
if (madeObsoleteMessagesLog()) {
|
|
||||||
noteChangedDefaults = NbBundle.getMessage (AutoUpgrade.class, "MSG_ChangedDefaults", System.getProperty ("netbeans.user", "")); // NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
// try new place
|
|
||||||
File sourceFolder = checkPreviousOnOsSpecificPlace (NEWER_VERSION_TO_CHECK);
|
|
||||||
if (sourceFolder == null) {
|
|
||||||
// try former place
|
|
||||||
sourceFolder = checkPrevious (VERSION_TO_CHECK);
|
|
||||||
}
|
|
||||||
if (sourceFolder != null) {
|
|
||||||
if (!showUpgradeDialog (sourceFolder, noteChangedDefaults)) {
|
|
||||||
throw new org.openide.util.UserCancelException ();
|
|
||||||
}
|
|
||||||
copyToUserdir(sourceFolder);
|
|
||||||
//migrates SystemOptions, converts them as a Preferences
|
|
||||||
Importer.doImport();
|
|
||||||
} else if (! noteChangedDefaults.isEmpty()) {
|
|
||||||
// show a note only
|
|
||||||
showNoteDialog(noteChangedDefaults);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//#75324 NBplatform settings are not imported
|
|
||||||
private static void upgradeBuildProperties(final File sourceFolder, final String[] version) throws IOException {
|
|
||||||
File userdir = new File(System.getProperty("netbeans.user", ""));//NOI18N
|
|
||||||
String[] regexForSelection = new String[]{
|
|
||||||
"^nbplatform[.](?!default[.]netbeans[.]dest[.]dir).+[.].+=.+$", //NOI18N
|
|
||||||
// #161616
|
|
||||||
"^var[.].*" //NOI18N
|
|
||||||
};
|
|
||||||
Copy.appendSelectedLines(new File(sourceFolder, "build.properties"), //NOI18N
|
|
||||||
userdir, regexForSelection);
|
|
||||||
}
|
|
||||||
|
|
||||||
// the order of VERSION_TO_CHECK here defines the precedence of imports
|
|
||||||
// the first one will be choosen for import
|
|
||||||
final static private List<String> VERSION_TO_CHECK =
|
|
||||||
Arrays.asList (new String[] {".jmonkeyplatform/3.0Beta", ".jmonkeyplatform/3.0RC2", ".jmonkeyplatform/3.0RC3" });//".netbeans/7.1.2", ".netbeans/7.1.1", ".netbeans/7.1", ".netbeans/7.0", ".netbeans/6.9" });//NOI18N
|
|
||||||
// Arrays.asList (new String[] {"build/3.0RC2", ".netbeans/7.1.1", ".netbeans/7.1", ".netbeans/7.0", ".netbeans/6.9" });//NOI18N
|
|
||||||
|
|
||||||
// userdir on OS specific root of userdir (see issue 196075)
|
|
||||||
static final List<String> NEWER_VERSION_TO_CHECK =
|
|
||||||
Arrays.asList ("3.0RC3", "3.0RC2", "3.0Beta"/*7.2, ..."*/); //NOI18N
|
|
||||||
|
|
||||||
|
|
||||||
private static File checkPreviousOnOsSpecificPlace (final List<String> versionsToCheck) {
|
|
||||||
String defaultUserdirRoot = System.getProperty ("netbeans.default_userdir_root"); // NOI18N
|
|
||||||
//normen: to test in ide
|
|
||||||
if(defaultUserdirRoot == null){
|
|
||||||
try {
|
|
||||||
defaultUserdirRoot = new File(System.getProperty("netbeans.user")).getParentFile().getCanonicalPath();
|
|
||||||
} catch (Exception ex) {
|
|
||||||
Exceptions.printStackTrace(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LOGGER.log(Level.INFO, "determined userdir root of {0}", defaultUserdirRoot);
|
|
||||||
File sourceFolder;
|
|
||||||
if (defaultUserdirRoot != null) {
|
|
||||||
File userHomeFile = new File (defaultUserdirRoot);
|
|
||||||
for (String ver : versionsToCheck) {
|
|
||||||
sourceFolder = new File (userHomeFile.getAbsolutePath (), ver);
|
|
||||||
if (sourceFolder.exists () && sourceFolder.isDirectory ()) {
|
|
||||||
return sourceFolder;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
static private File checkPrevious (final List<String> versionsToCheck) {
|
|
||||||
String userHome = System.getProperty ("user.home"); // NOI18N
|
|
||||||
File sourceFolder = null;
|
|
||||||
|
|
||||||
if (userHome != null) {
|
|
||||||
File userHomeFile = new File (userHome);
|
|
||||||
Iterator<String> it = versionsToCheck.iterator ();
|
|
||||||
String ver;
|
|
||||||
while (it.hasNext () && sourceFolder == null) {
|
|
||||||
ver = it.next ();
|
|
||||||
sourceFolder = new File (userHomeFile.getAbsolutePath (), ver);
|
|
||||||
|
|
||||||
if (sourceFolder.isDirectory ()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
sourceFolder = null;
|
|
||||||
}
|
|
||||||
return sourceFolder;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean madeObsoleteMessagesLog() {
|
|
||||||
String ud = System.getProperty ("netbeans.user", "");
|
|
||||||
if ((Utilities.isMac() || Utilities.isWindows()) && ud.endsWith(File.separator + "dev")) { // NOI18N
|
|
||||||
String defaultUserdirRoot = System.getProperty ("netbeans.default_userdir_root", null); // NOI18N
|
|
||||||
if (defaultUserdirRoot != null) {
|
|
||||||
if (new File(ud).getParentFile().equals(new File(defaultUserdirRoot))) {
|
|
||||||
// check the former default root
|
|
||||||
String userHome = System.getProperty("user.home"); // NOI18N
|
|
||||||
if (userHome != null) {
|
|
||||||
File oldUserdir = new File(new File (userHome).getAbsolutePath (), ".netbeans/dev"); // NOI18N
|
|
||||||
if (oldUserdir.exists() && ! oldUserdir.equals(new File(ud))) {
|
|
||||||
// 1. modify messages log
|
|
||||||
File log = new File (oldUserdir, "/var/log/messages.log");
|
|
||||||
File obsolete = new File (oldUserdir, "/var/log/messages.log.obsolete");
|
|
||||||
if (! obsolete.exists() && log.exists()) {
|
|
||||||
return log.renameTo(obsolete);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean showUpgradeDialog (final File source, String note) {
|
|
||||||
Util.setDefaultLookAndFeel();
|
|
||||||
JOptionPane p = new JOptionPane (
|
|
||||||
new AutoUpgradePanel (source.getAbsolutePath (), note),
|
|
||||||
JOptionPane.QUESTION_MESSAGE,
|
|
||||||
JOptionPane.YES_NO_OPTION
|
|
||||||
);
|
|
||||||
JDialog d = Util.createJOptionDialog(p, NbBundle.getMessage (AutoUpgrade.class, "MSG_Confirmation_Title"));
|
|
||||||
d.setVisible (true);
|
|
||||||
|
|
||||||
return new Integer (JOptionPane.YES_OPTION).equals (p.getValue ());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void showNoteDialog (String note) {
|
|
||||||
Util.setDefaultLookAndFeel();
|
|
||||||
JOptionPane p = new JOptionPane(new AutoUpgradePanel (null, note), JOptionPane.INFORMATION_MESSAGE, JOptionPane.DEFAULT_OPTION);
|
|
||||||
JDialog d = Util.createJOptionDialog(p, NbBundle.getMessage (AutoUpgrade.class, "MSG_Note_Title"));
|
|
||||||
d.setVisible (true);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void doUpgrade (File source, String oldVersion)
|
|
||||||
throws java.io.IOException, java.beans.PropertyVetoException {
|
|
||||||
File userdir = new File(System.getProperty ("netbeans.user", "")); // NOI18N
|
|
||||||
|
|
||||||
java.util.Set<?> includeExclude;
|
|
||||||
try {
|
|
||||||
Reader r = new InputStreamReader (
|
|
||||||
AutoUpgrade.class.getResourceAsStream ("copy" + oldVersion), // NOI18N
|
|
||||||
"utf-8"); // NOI18N
|
|
||||||
includeExclude = IncludeExclude.create (r);
|
|
||||||
r.close ();
|
|
||||||
} catch (IOException ex) {
|
|
||||||
throw new IOException("Cannot import from version: " + oldVersion, ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
ErrorManager.getDefault ().log (
|
|
||||||
ErrorManager.USER, "Import: Old version: " // NOI18N
|
|
||||||
+ oldVersion + ". Importing from " + source + " to " + userdir // NOI18N
|
|
||||||
);
|
|
||||||
|
|
||||||
File oldConfig = new File (source, "config"); // NOI18N
|
|
||||||
org.openide.filesystems.FileSystem old;
|
|
||||||
{
|
|
||||||
LocalFileSystem lfs = new LocalFileSystem ();
|
|
||||||
lfs.setRootDirectory (oldConfig);
|
|
||||||
|
|
||||||
XMLFileSystem xmlfs = null;
|
|
||||||
try {
|
|
||||||
URL url = AutoUpgrade.class.getResource("layer" + oldVersion + ".xml"); // NOI18N
|
|
||||||
xmlfs = (url != null) ? new XMLFileSystem(url) : null;
|
|
||||||
} catch (SAXException ex) {
|
|
||||||
throw new IOException("Cannot import from version: " + oldVersion, ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
old = (xmlfs != null) ? createLayeredSystem(lfs, xmlfs) : lfs;
|
|
||||||
}
|
|
||||||
|
|
||||||
Copy.copyDeep (old.getRoot (), FileUtil.getConfigRoot (), includeExclude, PathTransformation.getInstance(oldVersion));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* copy-pasted method doUpgrade and slightly modified to copy files relative
|
|
||||||
* to userdir.
|
|
||||||
*/
|
|
||||||
private static void doNonStandardUpgrade (File source,String oldVersion)
|
|
||||||
throws IOException, PropertyVetoException {
|
|
||||||
File userdir = new File(System.getProperty("netbeans.user", "")); // NOI18N
|
|
||||||
java.util.Set<?> includeExclude;
|
|
||||||
try {
|
|
||||||
InputStream is = AutoUpgrade.class.getResourceAsStream("nonstandard" + oldVersion); // NOI18N
|
|
||||||
if (is == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Reader r = new InputStreamReader(is, "utf-8"); // NOI18N
|
|
||||||
includeExclude = IncludeExclude.create(r);
|
|
||||||
r.close();
|
|
||||||
} catch (IOException ex) {
|
|
||||||
throw new IOException("Cannot import from version: " + oldVersion + "nonstandard", ex);
|
|
||||||
}
|
|
||||||
ErrorManager.getDefault ().log (ErrorManager.USER, "Import: Old version: " // NOI18N
|
|
||||||
+ oldVersion + "nonstandard" + ". Importing from " + source + " to " + userdir // NOI18N
|
|
||||||
);
|
|
||||||
|
|
||||||
LocalFileSystem old = new LocalFileSystem();
|
|
||||||
old.setRootDirectory(source);
|
|
||||||
|
|
||||||
LocalFileSystem nfs = new LocalFileSystem();
|
|
||||||
nfs.setRootDirectory(userdir);
|
|
||||||
Copy.copyDeep(old.getRoot(), nfs.getRoot(), includeExclude, PathTransformation.getInstance(oldVersion));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static MultiFileSystem createLayeredSystem(final LocalFileSystem lfs, final XMLFileSystem xmlfs) {
|
|
||||||
MultiFileSystem old;
|
|
||||||
|
|
||||||
old = new MultiFileSystem (
|
|
||||||
new org.openide.filesystems.FileSystem[] { lfs, xmlfs }
|
|
||||||
) {
|
|
||||||
{
|
|
||||||
setPropagateMasks(true);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return old;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Copy files from source folder to current userdir according to include/exclude
|
|
||||||
* patterns in etc/netbeans.import file. */
|
|
||||||
private static void copyToUserdir(File source) throws IOException, PropertyVetoException {
|
|
||||||
File userdir = new File(System.getProperty("netbeans.user", "")); // NOI18N
|
|
||||||
File netBeansDir = InstalledFileLocator.getDefault().locate("modules", null, false).getParentFile().getParentFile(); //NOI18N
|
|
||||||
//normen
|
|
||||||
File importFile = new File(netBeansDir, "etc/jmonkeyplatform.import"); //NOI18N
|
|
||||||
LOGGER.fine("Import file: " + importFile);
|
|
||||||
LOGGER.info("Importing from " + source + " to " + userdir); // NOI18N
|
|
||||||
CopyFiles.copyDeep(source, userdir, importFile);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
|
|
||||||
<Form version="1.2" maxVersion="1.2" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
|
||||||
<Properties>
|
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
|
||||||
<Connection code="new java.awt.Dimension(550, source != null && ! note.isEmpty() ? 120 : 60)" type="code"/>
|
|
||||||
</Property>
|
|
||||||
</Properties>
|
|
||||||
<AuxValues>
|
|
||||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
|
||||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
|
||||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
|
||||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
|
||||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
|
||||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
|
||||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
|
||||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
|
||||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
|
||||||
</AuxValues>
|
|
||||||
|
|
||||||
<Layout>
|
|
||||||
<DimensionLayout dim="0">
|
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
|
||||||
<Component id="txtVersions" alignment="0" pref="583" max="32767" attributes="0"/>
|
|
||||||
</Group>
|
|
||||||
</DimensionLayout>
|
|
||||||
<DimensionLayout dim="1">
|
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
|
||||||
<Component id="txtVersions" alignment="0" pref="60" max="32767" attributes="0"/>
|
|
||||||
</Group>
|
|
||||||
</DimensionLayout>
|
|
||||||
</Layout>
|
|
||||||
<SubComponents>
|
|
||||||
<Component class="javax.swing.JTextArea" name="txtVersions">
|
|
||||||
<Properties>
|
|
||||||
<Property name="background" type="java.awt.Color" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
|
||||||
<Connection component="Form" name="background" type="property"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="columns" type="int" value="50"/>
|
|
||||||
<Property name="editable" type="boolean" value="false"/>
|
|
||||||
<Property name="font" postCode="txtVersions.setFont(new java.awt.Font("Dialog", 0, 12));"/>
|
|
||||||
<Property name="lineWrap" type="boolean" value="true"/>
|
|
||||||
<Property name="rows" type="int" editor="org.netbeans.modules.form.RADConnectionPropertyEditor" postCode="if (source != null) {">
|
|
||||||
<Connection code="source != null && ! note.isEmpty() ? 6 : 3" type="code"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor" postCode="} else {
txtVersions.setText(note);
}">
|
|
||||||
<ResourceString bundle="org/netbeans/upgrade/Bundle.properties" key="MSG_Confirmation" replaceFormat="NbBundle.getMessage (AutoUpgradePanel.class, "{key}", source, note)"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="wrapStyleWord" type="boolean" value="true"/>
|
|
||||||
</Properties>
|
|
||||||
</Component>
|
|
||||||
</SubComponents>
|
|
||||||
</Form>
|
|
@ -1,137 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2012 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.ResourceBundle;
|
|
||||||
import javax.swing.JPanel;
|
|
||||||
import javax.swing.event.ChangeListener;
|
|
||||||
import org.openide.util.NbBundle;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Jiri Rechtacek
|
|
||||||
*/
|
|
||||||
final class AutoUpgradePanel extends JPanel {
|
|
||||||
|
|
||||||
private String source;
|
|
||||||
private String note;
|
|
||||||
|
|
||||||
/** Creates new form UpgradePanel */
|
|
||||||
public AutoUpgradePanel (String directory, String note) {
|
|
||||||
this.source = directory;
|
|
||||||
this.note = note;
|
|
||||||
initComponents();
|
|
||||||
initAccessibility();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Remove a listener to changes of the panel's validity.
|
|
||||||
* @param l the listener to remove
|
|
||||||
*/
|
|
||||||
void removeChangeListener(ChangeListener l) {
|
|
||||||
changeListeners.remove(l);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Add a listener to changes of the panel's validity.
|
|
||||||
* @param l the listener to add
|
|
||||||
* @see #isValid
|
|
||||||
*/
|
|
||||||
void addChangeListener(ChangeListener l) {
|
|
||||||
if (!changeListeners.contains(l)) {
|
|
||||||
changeListeners.add(l);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initAccessibility() {
|
|
||||||
this.getAccessibleContext().setAccessibleDescription(bundle.getString("MSG_Confirmation")); // NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** This method is called from within the constructor to
|
|
||||||
* initialize the form.
|
|
||||||
* WARNING: Do NOT modify this code. The content of this method is
|
|
||||||
* always regenerated by the Form Editor.
|
|
||||||
*/
|
|
||||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
|
||||||
private void initComponents() {
|
|
||||||
|
|
||||||
txtVersions = new javax.swing.JTextArea();
|
|
||||||
|
|
||||||
setPreferredSize(new java.awt.Dimension(550, source != null && ! note.isEmpty() ? 120 : 60));
|
|
||||||
|
|
||||||
txtVersions.setBackground(getBackground());
|
|
||||||
txtVersions.setColumns(50);
|
|
||||||
txtVersions.setEditable(false);
|
|
||||||
txtVersions.setFont(new java.awt.Font("Dialog", 0, 12));
|
|
||||||
txtVersions.setLineWrap(true);
|
|
||||||
txtVersions.setRows(source != null && ! note.isEmpty() ? 6 : 3);
|
|
||||||
if (source != null) {
|
|
||||||
txtVersions.setText(NbBundle.getMessage (AutoUpgradePanel.class, "MSG_Confirmation", source, note)); // NOI18N
|
|
||||||
} else {
|
|
||||||
txtVersions.setText(note);
|
|
||||||
}
|
|
||||||
txtVersions.setWrapStyleWord(true);
|
|
||||||
|
|
||||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
|
||||||
this.setLayout(layout);
|
|
||||||
layout.setHorizontalGroup(
|
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
||||||
.addComponent(txtVersions, javax.swing.GroupLayout.DEFAULT_SIZE, 583, Short.MAX_VALUE)
|
|
||||||
);
|
|
||||||
layout.setVerticalGroup(
|
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
||||||
.addComponent(txtVersions, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE)
|
|
||||||
);
|
|
||||||
}// </editor-fold>//GEN-END:initComponents
|
|
||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
||||||
private javax.swing.JTextArea txtVersions;
|
|
||||||
// End of variables declaration//GEN-END:variables
|
|
||||||
|
|
||||||
private static final ResourceBundle bundle = NbBundle.getBundle(AutoUpgradePanel.class);
|
|
||||||
private List<ChangeListener> changeListeners = new ArrayList<ChangeListener>(1);
|
|
||||||
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
OpenIDE-Module-Name=Upgrade
|
|
||||||
OpenIDE-Module-Display-Category=Infrastructure
|
|
||||||
OpenIDE-Module-Long-Description=The Upgrade imports your IDE environment and settings from previous versions of the IDE.
|
|
||||||
OpenIDE-Module-Short-Description=Import IDE environment and settings.
|
|
||||||
|
|
||||||
#AutoUpgdare dialog
|
|
||||||
MSG_Confirmation = {1}Settings created by a previous version of the SDK were found on your system at {0}. Do you want to import them?
|
|
||||||
MSG_Confirmation_Title = Confirm Import Settings
|
|
||||||
|
|
||||||
MSG_Note_Title=Note
|
|
||||||
MSG_ChangedDefaults=Note: The default location of NetBeans userdir was changed to {0}\n\
|
|
||||||
See http://wiki.netbeans.org/UserdirAndCachedirFoldersInSystemSpecificPaths\n\n
|
|
@ -1,335 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade;
|
|
||||||
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Map;
|
|
||||||
import javax.swing.text.AttributeSet;
|
|
||||||
import javax.swing.text.SimpleAttributeSet;
|
|
||||||
import javax.swing.text.StyleConstants;
|
|
||||||
import org.netbeans.upgrade.XMLStorage.Attribs;
|
|
||||||
import org.openide.ErrorManager;
|
|
||||||
|
|
||||||
import org.openide.filesystems.FileObject;
|
|
||||||
import org.openide.filesystems.FileUtil;
|
|
||||||
import org.xml.sax.Attributes;
|
|
||||||
import org.xml.sax.InputSource;
|
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class contains support static methods for loading / saving and
|
|
||||||
* translating coloring (fontsColors.xml) files. It calls XMLStorage utilities.
|
|
||||||
*
|
|
||||||
* @author Jan Jancura
|
|
||||||
*/
|
|
||||||
class ColoringStorage {
|
|
||||||
|
|
||||||
|
|
||||||
// load ....................................................................
|
|
||||||
|
|
||||||
static Map loadColorings (
|
|
||||||
InputStream is,
|
|
||||||
String name
|
|
||||||
) {
|
|
||||||
return (Map) XMLStorage.load (is, name, new ColoringsReader ());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class ColoringsReader extends XMLStorage.Handler {
|
|
||||||
private Map<String, SimpleAttributeSet> colorings = new HashMap<String, SimpleAttributeSet> ();
|
|
||||||
private SimpleAttributeSet last;
|
|
||||||
|
|
||||||
Object getResult () {
|
|
||||||
return colorings;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void startElement (
|
|
||||||
String uri,
|
|
||||||
String localName,
|
|
||||||
String name,
|
|
||||||
Attributes attributes
|
|
||||||
) throws SAXException {
|
|
||||||
try {
|
|
||||||
if (name.equals ("fontscolors")) {
|
|
||||||
} else
|
|
||||||
if (name.equals ("fontcolor")) {
|
|
||||||
String n = (String) attributes.getValue ("syntaxName");
|
|
||||||
if (n == null)
|
|
||||||
n = (String) attributes.getValue ("name");
|
|
||||||
if (n == null) {
|
|
||||||
System.out.println("no syntaxName " + attributes);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SimpleAttributeSet a = new SimpleAttributeSet ();
|
|
||||||
a.addAttribute (
|
|
||||||
StyleConstants.NameAttribute,
|
|
||||||
n
|
|
||||||
);
|
|
||||||
if (attributes.getValue ("bgColor") != null)
|
|
||||||
a.addAttribute (
|
|
||||||
StyleConstants.Background,
|
|
||||||
XMLStorage.stringToColor (attributes.getValue ("bgColor"))
|
|
||||||
);
|
|
||||||
if (attributes.getValue ("foreColor") != null)
|
|
||||||
a.addAttribute (
|
|
||||||
StyleConstants.Foreground,
|
|
||||||
XMLStorage.stringToColor (attributes.getValue ("foreColor"))
|
|
||||||
);
|
|
||||||
if (attributes.getValue ("underline") != null)
|
|
||||||
a.addAttribute (
|
|
||||||
StyleConstants.Underline,
|
|
||||||
XMLStorage.stringToColor (attributes.getValue ("underline"))
|
|
||||||
);
|
|
||||||
if (attributes.getValue ("strikeThrough") != null)
|
|
||||||
a.addAttribute (
|
|
||||||
StyleConstants.StrikeThrough,
|
|
||||||
XMLStorage.stringToColor (attributes.getValue ("strikeThrough"))
|
|
||||||
);
|
|
||||||
if (attributes.getValue ("waveUnderlined") != null)
|
|
||||||
a.addAttribute (
|
|
||||||
"waveUnderlined",
|
|
||||||
XMLStorage.stringToColor (attributes.getValue ("waveUnderlined"))
|
|
||||||
);
|
|
||||||
if (attributes.getValue ("default") != null)
|
|
||||||
a.addAttribute (
|
|
||||||
"default",
|
|
||||||
(String) attributes.getValue ("default")
|
|
||||||
);
|
|
||||||
colorings.put (n, a);
|
|
||||||
last = a;
|
|
||||||
} else
|
|
||||||
if (name.equals ("font")) {
|
|
||||||
if (attributes.getValue ("name") != null)
|
|
||||||
last.addAttribute (
|
|
||||||
StyleConstants.FontFamily,
|
|
||||||
attributes.getValue ("name")
|
|
||||||
);
|
|
||||||
if (attributes.getValue ("size") != null)
|
|
||||||
try {
|
|
||||||
last.addAttribute (
|
|
||||||
StyleConstants.FontSize,
|
|
||||||
Integer.decode (attributes.getValue ("size"))
|
|
||||||
);
|
|
||||||
} catch (NumberFormatException ex) {
|
|
||||||
ex.printStackTrace ();
|
|
||||||
}
|
|
||||||
if (attributes.getValue ("style") != null) {
|
|
||||||
if (attributes.getValue ("style").indexOf ("bold") >= 0)
|
|
||||||
last.addAttribute (
|
|
||||||
StyleConstants.Bold,
|
|
||||||
Boolean.TRUE
|
|
||||||
);
|
|
||||||
if (attributes.getValue ("style").indexOf ("italic") >= 0)
|
|
||||||
last.addAttribute (
|
|
||||||
StyleConstants.Italic,
|
|
||||||
Boolean.TRUE
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
ErrorManager.getDefault ().notify (ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputSource resolveEntity (String pubid, String sysid) {
|
|
||||||
return new InputSource (
|
|
||||||
new java.io.ByteArrayInputStream (new byte [0])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// save colorings ..........................................................
|
|
||||||
|
|
||||||
static void saveColorings (FileObject fo, Collection colorings) {
|
|
||||||
final StringBuffer sb = XMLStorage.generateHeader ();
|
|
||||||
XMLStorage.generateFolderStart (sb, "fontscolors", null, "");
|
|
||||||
Iterator it = colorings.iterator ();
|
|
||||||
while (it.hasNext ()) {
|
|
||||||
AttributeSet category = (AttributeSet) it.next ();
|
|
||||||
Attribs attributes = new Attribs (true);
|
|
||||||
attributes.add (
|
|
||||||
"name",
|
|
||||||
(String) category.getAttribute (StyleConstants.NameAttribute)
|
|
||||||
);
|
|
||||||
if (category.isDefined (StyleConstants.Foreground))
|
|
||||||
attributes.add (
|
|
||||||
"foreColor",
|
|
||||||
XMLStorage.colorToString (
|
|
||||||
(Color) category.getAttribute (StyleConstants.Foreground)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if (category.isDefined (StyleConstants.Background))
|
|
||||||
attributes.add (
|
|
||||||
"bgColor",
|
|
||||||
XMLStorage.colorToString (
|
|
||||||
(Color) category.getAttribute (StyleConstants.Background)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if (category.isDefined (StyleConstants.StrikeThrough))
|
|
||||||
attributes.add (
|
|
||||||
"strikeThrough",
|
|
||||||
XMLStorage.colorToString (
|
|
||||||
(Color) category.getAttribute (StyleConstants.StrikeThrough)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if (category.isDefined ("waveUnderlined"))
|
|
||||||
attributes.add (
|
|
||||||
"waveUnderlined",
|
|
||||||
XMLStorage.colorToString (
|
|
||||||
(Color) category.getAttribute ("waveUnderlined")
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if (category.isDefined (StyleConstants.Underline))
|
|
||||||
attributes.add (
|
|
||||||
"underline",
|
|
||||||
XMLStorage.colorToString (
|
|
||||||
(Color) category.getAttribute (StyleConstants.Underline)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if (category.isDefined ("default"))
|
|
||||||
attributes.add (
|
|
||||||
"default",
|
|
||||||
(String) category.getAttribute ("default")
|
|
||||||
);
|
|
||||||
if ( category.isDefined (StyleConstants.FontFamily) ||
|
|
||||||
category.isDefined (StyleConstants.FontSize) ||
|
|
||||||
category.isDefined (StyleConstants.Bold) ||
|
|
||||||
category.isDefined (StyleConstants.Italic)
|
|
||||||
) {
|
|
||||||
XMLStorage.generateFolderStart (sb, "fontcolor", attributes, " ");
|
|
||||||
attributes = new Attribs (true);
|
|
||||||
if (category.isDefined (StyleConstants.FontFamily))
|
|
||||||
attributes.add (
|
|
||||||
"name",
|
|
||||||
(String) category.getAttribute (StyleConstants.FontFamily)
|
|
||||||
);
|
|
||||||
if (category.isDefined (StyleConstants.FontSize))
|
|
||||||
attributes.add (
|
|
||||||
"size",
|
|
||||||
"" + category.getAttribute (StyleConstants.FontSize)
|
|
||||||
);
|
|
||||||
if (category.isDefined (StyleConstants.Bold) ||
|
|
||||||
category.isDefined (StyleConstants.Italic)
|
|
||||||
) {
|
|
||||||
Boolean bold = Boolean.FALSE, italic = Boolean.FALSE;
|
|
||||||
if (category.isDefined (StyleConstants.Bold))
|
|
||||||
bold = (Boolean) category.getAttribute (StyleConstants.Bold);
|
|
||||||
if (category.isDefined (StyleConstants.Italic))
|
|
||||||
italic = (Boolean) category.getAttribute (StyleConstants.Italic);
|
|
||||||
attributes.add ("style",
|
|
||||||
bold.booleanValue () ?
|
|
||||||
(italic.booleanValue () ?
|
|
||||||
"bold+italic" :
|
|
||||||
"bold") :
|
|
||||||
(italic.booleanValue () ?
|
|
||||||
"italic" : "plain")
|
|
||||||
);
|
|
||||||
}
|
|
||||||
XMLStorage.generateLeaf (sb, "font", attributes, " ");
|
|
||||||
XMLStorage.generateFolderEnd (sb, "fontcolor", " ");
|
|
||||||
} else
|
|
||||||
XMLStorage.generateLeaf (sb, "fontcolor", attributes, " ");
|
|
||||||
}
|
|
||||||
XMLStorage.generateFolderEnd (sb, "fontscolors", "");
|
|
||||||
XMLStorage.save (fo, new String (sb));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Crates FileObject for given mimeTypes and profile.
|
|
||||||
*/
|
|
||||||
private static String getFolderName (
|
|
||||||
String[] mimeTypes,
|
|
||||||
String profile
|
|
||||||
) {
|
|
||||||
StringBuffer sb = new StringBuffer ();
|
|
||||||
sb.append ("Editors");
|
|
||||||
int i, k = mimeTypes.length;
|
|
||||||
for (i = 0; i < k; i++)
|
|
||||||
sb.append ('/').append (mimeTypes [i]);
|
|
||||||
if (profile != null)
|
|
||||||
sb.append ('/').append (profile);
|
|
||||||
return sb.append ('/').toString ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Crates FileObject for given mimeTypes and profile.
|
|
||||||
*/
|
|
||||||
private static FileObject createFileObject (
|
|
||||||
FileObject root,
|
|
||||||
String[] mimeTypes,
|
|
||||||
String profile,
|
|
||||||
String fileName
|
|
||||||
) {
|
|
||||||
try {
|
|
||||||
FileObject fo = getFO (FileUtil.getConfigRoot (), "Editors");
|
|
||||||
int i, k = mimeTypes.length;
|
|
||||||
for (i = 0; i < k; i++)
|
|
||||||
fo = getFO (fo, mimeTypes [i]);
|
|
||||||
if (profile != null)
|
|
||||||
fo = getFO (fo, profile);
|
|
||||||
if (fileName == null)
|
|
||||||
return fo;
|
|
||||||
FileObject fo1 = fo.getFileObject (fileName);
|
|
||||||
if (fo1 != null) return fo1;
|
|
||||||
return fo.createData (fileName);
|
|
||||||
} catch (IOException ex) {
|
|
||||||
ErrorManager.getDefault ().notify (ex);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static FileObject getFO (FileObject fo, String next) throws IOException {
|
|
||||||
FileObject fo1 = fo.getFileObject (next);
|
|
||||||
if (fo1 == null)
|
|
||||||
return fo.createFolder (next);
|
|
||||||
return fo1;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,210 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import org.openide.filesystems.*;
|
|
||||||
|
|
||||||
/** Does copy of objects on filesystems.
|
|
||||||
*
|
|
||||||
* @author Jaroslav Tulach
|
|
||||||
*/
|
|
||||||
final class Copy extends Object {
|
|
||||||
private FileObject sourceRoot;
|
|
||||||
private FileObject targetRoot;
|
|
||||||
private Set thoseToCopy;
|
|
||||||
private PathTransformation transformation;
|
|
||||||
|
|
||||||
private Copy(FileObject source, FileObject target, Set thoseToCopy, PathTransformation transformation) {
|
|
||||||
this.sourceRoot = source;
|
|
||||||
this.targetRoot = target;
|
|
||||||
this.thoseToCopy = thoseToCopy;
|
|
||||||
this.transformation = transformation;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Does a selective copy of one source tree to another.
|
|
||||||
* @param source file object to copy from
|
|
||||||
* @param target file object to copy to
|
|
||||||
* @param thoseToCopy set on which contains (relativeNameOfAFileToCopy)
|
|
||||||
* is being called to find out whether to copy or not
|
|
||||||
* @throws IOException if coping fails
|
|
||||||
*/
|
|
||||||
public static void copyDeep (FileObject source, FileObject target, Set thoseToCopy)
|
|
||||||
throws IOException {
|
|
||||||
copyDeep(source, target, thoseToCopy, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void copyDeep (FileObject source, FileObject target, Set thoseToCopy, PathTransformation transformation)
|
|
||||||
throws IOException {
|
|
||||||
Copy instance = new Copy(source, target, thoseToCopy, transformation);
|
|
||||||
instance.copyFolder (instance.sourceRoot);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void copyFolder (FileObject sourceFolder) throws IOException {
|
|
||||||
FileObject[] srcChildren = sourceFolder.getChildren();
|
|
||||||
for (int i = 0; i < srcChildren.length; i++) {
|
|
||||||
FileObject child = srcChildren[i];
|
|
||||||
if (child.isFolder()) {
|
|
||||||
copyFolder (child);
|
|
||||||
// make sure 'include xyz/.*' copies xyz folder's attributes
|
|
||||||
if ((thoseToCopy.contains (child.getPath()) || thoseToCopy.contains (child.getPath() + "/")) && //NOI18N
|
|
||||||
child.getAttributes().hasMoreElements()
|
|
||||||
) {
|
|
||||||
copyFolderAttributes(child);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (thoseToCopy.contains (child.getPath())) {
|
|
||||||
copyFile(child);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void copyFolderAttributes(FileObject sourceFolder) throws IOException {
|
|
||||||
FileObject targetFolder = FileUtil.createFolder (targetRoot, sourceFolder.getPath());
|
|
||||||
if (sourceFolder.getAttributes ().hasMoreElements ()) {
|
|
||||||
FileUtil.copyAttributes(sourceFolder, targetFolder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void copyFile(FileObject sourceFile) throws IOException {
|
|
||||||
String targetPath = (transformation != null) ? transformation.transformPath(sourceFile.getPath()) : sourceFile.getPath();
|
|
||||||
boolean isTransformed = !targetPath.equals(sourceFile.getPath());
|
|
||||||
FileObject tg = targetRoot.getFileObject(targetPath);
|
|
||||||
try {
|
|
||||||
if (tg == null) {
|
|
||||||
// copy the file otherwise keep old content
|
|
||||||
FileObject targetFolder = null;
|
|
||||||
String name = null, ext = null;
|
|
||||||
if (isTransformed) {
|
|
||||||
FileObject targetFile = FileUtil.createData(targetRoot, targetPath);
|
|
||||||
targetFolder = targetFile.getParent();
|
|
||||||
name = targetFile.getName();
|
|
||||||
ext = targetFile.getExt();
|
|
||||||
targetFile.delete();
|
|
||||||
} else {
|
|
||||||
targetFolder = FileUtil.createFolder(targetRoot, sourceFile.getParent().getPath());
|
|
||||||
name = sourceFile.getName();
|
|
||||||
ext = sourceFile.getExt();
|
|
||||||
}
|
|
||||||
tg = FileUtil.copyFile(sourceFile, targetFolder, name, ext);
|
|
||||||
}
|
|
||||||
} catch (IOException ex) {
|
|
||||||
if (sourceFile.getNameExt().endsWith("_hidden")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
throw ex;
|
|
||||||
}
|
|
||||||
FileUtil.copyAttributes(sourceFile, tg);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void appendSelectedLines(File sourceFile, File targetFolder, String[] regexForSelection)
|
|
||||||
throws IOException {
|
|
||||||
if (!sourceFile.exists()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Pattern[] linePattern = new Pattern[regexForSelection.length];
|
|
||||||
for (int i = 0; i < linePattern.length; i++) {
|
|
||||||
linePattern[i] = Pattern.compile(regexForSelection[i]);
|
|
||||||
}
|
|
||||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
||||||
File targetFile = new File(targetFolder,sourceFile.getName());
|
|
||||||
if (!targetFolder.exists()) {
|
|
||||||
targetFolder.mkdirs();
|
|
||||||
}
|
|
||||||
assert targetFolder.exists();
|
|
||||||
|
|
||||||
if (!targetFile.exists()) {
|
|
||||||
targetFile.createNewFile();
|
|
||||||
} else {
|
|
||||||
//read original content into ByteArrayOutputStream
|
|
||||||
FileInputStream targetIS = new FileInputStream(targetFile);
|
|
||||||
try {
|
|
||||||
FileUtil.copy(targetIS, bos);
|
|
||||||
} finally {
|
|
||||||
targetIS.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
assert targetFile.exists();
|
|
||||||
|
|
||||||
|
|
||||||
//append lines into ByteArrayOutputStream
|
|
||||||
String line = null;
|
|
||||||
BufferedReader sourceReader = new BufferedReader(new FileReader(sourceFile));
|
|
||||||
try {
|
|
||||||
while ((line = sourceReader.readLine()) != null) {
|
|
||||||
if (linePattern != null) {
|
|
||||||
for (int i = 0; i < linePattern.length; i++) {
|
|
||||||
Matcher m = linePattern[i].matcher(line);
|
|
||||||
if (m.matches()) {
|
|
||||||
bos.write(line.getBytes());
|
|
||||||
bos.write('\n');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
bos.write(line.getBytes());
|
|
||||||
bos.write('\n');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
sourceReader.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
ByteArrayInputStream bin = new ByteArrayInputStream(bos.toByteArray());
|
|
||||||
FileOutputStream targetOS = new FileOutputStream(targetFile);
|
|
||||||
try {
|
|
||||||
FileUtil.copy(bin, targetOS);
|
|
||||||
} finally {
|
|
||||||
bin.close();
|
|
||||||
targetOS.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,377 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2010 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
package org.netbeans.upgrade;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.io.Reader;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
import javax.swing.JDialog;
|
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import org.netbeans.util.Util;
|
|
||||||
import org.openide.filesystems.FileUtil;
|
|
||||||
import org.openide.util.EditableProperties;
|
|
||||||
|
|
||||||
/** Does copy of files according to include/exclude patterns.
|
|
||||||
*
|
|
||||||
* @author Jiri Skrivanek
|
|
||||||
*/
|
|
||||||
final class CopyFiles extends Object {
|
|
||||||
|
|
||||||
//>>> hack for http://netbeans.org/bugzilla/show_bug.cgi?id=218976
|
|
||||||
private static final String CSSSP = "config/Editors/text/";
|
|
||||||
private static final String ORIG_CSSSP = CSSSP + "x-css";
|
|
||||||
private static final String TARG_CSSSP = CSSSP + "css";
|
|
||||||
//<<<eof
|
|
||||||
|
|
||||||
private File sourceRoot;
|
|
||||||
private File targetRoot;
|
|
||||||
private EditableProperties currentProperties;
|
|
||||||
private Set<String> includePatterns = new HashSet<String>();
|
|
||||||
private Set<String> excludePatterns = new HashSet<String>();
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(CopyFiles.class.getName());
|
|
||||||
|
|
||||||
private CopyFiles(File source, File target, File patternsFile) {
|
|
||||||
this.sourceRoot = source;
|
|
||||||
this.targetRoot = target;
|
|
||||||
try {
|
|
||||||
InputStream is = new FileInputStream(patternsFile);
|
|
||||||
Reader reader = new InputStreamReader(is, "utf-8"); // NOI18N
|
|
||||||
readPatterns(reader);
|
|
||||||
reader.close();
|
|
||||||
} catch (IOException ex) {
|
|
||||||
// show error message and continue
|
|
||||||
JDialog dialog = Util.createJOptionDialog(new JOptionPane(ex, JOptionPane.ERROR_MESSAGE), ex.getMessage());
|
|
||||||
dialog.setVisible(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void copyDeep(File source, File target, File patternsFile) throws IOException {
|
|
||||||
CopyFiles copyFiles = new CopyFiles(source, target, patternsFile);
|
|
||||||
LOGGER.fine("Copying from: " + copyFiles.sourceRoot + "\nto: " + copyFiles.targetRoot); //NOI18N
|
|
||||||
copyFiles.copyFolder(copyFiles.sourceRoot);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void copyFolder(File sourceFolder) throws IOException {
|
|
||||||
File[] srcChildren = sourceFolder.listFiles();
|
|
||||||
if (srcChildren == null) {
|
|
||||||
LOGGER.info(sourceFolder + " is not a directory or is invalid."); //NOI18N
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
for (File child : srcChildren) {
|
|
||||||
if (child.isDirectory()) {
|
|
||||||
copyFolder(child);
|
|
||||||
} else {
|
|
||||||
copyFile(child);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns slash separated path relative to given root. */
|
|
||||||
private static String getRelativePath(File root, File file) {
|
|
||||||
String result = file.getAbsolutePath().substring(root.getAbsolutePath().length());
|
|
||||||
result = result.replace('\\', '/'); //NOI18N
|
|
||||||
if (result.startsWith("/") && !result.startsWith("//")) { //NOI18N
|
|
||||||
result = result.substring(1);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Copy source file to target file. It creates necessary sub folders.
|
|
||||||
* @param sourceFile source file
|
|
||||||
* @param targetFile target file
|
|
||||||
* @throws java.io.IOException if copying fails
|
|
||||||
*/
|
|
||||||
private static void copyFile(File sourceFile, File targetFile) throws IOException {
|
|
||||||
ensureParent(targetFile);
|
|
||||||
InputStream ins = null;
|
|
||||||
OutputStream out = null;
|
|
||||||
try {
|
|
||||||
ins = new FileInputStream(sourceFile);
|
|
||||||
out = new FileOutputStream(targetFile);
|
|
||||||
FileUtil.copy(ins, out);
|
|
||||||
} finally {
|
|
||||||
if (ins != null) {
|
|
||||||
ins.close();
|
|
||||||
}
|
|
||||||
if (out != null) {
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Copy given file to target root dir if matches include/exclude patterns.
|
|
||||||
* If properties pattern is applicable, it copies only matching keys.
|
|
||||||
* @param sourceFile source file
|
|
||||||
* @throws java.io.IOException if copying fails
|
|
||||||
*/
|
|
||||||
private void copyFile(File sourceFile) throws IOException {
|
|
||||||
String relativePath = getRelativePath(sourceRoot, sourceFile);
|
|
||||||
currentProperties = null;
|
|
||||||
boolean includeFile = false;
|
|
||||||
Set<String> includeKeys = new HashSet<String>();
|
|
||||||
Set<String> excludeKeys = new HashSet<String>();
|
|
||||||
for (String pattern : includePatterns) {
|
|
||||||
if (pattern.contains("#")) { //NOI18N
|
|
||||||
includeKeys.addAll(matchingKeys(relativePath, pattern));
|
|
||||||
} else {
|
|
||||||
if (relativePath.matches(pattern)) {
|
|
||||||
includeFile = true;
|
|
||||||
includeKeys.clear(); // include entire file
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (includeFile || !includeKeys.isEmpty()) {
|
|
||||||
// check excludes
|
|
||||||
for (String pattern : excludePatterns) {
|
|
||||||
if (pattern.contains("#")) { //NOI18N
|
|
||||||
excludeKeys.addAll(matchingKeys(relativePath, pattern));
|
|
||||||
} else {
|
|
||||||
if (relativePath.matches(pattern)) {
|
|
||||||
includeFile = false;
|
|
||||||
includeKeys.clear(); // exclude entire file
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LOGGER.log(Level.FINEST, "{0}, includeFile={1}, includeKeys={2}, excludeKeys={3}", new Object[]{relativePath, includeFile, includeKeys, excludeKeys}); //NOI18N
|
|
||||||
if (!includeFile && includeKeys.isEmpty()) {
|
|
||||||
// nothing matches
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//>>> hack for http://netbeans.org/bugzilla/show_bug.cgi?id=218976
|
|
||||||
if(relativePath.startsWith(ORIG_CSSSP)) { relativePath = TARG_CSSSP + relativePath.substring(ORIG_CSSSP.length()); }
|
|
||||||
//<<<
|
|
||||||
|
|
||||||
File targetFile = new File(targetRoot, relativePath);
|
|
||||||
LOGGER.log(Level.FINE, "Path: {0}", relativePath); //NOI18N
|
|
||||||
if (includeKeys.isEmpty() && excludeKeys.isEmpty()) {
|
|
||||||
// copy entire file
|
|
||||||
copyFile(sourceFile, targetFile);
|
|
||||||
} else {
|
|
||||||
if (!includeKeys.isEmpty()) {
|
|
||||||
currentProperties.keySet().retainAll(includeKeys);
|
|
||||||
}
|
|
||||||
currentProperties.keySet().removeAll(excludeKeys);
|
|
||||||
// copy just selected keys
|
|
||||||
LOGGER.log(Level.FINE, " Only keys: {0}", currentProperties.keySet());
|
|
||||||
OutputStream out = null;
|
|
||||||
try {
|
|
||||||
ensureParent(targetFile);
|
|
||||||
out = new FileOutputStream(targetFile);
|
|
||||||
currentProperties.store(out);
|
|
||||||
} finally {
|
|
||||||
if (out != null) {
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns set of keys matching given pattern.
|
|
||||||
* @param relativePath path relative to sourceRoot
|
|
||||||
* @param propertiesPattern pattern like file.properties#keyPattern
|
|
||||||
* @return set of matching keys, never null
|
|
||||||
* @throws IOException if properties cannot be loaded
|
|
||||||
*/
|
|
||||||
private Set<String> matchingKeys(String relativePath, String propertiesPattern) throws IOException {
|
|
||||||
Set<String> matchingKeys = new HashSet<String>();
|
|
||||||
String[] patterns = propertiesPattern.split("#", 2);
|
|
||||||
String filePattern = patterns[0];
|
|
||||||
String keyPattern = patterns[1];
|
|
||||||
if (relativePath.matches(filePattern)) {
|
|
||||||
if (currentProperties == null) {
|
|
||||||
currentProperties = getProperties(relativePath);
|
|
||||||
}
|
|
||||||
for (String key : currentProperties.keySet()) {
|
|
||||||
if (key.matches(keyPattern)) {
|
|
||||||
matchingKeys.add(key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return matchingKeys;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns properties from relative path.
|
|
||||||
* @param relativePath relative path
|
|
||||||
* @return properties from relative path.
|
|
||||||
* @throws IOException if cannot open stream
|
|
||||||
*/
|
|
||||||
private EditableProperties getProperties(String relativePath) throws IOException {
|
|
||||||
EditableProperties properties = new EditableProperties(false);
|
|
||||||
InputStream in = null;
|
|
||||||
try {
|
|
||||||
in = new FileInputStream(new File(sourceRoot, relativePath));
|
|
||||||
properties.load(in);
|
|
||||||
} finally {
|
|
||||||
if (in != null) {
|
|
||||||
in.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Creates parent of given file, if doesn't exist. */
|
|
||||||
private static void ensureParent(File file) throws IOException {
|
|
||||||
final File parent = file.getParentFile();
|
|
||||||
if (parent != null && !parent.exists()) {
|
|
||||||
if (!parent.mkdirs()) {
|
|
||||||
throw new IOException("Cannot create folder: " + parent.getAbsolutePath()); //NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Reads the include/exclude set from a given reader.
|
|
||||||
* @param r reader
|
|
||||||
*/
|
|
||||||
private void readPatterns(Reader r) throws IOException {
|
|
||||||
BufferedReader buf = new BufferedReader(r);
|
|
||||||
for (;;) {
|
|
||||||
String line = buf.readLine();
|
|
||||||
if (line == null) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
line = line.trim();
|
|
||||||
if (line.length() == 0 || line.startsWith("#")) { //NOI18N
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (line.startsWith("include ")) { //NOI18N
|
|
||||||
line = line.substring(8);
|
|
||||||
if (line.length() > 0) {
|
|
||||||
includePatterns.addAll(parsePattern(line));
|
|
||||||
}
|
|
||||||
} else if (line.startsWith("exclude ")) { //NOI18N
|
|
||||||
line = line.substring(8);
|
|
||||||
if (line.length() > 0) {
|
|
||||||
excludePatterns.addAll(parsePattern(line));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new java.io.IOException("Wrong line: " + line); //NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
enum ParserState {
|
|
||||||
|
|
||||||
START,
|
|
||||||
IN_KEY_PATTERN,
|
|
||||||
AFTER_KEY_PATTERN,
|
|
||||||
IN_BLOCK
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Parses given compound string pattern into set of single patterns.
|
|
||||||
* @param pattern compound pattern in form filePattern1#keyPattern1#|filePattern2#keyPattern2#|filePattern3
|
|
||||||
* @return set of single patterns containing just one # (e.g. [filePattern1#keyPattern1, filePattern2#keyPattern2, filePattern3])
|
|
||||||
*/
|
|
||||||
private static Set<String> parsePattern(String pattern) {
|
|
||||||
Set<String> patterns = new HashSet<String>();
|
|
||||||
if (pattern.contains("#")) { //NOI18N
|
|
||||||
StringBuilder partPattern = new StringBuilder();
|
|
||||||
ParserState state = ParserState.START;
|
|
||||||
int blockLevel = 0;
|
|
||||||
for (int i = 0; i < pattern.length(); i++) {
|
|
||||||
char c = pattern.charAt(i);
|
|
||||||
switch (state) {
|
|
||||||
case START:
|
|
||||||
if (c == '#') {
|
|
||||||
state = ParserState.IN_KEY_PATTERN;
|
|
||||||
partPattern.append(c);
|
|
||||||
} else if (c == '(') {
|
|
||||||
state = ParserState.IN_BLOCK;
|
|
||||||
blockLevel++;
|
|
||||||
partPattern.append(c);
|
|
||||||
} else if (c == '|') {
|
|
||||||
patterns.add(partPattern.toString());
|
|
||||||
partPattern = new StringBuilder();
|
|
||||||
} else {
|
|
||||||
partPattern.append(c);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IN_KEY_PATTERN:
|
|
||||||
if (c == '#') {
|
|
||||||
state = ParserState.AFTER_KEY_PATTERN;
|
|
||||||
} else {
|
|
||||||
partPattern.append(c);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case AFTER_KEY_PATTERN:
|
|
||||||
if (c == '|') {
|
|
||||||
state = ParserState.START;
|
|
||||||
patterns.add(partPattern.toString());
|
|
||||||
partPattern = new StringBuilder();
|
|
||||||
} else {
|
|
||||||
assert false : "Wrong OptionsExport pattern " + pattern + ". Only format like filePattern1#keyPattern#|filePattern2 is supported."; //NOI18N
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IN_BLOCK:
|
|
||||||
partPattern.append(c);
|
|
||||||
if (c == ')') {
|
|
||||||
blockLevel--;
|
|
||||||
if (blockLevel == 0) {
|
|
||||||
state = ParserState.START;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
patterns.add(partPattern.toString());
|
|
||||||
} else {
|
|
||||||
patterns.add(pattern);
|
|
||||||
}
|
|
||||||
return patterns;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,138 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.regex.*;
|
|
||||||
import org.openide.util.Union2;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** A test that is initialized based on includes and excludes.
|
|
||||||
*
|
|
||||||
* @author Jaroslav Tulach
|
|
||||||
*/
|
|
||||||
final class IncludeExclude extends AbstractSet {
|
|
||||||
/** List<Boolean and Pattern>
|
|
||||||
*/
|
|
||||||
private List<Union2<Boolean, Pattern>> patterns = new ArrayList<Union2<Boolean, Pattern>> ();
|
|
||||||
|
|
||||||
private IncludeExclude () {
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Reads the include/exclude set from a given reader.
|
|
||||||
* @param r reader
|
|
||||||
* @return set that accepts names based on include exclude from the file
|
|
||||||
*/
|
|
||||||
public static IncludeExclude create (Reader r) throws IOException {
|
|
||||||
IncludeExclude set = new IncludeExclude ();
|
|
||||||
|
|
||||||
BufferedReader buf = new BufferedReader (r);
|
|
||||||
for (;;) {
|
|
||||||
String line = buf.readLine ();
|
|
||||||
if (line == null) break;
|
|
||||||
|
|
||||||
line = line.trim ();
|
|
||||||
if (line.length () == 0 || line.startsWith ("#")) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
Boolean plus;
|
|
||||||
if (line.startsWith ("include ")) {
|
|
||||||
line = line.substring (8);
|
|
||||||
plus = Boolean.TRUE;
|
|
||||||
} else {
|
|
||||||
if (line.startsWith ("exclude ")) {
|
|
||||||
line = line.substring (8);
|
|
||||||
plus = Boolean.FALSE;
|
|
||||||
} else {
|
|
||||||
throw new java.io.IOException ("Wrong line: " + line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Pattern p = Pattern.compile (line);
|
|
||||||
|
|
||||||
set.patterns.add (Union2.<Boolean,Pattern>createFirst(plus));
|
|
||||||
set.patterns.add (Union2.<Boolean,Pattern>createSecond(p));
|
|
||||||
}
|
|
||||||
|
|
||||||
return set;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Iterator iterator () {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int size () {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean contains (Object o) {
|
|
||||||
String s = (String)o;
|
|
||||||
|
|
||||||
boolean yes = false;
|
|
||||||
|
|
||||||
Iterator<Union2<Boolean,Pattern>> it = patterns.iterator ();
|
|
||||||
while (it.hasNext ()) {
|
|
||||||
Boolean include = it.next ().first();
|
|
||||||
Pattern p = it.next ().second();
|
|
||||||
|
|
||||||
Matcher m = p.matcher (s);
|
|
||||||
if (m.matches ()) {
|
|
||||||
yes = include.booleanValue ();
|
|
||||||
if (!yes) {
|
|
||||||
// exclude matches => immediately return
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return yes;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,93 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
package org.netbeans.upgrade;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
public class PathTransformation {
|
|
||||||
private String version;
|
|
||||||
private PathTransformation(String version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
public static PathTransformation getInstance(String version) {
|
|
||||||
return new PathTransformation(version);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String transformPath(String path) {
|
|
||||||
boolean isCreator = version.startsWith("2_");//NOI18N
|
|
||||||
if (isCreator) {
|
|
||||||
return transformCreatorPath(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean i118364 = path.startsWith("Templates/Classes/");//NOI18N
|
|
||||||
if (i118364) {
|
|
||||||
if (!version.startsWith("6")) {
|
|
||||||
return transformTemplatePath118364(path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String transformTemplatePath118364(String path) {
|
|
||||||
return path.replace("Templates/Classes/", "Templates/Oldies/Classes/");//NOI18N
|
|
||||||
}
|
|
||||||
//CREATOR
|
|
||||||
private String transformCreatorPath(String path) {
|
|
||||||
String keyToReplace = null;
|
|
||||||
String[] keysToReplace = new String[] {"context.xml"};//NOI18N
|
|
||||||
for (String key : keysToReplace) {
|
|
||||||
if (path.startsWith(key)) {
|
|
||||||
keyToReplace = key;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (keyToReplace != null) {
|
|
||||||
return path.replace(keyToReplace, "config/"+version+"/"+keyToReplace);//NOI18N
|
|
||||||
}
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,291 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade;
|
|
||||||
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Font;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.io.OutputStreamWriter;
|
|
||||||
import java.io.Writer;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import org.openide.ErrorManager;
|
|
||||||
import org.openide.filesystems.FileLock;
|
|
||||||
|
|
||||||
import org.openide.filesystems.FileObject;
|
|
||||||
import org.openide.util.RequestProcessor;
|
|
||||||
import org.openide.xml.XMLUtil;
|
|
||||||
import org.xml.sax.InputSource;
|
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
import org.xml.sax.XMLReader;
|
|
||||||
import org.xml.sax.helpers.DefaultHandler;
|
|
||||||
|
|
||||||
|
|
||||||
public class XMLStorage {
|
|
||||||
|
|
||||||
private static final Map<Color,String> colorToName = new HashMap<Color,String> ();
|
|
||||||
private static final Map<String, Color> nameToColor = new HashMap<String, Color> ();
|
|
||||||
private static final Map<String, Integer> nameToFontStyle = new HashMap<String, Integer> ();
|
|
||||||
private static final Map<Integer, String> fontStyleToName = new HashMap<Integer, String> ();
|
|
||||||
static {
|
|
||||||
colorToName.put (Color.black, "black");
|
|
||||||
nameToColor.put ("black", Color.black);
|
|
||||||
colorToName.put (Color.blue, "blue");
|
|
||||||
nameToColor.put ("blue", Color.blue);
|
|
||||||
colorToName.put (Color.cyan, "cyan");
|
|
||||||
nameToColor.put ("cyan", Color.cyan);
|
|
||||||
colorToName.put (Color.darkGray, "darkGray");
|
|
||||||
nameToColor.put ("darkGray", Color.darkGray);
|
|
||||||
colorToName.put (Color.gray, "gray");
|
|
||||||
nameToColor.put ("gray", Color.gray);
|
|
||||||
colorToName.put (Color.green, "green");
|
|
||||||
nameToColor.put ("green", Color.green);
|
|
||||||
colorToName.put (Color.lightGray, "lightGray");
|
|
||||||
nameToColor.put ("lightGray", Color.lightGray);
|
|
||||||
colorToName.put (Color.magenta, "magenta");
|
|
||||||
nameToColor.put ("magenta", Color.magenta);
|
|
||||||
colorToName.put (Color.orange, "orange");
|
|
||||||
nameToColor.put ("orange", Color.orange);
|
|
||||||
colorToName.put (Color.pink, "pink");
|
|
||||||
nameToColor.put ("pink", Color.pink);
|
|
||||||
colorToName.put (Color.red, "red");
|
|
||||||
nameToColor.put ("red", Color.red);
|
|
||||||
colorToName.put (Color.white, "white");
|
|
||||||
nameToColor.put ("white", Color.white);
|
|
||||||
colorToName.put (Color.yellow, "yellow");
|
|
||||||
nameToColor.put ("yellow", Color.yellow);
|
|
||||||
|
|
||||||
nameToFontStyle.put ("plain", Integer.valueOf (Font.PLAIN));
|
|
||||||
fontStyleToName.put (Integer.valueOf (Font.PLAIN), "plain");
|
|
||||||
nameToFontStyle.put ("bold", Integer.valueOf (Font.BOLD));
|
|
||||||
fontStyleToName.put (Integer.valueOf (Font.BOLD), "bold");
|
|
||||||
nameToFontStyle.put ("italic", Integer.valueOf (Font.ITALIC));
|
|
||||||
fontStyleToName.put (Integer.valueOf (Font.ITALIC), "italic");
|
|
||||||
nameToFontStyle.put ("bold+italic", Integer.valueOf (Font.BOLD + Font.ITALIC));
|
|
||||||
fontStyleToName.put (Integer.valueOf (Font.BOLD + Font.ITALIC), "bold+italic");
|
|
||||||
}
|
|
||||||
|
|
||||||
static String colorToString (Color color) {
|
|
||||||
if (colorToName.containsKey (color))
|
|
||||||
return (String) colorToName.get (color);
|
|
||||||
return Integer.toHexString (color.getRGB ());
|
|
||||||
}
|
|
||||||
|
|
||||||
static Color stringToColor (String color) throws Exception {
|
|
||||||
if (color.startsWith ("#"))
|
|
||||||
color = color.substring (1);
|
|
||||||
if (nameToColor.containsKey (color))
|
|
||||||
return (Color) nameToColor.get (color);
|
|
||||||
try {
|
|
||||||
return new Color ((int) Long.parseLong (color, 16));
|
|
||||||
} catch (NumberFormatException ex) {
|
|
||||||
throw new Exception ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// generics support methods ................................................
|
|
||||||
|
|
||||||
private static RequestProcessor requestProcessor = new RequestProcessor ("XMLStorage");
|
|
||||||
|
|
||||||
static void save (final FileObject fo, final String content) {
|
|
||||||
if (fo == null) throw new NullPointerException ();
|
|
||||||
if (content == null) throw new NullPointerException ();
|
|
||||||
requestProcessor.post (new Runnable () {
|
|
||||||
public void run () {
|
|
||||||
try {
|
|
||||||
FileLock lock = fo.lock ();
|
|
||||||
try {
|
|
||||||
OutputStream os = fo.getOutputStream (lock);
|
|
||||||
Writer writer = new OutputStreamWriter (os, "UTF-8"); // NOI18N
|
|
||||||
try {
|
|
||||||
writer.write (content);
|
|
||||||
} finally {
|
|
||||||
writer.close ();
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
lock.releaseLock ();
|
|
||||||
}
|
|
||||||
} catch (IOException ex) {
|
|
||||||
ErrorManager.getDefault ().notify (ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
static Object load (InputStream is, String name, Handler handler) {
|
|
||||||
try {
|
|
||||||
try {
|
|
||||||
XMLReader reader = XMLUtil.createXMLReader ();
|
|
||||||
reader.setEntityResolver (handler);
|
|
||||||
reader.setContentHandler (handler);
|
|
||||||
reader.parse (new InputSource (is));
|
|
||||||
return handler.getResult ();
|
|
||||||
} finally {
|
|
||||||
is.close ();
|
|
||||||
}
|
|
||||||
} catch (SAXException ex) {
|
|
||||||
if (System.getProperty ("org.netbeans.optionsDialog") != null) {
|
|
||||||
System.out.println("File: " + name);
|
|
||||||
ex.printStackTrace ();
|
|
||||||
}
|
|
||||||
return handler.getResult ();
|
|
||||||
} catch (IOException ex) {
|
|
||||||
if (System.getProperty ("org.netbeans.optionsDialog") != null) {
|
|
||||||
System.out.println("File: " + name);
|
|
||||||
ex.printStackTrace ();
|
|
||||||
}
|
|
||||||
return handler.getResult ();
|
|
||||||
} catch (Exception ex) {
|
|
||||||
if (System.getProperty ("org.netbeans.optionsDialog") != null) {
|
|
||||||
System.out.println("File: " + name);
|
|
||||||
ex.printStackTrace ();
|
|
||||||
}
|
|
||||||
return handler.getResult ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static StringBuffer generateHeader () {
|
|
||||||
StringBuffer sb = new StringBuffer ();
|
|
||||||
sb.append ("<?xml version=\"1.0\"?>\n\n");
|
|
||||||
return sb;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void generateFolderStart (
|
|
||||||
StringBuffer sb,
|
|
||||||
String name,
|
|
||||||
Attribs attributes,
|
|
||||||
String indentation
|
|
||||||
) {
|
|
||||||
sb.append (indentation).append ('<').append (name);
|
|
||||||
if (attributes != null) {
|
|
||||||
if (!attributes.oneLine) sb.append ('\n');
|
|
||||||
else sb.append (' ');
|
|
||||||
generateAttributes (sb, attributes, indentation + " ");
|
|
||||||
if (!attributes.oneLine) sb.append (indentation);
|
|
||||||
sb.append (">\n");
|
|
||||||
} else
|
|
||||||
sb.append (">\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void generateFolderEnd (StringBuffer sb, String name, String indentation) {
|
|
||||||
sb.append (indentation).append ("</").append (name).append (">\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void generateLeaf (
|
|
||||||
StringBuffer sb,
|
|
||||||
String name,
|
|
||||||
Attribs attributes,
|
|
||||||
String indentation
|
|
||||||
) {
|
|
||||||
sb.append (indentation).append ('<').append (name);
|
|
||||||
if (attributes != null) {
|
|
||||||
if (!attributes.oneLine) sb.append ('\n');
|
|
||||||
else sb.append (' ');
|
|
||||||
generateAttributes (sb, attributes, indentation + " ");
|
|
||||||
if (!attributes.oneLine) sb.append (indentation);
|
|
||||||
sb.append ("/>\n");
|
|
||||||
} else
|
|
||||||
sb.append ("/>\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void generateAttributes (
|
|
||||||
StringBuffer sb,
|
|
||||||
Attribs attributes,
|
|
||||||
String indentation
|
|
||||||
) {
|
|
||||||
if (attributes == null) return;
|
|
||||||
int i, k = attributes.names.size ();
|
|
||||||
for (i = 0; i < k; i++) {
|
|
||||||
if (!attributes.oneLine)
|
|
||||||
sb.append (indentation);
|
|
||||||
sb.append (attributes.names.get (i)).append ("=\"").
|
|
||||||
append (attributes.values.get (i)).append ('\"');
|
|
||||||
if (!attributes.oneLine)
|
|
||||||
sb.append ("\n");
|
|
||||||
else
|
|
||||||
if (i < (k - 1))
|
|
||||||
sb.append (' ');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static class Handler extends DefaultHandler {
|
|
||||||
private Object result;
|
|
||||||
void setResult (Object result) {
|
|
||||||
this.result = result;
|
|
||||||
}
|
|
||||||
Object getResult () {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static class Attribs {
|
|
||||||
private List<String> names = new ArrayList<String> ();
|
|
||||||
private List<String> values = new ArrayList<String> ();
|
|
||||||
private boolean oneLine;
|
|
||||||
|
|
||||||
Attribs (boolean oneLine) {
|
|
||||||
this.oneLine = oneLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
void add (String name, String value) {
|
|
||||||
int i = names.indexOf (name);
|
|
||||||
if (i >= 0) {
|
|
||||||
names.remove (i);
|
|
||||||
values.remove (i);
|
|
||||||
} names.add (name);
|
|
||||||
values.add (value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void clear () {
|
|
||||||
names.clear ();
|
|
||||||
values.clear ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,106 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
include CreatorDesignerPalette/.*
|
|
||||||
include CreatorDesignerPalette5/.*
|
|
||||||
include Databases/.*
|
|
||||||
include Editors/.*
|
|
||||||
exclude Editors/.*/macros.xml
|
|
||||||
exclude Editors/.*/Popup.*
|
|
||||||
exclude Editors/.*/.*\.instance
|
|
||||||
exclude Editors/.*/Settings\.settings
|
|
||||||
include Editors/AnnotationTypes/org-netbeans-modules-java-.*\.xml
|
|
||||||
include Editors/AnnotationTypes/TaskAnnotation.*\.xml
|
|
||||||
include Favorites/.*
|
|
||||||
include FormDesignerPalette/.*
|
|
||||||
include HTMLPalette/.*
|
|
||||||
include HTTPMonitor/.*
|
|
||||||
include J2EE/.*
|
|
||||||
include JSPPalette/.*
|
|
||||||
include Keymaps/.*
|
|
||||||
exclude MVD/.*
|
|
||||||
include org-netbeans-api-project-libraries/Libraries/.*\.xml
|
|
||||||
include Services/Browsers/.*
|
|
||||||
include Services/Collaboration/.*
|
|
||||||
include Services/DiffProviders/.*
|
|
||||||
include Services/Diffs/.*
|
|
||||||
include Services/DiffVisualizers/.*
|
|
||||||
include Services/formsettings\.settings
|
|
||||||
include Services/Hidden/org-netbeans-modules-diff-DiffSettings\.settings
|
|
||||||
include Services/Hidden/org-netbeans-modules-subversion-settings-.*
|
|
||||||
include Services/Hidden/org-netbeans-modules-tasklist-suggestions-settings-ManagerSettings\.instance
|
|
||||||
include Services/Hidden/org-netbeans-modules-vcscore-settings-GeneralVcsSettings\.settings
|
|
||||||
include Services/Hidden/org-netbeans-modules-versioning-system-cvss-settings.*
|
|
||||||
include Services/Hidden/VersionControl/org-netbeans-modules-vcscore-grouping-VcsGroupSettings\.settings
|
|
||||||
exclude Services/IndentEngine/.*
|
|
||||||
include Services/MergeVisualizers/.*
|
|
||||||
include Services/org-apache-tools-ant-module-AntSettings\.settings
|
|
||||||
include Services/org-netbeans-core-IDESettings\.settings
|
|
||||||
include Services/org-netbeans-modules-db-explorer-DatabaseOption\.settings
|
|
||||||
include Services/org-netbeans-modules-debugger-Settings\.properties
|
|
||||||
include Services/org-netbeans-modules-derby-DerbyOptions\.settings
|
|
||||||
include Services/org-netbeans-modules-httpserver-HttpServerSettings\.settings
|
|
||||||
include Services/org-netbeans-modules-java-settings-JavaSettings\.settings
|
|
||||||
include Services/org-netbeans-modules-javadoc-settings-DocumentationSettings\.settings
|
|
||||||
include Services/org-netbeans-modules-profiler-ProfilerIDESettings\.settings
|
|
||||||
include Services/org-netbeans-modules-project-ui-OpenProjectList\.settings
|
|
||||||
include Services/org-netbeans-modules-tasklist-docscan-Settings\.settings
|
|
||||||
include Services/Platforms/org-netbeans-api-java-Platform/.*\.xml
|
|
||||||
include Shortcuts/.*
|
|
||||||
include TaskList/.*
|
|
||||||
include Templates/Classes/.*
|
|
||||||
include Templates/J2MEProjectConfigurations/.*\.cfg
|
|
||||||
include Toolbars/.*
|
|
||||||
exclude Toolbars/Progress/.*
|
|
||||||
include vcs/.*
|
|
||||||
include VCSMount/.*
|
|
||||||
exclude Windows2Local/Components/DesignInspector.settings
|
|
||||||
exclude Windows2Local/Groups/mvd/DesignInspector.wstcgrp
|
|
||||||
exclude Windows2Local/Modes/navigator/DesignInspector.wstcref
|
|
@ -1,106 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
include CreatorDesignerPalette/.*
|
|
||||||
include CreatorDesignerPalette5/.*
|
|
||||||
include Databases/.*
|
|
||||||
include Editors/.*
|
|
||||||
exclude Editors/.*/macros.xml
|
|
||||||
exclude Editors/.*/Popup.*
|
|
||||||
exclude Editors/.*/.*\.instance
|
|
||||||
exclude Editors/.*/Settings\.settings
|
|
||||||
include Editors/AnnotationTypes/org-netbeans-modules-java-.*\.xml
|
|
||||||
include Editors/AnnotationTypes/TaskAnnotation.*\.xml
|
|
||||||
include Favorites/.*
|
|
||||||
include FormDesignerPalette/.*
|
|
||||||
include HTMLPalette/.*
|
|
||||||
include HTTPMonitor/.*
|
|
||||||
include J2EE/.*
|
|
||||||
include JSPPalette/.*
|
|
||||||
include Keymaps/.*
|
|
||||||
exclude MVD/.*
|
|
||||||
include org-netbeans-api-project-libraries/Libraries/.*\.xml
|
|
||||||
include Services/Browsers/.*
|
|
||||||
include Services/Collaboration/.*
|
|
||||||
include Services/DiffProviders/.*
|
|
||||||
include Services/Diffs/.*
|
|
||||||
include Services/DiffVisualizers/.*
|
|
||||||
include Services/formsettings\.settings
|
|
||||||
include Services/Hidden/org-netbeans-modules-diff-DiffSettings\.settings
|
|
||||||
include Services/Hidden/org-netbeans-modules-subversion-settings-.*
|
|
||||||
include Services/Hidden/org-netbeans-modules-tasklist-suggestions-settings-ManagerSettings\.instance
|
|
||||||
include Services/Hidden/org-netbeans-modules-vcscore-settings-GeneralVcsSettings\.settings
|
|
||||||
include Services/Hidden/org-netbeans-modules-versioning-system-cvss-settings.*
|
|
||||||
include Services/Hidden/VersionControl/org-netbeans-modules-vcscore-grouping-VcsGroupSettings\.settings
|
|
||||||
exclude Services/IndentEngine/.*
|
|
||||||
include Services/MergeVisualizers/.*
|
|
||||||
include Services/org-apache-tools-ant-module-AntSettings\.settings
|
|
||||||
include Services/org-netbeans-core-IDESettings\.settings
|
|
||||||
include Services/org-netbeans-modules-db-explorer-DatabaseOption\.settings
|
|
||||||
include Services/org-netbeans-modules-debugger-Settings\.properties
|
|
||||||
include Services/org-netbeans-modules-derby-DerbyOptions\.settings
|
|
||||||
include Services/org-netbeans-modules-httpserver-HttpServerSettings\.settings
|
|
||||||
include Services/org-netbeans-modules-java-settings-JavaSettings\.settings
|
|
||||||
include Services/org-netbeans-modules-javadoc-settings-DocumentationSettings\.settings
|
|
||||||
include Services/org-netbeans-modules-profiler-ProfilerIDESettings\.settings
|
|
||||||
include Services/org-netbeans-modules-project-ui-OpenProjectList\.settings
|
|
||||||
include Services/org-netbeans-modules-tasklist-docscan-Settings\.settings
|
|
||||||
include Services/Platforms/org-netbeans-api-java-Platform/.*\.xml
|
|
||||||
include Shortcuts/.*
|
|
||||||
include TaskList/.*
|
|
||||||
include Templates/Classes/.*
|
|
||||||
include Templates/J2MEProjectConfigurations/.*\.cfg
|
|
||||||
include Toolbars/.*
|
|
||||||
exclude Toolbars/Progress/.*
|
|
||||||
include vcs/.*
|
|
||||||
include VCSMount/.*
|
|
||||||
exclude Windows2Local/Components/DesignInspector.settings
|
|
||||||
exclude Windows2Local/Groups/mvd/DesignInspector.wstcgrp
|
|
||||||
exclude Windows2Local/Modes/navigator/DesignInspector.wstcref
|
|
@ -1,82 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
include Preferences/.*
|
|
||||||
include Databases/.*
|
|
||||||
include Editors/.*
|
|
||||||
exclude Editors/.*/macros.xml
|
|
||||||
exclude Editors/.*/Popup.*
|
|
||||||
exclude Editors/.*/.*\.instance
|
|
||||||
exclude Editors/.*/Settings\.settings
|
|
||||||
include Favorites/.*
|
|
||||||
include FormDesignerPalette/.*
|
|
||||||
include HTMLPalette/.*
|
|
||||||
include J2EE/.*
|
|
||||||
include JSPPalette/.*
|
|
||||||
include Keymaps/.*
|
|
||||||
exclude MVD/.*
|
|
||||||
include org-netbeans-api-project-libraries/Libraries/.*\.xml
|
|
||||||
include Services/Browsers/.*
|
|
||||||
include Services/DiffProviders/.*
|
|
||||||
include Services/formsettings.settings
|
|
||||||
exclude Services/IndentEngine/.*
|
|
||||||
include Services/org-netbeans-modules-db-explorer-DatabaseOption\.settings
|
|
||||||
include Services/org-netbeans-modules-debugger-Settings\.properties
|
|
||||||
include Services/Platforms/org-netbeans-api-java-Platform/.*\.xml
|
|
||||||
include Shortcuts/.*
|
|
||||||
include Templates/Classes/.*
|
|
||||||
include Templates/J2MEProjectConfigurations/.*\.cfg
|
|
||||||
include Toolbars/.*
|
|
||||||
exclude Toolbars/Progress/.*
|
|
||||||
include WebServices/service-groups.xml
|
|
||||||
include WebServices/.*/.*-saas.xml
|
|
||||||
exclude Windows2Local/Components/DesignInspector.settings
|
|
||||||
exclude Windows2Local/Groups/mvd/DesignInspector.wstcgrp
|
|
||||||
exclude Windows2Local/Modes/navigator/DesignInspector.wstcref
|
|
@ -1,85 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
include Preferences/.*
|
|
||||||
exclude Preferences/org/netbeans/modules/welcome.properties!feedback.*
|
|
||||||
include Databases/.*
|
|
||||||
include Editors/.*
|
|
||||||
exclude Editors/.*/macros.xml
|
|
||||||
exclude Editors/.*/Popup.*
|
|
||||||
exclude Editors/.*/.*\.instance
|
|
||||||
exclude Editors/.*/Settings\.settings
|
|
||||||
include Favorites/.*
|
|
||||||
include FormDesignerPalette/.*
|
|
||||||
include GlassFish/.*
|
|
||||||
include HTMLPalette/.*
|
|
||||||
include J2EE/.*
|
|
||||||
include JSPPalette/.*
|
|
||||||
include Keymaps/.*
|
|
||||||
include org-netbeans-api-project-libraries/Libraries/.*\.xml
|
|
||||||
include Services/Browsers/.*
|
|
||||||
include Services/DiffProviders/.*
|
|
||||||
include Services/formsettings.settings
|
|
||||||
exclude Services/IndentEngine/.*
|
|
||||||
include Services/org-netbeans-modules-db-explorer-DatabaseOption\.settings
|
|
||||||
include Services/org-netbeans-modules-debugger-Settings\.properties
|
|
||||||
include Services/Platforms/org-netbeans-api-java-Platform/.*\.xml
|
|
||||||
include Shortcuts/.*
|
|
||||||
exclude Templates/Beans/Bean.java
|
|
||||||
exclude Templates/Beans/BeanInfo.java
|
|
||||||
exclude Templates/Beans/NoIconBeanInfo.java
|
|
||||||
exclude Templates/Beans/Customizer.java
|
|
||||||
exclude Templates/Beans/Customizer.form
|
|
||||||
exclude Templates/Beans/PropertyEditor.java
|
|
||||||
include Templates/Classes/.*
|
|
||||||
include Templates/J2MEProjectConfigurations/.*\.cfg
|
|
||||||
include Toolbars/.*
|
|
||||||
exclude Toolbars/Progress/.*
|
|
||||||
include vmd-midp/palette/custom/.*
|
|
@ -1,85 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
include Preferences/.*
|
|
||||||
exclude Preferences/org/netbeans/modules/welcome.properties!feedback.*
|
|
||||||
include Databases/.*
|
|
||||||
include Editors/.*
|
|
||||||
exclude Editors/.*/macros.xml
|
|
||||||
exclude Editors/.*/Popup.*
|
|
||||||
exclude Editors/.*/.*\.instance
|
|
||||||
exclude Editors/.*/Settings\.settings
|
|
||||||
include Favorites/.*
|
|
||||||
include FormDesignerPalette/.*
|
|
||||||
include GlassFish/.*
|
|
||||||
include HTMLPalette/.*
|
|
||||||
include J2EE/.*
|
|
||||||
include JSPPalette/.*
|
|
||||||
include Keymaps/.*
|
|
||||||
include org-netbeans-api-project-libraries/Libraries/.*\.xml
|
|
||||||
include Services/Browsers/.*
|
|
||||||
include Services/DiffProviders/.*
|
|
||||||
include Services/formsettings.settings
|
|
||||||
exclude Services/IndentEngine/.*
|
|
||||||
include Services/MIMEResolver/.*
|
|
||||||
include Services/org-netbeans-modules-db-explorer-DatabaseOption\.settings
|
|
||||||
include Services/org-netbeans-modules-debugger-Settings\.properties
|
|
||||||
include Services/Platforms/org-netbeans-api-java-Platform/.*\.xml
|
|
||||||
include Shortcuts/.*
|
|
||||||
include Templates/.*
|
|
||||||
exclude Templates/Beans/Bean.java
|
|
||||||
exclude Templates/Beans/BeanInfo.java
|
|
||||||
exclude Templates/Beans/NoIconBeanInfo.java
|
|
||||||
exclude Templates/Beans/Customizer.java
|
|
||||||
exclude Templates/Beans/Customizer.form
|
|
||||||
exclude Templates/Beans/PropertyEditor.java
|
|
||||||
include Toolbars/.*
|
|
||||||
exclude Toolbars/Progress/.*
|
|
||||||
include vmd-midp/palette/custom/.*
|
|
@ -1,90 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
include Services/org-netbeans-core-IDESettings\.settings
|
|
||||||
include Shortcuts/.*
|
|
||||||
|
|
||||||
include Services/Hidden/org-netbeans-modules-vcscore-settings-GeneralVcsSettings\.settings
|
|
||||||
|
|
||||||
include Services/DiffProviders/.*
|
|
||||||
include Services/Diffs/.*
|
|
||||||
include Services/DiffVisualizers/.*
|
|
||||||
include Services/MergeVisualizers/.*
|
|
||||||
include Services/Hidden/org-netbeans-modules-diff-DiffSettings\.settings
|
|
||||||
|
|
||||||
include Services/Browsers/.*
|
|
||||||
include Services/org-netbeans-modules-httpserver-HttpServerSettings\.settings
|
|
||||||
|
|
||||||
include HTTPMonitor/.*
|
|
||||||
|
|
||||||
include J2EE/.*
|
|
||||||
|
|
||||||
include Services/JDBCDrivers/.*
|
|
||||||
include Services/org-netbeans-modules-db-explorer-DatabaseOption\.settings
|
|
||||||
|
|
||||||
include Editors/.*
|
|
||||||
include Editors/AnnotationTypes/.*
|
|
||||||
include Services/org-openide-text-PrintSettings\.settings
|
|
||||||
include Services/IndentEngine/.*
|
|
||||||
|
|
||||||
include Services/org-netbeans-modules-java-settings-JavaSettings\.settings
|
|
||||||
include Services/org-openide-src-nodes-SourceOptions\.settings
|
|
||||||
include Templates/Classes/.*
|
|
||||||
include Editors/AnnotationTypes/org-netbeans-modules-java-.*\.xml
|
|
||||||
|
|
||||||
include Services/org-netbeans-modules-beans-beans\.settings
|
|
||||||
include Templates/Beans/.*
|
|
||||||
|
|
||||||
include Services/org-netbeans-modules-javadoc-settings-DocumentationSettings\.settings
|
|
||||||
|
|
||||||
include Services/formsettings\.settings
|
|
||||||
include Services/org-netbeans-modules-i18n-I18nOptions\.settings
|
|
||||||
|
|
||||||
include Services/Emulators/.*\.settings
|
|
@ -1,65 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!--
|
|
||||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
|
|
||||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
|
|
||||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
Other names may be trademarks of their respective owners.
|
|
||||||
|
|
||||||
|
|
||||||
The contents of this file are subject to the terms of either the GNU
|
|
||||||
General Public License Version 2 only ("GPL") or the Common
|
|
||||||
Development and Distribution License("CDDL") (collectively, the
|
|
||||||
"License"). You may not use this file except in compliance with the
|
|
||||||
License. You can obtain a copy of the License at
|
|
||||||
http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
specific language governing permissions and limitations under the
|
|
||||||
License. When distributing the software, include this License Header
|
|
||||||
Notice in each file and include the License file at
|
|
||||||
nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
particular file as subject to the "Classpath" exception as provided
|
|
||||||
by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
accompanied this code. If applicable, add the following below the
|
|
||||||
License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
your own identifying information:
|
|
||||||
"Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
|
|
||||||
Contributor(s):
|
|
||||||
|
|
||||||
The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
Microsystems, Inc. All Rights Reserved.
|
|
||||||
|
|
||||||
If you wish your version of this file to be governed by only the CDDL
|
|
||||||
or only the GPL Version 2, indicate your decision by adding
|
|
||||||
"[Contributor] elects to include this software in this distribution
|
|
||||||
under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
single choice of license, a recipient has the option to distribute
|
|
||||||
your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
to extend the choice of license to its licensees as provided above.
|
|
||||||
However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
Version 2 license, then the option applies only if the new code is
|
|
||||||
made subject to such option by the copyright holder.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
Here you can register fileobjects, which do not exist on the local filesystem but
|
|
||||||
whose attribute settings are stored there. This may occur for example when attributes
|
|
||||||
of a fileobject which exists on the XML filesystem, are changed. Since the XML filesystem
|
|
||||||
is read-only, new attribute settings are stored on the local filesystem. During upgrading,
|
|
||||||
which is done from the local filesystem such a fileobject does not exist and
|
|
||||||
thus its attribute settings are not imported.
|
|
||||||
|
|
||||||
-->
|
|
||||||
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.0//EN" "http://www.netbeans.org/dtds/filesystem-1_0.dtd">
|
|
||||||
|
|
||||||
<filesystem>
|
|
||||||
<folder name="J2EE">
|
|
||||||
<folder name="InstalledServers">
|
|
||||||
<file name="Tomcat_instance"/>
|
|
||||||
</folder>
|
|
||||||
</folder>
|
|
||||||
</filesystem>
|
|
@ -1,65 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!--
|
|
||||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
|
|
||||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
|
|
||||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
Other names may be trademarks of their respective owners.
|
|
||||||
|
|
||||||
|
|
||||||
The contents of this file are subject to the terms of either the GNU
|
|
||||||
General Public License Version 2 only ("GPL") or the Common
|
|
||||||
Development and Distribution License("CDDL") (collectively, the
|
|
||||||
"License"). You may not use this file except in compliance with the
|
|
||||||
License. You can obtain a copy of the License at
|
|
||||||
http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
specific language governing permissions and limitations under the
|
|
||||||
License. When distributing the software, include this License Header
|
|
||||||
Notice in each file and include the License file at
|
|
||||||
nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
particular file as subject to the "Classpath" exception as provided
|
|
||||||
by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
accompanied this code. If applicable, add the following below the
|
|
||||||
License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
your own identifying information:
|
|
||||||
"Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
|
|
||||||
Contributor(s):
|
|
||||||
|
|
||||||
The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
Microsystems, Inc. All Rights Reserved.
|
|
||||||
|
|
||||||
If you wish your version of this file to be governed by only the CDDL
|
|
||||||
or only the GPL Version 2, indicate your decision by adding
|
|
||||||
"[Contributor] elects to include this software in this distribution
|
|
||||||
under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
single choice of license, a recipient has the option to distribute
|
|
||||||
your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
to extend the choice of license to its licensees as provided above.
|
|
||||||
However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
Version 2 license, then the option applies only if the new code is
|
|
||||||
made subject to such option by the copyright holder.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
Here you can register fileobjects, which do not exist on the local filesystem but
|
|
||||||
whose attribute settings are stored there. This may occur for example when attributes
|
|
||||||
of a fileobject which exists on the XML filesystem, are changed. Since the XML filesystem
|
|
||||||
is read-only, new attribute settings are stored on the local filesystem. During upgrading,
|
|
||||||
which is done from the local filesystem such a fileobject does not exist and
|
|
||||||
thus its attribute settings are not imported.
|
|
||||||
|
|
||||||
-->
|
|
||||||
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.0//EN" "http://www.netbeans.org/dtds/filesystem-1_0.dtd">
|
|
||||||
|
|
||||||
<filesystem>
|
|
||||||
<folder name="J2EE">
|
|
||||||
<folder name="InstalledServers">
|
|
||||||
<file name="Tomcat_instance"/>
|
|
||||||
</folder>
|
|
||||||
</folder>
|
|
||||||
</filesystem>
|
|
@ -1,65 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!--
|
|
||||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
|
|
||||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
|
|
||||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
Other names may be trademarks of their respective owners.
|
|
||||||
|
|
||||||
|
|
||||||
The contents of this file are subject to the terms of either the GNU
|
|
||||||
General Public License Version 2 only ("GPL") or the Common
|
|
||||||
Development and Distribution License("CDDL") (collectively, the
|
|
||||||
"License"). You may not use this file except in compliance with the
|
|
||||||
License. You can obtain a copy of the License at
|
|
||||||
http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
specific language governing permissions and limitations under the
|
|
||||||
License. When distributing the software, include this License Header
|
|
||||||
Notice in each file and include the License file at
|
|
||||||
nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
particular file as subject to the "Classpath" exception as provided
|
|
||||||
by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
accompanied this code. If applicable, add the following below the
|
|
||||||
License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
your own identifying information:
|
|
||||||
"Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
|
|
||||||
Contributor(s):
|
|
||||||
|
|
||||||
The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
Microsystems, Inc. All Rights Reserved.
|
|
||||||
|
|
||||||
If you wish your version of this file to be governed by only the CDDL
|
|
||||||
or only the GPL Version 2, indicate your decision by adding
|
|
||||||
"[Contributor] elects to include this software in this distribution
|
|
||||||
under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
single choice of license, a recipient has the option to distribute
|
|
||||||
your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
to extend the choice of license to its licensees as provided above.
|
|
||||||
However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
Version 2 license, then the option applies only if the new code is
|
|
||||||
made subject to such option by the copyright holder.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
Here you can register fileobjects, which do not exist on the local filesystem but
|
|
||||||
whose attribute settings are stored there. This may occur for example when attributes
|
|
||||||
of a fileobject which exists on the XML filesystem, are changed. Since the XML filesystem
|
|
||||||
is read-only, new attribute settings are stored on the local filesystem. During upgrading,
|
|
||||||
which is done from the local filesystem such a fileobject does not exist and
|
|
||||||
thus its attribute settings are not imported.
|
|
||||||
|
|
||||||
-->
|
|
||||||
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.0//EN" "http://www.netbeans.org/dtds/filesystem-1_0.dtd">
|
|
||||||
|
|
||||||
<filesystem>
|
|
||||||
<folder name="J2EE">
|
|
||||||
<folder name="InstalledServers">
|
|
||||||
<file name="Tomcat_instance"/>
|
|
||||||
</folder>
|
|
||||||
</folder>
|
|
||||||
</filesystem>
|
|
@ -1,65 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!--
|
|
||||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
|
|
||||||
Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
|
|
||||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
Other names may be trademarks of their respective owners.
|
|
||||||
|
|
||||||
|
|
||||||
The contents of this file are subject to the terms of either the GNU
|
|
||||||
General Public License Version 2 only ("GPL") or the Common
|
|
||||||
Development and Distribution License("CDDL") (collectively, the
|
|
||||||
"License"). You may not use this file except in compliance with the
|
|
||||||
License. You can obtain a copy of the License at
|
|
||||||
http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
specific language governing permissions and limitations under the
|
|
||||||
License. When distributing the software, include this License Header
|
|
||||||
Notice in each file and include the License file at
|
|
||||||
nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
particular file as subject to the "Classpath" exception as provided
|
|
||||||
by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
accompanied this code. If applicable, add the following below the
|
|
||||||
License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
your own identifying information:
|
|
||||||
"Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
|
|
||||||
Contributor(s):
|
|
||||||
|
|
||||||
The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
Microsystems, Inc. All Rights Reserved.
|
|
||||||
|
|
||||||
If you wish your version of this file to be governed by only the CDDL
|
|
||||||
or only the GPL Version 2, indicate your decision by adding
|
|
||||||
"[Contributor] elects to include this software in this distribution
|
|
||||||
under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
single choice of license, a recipient has the option to distribute
|
|
||||||
your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
to extend the choice of license to its licensees as provided above.
|
|
||||||
However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
Version 2 license, then the option applies only if the new code is
|
|
||||||
made subject to such option by the copyright holder.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
Here you can register fileobjects, which do not exist on the local filesystem but
|
|
||||||
whose attribute settings are stored there. This may occur for example when attributes
|
|
||||||
of a fileobject which exists on the XML filesystem, are changed. Since the XML filesystem
|
|
||||||
is read-only, new attribute settings are stored on the local filesystem. During upgrading,
|
|
||||||
which is done from the local filesystem such a fileobject does not exist and
|
|
||||||
thus its attribute settings are not imported.
|
|
||||||
|
|
||||||
-->
|
|
||||||
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.0//EN" "http://www.netbeans.org/dtds/filesystem-1_0.dtd">
|
|
||||||
|
|
||||||
<filesystem>
|
|
||||||
<folder name="J2EE">
|
|
||||||
<folder name="InstalledServers">
|
|
||||||
<file name="Tomcat_instance"/>
|
|
||||||
</folder>
|
|
||||||
</folder>
|
|
||||||
</filesystem>
|
|
@ -1,54 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
#creator
|
|
||||||
include complibs/.*
|
|
||||||
include jdbc-drivers/.*\.jar
|
|
||||||
include context\.xml
|
|
@ -1,54 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
#creator
|
|
||||||
include complibs/.*
|
|
||||||
include jdbc-drivers/.*\.jar
|
|
||||||
include context\.xml
|
|
@ -1,56 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
#creator
|
|
||||||
include complibs/.*
|
|
||||||
include jdbc-drivers/.*\.jar
|
|
||||||
include context\.xml
|
|
||||||
include .uml
|
|
||||||
include var/filehistory/.*
|
|
@ -1,51 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
include var/filehistory/.*
|
|
@ -1,52 +0,0 @@
|
|||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
#
|
|
||||||
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
# Other names may be trademarks of their respective owners.
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the terms of either the GNU
|
|
||||||
# General Public License Version 2 only ("GPL") or the Common
|
|
||||||
# Development and Distribution License("CDDL") (collectively, the
|
|
||||||
# "License"). You may not use this file except in compliance with the
|
|
||||||
# License. You can obtain a copy of the License at
|
|
||||||
# http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
# specific language governing permissions and limitations under the
|
|
||||||
# License. When distributing the software, include this License Header
|
|
||||||
# Notice in each file and include the License file at
|
|
||||||
# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
# particular file as subject to the "Classpath" exception as provided
|
|
||||||
# by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
# accompanied this code. If applicable, add the following below the
|
|
||||||
# License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
# your own identifying information:
|
|
||||||
# "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
#
|
|
||||||
# Contributor(s):
|
|
||||||
#
|
|
||||||
# The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
# Microsystems, Inc. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# If you wish your version of this file to be governed by only the CDDL
|
|
||||||
# or only the GPL Version 2, indicate your decision by adding
|
|
||||||
# "[Contributor] elects to include this software in this distribution
|
|
||||||
# under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
# single choice of license, a recipient has the option to distribute
|
|
||||||
# your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
# to extend the choice of license to its licensees as provided above.
|
|
||||||
# However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
# Version 2 license, then the option applies only if the new code is
|
|
||||||
# made subject to such option by the copyright holder.
|
|
||||||
|
|
||||||
# start the line either with # to begin a comment
|
|
||||||
# or include to describe a file(s) to be included during copy
|
|
||||||
# or exclude to describe a file(s) to be excluded
|
|
||||||
# use of regular expressions allowed in file names
|
|
||||||
#
|
|
||||||
# the list is iterated from first to last and the last match
|
|
||||||
# decides the result
|
|
||||||
|
|
||||||
include var/filehistory/.*
|
|
||||||
include etc/netbeans.conf
|
|
@ -1,81 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
import java.lang.Object;
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class ColorProcessor extends PropertyProcessor {
|
|
||||||
|
|
||||||
static final String JAVA_AWT_COLOR = "java.awt.Color"; // NOI18N
|
|
||||||
static final String NETBEANS_COLOREDITOR_SUPERCOLOR = "org.netbeans.beaninfo.editors.ColorEditor.SuperColor"; // NOI18N
|
|
||||||
|
|
||||||
ColorProcessor(String className) {
|
|
||||||
super(className);//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
if ("connectionBorderColor".equals(propertyName)||
|
|
||||||
"dragBorderColor".equals(propertyName)||
|
|
||||||
"formDesignerBackgroundColor".equals(propertyName)||
|
|
||||||
"formDesignerBorderColor".equals(propertyName)||
|
|
||||||
"guidingLineColor".equals(propertyName)||
|
|
||||||
"selectionBorderColor".equals(propertyName)) {//NOI18N
|
|
||||||
for (Iterator it = ((SerParser.ObjectWrapper)value).data.iterator(); it.hasNext();) {
|
|
||||||
Object o = it.next();
|
|
||||||
if (o instanceof SerParser.NameValue && "value".equals(((SerParser.NameValue)o).name.name)) {//NOI18N
|
|
||||||
addProperty(propertyName, ((SerParser.NameValue)o).value.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,135 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
class ContentProcessor {
|
|
||||||
private static Map<String, ContentProcessor> clsname2Delegate = new HashMap<String, ContentProcessor>();
|
|
||||||
protected String systemOptionInstanceName;
|
|
||||||
|
|
||||||
static {
|
|
||||||
registerContentProcessor(new JUnitContentProcessor("org.netbeans.modules.junit.JUnitSettings"));//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void registerContentProcessor(ContentProcessor instance) {
|
|
||||||
if (clsname2Delegate.put(instance.systemOptionInstanceName, instance) != null) {
|
|
||||||
throw new IllegalArgumentException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected ContentProcessor(String systemOptionInstanceName) {
|
|
||||||
this.systemOptionInstanceName = systemOptionInstanceName;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Result parseContent(final Iterator<Object> it, boolean types) {
|
|
||||||
Map<String, String> m;
|
|
||||||
Result result = null;
|
|
||||||
try {
|
|
||||||
Map<String, Object> props = parseProperties(it);
|
|
||||||
assert props != null;
|
|
||||||
//debugInfo("before: ", m);
|
|
||||||
m = processProperties(props, types);
|
|
||||||
//assert debugInfo("after: ", m);
|
|
||||||
result = new DefaultResult(systemOptionInstanceName, m);
|
|
||||||
} catch (IllegalStateException isx) {
|
|
||||||
Logger.getLogger(ContentProcessor.class.getName()).log(Level.WARNING, systemOptionInstanceName + " not parsed", isx);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Result parseContent(String systemOptionInstanceName, boolean types, final Iterator<Object> it) {
|
|
||||||
ContentProcessor cp = clsname2Delegate.get(systemOptionInstanceName);
|
|
||||||
if (cp == null) {
|
|
||||||
cp = new ContentProcessor(systemOptionInstanceName);
|
|
||||||
}
|
|
||||||
return cp.parseContent(it, types);
|
|
||||||
}
|
|
||||||
|
|
||||||
private final Map<String, String> processProperties(final Map<String, Object> properties, boolean types) {
|
|
||||||
Map<String, String> allProps = new HashMap<String, String>();
|
|
||||||
for (Iterator<Map.Entry<String, Object>> it = properties.entrySet().iterator(); it.hasNext();) {
|
|
||||||
Map.Entry<String, Object> entry = it.next();
|
|
||||||
String name = entry.getKey();
|
|
||||||
Object value = entry.getValue();
|
|
||||||
allProps.putAll(PropertyProcessor.processProperty(name, value, types));
|
|
||||||
}
|
|
||||||
return allProps;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final Map<String, Object> parseProperties(final Iterator<Object> it) { // sequences String, Object, SerParser.ObjectWrapper
|
|
||||||
Map<String, Object> properties = new HashMap<String, Object>();
|
|
||||||
for (; it.hasNext();) {
|
|
||||||
Object name = it.next();
|
|
||||||
if ("null".equals(name) || name == null) {
|
|
||||||
//finito
|
|
||||||
return properties;
|
|
||||||
} else if (!(name instanceof String)) {
|
|
||||||
throw new IllegalStateException(name.getClass().getName());
|
|
||||||
} else {
|
|
||||||
if (!it.hasNext()) {
|
|
||||||
throw new IllegalStateException(name.toString());
|
|
||||||
}
|
|
||||||
Object value = it.next();
|
|
||||||
properties.put((String)name, value);
|
|
||||||
Object propertyRead = it.next();
|
|
||||||
if (!(propertyRead instanceof SerParser.ObjectWrapper )) {
|
|
||||||
throw new IllegalStateException(propertyRead.getClass().getName());
|
|
||||||
} else {
|
|
||||||
SerParser.ObjectWrapper ow = (SerParser.ObjectWrapper)propertyRead;
|
|
||||||
if (!ow.classdesc.name.endsWith("java.lang.Boolean;")) {//NOI18N
|
|
||||||
throw new IllegalStateException(ow.classdesc.name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
throw new IllegalStateException("Unexpected end");//NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,91 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Imports CVS root settings: external SSH command
|
|
||||||
*
|
|
||||||
* @author Maros Sandor
|
|
||||||
*/
|
|
||||||
public class CvsSettingsProcessor extends PropertyProcessor {
|
|
||||||
|
|
||||||
private final String FIELD_SEPARATOR = "<~>";
|
|
||||||
|
|
||||||
public CvsSettingsProcessor() {
|
|
||||||
super("org.netbeans.modules.versioning.system.cvss.settings.CvsRootSettings.PersistentMap");
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
if ("rootsMap".equals(propertyName)) { // NOI18N
|
|
||||||
List mapData = ((SerParser.ObjectWrapper) value).data;
|
|
||||||
int n = 0;
|
|
||||||
int idx = 3;
|
|
||||||
if (mapData.size() > 3) {
|
|
||||||
for (;;) {
|
|
||||||
if (idx + 2 > mapData.size()) break;
|
|
||||||
String root = (String) mapData.get(idx);
|
|
||||||
List rootData = ((SerParser.ObjectWrapper) mapData.get(idx + 1)).data;
|
|
||||||
try {
|
|
||||||
List extSettingsData = ((SerParser.ObjectWrapper) ((SerParser.NameValue) rootData.get(0)).value).data;
|
|
||||||
Boolean extRememberPassword = (Boolean) ((SerParser.NameValue) extSettingsData.get(0)).value;
|
|
||||||
Boolean extUseInternalSSH = (Boolean) ((SerParser.NameValue) extSettingsData.get(1)).value;
|
|
||||||
String extCommand = (String) ((SerParser.NameValue) extSettingsData.get(2)).value;
|
|
||||||
String extPassword = (String) ((SerParser.NameValue) extSettingsData.get(3)).value;
|
|
||||||
String setting = root + FIELD_SEPARATOR + extUseInternalSSH + FIELD_SEPARATOR + extRememberPassword + FIELD_SEPARATOR + extCommand;
|
|
||||||
if (extPassword != null && !extPassword.equals("null")) setting += FIELD_SEPARATOR + extPassword;
|
|
||||||
addProperty("cvsRootSettings" + "." + n, setting);
|
|
||||||
n++;
|
|
||||||
} catch (Exception e) {
|
|
||||||
// the setting is not there => nothing to import
|
|
||||||
}
|
|
||||||
idx += 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
class DefaultResult implements Result {
|
|
||||||
private Map<String, String> m;
|
|
||||||
private String instanceName;
|
|
||||||
private String moduleName;
|
|
||||||
DefaultResult(String instanceName, Map<String, String> m) {
|
|
||||||
this.instanceName = instanceName;
|
|
||||||
this.m = m;
|
|
||||||
}
|
|
||||||
public String getProperty(final String propName) {
|
|
||||||
return m.get(propName);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String[] getPropertyNames() {
|
|
||||||
return m.keySet().toArray(new String[m.size()]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInstanceName() {
|
|
||||||
return instanceName;
|
|
||||||
}
|
|
||||||
public String getModuleName() {
|
|
||||||
return moduleName;
|
|
||||||
}
|
|
||||||
public void setModuleName(String aModuleName) {
|
|
||||||
moduleName = aModuleName;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* Portions Copyrighted 2007 Sun Microsystems, Inc.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Jan Pokorsky
|
|
||||||
*/
|
|
||||||
final class DocumentationSettingsProcessor extends PropertyProcessor {
|
|
||||||
|
|
||||||
public DocumentationSettingsProcessor() {
|
|
||||||
super("org.netbeans.modules.javadoc.settings.DocumentationSettings");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
// other properties are obsolete
|
|
||||||
if ("idxSearchSort".equals(propertyName)
|
|
||||||
|| "idxSearchNoHtml".equals(propertyName)
|
|
||||||
|| "idxSearchSplit".equals(propertyName)) {
|
|
||||||
|
|
||||||
String stringvalue = Utils.valueFromObjectWrapper(value);
|
|
||||||
addProperty(propertyName, stringvalue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,77 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class FileProcessor extends PropertyProcessor {
|
|
||||||
FileProcessor() {
|
|
||||||
super("java.io.File");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
if ("antHome".equals(propertyName) || "projectsFolder".equals(propertyName)) {//NOI18N
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
Object elem = (Object) it.next();
|
|
||||||
if (elem instanceof SerParser.NameValue) {
|
|
||||||
SerParser.NameValue nv = (SerParser.NameValue)elem;
|
|
||||||
if (nv.value != null && nv.name != null) {
|
|
||||||
if (nv.name.name.equals("path")) {//NOI18N
|
|
||||||
addProperty(propertyName,nv.value.toString());//NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class HashMapProcessor extends PropertyProcessor {
|
|
||||||
HashMapProcessor() {
|
|
||||||
super("java.util.HashMap");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
if ("properties".equals(propertyName)) {//NOI18N
|
|
||||||
StringBuilder b = new StringBuilder();
|
|
||||||
int s = 0;
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
Object elem = (Object) it.next();
|
|
||||||
if (elem instanceof String) {
|
|
||||||
switch (s) {
|
|
||||||
case 1:
|
|
||||||
b.append('\n');
|
|
||||||
// FALLTHROUGH
|
|
||||||
case 0:
|
|
||||||
b.append(elem);
|
|
||||||
s = 2;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
b.append('=');
|
|
||||||
b.append(elem);
|
|
||||||
s = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
addProperty(propertyName, b.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* Portions Copyrighted 2007 Sun Microsystems, Inc.
|
|
||||||
*/
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Tomas Stupka
|
|
||||||
*/
|
|
||||||
class HashSetProcessor extends PropertyProcessor {
|
|
||||||
|
|
||||||
static final String CVS_PERSISTENT_HASHSET = "org.netbeans.modules.versioning.system.cvss.settings.CvsModuleConfig.PersistentHashSet"; // NOI18N
|
|
||||||
static final String SVN_PERSISTENT_HASHSET = "org.netbeans.modules.subversion.settings.SvnModuleConfig.PersistentHashSet"; // NOI18N
|
|
||||||
|
|
||||||
HashSetProcessor(String className) {
|
|
||||||
super(className);
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
if ("commitExclusions".equals(propertyName)) { // NOI18N
|
|
||||||
List l = ((SerParser.ObjectWrapper) value).data;
|
|
||||||
int c = 0;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
Object elem = it.next();
|
|
||||||
if(elem instanceof String) {
|
|
||||||
addProperty(propertyName + "." + c, (String) elem);
|
|
||||||
c = c + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,82 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.rmi.UnexpectedException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class HostPropertyProcessor extends PropertyProcessor {
|
|
||||||
HostPropertyProcessor() {
|
|
||||||
super("org.netbeans.modules.httpserver.HttpServerSettings.HostProperty");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
if ("hostProperty".equals(propertyName)) {//NOI18N
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
Object elem = (Object) it.next();
|
|
||||||
if (elem instanceof SerParser.NameValue) {
|
|
||||||
SerParser.NameValue nv = (SerParser.NameValue)elem;
|
|
||||||
if (nv.value != null && nv.name != null) {
|
|
||||||
if (nv.name.name.equals("grantedAddresses")) {//NOI18N
|
|
||||||
addProperty(nv.name.name,nv.value.toString());//NOI18N
|
|
||||||
} else if (nv.name.name.equals("host")) {//NOI18N
|
|
||||||
addProperty(nv.name.name,nv.value.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,135 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
import org.openide.filesystems.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
public class Importer {
|
|
||||||
private static final String DEFINITION_OF_FILES = "systemoptionsimport";//NOI18N
|
|
||||||
|
|
||||||
public static void doImport() throws IOException {
|
|
||||||
Set<FileObject> files = getImportFiles(loadImportFilesDefinition());
|
|
||||||
for (Iterator<DefaultResult> it = parse(files).iterator(); it.hasNext();) {
|
|
||||||
saveResult(it.next());
|
|
||||||
}
|
|
||||||
for (Iterator it = files.iterator(); it.hasNext();) {
|
|
||||||
FileObject fo = (FileObject) it.next();
|
|
||||||
FileLock fLock = fo.lock();
|
|
||||||
try {
|
|
||||||
fo.rename(fLock, fo.getName(), "imported");//NOI18N
|
|
||||||
} finally {
|
|
||||||
fLock.releaseLock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void saveResult(final DefaultResult result) throws IOException {
|
|
||||||
String absolutePath = "/"+result.getModuleName();
|
|
||||||
PropertiesStorage ps = PropertiesStorage.instance(absolutePath);
|
|
||||||
Properties props = ps.load();
|
|
||||||
String[] propertyNames = result.getPropertyNames();
|
|
||||||
for (int i = 0; i < propertyNames.length; i++) {
|
|
||||||
String val = result.getProperty(propertyNames[i]);
|
|
||||||
if (val != null) {
|
|
||||||
props.put(propertyNames[i], val);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (props.size() > 0) {
|
|
||||||
ps.save(props);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Set<DefaultResult> parse(final Set<FileObject> files) {
|
|
||||||
Set<DefaultResult> retval = new HashSet<DefaultResult>();
|
|
||||||
for (FileObject f: files) {
|
|
||||||
try {
|
|
||||||
retval.add(SystemOptionsParser.parse(f, false));
|
|
||||||
} catch (Exception ex) {
|
|
||||||
boolean assertOn = false;
|
|
||||||
assert assertOn = true;
|
|
||||||
if (assertOn) {
|
|
||||||
Logger.getLogger("org.netbeans.upgrade.systemoptions.parse").log(Level.INFO, "importing: " + f.getPath(), ex); // NOI18N
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static Properties loadImportFilesDefinition() throws IOException {
|
|
||||||
Properties props = new Properties();
|
|
||||||
InputStream is = Importer.class.getResourceAsStream(DEFINITION_OF_FILES);
|
|
||||||
try {
|
|
||||||
props.load(is);
|
|
||||||
} finally {
|
|
||||||
is.close();
|
|
||||||
}
|
|
||||||
return props;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Set<FileObject> getImportFiles(final Properties props) {
|
|
||||||
Set<FileObject> fileobjects = new HashSet<FileObject>();
|
|
||||||
for (Iterator it = props.keySet().iterator(); it.hasNext();) {
|
|
||||||
String path = (String) it.next();
|
|
||||||
FileObject f = FileUtil.getConfigFile(path);
|
|
||||||
if (f != null) {
|
|
||||||
fileobjects.add(f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return fileobjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Creates a new instance of SettingsReadSupport */
|
|
||||||
private Importer() {}
|
|
||||||
}
|
|
@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.rmi.UnexpectedException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class IntrospectedInfoProcessor extends PropertyProcessor {
|
|
||||||
IntrospectedInfoProcessor() {
|
|
||||||
super("org.apache.tools.ant.module.api.IntrospectedInfo");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
//skip it
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,147 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author rmatous
|
|
||||||
*/
|
|
||||||
public class JUnitContentProcessor extends ContentProcessor{
|
|
||||||
protected JUnitContentProcessor(String systemOptionInstanceName) {
|
|
||||||
super(systemOptionInstanceName);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Result parseContent(final Iterator<Object> it, boolean types) {
|
|
||||||
Map<String, String> properties = new HashMap<String, String>();
|
|
||||||
assert it.hasNext();
|
|
||||||
Object o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
SerParser.ObjectWrapper ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Integer") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("version", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
assert it.hasNext();
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(String.class);
|
|
||||||
properties.put("fileSystem", ((types)?"java.lang.String": (String)o));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("membersPublic", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);
|
|
||||||
properties.put("membersProtected", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("membersPackage", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("bodyComments", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("bodyContent", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("javaDoc", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("generateAbstractImpl", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("generateExceptionClasses", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("generateSuiteClasses", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("includePackagePrivateClasses", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("generateMainMethod", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(String.class);
|
|
||||||
properties.put("generateMainMethodBody", ((types)?"java.lang.String": (String)o));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(String.class);
|
|
||||||
properties.put("rootSuiteClassName", ((types)?"java.lang.String": (String)o));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("generateSetUp", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
o = it.next();
|
|
||||||
assert o.getClass().equals(SerParser.ObjectWrapper.class);
|
|
||||||
ow = (SerParser.ObjectWrapper)o;
|
|
||||||
assert Utils.getClassNameFromObject(ow).equals("java.lang.Boolean") : Utils.getClassNameFromObject(ow);//NOI18N
|
|
||||||
properties.put("generateTearDown", ((types)?Utils.getClassNameFromObject(ow): Utils.valueFromObjectWrapper(ow)));//NOI18N
|
|
||||||
|
|
||||||
|
|
||||||
return new DefaultResult(systemOptionInstanceName, properties);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,87 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.net.MalformedURLException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class ListProcessor extends PropertyProcessor {
|
|
||||||
ListProcessor() {
|
|
||||||
super("java.util.ArrayList");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
if ("openProjectsURLs".equals(propertyName)
|
|
||||||
|| "recentProjectsURLs".equals(propertyName)
|
|
||||||
|| "recentTemplates".equals(propertyName)) {//NOI18N
|
|
||||||
int s = 0;
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
String prop = null;
|
|
||||||
Object elem = (Object) it.next();
|
|
||||||
if (elem instanceof SerParser.ObjectWrapper) {
|
|
||||||
List list2 = ((SerParser.ObjectWrapper)elem).data;
|
|
||||||
try {
|
|
||||||
URL url = URLProcessor.createURL(list2);
|
|
||||||
prop = url.toExternalForm();
|
|
||||||
} catch (MalformedURLException ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
} else if (elem instanceof String) {
|
|
||||||
prop = (String)elem;
|
|
||||||
}
|
|
||||||
if (prop != null) {
|
|
||||||
addProperty(propertyName + "." + s, prop);
|
|
||||||
s = s + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class NbClassPathProcessor extends PropertyProcessor {
|
|
||||||
NbClassPathProcessor() {
|
|
||||||
super("org.openide.execution.NbClassPath");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
Object elem = (Object) it.next();
|
|
||||||
if (elem instanceof SerParser.NameValue) {
|
|
||||||
SerParser.NameValue nv = (SerParser.NameValue)elem;
|
|
||||||
if (nv.value != null && nv.name != null) {
|
|
||||||
if (nv.name.name.equals("classpath")) {//NOI18N
|
|
||||||
addProperty(propertyName, nv.value.toString());
|
|
||||||
} else if (nv.name.name.equals("items")) {//NOI18N
|
|
||||||
//skip it - won't be imported
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,185 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.io.FilterOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Properties;
|
|
||||||
import org.openide.filesystems.FileLock;
|
|
||||||
import org.openide.filesystems.FileObject;
|
|
||||||
import org.openide.filesystems.FileUtil;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class PropertiesStorage {
|
|
||||||
private static final String USERROOT_PREFIX = "/Preferences";//NOI18N
|
|
||||||
private final static FileObject SFS_ROOT = FileUtil.getConfigRoot();
|
|
||||||
|
|
||||||
private final String folderPath;
|
|
||||||
private String filePath;
|
|
||||||
|
|
||||||
static PropertiesStorage instance(final String absolutePath) {
|
|
||||||
return new PropertiesStorage(absolutePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
FileObject preferencesRoot() throws IOException {
|
|
||||||
return FileUtil.createFolder(SFS_ROOT, USERROOT_PREFIX);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** Creates a new instance */
|
|
||||||
private PropertiesStorage(final String absolutePath) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
sb.append(USERROOT_PREFIX).append(absolutePath);
|
|
||||||
folderPath = sb.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Properties load() throws IOException {
|
|
||||||
try {
|
|
||||||
Properties retval = new Properties();
|
|
||||||
InputStream is = inputStream();
|
|
||||||
if (is != null) {
|
|
||||||
try {
|
|
||||||
retval.load(is);
|
|
||||||
} finally {
|
|
||||||
if (is != null) is.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
} finally {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void save(final Properties properties) throws IOException {
|
|
||||||
if (!properties.isEmpty()) {
|
|
||||||
OutputStream os = null;
|
|
||||||
try {
|
|
||||||
os = outputStream();
|
|
||||||
properties.store(os,new Date().toString());//NOI18N
|
|
||||||
} finally {
|
|
||||||
if (os != null) os.close();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
FileObject file = toPropertiesFile();
|
|
||||||
if (file != null) {
|
|
||||||
file.delete();
|
|
||||||
}
|
|
||||||
FileObject folder = toFolder();
|
|
||||||
while (folder != null && folder != preferencesRoot() && folder.getChildren().length == 0) {
|
|
||||||
folder.delete();
|
|
||||||
folder = folder.getParent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private InputStream inputStream() throws IOException {
|
|
||||||
FileObject file = toPropertiesFile(false);
|
|
||||||
return (file == null) ? null : file.getInputStream();
|
|
||||||
}
|
|
||||||
|
|
||||||
private OutputStream outputStream() throws IOException {
|
|
||||||
FileObject fo = toPropertiesFile(true);
|
|
||||||
final FileLock lock = fo.lock();
|
|
||||||
final OutputStream os = fo.getOutputStream(lock);
|
|
||||||
return new FilterOutputStream(os) {
|
|
||||||
public void close() throws IOException {
|
|
||||||
super.close();
|
|
||||||
lock.releaseLock();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private String folderPath() {
|
|
||||||
return folderPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String filePath() {
|
|
||||||
if (filePath == null) {
|
|
||||||
String[] all = folderPath().split("/");//NOI18N
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
for (int i = 0; i < all.length-1; i++) {
|
|
||||||
sb.append(all[i]).append("/");//NOI18N
|
|
||||||
}
|
|
||||||
if (all.length > 0) {
|
|
||||||
sb.append(all[all.length-1]).append(".properties");//NOI18N
|
|
||||||
} else {
|
|
||||||
sb.append("root.properties");//NOI18N
|
|
||||||
}
|
|
||||||
filePath = sb.toString();
|
|
||||||
}
|
|
||||||
return filePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected FileObject toFolder() {
|
|
||||||
return SFS_ROOT.getFileObject(folderPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected FileObject toPropertiesFile() {
|
|
||||||
return SFS_ROOT.getFileObject(filePath());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected FileObject toFolder(boolean create) throws IOException {
|
|
||||||
FileObject retval = toFolder();
|
|
||||||
if (retval == null && create) {
|
|
||||||
retval = FileUtil.createFolder(SFS_ROOT, folderPath);
|
|
||||||
}
|
|
||||||
assert (retval == null && !create) || (retval != null && retval.isFolder());
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected FileObject toPropertiesFile(boolean create) throws IOException {
|
|
||||||
FileObject retval = toPropertiesFile();
|
|
||||||
if (retval == null && create) {
|
|
||||||
retval = FileUtil.createData(SFS_ROOT,filePath());//NOI18N
|
|
||||||
}
|
|
||||||
assert (retval == null && !create) || (retval != null && retval.isData());
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,131 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
abstract class PropertyProcessor {
|
|
||||||
private String className;
|
|
||||||
private static Map<String, String> results;
|
|
||||||
private static Map<String, PropertyProcessor> clsname2Delegate = new HashMap<String, PropertyProcessor>();
|
|
||||||
|
|
||||||
static {
|
|
||||||
//To extend behaviour of this class then regisetr your own implementation
|
|
||||||
registerPropertyProcessor(new TaskTagsProcessor());
|
|
||||||
registerPropertyProcessor(new HostPropertyProcessor());
|
|
||||||
registerPropertyProcessor(new FileProcessor());//AntSettings
|
|
||||||
registerPropertyProcessor(new NbClassPathProcessor());//AntSettings
|
|
||||||
registerPropertyProcessor(new HashMapProcessor());//AntSettings
|
|
||||||
registerPropertyProcessor(new IntrospectedInfoProcessor());//AntSettings
|
|
||||||
registerPropertyProcessor(new ListProcessor());//ProjectUISettings
|
|
||||||
registerPropertyProcessor(new URLProcessor());//ProjectUISettings
|
|
||||||
registerPropertyProcessor(new ColorProcessor(ColorProcessor.JAVA_AWT_COLOR));//FormLoaderSettings
|
|
||||||
registerPropertyProcessor(new ColorProcessor(ColorProcessor.NETBEANS_COLOREDITOR_SUPERCOLOR));//FormLoaderSettings
|
|
||||||
registerPropertyProcessor(new StringPropertyProcessor());//ProxySettings
|
|
||||||
registerPropertyProcessor(new HashSetProcessor(HashSetProcessor.CVS_PERSISTENT_HASHSET));//CvsSettings
|
|
||||||
registerPropertyProcessor(new HashSetProcessor(HashSetProcessor.SVN_PERSISTENT_HASHSET));//SvnSettings
|
|
||||||
registerPropertyProcessor(new CvsSettingsProcessor());
|
|
||||||
registerPropertyProcessor(new DocumentationSettingsProcessor());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static void registerPropertyProcessor(PropertyProcessor instance) {
|
|
||||||
if (clsname2Delegate.put(instance.className, instance) != null) {
|
|
||||||
throw new IllegalArgumentException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static PropertyProcessor DEFAULT = new PropertyProcessor(false) {
|
|
||||||
void processPropertyImpl(final String propertyName, final Object value) {
|
|
||||||
String stringvalue = null;
|
|
||||||
stringvalue = Utils.valueFromObjectWrapper(value);
|
|
||||||
addProperty(propertyName, stringvalue);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private static PropertyProcessor TYPES = new PropertyProcessor(true) {
|
|
||||||
void processPropertyImpl(final String propertyName, final Object value) {
|
|
||||||
addProperty(propertyName, Utils.getClassNameFromObject(value));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private boolean types;
|
|
||||||
|
|
||||||
|
|
||||||
private PropertyProcessor(boolean types) {
|
|
||||||
this.types = types;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected PropertyProcessor(String className) {
|
|
||||||
this(false);
|
|
||||||
this.className = className;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Map<String, String> processProperty(String propertyName, Object value, boolean types) {
|
|
||||||
results = new HashMap<String, String>();
|
|
||||||
PropertyProcessor p = (types) ? TYPES : findDelegate(value);
|
|
||||||
if (p == null) {
|
|
||||||
p = DEFAULT;
|
|
||||||
}
|
|
||||||
assert p != null;
|
|
||||||
p.processPropertyImpl(propertyName, value);
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract void processPropertyImpl(String propertyName, Object value);
|
|
||||||
|
|
||||||
protected final void addProperty(String propertyName, String value) {
|
|
||||||
if (results.put(propertyName, value) != null) {
|
|
||||||
throw new IllegalArgumentException(propertyName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static PropertyProcessor findDelegate(final Object value) {
|
|
||||||
String clsName = Utils.getClassNameFromObject(value);
|
|
||||||
return (PropertyProcessor)clsname2Delegate.get(clsName);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,55 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
public interface Result {
|
|
||||||
String getInstanceName();
|
|
||||||
String getProperty(final String propName);
|
|
||||||
String[] getPropertyNames();
|
|
||||||
}
|
|
@ -1,608 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.util.*;
|
|
||||||
import org.openide.util.NotImplementedException;
|
|
||||||
|
|
||||||
/* The following may be useful to Emacs users:
|
|
||||||
|
|
||||||
(defun comma-sep-decimal-encode ()
|
|
||||||
(interactive)
|
|
||||||
(while
|
|
||||||
(let ((p (point)))
|
|
||||||
(and (re-search-forward "\\(-?[0-9][0-9]?[0-9]?\\),?" nil t)
|
|
||||||
(= p (match-beginning 0))))
|
|
||||||
(replace-match (char-to-string
|
|
||||||
(let ((x (string-to-int (match-string 1))))
|
|
||||||
(when (< x 0) (setq x (+ x 256)))
|
|
||||||
x))
|
|
||||||
t t)))
|
|
||||||
|
|
||||||
After evaluating this, go into an old cpanel.xml or similar
|
|
||||||
(M-x find-file-literally, by the way) and type
|
|
||||||
M-x comma-sep-decimal-encode right after the opening quote
|
|
||||||
of the value. The contents will be converted to raw binary and
|
|
||||||
may be saved as a .ser file parsable by this class.
|
|
||||||
|
|
||||||
(defun hex-encode ()
|
|
||||||
(interactive)
|
|
||||||
(while
|
|
||||||
(let ((p (point)))
|
|
||||||
(and (re-search-forward "\\s-*\\([a-fA-F0-9][a-fA-F0-9]\\)" nil t)
|
|
||||||
(= p (match-beginning 0))))
|
|
||||||
(replace-match (char-to-string
|
|
||||||
(string-to-int (match-string 1) 16))
|
|
||||||
t t)))
|
|
||||||
|
|
||||||
Same for hexadecimal serialized data. For .settings files, it is
|
|
||||||
easier to select Customize Bean... in the IDE and save as *.ser.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** Parser for Java serialization files.
|
|
||||||
* Does no classloading or per-class semantics, simply parses the
|
|
||||||
* raw serialization structure.
|
|
||||||
* @author Jesse Glick
|
|
||||||
*/
|
|
||||||
public final class SerParser implements ObjectStreamConstants {
|
|
||||||
|
|
||||||
private static final boolean DEBUG = Boolean.getBoolean("org.netbeans.modules.clazz.SerParser.DEBUG"); // NOI18N
|
|
||||||
|
|
||||||
private final InputStream is;
|
|
||||||
private int seq = 0;
|
|
||||||
private final List<Object> refs = new ArrayList<Object>(100);
|
|
||||||
|
|
||||||
public SerParser(InputStream is) {
|
|
||||||
this.is = is;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int makeRef(Object o) {
|
|
||||||
refs.add(o);
|
|
||||||
int i = seq;
|
|
||||||
seq++;
|
|
||||||
if (DEBUG) System.err.println("makeRef[" + i + "]=" + o); // NOI18N
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Object getRef(int i) throws CorruptException {
|
|
||||||
int idx = i - baseWireHandle;
|
|
||||||
if (idx < 0 || idx >= seq) throw new CorruptException("Invalid reference: " + i); // NOI18N
|
|
||||||
Object o = refs.get(idx);
|
|
||||||
if (o == null) throw new CorruptException("Invalid reference: " + i); // NOI18N
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Stream parse() throws IOException, CorruptException {
|
|
||||||
Stream s = new Stream();
|
|
||||||
s.magic = readShort();
|
|
||||||
s.version = readShort();
|
|
||||||
if (s.magic != STREAM_MAGIC || s.version != STREAM_VERSION) {
|
|
||||||
throw new CorruptException("stream version mismatch: " + hexify(s.magic) + " != " + hexify(STREAM_MAGIC) + " or " + hexify(s.version) + " != " + hexify(STREAM_VERSION)); // NOI18N
|
|
||||||
}
|
|
||||||
s.contents = new ArrayList<Object>(10);
|
|
||||||
while (peek() != -1) {
|
|
||||||
s.contents.add(readContent());
|
|
||||||
}
|
|
||||||
if (DEBUG) System.err.println("parsed: " + s); // NOI18N
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class CorruptException extends IOException {
|
|
||||||
public CorruptException() {
|
|
||||||
}
|
|
||||||
public CorruptException(String m) {
|
|
||||||
super(m);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int pushback = -1;
|
|
||||||
private int rb() throws IOException {
|
|
||||||
if (pushback != -1) {
|
|
||||||
int c = pushback;
|
|
||||||
pushback = -1;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
int c = is.read();
|
|
||||||
if (DEBUG) System.err.println("read: " + Integer.toHexString(c)); // NOI18N
|
|
||||||
if (c == -1) {
|
|
||||||
throw new EOFException();
|
|
||||||
} else {
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private int peek() throws IOException {
|
|
||||||
if (pushback != -1) throw new IllegalStateException("can only peek once"); // NOI18N
|
|
||||||
pushback = is.read();
|
|
||||||
if (DEBUG) System.err.println("read: " + Integer.toHexString(pushback)); // NOI18N
|
|
||||||
return pushback;
|
|
||||||
}
|
|
||||||
|
|
||||||
static String hexify(byte b) {
|
|
||||||
int i = b;
|
|
||||||
if (i < 0) i += 256;
|
|
||||||
String s = Integer.toHexString(i).toUpperCase(Locale.US);
|
|
||||||
return "0x" + pad(s, 2); // NOI18N
|
|
||||||
}
|
|
||||||
static String hexify(short s) {
|
|
||||||
int i = s;
|
|
||||||
if (i < 0) i += 65536;
|
|
||||||
String st = Integer.toHexString(i).toUpperCase(Locale.US);
|
|
||||||
return "0x" + pad(st, 4); // NOI18N
|
|
||||||
}
|
|
||||||
static String hexify(int i) {
|
|
||||||
String s = Integer.toHexString(i).toUpperCase(Locale.US);
|
|
||||||
return "0x" + pad(s, 4); // NOI18N
|
|
||||||
}
|
|
||||||
static String hexify(long l) {
|
|
||||||
String s1 = Integer.toHexString((int)((l & 0xFFFFFFFF00000000L) << 32)).toUpperCase(Locale.US);
|
|
||||||
String s2 = Integer.toHexString((int)(l & 0x00000000FFFFFFFFL)).toUpperCase(Locale.US);
|
|
||||||
return "0x" + pad(s1, 4) + pad(s2, 4); // NOI18N
|
|
||||||
}
|
|
||||||
static String hexify(byte[] b) {
|
|
||||||
StringBuffer buf = new StringBuffer(2 + b.length * 2);
|
|
||||||
buf.append("0x"); // NOI18N
|
|
||||||
for (int i = 0; i < b.length; i++) {
|
|
||||||
int x = b[i];
|
|
||||||
if (x < 0) x += 256;
|
|
||||||
buf.append(pad(Integer.toHexString(x).toUpperCase(Locale.US), 2));
|
|
||||||
}
|
|
||||||
return buf.toString();
|
|
||||||
}
|
|
||||||
private static String pad(String s, int size) {
|
|
||||||
int i = s.length();
|
|
||||||
if (i == size) {
|
|
||||||
return s;
|
|
||||||
} else {
|
|
||||||
StringBuffer b = new StringBuffer(size);
|
|
||||||
for (int k = 0; k < size - i; k++) {
|
|
||||||
b.append('0'); // NOI18N
|
|
||||||
}
|
|
||||||
b.append(s);
|
|
||||||
return b.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private long readLong() throws IOException {
|
|
||||||
long x1 = rb();
|
|
||||||
long x2 = rb();
|
|
||||||
long x3 = rb();
|
|
||||||
long x4 = rb();
|
|
||||||
long x5 = rb();
|
|
||||||
long x6 = rb();
|
|
||||||
long x7 = rb();
|
|
||||||
long x8 = rb();
|
|
||||||
long l = (x1 << 56) + (x2 << 48) + (x3 << 40) + (x4 << 32) + (x5 << 24) + (x6 << 16) + (x7 << 8) + x8;
|
|
||||||
if (DEBUG) System.err.println("readLong: " + l); // NOI18N
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int readInt() throws IOException {
|
|
||||||
int x1 = rb();
|
|
||||||
int x2 = rb();
|
|
||||||
int x3 = rb();
|
|
||||||
int x4 = rb();
|
|
||||||
int i = (x1 << 24) + (x2 << 16) + (x3 << 8) + x4;
|
|
||||||
if (DEBUG) System.err.println("readInt: " + i); // NOI18N
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
private short readShort() throws IOException {
|
|
||||||
int x1 = rb();
|
|
||||||
int x2 = rb();
|
|
||||||
short s = (short)((x1 << 8) + x2);
|
|
||||||
//System.err.println("x1=" + hexify(x1) + " x2=" + hexify(x2) + " s=" + hexify(s));
|
|
||||||
//if (DEBUG) System.err.println("x1=" + x1 + " x2=" + x2 + " s=" + s);
|
|
||||||
if (DEBUG) System.err.println("readShort: " + s); // NOI18N
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
private byte readByte() throws IOException {
|
|
||||||
return (byte)rb();
|
|
||||||
}
|
|
||||||
|
|
||||||
private String readUTF() throws IOException {
|
|
||||||
short len = readShort();
|
|
||||||
if (len < 0) throw new NotImplementedException();//XXX
|
|
||||||
byte[] buf = new byte[len];
|
|
||||||
for (int i = 0; i < len; i++) {
|
|
||||||
buf[i] = readByte();
|
|
||||||
}
|
|
||||||
String s = new String(buf, "UTF-8"); // NOI18N
|
|
||||||
if (DEBUG) System.err.println("readUTF: " + s); // NOI18N
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
private String readLongUTF() throws IOException {
|
|
||||||
long len = readLong();
|
|
||||||
if (len < 0) throw new NotImplementedException();//XXX
|
|
||||||
if (len > Integer.MAX_VALUE) throw new NotImplementedException();// XXX
|
|
||||||
int ilen = (int)len;
|
|
||||||
byte[] buf = new byte[ilen];
|
|
||||||
for (int i = 0; i < ilen; i++) {
|
|
||||||
buf[i] = readByte();
|
|
||||||
}
|
|
||||||
String s = new String(buf, "UTF-8"); // NOI18N
|
|
||||||
if (DEBUG) System.err.println("readUTF: " + s); // NOI18N
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// See "Rules of the Grammar" in Java Object Serialization Specification
|
|
||||||
// for explanation of all these objects.
|
|
||||||
|
|
||||||
public static final class Stream /*extends Thing*/ {
|
|
||||||
public short magic;
|
|
||||||
public short version;
|
|
||||||
public List<Object> contents;
|
|
||||||
public String toString() {
|
|
||||||
return "Stream[contents=" + contents + "]"; // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Object NULL = "null"; // NOI18N
|
|
||||||
|
|
||||||
private Object readContent() throws IOException {
|
|
||||||
byte tc = readByte();
|
|
||||||
switch (tc) {
|
|
||||||
case TC_OBJECT:
|
|
||||||
return readNewObject();
|
|
||||||
case TC_CLASS:
|
|
||||||
return readNewClass();
|
|
||||||
case TC_ARRAY:
|
|
||||||
return readNewArray();
|
|
||||||
case TC_CLASSDESC:
|
|
||||||
return readNewClassDesc();
|
|
||||||
case TC_PROXYCLASSDESC:
|
|
||||||
// XXX too complicated:
|
|
||||||
throw new NotImplementedException("TC_PROXYCLASSDESC"); // NOI18N
|
|
||||||
//return readNewProxyClassDesc();
|
|
||||||
case TC_STRING:
|
|
||||||
return readNewString();
|
|
||||||
case TC_LONGSTRING:
|
|
||||||
// XXX later
|
|
||||||
throw new NotImplementedException("TC_LONGSTRING"); // NOI18N
|
|
||||||
//return readNewLongString();
|
|
||||||
case TC_REFERENCE:
|
|
||||||
return readReference();
|
|
||||||
case TC_NULL:
|
|
||||||
return NULL;
|
|
||||||
case TC_EXCEPTION:
|
|
||||||
// XXX what is this??
|
|
||||||
throw new NotImplementedException("TC_EXCEPTION"); // NOI18N
|
|
||||||
case TC_RESET:
|
|
||||||
// XXX what is this??
|
|
||||||
throw new NotImplementedException("TC_RESET"); // NOI18N
|
|
||||||
case TC_BLOCKDATA:
|
|
||||||
return readBlockData();
|
|
||||||
case TC_BLOCKDATALONG:
|
|
||||||
return readBlockDataLong();
|
|
||||||
default:
|
|
||||||
throw new CorruptException("Unknown typecode: " + hexify(tc)); // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class ObjectWrapper {
|
|
||||||
public ClassDesc classdesc;
|
|
||||||
public List<Object> data; // <Union2<NameValue,Object>>
|
|
||||||
public String toString() {
|
|
||||||
return "Object[class=" + classdesc.name + ",data=<omitted>]"; // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class NameValue {
|
|
||||||
public NameValue(FieldDesc name, Object value) {
|
|
||||||
this.name = name;
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
public final FieldDesc name;
|
|
||||||
public final Object value;
|
|
||||||
public String toString() {
|
|
||||||
return name.toString() + "=" + value.toString(); // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class ClassDesc {
|
|
||||||
public String name;
|
|
||||||
public long svuid;
|
|
||||||
public boolean writeMethod;
|
|
||||||
public boolean blockData;
|
|
||||||
public boolean serializable;
|
|
||||||
public boolean externalizable;
|
|
||||||
public List<FieldDesc> fields;
|
|
||||||
public List annotation; // List<Object>
|
|
||||||
public ClassDesc superclass;
|
|
||||||
public String toString() {
|
|
||||||
return "Class[name=" + name + "]"; // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private ObjectWrapper readNewObject() throws IOException {
|
|
||||||
ObjectWrapper ow = new ObjectWrapper();
|
|
||||||
ow.classdesc = readClassDesc();
|
|
||||||
makeRef(ow);
|
|
||||||
ow.data = new ArrayList<Object> (10);
|
|
||||||
LinkedList<ClassDesc> hier = new LinkedList<ClassDesc>();
|
|
||||||
for (ClassDesc cd = ow.classdesc; cd != null; cd = cd.superclass) {
|
|
||||||
hier.addFirst(cd);
|
|
||||||
}
|
|
||||||
for (ClassDesc cd: hier) {
|
|
||||||
if (cd.serializable) {
|
|
||||||
ow.data.addAll(readNoWrClass(cd));
|
|
||||||
if (cd.writeMethod) {
|
|
||||||
ow.data.addAll(readContents());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (cd.blockData) {
|
|
||||||
ow.data.addAll(readContents());
|
|
||||||
} else {
|
|
||||||
// Old externalization. If this is not object content,
|
|
||||||
// the stream could now become corrupted. Oh well.
|
|
||||||
ow.data.add(readContent());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (DEBUG) System.err.println("readNewObject: " + ow); // NOI18N
|
|
||||||
return ow;
|
|
||||||
}
|
|
||||||
|
|
||||||
private ClassDesc readClassDesc() throws IOException {
|
|
||||||
Object o = readContent();
|
|
||||||
if (o instanceof ClassDesc) {
|
|
||||||
return (ClassDesc)o;
|
|
||||||
} else if (o == NULL) {
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
throw new CorruptException("Expected class desc, got: " + o); // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private ClassDesc readNewClass() throws IOException {
|
|
||||||
ClassDesc cd = readClassDesc();
|
|
||||||
makeRef(cd);
|
|
||||||
return cd;
|
|
||||||
}
|
|
||||||
|
|
||||||
private ClassDesc readNewClassDesc() throws IOException {
|
|
||||||
ClassDesc cd = new ClassDesc();
|
|
||||||
cd.name = readUTF();
|
|
||||||
if (! cd.name.startsWith("[") && // NOI18N
|
|
||||||
! (cd.name.length() == 1 && "BSIJFDCZ".indexOf(cd.name) != -1) && // NOI18N
|
|
||||||
! cd.name.endsWith(";")) { // NOI18N
|
|
||||||
// Canonicalize. It seems class names read normally need this; those
|
|
||||||
// read as part of an array do not. ??
|
|
||||||
cd.name = "L" + cd.name + ";"; // NOI18N
|
|
||||||
}
|
|
||||||
cd.svuid = readLong();
|
|
||||||
makeRef(cd);
|
|
||||||
byte cdf = readByte();
|
|
||||||
cd.writeMethod = (cdf & SC_WRITE_METHOD) != 0;
|
|
||||||
cd.blockData = (cdf & SC_BLOCK_DATA) != 0;
|
|
||||||
cd.serializable = (cdf & SC_SERIALIZABLE) != 0;
|
|
||||||
cd.externalizable = (cdf & SC_EXTERNALIZABLE) != 0;
|
|
||||||
short count = readShort();
|
|
||||||
cd.fields = new ArrayList<FieldDesc>(count);
|
|
||||||
for (int i = 0; i < count; i++) {
|
|
||||||
cd.fields.add(readFieldDesc());
|
|
||||||
}
|
|
||||||
cd.annotation = readContents();
|
|
||||||
cd.superclass = readClassDesc();
|
|
||||||
if (DEBUG) System.err.println("readNewClassDesc: " + cd); // NOI18N
|
|
||||||
return cd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class FieldDesc {
|
|
||||||
public String name;
|
|
||||||
public String type;
|
|
||||||
public String toString() {
|
|
||||||
return "Field[name=" + name + ",type=" + type + "]"; // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public static final class ObjFieldDesc extends FieldDesc {
|
|
||||||
public boolean array;
|
|
||||||
public String toString() {
|
|
||||||
return "Field[name=" + name + ",type=" + type + (array ? "[]" : "") + "]"; // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private FieldDesc readFieldDesc() throws IOException {
|
|
||||||
char tc = (char)readByte();
|
|
||||||
FieldDesc fd;
|
|
||||||
switch (tc) {
|
|
||||||
case 'B':
|
|
||||||
case 'C':
|
|
||||||
case 'D':
|
|
||||||
case 'F':
|
|
||||||
case 'I':
|
|
||||||
case 'J':
|
|
||||||
case 'S':
|
|
||||||
case 'Z':
|
|
||||||
fd = new FieldDesc();
|
|
||||||
fd.type = new String(new char[] {tc});
|
|
||||||
break;
|
|
||||||
case '[':
|
|
||||||
fd = new ObjFieldDesc();
|
|
||||||
((ObjFieldDesc)fd).array = true;
|
|
||||||
break;
|
|
||||||
case 'L':
|
|
||||||
fd = new ObjFieldDesc();
|
|
||||||
((ObjFieldDesc)fd).array = false;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new CorruptException("Strange field type: " + tc); // NOI18N
|
|
||||||
}
|
|
||||||
fd.name = readUTF();
|
|
||||||
if (fd instanceof ObjFieldDesc) {
|
|
||||||
String clazz = (String)readContent();
|
|
||||||
/*
|
|
||||||
if (((ObjFieldDesc)fd).array) {
|
|
||||||
if (! clazz.startsWith("[")) throw new CorruptException("Field type: " + clazz); // NOI18N
|
|
||||||
clazz = clazz.substring(1, clazz.length());
|
|
||||||
}
|
|
||||||
if (! (clazz.startsWith("L") && clazz.endsWith(";"))) throw new CorruptException("Field type: " + clazz); // NOI18N
|
|
||||||
fd.type = clazz.substring(1, clazz.length() - 1).replace('/', '.'); // NOI18N
|
|
||||||
*/
|
|
||||||
fd.type = clazz;
|
|
||||||
}
|
|
||||||
if (DEBUG) System.err.println("readFieldDesc: " + fd); // NOI18N
|
|
||||||
return fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Object> readContents() throws IOException {
|
|
||||||
List<Object> l = new ArrayList<Object>(10);
|
|
||||||
while (peek() != TC_ENDBLOCKDATA) {
|
|
||||||
l.add(readContent());
|
|
||||||
}
|
|
||||||
if (readByte() != TC_ENDBLOCKDATA) throw new IllegalStateException();
|
|
||||||
if (DEBUG) System.err.println("readContents: " + l); // NOI18N
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class ArrayWrapper {
|
|
||||||
public ClassDesc classdesc;
|
|
||||||
public List<Object> values;
|
|
||||||
public String toString() {
|
|
||||||
return classdesc.name + "{" + values + "}"; // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private ArrayWrapper readNewArray() throws IOException {
|
|
||||||
ArrayWrapper aw = new ArrayWrapper();
|
|
||||||
aw.classdesc = readClassDesc();
|
|
||||||
makeRef(aw);
|
|
||||||
int size = readInt();
|
|
||||||
if (size < 0) throw new NotImplementedException();
|
|
||||||
aw.values = new ArrayList<Object>(size);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
if (aw.classdesc.name.equals("[B")) { // NOI18N
|
|
||||||
aw.values.add(new Byte(readByte()));
|
|
||||||
} else if (aw.classdesc.name.equals("[S")) { // NOI18N
|
|
||||||
aw.values.add(new Short(readShort()));
|
|
||||||
} else if (aw.classdesc.name.equals("[I")) { // NOI18N
|
|
||||||
aw.values.add(new Integer(readInt()));
|
|
||||||
} else if (aw.classdesc.name.equals("[J")) { // NOI18N
|
|
||||||
aw.values.add(new Long(readLong()));
|
|
||||||
} else if (aw.classdesc.name.equals("[F")) { // NOI18N
|
|
||||||
aw.values.add(new Float(Float.intBitsToFloat(readInt())));
|
|
||||||
} else if (aw.classdesc.name.equals("[D")) { // NOI18N
|
|
||||||
aw.values.add(new Double(Double.longBitsToDouble(readLong())));
|
|
||||||
} else if (aw.classdesc.name.equals("[C")) { // NOI18N
|
|
||||||
aw.values.add(new Character((char)readShort()));
|
|
||||||
} else if (aw.classdesc.name.equals("[Z")) { // NOI18N
|
|
||||||
aw.values.add(readByte() == 1 ? Boolean.TRUE : Boolean.FALSE);
|
|
||||||
} else {
|
|
||||||
aw.values.add(readContent());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (DEBUG) System.err.println("readNewArray: " + aw); // NOI18N
|
|
||||||
return aw;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String readNewString() throws IOException {
|
|
||||||
String s = readUTF();
|
|
||||||
makeRef(s);
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Object readReference() throws IOException {
|
|
||||||
int i = readInt();
|
|
||||||
Object r = getRef(i);
|
|
||||||
if (DEBUG) System.err.println("readReference: " + r); // NOI18N
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
private byte[] readBlockData() throws IOException {
|
|
||||||
int size = readByte();
|
|
||||||
if (size < 0) size += 256;
|
|
||||||
byte[] b = new byte[size];
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
b[i] = readByte();
|
|
||||||
}
|
|
||||||
if (DEBUG) System.err.println("readBlockData: " + size + " bytes"); // NOI18N
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
private byte[] readBlockDataLong() throws IOException {
|
|
||||||
int size = readInt();
|
|
||||||
if (size < 0) throw new NotImplementedException();
|
|
||||||
byte[] b = new byte[size];
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
b[i] = readByte();
|
|
||||||
}
|
|
||||||
if (DEBUG) System.err.println("readBlockDataLong: " + size + " bytes"); // NOI18N
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<NameValue> readNoWrClass(ClassDesc cd) throws IOException {
|
|
||||||
List<FieldDesc> fields = cd.fields;
|
|
||||||
List<NameValue> values = new ArrayList<NameValue>(fields.size());
|
|
||||||
for (int i = 0; i < fields.size(); i++) {
|
|
||||||
FieldDesc fd = (FieldDesc)fields.get(i);
|
|
||||||
if (fd.type.equals("B")) { // NOI18N
|
|
||||||
values.add(new NameValue(fd, new Byte(readByte())));
|
|
||||||
} else if (fd.type.equals("S")) { // NOI18N
|
|
||||||
values.add(new NameValue(fd, new Short(readShort())));
|
|
||||||
} else if (fd.type.equals("I")) { // NOI18N
|
|
||||||
values.add(new NameValue(fd, new Integer(readInt())));
|
|
||||||
} else if (fd.type.equals("J")) { // NOI18N
|
|
||||||
values.add(new NameValue(fd, new Long(readLong())));
|
|
||||||
} else if (fd.type.equals("F")) { // NOI18N
|
|
||||||
values.add(new NameValue(fd, new Float(Float.intBitsToFloat(readInt()))));
|
|
||||||
} else if (fd.type.equals("D")) { // NOI18N
|
|
||||||
values.add(new NameValue(fd, new Double(Double.longBitsToDouble(readLong()))));
|
|
||||||
} else if (fd.type.equals("C")) { // NOI18N
|
|
||||||
values.add(new NameValue(fd, new Character((char)readShort())));
|
|
||||||
} else if (fd.type.equals("Z")) { // NOI18N
|
|
||||||
values.add(new NameValue(fd, readByte() == 1 ? Boolean.TRUE : Boolean.FALSE));
|
|
||||||
} else {
|
|
||||||
values.add(new NameValue(fd, readContent()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (DEBUG) System.err.println("readNoWrClass: " + values); // NOI18N
|
|
||||||
return values;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,881 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.CharArrayWriter;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.ObjectInput;
|
|
||||||
import java.io.ObjectInputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.io.Reader;
|
|
||||||
import java.io.StringWriter;
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.Stack;
|
|
||||||
import org.openide.ErrorManager;
|
|
||||||
import org.openide.filesystems.FileObject;
|
|
||||||
//import org.openide.modules.SpecificationVersion;
|
|
||||||
import org.openide.util.Lookup;
|
|
||||||
import org.openide.util.SharedClassObject;
|
|
||||||
import org.xml.sax.Attributes;
|
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
import org.xml.sax.XMLReader;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Copy of XMLSettingsSupport.SettingsRecognizer by Jan Pokorsky
|
|
||||||
*/
|
|
||||||
public class SettingsRecognizer extends org.xml.sax.helpers.DefaultHandler {
|
|
||||||
public static final String INSTANCE_DTD_ID = "-//NetBeans//DTD Session settings 1.0//EN"; // NOI18N
|
|
||||||
static final ErrorManager err = ErrorManager.getDefault().getInstance(SettingsRecognizer.class.getName()); // NOI18N
|
|
||||||
|
|
||||||
private static final String ELM_SETTING = "settings"; // NOI18N
|
|
||||||
private static final String ATR_SETTING_VERSION = "version"; // NOI18N
|
|
||||||
|
|
||||||
private static final String ELM_MODULE = "module"; // NOI18N
|
|
||||||
private static final String ATR_MODULE_NAME = "name"; // NOI18N
|
|
||||||
private static final String ATR_MODULE_SPEC = "spec"; // NOI18N
|
|
||||||
private static final String ATR_MODULE_IMPL = "impl"; // NOI18N
|
|
||||||
|
|
||||||
private static final String ELM_INSTANCE = "instance"; // NOI18N
|
|
||||||
private static final String ATR_INSTANCE_CLASS = "class"; // NOI18N
|
|
||||||
private static final String ATR_INSTANCE_METHOD = "method"; // NOI18N
|
|
||||||
|
|
||||||
private static final String ELM_INSTANCEOF = "instanceof"; // NOI18N
|
|
||||||
private static final String ATR_INSTANCEOF_CLASS = "class"; // NOI18N
|
|
||||||
|
|
||||||
private static final String ELM_SERIALDATA = "serialdata"; // NOI18N
|
|
||||||
private static final String ATR_SERIALDATA_CLASS = "class"; // NOI18N
|
|
||||||
|
|
||||||
//private static final String VERSION = "1.0"; // NOI18N
|
|
||||||
|
|
||||||
private boolean header;
|
|
||||||
private Stack<String> stack;
|
|
||||||
|
|
||||||
private String version;
|
|
||||||
private String instanceClass;
|
|
||||||
private String instanceMethod;
|
|
||||||
private Set<String> instanceOf = new HashSet<String>();
|
|
||||||
|
|
||||||
private byte[] serialdata;
|
|
||||||
private CharArrayWriter chaos = null;
|
|
||||||
|
|
||||||
private String codeName;
|
|
||||||
private String codeNameBase;
|
|
||||||
private int codeNameRelease;
|
|
||||||
//private SpecificationVersion moduleSpec;
|
|
||||||
private String moduleImpl;
|
|
||||||
/** file with stored settings */
|
|
||||||
private final FileObject source;
|
|
||||||
|
|
||||||
/** XML handler recognizing settings.
|
|
||||||
* @param header if true read just elements instanceof, module and attr classname.
|
|
||||||
* @param source file with stored settings
|
|
||||||
*/
|
|
||||||
public SettingsRecognizer(boolean header, FileObject source) {
|
|
||||||
this.header = header;
|
|
||||||
this.source = source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAllRead() {
|
|
||||||
return !header;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAllRead(boolean all) {
|
|
||||||
if (!header) return;
|
|
||||||
header = all;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSettingsVerison() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodeName() {
|
|
||||||
return codeName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodeNameBase() {
|
|
||||||
return codeNameBase;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCodeNameRelease() {
|
|
||||||
return codeNameRelease;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*public SpecificationVersion getSpecificationVersion() {
|
|
||||||
return moduleSpec;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
public String getModuleImpl() {
|
|
||||||
return moduleImpl;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Set of names. */
|
|
||||||
public Set getInstanceOf() {
|
|
||||||
return instanceOf;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Method attribute from the instance element. */
|
|
||||||
public String getMethodName() {
|
|
||||||
return instanceMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Serialized instance, can be null. */
|
|
||||||
public InputStream getSerializedInstance() {
|
|
||||||
if (serialdata == null) return null;
|
|
||||||
return new ByteArrayInputStream(serialdata);
|
|
||||||
}
|
|
||||||
|
|
||||||
public org.xml.sax.InputSource resolveEntity(String publicId, String systemId)
|
|
||||||
throws SAXException {
|
|
||||||
if (INSTANCE_DTD_ID.equals(publicId)) {
|
|
||||||
return new org.xml.sax.InputSource(new ByteArrayInputStream(new byte[0]));
|
|
||||||
} else {
|
|
||||||
return null; // i.e. follow advice of systemID
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void characters(char[] values, int start, int length) throws SAXException {
|
|
||||||
if (header) return;
|
|
||||||
String element = stack.peek();
|
|
||||||
if (ELM_SERIALDATA.equals(element)) {
|
|
||||||
// [PENDING] should be optimized to do not read all chars to memory
|
|
||||||
if (chaos == null) chaos = new CharArrayWriter(length);
|
|
||||||
chaos.write(values, start, length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void startElement(String uri, String localName, String qName, Attributes attribs) throws SAXException {
|
|
||||||
stack.push(qName);
|
|
||||||
if (ELM_SETTING.equals(qName)) {
|
|
||||||
version = attribs.getValue(ATR_SETTING_VERSION);
|
|
||||||
} else if (ELM_MODULE.equals(qName)) {
|
|
||||||
codeName = attribs.getValue(ATR_MODULE_NAME);
|
|
||||||
resolveModuleElm(codeName);
|
|
||||||
moduleImpl = attribs.getValue(ATR_MODULE_IMPL);
|
|
||||||
try {
|
|
||||||
String spec = attribs.getValue(ATR_MODULE_SPEC);
|
|
||||||
//moduleSpec = spec == null ? null : new SpecificationVersion(spec);
|
|
||||||
} catch (NumberFormatException nfe) {
|
|
||||||
throw new SAXException(nfe);
|
|
||||||
}
|
|
||||||
} else if (ELM_INSTANCEOF.equals(qName)) {
|
|
||||||
instanceOf.add(org.openide.util.Utilities.translate(
|
|
||||||
attribs.getValue(ATR_INSTANCEOF_CLASS)));
|
|
||||||
} else if (ELM_INSTANCE.equals(qName)) {
|
|
||||||
instanceClass = attribs.getValue(ATR_INSTANCE_CLASS);
|
|
||||||
if (instanceClass == null) {
|
|
||||||
System.err.println("Hint: NPE is caused by broken settings file: " + source ); // NOI18N
|
|
||||||
}
|
|
||||||
instanceClass = org.openide.util.Utilities.translate(instanceClass);
|
|
||||||
instanceMethod = attribs.getValue(ATR_INSTANCE_METHOD);
|
|
||||||
} else if (ELM_SERIALDATA.equals(qName)) {
|
|
||||||
instanceClass = attribs.getValue(ATR_SERIALDATA_CLASS);
|
|
||||||
instanceClass = org.openide.util.Utilities.translate(instanceClass);
|
|
||||||
if (header) throw new StopSAXException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** reade codenamebase + revision */
|
|
||||||
private void resolveModuleElm(String codeName) {
|
|
||||||
if (codeName != null) {
|
|
||||||
int slash = codeName.indexOf("/"); // NOI18N
|
|
||||||
if (slash == -1) {
|
|
||||||
codeNameBase = codeName;
|
|
||||||
codeNameRelease = -1;
|
|
||||||
} else {
|
|
||||||
codeNameBase = codeName.substring(0, slash);
|
|
||||||
try {
|
|
||||||
codeNameRelease = Integer.parseInt(codeName.substring(slash + 1));
|
|
||||||
} catch (NumberFormatException ex) {
|
|
||||||
ErrorManager emgr = ErrorManager.getDefault();
|
|
||||||
emgr.annotate(ex, "Content: \n" + getFileContent(source)); // NOI18N
|
|
||||||
emgr.annotate(ex, "Source: " + source); // NOI18N
|
|
||||||
emgr.notify(ErrorManager.INFORMATIONAL, ex);
|
|
||||||
codeNameRelease = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
codeNameBase = null;
|
|
||||||
codeNameRelease = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void endElement(String uri, String localName, String qName) throws SAXException {
|
|
||||||
//if (header) return;
|
|
||||||
String element = stack.pop();
|
|
||||||
if (ELM_SERIALDATA.equals(element)) {
|
|
||||||
if (chaos != null) {
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(chaos.size() >> 1);
|
|
||||||
try {
|
|
||||||
chars2Bytes(baos, chaos.toCharArray(), 0, chaos.size());
|
|
||||||
serialdata = baos.toByteArray();
|
|
||||||
} catch (IOException ex) {
|
|
||||||
ErrorManager.getDefault().notify(
|
|
||||||
ErrorManager.WARNING, ex
|
|
||||||
);
|
|
||||||
} finally {
|
|
||||||
chaos = null; // don't keep the info twice
|
|
||||||
try {
|
|
||||||
baos.close();
|
|
||||||
} catch (IOException ex) {
|
|
||||||
// doesn't matter
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Tries to deserialize instance saved in is.
|
|
||||||
* @param is stream with stored object, can be null
|
|
||||||
* @return deserialized object or null
|
|
||||||
*/
|
|
||||||
private Object readSerial(InputStream is) throws IOException, ClassNotFoundException {
|
|
||||||
if (is == null) return null;
|
|
||||||
try {
|
|
||||||
ObjectInput oi = new ObjectInputStream(is);
|
|
||||||
try {
|
|
||||||
Object o = oi.readObject();
|
|
||||||
return o;
|
|
||||||
} finally {
|
|
||||||
oi.close();
|
|
||||||
}
|
|
||||||
} catch (IOException ex) {
|
|
||||||
ErrorManager emgr = ErrorManager.getDefault();
|
|
||||||
emgr.annotate(ex, "Content: \n" + getFileContent(source)); // NOI18N
|
|
||||||
emgr.annotate(ex, "Source: " + source); // NOI18N
|
|
||||||
emgr.annotate(ex, "Cannot read class: " + instanceClass); // NOI18N
|
|
||||||
throw ex;
|
|
||||||
} catch (ClassNotFoundException ex) {
|
|
||||||
ErrorManager emgr = ErrorManager.getDefault();
|
|
||||||
emgr.annotate(ex, "Content: \n" + getFileContent(source)); // NOI18N
|
|
||||||
emgr.annotate(ex, "Source: " + source); // NOI18N
|
|
||||||
throw ex;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Create an instance.
|
|
||||||
* @return the instance of type {@link #instanceClass}
|
|
||||||
* @exception IOException if an I/O error occured
|
|
||||||
* @exception ClassNotFoundException if a class was not found
|
|
||||||
*/
|
|
||||||
public Object instanceCreate() throws java.io.IOException, ClassNotFoundException {
|
|
||||||
Object inst = null;
|
|
||||||
|
|
||||||
// deserialize
|
|
||||||
inst = readSerial(getSerializedInstance());
|
|
||||||
|
|
||||||
// default instance
|
|
||||||
if (inst == null) {
|
|
||||||
if (instanceMethod != null) {
|
|
||||||
inst = createFromMethod(instanceClass, instanceMethod);
|
|
||||||
} else {
|
|
||||||
// use default constructor
|
|
||||||
Class<?> clazz = instanceClass();
|
|
||||||
if (SharedClassObject.class.isAssignableFrom(clazz)) {
|
|
||||||
inst = SharedClassObject.findObject(clazz.asSubclass(SharedClassObject.class), false);
|
|
||||||
if (null != inst) {
|
|
||||||
// instance already exists -> reset it to defaults
|
|
||||||
try {
|
|
||||||
Method method = SharedClassObject.class.getDeclaredMethod("reset", new Class[0]); // NOI18N
|
|
||||||
method.setAccessible(true);
|
|
||||||
method.invoke(inst, new Object[0]);
|
|
||||||
} catch (Exception e) {
|
|
||||||
ErrorManager.getDefault().notify(e);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
inst = SharedClassObject.findObject(clazz.asSubclass(SharedClassObject.class), true);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
inst = clazz.newInstance();
|
|
||||||
} catch (Exception ex) {
|
|
||||||
IOException ioe = new IOException();
|
|
||||||
ErrorManager emgr = ErrorManager.getDefault();
|
|
||||||
emgr.annotate(ioe, ex);
|
|
||||||
emgr.annotate(ioe, "Content: \n" + getFileContent(source)); // NOI18N
|
|
||||||
emgr.annotate(ioe, "Class: " + clazz); // NOI18N
|
|
||||||
emgr.annotate(ioe, "Source: " + source); // NOI18N
|
|
||||||
throw ioe;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return inst;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Get file content as String. If some exception occures its stack trace
|
|
||||||
* is return instead. */
|
|
||||||
private static String getFileContent(FileObject fo) {
|
|
||||||
try {
|
|
||||||
InputStreamReader isr = new InputStreamReader(fo.getInputStream());
|
|
||||||
char[] cbuf = new char[1024];
|
|
||||||
int length;
|
|
||||||
StringBuffer sbuf = new StringBuffer(1024);
|
|
||||||
while (true) {
|
|
||||||
length = isr.read(cbuf);
|
|
||||||
if (length > 0) {
|
|
||||||
sbuf.append(cbuf, 0, length);
|
|
||||||
} else {
|
|
||||||
return sbuf.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
StringWriter sw = new StringWriter();
|
|
||||||
ex.printStackTrace(new PrintWriter(sw));
|
|
||||||
return sw.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** create instance by invoking class method */
|
|
||||||
private Object createFromMethod(String srcClazz, String srcMethod)
|
|
||||||
throws ClassNotFoundException, IOException {
|
|
||||||
int dotIndex = instanceMethod.lastIndexOf('.');
|
|
||||||
String targetClass;
|
|
||||||
String targetMethod;
|
|
||||||
if (dotIndex > 0) {
|
|
||||||
targetClass = srcMethod.substring(0, dotIndex);
|
|
||||||
targetMethod = srcMethod.substring(dotIndex + 1);
|
|
||||||
} else {
|
|
||||||
targetClass = srcClazz;
|
|
||||||
targetMethod = srcMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
Class<?> clazz = loadClass(targetClass);
|
|
||||||
|
|
||||||
try {
|
|
||||||
Object instance;
|
|
||||||
try {
|
|
||||||
Method method = clazz.getMethod(targetMethod, new Class[]{FileObject.class});
|
|
||||||
method.setAccessible(true);
|
|
||||||
instance = method.invoke(null, source);
|
|
||||||
} catch (NoSuchMethodException ex) {
|
|
||||||
Method method = clazz.getMethod(targetMethod);
|
|
||||||
method.setAccessible(true);
|
|
||||||
instance = method.invoke(null, new Object[0]);
|
|
||||||
}
|
|
||||||
if (instance == null) {
|
|
||||||
// Strictly verboten. Cf. BT #4827173 for example.
|
|
||||||
throw new IOException("Null return not permitted from " + targetClass + "." + targetMethod); // NOI18N
|
|
||||||
}
|
|
||||||
return instance;
|
|
||||||
} catch (Exception ex) {
|
|
||||||
IOException ioe = new IOException("Error reading " + source + ": " + ex); // NOI18N
|
|
||||||
ErrorManager emgr = ErrorManager.getDefault();
|
|
||||||
emgr.annotate(ioe, "Class: " + clazz); // NOI18N
|
|
||||||
emgr.annotate(ioe, "Method: " + srcMethod); // NOI18N
|
|
||||||
emgr.annotate(ioe, ex);
|
|
||||||
emgr.annotate(ioe, "Content:\n" + getFileContent(source)); // NOI18N
|
|
||||||
throw ioe;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The representation type that may be created as instances.
|
|
||||||
* Can be used to test whether the instance is of an appropriate
|
|
||||||
* class without actually creating it.
|
|
||||||
*
|
|
||||||
* @return the representation class of the instance
|
|
||||||
* @exception IOException if an I/O error occurred
|
|
||||||
* @exception ClassNotFoundException if a class was not found
|
|
||||||
*/
|
|
||||||
public Class instanceClass() throws java.io.IOException, ClassNotFoundException {
|
|
||||||
if (instanceClass == null) {
|
|
||||||
throw new ClassNotFoundException(source +
|
|
||||||
": missing 'class' attribute in 'instance' element"); //NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
return loadClass(instanceClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** try to load class from system and current classloader. */
|
|
||||||
private Class loadClass(String clazz) throws ClassNotFoundException {
|
|
||||||
return ((ClassLoader)Lookup.getDefault().lookup(ClassLoader.class)).loadClass(clazz);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** get class name of instance */
|
|
||||||
public String instanceName() {
|
|
||||||
if (instanceClass == null) {
|
|
||||||
return ""; // NOI18N
|
|
||||||
} else {
|
|
||||||
return instanceClass;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int tr(char c) {
|
|
||||||
if (c >= '0' && c <= '9') return c - '0';
|
|
||||||
if (c >= 'A' && c <= 'F') return c - 'A' + 10;
|
|
||||||
if (c >= 'a' && c <= 'f') return c - 'a' + 10;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Converts array of chars to array of bytes. All whitespaces and
|
|
||||||
* unknown chars are skipped.
|
|
||||||
*/
|
|
||||||
private void chars2Bytes(OutputStream os, char[] chars, int off, int length)
|
|
||||||
throws IOException {
|
|
||||||
byte rbyte;
|
|
||||||
int read;
|
|
||||||
|
|
||||||
for (int i = off; i < length; ) {
|
|
||||||
read = tr(chars[i++]);
|
|
||||||
if (read >= 0) rbyte = (byte) (read << 4); // * 16;
|
|
||||||
else continue;
|
|
||||||
|
|
||||||
while (i < length) {
|
|
||||||
read = tr(chars[i++]);
|
|
||||||
if (read >= 0) {
|
|
||||||
rbyte += (byte) read;
|
|
||||||
os.write(rbyte);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Parse settings file. */
|
|
||||||
public void parse() throws IOException {
|
|
||||||
InputStream in = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (header) {
|
|
||||||
if (err.isLoggable(err.INFORMATIONAL) && source.getSize() < 12000) {
|
|
||||||
// log the content of the stream
|
|
||||||
byte[] arr = new byte[(int)source.getSize()];
|
|
||||||
InputStream temp = source.getInputStream();
|
|
||||||
int len = temp.read(arr);
|
|
||||||
if (len != arr.length) {
|
|
||||||
throw new IOException("Could not read " + arr.length + " bytes from " + source + " just " + len); // NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
err.log("Parsing:" + new String(arr));
|
|
||||||
|
|
||||||
temp.close();
|
|
||||||
|
|
||||||
in = new ByteArrayInputStream(arr);
|
|
||||||
} else {
|
|
||||||
in = new BufferedInputStream(source.getInputStream());
|
|
||||||
}
|
|
||||||
Set<String> iofs = quickParse(new BufferedInputStream(in));
|
|
||||||
if (iofs != null) {
|
|
||||||
instanceOf = iofs;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (IOException ioe) {
|
|
||||||
// ignore - fallback to XML parser follows
|
|
||||||
} finally {
|
|
||||||
if (in != null) in.close();
|
|
||||||
}
|
|
||||||
stack = new Stack<String>();
|
|
||||||
try {
|
|
||||||
in = source.getInputStream();
|
|
||||||
XMLReader reader = org.openide.xml.XMLUtil.createXMLReader();
|
|
||||||
reader.setContentHandler(this);
|
|
||||||
reader.setErrorHandler(this);
|
|
||||||
reader.setEntityResolver(this);
|
|
||||||
reader.parse(new org.xml.sax.InputSource(new BufferedInputStream(in)));
|
|
||||||
} catch (SettingsRecognizer.StopSAXException ex) {
|
|
||||||
// Ok, header is read
|
|
||||||
} catch (SAXException ex) {
|
|
||||||
IOException ioe = new IOException(source.toString()); // NOI18N
|
|
||||||
ErrorManager emgr = ErrorManager.getDefault();
|
|
||||||
emgr.annotate(ioe, ex);
|
|
||||||
if (ex.getException() != null) {
|
|
||||||
emgr.annotate(ioe, ex.getException());
|
|
||||||
}
|
|
||||||
emgr.annotate(ioe, "Content: \n" + getFileContent(source)); // NOI18N
|
|
||||||
emgr.annotate(ioe, "Source: " + source); // NOI18N
|
|
||||||
throw ioe;
|
|
||||||
} finally {
|
|
||||||
stack = null;
|
|
||||||
try {
|
|
||||||
if (in != null) {
|
|
||||||
in.close();
|
|
||||||
}
|
|
||||||
} catch (IOException ex) {
|
|
||||||
// ignore already closed
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Parse setting from source. */
|
|
||||||
public void parse(Reader source) throws IOException {
|
|
||||||
stack = new Stack<String>();
|
|
||||||
|
|
||||||
try {
|
|
||||||
XMLReader reader = org.openide.xml.XMLUtil.createXMLReader();
|
|
||||||
reader.setContentHandler(this);
|
|
||||||
reader.setErrorHandler(this);
|
|
||||||
reader.setEntityResolver(this);
|
|
||||||
reader.parse(new org.xml.sax.InputSource(source));
|
|
||||||
} catch (SettingsRecognizer.StopSAXException ex) {
|
|
||||||
// Ok, header is read
|
|
||||||
} catch (SAXException ex) {
|
|
||||||
IOException ioe = new IOException(source.toString()); // NOI18N
|
|
||||||
ErrorManager emgr = ErrorManager.getDefault();
|
|
||||||
emgr.annotate(ioe, ex);
|
|
||||||
if (ex.getException() != null) {
|
|
||||||
emgr.annotate(ioe, ex.getException());
|
|
||||||
}
|
|
||||||
throw ioe;
|
|
||||||
} finally {
|
|
||||||
stack = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Encoding irrelevant for these getBytes() calls: all are ASCII...
|
|
||||||
// (unless someone has their system encoding set to UCS-16!)
|
|
||||||
private static final byte[] MODULE_SETTINGS_INTRO = "<?xml version=\"1.0\"?> <!DOCTYPE settings PUBLIC \"-//NetBeans//DTD Session settings 1.0//EN\" \"http://www.netbeans.org/dtds/sessionsettings-1_0.dtd\"> <settings version=\"".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_INTRO_END = "> <".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_MODULE_NAME = "odule name=\"".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_MODULE_SPEC = "spec=\"".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_MODULE_IMPL = "impl=\"".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_TAG_END = "> <".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_INSTANCE = "nstance".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_INSTANCE_CLZ = "class=\"".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_INSTANCE_MTD = "method=\"".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_OF = "f class=\"".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_SERIAL = "erialdata class=\"".getBytes(); // NOI18N
|
|
||||||
private static final byte[] MODULE_SETTINGS_END = "settings>".getBytes(); // NOI18N
|
|
||||||
|
|
||||||
/** Attempts to read the stream in the same way as SAX parser but avoids using it.
|
|
||||||
* If it does not manage to parse it this way, it returns null, in which case
|
|
||||||
* you have to use a real parser.
|
|
||||||
* @see "#36718"
|
|
||||||
*/
|
|
||||||
private Set<String> quickParse(InputStream is) throws IOException {
|
|
||||||
Set<String> iofs = new HashSet<String>(); // <String>
|
|
||||||
|
|
||||||
if (!expect(is, MODULE_SETTINGS_INTRO)) {
|
|
||||||
err.log("Could not read intro "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
version = readTo(is, '"');
|
|
||||||
if (version == null) {
|
|
||||||
err.log("Could not read version "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (!expect(is, MODULE_SETTINGS_INTRO_END)) {
|
|
||||||
err.log("Could not read stuff after cnb "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// Now we have (module?, instanceof*, (instance | serialdata)).
|
|
||||||
int c;
|
|
||||||
PARSE:
|
|
||||||
while (true) {
|
|
||||||
c = is.read();
|
|
||||||
switch (c) {
|
|
||||||
case 'm':
|
|
||||||
// <module />
|
|
||||||
if (!expect(is, MODULE_SETTINGS_MODULE_NAME)) {
|
|
||||||
err.log("Could not read up to <module name=\" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
String codeName = readTo(is, '"');
|
|
||||||
if (codeName == null) {
|
|
||||||
err.log("Could not read module name value "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
codeName = codeName.intern();
|
|
||||||
resolveModuleElm(codeName);
|
|
||||||
c = is.read();
|
|
||||||
if (c == '/') {
|
|
||||||
if (!expect(is, MODULE_SETTINGS_TAG_END)) {
|
|
||||||
err.log("Could not read up to end of module tag "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
} else if (c != ' ') {
|
|
||||||
err.log("Could not space after module name "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// <module spec/>
|
|
||||||
if (!expect(is, MODULE_SETTINGS_MODULE_SPEC)) {
|
|
||||||
err.log("Could not read up to spec=\" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
String mspec = readTo(is, '"');
|
|
||||||
if (mspec == null) {
|
|
||||||
err.log("Could not read module spec value "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
//moduleSpec = new SpecificationVersion(mspec);
|
|
||||||
} catch (NumberFormatException nfe) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
c = is.read();
|
|
||||||
if (c == '/') {
|
|
||||||
if (!expect(is, MODULE_SETTINGS_TAG_END)) {
|
|
||||||
err.log("Could not read up to end of <module name spec/> tag "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
} else if (c != ' ') {
|
|
||||||
err.log("Could not read space after module name "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// <module impl/>
|
|
||||||
if (!expect(is, MODULE_SETTINGS_MODULE_IMPL)) {
|
|
||||||
err.log("Could not read up to impl=\" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
moduleImpl = readTo(is, '"');
|
|
||||||
if (moduleImpl == null) {
|
|
||||||
err.log("Could not read module impl value "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
moduleImpl = moduleImpl.intern();
|
|
||||||
// /> >
|
|
||||||
if (!expect(is, MODULE_SETTINGS_TAG_END)) {
|
|
||||||
err.log("Could not read up to /> < "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'i':
|
|
||||||
// <instanceof> or <instance>
|
|
||||||
if (!expect(is, MODULE_SETTINGS_INSTANCE)) {
|
|
||||||
err.log("Could not read up to instance "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// Now we need to check which one
|
|
||||||
c = is.read();
|
|
||||||
if (c == 'o') {
|
|
||||||
if (!expect(is, MODULE_SETTINGS_OF)) {
|
|
||||||
err.log("Could not read up to instance"); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
String iof = readTo(is, '"');
|
|
||||||
if (iof == null) {
|
|
||||||
err.log("Could not read instanceof value "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
iof = org.openide.util.Utilities.translate(iof).intern();
|
|
||||||
iofs.add(iof);
|
|
||||||
if (is.read() != '/') {
|
|
||||||
err.log("No / at end of <instanceof> " + iof+" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (!expect(is, MODULE_SETTINGS_TAG_END)) {
|
|
||||||
err.log("Could not read up to next tag after <instanceof> " + iof+" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} else if (c == ' ') {
|
|
||||||
// read class and optional method
|
|
||||||
if (!expect(is, MODULE_SETTINGS_INSTANCE_CLZ)) {
|
|
||||||
err.log("Could not read up to class=\" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
instanceClass = readTo(is, '"');
|
|
||||||
if (instanceClass == null) {
|
|
||||||
err.log("Could not read instance class value "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
instanceClass = org.openide.util.Utilities.translate(instanceClass).intern();
|
|
||||||
c = is.read();
|
|
||||||
if (c == '/') {
|
|
||||||
if (!expect(is, MODULE_SETTINGS_TAG_END)) {
|
|
||||||
err.log("Could not read up to end of instance tag "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
} else if (c != ' ') {
|
|
||||||
err.log("Could not space after instance class "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// <instance method/>
|
|
||||||
if (!expect(is, MODULE_SETTINGS_INSTANCE_MTD)) {
|
|
||||||
err.log("Could not read up to method=\" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
instanceMethod = readTo(is, '"');
|
|
||||||
if (instanceMethod == null) {
|
|
||||||
err.log("Could not read method value "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
instanceMethod = instanceMethod.intern();
|
|
||||||
c = is.read();
|
|
||||||
if (c == '/') {
|
|
||||||
if (!expect(is, MODULE_SETTINGS_TAG_END)) {
|
|
||||||
err.log("Could not read up to end of instance tag "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
err.log("Strange stuff after method attribute "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
err.log("Could not read after to instance "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 's':
|
|
||||||
// <serialdata class
|
|
||||||
if (!expect(is, MODULE_SETTINGS_SERIAL)) {
|
|
||||||
err.log("Could not read up to <serialdata class=\" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
instanceClass = readTo(is, '"');
|
|
||||||
if (instanceClass == null) {
|
|
||||||
err.log("Could not read serialdata class value "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
instanceClass = org.openide.util.Utilities.translate(instanceClass).intern();
|
|
||||||
// here we are complete for header, otherwise we would need to go through serialdata stream
|
|
||||||
c = is.read();
|
|
||||||
if (c != '>') {
|
|
||||||
err.log("Could not read up to end of serialdata tag "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
break PARSE;
|
|
||||||
case '/':
|
|
||||||
// </settings
|
|
||||||
// XXX do not read further is neader is set
|
|
||||||
if (!expect(is, MODULE_SETTINGS_END)) {
|
|
||||||
err.log("Could not read up to end of settings tag "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
break PARSE;
|
|
||||||
default:
|
|
||||||
err.log("Strange stuff after <" + (char)c+" "+source); // NOI18N
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (instanceClass != null && !iofs.isEmpty()) {
|
|
||||||
return iofs;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Read some stuff from a stream and skip over it.
|
|
||||||
* Newlines conventions and whitespaces are normalized to one space.
|
|
||||||
* @return true upon success, false if stream contained something else
|
|
||||||
*/
|
|
||||||
private boolean expect(InputStream is, byte[] stuff) throws IOException {
|
|
||||||
int len = stuff.length;
|
|
||||||
boolean inWhitespace = false;
|
|
||||||
for (int i = 0; i < len; ) {
|
|
||||||
int c = is.read();
|
|
||||||
if (c == 10 || c == 13 || c == ' ' || c == '\t') {
|
|
||||||
// Normalize: s/[\t \r\n]+/\n/g
|
|
||||||
if (inWhitespace) {
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
inWhitespace = true;
|
|
||||||
c = ' ';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
inWhitespace = false;
|
|
||||||
}
|
|
||||||
if (c != stuff[i++]) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (stuff[len - 1] == 10) {
|
|
||||||
// Expecting something ending in a \n - so we have to
|
|
||||||
// read any further \r or \n and discard.
|
|
||||||
if (!is.markSupported()) throw new IOException("Mark not supported"); // NOI18N
|
|
||||||
is.mark(1);
|
|
||||||
int c = is.read();
|
|
||||||
if (c != -1 && c != 10 && c != 13) {
|
|
||||||
// Got some non-newline character, push it back!
|
|
||||||
is.reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
/** Read a maximal string until delim is encountered (which will be removed from stream).
|
|
||||||
* This impl reads only ASCII, for speed.
|
|
||||||
* Newline conventions are normalized to Unix \n.
|
|
||||||
* @return the read string, or null if the delim is not encountered before EOF.
|
|
||||||
*/
|
|
||||||
private String readTo(InputStream is, char delim) throws IOException {
|
|
||||||
if (delim == 10) {
|
|
||||||
// Not implemented - stream might have "foo\r\n" and we would
|
|
||||||
// return "foo" and leave "\n" in the stream.
|
|
||||||
throw new IOException("Not implemented"); // NOI18N
|
|
||||||
}
|
|
||||||
CharArrayWriter caw = new CharArrayWriter(100);
|
|
||||||
boolean inNewline = false;
|
|
||||||
while (true) {
|
|
||||||
int c = is.read();
|
|
||||||
if (c == -1) return null;
|
|
||||||
if (c > 126) return null;
|
|
||||||
if (c == 10 || c == 13) {
|
|
||||||
// Normalize: s/[\r\n]+/\n/g
|
|
||||||
if (inNewline) {
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
inNewline = true;
|
|
||||||
c = 10;
|
|
||||||
}
|
|
||||||
} else if (c < 32 && c != 9) {
|
|
||||||
// Random control character!
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
inNewline = false;
|
|
||||||
}
|
|
||||||
if (c == delim) {
|
|
||||||
return caw.toString();
|
|
||||||
} else {
|
|
||||||
caw.write(c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
final static class StopSAXException extends SAXException {
|
|
||||||
public StopSAXException() {
|
|
||||||
super("Parser stopped"); // NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,69 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class StringPropertyProcessor extends PropertyProcessor {
|
|
||||||
StringPropertyProcessor() {
|
|
||||||
super("java.lang.String");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
if ("userProxyHost".equals(propertyName)) {//NOI18N
|
|
||||||
addProperty("proxyHttpHost", value.toString());
|
|
||||||
} else if ("userProxyPort".equals(propertyName)) {//NOI18N
|
|
||||||
addProperty("proxyHttpPort", value.toString());
|
|
||||||
} else if ("userNonProxy".equals(propertyName)) {//NOI18N
|
|
||||||
addProperty("proxyNonProxyHosts", value.toString());
|
|
||||||
} else {
|
|
||||||
addProperty(propertyName, value == SerParser.NULL ? null : value.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,119 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Set;
|
|
||||||
import org.openide.filesystems.FileObject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
public class SystemOptionsParser {
|
|
||||||
static final String EXPECTED_INSTANCE = "org.openide.options.SystemOption";//NOI18N
|
|
||||||
|
|
||||||
private String systemOptionInstanceName;
|
|
||||||
private boolean types;
|
|
||||||
|
|
||||||
private SystemOptionsParser(final String systemOptionInstanceName, final boolean types) {
|
|
||||||
this.systemOptionInstanceName = systemOptionInstanceName;
|
|
||||||
this.types = types;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DefaultResult parse(FileObject settingsFo, boolean types) throws IOException, ClassNotFoundException {
|
|
||||||
SettingsRecognizer instance = getRecognizer(settingsFo);
|
|
||||||
|
|
||||||
SystemOptionsParser rImpl = null;
|
|
||||||
InputStream is = instance.getSerializedInstance();
|
|
||||||
try {
|
|
||||||
SerParser sp = new SerParser(is);
|
|
||||||
SerParser.Stream s = sp.parse();
|
|
||||||
rImpl = new SystemOptionsParser(instance.instanceName(), types);
|
|
||||||
DefaultResult ret = (DefaultResult)rImpl.processContent(s.contents.iterator(), false);
|
|
||||||
ret.setModuleName(instance.getCodeNameBase().replace('.','/'));
|
|
||||||
return ret;
|
|
||||||
} finally {
|
|
||||||
is.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Result processContent(final Iterator<Object> it, final boolean reachedWriteReplace) {
|
|
||||||
for (; it.hasNext();) {
|
|
||||||
Object elem = it.next();
|
|
||||||
if (!reachedWriteReplace && elem instanceof SerParser.ObjectWrapper) {
|
|
||||||
SerParser.ObjectWrapper ow = (SerParser.ObjectWrapper)elem;
|
|
||||||
String name = ow.classdesc.name;
|
|
||||||
if (name.endsWith("org.openide.util.SharedClassObject$WriteReplace;")) {//NOI18N
|
|
||||||
return processContent(ow.data.iterator(), true);
|
|
||||||
}
|
|
||||||
} else if (reachedWriteReplace && elem instanceof SerParser.NameValue ) {
|
|
||||||
SerParser.NameValue nv = (SerParser.NameValue)elem;
|
|
||||||
if (systemOptionInstanceName.equals(nv.value)) {
|
|
||||||
Result result = ContentProcessor.parseContent(systemOptionInstanceName, types, it);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static SettingsRecognizer getRecognizer(final FileObject settingsFo) throws IOException {
|
|
||||||
SettingsRecognizer recognizer = new SettingsRecognizer(false, settingsFo);
|
|
||||||
recognizer.parse();
|
|
||||||
|
|
||||||
Set instances = recognizer.getInstanceOf();
|
|
||||||
String iName = recognizer.instanceName();
|
|
||||||
if (!instances.contains(EXPECTED_INSTANCE)) {
|
|
||||||
throw new IOException(iName);
|
|
||||||
}
|
|
||||||
return recognizer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,96 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.rmi.UnexpectedException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* For: org.netbeans.modules.tasklist.docscan.TaskTags
|
|
||||||
* @author Radek Matous
|
|
||||||
*/
|
|
||||||
class TaskTagsProcessor extends PropertyProcessor {
|
|
||||||
|
|
||||||
/** Creates a new instance of TaskTagsProcessor */
|
|
||||||
TaskTagsProcessor() {
|
|
||||||
super("org.netbeans.modules.tasklist.docscan.TaskTags");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
if ("taskTags".equals(propertyName)) {//NOI18N
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
Object elem = (Object) it.next();
|
|
||||||
if (elem instanceof SerParser.ObjectWrapper) {
|
|
||||||
String clsname = Utils.prettify(((SerParser.ObjectWrapper)elem).classdesc.name);
|
|
||||||
if ("org.netbeans.modules.tasklist.docscan.TaskTag".equals(clsname)) {//NOI18N
|
|
||||||
processTag(elem);//NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void processTag(final Object value) {
|
|
||||||
String tagName = null;
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
Object elem = (Object) it.next();
|
|
||||||
if (elem instanceof SerParser.ObjectWrapper) {
|
|
||||||
String val = ((SerParser.NameValue)(((SerParser.ObjectWrapper)elem).data.get(0))).value.toString();
|
|
||||||
assert tagName != null;
|
|
||||||
addProperty(tagName, val);
|
|
||||||
} else if (elem instanceof String) {
|
|
||||||
tagName = "Tag"+(String)elem;//NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,111 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.net.MalformedURLException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Milos Kleint
|
|
||||||
*/
|
|
||||||
class URLProcessor extends PropertyProcessor {
|
|
||||||
URLProcessor() {
|
|
||||||
super("java.net.URL");//NOI18N
|
|
||||||
}
|
|
||||||
|
|
||||||
void processPropertyImpl(String propertyName, Object value) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
if ("mainProjectURL".equals(propertyName)) {//NOI18N
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
try {
|
|
||||||
URL url = createURL(l);
|
|
||||||
addProperty(propertyName, url.toExternalForm());
|
|
||||||
} catch (MalformedURLException ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static URL createURL(List l) throws MalformedURLException {
|
|
||||||
String protocol = null;
|
|
||||||
String host = null;
|
|
||||||
int port = -1;
|
|
||||||
String file = null;
|
|
||||||
String authority = null;
|
|
||||||
String ref = null;
|
|
||||||
for (Iterator it = l.iterator(); it.hasNext();) {
|
|
||||||
Object elem = (Object) it.next();
|
|
||||||
if (elem instanceof SerParser.NameValue) {
|
|
||||||
SerParser.NameValue nv = (SerParser.NameValue)elem;
|
|
||||||
if (nv.value != null && nv.name != null) {
|
|
||||||
if (nv.name.name.equals("port")) {//NOI18N
|
|
||||||
port = ((Integer)nv.value).intValue();//NOI18N
|
|
||||||
}
|
|
||||||
else if (nv.name.name.equals("file")) {//NOI18N
|
|
||||||
file = nv.value.toString();//NOI18N
|
|
||||||
}
|
|
||||||
else if (nv.name.name.equals("authority")) {//NOI18N
|
|
||||||
authority = nv.value.toString();//NOI18N
|
|
||||||
}
|
|
||||||
else if (nv.name.name.equals("host")) {//NOI18N
|
|
||||||
host = nv.value.toString();//NOI18N
|
|
||||||
}
|
|
||||||
else if (nv.name.name.equals("protocol")) {//NOI18N
|
|
||||||
protocol = nv.value.toString();//NOI18N
|
|
||||||
}
|
|
||||||
else if (nv.name.name.equals("ref")) {//NOI18N
|
|
||||||
ref = nv.value.toString();//NOI18N
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return new URL(protocol, host, port, file);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,150 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.upgrade.systemoptions;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import org.netbeans.upgrade.systemoptions.SerParser.ArrayWrapper;
|
|
||||||
import org.netbeans.upgrade.systemoptions.SerParser.NameValue;
|
|
||||||
import org.netbeans.upgrade.systemoptions.SerParser.ObjectWrapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author rmatous
|
|
||||||
*/
|
|
||||||
final class Utils {
|
|
||||||
|
|
||||||
/** Creates a new instance of Utils */
|
|
||||||
private Utils() {}
|
|
||||||
|
|
||||||
|
|
||||||
static String valueFromObjectWrapper(final Object value) {
|
|
||||||
String stringvalue = null;
|
|
||||||
if (value instanceof ObjectWrapper) {
|
|
||||||
List l = ((SerParser.ObjectWrapper)value).data;
|
|
||||||
if (l.size() == 1) {
|
|
||||||
Object o = l.get(0);
|
|
||||||
if (o instanceof NameValue) {
|
|
||||||
Object key = null;
|
|
||||||
stringvalue = ((NameValue) o).value.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (stringvalue == null) {
|
|
||||||
stringvalue = ((ObjectWrapper) value).classdesc.name;
|
|
||||||
}
|
|
||||||
} else if (value instanceof String && !"null".equals(value)) {
|
|
||||||
stringvalue = value.toString();
|
|
||||||
|
|
||||||
} else if (value instanceof SerParser.ArrayWrapper && "[Ljava.lang.String;".equals(((SerParser.ArrayWrapper)value).classdesc.name)) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
List es = ((SerParser.ArrayWrapper)value).values;
|
|
||||||
for (Iterator it = es.iterator(); it.hasNext();) {
|
|
||||||
sb.append((String)it.next());
|
|
||||||
if (it.hasNext()) {
|
|
||||||
sb.append(" , ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stringvalue = sb.toString();
|
|
||||||
} else if (value instanceof SerParser.ArrayWrapper && "[[Ljava.lang.String;".equals(((SerParser.ArrayWrapper)value).classdesc.name)) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
List awl = ((SerParser.ArrayWrapper)value).values;
|
|
||||||
for (Iterator it = awl.iterator(); it.hasNext();) {
|
|
||||||
SerParser.ArrayWrapper aw = (SerParser.ArrayWrapper)it.next();
|
|
||||||
sb.append(valueFromObjectWrapper(aw));
|
|
||||||
if (it.hasNext()) {
|
|
||||||
sb.append(" | ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stringvalue = sb.toString();
|
|
||||||
} else {
|
|
||||||
stringvalue = "unknown";//value.toString();
|
|
||||||
}
|
|
||||||
return stringvalue;
|
|
||||||
}
|
|
||||||
|
|
||||||
static String getClassNameFromObject(final Object value) {
|
|
||||||
String clsName = null;
|
|
||||||
if (value instanceof ObjectWrapper) {
|
|
||||||
clsName = prettify(((ObjectWrapper) value).classdesc.name);
|
|
||||||
} else if (value instanceof ArrayWrapper) {
|
|
||||||
clsName = prettify(((ArrayWrapper) value).classdesc.name);
|
|
||||||
} else {
|
|
||||||
clsName = prettify(value.getClass().getName());
|
|
||||||
}
|
|
||||||
return clsName;
|
|
||||||
}
|
|
||||||
|
|
||||||
static String prettify(String type) {
|
|
||||||
if (type.equals("B")) { // NOI18N
|
|
||||||
return "byte"; // NOI18N
|
|
||||||
} else if (type.equals("S")) { // NOI18N
|
|
||||||
return "short"; // NOI18N
|
|
||||||
} else if (type.equals("I")) { // NOI18N
|
|
||||||
return "int"; // NOI18N
|
|
||||||
} else if (type.equals("J")) { // NOI18N
|
|
||||||
return "long"; // NOI18N
|
|
||||||
} else if (type.equals("F")) { // NOI18N
|
|
||||||
return "float"; // NOI18N
|
|
||||||
} else if (type.equals("D")) { // NOI18N
|
|
||||||
return "double"; // NOI18N
|
|
||||||
} else if (type.equals("C")) { // NOI18N
|
|
||||||
return "char"; // NOI18N
|
|
||||||
} else if (type.equals("Z")) { // NOI18N
|
|
||||||
return "boolean"; // NOI18N
|
|
||||||
} else if (type.startsWith("L") && type.endsWith(";")) { // NOI18N
|
|
||||||
String fqn = type.substring(1, type.length() - 1).replace('/', '.').replace('$', '.'); // NOI18N
|
|
||||||
return fqn;
|
|
||||||
}
|
|
||||||
if (!type.startsWith("[")) {
|
|
||||||
if (type.startsWith("L")) {
|
|
||||||
return type.substring(1);
|
|
||||||
}
|
|
||||||
if (type.endsWith(";")) {
|
|
||||||
return type.substring(0,type.length()-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
Services/org-netbeans-core-IDESettings.settings
|
|
||||||
Services/org-netbeans-modules-derby-DerbyOptions.settings
|
|
||||||
Services/org-apache-tools-ant-module-AntSettings.settings
|
|
||||||
Services/org-netbeans-modules-project-ui-OpenProjectList.settings
|
|
||||||
Services/org-netbeans-modules-i18n-I18nOptions.settings
|
|
||||||
Services/org-netbeans-modules-javadoc-settings-DocumentationSettings.settings
|
|
||||||
Services/org-netbeans-modules-junit-JUnitSettings.settings
|
|
||||||
Services/org-netbeans-modules-tasklist-docscan-Settings.settings
|
|
||||||
Services/org-netbeans-modules-xml-core-settings-CoreSettings.settings
|
|
||||||
Services/org-netbeans-modules-httpserver-HttpServerSettings.settings
|
|
||||||
Services/formsettings.settings
|
|
||||||
Services/org-openide-text-PrintSettings.settings
|
|
||||||
Services/org-netbeans-modules-profiler-ProfilerIDESettings.settings
|
|
||||||
Services/Hidden/org-netbeans-modules-versioning-system-cvss-settings-CvsModuleConfig.settings
|
|
||||||
Services/Hidden/org-netbeans-modules-versioning-system-cvss-settings-CvsRootSettings.settings
|
|
||||||
Services/Hidden/org-netbeans-modules-subversion-settings-SvnModuleConfig.settings
|
|
@ -1,176 +0,0 @@
|
|||||||
/*
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
||||||
*
|
|
||||||
* Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
|
||||||
* Other names may be trademarks of their respective owners.
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the terms of either the GNU
|
|
||||||
* General Public License Version 2 only ("GPL") or the Common
|
|
||||||
* Development and Distribution License("CDDL") (collectively, the
|
|
||||||
* "License"). You may not use this file except in compliance with the
|
|
||||||
* License. You can obtain a copy of the License at
|
|
||||||
* http://www.netbeans.org/cddl-gplv2.html
|
|
||||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
|
||||||
* specific language governing permissions and limitations under the
|
|
||||||
* License. When distributing the software, include this License Header
|
|
||||||
* Notice in each file and include the License file at
|
|
||||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
|
||||||
* particular file as subject to the "Classpath" exception as provided
|
|
||||||
* by Oracle in the GPL Version 2 section of the License file that
|
|
||||||
* accompanied this code. If applicable, add the following below the
|
|
||||||
* License Header, with the fields enclosed by brackets [] replaced by
|
|
||||||
* your own identifying information:
|
|
||||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* The Original Software is NetBeans. The Initial Developer of the Original
|
|
||||||
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
|
|
||||||
* Microsystems, Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* If you wish your version of this file to be governed by only the CDDL
|
|
||||||
* or only the GPL Version 2, indicate your decision by adding
|
|
||||||
* "[Contributor] elects to include this software in this distribution
|
|
||||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
|
||||||
* single choice of license, a recipient has the option to distribute
|
|
||||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
|
||||||
* to extend the choice of license to its licensees as provided above.
|
|
||||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
|
||||||
* Version 2 license, then the option applies only if the new code is
|
|
||||||
* made subject to such option by the copyright holder.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.netbeans.util;
|
|
||||||
|
|
||||||
import java.awt.BorderLayout;
|
|
||||||
import java.awt.Container;
|
|
||||||
import java.awt.Dialog;
|
|
||||||
import java.awt.Image;
|
|
||||||
import java.awt.event.ComponentAdapter;
|
|
||||||
import java.awt.event.ComponentEvent;
|
|
||||||
import java.awt.event.WindowAdapter;
|
|
||||||
import java.awt.event.WindowEvent;
|
|
||||||
import java.beans.PropertyChangeEvent;
|
|
||||||
import java.beans.PropertyChangeListener;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import javax.swing.JDialog;
|
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import javax.swing.UIManager;
|
|
||||||
import org.openide.util.ImageUtilities;
|
|
||||||
import org.openide.util.Utilities;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides utility methods
|
|
||||||
*
|
|
||||||
* @author Marek Slama
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class Util {
|
|
||||||
|
|
||||||
/** Creates a new instance of Utilities */
|
|
||||||
private Util() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Tries to set default L&F according to platform.
|
|
||||||
* Uses:
|
|
||||||
* Metal L&F on Linux and Solaris
|
|
||||||
* Windows L&F on Windows
|
|
||||||
* Aqua L&F on Mac OS X
|
|
||||||
* System L&F on other OS
|
|
||||||
*/
|
|
||||||
public static void setDefaultLookAndFeel () {
|
|
||||||
String uiClassName;
|
|
||||||
if (Utilities.isWindows()) {
|
|
||||||
uiClassName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; //NOI18N
|
|
||||||
} else if (Utilities.isMac()) {
|
|
||||||
uiClassName = "apple.laf.AquaLookAndFeel"; //NOI18N
|
|
||||||
} else if (Utilities.isUnix()) {
|
|
||||||
uiClassName = "javax.swing.plaf.metal.MetalLookAndFeel"; //NOI18N
|
|
||||||
} else {
|
|
||||||
uiClassName = UIManager.getSystemLookAndFeelClassName();
|
|
||||||
}
|
|
||||||
if (uiClassName.equals(UIManager.getLookAndFeel().getClass().getName())) {
|
|
||||||
//Desired L&F is already set
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
UIManager.setLookAndFeel(uiClassName);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
System.err.println("Cannot set L&F " + uiClassName); //NOI18N
|
|
||||||
System.err.println("Exception:" + ex.getMessage()); //NOI18N
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** #154031 - set NetBeans icons for license dialog.
|
|
||||||
*/
|
|
||||||
public static void initIcons(JDialog dialog) {
|
|
||||||
List<Image> images = new ArrayList<Image>();
|
|
||||||
images.add(ImageUtilities.loadImage("org/netbeans/core/startup/frame.gif", true)); //NOI18N
|
|
||||||
images.add(ImageUtilities.loadImage("org/netbeans/core/startup/frame32.gif", true)); //NOI18N
|
|
||||||
images.add(ImageUtilities.loadImage("org/netbeans/core/startup/frame48.gif", true)); //NOI18N
|
|
||||||
dialog.setIconImages(images);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** #154030 - Creates JDialog around JOptionPane. The body is copied from JOptionPane.createDialog
|
|
||||||
* because we need APPLICATION_MODAL type of dialog on JDK6.
|
|
||||||
*/
|
|
||||||
public static JDialog createJOptionDialog(final JOptionPane pane, String title) {
|
|
||||||
final JDialog dialog = new JDialog(null, title, Dialog.ModalityType.APPLICATION_MODAL);
|
|
||||||
Util.initIcons(dialog);
|
|
||||||
Container contentPane = dialog.getContentPane();
|
|
||||||
contentPane.setLayout(new BorderLayout());
|
|
||||||
contentPane.add(pane, BorderLayout.CENTER);
|
|
||||||
dialog.setResizable(false);
|
|
||||||
dialog.pack();
|
|
||||||
dialog.setLocationRelativeTo(null);
|
|
||||||
WindowAdapter adapter = new WindowAdapter() {
|
|
||||||
|
|
||||||
private boolean gotFocus = false;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void windowClosing(WindowEvent we) {
|
|
||||||
pane.setValue(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void windowGainedFocus(WindowEvent we) {
|
|
||||||
// Once window gets focus, set initial focus
|
|
||||||
if (!gotFocus) {
|
|
||||||
pane.selectInitialValue();
|
|
||||||
gotFocus = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
dialog.addWindowListener(adapter);
|
|
||||||
dialog.addWindowFocusListener(adapter);
|
|
||||||
dialog.addComponentListener(new ComponentAdapter() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void componentShown(ComponentEvent ce) {
|
|
||||||
// reset value to ensure closing works properly
|
|
||||||
pane.setValue(JOptionPane.UNINITIALIZED_VALUE);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
pane.addPropertyChangeListener(new PropertyChangeListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void propertyChange(PropertyChangeEvent event) {
|
|
||||||
// Let the defaultCloseOperation handle the closing
|
|
||||||
// if the user closed the window without selecting a button
|
|
||||||
// (newValue = null in that case). Otherwise, close the dialog.
|
|
||||||
if (dialog.isVisible() && event.getSource() == pane &&
|
|
||||||
(event.getPropertyName().equals(JOptionPane.VALUE_PROPERTY)) &&
|
|
||||||
event.getNewValue() != null &&
|
|
||||||
event.getNewValue() != JOptionPane.UNINITIALIZED_VALUE) {
|
|
||||||
dialog.setVisible(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return dialog;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,104 +0,0 @@
|
|||||||
#org.netbeans.modules.db OptionsExport/Advanced/Databases
|
|
||||||
include config/Databases/.*
|
|
||||||
#org.netbeans.api.debugger OptionsExport/Advanced/Debugger
|
|
||||||
include config/Services/org-netbeans-modules-debugger-Settings\.properties
|
|
||||||
#org.netbeans.modules.diff OptionsExport/Advanced/Diff
|
|
||||||
include config/Services/DiffProviders/.*
|
|
||||||
#org.netbeans.modules.favorites OptionsExport/Advanced/Favorites
|
|
||||||
include config/Favorites/.*
|
|
||||||
#org.netbeans.core.ui OptionsExport/Advanced/Files
|
|
||||||
include config/Preferences/org/netbeans/core[.]properties|config/Services/MIMEResolver/.*
|
|
||||||
#org.netbeans.modules.html OptionsExport/Advanced/HTMLPalette
|
|
||||||
include config/HTMLPalette/.*
|
|
||||||
#org.netbeans.modules.j2eeserver OptionsExport/Advanced/J2EE
|
|
||||||
include config/(J2EE|GlassFish|GlassFishEE6|GlassFishEE6WC)/.*
|
|
||||||
#org.netbeans.modules.web.core OptionsExport/Advanced/JSPPalette
|
|
||||||
include config/JSPPalette/.*
|
|
||||||
#org.netbeans.modules.java.platform OptionsExport/Advanced/JavaPlatform
|
|
||||||
include config/Services/Platforms/org-netbeans-api-java-Platform/.*\.xml
|
|
||||||
#org.netbeans.modules.project.libraries OptionsExport/Advanced/ProjectLibraries
|
|
||||||
exclude build[.]properties#nbplatform[.]default[.]netbeans[.]dest[.]dir
|
|
||||||
include config/org-netbeans-api-project-libraries/Libraries/.*\.xml|build[.]properties#nbplatform[.].+[.].+|var[.].*
|
|
||||||
#org.netbeans.core.windows OptionsExport/Advanced/Toolbars
|
|
||||||
exclude config/Toolbars/Progress/.*
|
|
||||||
include config/Toolbars/.*
|
|
||||||
#org.netbeans.modules.versioning.ui OptionsExport/Advanced/VersioningHistory
|
|
||||||
include var/filehistory/.*|config/Preferences/org/netbeans/modules/versioning/ui/history[.]properties
|
|
||||||
#org.netbeans.core.output2 OptionsExport/Advanced/outputOptions
|
|
||||||
include config/Preferences/org/netbeans/core/output2.properties
|
|
||||||
#org.netbeans.modules.cnd.editor OptionsExport/CND/BuildTools
|
|
||||||
include config/Preferences/org/netbeans/modules/cnd\.properties|config/Preferences/org/netbeans/modules/cnd/toolchain\.properties
|
|
||||||
#org.netbeans.modules.cnd.editor OptionsExport/CND/CodeAssistance
|
|
||||||
include config/cnd-compilers/.*
|
|
||||||
#org.netbeans.modules.cnd.editor OptionsExport/CND/Editor
|
|
||||||
exclude config/Editors/text/x-(c|c\+\+)/Preferences/org-netbeans-modules-editor-settings-CustomPreferences.xml
|
|
||||||
include config/Preferences/org/netbeans/modules/cnd/editor/.*
|
|
||||||
#org.netbeans.modules.cnd.editor OptionsExport/CND/Highlighting
|
|
||||||
include config/Preferences/org/netbeans/modules/cnd/(highlight|modelutil)\.properties
|
|
||||||
#org.netbeans.modules.cnd.editor OptionsExport/CND/Other
|
|
||||||
include config/Preferences/org/netbeans/modules/cnd/(utils|refactoring|callgraph|classview|qnavigator)\.properties
|
|
||||||
#org.netbeans.modules.cnd.editor OptionsExport/CND/ProjectOptions
|
|
||||||
include config/Preferences/org/netbeans/modules/cnd/makeproject\.properties
|
|
||||||
#org.netbeans.modules.cnd.editor OptionsExport/CND/Remote
|
|
||||||
include config/Preferences/org/netbeans/modules/cnd/remote\.properties
|
|
||||||
#org.netbeans.modules.options.editor OptionsExport/Editor/CodeTemplates
|
|
||||||
include config/Editors.*/CodeTemplates/.*
|
|
||||||
#org.netbeans.modules.options.editor OptionsExport/Editor/General
|
|
||||||
include config/Preferences.properties
|
|
||||||
#org.netbeans.modules.options.editor OptionsExport/Editor/Macros
|
|
||||||
include config/Editors/Macros/.*
|
|
||||||
#org.netbeans.modules.options.editor OptionsExport/Editor/Other
|
|
||||||
exclude config/Editors/.*/(macros.xml|Popup.*|Settings\.settings|.*\.instance)
|
|
||||||
include config/Editors/(?!.*(Macros|CodeTemplates|FontsColors)).+|config/.nbattrs
|
|
||||||
#org.netbeans.modules.options.editor OptionsExport/FontsAndColors/AnnotationsColors
|
|
||||||
include config/Editors/AnnotationTypes/.*
|
|
||||||
#org.netbeans.modules.options.editor OptionsExport/FontsAndColors/FontsAndColors
|
|
||||||
include config/Editors.*/FontsColors/([^/]*)/.*|config/.nbattrs
|
|
||||||
#org.netbeans.modules.options.editor OptionsExport/Formatting/Indentation
|
|
||||||
include config/Editors/Preferences/org-netbeans-modules-editor-settings-CustomPreferences.xml
|
|
||||||
#org.netbeans.modules.java.source OptionsExport/Formatting/Java
|
|
||||||
include config/Editors/text/x-java/Preferences/org-netbeans-modules-editor-settings-CustomPreferences.xml
|
|
||||||
#org.netbeans.core.ui OptionsExport/General/General
|
|
||||||
include config/Preferences/org/netbeans/core[.]properties|config/Services/Browsers/.*
|
|
||||||
#org.netbeans.core.ui OptionsExport/General/Other
|
|
||||||
include config/Preferences/.*
|
|
||||||
#org.netbeans.modules.welcome OptionsExport/General/Welcome
|
|
||||||
exclude config/Preferences/org/netbeans/modules/welcome[.]properties!feedback.*
|
|
||||||
include config/Preferences/org/netbeans/modules/welcome[.]properties
|
|
||||||
#org.apache.tools.ant.module OptionsExport/Java/AntShortcuts
|
|
||||||
include config/(Actions/Build/.*[.]xml|(Menu|Toolbars|Shortcuts)/.*[.]shadow)
|
|
||||||
#org.netbeans.modules.form OptionsExport/Java/Form
|
|
||||||
include config/FormDesignerPalette/.*|config/Services/formsettings[.]settings
|
|
||||||
#org.netbeans.modules.maven OptionsExport/Java/Maven
|
|
||||||
include config/(Preferences/org/netbeans/modules/maven([.]properties|/(?!externalOwners[.]properties).*)|Projects/org-netbeans-modules-maven/nbactions[.]xml)
|
|
||||||
#org.netbeans.modules.options.keymap OptionsExport/Keymaps/Profiles
|
|
||||||
include config/Keymaps/([^/]*)/.*|config/Shortcuts/.*|config/Editors/Keybindings/.*|config/.nbattrs
|
|
||||||
#org.netbeans.modules.keyring OptionsExport/Keyring/Passwords
|
|
||||||
include config/Preferences/org/netbeans/modules/keyring.*
|
|
||||||
#org.netbeans.modules.php.project OptionsExport/PHP/Annotations
|
|
||||||
include config/Preferences/org/netbeans/modules/php/project/annotations.properties
|
|
||||||
#org.netbeans.modules.php.apigen OptionsExport/PHP/ApiGen
|
|
||||||
include config/Preferences/org/netbeans/modules/php/apigen/apigen.properties
|
|
||||||
#org.netbeans.modules.php.composer OptionsExport/PHP/Composer
|
|
||||||
include config/Preferences/org/netbeans/modules/php/composer/composer.properties
|
|
||||||
#org.netbeans.modules.php.doctrine2 OptionsExport/PHP/Doctrine2
|
|
||||||
include config/Preferences/org/netbeans/modules/php/doctrine2/doctrine2.properties
|
|
||||||
#org.netbeans.modules.php.project OptionsExport/PHP/General
|
|
||||||
exclude config/Preferences/org/netbeans/modules/php/project/private(\.properties|/.*)
|
|
||||||
include config/Preferences/org/netbeans/modules/php/project/general(\.properties|/.*)|config/Editors/text/x-php5/.*
|
|
||||||
#org.netbeans.modules.hudson.php OptionsExport/PHP/Hudson
|
|
||||||
include config/Preferences/org/netbeans/modules/hudson/php/hudson.properties
|
|
||||||
#org.netbeans.modules.php.project OptionsExport/PHP/Remote
|
|
||||||
include config/Preferences/org/netbeans/modules/php/project/RemoteConnections(\.properties|/.*)
|
|
||||||
#org.netbeans.modules.php.smarty OptionsExport/PHP/Smarty
|
|
||||||
include config/Preferences/org/netbeans/modules/php/smarty/smarty.properties
|
|
||||||
#org.netbeans.modules.php.symfony OptionsExport/PHP/Symfony
|
|
||||||
include config/Preferences/org/netbeans/modules/php/symfony/symfony.properties
|
|
||||||
#org.netbeans.modules.php.symfony2 OptionsExport/PHP/Symfony2
|
|
||||||
include config/Preferences/org/netbeans/modules/php/symfony2/symfony2.properties
|
|
||||||
#org.netbeans.modules.php.zend OptionsExport/PHP/Zend
|
|
||||||
include config/Preferences/org/netbeans/modules/php/zend/zend.properties
|
|
||||||
#org.netbeans.modules.favorites OptionsExport/Templates/Templates
|
|
||||||
include config/Templates/.*
|
|
||||||
#jme3
|
|
||||||
include config/Preferences/com/jme3/gde/.*
|
|
@ -1,4 +1,4 @@
|
|||||||
#Wed, 18 Jun 2014 21:38:15 +0200
|
#Wed, 21 Jan 2015 20:41:54 +0100
|
||||||
app.icon=branding/core/core.jar/org/netbeans/core/startup/frame48.gif
|
app.icon=branding/core/core.jar/org/netbeans/core/startup/frame48.gif
|
||||||
#same as ${branding.token}
|
#same as ${branding.token}
|
||||||
app.name=jmonkeyplatform
|
app.name=jmonkeyplatform
|
||||||
@ -16,7 +16,40 @@ auxiliary.org-netbeans-modules-apisupport-installer.os-macosx=true
|
|||||||
auxiliary.org-netbeans-modules-apisupport-installer.os-solaris=false
|
auxiliary.org-netbeans-modules-apisupport-installer.os-solaris=false
|
||||||
auxiliary.org-netbeans-modules-apisupport-installer.os-windows=true
|
auxiliary.org-netbeans-modules-apisupport-installer.os-windows=true
|
||||||
auxiliary.org-netbeans-modules-apisupport-installer.pack200-enabled=true
|
auxiliary.org-netbeans-modules-apisupport-installer.pack200-enabled=true
|
||||||
modules=${project.com.jme3.gde.upgrader}\:${project.com.jme3.gde.core}\:${project.com.jme3.gde.core.baselibs}\:${project.com.jme3.gde.core.libraries}\:${project.com.jme3.gde.templates}\:${project.com.jme3.gde.project.baselibs}\:${project.com.jme3.gde.project.libraries}\:${project.com.jme3.gde.tests}\:${project.com.jme3.gde.project.testdata}\:${project.com.jme3.gde.ogrexml}\:${project.com.jme3.gde.scenecomposer}\:${project.com.jme3.gde.materials}\:${project.com.jme3.gde.gui}\:${project.com.jme3.gde.ogretools}\:${project.com.jme3.gde.codepalette}\:${project.com.jme3.gde.textureeditor}\:${project.com.jme3.gde.core.updatecenters}\:${project.com.jme3.gde.wavefront}\:${project.com.jme3.gde.terraineditor}\:${project.com.jme3.gde.assetpack}\:${project.com.jme3.gde.modelimporter}\:${project.com.jme3.gde.lwjgl.applet}\:${project.com.jme3.gde.desktop.executables}\:${project.com.jme3.gde.cinematics}\:${project.com.jme3.gde.vehiclecreator}\:${project.com.jme3.gde.welcome}\:${project.com.jme3.gde.codecheck}\:${project.com.jme3.gde.obfuscate}\:${project.com.jme3.gde.blender}\:${project.com.jme3.gde.angelfont}\:${project.net.java.nboglpack.glsleditor}\:${project.com.jme3.gde.android}\:${project.com.jme3.gde.nmgen}\:${project.com.jme3.gde.docs}
|
modules=\
|
||||||
|
${project.com.jme3.gde.core}:\
|
||||||
|
${project.com.jme3.gde.core.baselibs}:\
|
||||||
|
${project.com.jme3.gde.core.libraries}:\
|
||||||
|
${project.com.jme3.gde.templates}:\
|
||||||
|
${project.com.jme3.gde.project.baselibs}:\
|
||||||
|
${project.com.jme3.gde.project.libraries}:\
|
||||||
|
${project.com.jme3.gde.tests}:\
|
||||||
|
${project.com.jme3.gde.project.testdata}:\
|
||||||
|
${project.com.jme3.gde.ogrexml}:\
|
||||||
|
${project.com.jme3.gde.scenecomposer}:\
|
||||||
|
${project.com.jme3.gde.materials}:\
|
||||||
|
${project.com.jme3.gde.gui}:\
|
||||||
|
${project.com.jme3.gde.ogretools}:\
|
||||||
|
${project.com.jme3.gde.codepalette}:\
|
||||||
|
${project.com.jme3.gde.textureeditor}:\
|
||||||
|
${project.com.jme3.gde.core.updatecenters}:\
|
||||||
|
${project.com.jme3.gde.wavefront}:\
|
||||||
|
${project.com.jme3.gde.terraineditor}:\
|
||||||
|
${project.com.jme3.gde.assetpack}:\
|
||||||
|
${project.com.jme3.gde.modelimporter}:\
|
||||||
|
${project.com.jme3.gde.lwjgl.applet}:\
|
||||||
|
${project.com.jme3.gde.desktop.executables}:\
|
||||||
|
${project.com.jme3.gde.cinematics}:\
|
||||||
|
${project.com.jme3.gde.vehiclecreator}:\
|
||||||
|
${project.com.jme3.gde.welcome}:\
|
||||||
|
${project.com.jme3.gde.codecheck}:\
|
||||||
|
${project.com.jme3.gde.obfuscate}:\
|
||||||
|
${project.com.jme3.gde.blender}:\
|
||||||
|
${project.com.jme3.gde.angelfont}:\
|
||||||
|
${project.net.java.nboglpack.glsleditor}:\
|
||||||
|
${project.com.jme3.gde.android}:\
|
||||||
|
${project.com.jme3.gde.nmgen}:\
|
||||||
|
${project.com.jme3.gde.docs}
|
||||||
project.com.jme3.gde.android=jme3-android
|
project.com.jme3.gde.android=jme3-android
|
||||||
project.com.jme3.gde.angelfont=jme3-angelfont
|
project.com.jme3.gde.angelfont=jme3-angelfont
|
||||||
project.com.jme3.gde.blender=jme3-blender
|
project.com.jme3.gde.blender=jme3-blender
|
||||||
@ -48,7 +81,6 @@ project.com.jme3.gde.templates=jme3-templates
|
|||||||
project.com.jme3.gde.terraineditor=jme3-terrain-editor
|
project.com.jme3.gde.terraineditor=jme3-terrain-editor
|
||||||
project.com.jme3.gde.tests=jme3-tests-template
|
project.com.jme3.gde.tests=jme3-tests-template
|
||||||
project.com.jme3.gde.textureeditor=jme3-texture-editor
|
project.com.jme3.gde.textureeditor=jme3-texture-editor
|
||||||
project.com.jme3.gde.upgrader=jme3-upgrader
|
|
||||||
project.com.jme3.gde.vehiclecreator=jme3-vehicle-creator
|
project.com.jme3.gde.vehiclecreator=jme3-vehicle-creator
|
||||||
project.com.jme3.gde.wavefront=jme3-wavefront
|
project.com.jme3.gde.wavefront=jme3-wavefront
|
||||||
project.com.jme3.gde.welcome=jme3-welcome-screen
|
project.com.jme3.gde.welcome=jme3-welcome-screen
|
||||||
|
Loading…
x
Reference in New Issue
Block a user