1.1 --- a/licensechanger/manifest.mf Fri Sep 14 00:27:52 2012 -0400
1.2 +++ b/licensechanger/manifest.mf Fri Sep 14 01:53:25 2012 -0400
1.3 @@ -1,6 +1,5 @@
1.4 Manifest-Version: 1.0
1.5 -OpenIDE-Module: org.netbeans.modules.licensechanger/1
1.6 -OpenIDE-Module-Layer: org/netbeans/modules/licensechanger/layer.xml
1.7 +OpenIDE-Module: org.netbeans.modules.licensechanger/2
1.8 OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/licensechanger/Bundle.properties
1.9 OpenIDE-Module-Requires:
1.10 javax.script.ScriptEngine.FreeMarker,
2.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/api/FileHandler.java Fri Sep 14 00:27:52 2012 -0400
2.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/api/FileHandler.java Fri Sep 14 01:53:25 2012 -0400
2.3 @@ -43,6 +43,7 @@
2.4 import java.util.ArrayList;
2.5 import java.util.Date;
2.6 import java.util.List;
2.7 +import java.util.Map;
2.8 import java.util.Properties;
2.9 import java.util.regex.Matcher;
2.10 import java.util.regex.Pattern;
2.11 @@ -51,6 +52,7 @@
2.12 import javax.script.ScriptEngineManager;
2.13 import javax.script.ScriptException;
2.14 import org.netbeans.modules.licensechanger.spi.wizard.utils.Offsets;
2.15 +import org.netbeans.modules.licensechanger.spi.wizard.utils.WizardProperties;
2.16 import org.openide.filesystems.FileObject;
2.17 import org.openide.filesystems.FileUtil;
2.18 import org.openide.util.Exceptions;
2.19 @@ -91,7 +93,7 @@
2.20 * @return the resolved licenseText
2.21 * @throws RuntimeException
2.22 */
2.23 - public String resolveLicenseTemplate(String licenseText) throws RuntimeException {
2.24 + public String resolveLicenseTemplate(String licenseText, Map<String, Object> additionalBindings) throws RuntimeException {
2.25 if (licenseText.contains("${licenseFirst}") && licenseText.contains("${licensePrefix}") && licenseText.contains("${licenseLast}")) {
2.26 System.out.println("License is a freemarker template!");
2.27 //freemarker template
2.28 @@ -103,27 +105,36 @@
2.29 Properties props = new Properties();
2.30 try {
2.31 props.load(licenseTemplates.getInputStream());
2.32 - for (String key : props.stringPropertyNames()) {
2.33 - bindings.put(key, props.getProperty(key));
2.34 - }
2.35 } catch (IOException ex) {
2.36 Exceptions.printStackTrace(ex);
2.37 throw new RuntimeException(ex);
2.38 }
2.39 + for (String key : props.stringPropertyNames()) {
2.40 + bindings.put(key, props.getProperty(key));
2.41 + }
2.42 + String copyrightHolder = props.getProperty(WizardProperties.KEY_COPYRIGHT_HOLDER);
2.43 + if (copyrightHolder != null && !copyrightHolder.trim().isEmpty()) {
2.44 + bindings.put("user", copyrightHolder);
2.45 + }
2.46 bindings.put("licenseFirst", licenseFirst());
2.47 bindings.put("licensePrefix", licensePrefix());
2.48 bindings.put("licenseLast", licenseLast());
2.49 bindings.put("date", new Date());
2.50 + for (Map.Entry<String,Object> e : additionalBindings.entrySet()) {
2.51 + bindings.put (e.getKey(), e.getValue());
2.52 + }
2.53 if (props.containsKey("project.organization")) {
2.54 Project project = new Project(props.getProperty("project.organization"));
2.55 System.out.println("Using project.organization: " + props.getProperty("project.organization"));
2.56 bindings.put("project", project);
2.57 bindings.put("user", null);
2.58 } else {
2.59 - String user = props.getProperty("user", System.getProperty("user.name"));
2.60 + Object user = additionalBindings.containsKey(WizardProperties.KEY_COPYRIGHT_HOLDER) ? additionalBindings.get(WizardProperties.KEY_COPYRIGHT_HOLDER) : props.getProperty("user", System.getProperty("user.name"));
2.61 System.out.println("Using user: " + user);
2.62 bindings.put("project", new Project(null));
2.63 - bindings.put("user", user);
2.64 + if (!bindings.containsKey("user")) {
2.65 + bindings.put("user", user);
2.66 + }
2.67 }
2.68 StringWriter writer = new StringWriter();
2.69 try {
2.70 @@ -148,11 +159,11 @@
2.71 }
2.72 }
2.73
2.74 - public String transform(String origText, String licenseText) {
2.75 + public String transform(String origText, String licenseText, Map<String, Object> bindings) {
2.76 Offsets offsets = getReplaceOffsets(origText);
2.77 System.err.println("Will delete from " + offsets.getStart() + " to " + offsets.getEnd());
2.78 StringBuilder after = new StringBuilder(origText);
2.79 - String escaped = resolveLicenseTemplate(licenseText);
2.80 + String escaped = resolveLicenseTemplate(licenseText, bindings);
2.81 after.delete(offsets.getStart(), offsets.getEnd());
2.82 after.insert(offsets.getStart(), escaped);
2.83 return after.toString();
3.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/handlers/XmlFileHandler.java Fri Sep 14 00:27:52 2012 -0400
3.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/handlers/XmlFileHandler.java Fri Sep 14 01:53:25 2012 -0400
3.3 @@ -39,11 +39,10 @@
3.4
3.5 package org.netbeans.modules.licensechanger.spi.handlers;
3.6
3.7 -import java.awt.Component;
3.8 import java.io.CharConversionException;
3.9 +import java.util.Map;
3.10 import java.util.regex.Matcher;
3.11 import java.util.regex.Pattern;
3.12 -import org.netbeans.modules.licensechanger.api.Customizable;
3.13 import org.netbeans.modules.licensechanger.api.FileHandler;
3.14 import org.netbeans.modules.licensechanger.spi.wizard.utils.Offsets;
3.15 import org.openide.filesystems.FileObject;
3.16 @@ -156,7 +155,7 @@
3.17 }
3.18
3.19 @Override
3.20 - public String transform(String origText, String licenseText) {
3.21 + public String transform(String origText, String licenseText, Map<String,Object> bindings) {
3.22 String[] lines = splitIntoLines(origText);
3.23 XmlDeclarationLocator v = new XmlDeclarationLocator();
3.24 for (int i=0; i < lines.length; i++) {
3.25 @@ -170,7 +169,7 @@
3.26 origText = sb.toString();
3.27 }
3.28 // String license = escape (licenseText);
3.29 - String license = resolveLicenseTemplate(licenseText);
3.30 + String license = resolveLicenseTemplate(licenseText, bindings);
3.31 license = "\n" + license;
3.32 StringBuilder sb = new StringBuilder (origText);
3.33 Offsets o = getReplaceOffsets(sb);
4.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/Bundle.properties Fri Sep 14 00:27:52 2012 -0400
4.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/Bundle.properties Fri Sep 14 01:53:25 2012 -0400
4.3 @@ -28,3 +28,5 @@
4.4 LineEndingsPanel.forceCrlf.text_1=Force CRLF
4.5 LicenseChooserPanel.updateDefaultProjectLicense.text=Set as default project license
4.6 PreviewPanel.fileList.border.title=Select File for Preview
4.7 +ChooseFileTypesPanel.copyrightHolderLabel.text=Copyright Holder
4.8 +ChooseFileTypesPanel.licensePropertiesPanel.border.title=License Properties
5.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/ChooseFileTypesPanel.form Fri Sep 14 00:27:52 2012 -0400
5.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/ChooseFileTypesPanel.form Fri Sep 14 01:53:25 2012 -0400
5.3 @@ -24,7 +24,10 @@
5.4 <Group type="102" alignment="1" attributes="0">
5.5 <Component id="customizerPanel" pref="559" max="32767" attributes="0"/>
5.6 <EmptySpace max="-2" attributes="0"/>
5.7 - <Component id="lineEndingsPanel1" min="-2" pref="239" max="-2" attributes="0"/>
5.8 + <Group type="103" groupAlignment="0" max="-2" attributes="0">
5.9 + <Component id="lineEndingsPanel1" pref="239" max="32767" attributes="0"/>
5.10 + <Component id="licensePropertiesPanel" max="32767" attributes="0"/>
5.11 + </Group>
5.12 </Group>
5.13 </Group>
5.14 <EmptySpace max="-2" attributes="0"/>
5.15 @@ -43,7 +46,8 @@
5.16 <Component id="customizerPanel" pref="361" max="32767" attributes="0"/>
5.17 <Group type="102" attributes="0">
5.18 <Component id="lineEndingsPanel1" min="-2" max="-2" attributes="0"/>
5.19 - <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
5.20 + <EmptySpace type="separate" max="-2" attributes="0"/>
5.21 + <Component id="licensePropertiesPanel" max="32767" attributes="0"/>
5.22 </Group>
5.23 </Group>
5.24 <EmptySpace max="-2" attributes="0"/>
5.25 @@ -131,5 +135,67 @@
5.26 </Container>
5.27 <Component class="org.netbeans.modules.licensechanger.spi.wizard.LineEndingsPanel" name="lineEndingsPanel1">
5.28 </Component>
5.29 + <Container class="javax.swing.JPanel" name="licensePropertiesPanel">
5.30 + <Properties>
5.31 + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
5.32 + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
5.33 + <TitledBorder title="License Properties">
5.34 + <ResourceString PropertyName="titleX" bundle="org/netbeans/modules/licensechanger/spi/wizard/Bundle.properties" key="ChooseFileTypesPanel.licensePropertiesPanel.border.title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
5.35 + </TitledBorder>
5.36 + </Border>
5.37 + </Property>
5.38 + </Properties>
5.39 +
5.40 + <Layout>
5.41 + <DimensionLayout dim="0">
5.42 + <Group type="103" groupAlignment="0" attributes="0">
5.43 + <Group type="102" attributes="0">
5.44 + <EmptySpace max="-2" attributes="0"/>
5.45 + <Group type="103" groupAlignment="0" attributes="0">
5.46 + <Group type="102" attributes="0">
5.47 + <Component id="copyrightHolderLabel" min="-2" max="-2" attributes="0"/>
5.48 + <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
5.49 + </Group>
5.50 + <Component id="copyrightHolderField" max="32767" attributes="0"/>
5.51 + </Group>
5.52 + <EmptySpace max="-2" attributes="0"/>
5.53 + </Group>
5.54 + </Group>
5.55 + </DimensionLayout>
5.56 + <DimensionLayout dim="1">
5.57 + <Group type="103" groupAlignment="0" attributes="0">
5.58 + <Group type="102" alignment="0" attributes="0">
5.59 + <EmptySpace max="-2" attributes="0"/>
5.60 + <Component id="copyrightHolderLabel" min="-2" max="-2" attributes="0"/>
5.61 + <EmptySpace max="-2" attributes="0"/>
5.62 + <Component id="copyrightHolderField" min="-2" max="-2" attributes="0"/>
5.63 + <EmptySpace max="32767" attributes="0"/>
5.64 + </Group>
5.65 + </Group>
5.66 + </DimensionLayout>
5.67 + </Layout>
5.68 + <SubComponents>
5.69 + <Component class="javax.swing.JLabel" name="copyrightHolderLabel">
5.70 + <Properties>
5.71 + <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
5.72 + <ComponentRef name="copyrightHolderField"/>
5.73 + </Property>
5.74 + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
5.75 + <ResourceString bundle="org/netbeans/modules/licensechanger/spi/wizard/Bundle.properties" key="ChooseFileTypesPanel.copyrightHolderLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
5.76 + </Property>
5.77 + </Properties>
5.78 + </Component>
5.79 + <Component class="javax.swing.JTextField" name="copyrightHolderField">
5.80 + <Properties>
5.81 + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
5.82 + <Connection code="System.getProperty("user.name") == null ? "" : System.getProperty("user.name")" type="code"/>
5.83 + </Property>
5.84 + </Properties>
5.85 + <Events>
5.86 + <EventHandler event="focusGained" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="copyrightHolderFieldFocusGained"/>
5.87 + </Events>
5.88 + </Component>
5.89 + </SubComponents>
5.90 + </Container>
5.91 </SubComponents>
5.92 </Form>
6.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/ChooseFileTypesPanel.java Fri Sep 14 00:27:52 2012 -0400
6.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/ChooseFileTypesPanel.java Fri Sep 14 01:53:25 2012 -0400
6.3 @@ -63,6 +63,7 @@
6.4 import org.openide.nodes.Children;
6.5 import org.openide.nodes.Node;
6.6 import org.openide.util.Lookup;
6.7 +import org.openide.util.NbPreferences;
6.8 import org.openide.util.lookup.Lookups;
6.9
6.10 /**
6.11 @@ -75,6 +76,12 @@
6.12
6.13 public ChooseFileTypesPanel() {
6.14 initComponents();
6.15 + String copyrightHolder =
6.16 + NbPreferences.forModule(ChooseFileTypesWizardPanel.class)
6.17 + .get(WizardProperties.KEY_COPYRIGHT_HOLDER, null);
6.18 + if (copyrightHolder != null && !copyrightHolder.trim().isEmpty()) {
6.19 + copyrightHolderField.setText(copyrightHolder);
6.20 + }
6.21 mgr.setRootContext(new AbstractNode (Children.create(new FileHandlerChildren(), false)));
6.22 ((CheckboxListView) jScrollPane1).setNodeCheckObserver(this);
6.23 ((CheckboxListView) jScrollPane1).setListEnabled(true);
6.24 @@ -104,6 +111,9 @@
6.25 customizerPanel = new javax.swing.JPanel();
6.26 noCustomizerLabel = new javax.swing.JLabel();
6.27 lineEndingsPanel1 = new org.netbeans.modules.licensechanger.spi.wizard.LineEndingsPanel();
6.28 + licensePropertiesPanel = new javax.swing.JPanel();
6.29 + copyrightHolderLabel = new javax.swing.JLabel();
6.30 + copyrightHolderField = new javax.swing.JTextField();
6.31
6.32 jLabel1.setFont(jLabel1.getFont().deriveFont(jLabel1.getFont().getStyle() | java.awt.Font.BOLD));
6.33 jLabel1.setText(org.openide.util.NbBundle.getMessage(ChooseFileTypesPanel.class, "ChooseFileTypesPanel.jLabel1.text")); // NOI18N
6.34 @@ -120,6 +130,41 @@
6.35 customizerPanel.add(noCustomizerLabel, java.awt.BorderLayout.CENTER);
6.36 noCustomizerLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(ChooseFileTypesPanel.class, "ChooseFileTypesPanel.noCustomizerLabel.text")); // NOI18N
6.37
6.38 + licensePropertiesPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(ChooseFileTypesPanel.class, "ChooseFileTypesPanel.licensePropertiesPanel.border.title"))); // NOI18N
6.39 +
6.40 + copyrightHolderLabel.setLabelFor(copyrightHolderField);
6.41 + copyrightHolderLabel.setText(org.openide.util.NbBundle.getMessage(ChooseFileTypesPanel.class, "ChooseFileTypesPanel.copyrightHolderLabel.text")); // NOI18N
6.42 +
6.43 + copyrightHolderField.setText(System.getProperty("user.name") == null ? "" : System.getProperty("user.name"));
6.44 + copyrightHolderField.addFocusListener(new java.awt.event.FocusAdapter() {
6.45 + public void focusGained(java.awt.event.FocusEvent evt) {
6.46 + copyrightHolderFieldFocusGained(evt);
6.47 + }
6.48 + });
6.49 +
6.50 + javax.swing.GroupLayout licensePropertiesPanelLayout = new javax.swing.GroupLayout(licensePropertiesPanel);
6.51 + licensePropertiesPanel.setLayout(licensePropertiesPanelLayout);
6.52 + licensePropertiesPanelLayout.setHorizontalGroup(
6.53 + licensePropertiesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
6.54 + .addGroup(licensePropertiesPanelLayout.createSequentialGroup()
6.55 + .addContainerGap()
6.56 + .addGroup(licensePropertiesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
6.57 + .addGroup(licensePropertiesPanelLayout.createSequentialGroup()
6.58 + .addComponent(copyrightHolderLabel)
6.59 + .addGap(0, 0, Short.MAX_VALUE))
6.60 + .addComponent(copyrightHolderField))
6.61 + .addContainerGap())
6.62 + );
6.63 + licensePropertiesPanelLayout.setVerticalGroup(
6.64 + licensePropertiesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
6.65 + .addGroup(licensePropertiesPanelLayout.createSequentialGroup()
6.66 + .addContainerGap()
6.67 + .addComponent(copyrightHolderLabel)
6.68 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
6.69 + .addComponent(copyrightHolderField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
6.70 + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
6.71 + );
6.72 +
6.73 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
6.74 this.setLayout(layout);
6.75 layout.setHorizontalGroup(
6.76 @@ -132,7 +177,9 @@
6.77 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
6.78 .addComponent(customizerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 559, Short.MAX_VALUE)
6.79 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
6.80 - .addComponent(lineEndingsPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 239, javax.swing.GroupLayout.PREFERRED_SIZE)))
6.81 + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
6.82 + .addComponent(lineEndingsPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 239, Short.MAX_VALUE)
6.83 + .addComponent(licensePropertiesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
6.84 .addContainerGap())
6.85 );
6.86 layout.setVerticalGroup(
6.87 @@ -147,7 +194,8 @@
6.88 .addComponent(customizerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 361, Short.MAX_VALUE)
6.89 .addGroup(layout.createSequentialGroup()
6.90 .addComponent(lineEndingsPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
6.91 - .addGap(0, 0, Short.MAX_VALUE)))
6.92 + .addGap(18, 18, 18)
6.93 + .addComponent(licensePropertiesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
6.94 .addContainerGap())
6.95 );
6.96
6.97 @@ -155,11 +203,18 @@
6.98 customizerPanel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(ChooseFileTypesPanel.class, "ChooseFileTypesPanel.customizerPanel.border.title")); // NOI18N
6.99 }// </editor-fold>//GEN-END:initComponents
6.100
6.101 + private void copyrightHolderFieldFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_copyrightHolderFieldFocusGained
6.102 + copyrightHolderField.selectAll();
6.103 + }//GEN-LAST:event_copyrightHolderFieldFocusGained
6.104 +
6.105
6.106 // Variables declaration - do not modify//GEN-BEGIN:variables
6.107 + private javax.swing.JTextField copyrightHolderField;
6.108 + private javax.swing.JLabel copyrightHolderLabel;
6.109 private javax.swing.JPanel customizerPanel;
6.110 private javax.swing.JLabel jLabel1;
6.111 private javax.swing.JScrollPane jScrollPane1;
6.112 + private javax.swing.JPanel licensePropertiesPanel;
6.113 private org.netbeans.modules.licensechanger.spi.wizard.LineEndingsPanel lineEndingsPanel1;
6.114 private javax.swing.JLabel noCustomizerLabel;
6.115 // End of variables declaration//GEN-END:variables
6.116 @@ -197,6 +252,10 @@
6.117 public void onNodeUnchecked(Node node) {
6.118 updateMap();
6.119 }
6.120 +
6.121 + public String getCopyrightHolder() {
6.122 + return copyrightHolderField.getText();
6.123 + }
6.124
6.125 private static final class FileHandlerChildren extends ChildFactory<FileHandler> {
6.126 @Override
7.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/ChooseFileTypesWizardPanel.java Fri Sep 14 00:27:52 2012 -0400
7.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/ChooseFileTypesWizardPanel.java Fri Sep 14 01:53:25 2012 -0400
7.3 @@ -47,6 +47,7 @@
7.4 import org.openide.WizardValidationException;
7.5 import org.openide.util.ChangeSupport;
7.6 import org.openide.util.HelpCtx;
7.7 +import org.openide.util.NbPreferences;
7.8
7.9 /**
7.10 *
7.11 @@ -112,6 +113,11 @@
7.12 @Override
7.13 public void storeSettings(WizardDescriptor wiz) {
7.14 wiz.putProperty(WizardProperties.KEY_FILE_HANDLERS, getComponent().getFileHandlers());
7.15 + String copyrightHolder = getComponent().getCopyrightHolder();
7.16 + if (copyrightHolder != null && !copyrightHolder.isEmpty()) {
7.17 + wiz.putProperty(WizardProperties.KEY_COPYRIGHT_HOLDER, copyrightHolder);
7.18 + NbPreferences.forModule(ChooseFileTypesWizardPanel.class).put(WizardProperties.KEY_COPYRIGHT_HOLDER, copyrightHolder);
7.19 + }
7.20 }
7.21
7.22 @Override
8.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/PreviewPanel.java Fri Sep 14 00:27:52 2012 -0400
8.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/PreviewPanel.java Fri Sep 14 01:53:25 2012 -0400
8.3 @@ -46,7 +46,7 @@
8.4 import java.io.IOException;
8.5 import java.io.PrintWriter;
8.6 import java.io.StringReader;
8.7 -import java.util.HashMap;
8.8 +import java.util.Collections;
8.9 import java.util.HashSet;
8.10 import java.util.Map;
8.11 import java.util.Set;
8.12 @@ -81,6 +81,7 @@
8.13 private ItemLoader loader;
8.14 private String licenseText;
8.15 private Diff diff;
8.16 + private Map<String, Object> properties;
8.17
8.18 public PreviewPanel() {
8.19 diff = Diff.getDefault();
8.20 @@ -124,6 +125,10 @@
8.21 this.licenseText = licenseText;
8.22 firePropertyChange(WizardProperties.KEY_LICENSE_TEXT, null, this.licenseText);
8.23 }
8.24 +
8.25 + void setProperties(Map<String, Object> properties) {
8.26 + this.properties = properties;
8.27 + }
8.28
8.29 /** This method is called from within the constructor to
8.30 * initialize the form.
8.31 @@ -202,6 +207,7 @@
8.32 if (item != null) {
8.33 setFileItem(item);
8.34 // XXX use FileUtil.getFileDisplayName rather than FileObject.getPath
8.35 +
8.36 jLabel3.setText (item.getFile().getPath());
8.37 } else {
8.38 // before.setText("");
8.39 @@ -347,7 +353,9 @@
8.40 }
8.41
8.42 private String transform(String beforeText, FileHandler handler) {
8.43 - return handler.transform(beforeText, licenseText);
8.44 + return handler.transform(beforeText, licenseText,
8.45 + properties == null ? Collections.<String,Object>emptyMap() :
8.46 + properties);
8.47 }
8.48 }
8.49 }
9.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/PreviewWizardPanel.java Fri Sep 14 00:27:52 2012 -0400
9.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/PreviewWizardPanel.java Fri Sep 14 01:53:25 2012 -0400
9.3 @@ -122,6 +122,7 @@
9.4 if(license!=null) {
9.5 getComponent().setLicenseText(license);
9.6 }
9.7 + getComponent().setProperties(wiz.getProperties());
9.8 Set<FileHandler> fileHandler = (Set<FileHandler>)wiz.getProperty(WizardProperties.KEY_FILE_HANDLERS);
9.9 Set<FileObject> folders = (Set<FileObject>)wiz.getProperty(WizardProperties.KEY_FOLDERS);
9.10 if(fileHandler!=null && folders != null) {
10.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/utils/LicenseChangerRunnable.java Fri Sep 14 00:27:52 2012 -0400
10.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/utils/LicenseChangerRunnable.java Fri Sep 14 01:53:25 2012 -0400
10.3 @@ -40,12 +40,10 @@
10.4
10.5 import java.io.*;
10.6 import java.nio.charset.Charset;
10.7 -import java.util.Properties;
10.8 import java.util.Set;
10.9 import org.netbeans.api.progress.ProgressHandle;
10.10 import org.netbeans.api.progress.ProgressHandleFactory;
10.11 import org.netbeans.api.project.*;
10.12 -import org.netbeans.api.project.ui.OpenProjects;
10.13 import org.netbeans.api.queries.FileEncodingQuery;
10.14 import org.netbeans.modules.licensechanger.spi.wizard.LineEndingsPanel;
10.15 import org.openide.WizardDescriptor;
10.16 @@ -81,12 +79,11 @@
10.17 handle.progress(item.getFile().getNameExt(), ix);
10.18 try {
10.19 String content = FileLoader.loadFile(item.file);
10.20 - String nue = item.handler.transform(content, licenseText);
10.21 + String nue = item.handler.transform(content, licenseText, wizard.getProperties());
10.22 LineEndingPreference pref = LineEndingsPanel.getLineEndingPrefs();
10.23 nue = LineEndingPreference.convertLineEndings(pref, content, nue);
10.24
10.25 enc = FileEncodingQuery.getEncoding(item.file);
10.26 - BufferedOutputStream out = new BufferedOutputStream(item.file.getOutputStream());
10.27 byte[] bytes;
10.28 try {
10.29 bytes = nue.getBytes(enc.name());
10.30 @@ -95,6 +92,7 @@
10.31 bytes = nue.getBytes(FileEncodingQuery.getDefaultEncoding().name());
10.32 }
10.33 ByteArrayInputStream in = new ByteArrayInputStream(bytes);
10.34 + BufferedOutputStream out = new BufferedOutputStream(item.file.getOutputStream());
10.35 try {
10.36 FileUtil.copy(in, out);
10.37 } finally {
10.38 @@ -126,15 +124,20 @@
10.39 try {
10.40 InputStream istream = projectProps.getInputStream();
10.41 EditableProperties props = new EditableProperties(true);
10.42 - props.load(istream);
10.43 - istream.close();
10.44 + try {
10.45 + props.load(istream);
10.46 + } finally {
10.47 + istream.close();
10.48 + }
10.49 props.setProperty("project.license", licenseName);
10.50 OutputStream ostream = projectProps.getOutputStream();
10.51 - props.store(ostream);
10.52 - ostream.close();
10.53 + try {
10.54 + props.store(ostream);
10.55 + } finally {
10.56 + ostream.close();
10.57 + }
10.58 } catch (IOException ex) {
10.59 Exceptions.printStackTrace(ex);
10.60 - } finally {
10.61 }
10.62 }
10.63 });
11.1 --- a/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/utils/WizardProperties.java Fri Sep 14 00:27:52 2012 -0400
11.2 +++ b/licensechanger/src/org/netbeans/modules/licensechanger/spi/wizard/utils/WizardProperties.java Fri Sep 14 01:53:25 2012 -0400
11.3 @@ -44,7 +44,7 @@
11.4 *
11.5 * @author Nils Hoffmann
11.6 */
11.7 -public class WizardProperties {
11.8 +public final class WizardProperties {
11.9
11.10 public static final String KEY_FILE_HANDLERS = "fileHandlers";
11.11 public static final String KEY_ITEMS = "fileItems";
11.12 @@ -57,4 +57,6 @@
11.13 public static final String PROP_ENDING = "ending";
11.14 public static final String KEY_ENDING = "line_terminator";
11.15 public static final String KEY_PROJECT = "project";
11.16 + public static final String KEY_COPYRIGHT_HOLDER = "project.organization";
11.17 + private WizardProperties(){}
11.18 }
12.1 --- a/licensechanger/test/unit/src/org/netbeans/modules/licensechanger/spi/handlers/JavaFileHandlerTest.java Fri Sep 14 00:27:52 2012 -0400
12.2 +++ b/licensechanger/test/unit/src/org/netbeans/modules/licensechanger/spi/handlers/JavaFileHandlerTest.java Fri Sep 14 01:53:25 2012 -0400
12.3 @@ -41,6 +41,8 @@
12.4
12.5 import java.io.ByteArrayOutputStream;
12.6 import java.io.InputStream;
12.7 +import java.util.Collections;
12.8 +import java.util.Map;
12.9 import static org.junit.Assert.*;
12.10 import org.junit.Test;
12.11 import org.netbeans.modules.licensechanger.api.FileHandler;
12.12 @@ -52,6 +54,8 @@
12.13 * @author Tim Boudreau
12.14 */
12.15 public class JavaFileHandlerTest {
12.16 +
12.17 + private final Map<String,Object> props = Collections.emptyMap();
12.18
12.19 @Test
12.20 public void testStuff() throws Exception {
12.21 @@ -68,7 +72,7 @@
12.22 System.out.println("Test " + filename);
12.23 JavaFileHandler instance = new JavaFileHandler();
12.24 String original = readFile (filename);
12.25 - String processed = instance.transform(original, license);
12.26 + String processed = instance.transform(original, license, props);
12.27 assertEqualsLineByLine (golden, processed, filename);
12.28 }
12.29
13.1 --- a/licensechanger/test/unit/src/org/netbeans/modules/licensechanger/spi/handlers/PropertiesFileHandlerTest.java Fri Sep 14 00:27:52 2012 -0400
13.2 +++ b/licensechanger/test/unit/src/org/netbeans/modules/licensechanger/spi/handlers/PropertiesFileHandlerTest.java Fri Sep 14 01:53:25 2012 -0400
13.3 @@ -39,6 +39,8 @@
13.4
13.5 package org.netbeans.modules.licensechanger.spi.handlers;
13.6
13.7 +import java.util.Collections;
13.8 +import java.util.Map;
13.9 import org.netbeans.modules.licensechanger.spi.handlers.PropertiesFileHandler;
13.10 import org.junit.Test;
13.11 import static org.junit.Assert.*;
13.12 @@ -48,6 +50,7 @@
13.13 * @author Tim Boudreau
13.14 */
13.15 public class PropertiesFileHandlerTest {
13.16 + private final Map<String,Object> props = Collections.emptyMap();
13.17
13.18 @Test
13.19 public void testStuff() throws Exception {
13.20 @@ -64,7 +67,7 @@
13.21 System.out.println("Test " + filename);
13.22 PropertiesFileHandler instance = new PropertiesFileHandler();
13.23 String original = JavaFileHandlerTest.readFile (filename);
13.24 - String processed = instance.transform(original, license);
13.25 + String processed = instance.transform(original, license, props);
13.26 // if (!original.equals(processed)) {
13.27 // System.out.println("************************************");
13.28 // System.out.println(processed);
14.1 --- a/licensechanger/test/unit/src/org/netbeans/modules/licensechanger/spi/handlers/XmlFileHandlerTest.java Fri Sep 14 00:27:52 2012 -0400
14.2 +++ b/licensechanger/test/unit/src/org/netbeans/modules/licensechanger/spi/handlers/XmlFileHandlerTest.java Fri Sep 14 01:53:25 2012 -0400
14.3 @@ -39,6 +39,8 @@
14.4
14.5 package org.netbeans.modules.licensechanger.spi.handlers;
14.6
14.7 +import java.util.Collections;
14.8 +import java.util.Map;
14.9 import org.netbeans.modules.licensechanger.spi.handlers.XmlFileHandler;
14.10 import java.util.StringTokenizer;
14.11 import java.util.regex.Matcher;
14.12 @@ -51,6 +53,8 @@
14.13 * @author Tim Boudreau
14.14 */
14.15 public class XmlFileHandlerTest {
14.16 + private final Map<String,Object> props = Collections.emptyMap();
14.17 +
14.18 @Test
14.19 public void testDeclarationFinder() throws Exception {
14.20 String xml = getGolden();
14.21 @@ -93,7 +97,7 @@
14.22 System.out.println("Test " + filename);
14.23 XmlFileHandler instance = new XmlFileHandler();
14.24 String original = JavaFileHandlerTest.readFile (filename);
14.25 - String processed = instance.transform(original, license);
14.26 + String processed = instance.transform(original, license, props);
14.27 assertEqualsLineByLine (golden, processed, filename);
14.28 }
14.29