Revision 38175

View differences:

tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/org.gvsig.wcs
1
#
2
#Wed Apr 28 12:13:53 CEST 2010
3
version=1.0.0
4
oficial=true
5
name=myplugin
6
type=plugin
7
description=Test
8
code=org.gvsig.wcs
9
state=RC1
10
build=1
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/org.gvsig.plugin2
1
#
2
#Wed Apr 28 12:22:40 CEST 2010
3
version=1.0.0
4
oficial=true
5
name=myplugin
6
type=plugin
7
description=Test
8
code=org.gvsig.myplugin2
9
state=RC1
10
build=1
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/org.gvsig.plugin3
1
#
2
#Wed Apr 28 12:10:48 CEST 2010
3
version=1.0.0
4
oficial=false
5
name=myplugin
6
type=plugin
7
description=Test
8
code=org.gvsig.plugin3
9
state=RC1
10
build=1
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/utils/CreateBoundleFrame.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main.utils;
29

  
30
import java.awt.HeadlessException;
31
import java.awt.event.ActionEvent;
32
import java.awt.event.ActionListener;
33
import java.awt.event.WindowEvent;
34
import java.awt.event.WindowListener;
35
import java.io.File;
36
import java.io.FileOutputStream;
37
import java.util.ArrayList;
38
import java.util.List;
39

  
40
import javax.swing.JFrame;
41
import javax.swing.JOptionPane;
42

  
43
import org.gvsig.gui.beans.openfile.FileTextField;
44
import org.gvsig.installer.lib.impl.utils.Compress;
45

  
46
/**
47
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
48
 */
49
public class CreateBoundleFrame extends JFrame implements WindowListener,
50
		ActionListener {
51

  
52
	/**
53
     * 
54
     */
55
	private static final long serialVersionUID = -2128261599641241144L;
56
	private javax.swing.JButton executeButton;
57
	private javax.swing.JLabel inputLabel;
58
	private FileTextField inputText;
59
	private javax.swing.JLabel jLabel2;
60
	private FileTextField outputText;
61

  
62
	public CreateBoundleFrame() throws HeadlessException {
63
		super();
64
		initializeComponents();
65
		this.addWindowListener(this);
66
		executeButton.addActionListener(this);
67
	}
68

  
69
	private void initializeComponents() {
70
		java.awt.GridBagConstraints gridBagConstraints;
71

  
72
		inputLabel = new javax.swing.JLabel();
73
		executeButton = new javax.swing.JButton();
74
		inputText = new FileTextField();
75
		outputText = new FileTextField();
76
		jLabel2 = new javax.swing.JLabel();
77

  
78
		setLayout(new java.awt.GridBagLayout());
79

  
80
		inputLabel.setText("Input directory");
81
		gridBagConstraints = new java.awt.GridBagConstraints();
82
		gridBagConstraints.gridx = 0;
83
		gridBagConstraints.gridy = 0;
84
		gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
85
		gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
86
		add(inputLabel, gridBagConstraints);
87

  
88
		executeButton.setText("Execute");
89
		gridBagConstraints = new java.awt.GridBagConstraints();
90
		gridBagConstraints.gridx = 1;
91
		gridBagConstraints.gridy = 2;
92
		gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
93
		gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
94
		add(executeButton, gridBagConstraints);
95

  
96
		gridBagConstraints = new java.awt.GridBagConstraints();
97
		gridBagConstraints.gridx = 1;
98
		gridBagConstraints.gridy = 0;
99
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
100
		gridBagConstraints.ipadx = 67;
101
		gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
102
		gridBagConstraints.weightx = 1.0;
103
		gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
104
		add(inputText, gridBagConstraints);
105

  
106
		gridBagConstraints = new java.awt.GridBagConstraints();
107
		gridBagConstraints.gridx = 1;
108
		gridBagConstraints.gridy = 1;
109
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
110
		gridBagConstraints.ipadx = 67;
111
		gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
112
		gridBagConstraints.weightx = 1.0;
113
		gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
114
		add(outputText, gridBagConstraints);
115

  
116
		jLabel2.setText("Output");
117
		gridBagConstraints = new java.awt.GridBagConstraints();
118
		gridBagConstraints.gridx = 0;
119
		gridBagConstraints.gridy = 1;
120
		gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
121
		gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
122
		add(jLabel2, gridBagConstraints);
123

  
124
	}
125

  
126
	public void windowActivated(WindowEvent arg0) {
127
		// TODO Auto-generated method stub
128

  
129
	}
130

  
131
	public void windowClosed(WindowEvent arg0) {
132
		System.exit(0);
133

  
134
	}
135

  
136
	public void windowClosing(WindowEvent arg0) {
137
		// TODO Auto-generated method stub
138

  
139
	}
140

  
141
	public void windowDeactivated(WindowEvent arg0) {
142
		// TODO Auto-generated method stub
143

  
144
	}
145

  
146
	public void windowDeiconified(WindowEvent arg0) {
147
		// TODO Auto-generated method stub
148

  
149
	}
150

  
151
	public void windowIconified(WindowEvent arg0) {
152
		// TODO Auto-generated method stub
153

  
154
	}
155

  
156
	public void windowOpened(WindowEvent arg0) {
157
		// TODO Auto-generated method stub
158

  
159
	}
160

  
161
	public void actionPerformed(ActionEvent arg0) {
162
		File inputDirectory = inputText.getSelectedFile();
163
		File outputFile = outputText.getSelectedFile();
164

  
165
		if (!inputDirectory.exists()) {
166
			JOptionPane
167
					.showMessageDialog(this, "Input directory doesn't exist");
168
			return;
169
		}
170

  
171
		if (outputFile.exists()) {
172
			outputFile.delete();
173
		}
174

  
175
		Compress compress = new Compress();
176
		try {
177
			File[] files = inputDirectory.listFiles();
178
			List<File> filesArray = new ArrayList<File>();
179
			List<String> fileNamesArray = new ArrayList<String>();
180
			for (int i = 0; i < files.length; i++) {
181
				if (!files[i].getName().toUpperCase().equals(".SVN")) {
182
					filesArray.add(files[i]);
183
					fileNamesArray.add(files[i].getName());
184
				}
185
			}
186
			compress.compressPluginsAsPackageSet(filesArray, fileNamesArray,
187
					new FileOutputStream(outputFile));
188
		} catch (Exception e) {
189
			JOptionPane.showMessageDialog(this, e.toString());
190
		}
191
	}
192
}
0 193

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/utils/CreateBundleLauncher.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main.utils;
29

  
30
/**
31
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
32
 */
33
public class CreateBundleLauncher {
34

  
35
	public static void main(String[] args) {
36
		new CreateBundleLauncher();
37
	}
38

  
39
	public CreateBundleLauncher() {
40
		super();
41
		CreateBoundleFrame createBoundleFrame = new CreateBoundleFrame();
42
		createBoundleFrame.setBounds(0, 0, 500, 150);
43
		createBoundleFrame.setVisible(true);
44
	}
45

  
46
}
0 47

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/utils/FrameWizardListener.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main.utils;
29

  
30
import javax.swing.JFrame;
31

  
32
import org.gvsig.installer.swing.api.wizard.InstallerWizardActionListener;
33
import org.gvsig.installer.swing.api.wizard.InstallerWizardPanel;
34

  
35
/**
36
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
37
 */
38
public class FrameWizardListener implements InstallerWizardActionListener {
39

  
40
	private JFrame frame = null;
41

  
42
	public FrameWizardListener(JFrame frame) {
43
		super();
44
		this.frame = frame;
45
	}
46

  
47
	public void cancel(InstallerWizardPanel installerWizard) {
48
		frame.setVisible(false);
49
		System.exit(0);
50

  
51
	}
52

  
53
	public void finish(InstallerWizardPanel installerWizard) {
54
		frame.setVisible(false);
55
		System.exit(0);
56
	}
57

  
58
}
0 59

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/execution/InstallPackageServiceFrame.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main.execution;
29

  
30
import java.io.File;
31

  
32
import javax.swing.JFrame;
33

  
34
import org.gvsig.installer.lib.api.execution.InstallPackageServiceException;
35
import org.gvsig.installer.main.utils.FrameWizardListener;
36
import org.gvsig.installer.swing.api.SwingInstallerLocator;
37
import org.gvsig.installer.swing.api.execution.AbstractInstallPackageWizard;
38
import org.gvsig.installer.swing.api.execution.InstallPackageWizardException;
39
import org.gvsig.tools.locator.LocatorException;
40

  
41
/**
42
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
43
 */
44
public class InstallPackageServiceFrame extends JFrame {
45

  
46
	private static final long serialVersionUID = -5107758157530922356L;
47
	private AbstractInstallPackageWizard installerExecutionWizard;
48

  
49
	public InstallPackageServiceFrame(File applicationFolder, File installFolder)
50
			throws LocatorException, InstallPackageWizardException {
51
		super();
52
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
53
		installerExecutionWizard = SwingInstallerLocator
54
				.getSwingInstallerManager().createInstallPackageWizard(
55
						applicationFolder, installFolder);
56
		installerExecutionWizard
57
				.setWizardActionListener(new FrameWizardListener(this));
58
		this.add(installerExecutionWizard);
59
		pack();
60
	}
61

  
62
	public void installFromDefaultDirectory()
63
			throws InstallPackageServiceException {
64
		installerExecutionWizard.installFromDefaultDirectory();
65
	}
66

  
67
}
0 68

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/execution/InstallPackageWizardFromDefaultDirectoryLauncher.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main.execution;
29

  
30
import java.io.IOException;
31

  
32
import org.gvsig.installer.lib.api.execution.InstallPackageServiceException;
33
import org.gvsig.installer.main.DefaultLauncher;
34
import org.gvsig.installer.swing.api.execution.InstallPackageWizardException;
35
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
36
import org.gvsig.tools.locator.LocatorException;
37

  
38
/**
39
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
40
 */
41
public class InstallPackageWizardFromDefaultDirectoryLauncher extends
42
		DefaultLauncher {
43

  
44
	public static void main(String[] args) throws LocatorException,
45
			InstallPackageServiceException, InstallPackageWizardException,
46
			IOException {
47
		new DefaultLibrariesInitializer().fullInitialize();
48
		new InstallPackageWizardFromDefaultDirectoryLauncher();
49
	}
50

  
51
	public InstallPackageWizardFromDefaultDirectoryLauncher()
52
			throws LocatorException, InstallPackageWizardException,
53
			InstallPackageServiceException, IOException {
54

  
55
		InstallPackageServiceFrame frame = new InstallPackageServiceFrame(
56
				getApplicationFolder(), getInstallFolder());
57
		frame.installFromDefaultDirectory();
58
		frame.setVisible(true);
59
	}
60
}
0 61

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/execution/InstallPackageWizardLauncher.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main.execution;
29

  
30
import java.io.IOException;
31

  
32
import org.gvsig.installer.lib.api.execution.InstallPackageServiceException;
33
import org.gvsig.installer.main.DefaultLauncher;
34
import org.gvsig.installer.swing.api.execution.InstallPackageWizardException;
35
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
36
import org.gvsig.tools.locator.LocatorException;
37

  
38
/**
39
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
40
 */
41
public class InstallPackageWizardLauncher extends DefaultLauncher {
42

  
43
	public static void main(String[] args) throws LocatorException,
44
			InstallPackageServiceException, InstallPackageWizardException,
45
			IOException {
46
		new DefaultLibrariesInitializer().fullInitialize();
47
		new InstallPackageWizardLauncher();
48
	}
49

  
50
	public InstallPackageWizardLauncher() throws LocatorException,
51
			InstallPackageWizardException, InstallPackageServiceException,
52
			IOException {
53

  
54
		InstallPackageServiceFrame frame = new InstallPackageServiceFrame(
55
				getApplicationFolder(), getInstallFolder());
56
		frame.setVisible(true);
57
	}
58
}
0 59

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/creation/MakePluginPackageFrame.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main.creation;
29

  
30
import java.io.File;
31

  
32
import javax.swing.JFrame;
33

  
34
import org.gvsig.installer.main.utils.FrameWizardListener;
35
import org.gvsig.installer.swing.api.SwingInstallerLocator;
36
import org.gvsig.installer.swing.api.creation.MakePluginPackageWizard;
37
import org.gvsig.installer.swing.api.creation.MakePluginPackageWizardException;
38
import org.gvsig.tools.locator.LocatorException;
39

  
40
/**
41
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
42
 */
43
public class MakePluginPackageFrame extends JFrame {
44

  
45
	private static final long serialVersionUID = 4144834319158286247L;
46
	private MakePluginPackageWizard installerCreationWizard;
47

  
48
	public MakePluginPackageFrame(File applicationFolder, File installFolder)
49
			throws LocatorException, MakePluginPackageWizardException {
50
		super();
51
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
52
		installerCreationWizard = SwingInstallerLocator
53
				.getSwingInstallerManager().createMakePluginPackageWizard(
54
						applicationFolder, installFolder);
55
		installerCreationWizard
56
				.setWizardActionListener(new FrameWizardListener(this));
57
		this.add(installerCreationWizard);
58
		pack();
59
	}
60

  
61
}
0 62

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/creation/MakePluginPackageWizardLauncher.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main.creation;
29

  
30
import java.io.IOException;
31

  
32
import org.gvsig.installer.lib.api.creation.MakePluginPackageServiceException;
33
import org.gvsig.installer.main.DefaultLauncher;
34
import org.gvsig.installer.swing.api.creation.MakePluginPackageWizardException;
35
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
36
import org.gvsig.tools.locator.LocatorException;
37

  
38
/**
39
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
40
 */
41
public class MakePluginPackageWizardLauncher extends DefaultLauncher {
42

  
43
	public static void main(String[] args) throws LocatorException,
44
			MakePluginPackageWizardException, IOException,
45
			MakePluginPackageServiceException {
46
		new DefaultLibrariesInitializer().fullInitialize();
47
		new MakePluginPackageWizardLauncher();
48
	}
49

  
50
	public MakePluginPackageWizardLauncher() throws LocatorException,
51
			MakePluginPackageWizardException, IOException,
52
			MakePluginPackageServiceException {
53

  
54
		MakePluginPackageFrame frame = new MakePluginPackageFrame(
55
				getApplicationFolder(), getInstallFolder());
56
		frame.setVisible(true);
57
	}
58

  
59
}
0 60

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/src/main/java/org/gvsig/installer/main/DefaultLauncher.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.main;
29

  
30
import java.io.File;
31
import java.io.FileInputStream;
32
import java.io.FileOutputStream;
33
import java.io.IOException;
34
import java.io.InputStream;
35
import java.io.OutputStream;
36

  
37
/**
38
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
39
 */
40
public class DefaultLauncher {
41

  
42
	private File appFolder;
43

  
44
	public File getApplicationFolder() throws IOException {
45
		if (appFolder == null) {
46
			File templateFile = new File(getClass().getClassLoader()
47
					.getResource("application").getFile());
48
			appFolder = new File(System.getProperty("java.io.tmpdir")
49
					+ File.separator + "tmp_gvsig_installer");
50

  
51
			copy(templateFile, appFolder);
52
		}
53

  
54
		return appFolder;
55
	}
56

  
57
	public File getPluginsFolder() throws IOException {
58
		return new File(appFolder, "plugins");
59
	}
60

  
61
	public File getInstallFolder() throws IOException {
62
		return new File(appFolder, "install");
63
	}
64

  
65
	public void copy(File sourceLocation, File targetLocation)
66
			throws IOException {
67
		if (sourceLocation.isDirectory()) {
68
			if (!targetLocation.exists()) {
69
				targetLocation.mkdir();
70
			}
71

  
72
			String[] children = sourceLocation.list();
73
			for (int i = 0; i < children.length; i++) {
74
				copy(new File(sourceLocation, children[i]), new File(
75
						targetLocation, children[i]));
76
			}
77
		} else {
78
			targetLocation.getParentFile().mkdirs();
79

  
80
			InputStream in = new FileInputStream(sourceLocation);
81
			OutputStream out = new FileOutputStream(targetLocation);
82

  
83
			// Copy the bits from instream to outstream
84
			byte[] buf = new byte[1024];
85
			int len;
86
			while ((len = in.read(buf)) > 0) {
87
				out.write(buf, 0, len);
88
			}
89
			in.close();
90
			out.close();
91
		}
92
	}
93
}
0 94

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.main/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2
	<modelVersion>4.0.0</modelVersion>
3
	<artifactId>org.gvsig.installer.main</artifactId>
4
	<packaging>jar</packaging>
5
	<name>org.gvsig.installer.main</name>
6
	<parent>
7
		<groupId>org.gvsig</groupId>
8
		<artifactId>org.gvsig.installer</artifactId>
9
		<version>1.0.1-SNAPSHOT</version>
10
	</parent>
11
	<dependencies>
12
		<dependency>
13
			<groupId>org.gvsig</groupId>
14
			<artifactId>org.gvsig.installer.lib.api</artifactId>
15
			<version>1.0.1-SNAPSHOT</version>
16
            <scope>compile</scope>
17
		</dependency>
18
		<dependency>
19
			<groupId>org.gvsig</groupId>
20
			<artifactId>org.gvsig.installer.lib.spi</artifactId>
21
			<version>1.0.1-SNAPSHOT</version>
22
            <scope>compile</scope>
23
		</dependency>
24
		<dependency>
25
			<groupId>org.gvsig</groupId>
26
			<artifactId>org.gvsig.installer.lib.impl</artifactId>
27
			<version>1.0.1-SNAPSHOT</version>
28
			<!-- The scope is not runtime because there is an utility that uses the Compress class directly
29
			     It will be runtime the day that the API supports this functionality
30
			-->
31
			 <scope>compile</scope>
32
		</dependency>
33
		<dependency>
34
			<groupId>org.gvsig</groupId>
35
			<artifactId>org.gvsig.installer.prov.plugin</artifactId>
36
			<version>1.0.1-SNAPSHOT</version>
37
		</dependency>
38
		<dependency>
39
			<groupId>org.gvsig</groupId>
40
			<artifactId>org.gvsig.installer.swing.api</artifactId>
41
			<version>1.0.1-SNAPSHOT</version>
42
            <scope>compile</scope>
43
		</dependency>
44
        <dependency>
45
            <groupId>org.gvsig</groupId>
46
            <artifactId>org.gvsig.installer.swing.impl</artifactId>
47
            <version>1.0.1-SNAPSHOT</version>
48
        </dependency>
49
        <dependency>
50
            <groupId>org.gvsig</groupId>
51
            <artifactId>org.gvsig.tools.lib</artifactId>
52
            <scope>compile</scope>
53
        </dependency>
54
		<dependency>
55
			<groupId>org.gvsig</groupId>
56
			<artifactId>org.gvsig.ui</artifactId>
57
            <scope>compile</scope>
58
		</dependency>
59
	</dependencies>
60
</project>
0 61

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.lib/org.gvsig.installer.lib.impl/src/test/java/org/gvsig/installer/lib/impl/execution/InstallPackageServiceTest.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.lib.impl.execution;
29

  
30
import java.io.File;
31
import java.io.IOException;
32

  
33
import junit.framework.Assert;
34

  
35
import org.gvsig.installer.lib.api.InstallerLocator;
36
import org.gvsig.installer.lib.api.PackageInfo;
37
import org.gvsig.installer.lib.api.creation.MakePluginPackageService;
38
import org.gvsig.installer.lib.api.creation.MakePluginPackageServiceException;
39
import org.gvsig.installer.lib.api.execution.InstallPackageService;
40
import org.gvsig.installer.lib.api.execution.InstallPackageServiceException;
41
import org.gvsig.installer.lib.impl.InstallerServiceTest;
42
import org.gvsig.tools.locator.LocatorException;
43

  
44
/**
45
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
46
 */
47
public class InstallPackageServiceTest extends InstallerServiceTest {
48

  
49
	@Override
50
	protected void doSetUp() throws Exception {
51
		// TODO Auto-generated method stub
52

  
53
	}
54

  
55
	public void testReadPlugins() throws LocatorException,
56
			MakePluginPackageServiceException, InstallPackageServiceException,
57
			IOException {
58
		File installersDirectory = super.getInstallersDirectory();
59

  
60
		InstallPackageService installPackageService = InstallerLocator
61
				.getInstallerManager().getInstallPackageService();
62
		installPackageService.addBundlesFromDirectory(installersDirectory);
63

  
64
		Assert.assertEquals(3, installPackageService.getPackageCount());
65

  
66
		int pluginsNumber = 0;
67
		for (int i = 0; i < 3; i++) {
68
			PackageInfo packageInfo = installPackageService.getPackageInfo(i);
69
			if (packageInfo.getCode().equals("org.gvsig.plugin1")) {
70
				assertNotNull(packageInfo.getState());
71
				pluginsNumber++;
72
			} else if (packageInfo.getCode().equals("org.gvsig.plugin2")) {
73
				assertEquals("RC1", packageInfo.getState());
74
				pluginsNumber++;
75
			} else if (packageInfo.getCode().equals("org.gvsig.plugin3")) {
76
				assertEquals("Testing", packageInfo.getState());
77
				pluginsNumber++;
78
			}
79
		}
80

  
81
		Assert.assertEquals(3, pluginsNumber);
82
	}
83

  
84
	public void testInstallPluginFromApplication()
85
			throws InstallPackageServiceException, IOException,
86
			LocatorException, MakePluginPackageServiceException {
87
		File installersDirectory = super.getInstallersDirectory();
88
		File applicationDirectory = super.getApplicationDirectory();
89

  
90
		InstallPackageService installerExecutionService = InstallerLocator
91
				.getInstallerManager().getInstallPackageService();
92
		installerExecutionService.addBundlesFromDirectory(installersDirectory);
93

  
94
		PackageInfo packageInfo = installerExecutionService
95
				.getPackageInfo("org.gvsig.plugin1");
96
		installerExecutionService.installPackage(applicationDirectory,
97
				packageInfo);
98

  
99
		Assert.assertEquals(3, installerExecutionService.getPackageCount());
100

  
101
		// Reading the excution and check that the file is installed
102
		MakePluginPackageService installerCreationService = InstallerLocator
103
				.getInstallerManager().getMakePluginPackageService();
104
		Assert
105
				.assertEquals(4, installerCreationService
106
						.getPluginPackageCount());
107
	}
108

  
109
	public void testInstallPluginFromExternal()
110
			throws InstallPackageServiceException, IOException,
111
			LocatorException, MakePluginPackageServiceException {
112
		File applicationDirectory = super.getApplicationDirectory();
113
		File externalInstallationFile = new File(applicationDirectory
114
				.getAbsoluteFile()
115
				+ File.separator + "install" + File.separator + "bundle1.zip");
116

  
117
		InstallPackageService installerExecutionService = InstallerLocator
118
				.getInstallerManager().getInstallPackageService();
119
		installerExecutionService.addBundle(externalInstallationFile);
120

  
121
		PackageInfo packageInfo = installerExecutionService
122
				.getPackageInfo("org.gvsig.plugin1");
123

  
124
		Assert.assertEquals(3, installerExecutionService.getPackageCount());
125

  
126
		installerExecutionService.installPackage(applicationDirectory,
127
				packageInfo);
128

  
129
		// Reading the excution and check that the file is installed
130
		MakePluginPackageService installerCreationService = InstallerLocator
131
				.getInstallerManager().getMakePluginPackageService();
132
		Assert
133
				.assertEquals(4, installerCreationService
134
						.getPluginPackageCount());
135
	}
136

  
137
	// public void testInstallPluginWithAntScript() throws
138
	// InstallPackageServiceException, LocatorException,
139
	// MakePluginPackageServiceException, IOException{
140
	// File applicationDirectory = super.getApplicationDirectory();
141
	// File installersDirectory = super.getInstallersDirectory();
142
	// File pluginsDirectory = super.getPluginsDirectory();
143
	//
144
	// InstallPackageService installerExecutionService =
145
	// InstallerLocator.getInstallerManager().getInstallPackageService();
146
	// installerExecutionService.addBundlesFromDirectory(installersDirectory);
147
	//
148
	// PackageInfo packageInfo =
149
	// installerExecutionService.getPackageInfo("org.gvsig.plugin2");
150
	//
151
	// Assert.assertEquals(3, installerExecutionService.getPackageCount());
152
	//
153
	// installerExecutionService.installPackage(applicationDirectory,
154
	// packageInfo);
155
	//
156
	// //Reading the excution and check that the file is installed
157
	// MakePluginPackageService installerCreationService =
158
	// InstallerLocator.getInstallerManager().getMakePluginPackageService(pluginsDirectory);
159
	//
160
	// Assert.assertEquals(5, installerCreationService.getPluginPackageCount());
161
	// }
162

  
163
}
0 164

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.lib/org.gvsig.installer.lib.impl/src/test/java/org/gvsig/installer/lib/impl/execution/DependencyCalculatorTest.java
1
package org.gvsig.installer.lib.impl.execution;
2

  
3
import java.util.ArrayList;
4
import java.util.LinkedHashMap;
5
import java.util.List;
6
import java.util.Map;
7

  
8
import junit.framework.TestCase;
9

  
10
import org.gvsig.installer.lib.api.PackageInfo;
11
import org.gvsig.installer.lib.api.Version;
12
import org.gvsig.installer.lib.impl.DefaultDependenciesCalculator;
13
import org.gvsig.installer.lib.impl.DefaultPackageInfo;
14
import org.gvsig.installer.lib.impl.DefaultVersion;
15

  
16
public class DependencyCalculatorTest extends TestCase {
17

  
18
	private MyInstallPackageService getInstallService() {
19
		MyInstallPackageService serv = new MyInstallPackageService();
20
		serv.addPackage("p1", "1.0.0", null);
21
		serv.addPackage("p1", "2.0.0", null);
22
		serv.addPackage("p1", "3.0.0", null);
23
		serv.addPackage("p2", "3.0.0", null);
24
		serv.addPackage("p2", "5.0.0", null);
25
		serv.addPackage("p2", "9.0.0", null);
26
		serv.addPackage("p3", "1.0.0", null);
27
		serv.addPackage("p4", "1.0.0", null);
28
		serv.addPackage("p5", "1.0.0", "required: p2 -ge 5.0.0");
29
		serv.addPackage("p6", "1.0.0", "required: p1 >= 1.0.0");
30
		serv.addPackage("p7", "1.0.0", "required: p1 -ge 2.0.0");
31
		serv.addPackage("p8", "1.0.0", "required: p2 >= 1, required: p6 -ge 1");
32
		serv.addPackage("p9", "1.0.0",
33
				"required: p8 >= 1.0.0, required: p7 >= 1.0.0");
34
		return serv;
35
	}
36

  
37
	public void testCalculate() {
38
		MyInstallPackageService installService = this.getInstallService();
39
		DefaultDependenciesCalculator calculator = new DefaultDependenciesCalculator(
40
				installService);
41

  
42
		calculator.addInstalledPackage(installService.getPackageInfo("p1",
43
				"1.0.0"));
44
		calculator.addInstalledPackage(installService.getPackageInfo("p2",
45
				"3.0.0"));
46
		calculator.addInstalledPackage(installService.getPackageInfo("p5",
47
				"1.0.0"));
48

  
49
		calculator.addPackageToInstall(installService.getPackageInfo("p7",
50
				"1.0.0"));
51
		calculator.addPackageToInstall(installService.getPackageInfo("p9",
52
				"1.0.0"));
53

  
54
		calculator.calculate();
55

  
56
		List<PackageInfo> requireds = calculator.getRequiredPackages();
57

  
58
		/*
59
		 * required packages plugin p1 3.0.0-0 devel all all j1_5 null plugin p2
60
		 * 9.0.0-0 devel all all j1_5 null plugin p6 1.0.0-0 devel all all j1_5
61
		 * required: p1 >= 1.0.0-0 plugin p8 1.0.0-0 devel all all j1_5
62
		 * required: p2 >= 1.0.0-0, required: p6 -ge 1.0.0-0
63
		 */
64
		PackageInfo pkg;
65
		assertEquals(4, requireds.size());
66
		pkg = requireds.get(0);
67
		assertEquals("p1", pkg.getCode());
68
		assertEquals("3.0.0-0", pkg.getVersion().toString());
69
		pkg = requireds.get(1);
70
		assertEquals("p2", pkg.getCode());
71
		assertEquals("9.0.0-0", pkg.getVersion().toString());
72
		pkg = requireds.get(2);
73
		assertEquals("p6", pkg.getCode());
74
		assertEquals("1.0.0-0", pkg.getVersion().toString());
75
		pkg = requireds.get(3);
76
		assertEquals("p8", pkg.getCode());
77
		assertEquals("1.0.0-0", pkg.getVersion().toString());
78
	}
79

  
80
	private class MyInstallPackageService extends InstallPackageServiceDumb {
81

  
82
		Map<String, PackageInfo> packages = new LinkedHashMap<String, PackageInfo>();
83
		List<PackageInfo> pacakgesList = null;
84

  
85
		MyInstallPackageService() {
86

  
87
		}
88

  
89
		public void addPackage(String code, String version, String dependencies) {
90
			DefaultPackageInfo pkg = new DefaultPackageInfo();
91
			pkg.setCode(code);
92
			pkg.setType("plugin");
93
			pkg.setVersion(new DefaultVersion().parse(version));
94
			pkg.setDependencies(dependencies);
95
			pkg.setName(code + " (name)");
96
			pkg.setDescription(code + " (description)");
97

  
98
			packages.put(pkg.getCode() + "-" + pkg.getVersion().fullFormat(),
99
					pkg);
100
		}
101

  
102
		public PackageInfo getPackageInfo(String code, String version) {
103
			Version ver = new DefaultVersion().parse(version);
104
			return packages.get(code + "-" + ver.fullFormat());
105
		}
106

  
107
		@Override
108
		public int getPackageCount() {
109
			if (pacakgesList == null) {
110
				pacakgesList = new ArrayList<PackageInfo>();
111
				pacakgesList.addAll(packages.values());
112
			}
113
			return pacakgesList.size();
114
		}
115

  
116
		@Override
117
		public PackageInfo getPackageInfo(int index) {
118
			if (pacakgesList == null) {
119
				pacakgesList = new ArrayList<PackageInfo>();
120
				pacakgesList.addAll(packages.values());
121
			}
122
			return pacakgesList.get(index);
123
		}
124
	}
125

  
126
}
0 127

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.lib/org.gvsig.installer.lib.impl/src/test/java/org/gvsig/installer/lib/impl/execution/InstallPackageServiceDumb.java
1
package org.gvsig.installer.lib.impl.execution;
2

  
3
import java.io.File;
4
import java.net.URL;
5
import java.util.List;
6

  
7
import org.gvsig.installer.lib.api.PackageInfo;
8
import org.gvsig.installer.lib.api.execution.InstallPackageService;
9
import org.gvsig.installer.lib.api.execution.InstallPackageServiceException;
10
import org.gvsig.tools.service.Manager;
11
import org.gvsig.tools.task.SimpleTaskStatus;
12

  
13
public class InstallPackageServiceDumb implements InstallPackageService {
14

  
15
	public Manager getManager() {
16
		return null;
17
	}
18

  
19
	public void reset() {
20
	}
21

  
22
	public void addBundle(File bundleFile)
23
			throws InstallPackageServiceException {
24
	}
25

  
26
	public void addBundle(URL bundleURL) throws InstallPackageServiceException {
27
	}
28

  
29
	public void addBundlesFromDirectory(File bundlesDirectory)
30
			throws InstallPackageServiceException {
31
	}
32

  
33
	public void installPackage(File applicationDirectory,
34
			PackageInfo packageInfo) throws InstallPackageServiceException {
35
	}
36

  
37
	public void installPackage(File applicationDirectory, String packageCode)
38
			throws InstallPackageServiceException {
39
	}
40

  
41
	public int getPackageCount() {
42
		return 0;
43
	}
44

  
45
	public PackageInfo getPackageInfo(int index) {
46
		return null;
47
	}
48

  
49
	public PackageInfo getPackageInfo(String packageCode) {
50
		return null;
51
	}
52

  
53
	public void downloadPackage(PackageInfo packageInfo,
54
			SimpleTaskStatus taskStatus) throws InstallPackageServiceException {
55
	}
56

  
57
	public List<String> getDefaultSelectedPackagesIDs() {
58
		return null;
59
	}
60

  
61
	public List<String> getCategories() {
62
		// TODO Auto-generated method stub
63
		return null;
64
	}
65

  
66
	public List<String> getTypes() {
67
		// TODO Auto-generated method stub
68
		return null;
69
	}
70

  
71
}
0 72

  
tags/v2_0_0_Build_2046/extensions/org.gvsig.installer/org.gvsig.installer.lib/org.gvsig.installer.lib.impl/src/test/java/org/gvsig/installer/lib/impl/creation/MakePluginPackageServiceTest.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 {Prodevelop}   {Task}
26
 */
27

  
28
package org.gvsig.installer.lib.impl.creation;
29

  
30
import java.io.File;
31
import java.io.FileOutputStream;
32
import java.io.IOException;
33

  
34
import junit.framework.Assert;
35

  
36
import org.gvsig.installer.lib.api.InstallerLocator;
37
import org.gvsig.installer.lib.api.PackageInfo;
38
import org.gvsig.installer.lib.api.creation.MakePluginPackageService;
39
import org.gvsig.installer.lib.api.creation.MakePluginPackageServiceException;
40
import org.gvsig.installer.lib.api.execution.InstallPackageService;
41
import org.gvsig.installer.lib.api.execution.InstallPackageServiceException;
42
import org.gvsig.installer.lib.impl.InstallerServiceTest;
43
import org.gvsig.tools.locator.LocatorException;
44

  
45
/**
46
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
47
 */
48
public class MakePluginPackageServiceTest extends InstallerServiceTest {
49

  
50
	@Override
51
	protected void doSetUp() throws Exception {
52

  
53
	}
54

  
55
	public void testReadPlugins() throws LocatorException,
56
			MakePluginPackageServiceException, InstallPackageServiceException,
57
			IOException {
58

  
59
		MakePluginPackageService makePluginPackageService = InstallerLocator
60
				.getInstallerManager().getMakePluginPackageService();
61

  
62
		Assert
63
				.assertEquals(3, makePluginPackageService
64
						.getPluginPackageCount());
65

  
66
		int pluginsNumber = 0;
67
		for (int i = 0; i < 3; i++) {
68
			PackageInfo packageInfo = makePluginPackageService
69
					.getPluginPackageInfo(i);
70
			if (packageInfo.getCode().equals("org.gvsig.wms")) {
71
				assertNotNull(packageInfo.getState());
72
				pluginsNumber++;
73
			} else if (packageInfo.getCode().equals("org.gvsig.wfs")) {
74
				assertEquals("RC2", packageInfo.getState());
75
				pluginsNumber++;
76
			} else if (packageInfo.getCode().equals("org.gvsig.wcs")) {
77
				assertEquals("RC1", packageInfo.getState());
78
				pluginsNumber++;
79
			}
80
		}
81

  
82
		Assert.assertEquals(3, pluginsNumber);
83
	}
84

  
85
	public void testMakePluginPackage() throws IOException, LocatorException,
86
			MakePluginPackageServiceException, InstallPackageServiceException {
87
		File installerFile = super.getTemporalFile();
88

  
89
		MakePluginPackageService makePluginPackageService = InstallerLocator
90
				.getInstallerManager().getMakePluginPackageService();
91

  
92
		PackageInfo packageInfo = makePluginPackageService
93
				.getPluginPackageInfo("org.gvsig.wfs");
94

  
95
		assertEquals("1.0.0", packageInfo.getVersion());
96

  
97
		// Change the version to check that the installation process works fine
98
		packageInfo.setVersion("1.0.1");
99

  
100
		// Compress the plugin and create the installer compressed file
101
		FileOutputStream os = new FileOutputStream(installerFile);
102
		makePluginPackageService.createPackageSet(packageInfo, os);
103

  
104
		// decompress the plugin and read the plugin information
105
		InstallPackageService installPackageService = InstallerLocator
106
				.getInstallerManager().getInstallPackageService();
107

  
108
		installPackageService.addBundle(installerFile);
109
		assertEquals(1, installPackageService.getPackageCount());
110
		PackageInfo newInstallerInfo = makePluginPackageService
111
				.getPluginPackageInfo(0);
112
		assertEquals("1.0.1", newInstallerInfo.getVersion());
113
	}
114

  
115
	public void testCreateInstallerWithAntFile() throws IOException,
116
			LocatorException, MakePluginPackageServiceException,
117
			InstallPackageServiceException {
118
		File installerFile = super.getTemporalFile();
119

  
120
		MakePluginPackageService makePluginPackageService = InstallerLocator
121
				.getInstallerManager().getMakePluginPackageService();
122

  
123
		PackageInfo packageInfo = makePluginPackageService
124
				.getPluginPackageInfo("org.gvsig.wfs");
125
		packageInfo
126
				.setAntScript(makePluginPackageService.getDefaultAntScript());
127

  
128
		// Compress the plugin and create the installer compressed file
129
		FileOutputStream os = new FileOutputStream(installerFile);
130
		makePluginPackageService.createPackageSet(packageInfo, os);
131

  
132
		// decompress the plugin and read the plugin information
133
		InstallPackageService installPackageService = InstallerLocator
134
				.getInstallerManager().getInstallPackageService();
135
		installPackageService.addBundle(installerFile);
136
		assertEquals(1, installPackageService.getPackageCount());
137
		PackageInfo newInstallerInfo = makePluginPackageService
138
				.getPluginPackageInfo(0);
139
		assertTrue(newInstallerInfo.getAntScript().startsWith("<project"));
140
	}
141

  
142
	public void testCreateInstallerWithFiles() throws IOException,
143
			LocatorException, MakePluginPackageServiceException,
144
			InstallPackageServiceException {
145
		File pluginsDirectory = super.getPluginsDirectory();
146
		File installerFile = super.getTemporalFile();
147
		File resource = new File(pluginsDirectory + File.separator
148
				+ "org.gvsig.wms" + File.separator + "resources2.txt");
149

  
150
		MakePluginPackageService makePluginPackageService = InstallerLocator
151
				.getInstallerManager().getMakePluginPackageService();
152

  
153
		PackageInfo packageInfo = makePluginPackageService
154
				.getPluginPackageInfo("org.gvsig.wcs");
155
		packageInfo.getFilesToCopy().add(resource);
156

  
157
		// Compress the plugin and create the installer compressed file
158
		FileOutputStream os = new FileOutputStream(installerFile);
159
		makePluginPackageService.createPackageSet(packageInfo, os);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff