• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

作業部屋の使い方を試しています。


Commit MetaInfo

Revision59 (tree)
Time2014-07-29 16:15:16
Authortuna_p

Log Message

ブランチテスト2

Change Summary

Incremental Difference

--- branches/b2/HtmlTest2/src/Form/SearchDataRW.java (nonexistent)
+++ branches/b2/HtmlTest2/src/Form/SearchDataRW.java (revision 59)
@@ -0,0 +1,134 @@
1+/*
2+ * Copyright (C) 2014 kgto.
3+ *
4+ * This library is free software; you can redistribute it and/or
5+ * modify it under the terms of the GNU Lesser General Public
6+ * License as published by the Free Software Foundation; either
7+ * version 2.1 of the License, or (at your option) any later version.
8+ *
9+ * This library is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+ * Lesser General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU Lesser General Public
15+ * License along with this library; if not, write to the Free Software
16+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17+ * MA 02110-1301 USA
18+ */
19+
20+package Form;
21+
22+import Lib.SearchData;
23+import java.io.BufferedReader;
24+import java.io.BufferedWriter;
25+import java.io.File;
26+import java.io.FileInputStream;
27+import java.io.FileOutputStream;
28+import java.io.IOException;
29+import java.io.InputStreamReader;
30+import java.io.OutputStreamWriter;
31+import java.util.ArrayList;
32+
33+/**
34+ *
35+ * @author kgto
36+ */
37+public class SearchDataRW {
38+
39+ private final String splitchar = "\t";
40+
41+ private String UrlAdress;
42+ private ArrayList slist;
43+
44+ public void seturl(String UrlAdress) {
45+ this.UrlAdress = UrlAdress;
46+ }
47+
48+ public void setslist(ArrayList slist) {
49+ this.slist = slist;
50+ }
51+
52+ public String geturl() {
53+ return UrlAdress;
54+ }
55+
56+ public ArrayList getslist() {
57+ return slist;
58+ }
59+
60+ /**
61+ * 保存
62+ * @param file
63+ */
64+ public void save(File file) {
65+
66+ try {
67+ //空のファイルを作成
68+ file.createNewFile();
69+
70+ FileOutputStream fileoutputstream = new FileOutputStream(file);
71+ OutputStreamWriter outputstreamwriter = new OutputStreamWriter(fileoutputstream, "UTF-8");
72+ BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter);
73+
74+ // URL
75+ bufferedwriter.write(UrlAdress);
76+ bufferedwriter.write("\n");
77+ // 検索情報
78+ for (Object slist1 : slist) {
79+ SearchData sdat = (SearchData) slist1;
80+ StringBuilder str = new StringBuilder();
81+ str.append(sdat.getitem()).append(splitchar);
82+ str.append(sdat.getHtmltag()).append(splitchar);
83+ str.append(sdat.getHtmlid()).append(splitchar);
84+ str.append(sdat.getHtmlclass()).append(splitchar);
85+ str.append(sdat.getaround()).append(splitchar);
86+ str.append(sdat.getregexp()).append("\n");
87+
88+ bufferedwriter.write(str.toString());
89+ }
90+ bufferedwriter.close();
91+
92+ } catch(IOException e) {
93+ System.out.println(e);
94+ }
95+ }
96+
97+ /**
98+ * 読込
99+ * @param file
100+ */
101+ public void load(File file) {
102+ slist = new ArrayList();
103+
104+ try {
105+ FileInputStream fileinputstream = new FileInputStream(file);
106+ InputStreamReader inputstreamreader = new InputStreamReader(fileinputstream, "UTF-8");
107+ BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
108+
109+ String rec;
110+
111+ // URL
112+ UrlAdress = bufferedreader.readLine();
113+ // 検索情報
114+ while((rec = bufferedreader.readLine()) != null) {
115+ String[] recary = rec.split(splitchar, -1);
116+ SearchData sdat = new SearchData();
117+ sdat.setitem(recary[0]);
118+ sdat.setHtmltag(recary[1]);
119+ sdat.setHtmlid(recary[2]);
120+ sdat.setHtmlclass(recary[3]);
121+ sdat.setaround(recary[4]);
122+ sdat.setregexp(recary[5]);
123+
124+ slist.add(sdat);
125+ }
126+ bufferedreader.close();
127+
128+ } catch(IOException e) {
129+ System.out.println(e);
130+ }
131+
132+ }
133+
134+}
--- branches/b2/HtmlTest2/src/Form/HtmlSearch.java (nonexistent)
+++ branches/b2/HtmlTest2/src/Form/HtmlSearch.java (revision 59)
@@ -0,0 +1,374 @@
1+/*
2+ * Copyright (C) 2014 kgto.
3+ *
4+ * This library is free software; you can redistribute it and/or
5+ * modify it under the terms of the GNU Lesser General Public
6+ * License as published by the Free Software Foundation; either
7+ * version 2.1 of the License, or (at your option) any later version.
8+ *
9+ * This library is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+ * Lesser General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU Lesser General Public
15+ * License along with this library; if not, write to the Free Software
16+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17+ * MA 02110-1301 USA
18+ */
19+
20+package Form;
21+
22+import Lib.HtmlParser;
23+import Lib.SearchData;
24+import java.io.File;
25+import java.util.*;
26+import javax.swing.JFileChooser;
27+import javax.swing.filechooser.FileNameExtensionFilter;
28+import org.jdesktop.observablecollections.ObservableCollections;
29+
30+/**
31+ * HTMLページ上の特定の項目を検索し、その項目内容の値を取得する。
32+ * @author kgto
33+ */
34+public class HtmlSearch extends javax.swing.JFrame {
35+
36+ private ArrayList slist = new ArrayList();
37+ private List serachDataList = ObservableCollections.observableList(slist);
38+ private SearchDataRW sio = new SearchDataRW();
39+
40+ /**
41+ * Creates new form Frame1
42+ */
43+ public HtmlSearch() {
44+ initComponents();
45+ }
46+
47+ public List getSerachDataList() {
48+ return this.serachDataList;
49+ }
50+
51+ public void setSerachDataList(List serachDataList) {
52+ this.serachDataList = serachDataList;
53+ }
54+
55+ /**
56+ * This method is called from within the constructor to initialize the form.
57+ * WARNING: Do NOT modify this code. The content of this method is always
58+ * regenerated by the Form Editor.
59+ */
60+ @SuppressWarnings("unchecked")
61+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
62+ private void initComponents() {
63+ bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
64+
65+ jFileChooser1 = new javax.swing.JFileChooser();
66+ jLabel1 = new javax.swing.JLabel();
67+ jTxtUrl = new javax.swing.JTextField();
68+ jBtnSearch = new javax.swing.JButton();
69+ jPanel1 = new javax.swing.JPanel();
70+ jScrollPane1 = new javax.swing.JScrollPane();
71+ jTable1 = new javax.swing.JTable();
72+ jBtnRowIns = new javax.swing.JButton();
73+ jBtnRowDel = new javax.swing.JButton();
74+ jBtnRowCpy = new javax.swing.JButton();
75+ jPanel2 = new javax.swing.JPanel();
76+ jScrollPane2 = new javax.swing.JScrollPane();
77+ jTxtRtn = new javax.swing.JTextArea();
78+ jMenuBar1 = new javax.swing.JMenuBar();
79+ jMenu1 = new javax.swing.JMenu();
80+ jMenuLoad = new javax.swing.JMenuItem();
81+ jMenuSave = new javax.swing.JMenuItem();
82+ jMenu2 = new javax.swing.JMenu();
83+
84+ jFileChooser1.setCurrentDirectory(new java.io.File("C:\\zz_work\\java"));
85+ jFileChooser1.setDialogTitle("");
86+ jFileChooser1.setFileFilter(new FileNameExtensionFilter("TEXTファイル", "txt"));
87+
88+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
89+ setTitle("タグ検索");
90+
91+ jLabel1.setText(" URL:");
92+
93+ jBtnSearch.setText("検索");
94+ jBtnSearch.addActionListener(new java.awt.event.ActionListener() {
95+ public void actionPerformed(java.awt.event.ActionEvent evt) {
96+ jBtnSearchActionPerformed(evt);
97+ }
98+ });
99+
100+ jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("検索情報"));
101+
102+ jTable1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
103+ jTable1.getTableHeader().setReorderingAllowed(false);
104+
105+ org.jdesktop.beansbinding.ELProperty eLProperty = org.jdesktop.beansbinding.ELProperty.create("${serachDataList}");
106+ org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, jTable1);
107+ org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${item}"));
108+ columnBinding.setColumnName("項目名");
109+ columnBinding.setColumnClass(String.class);
110+ columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${htmltag}"));
111+ columnBinding.setColumnName("タグ");
112+ columnBinding.setColumnClass(String.class);
113+ columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${htmlid}"));
114+ columnBinding.setColumnName("ID");
115+ columnBinding.setColumnClass(String.class);
116+ columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${htmlclass}"));
117+ columnBinding.setColumnName("クラス");
118+ columnBinding.setColumnClass(String.class);
119+ columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${around}"));
120+ columnBinding.setColumnName("位置");
121+ columnBinding.setColumnClass(String.class);
122+ columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${regexp}"));
123+ columnBinding.setColumnName("抽出条件");
124+ columnBinding.setColumnClass(String.class);
125+ bindingGroup.addBinding(jTableBinding);
126+ jTableBinding.bind();
127+ jScrollPane1.setViewportView(jTable1);
128+
129+ jBtnRowIns.setText("行挿入");
130+ jBtnRowIns.addActionListener(new java.awt.event.ActionListener() {
131+ public void actionPerformed(java.awt.event.ActionEvent evt) {
132+ jBtnRowInsActionPerformed(evt);
133+ }
134+ });
135+
136+ jBtnRowDel.setText("行削除");
137+ jBtnRowDel.addActionListener(new java.awt.event.ActionListener() {
138+ public void actionPerformed(java.awt.event.ActionEvent evt) {
139+ jBtnRowDelActionPerformed(evt);
140+ }
141+ });
142+
143+ jBtnRowCpy.setText("行コピー");
144+ jBtnRowCpy.addActionListener(new java.awt.event.ActionListener() {
145+ public void actionPerformed(java.awt.event.ActionEvent evt) {
146+ jBtnRowCpyActionPerformed(evt);
147+ }
148+ });
149+
150+ javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
151+ jPanel1.setLayout(jPanel1Layout);
152+ jPanel1Layout.setHorizontalGroup(
153+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
154+ .addGroup(jPanel1Layout.createSequentialGroup()
155+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
156+ .addComponent(jBtnRowCpy)
157+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
158+ .addComponent(jBtnRowDel)
159+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
160+ .addComponent(jBtnRowIns))
161+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
162+ );
163+ jPanel1Layout.setVerticalGroup(
164+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
165+ .addGroup(jPanel1Layout.createSequentialGroup()
166+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
167+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
168+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
169+ .addComponent(jBtnRowDel)
170+ .addComponent(jBtnRowIns)
171+ .addComponent(jBtnRowCpy)))
172+ );
173+
174+ jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("検索結果"));
175+
176+ jTxtRtn.setColumns(20);
177+ jTxtRtn.setRows(5);
178+ jScrollPane2.setViewportView(jTxtRtn);
179+
180+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
181+ jPanel2.setLayout(jPanel2Layout);
182+ jPanel2Layout.setHorizontalGroup(
183+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
184+ .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 387, Short.MAX_VALUE)
185+ );
186+ jPanel2Layout.setVerticalGroup(
187+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
188+ .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 117, Short.MAX_VALUE)
189+ );
190+
191+ jMenu1.setText("ファイル");
192+
193+ jMenuLoad.setText("LOAD");
194+ jMenuLoad.addActionListener(new java.awt.event.ActionListener() {
195+ public void actionPerformed(java.awt.event.ActionEvent evt) {
196+ jMenuLoadActionPerformed(evt);
197+ }
198+ });
199+ jMenu1.add(jMenuLoad);
200+
201+ jMenuSave.setText("SAVE");
202+ jMenuSave.addActionListener(new java.awt.event.ActionListener() {
203+ public void actionPerformed(java.awt.event.ActionEvent evt) {
204+ jMenuSaveActionPerformed(evt);
205+ }
206+ });
207+ jMenu1.add(jMenuSave);
208+
209+ jMenuBar1.add(jMenu1);
210+
211+ jMenu2.setText("検索");
212+ jMenu2.addMouseListener(new java.awt.event.MouseAdapter() {
213+ public void mouseClicked(java.awt.event.MouseEvent evt) {
214+ jMenu2MouseClicked(evt);
215+ }
216+ });
217+ jMenuBar1.add(jMenu2);
218+
219+ setJMenuBar(jMenuBar1);
220+
221+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
222+ getContentPane().setLayout(layout);
223+ layout.setHorizontalGroup(
224+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
225+ .addGroup(layout.createSequentialGroup()
226+ .addComponent(jLabel1)
227+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
228+ .addComponent(jTxtUrl)
229+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
230+ .addComponent(jBtnSearch))
231+ .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
232+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
233+ );
234+ layout.setVerticalGroup(
235+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
236+ .addGroup(layout.createSequentialGroup()
237+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
238+ .addComponent(jLabel1)
239+ .addComponent(jTxtUrl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
240+ .addComponent(jBtnSearch))
241+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
242+ .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
243+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
244+ .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
245+ );
246+
247+ bindingGroup.bind();
248+
249+ pack();
250+ }// </editor-fold>//GEN-END:initComponents
251+
252+ private void jBtnRowInsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnRowInsActionPerformed
253+ int SelectedRow = jTable1.getSelectedRow();
254+ SearchData sdat = new SearchData();
255+
256+ if(SelectedRow >= 0) {
257+ this.serachDataList.add(SelectedRow, sdat);
258+ } else {
259+ this.serachDataList.add(sdat);
260+ }
261+ }//GEN-LAST:event_jBtnRowInsActionPerformed
262+
263+ private void jBtnRowDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnRowDelActionPerformed
264+ int SelectedRow = jTable1.getSelectedRow();
265+ if(!(SelectedRow < 0)) {
266+ this.serachDataList.remove(SelectedRow);
267+ }
268+ }//GEN-LAST:event_jBtnRowDelActionPerformed
269+
270+ private void jMenuLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuLoadActionPerformed
271+ int selected = jFileChooser1.showOpenDialog(this);
272+ if (selected == JFileChooser.APPROVE_OPTION) {
273+ File file = jFileChooser1.getSelectedFile();
274+ serachDataList.clear();
275+ sio.load(file);
276+ jTxtUrl.setText(sio.geturl());
277+ serachDataList.addAll(sio.getslist());
278+ }
279+ }//GEN-LAST:event_jMenuLoadActionPerformed
280+
281+ private void jMenuSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuSaveActionPerformed
282+ int selected = jFileChooser1.showSaveDialog(this);
283+ if (selected == JFileChooser.APPROVE_OPTION) {
284+ File file = jFileChooser1.getSelectedFile();
285+ sio.seturl(jTxtUrl.getText());
286+ sio.setslist(slist);
287+ sio.save(file);
288+ }
289+ }//GEN-LAST:event_jMenuSaveActionPerformed
290+
291+ private void jMenu2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenu2MouseClicked
292+ jTxtRtn.setText(null);
293+ HtmlParser par = new HtmlParser(jTxtUrl.getText());
294+ for (Object slist1 : slist) {
295+ String rtn = par.search((SearchData)slist1);
296+ jTxtRtn.append(rtn + "\r\n");
297+ }
298+ }//GEN-LAST:event_jMenu2MouseClicked
299+
300+ private void jBtnRowCpyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnRowCpyActionPerformed
301+ int SelectedRow = jTable1.getSelectedRow();
302+ if(SelectedRow >= 0) {
303+ SearchData SelectData = (SearchData)slist.get(SelectedRow);
304+ SearchData Cpydata = new SearchData(SelectData);
305+ this.serachDataList.add(SelectedRow, Cpydata);
306+ }
307+ }//GEN-LAST:event_jBtnRowCpyActionPerformed
308+
309+ private void jBtnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnSearchActionPerformed
310+ jTxtRtn.setText(null);
311+ HtmlParser par = new HtmlParser(jTxtUrl.getText());
312+ for (Object slist1 : slist) {
313+ String rtn = par.search((SearchData)slist1);
314+ jTxtRtn.append(rtn + "\r\n");
315+ }
316+ }//GEN-LAST:event_jBtnSearchActionPerformed
317+
318+ /**
319+ * @param args the command line arguments
320+ */
321+ public static void main(String args[]) {
322+ /* Set the Nimbus look and feel */
323+ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
324+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
325+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
326+ */
327+ try {
328+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
329+ if ("Nimbus".equals(info.getName())) {
330+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
331+ break;
332+ }
333+ }
334+ } catch (ClassNotFoundException ex) {
335+ java.util.logging.Logger.getLogger(HtmlSearch.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
336+ } catch (InstantiationException ex) {
337+ java.util.logging.Logger.getLogger(HtmlSearch.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
338+ } catch (IllegalAccessException ex) {
339+ java.util.logging.Logger.getLogger(HtmlSearch.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
340+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
341+ java.util.logging.Logger.getLogger(HtmlSearch.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
342+ }
343+ //</editor-fold>
344+
345+ /* Create and display the form */
346+ java.awt.EventQueue.invokeLater(new Runnable() {
347+ public void run() {
348+ new HtmlSearch().setVisible(true);
349+ }
350+ });
351+ }
352+
353+ // Variables declaration - do not modify//GEN-BEGIN:variables
354+ private javax.swing.JButton jBtnRowCpy;
355+ private javax.swing.JButton jBtnRowDel;
356+ private javax.swing.JButton jBtnRowIns;
357+ private javax.swing.JButton jBtnSearch;
358+ private javax.swing.JFileChooser jFileChooser1;
359+ private javax.swing.JLabel jLabel1;
360+ private javax.swing.JMenu jMenu1;
361+ private javax.swing.JMenu jMenu2;
362+ private javax.swing.JMenuBar jMenuBar1;
363+ private javax.swing.JMenuItem jMenuLoad;
364+ private javax.swing.JMenuItem jMenuSave;
365+ private javax.swing.JPanel jPanel1;
366+ private javax.swing.JPanel jPanel2;
367+ private javax.swing.JScrollPane jScrollPane1;
368+ private javax.swing.JScrollPane jScrollPane2;
369+ private javax.swing.JTable jTable1;
370+ private javax.swing.JTextArea jTxtRtn;
371+ private javax.swing.JTextField jTxtUrl;
372+ private org.jdesktop.beansbinding.BindingGroup bindingGroup;
373+ // End of variables declaration//GEN-END:variables
374+}
--- branches/b2/HtmlTest2/src/Lib/HtmlParserCallback.java (nonexistent)
+++ branches/b2/HtmlTest2/src/Lib/HtmlParserCallback.java (revision 59)
@@ -0,0 +1,217 @@
1+/*
2+ * Copyright (C) 2014 kgto.
3+ *
4+ * This library is free software; you can redistribute it and/or
5+ * modify it under the terms of the GNU Lesser General Public
6+ * License as published by the Free Software Foundation; either
7+ * version 2.1 of the License, or (at your option) any later version.
8+ *
9+ * This library is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+ * Lesser General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU Lesser General Public
15+ * License along with this library; if not, write to the Free Software
16+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17+ * MA 02110-1301 USA
18+ */
19+
20+package Lib;
21+
22+import java.util.ArrayList;
23+import java.util.HashMap;
24+import javax.swing.text.MutableAttributeSet;
25+import javax.swing.text.html.HTML;
26+import javax.swing.text.html.HTMLEditorKit;
27+
28+/**
29+ *
30+ * @author kgto
31+ */
32+public class HtmlParserCallback extends HTMLEditorKit.ParserCallback {
33+
34+ // デバック情報表示フラグ
35+ final boolean DEBUG = false;
36+
37+ // Tag毎の階層
38+ HashMap<HTML.Tag,Integer> tagMap = new HashMap<>();
39+
40+ // serach key 情報
41+ String keytag;
42+ String keyid;
43+ String keyclass;
44+
45+ // serach key と一致時の情報退避
46+ int bufCount = 0;
47+ HTML.Tag bufTag = null;
48+ MutableAttributeSet bufAttr = null;
49+ // serach key と一致時の情報格納ワーク
50+ StringBuilder bufText;
51+
52+ // serach key と一致時のデータ一覧
53+ ArrayList sData;
54+
55+ public HtmlParserCallback(SearchData skey) {
56+
57+ // キー情報展開
58+ keytag = skey.getHtmltag();
59+ keyid = skey.getHtmlid();
60+ keyclass = skey.getHtmlclass();
61+
62+ sData = new ArrayList();
63+ }
64+
65+ public ArrayList getrtnData() {
66+ return this.sData;
67+ }
68+
69+ @Override
70+ public void handleStartTag(HTML.Tag tag, MutableAttributeSet attr, int pos){
71+ // Tag毎の階層を保持
72+ int count = 1;
73+ if(tagMap.containsKey(tag)) {
74+ count = tagMap.get(tag);
75+ count++;
76+ }
77+ tagMap.put(tag, count);
78+
79+ //--- DEBUG OUT ---- start ---
80+ if(DEBUG) {
81+ StringBuffer strBuf = new StringBuffer();
82+ String ret;
83+
84+ strBuf.append(count).append(" : F : ").append(tag.toString());
85+ ret = (String)attr.getAttribute(HTML.Attribute.ID);
86+ if(ret != null) {
87+ strBuf.append(" [ID] ").append(ret);
88+ }
89+ ret = (String)attr.getAttribute(HTML.Attribute.CLASS);
90+ if(ret != null) {
91+ strBuf.append(" [CLASS] ").append(ret);
92+ }
93+ ret = (String)attr.getAttribute(HTML.Attribute.VALUE);
94+ if(ret != null) {
95+ strBuf.append(" [VALUE] ").append(ret);
96+ }
97+ System.out.println(strBuf);
98+ }
99+ //--- DEBUG OUT ---- end ---
100+
101+ if(bufCount == 0) {
102+ if(tag.toString().equals(keytag)) {
103+ if(serachAttribute(attr)) {
104+ bufCount = count;
105+ bufTag = tag;
106+ bufAttr = attr;
107+ bufText = new StringBuilder();
108+ }
109+ }
110+ }
111+ }
112+
113+ @Override
114+ public void handleEndTag(HTML.Tag tag, int pos){
115+ // Tag毎の階層を取得
116+ int count = 0;
117+ if(tagMap.containsKey(tag)) {
118+ count = tagMap.get(tag);
119+ }
120+
121+ //--- DEBUG OUT ---- start ---
122+ if(DEBUG) {
123+ System.out.println(count + " : E : " + tag.toString());
124+ }
125+ //--- DEBUG OUT ---- end ---
126+
127+ if(tag.equals(bufTag) && count <= bufCount) {
128+
129+ // 溜め込んだ一致情報をリストへ格納
130+ sData.add(bufText.toString());
131+
132+ // 退避したserach keyとの一致情報クリア
133+ bufCount = 0;
134+ bufTag = null;
135+ bufAttr = null;
136+ bufText = null;
137+ }
138+
139+ // Tag毎の階層減算
140+ tagMap.put(tag, --count);
141+ }
142+
143+ @Override
144+ public void handleText(char[] data, int pos){
145+ //--- DEBUG OUT ---- start ---
146+ if(DEBUG) {
147+ String dat = new String(data);
148+ System.out.println(dat);
149+ }
150+ //--- DEBUG OUT ---- end ---
151+ String splitchar = "\t";
152+
153+ //制御文字の削除
154+ // &nbsp; 0xa0
155+ StringBuilder buf = new StringBuilder();
156+ for(int i = 0; i < data.length; i++) {
157+ if(data[i] > 0x1f && data[i] != 0x7f && data[i] != 0xa0) {
158+ buf.append(data[i]);
159+ }
160+ }
161+
162+ if(bufCount > 0) {
163+ if(bufText.length() > 0) {
164+ bufText.append(splitchar);
165+ }
166+ bufText.append(buf.toString());
167+ }
168+
169+ }
170+
171+ @Override
172+ public void handleSimpleTag(HTML.Tag tag, MutableAttributeSet attr, int pos){
173+ //--- DEBUG OUT ---- start ---
174+ if(DEBUG) {
175+ StringBuffer strBuf = new StringBuffer();
176+ String ret;
177+ strBuf.append("x : S : ").append(tag.toString());
178+ ret = (String)attr.getAttribute(HTML.Attribute.VALUE);
179+ if(ret != null) {
180+ strBuf.append(" [VALUE] ").append(ret);
181+ }
182+ System.out.println(strBuf);
183+ }
184+ //--- DEBUG OUT ---- end ---
185+ }
186+
187+ /**
188+ * ページ内のID/CLASS値と検索キーを比較する.
189+ * @param attr ページのMutableAttributeSet
190+ * @return boolean 検索キーと一致の時、true
191+ */
192+ public boolean serachAttribute(MutableAttributeSet attr) {
193+ String currentID = (String)attr.getAttribute(HTML.Attribute.ID);
194+ String currentClass = (String)attr.getAttribute(HTML.Attribute.CLASS);
195+
196+ if(keyid.isEmpty() == false && keyclass.isEmpty() == false) {
197+ if(keyid.equals(currentID) && keyclass.equals(currentClass)) {
198+ return true;
199+ }
200+ }
201+
202+ if(keyid.isEmpty() == false) {
203+ if(keyid.equals(currentID)) {
204+ return true;
205+ }
206+ }
207+
208+ if(keyclass.isEmpty() == false) {
209+ if(keyclass.equals(currentClass)) {
210+ return true;
211+ }
212+ }
213+
214+ return false;
215+ }
216+
217+}
--- branches/b2/HtmlTest2/src/Lib/SearchData.java (nonexistent)
+++ branches/b2/HtmlTest2/src/Lib/SearchData.java (revision 59)
@@ -0,0 +1,95 @@
1+/*
2+ * Copyright (C) 2014 kgto.
3+ *
4+ * This library is free software; you can redistribute it and/or
5+ * modify it under the terms of the GNU Lesser General Public
6+ * License as published by the Free Software Foundation; either
7+ * version 2.1 of the License, or (at your option) any later version.
8+ *
9+ * This library is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+ * Lesser General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU Lesser General Public
15+ * License along with this library; if not, write to the Free Software
16+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17+ * MA 02110-1301 USA
18+ */
19+
20+package Lib;
21+
22+/**
23+ *
24+ * @author kgto
25+ */
26+public class SearchData {
27+
28+ private String item;
29+ private String htmltag;
30+ private String htmlid;
31+ private String htmlclass;
32+ private String around;
33+ private String regexp;
34+
35+ public SearchData() {
36+ }
37+
38+ public SearchData(SearchData dat) {
39+ this.item = dat.getitem();
40+ this.htmltag = dat.getHtmltag();
41+ this.htmlid = dat.getHtmlid();
42+ this.htmlclass = dat.getHtmlclass();
43+ this.around = dat.getaround();
44+ this.regexp = dat.getregexp();
45+ }
46+
47+ public void setitem(String item) {
48+ this.item = item;
49+ }
50+
51+ public void setHtmltag(String htmltag) {
52+ this.htmltag = htmltag;
53+ }
54+
55+ public void setHtmlid(String htmlid) {
56+ this.htmlid = htmlid;
57+ }
58+
59+ public void setHtmlclass(String htmlclass) {
60+ this.htmlclass = htmlclass;
61+ }
62+
63+ public void setaround(String around) {
64+ this.around = around;
65+ }
66+
67+ public void setregexp(String regexp) {
68+ this.regexp = regexp;
69+ }
70+
71+ public String getitem() {
72+ return item;
73+ }
74+
75+ public String getHtmltag() {
76+ return htmltag;
77+ }
78+
79+ public String getHtmlid() {
80+ return htmlid;
81+ }
82+
83+ public String getHtmlclass() {
84+ return htmlclass;
85+ }
86+
87+ public String getaround() {
88+ return around;
89+ }
90+
91+ public String getregexp() {
92+ return regexp;
93+ }
94+
95+}
--- branches/b2/HtmlTest2/src/Lib/HtmlParser.java (nonexistent)
+++ branches/b2/HtmlTest2/src/Lib/HtmlParser.java (revision 59)
@@ -0,0 +1,214 @@
1+/*
2+ * Copyright (C) 2014 kgto.
3+ *
4+ * This library is free software; you can redistribute it and/or
5+ * modify it under the terms of the GNU Lesser General Public
6+ * License as published by the Free Software Foundation; either
7+ * version 2.1 of the License, or (at your option) any later version.
8+ *
9+ * This library is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+ * Lesser General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU Lesser General Public
15+ * License along with this library; if not, write to the Free Software
16+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17+ * MA 02110-1301 USA
18+ */
19+
20+package Lib;
21+
22+import java.io.*;
23+import java.net.*;
24+import java.util.ArrayList;
25+import java.util.regex.Matcher;
26+import java.util.regex.Pattern;
27+import javax.swing.text.html.parser.ParserDelegator;
28+
29+/**
30+ *
31+ * @author kgto
32+ */
33+public class HtmlParser {
34+
35+ String UrlAdress;
36+ String pageData;
37+
38+ ArrayList sData;
39+
40+ // 作業ワーク
41+ String htmltag;
42+ String htmlid;
43+ String htmlclass;
44+
45+ public HtmlParser() {
46+ UrlAdress = null;
47+ }
48+
49+ public HtmlParser(String UrlAdress) {
50+ this.UrlAdress = UrlAdress;
51+ getpageData();
52+ }
53+
54+ public void seturl(String UrlAdress) {
55+ this.UrlAdress = UrlAdress;
56+ getpageData();
57+ }
58+
59+ /**
60+ * HTMLページ内検索.
61+ * 検索キーとして渡されたタグ,ID,クラスから、対象となるタグを探し出し、
62+ * around(タグ位置)として指定された箇所の文字列をregexp(正規表現)で指定された整形を
63+ * 行った結果を返す。<br>
64+ * aroundの初期値:0 検索キーとして未指定(未入力)の場合、最初(0)の文字列。<br>
65+ * regexpが指定(入力)ありの場合、正規表現にて整形を行う。<br>
66+ * 渡された検索キーに一致するタグが存在しなかった場合、NULLを返す。
67+ * @param skey 検索キーデータ(SearchData)
68+ * @return String 検索キーに一致するデータの文字列
69+ */
70+ public String search(SearchData skey) {
71+
72+ String item = skey.getitem();
73+ String regexp = skey.getregexp();
74+
75+ // htmlページ内を検索
76+ if(isHtmlkeyEq(skey) == false) {
77+ serchpageData(skey);
78+ }
79+
80+ // 検索位置を数値変換
81+ String around = skey.getaround();
82+ byte bAround = 0;
83+ if(around.length() > 0) {
84+ bAround = Byte.parseByte(around);
85+ }
86+
87+ if(bAround < sData.size()) {
88+ String str = (String)sData.get(bAround);
89+ String rtn = RegularExpression(str, regexp);
90+ return item + "\t" + rtn;
91+ }
92+ return null;
93+ }
94+
95+ /**
96+ * 直近のHTMLタグ/ID/CLASS値と引数の値を比較する.
97+ * @param skey HTMLタグ/ID/CLASSが格納された検索キー
98+ * @return boolean HTMLタグ/ID/CLASS値が一致する時、true
99+ */
100+ public boolean isHtmlkeyEq(SearchData skey) {
101+
102+ String stag = skey.getHtmltag();
103+ String sid = skey.getHtmlid();
104+ String sclass = skey.getHtmlclass();
105+
106+ boolean rtn = true;
107+
108+ // htmltag
109+ if(htmltag == null) {
110+ rtn = false;
111+ } else {
112+ if(htmltag.equals(stag) == false) {
113+ rtn = false;
114+ }
115+ }
116+
117+ // htmlid
118+ if(htmlid == null) {
119+ rtn = false;
120+ } else {
121+ if(htmlid.equals(sid) == false) {
122+ rtn = false;
123+ }
124+ }
125+
126+ // htmlclass
127+ if(htmlclass == null) {
128+ rtn = false;
129+ } else {
130+ if(htmlclass.equals(sclass) == false) {
131+ rtn = false;
132+ }
133+ }
134+
135+ if(!rtn) {
136+ htmltag = stag;
137+ htmlid = sid;
138+ htmlclass = sclass;
139+ }
140+
141+ return rtn;
142+ }
143+
144+ /**
145+ * 正規表現検索.
146+ * @param strdata
147+ * @param regexp
148+ * @return
149+ */
150+ public String RegularExpression(String strdata, String regexp) {
151+ String expdata = null;
152+
153+ //regexpのチェック
154+ if(regexp.isEmpty()) {
155+ expdata = strdata;
156+ return expdata;
157+ }
158+
159+ //正規表現検索
160+ Pattern ptn = Pattern.compile(regexp);
161+ Matcher matchdata = ptn.matcher(strdata);
162+ if (matchdata.find()) {
163+ if(matchdata.groupCount() >= 1) {
164+ expdata = matchdata.group(1);
165+ }
166+ }
167+ return expdata;
168+ }
169+
170+ /**
171+ * インターネット接続.
172+ */
173+ public void getpageData() {
174+ try {
175+ URL url = new URL(UrlAdress);
176+ HttpURLConnection con = (HttpURLConnection)url.openConnection();
177+ con.setRequestMethod("GET");
178+ BufferedReader reader = new BufferedReader(
179+ new InputStreamReader(con.getInputStream(), "utf-8"));
180+ String wkline;
181+ StringBuilder sb = new StringBuilder();
182+ while((wkline = reader.readLine()) != null) {
183+ sb.append(wkline).append("\n");
184+ }
185+ pageData = sb.toString();
186+
187+ con.disconnect();
188+ }
189+ catch(IOException e) {
190+ System.err.println(e);
191+ }
192+ }
193+
194+ /**
195+ * HTMLパーサ.
196+ * @param skey
197+ */
198+ public void serchpageData(SearchData skey){
199+ Reader reader;
200+ try {
201+ reader = new BufferedReader(new StringReader(pageData));
202+ HtmlParserCallback cb = new HtmlParserCallback(skey);
203+ ParserDelegator pd = new ParserDelegator();
204+ pd.parse(reader, cb, true);
205+ reader.close();
206+
207+ sData = cb.getrtnData();
208+
209+ } catch (IOException e) {
210+ System.err.println(e);
211+ }
212+ }
213+
214+}
--- branches/b2/HtmlTest2/nbproject/project.xml (nonexistent)
+++ branches/b2/HtmlTest2/nbproject/project.xml (revision 59)
@@ -0,0 +1,15 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<project xmlns="http://www.netbeans.org/ns/project/1">
3+ <type>org.netbeans.modules.java.j2seproject</type>
4+ <configuration>
5+ <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
6+ <name>HtmlTest2</name>
7+ <source-roots>
8+ <root id="src.dir"/>
9+ </source-roots>
10+ <test-roots>
11+ <root id="test.src.dir"/>
12+ </test-roots>
13+ </data>
14+ </configuration>
15+</project>
--- branches/b2/HtmlTest2/nbproject/build-impl.xml (nonexistent)
+++ branches/b2/HtmlTest2/nbproject/build-impl.xml (revision 59)
@@ -0,0 +1,1413 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<!--
3+*** GENERATED FROM project.xml - DO NOT EDIT ***
4+*** EDIT ../build.xml INSTEAD ***
5+
6+For the purpose of easier reading the script
7+is divided into following sections:
8+
9+ - initialization
10+ - compilation
11+ - jar
12+ - execution
13+ - debugging
14+ - javadoc
15+ - test compilation
16+ - test execution
17+ - test debugging
18+ - applet
19+ - cleanup
20+
21+ -->
22+<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="HtmlTest2-impl">
23+ <fail message="Please build using Ant 1.8.0 or higher.">
24+ <condition>
25+ <not>
26+ <antversion atleast="1.8.0"/>
27+ </not>
28+ </condition>
29+ </fail>
30+ <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
31+ <!--
32+ ======================
33+ INITIALIZATION SECTION
34+ ======================
35+ -->
36+ <target name="-pre-init">
37+ <!-- Empty placeholder for easier customization. -->
38+ <!-- You can override this target in the ../build.xml file. -->
39+ </target>
40+ <target depends="-pre-init" name="-init-private">
41+ <property file="nbproject/private/config.properties"/>
42+ <property file="nbproject/private/configs/${config}.properties"/>
43+ <property file="nbproject/private/private.properties"/>
44+ </target>
45+ <target depends="-pre-init,-init-private" name="-init-user">
46+ <property file="${user.properties.file}"/>
47+ <!-- The two properties below are usually overridden -->
48+ <!-- by the active platform. Just a fallback. -->
49+ <property name="default.javac.source" value="1.4"/>
50+ <property name="default.javac.target" value="1.4"/>
51+ </target>
52+ <target depends="-pre-init,-init-private,-init-user" name="-init-project">
53+ <property file="nbproject/configs/${config}.properties"/>
54+ <property file="nbproject/project.properties"/>
55+ </target>
56+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
57+ <property name="platform.java" value="${java.home}/bin/java"/>
58+ <available file="${manifest.file}" property="manifest.available"/>
59+ <condition property="splashscreen.available">
60+ <and>
61+ <not>
62+ <equals arg1="${application.splash}" arg2="" trim="true"/>
63+ </not>
64+ <available file="${application.splash}"/>
65+ </and>
66+ </condition>
67+ <condition property="main.class.available">
68+ <and>
69+ <isset property="main.class"/>
70+ <not>
71+ <equals arg1="${main.class}" arg2="" trim="true"/>
72+ </not>
73+ </and>
74+ </condition>
75+ <condition property="profile.available">
76+ <and>
77+ <isset property="javac.profile"/>
78+ <length length="0" string="${javac.profile}" when="greater"/>
79+ <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
80+ </and>
81+ </condition>
82+ <condition property="do.archive">
83+ <or>
84+ <not>
85+ <istrue value="${jar.archive.disabled}"/>
86+ </not>
87+ <istrue value="${not.archive.disabled}"/>
88+ </or>
89+ </condition>
90+ <condition property="do.mkdist">
91+ <and>
92+ <isset property="do.archive"/>
93+ <isset property="libs.CopyLibs.classpath"/>
94+ <not>
95+ <istrue value="${mkdist.disabled}"/>
96+ </not>
97+ </and>
98+ </condition>
99+ <condition property="do.archive+manifest.available">
100+ <and>
101+ <isset property="manifest.available"/>
102+ <istrue value="${do.archive}"/>
103+ </and>
104+ </condition>
105+ <condition property="do.archive+main.class.available">
106+ <and>
107+ <isset property="main.class.available"/>
108+ <istrue value="${do.archive}"/>
109+ </and>
110+ </condition>
111+ <condition property="do.archive+splashscreen.available">
112+ <and>
113+ <isset property="splashscreen.available"/>
114+ <istrue value="${do.archive}"/>
115+ </and>
116+ </condition>
117+ <condition property="do.archive+profile.available">
118+ <and>
119+ <isset property="profile.available"/>
120+ <istrue value="${do.archive}"/>
121+ </and>
122+ </condition>
123+ <condition property="have.tests">
124+ <or>
125+ <available file="${test.src.dir}"/>
126+ </or>
127+ </condition>
128+ <condition property="have.sources">
129+ <or>
130+ <available file="${src.dir}"/>
131+ </or>
132+ </condition>
133+ <condition property="netbeans.home+have.tests">
134+ <and>
135+ <isset property="netbeans.home"/>
136+ <isset property="have.tests"/>
137+ </and>
138+ </condition>
139+ <condition property="no.javadoc.preview">
140+ <and>
141+ <isset property="javadoc.preview"/>
142+ <isfalse value="${javadoc.preview}"/>
143+ </and>
144+ </condition>
145+ <property name="run.jvmargs" value=""/>
146+ <property name="run.jvmargs.ide" value=""/>
147+ <property name="javac.compilerargs" value=""/>
148+ <property name="work.dir" value="${basedir}"/>
149+ <condition property="no.deps">
150+ <and>
151+ <istrue value="${no.dependencies}"/>
152+ </and>
153+ </condition>
154+ <property name="javac.debug" value="true"/>
155+ <property name="javadoc.preview" value="true"/>
156+ <property name="application.args" value=""/>
157+ <property name="source.encoding" value="${file.encoding}"/>
158+ <property name="runtime.encoding" value="${source.encoding}"/>
159+ <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
160+ <and>
161+ <isset property="javadoc.encoding"/>
162+ <not>
163+ <equals arg1="${javadoc.encoding}" arg2=""/>
164+ </not>
165+ </and>
166+ </condition>
167+ <property name="javadoc.encoding.used" value="${source.encoding}"/>
168+ <property name="includes" value="**"/>
169+ <property name="excludes" value=""/>
170+ <property name="do.depend" value="false"/>
171+ <condition property="do.depend.true">
172+ <istrue value="${do.depend}"/>
173+ </condition>
174+ <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
175+ <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
176+ <and>
177+ <isset property="endorsed.classpath"/>
178+ <not>
179+ <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
180+ </not>
181+ </and>
182+ </condition>
183+ <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
184+ <isset property="profile.available"/>
185+ </condition>
186+ <condition else="false" property="jdkBug6558476">
187+ <and>
188+ <matches pattern="1\.[56]" string="${java.specification.version}"/>
189+ <not>
190+ <os family="unix"/>
191+ </not>
192+ </and>
193+ </condition>
194+ <property name="javac.fork" value="${jdkBug6558476}"/>
195+ <property name="jar.index" value="false"/>
196+ <property name="jar.index.metainf" value="${jar.index}"/>
197+ <property name="copylibs.rebase" value="true"/>
198+ <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
199+ <condition property="junit.available">
200+ <or>
201+ <available classname="org.junit.Test" classpath="${run.test.classpath}"/>
202+ <available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
203+ </or>
204+ </condition>
205+ <condition property="testng.available">
206+ <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
207+ </condition>
208+ <condition property="junit+testng.available">
209+ <and>
210+ <istrue value="${junit.available}"/>
211+ <istrue value="${testng.available}"/>
212+ </and>
213+ </condition>
214+ <condition else="testng" property="testng.mode" value="mixed">
215+ <istrue value="${junit+testng.available}"/>
216+ </condition>
217+ <condition else="" property="testng.debug.mode" value="-mixed">
218+ <istrue value="${junit+testng.available}"/>
219+ </condition>
220+ </target>
221+ <target name="-post-init">
222+ <!-- Empty placeholder for easier customization. -->
223+ <!-- You can override this target in the ../build.xml file. -->
224+ </target>
225+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
226+ <fail unless="src.dir">Must set src.dir</fail>
227+ <fail unless="test.src.dir">Must set test.src.dir</fail>
228+ <fail unless="build.dir">Must set build.dir</fail>
229+ <fail unless="dist.dir">Must set dist.dir</fail>
230+ <fail unless="build.classes.dir">Must set build.classes.dir</fail>
231+ <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
232+ <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
233+ <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
234+ <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
235+ <fail unless="dist.jar">Must set dist.jar</fail>
236+ </target>
237+ <target name="-init-macrodef-property">
238+ <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
239+ <attribute name="name"/>
240+ <attribute name="value"/>
241+ <sequential>
242+ <property name="@{name}" value="${@{value}}"/>
243+ </sequential>
244+ </macrodef>
245+ </target>
246+ <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
247+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
248+ <attribute default="${src.dir}" name="srcdir"/>
249+ <attribute default="${build.classes.dir}" name="destdir"/>
250+ <attribute default="${javac.classpath}" name="classpath"/>
251+ <attribute default="${javac.processorpath}" name="processorpath"/>
252+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
253+ <attribute default="${includes}" name="includes"/>
254+ <attribute default="${excludes}" name="excludes"/>
255+ <attribute default="${javac.debug}" name="debug"/>
256+ <attribute default="${empty.dir}" name="sourcepath"/>
257+ <attribute default="${empty.dir}" name="gensrcdir"/>
258+ <element name="customize" optional="true"/>
259+ <sequential>
260+ <property location="${build.dir}/empty" name="empty.dir"/>
261+ <mkdir dir="${empty.dir}"/>
262+ <mkdir dir="@{apgeneratedsrcdir}"/>
263+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
264+ <src>
265+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
266+ <include name="*"/>
267+ </dirset>
268+ </src>
269+ <classpath>
270+ <path path="@{classpath}"/>
271+ </classpath>
272+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
273+ <compilerarg line="${javac.profile.cmd.line.arg}"/>
274+ <compilerarg line="${javac.compilerargs}"/>
275+ <compilerarg value="-processorpath"/>
276+ <compilerarg path="@{processorpath}:${empty.dir}"/>
277+ <compilerarg line="${ap.processors.internal}"/>
278+ <compilerarg line="${annotation.processing.processor.options}"/>
279+ <compilerarg value="-s"/>
280+ <compilerarg path="@{apgeneratedsrcdir}"/>
281+ <compilerarg line="${ap.proc.none.internal}"/>
282+ <customize/>
283+ </javac>
284+ </sequential>
285+ </macrodef>
286+ </target>
287+ <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
288+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
289+ <attribute default="${src.dir}" name="srcdir"/>
290+ <attribute default="${build.classes.dir}" name="destdir"/>
291+ <attribute default="${javac.classpath}" name="classpath"/>
292+ <attribute default="${javac.processorpath}" name="processorpath"/>
293+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
294+ <attribute default="${includes}" name="includes"/>
295+ <attribute default="${excludes}" name="excludes"/>
296+ <attribute default="${javac.debug}" name="debug"/>
297+ <attribute default="${empty.dir}" name="sourcepath"/>
298+ <attribute default="${empty.dir}" name="gensrcdir"/>
299+ <element name="customize" optional="true"/>
300+ <sequential>
301+ <property location="${build.dir}/empty" name="empty.dir"/>
302+ <mkdir dir="${empty.dir}"/>
303+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
304+ <src>
305+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
306+ <include name="*"/>
307+ </dirset>
308+ </src>
309+ <classpath>
310+ <path path="@{classpath}"/>
311+ </classpath>
312+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
313+ <compilerarg line="${javac.profile.cmd.line.arg}"/>
314+ <compilerarg line="${javac.compilerargs}"/>
315+ <customize/>
316+ </javac>
317+ </sequential>
318+ </macrodef>
319+ </target>
320+ <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
321+ <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
322+ <attribute default="${src.dir}" name="srcdir"/>
323+ <attribute default="${build.classes.dir}" name="destdir"/>
324+ <attribute default="${javac.classpath}" name="classpath"/>
325+ <sequential>
326+ <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
327+ <classpath>
328+ <path path="@{classpath}"/>
329+ </classpath>
330+ </depend>
331+ </sequential>
332+ </macrodef>
333+ <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
334+ <attribute default="${build.classes.dir}" name="destdir"/>
335+ <sequential>
336+ <fail unless="javac.includes">Must set javac.includes</fail>
337+ <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
338+ <path>
339+ <filelist dir="@{destdir}" files="${javac.includes}"/>
340+ </path>
341+ <globmapper from="*.java" to="*.class"/>
342+ </pathconvert>
343+ <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
344+ <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
345+ <delete>
346+ <files includesfile="${javac.includesfile.binary}"/>
347+ </delete>
348+ <delete>
349+ <fileset file="${javac.includesfile.binary}"/>
350+ </delete>
351+ </sequential>
352+ </macrodef>
353+ </target>
354+ <target if="${junit.available}" name="-init-macrodef-junit-init">
355+ <condition else="false" property="nb.junit.batch" value="true">
356+ <and>
357+ <istrue value="${junit.available}"/>
358+ <not>
359+ <isset property="test.method"/>
360+ </not>
361+ </and>
362+ </condition>
363+ <condition else="false" property="nb.junit.single" value="true">
364+ <and>
365+ <istrue value="${junit.available}"/>
366+ <isset property="test.method"/>
367+ </and>
368+ </condition>
369+ </target>
370+ <target name="-init-test-properties">
371+ <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
372+ <property name="test.binarytestincludes" value=""/>
373+ <property name="test.binaryexcludes" value=""/>
374+ </target>
375+ <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
376+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
377+ <attribute default="${includes}" name="includes"/>
378+ <attribute default="${excludes}" name="excludes"/>
379+ <attribute default="**" name="testincludes"/>
380+ <attribute default="" name="testmethods"/>
381+ <element name="customize" optional="true"/>
382+ <sequential>
383+ <property name="junit.forkmode" value="perTest"/>
384+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
385+ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
386+ <syspropertyset>
387+ <propertyref prefix="test-sys-prop."/>
388+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
389+ </syspropertyset>
390+ <formatter type="brief" usefile="false"/>
391+ <formatter type="xml"/>
392+ <jvmarg value="-ea"/>
393+ <customize/>
394+ </junit>
395+ </sequential>
396+ </macrodef>
397+ </target>
398+ <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
399+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
400+ <attribute default="${includes}" name="includes"/>
401+ <attribute default="${excludes}" name="excludes"/>
402+ <attribute default="**" name="testincludes"/>
403+ <attribute default="" name="testmethods"/>
404+ <element name="customize" optional="true"/>
405+ <sequential>
406+ <property name="junit.forkmode" value="perTest"/>
407+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
408+ <batchtest todir="${build.test.results.dir}">
409+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
410+ <filename name="@{testincludes}"/>
411+ </fileset>
412+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
413+ <filename name="${test.binarytestincludes}"/>
414+ </fileset>
415+ </batchtest>
416+ <syspropertyset>
417+ <propertyref prefix="test-sys-prop."/>
418+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
419+ </syspropertyset>
420+ <formatter type="brief" usefile="false"/>
421+ <formatter type="xml"/>
422+ <jvmarg value="-ea"/>
423+ <customize/>
424+ </junit>
425+ </sequential>
426+ </macrodef>
427+ </target>
428+ <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
429+ <target if="${testng.available}" name="-init-macrodef-testng">
430+ <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
431+ <attribute default="${includes}" name="includes"/>
432+ <attribute default="${excludes}" name="excludes"/>
433+ <attribute default="**" name="testincludes"/>
434+ <attribute default="" name="testmethods"/>
435+ <element name="customize" optional="true"/>
436+ <sequential>
437+ <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
438+ <isset property="test.method"/>
439+ </condition>
440+ <union id="test.set">
441+ <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
442+ <filename name="@{testincludes}"/>
443+ </fileset>
444+ </union>
445+ <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
446+ <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="HtmlTest2" testname="TestNG tests" workingDir="${work.dir}">
447+ <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
448+ <propertyset>
449+ <propertyref prefix="test-sys-prop."/>
450+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
451+ </propertyset>
452+ <customize/>
453+ </testng>
454+ </sequential>
455+ </macrodef>
456+ </target>
457+ <target name="-init-macrodef-test-impl">
458+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
459+ <attribute default="${includes}" name="includes"/>
460+ <attribute default="${excludes}" name="excludes"/>
461+ <attribute default="**" name="testincludes"/>
462+ <attribute default="" name="testmethods"/>
463+ <element implicit="true" name="customize" optional="true"/>
464+ <sequential>
465+ <echo>No tests executed.</echo>
466+ </sequential>
467+ </macrodef>
468+ </target>
469+ <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
470+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
471+ <attribute default="${includes}" name="includes"/>
472+ <attribute default="${excludes}" name="excludes"/>
473+ <attribute default="**" name="testincludes"/>
474+ <attribute default="" name="testmethods"/>
475+ <element implicit="true" name="customize" optional="true"/>
476+ <sequential>
477+ <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
478+ <customize/>
479+ </j2seproject3:junit>
480+ </sequential>
481+ </macrodef>
482+ </target>
483+ <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
484+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
485+ <attribute default="${includes}" name="includes"/>
486+ <attribute default="${excludes}" name="excludes"/>
487+ <attribute default="**" name="testincludes"/>
488+ <attribute default="" name="testmethods"/>
489+ <element implicit="true" name="customize" optional="true"/>
490+ <sequential>
491+ <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
492+ <customize/>
493+ </j2seproject3:testng>
494+ </sequential>
495+ </macrodef>
496+ </target>
497+ <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
498+ <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
499+ <attribute default="${includes}" name="includes"/>
500+ <attribute default="${excludes}" name="excludes"/>
501+ <attribute default="**" name="testincludes"/>
502+ <attribute default="" name="testmethods"/>
503+ <sequential>
504+ <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
505+ <customize>
506+ <classpath>
507+ <path path="${run.test.classpath}"/>
508+ </classpath>
509+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
510+ <jvmarg line="${run.jvmargs}"/>
511+ <jvmarg line="${run.jvmargs.ide}"/>
512+ </customize>
513+ </j2seproject3:test-impl>
514+ </sequential>
515+ </macrodef>
516+ </target>
517+ <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
518+ <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
519+ <attribute default="${includes}" name="includes"/>
520+ <attribute default="${excludes}" name="excludes"/>
521+ <attribute default="**" name="testincludes"/>
522+ <attribute default="" name="testmethods"/>
523+ <element name="customize" optional="true"/>
524+ <sequential>
525+ <property name="junit.forkmode" value="perTest"/>
526+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
527+ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
528+ <syspropertyset>
529+ <propertyref prefix="test-sys-prop."/>
530+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
531+ </syspropertyset>
532+ <formatter type="brief" usefile="false"/>
533+ <formatter type="xml"/>
534+ <jvmarg value="-ea"/>
535+ <jvmarg line="${debug-args-line}"/>
536+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
537+ <customize/>
538+ </junit>
539+ </sequential>
540+ </macrodef>
541+ </target>
542+ <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
543+ <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
544+ <attribute default="${includes}" name="includes"/>
545+ <attribute default="${excludes}" name="excludes"/>
546+ <attribute default="**" name="testincludes"/>
547+ <attribute default="" name="testmethods"/>
548+ <element name="customize" optional="true"/>
549+ <sequential>
550+ <property name="junit.forkmode" value="perTest"/>
551+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
552+ <batchtest todir="${build.test.results.dir}">
553+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
554+ <filename name="@{testincludes}"/>
555+ </fileset>
556+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
557+ <filename name="${test.binarytestincludes}"/>
558+ </fileset>
559+ </batchtest>
560+ <syspropertyset>
561+ <propertyref prefix="test-sys-prop."/>
562+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
563+ </syspropertyset>
564+ <formatter type="brief" usefile="false"/>
565+ <formatter type="xml"/>
566+ <jvmarg value="-ea"/>
567+ <jvmarg line="${debug-args-line}"/>
568+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
569+ <customize/>
570+ </junit>
571+ </sequential>
572+ </macrodef>
573+ </target>
574+ <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
575+ <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
576+ <attribute default="${includes}" name="includes"/>
577+ <attribute default="${excludes}" name="excludes"/>
578+ <attribute default="**" name="testincludes"/>
579+ <attribute default="" name="testmethods"/>
580+ <element implicit="true" name="customize" optional="true"/>
581+ <sequential>
582+ <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
583+ <customize/>
584+ </j2seproject3:junit-debug>
585+ </sequential>
586+ </macrodef>
587+ </target>
588+ <target if="${testng.available}" name="-init-macrodef-testng-debug">
589+ <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
590+ <attribute default="${main.class}" name="testClass"/>
591+ <attribute default="" name="testMethod"/>
592+ <element name="customize2" optional="true"/>
593+ <sequential>
594+ <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
595+ <isset property="test.method"/>
596+ </condition>
597+ <condition else="-suitename HtmlTest2 -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
598+ <matches pattern=".*\.xml" string="@{testClass}"/>
599+ </condition>
600+ <delete dir="${build.test.results.dir}" quiet="true"/>
601+ <mkdir dir="${build.test.results.dir}"/>
602+ <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
603+ <customize>
604+ <customize2/>
605+ <jvmarg value="-ea"/>
606+ <arg line="${testng.debug.mode}"/>
607+ <arg line="-d ${build.test.results.dir}"/>
608+ <arg line="-listener org.testng.reporters.VerboseReporter"/>
609+ <arg line="${testng.cmd.args}"/>
610+ </customize>
611+ </j2seproject3:debug>
612+ </sequential>
613+ </macrodef>
614+ </target>
615+ <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
616+ <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
617+ <attribute default="${main.class}" name="testClass"/>
618+ <attribute default="" name="testMethod"/>
619+ <element implicit="true" name="customize2" optional="true"/>
620+ <sequential>
621+ <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
622+ <customize2/>
623+ </j2seproject3:testng-debug>
624+ </sequential>
625+ </macrodef>
626+ </target>
627+ <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
628+ <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
629+ <attribute default="${includes}" name="includes"/>
630+ <attribute default="${excludes}" name="excludes"/>
631+ <attribute default="**" name="testincludes"/>
632+ <attribute default="" name="testmethods"/>
633+ <attribute default="${main.class}" name="testClass"/>
634+ <attribute default="" name="testMethod"/>
635+ <sequential>
636+ <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
637+ <customize>
638+ <classpath>
639+ <path path="${run.test.classpath}"/>
640+ </classpath>
641+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
642+ <jvmarg line="${run.jvmargs}"/>
643+ <jvmarg line="${run.jvmargs.ide}"/>
644+ </customize>
645+ </j2seproject3:test-debug-impl>
646+ </sequential>
647+ </macrodef>
648+ </target>
649+ <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
650+ <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
651+ <attribute default="${includes}" name="includes"/>
652+ <attribute default="${excludes}" name="excludes"/>
653+ <attribute default="**" name="testincludes"/>
654+ <attribute default="" name="testmethods"/>
655+ <attribute default="${main.class}" name="testClass"/>
656+ <attribute default="" name="testMethod"/>
657+ <sequential>
658+ <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
659+ <customize2>
660+ <syspropertyset>
661+ <propertyref prefix="test-sys-prop."/>
662+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
663+ </syspropertyset>
664+ </customize2>
665+ </j2seproject3:testng-debug-impl>
666+ </sequential>
667+ </macrodef>
668+ </target>
669+ <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
670+ <!--
671+ pre NB7.2 profiling section; consider it deprecated
672+ -->
673+ <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
674+ <target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
675+ <!-- Empty placeholder for easier customization. -->
676+ <!-- You can override this target in the ../build.xml file. -->
677+ </target>
678+ <target if="profiler.info.jvmargs.agent" name="-profile-post-init">
679+ <!-- Empty placeholder for easier customization. -->
680+ <!-- You can override this target in the ../build.xml file. -->
681+ </target>
682+ <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
683+ <macrodef name="resolve">
684+ <attribute name="name"/>
685+ <attribute name="value"/>
686+ <sequential>
687+ <property name="@{name}" value="${env.@{value}}"/>
688+ </sequential>
689+ </macrodef>
690+ <macrodef name="profile">
691+ <attribute default="${main.class}" name="classname"/>
692+ <element name="customize" optional="true"/>
693+ <sequential>
694+ <property environment="env"/>
695+ <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/>
696+ <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}">
697+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
698+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
699+ <jvmarg line="${profiler.info.jvmargs}"/>
700+ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
701+ <arg line="${application.args}"/>
702+ <classpath>
703+ <path path="${run.classpath}"/>
704+ </classpath>
705+ <syspropertyset>
706+ <propertyref prefix="run-sys-prop."/>
707+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
708+ </syspropertyset>
709+ <customize/>
710+ </java>
711+ </sequential>
712+ </macrodef>
713+ </target>
714+ <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
715+ <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
716+ <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
717+ </target>
718+ <!--
719+ end of pre NB7.2 profiling section
720+ -->
721+ <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
722+ <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
723+ <attribute default="${main.class}" name="name"/>
724+ <attribute default="${debug.classpath}" name="classpath"/>
725+ <attribute default="" name="stopclassname"/>
726+ <sequential>
727+ <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
728+ <classpath>
729+ <path path="@{classpath}"/>
730+ </classpath>
731+ </nbjpdastart>
732+ </sequential>
733+ </macrodef>
734+ <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
735+ <attribute default="${build.classes.dir}" name="dir"/>
736+ <sequential>
737+ <nbjpdareload>
738+ <fileset dir="@{dir}" includes="${fix.classes}">
739+ <include name="${fix.includes}*.class"/>
740+ </fileset>
741+ </nbjpdareload>
742+ </sequential>
743+ </macrodef>
744+ </target>
745+ <target name="-init-debug-args">
746+ <property name="version-output" value="java version &quot;${ant.java.version}"/>
747+ <condition property="have-jdk-older-than-1.4">
748+ <or>
749+ <contains string="${version-output}" substring="java version &quot;1.0"/>
750+ <contains string="${version-output}" substring="java version &quot;1.1"/>
751+ <contains string="${version-output}" substring="java version &quot;1.2"/>
752+ <contains string="${version-output}" substring="java version &quot;1.3"/>
753+ </or>
754+ </condition>
755+ <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
756+ <istrue value="${have-jdk-older-than-1.4}"/>
757+ </condition>
758+ <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
759+ <os family="windows"/>
760+ </condition>
761+ <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
762+ <isset property="debug.transport"/>
763+ </condition>
764+ </target>
765+ <target depends="-init-debug-args" name="-init-macrodef-debug">
766+ <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
767+ <attribute default="${main.class}" name="classname"/>
768+ <attribute default="${debug.classpath}" name="classpath"/>
769+ <element name="customize" optional="true"/>
770+ <sequential>
771+ <java classname="@{classname}" dir="${work.dir}" fork="true">
772+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
773+ <jvmarg line="${debug-args-line}"/>
774+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
775+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
776+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
777+ <jvmarg line="${run.jvmargs}"/>
778+ <jvmarg line="${run.jvmargs.ide}"/>
779+ <classpath>
780+ <path path="@{classpath}"/>
781+ </classpath>
782+ <syspropertyset>
783+ <propertyref prefix="run-sys-prop."/>
784+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
785+ </syspropertyset>
786+ <customize/>
787+ </java>
788+ </sequential>
789+ </macrodef>
790+ </target>
791+ <target name="-init-macrodef-java">
792+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
793+ <attribute default="${main.class}" name="classname"/>
794+ <attribute default="${run.classpath}" name="classpath"/>
795+ <attribute default="jvm" name="jvm"/>
796+ <element name="customize" optional="true"/>
797+ <sequential>
798+ <java classname="@{classname}" dir="${work.dir}" fork="true">
799+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
800+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
801+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
802+ <jvmarg line="${run.jvmargs}"/>
803+ <jvmarg line="${run.jvmargs.ide}"/>
804+ <classpath>
805+ <path path="@{classpath}"/>
806+ </classpath>
807+ <syspropertyset>
808+ <propertyref prefix="run-sys-prop."/>
809+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
810+ </syspropertyset>
811+ <customize/>
812+ </java>
813+ </sequential>
814+ </macrodef>
815+ </target>
816+ <target name="-init-macrodef-copylibs">
817+ <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
818+ <attribute default="${manifest.file}" name="manifest"/>
819+ <element name="customize" optional="true"/>
820+ <sequential>
821+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
822+ <pathconvert property="run.classpath.without.build.classes.dir">
823+ <path path="${run.classpath}"/>
824+ <map from="${build.classes.dir.resolved}" to=""/>
825+ </pathconvert>
826+ <pathconvert pathsep=" " property="jar.classpath">
827+ <path path="${run.classpath.without.build.classes.dir}"/>
828+ <chainedmapper>
829+ <flattenmapper/>
830+ <filtermapper>
831+ <replacestring from=" " to="%20"/>
832+ </filtermapper>
833+ <globmapper from="*" to="lib/*"/>
834+ </chainedmapper>
835+ </pathconvert>
836+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
837+ <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
838+ <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
839+ <manifest>
840+ <attribute name="Class-Path" value="${jar.classpath}"/>
841+ <customize/>
842+ </manifest>
843+ </copylibs>
844+ </sequential>
845+ </macrodef>
846+ </target>
847+ <target name="-init-presetdef-jar">
848+ <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
849+ <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
850+ <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
851+ </jar>
852+ </presetdef>
853+ </target>
854+ <target name="-init-ap-cmdline-properties">
855+ <property name="annotation.processing.enabled" value="true"/>
856+ <property name="annotation.processing.processors.list" value=""/>
857+ <property name="annotation.processing.processor.options" value=""/>
858+ <property name="annotation.processing.run.all.processors" value="true"/>
859+ <property name="javac.processorpath" value="${javac.classpath}"/>
860+ <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
861+ <condition property="ap.supported.internal" value="true">
862+ <not>
863+ <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
864+ </not>
865+ </condition>
866+ </target>
867+ <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
868+ <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
869+ <isfalse value="${annotation.processing.run.all.processors}"/>
870+ </condition>
871+ <condition else="" property="ap.proc.none.internal" value="-proc:none">
872+ <isfalse value="${annotation.processing.enabled}"/>
873+ </condition>
874+ </target>
875+ <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
876+ <property name="ap.cmd.line.internal" value=""/>
877+ </target>
878+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
879+ <!--
880+ ===================
881+ COMPILATION SECTION
882+ ===================
883+ -->
884+ <target name="-deps-jar-init" unless="built-jar.properties">
885+ <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
886+ <delete file="${built-jar.properties}" quiet="true"/>
887+ </target>
888+ <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
889+ <echo level="warn" message="Cycle detected: HtmlTest2 was already built"/>
890+ </target>
891+ <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
892+ <mkdir dir="${build.dir}"/>
893+ <touch file="${built-jar.properties}" verbose="false"/>
894+ <property file="${built-jar.properties}" prefix="already.built.jar."/>
895+ <antcall target="-warn-already-built-jar"/>
896+ <propertyfile file="${built-jar.properties}">
897+ <entry key="${basedir}" value=""/>
898+ </propertyfile>
899+ </target>
900+ <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
901+ <target depends="init" name="-check-automatic-build">
902+ <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
903+ </target>
904+ <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
905+ <antcall target="clean"/>
906+ </target>
907+ <target depends="init,deps-jar" name="-pre-pre-compile">
908+ <mkdir dir="${build.classes.dir}"/>
909+ </target>
910+ <target name="-pre-compile">
911+ <!-- Empty placeholder for easier customization. -->
912+ <!-- You can override this target in the ../build.xml file. -->
913+ </target>
914+ <target if="do.depend.true" name="-compile-depend">
915+ <pathconvert property="build.generated.subdirs">
916+ <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
917+ <include name="*"/>
918+ </dirset>
919+ </pathconvert>
920+ <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
921+ </target>
922+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
923+ <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
924+ <copy todir="${build.classes.dir}">
925+ <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
926+ </copy>
927+ </target>
928+ <target if="has.persistence.xml" name="-copy-persistence-xml">
929+ <mkdir dir="${build.classes.dir}/META-INF"/>
930+ <copy todir="${build.classes.dir}/META-INF">
931+ <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
932+ </copy>
933+ </target>
934+ <target name="-post-compile">
935+ <!-- Empty placeholder for easier customization. -->
936+ <!-- You can override this target in the ../build.xml file. -->
937+ </target>
938+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
939+ <target name="-pre-compile-single">
940+ <!-- Empty placeholder for easier customization. -->
941+ <!-- You can override this target in the ../build.xml file. -->
942+ </target>
943+ <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
944+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
945+ <j2seproject3:force-recompile/>
946+ <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
947+ </target>
948+ <target name="-post-compile-single">
949+ <!-- Empty placeholder for easier customization. -->
950+ <!-- You can override this target in the ../build.xml file. -->
951+ </target>
952+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
953+ <!--
954+ ====================
955+ JAR BUILDING SECTION
956+ ====================
957+ -->
958+ <target depends="init" name="-pre-pre-jar">
959+ <dirname file="${dist.jar}" property="dist.jar.dir"/>
960+ <mkdir dir="${dist.jar.dir}"/>
961+ </target>
962+ <target name="-pre-jar">
963+ <!-- Empty placeholder for easier customization. -->
964+ <!-- You can override this target in the ../build.xml file. -->
965+ </target>
966+ <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
967+ <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
968+ <touch file="${tmp.manifest.file}" verbose="false"/>
969+ </target>
970+ <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
971+ <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
972+ <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
973+ </target>
974+ <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
975+ <manifest file="${tmp.manifest.file}" mode="update">
976+ <attribute name="Main-Class" value="${main.class}"/>
977+ </manifest>
978+ </target>
979+ <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
980+ <manifest file="${tmp.manifest.file}" mode="update">
981+ <attribute name="Profile" value="${javac.profile}"/>
982+ </manifest>
983+ </target>
984+ <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
985+ <basename file="${application.splash}" property="splashscreen.basename"/>
986+ <mkdir dir="${build.classes.dir}/META-INF"/>
987+ <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
988+ <manifest file="${tmp.manifest.file}" mode="update">
989+ <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
990+ </manifest>
991+ </target>
992+ <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs">
993+ <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
994+ <echo level="info">To run this application from the command line without Ant, try:</echo>
995+ <property location="${dist.jar}" name="dist.jar.resolved"/>
996+ <echo level="info">java -jar "${dist.jar.resolved}"</echo>
997+ </target>
998+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
999+ <j2seproject1:jar manifest="${tmp.manifest.file}"/>
1000+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
1001+ <property location="${dist.jar}" name="dist.jar.resolved"/>
1002+ <pathconvert property="run.classpath.with.dist.jar">
1003+ <path path="${run.classpath}"/>
1004+ <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
1005+ </pathconvert>
1006+ <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}">
1007+ <isset property="main.class.available"/>
1008+ </condition>
1009+ <condition else="debug" property="jar.usage.level" value="info">
1010+ <isset property="main.class.available"/>
1011+ </condition>
1012+ <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
1013+ </target>
1014+ <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
1015+ <delete>
1016+ <fileset file="${tmp.manifest.file}"/>
1017+ </delete>
1018+ </target>
1019+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
1020+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
1021+ <target name="-post-jar">
1022+ <!-- Empty placeholder for easier customization. -->
1023+ <!-- You can override this target in the ../build.xml file. -->
1024+ </target>
1025+ <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
1026+ <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
1027+ <!--
1028+ =================
1029+ EXECUTION SECTION
1030+ =================
1031+ -->
1032+ <target depends="init,compile" description="Run a main class." name="run">
1033+ <j2seproject1:java>
1034+ <customize>
1035+ <arg line="${application.args}"/>
1036+ </customize>
1037+ </j2seproject1:java>
1038+ </target>
1039+ <target name="-do-not-recompile">
1040+ <property name="javac.includes.binary" value=""/>
1041+ </target>
1042+ <target depends="init,compile-single" name="run-single">
1043+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
1044+ <j2seproject1:java classname="${run.class}"/>
1045+ </target>
1046+ <target depends="init,compile-test-single" name="run-test-with-main">
1047+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
1048+ <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
1049+ </target>
1050+ <!--
1051+ =================
1052+ DEBUGGING SECTION
1053+ =================
1054+ -->
1055+ <target depends="init" if="netbeans.home" name="-debug-start-debugger">
1056+ <j2seproject1:nbjpdastart name="${debug.class}"/>
1057+ </target>
1058+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
1059+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
1060+ </target>
1061+ <target depends="init,compile" name="-debug-start-debuggee">
1062+ <j2seproject3:debug>
1063+ <customize>
1064+ <arg line="${application.args}"/>
1065+ </customize>
1066+ </j2seproject3:debug>
1067+ </target>
1068+ <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
1069+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
1070+ <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
1071+ </target>
1072+ <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
1073+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
1074+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
1075+ <j2seproject3:debug classname="${debug.class}"/>
1076+ </target>
1077+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
1078+ <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
1079+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
1080+ <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
1081+ </target>
1082+ <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
1083+ <target depends="init" name="-pre-debug-fix">
1084+ <fail unless="fix.includes">Must set fix.includes</fail>
1085+ <property name="javac.includes" value="${fix.includes}.java"/>
1086+ </target>
1087+ <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
1088+ <j2seproject1:nbjpdareload/>
1089+ </target>
1090+ <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
1091+ <!--
1092+ =================
1093+ PROFILING SECTION
1094+ =================
1095+ -->
1096+ <!--
1097+ pre NB7.2 profiler integration
1098+ -->
1099+ <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
1100+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
1101+ <nbprofiledirect>
1102+ <classpath>
1103+ <path path="${run.classpath}"/>
1104+ </classpath>
1105+ </nbprofiledirect>
1106+ <profile/>
1107+ </target>
1108+ <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72">
1109+ <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
1110+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
1111+ <nbprofiledirect>
1112+ <classpath>
1113+ <path path="${run.classpath}"/>
1114+ </classpath>
1115+ </nbprofiledirect>
1116+ <profile classname="${profile.class}"/>
1117+ </target>
1118+ <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72">
1119+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
1120+ <nbprofiledirect>
1121+ <classpath>
1122+ <path path="${run.classpath}"/>
1123+ </classpath>
1124+ </nbprofiledirect>
1125+ <profile classname="sun.applet.AppletViewer">
1126+ <customize>
1127+ <arg value="${applet.url}"/>
1128+ </customize>
1129+ </profile>
1130+ </target>
1131+ <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
1132+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
1133+ <nbprofiledirect>
1134+ <classpath>
1135+ <path path="${run.test.classpath}"/>
1136+ </classpath>
1137+ </nbprofiledirect>
1138+ <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true">
1139+ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
1140+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
1141+ <jvmarg line="${profiler.info.jvmargs}"/>
1142+ <test name="${profile.class}"/>
1143+ <classpath>
1144+ <path path="${run.test.classpath}"/>
1145+ </classpath>
1146+ <syspropertyset>
1147+ <propertyref prefix="test-sys-prop."/>
1148+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
1149+ </syspropertyset>
1150+ <formatter type="brief" usefile="false"/>
1151+ <formatter type="xml"/>
1152+ </junit>
1153+ </target>
1154+ <!--
1155+ end of pre NB72 profiling section
1156+ -->
1157+ <target if="netbeans.home" name="-profile-check">
1158+ <condition property="profiler.configured">
1159+ <or>
1160+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
1161+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
1162+ </or>
1163+ </condition>
1164+ </target>
1165+ <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
1166+ <startprofiler/>
1167+ <antcall target="run"/>
1168+ </target>
1169+ <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent">
1170+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
1171+ <startprofiler/>
1172+ <antcall target="run-single"/>
1173+ </target>
1174+ <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/>
1175+ <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs">
1176+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
1177+ <startprofiler/>
1178+ <antcall target="test-single"/>
1179+ </target>
1180+ <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main">
1181+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
1182+ <startprofiler/>
1183+ <antcal target="run-test-with-main"/>
1184+ </target>
1185+ <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent">
1186+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
1187+ <startprofiler/>
1188+ <antcall target="run-applet"/>
1189+ </target>
1190+ <!--
1191+ ===============
1192+ JAVADOC SECTION
1193+ ===============
1194+ -->
1195+ <target depends="init" if="have.sources" name="-javadoc-build">
1196+ <mkdir dir="${dist.javadoc.dir}"/>
1197+ <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
1198+ <and>
1199+ <isset property="endorsed.classpath.cmd.line.arg"/>
1200+ <not>
1201+ <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
1202+ </not>
1203+ </and>
1204+ </condition>
1205+ <condition else="" property="bug5101868workaround" value="*.java">
1206+ <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
1207+ </condition>
1208+ <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
1209+ <classpath>
1210+ <path path="${javac.classpath}"/>
1211+ </classpath>
1212+ <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
1213+ <filename name="**/*.java"/>
1214+ </fileset>
1215+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
1216+ <include name="**/*.java"/>
1217+ <exclude name="*.java"/>
1218+ </fileset>
1219+ <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
1220+ </javadoc>
1221+ <copy todir="${dist.javadoc.dir}">
1222+ <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
1223+ <filename name="**/doc-files/**"/>
1224+ </fileset>
1225+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
1226+ <include name="**/doc-files/**"/>
1227+ </fileset>
1228+ </copy>
1229+ </target>
1230+ <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
1231+ <nbbrowse file="${dist.javadoc.dir}/index.html"/>
1232+ </target>
1233+ <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
1234+ <!--
1235+ =========================
1236+ TEST COMPILATION SECTION
1237+ =========================
1238+ -->
1239+ <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
1240+ <mkdir dir="${build.test.classes.dir}"/>
1241+ </target>
1242+ <target name="-pre-compile-test">
1243+ <!-- Empty placeholder for easier customization. -->
1244+ <!-- You can override this target in the ../build.xml file. -->
1245+ </target>
1246+ <target if="do.depend.true" name="-compile-test-depend">
1247+ <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
1248+ </target>
1249+ <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
1250+ <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/>
1251+ <copy todir="${build.test.classes.dir}">
1252+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
1253+ </copy>
1254+ </target>
1255+ <target name="-post-compile-test">
1256+ <!-- Empty placeholder for easier customization. -->
1257+ <!-- You can override this target in the ../build.xml file. -->
1258+ </target>
1259+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
1260+ <target name="-pre-compile-test-single">
1261+ <!-- Empty placeholder for easier customization. -->
1262+ <!-- You can override this target in the ../build.xml file. -->
1263+ </target>
1264+ <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
1265+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
1266+ <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
1267+ <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
1268+ <copy todir="${build.test.classes.dir}">
1269+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
1270+ </copy>
1271+ </target>
1272+ <target name="-post-compile-test-single">
1273+ <!-- Empty placeholder for easier customization. -->
1274+ <!-- You can override this target in the ../build.xml file. -->
1275+ </target>
1276+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
1277+ <!--
1278+ =======================
1279+ TEST EXECUTION SECTION
1280+ =======================
1281+ -->
1282+ <target depends="init" if="have.tests" name="-pre-test-run">
1283+ <mkdir dir="${build.test.results.dir}"/>
1284+ </target>
1285+ <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
1286+ <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/>
1287+ </target>
1288+ <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
1289+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
1290+ </target>
1291+ <target depends="init" if="have.tests" name="test-report"/>
1292+ <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
1293+ <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
1294+ <target depends="init" if="have.tests" name="-pre-test-run-single">
1295+ <mkdir dir="${build.test.results.dir}"/>
1296+ </target>
1297+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
1298+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
1299+ <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
1300+ </target>
1301+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
1302+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
1303+ </target>
1304+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
1305+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
1306+ <fail unless="test.class">Must select some files in the IDE or set test.class</fail>
1307+ <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
1308+ <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
1309+ </target>
1310+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
1311+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
1312+ </target>
1313+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/>
1314+ <!--
1315+ =======================
1316+ TEST DEBUGGING SECTION
1317+ =======================
1318+ -->
1319+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
1320+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
1321+ <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
1322+ </target>
1323+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
1324+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
1325+ <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
1326+ <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
1327+ </target>
1328+ <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
1329+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
1330+ </target>
1331+ <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
1332+ <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
1333+ <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
1334+ <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
1335+ </target>
1336+ <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
1337+ <!--
1338+ =========================
1339+ APPLET EXECUTION SECTION
1340+ =========================
1341+ -->
1342+ <target depends="init,compile-single" name="run-applet">
1343+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
1344+ <j2seproject1:java classname="sun.applet.AppletViewer">
1345+ <customize>
1346+ <arg value="${applet.url}"/>
1347+ </customize>
1348+ </j2seproject1:java>
1349+ </target>
1350+ <!--
1351+ =========================
1352+ APPLET DEBUGGING SECTION
1353+ =========================
1354+ -->
1355+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
1356+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
1357+ <j2seproject3:debug classname="sun.applet.AppletViewer">
1358+ <customize>
1359+ <arg value="${applet.url}"/>
1360+ </customize>
1361+ </j2seproject3:debug>
1362+ </target>
1363+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
1364+ <!--
1365+ ===============
1366+ CLEANUP SECTION
1367+ ===============
1368+ -->
1369+ <target name="-deps-clean-init" unless="built-clean.properties">
1370+ <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
1371+ <delete file="${built-clean.properties}" quiet="true"/>
1372+ </target>
1373+ <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
1374+ <echo level="warn" message="Cycle detected: HtmlTest2 was already built"/>
1375+ </target>
1376+ <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
1377+ <mkdir dir="${build.dir}"/>
1378+ <touch file="${built-clean.properties}" verbose="false"/>
1379+ <property file="${built-clean.properties}" prefix="already.built.clean."/>
1380+ <antcall target="-warn-already-built-clean"/>
1381+ <propertyfile file="${built-clean.properties}">
1382+ <entry key="${basedir}" value=""/>
1383+ </propertyfile>
1384+ </target>
1385+ <target depends="init" name="-do-clean">
1386+ <delete dir="${build.dir}"/>
1387+ <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
1388+ </target>
1389+ <target name="-post-clean">
1390+ <!-- Empty placeholder for easier customization. -->
1391+ <!-- You can override this target in the ../build.xml file. -->
1392+ </target>
1393+ <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
1394+ <target name="-check-call-dep">
1395+ <property file="${call.built.properties}" prefix="already.built."/>
1396+ <condition property="should.call.dep">
1397+ <and>
1398+ <not>
1399+ <isset property="already.built.${call.subproject}"/>
1400+ </not>
1401+ <available file="${call.script}"/>
1402+ </and>
1403+ </condition>
1404+ </target>
1405+ <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
1406+ <ant antfile="${call.script}" inheritall="false" target="${call.target}">
1407+ <propertyset>
1408+ <propertyref prefix="transfer."/>
1409+ <mapper from="transfer.*" to="*" type="glob"/>
1410+ </propertyset>
1411+ </ant>
1412+ </target>
1413+</project>
--- branches/b2/HtmlTest2/manifest.mf (nonexistent)
+++ branches/b2/HtmlTest2/manifest.mf (revision 59)
@@ -0,0 +1,3 @@
1+Manifest-Version: 1.0
2+X-COMMENT: Main-Class will be added automatically by build
3+
--- branches/b2/HtmlTest2/build.xml (nonexistent)
+++ branches/b2/HtmlTest2/build.xml (revision 59)
@@ -0,0 +1,73 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<!-- You may freely edit this file. See commented blocks below for -->
3+<!-- some examples of how to customize the build. -->
4+<!-- (If you delete it and reopen the project it will be recreated.) -->
5+<!-- By default, only the Clean and Build commands use this build script. -->
6+<!-- Commands such as Run, Debug, and Test only use this build script if -->
7+<!-- the Compile on Save feature is turned off for the project. -->
8+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
9+<!-- in the project's Project Properties dialog box.-->
10+<project name="HtmlTest2" default="default" basedir=".">
11+ <description>Builds, tests, and runs the project HtmlTest2.</description>
12+ <import file="nbproject/build-impl.xml"/>
13+ <!--
14+
15+ There exist several targets which are by default empty and which can be
16+ used for execution of your tasks. These targets are usually executed
17+ before and after some main targets. They are:
18+
19+ -pre-init: called before initialization of project properties
20+ -post-init: called after initialization of project properties
21+ -pre-compile: called before javac compilation
22+ -post-compile: called after javac compilation
23+ -pre-compile-single: called before javac compilation of single file
24+ -post-compile-single: called after javac compilation of single file
25+ -pre-compile-test: called before javac compilation of JUnit tests
26+ -post-compile-test: called after javac compilation of JUnit tests
27+ -pre-compile-test-single: called before javac compilation of single JUnit test
28+ -post-compile-test-single: called after javac compilation of single JUunit test
29+ -pre-jar: called before JAR building
30+ -post-jar: called after JAR building
31+ -post-clean: called after cleaning build products
32+
33+ (Targets beginning with '-' are not intended to be called on their own.)
34+
35+ Example of inserting an obfuscator after compilation could look like this:
36+
37+ <target name="-post-compile">
38+ <obfuscate>
39+ <fileset dir="${build.classes.dir}"/>
40+ </obfuscate>
41+ </target>
42+
43+ For list of available properties check the imported
44+ nbproject/build-impl.xml file.
45+
46+
47+ Another way to customize the build is by overriding existing main targets.
48+ The targets of interest are:
49+
50+ -init-macrodef-javac: defines macro for javac compilation
51+ -init-macrodef-junit: defines macro for junit execution
52+ -init-macrodef-debug: defines macro for class debugging
53+ -init-macrodef-java: defines macro for class execution
54+ -do-jar: JAR building
55+ run: execution of project
56+ -javadoc-build: Javadoc generation
57+ test-report: JUnit report generation
58+
59+ An example of overriding the target for project execution could look like this:
60+
61+ <target name="run" depends="HtmlTest2-impl.jar">
62+ <exec dir="bin" executable="launcher.exe">
63+ <arg file="${dist.jar}"/>
64+ </exec>
65+ </target>
66+
67+ Notice that the overridden target depends on the jar target and not only on
68+ the compile target as the regular run target does. Again, for a list of available
69+ properties which you can use, check the target you are overriding in the
70+ nbproject/build-impl.xml file.
71+
72+ -->
73+</project>