Wiki » History » Version 18

Manuel Madrid, 07/03/2014 05:22 PM

1 10 Manuel Madrid
h1. Useful links
2 2 Manuel Madrid
3 10 Manuel Madrid
h2. Java Excel API
4 1 Manuel Madrid
* http://www.andykhan.com/jexcelapi/
5 2 Manuel Madrid
* http://sourceforge.net/projects/jexcelapi/?source=navbar
6 2 Manuel Madrid
* http://search.maven.org/#artifactdetails|net.sourceforge.jexcelapi|jxl|2.6.12|jar
7 2 Manuel Madrid
8 16 Manuel Madrid
h1. Google Summer of Code weekly reports history
9 3 Manuel Madrid
10 17 Manuel Madrid
h2. Week 6
11 17 Manuel Madrid
12 17 Manuel Madrid
h3. What did I get done this week?
13 17 Manuel Madrid
14 17 Manuel Madrid
This week I focused on testing the plugin. I created a first version of the plugin test plan [1] including the main test cases involved. I also executed the tests.
15 17 Manuel Madrid
16 17 Manuel Madrid
As a result of the tests I detected a few issues that I reported to the gvSIG-Desktop project bugtraker [2]. Only one of them seems to be directly related with the jexcel plugin [3].
17 17 Manuel Madrid
18 17 Manuel Madrid
I'm happy because the plugin seems to be quite stable so far.
19 17 Manuel Madrid
20 17 Manuel Madrid
h3. What do I plan on doing next week?
21 17 Manuel Madrid
22 17 Manuel Madrid
I will focus on creating the user manual. Also will try to fix the only bug that is directly related with the plugin.
23 17 Manuel Madrid
24 17 Manuel Madrid
h3. Am I blocked on anything?
25 17 Manuel Madrid
26 17 Manuel Madrid
No.
27 17 Manuel Madrid
28 17 Manuel Madrid
[1] https://redmine.gvsig.net/redmine/attachments/download/912/org.gvsig.jexcel.app.mainplugin_test_plan.html
29 17 Manuel Madrid
30 17 Manuel Madrid
[2] https://redmine.gvsig.net/redmine/projects/gvsig-desktop/issues
31 17 Manuel Madrid
32 17 Manuel Madrid
[3] https://redmine.gvsig.net/redmine/issues/2606 
33 17 Manuel Madrid
34 10 Manuel Madrid
h2. Week 5
35 3 Manuel Madrid
36 10 Manuel Madrid
h3. What did I get done this week?
37 7 Manuel Madrid
38 8 Manuel Madrid
This week I have been learning the procedures for generating plugin installation packages. I found some problems when trying to configure the downloading URL of the package but finally I got it. As Joaquín, my mentor, suggested, I opened an issue ticket explaining the problem because it could be useful for other developers.
39 3 Manuel Madrid
40 8 Manuel Madrid
I uploaded the installation package to the project site at:
41 1 Manuel Madrid
42 3 Manuel Madrid
https://redmine.gvsig.net/redmine/attachments/download/895/gvSIG-desktop-2.1.0-org.gvsig.jexcel.app.mainplugin-1.0.0-SNAPSHOT-1-testing-all-all-j1_5.gvspkg
43 3 Manuel Madrid
44 1 Manuel Madrid
I also opened a ticket asking the gvSIG project admins for adding it to the official package repository:
45 8 Manuel Madrid
46 8 Manuel Madrid
https://redmine.gvsig.net/redmine/issues/2587
47 1 Manuel Madrid
48 10 Manuel Madrid
h3. What do I plan on doing next week?
49 9 Manuel Madrid
50 9 Manuel Madrid
I will test the package and will create user documentation for the current functionalities.
51 3 Manuel Madrid
52 10 Manuel Madrid
h3. Am I blocked on anything?
53 3 Manuel Madrid
54 9 Manuel Madrid
Not really.
55 3 Manuel Madrid
56 10 Manuel Madrid
h2. Week 4
57 1 Manuel Madrid
58 10 Manuel Madrid
h3. What did I get done this week?
59 3 Manuel Madrid
60 9 Manuel Madrid
I fixed some bugs related with the detection of the columns types. Now the plugin already recognize the following types: integer, long, float and double. The rest of the data is managed as string.
61 1 Manuel Madrid
62 9 Manuel Madrid
I finally decided to go for the spatial support. I made some changes and now the plugin is already able to load tables containing coordinates (X,Y and Z) as point layers.
63 3 Manuel Madrid
64 11 Manuel Madrid
h3. What do I plan on doing next week?
65 1 Manuel Madrid
66 9 Manuel Madrid
I will get to know how to generate the plugin package. Then I will generate an addon that could be installed from the gvSIG addons manager. I will check that it can be installed on the last gvSIG 2.1 build (2227). Finally I will upload the package to the gvSIG official repo so it can be installed by everyone.
67 3 Manuel Madrid
68 11 Manuel Madrid
h3. Am I blocked on anything?
69 3 Manuel Madrid
70 9 Manuel Madrid
I had some problems trying to use the latest version of the gvSIG library org.gvsig.tools. I wanted to use it as it has some interesting bugfixes but I finally couldn't.
71 3 Manuel Madrid
72 9 Manuel Madrid
Since those changes won't be available until the next gvSIG build release, Joaquín, my mentor, suggested to take a workaround in the meantime.
73 1 Manuel Madrid
74 11 Manuel Madrid
h2. Week 3
75 3 Manuel Madrid
76 11 Manuel Madrid
h3 What did I get done this week?
77 1 Manuel Madrid
78 9 Manuel Madrid
I adapted the source code of the CSV provider in order to be able to read Excel spreadsheets using the jexcelapi library. Finally I used more amount of source code of the CSV provider than expected.
79 1 Manuel Madrid
80 9 Manuel Madrid
I converted to Excel file format through LibreOffice the following files:
81 9 Manuel Madrid
* http://downloads.gvsig.org/download/geodata/tables/CSV/poblacionINE.csv.zip
82 9 Manuel Madrid
* http://downloads.gvsig.org/download/geodata/tables/CSV/torrent_4.csv.zip
83 7 Manuel Madrid
84 9 Manuel Madrid
I uploaded them to the plugin folder and used them for testing the data loading.
85 7 Manuel Madrid
86 9 Manuel Madrid
Now it is already possible to load them as tables in gvSIG with minor issues that I will try to fix the next week.
87 1 Manuel Madrid
88 11 Manuel Madrid
h3. What do I plan on doing next week?
89 7 Manuel Madrid
90 9 Manuel Madrid
I will fix some issues affecting the detection of the column types.
91 1 Manuel Madrid
92 9 Manuel Madrid
Depending on how long takes me to fix this issues I will consider to address the implementation of the spacial data support, despite it was initially planned in the next iteration, some weeks later.
93 1 Manuel Madrid
94 11 Manuel Madrid
h3. Am I blocked on anything?
95 1 Manuel Madrid
96 9 Manuel Madrid
I thought I could get more information from the Excel file than I finally got, as I couldn't get the information regarding the column type and the headers, in case they had.
97 1 Manuel Madrid
98 9 Manuel Madrid
This made me spend more time than expected studying the jexcelapi needlessly as I finally reused some of the CSV provider source code. I have to say that this made me think if using the jexcelapi library was the right decision but I finally decided to carry on with it. 
99 1 Manuel Madrid
100 11 Manuel Madrid
h2. Week 2
101 1 Manuel Madrid
102 11 Manuel Madrid
h3. What did I get done this week?
103 7 Manuel Madrid
104 9 Manuel Madrid
* Created the maven multi-mode structure for the project.
105 9 Manuel Madrid
* Added the library modules and configuration files needed to compile and deploy the gvSIG plugin.
106 9 Manuel Madrid
* Uploaded the project to the SVN:
107 9 Manuel Madrid
 https://devel.gvsig.org/svn/gvsig-jexcel
108 1 Manuel Madrid
109 3 Manuel Madrid
The SVN is also available from the gvSIG Redmine:
110 9 Manuel Madrid
 https://devel.gvsig.org/redmine/projects/gvsig-jexcel/repository
111 3 Manuel Madrid
112 11 Manuel Madrid
h3. What do I plan on doing next week?
113 3 Manuel Madrid
114 7 Manuel Madrid
Next week I will try to have a preliminar version of the plugin that allows just to load data, without taking into account types and parameters.
115 7 Manuel Madrid
116 11 Manuel Madrid
h3. Am I blocked on anything?
117 7 Manuel Madrid
118 12 Manuel Madrid
Had problems to find where to register the new data provider.
119 12 Manuel Madrid
120 12 Manuel Madrid
It was specially time-consuming to get familiar with the maven project structure.
121 12 Manuel Madrid
122 12 Manuel Madrid
I also found some problems to upload the source code to the SVN.
123 12 Manuel Madrid
124 12 Manuel Madrid
I was not sure if some aspects of the maven general configuration are correct.
125 3 Manuel Madrid
126 9 Manuel Madrid
Finally I could fix all those problems so I made the expected progress.
127 3 Manuel Madrid
128 11 Manuel Madrid
h2. Week 1
129 3 Manuel Madrid
130 11 Manuel Madrid
h3. What did you get done this week?
131 3 Manuel Madrid
132 9 Manuel Madrid
In order to implement the Excel data provider for gvSIG I will use as a basis a Java library that provides access to Excel data.
133 7 Manuel Madrid
134 9 Manuel Madrid
I considered the following alternatives:
135 15 Manuel Madrid
* POI-HSSF and POI-XSSF - Java API To Access Microsoft Excel Format Files
136 15 Manuel Madrid
* SmartXLS for Java
137 15 Manuel Madrid
* Java Excel API
138 7 Manuel Madrid
139 9 Manuel Madrid
I finally decided to go for the last one as it is powerful enough and it looks quite simple. It seems that this project doesn't have activity since 2010 but I hope this is not a problem.
140 7 Manuel Madrid
141 9 Manuel Madrid
Those are the most relevant links of this library:
142 18 Manuel Madrid
* http://www.andykhan.com/jexcelapi/
143 18 Manuel Madrid
* http://sourceforge.net/projects/jexcelapi/?source=navbar
144 18 Manuel Madrid
* http://search.maven.org/#artifactdetails|net.sourceforge.jexcelapi|jxl|2.6.12|jar
145 3 Manuel Madrid
146 7 Manuel Madrid
I've got a project within the gvSIG project infrastructure:
147 14 Manuel Madrid
 https://devel.gvsig.org/redmine/projects/gvsig-jexcel
148 3 Manuel Madrid
149 7 Manuel Madrid
The source code will be stored at:
150 9 Manuel Madrid
 https://devel.gvsig.org/svn/gvsig-jexcel
151 3 Manuel Madrid
152 11 Manuel Madrid
h3 What do you plan on doing next week?
153 7 Manuel Madrid
154 9 Manuel Madrid
I plan to create the Maven projects infrastructure. I will use as a basis the following gvSIG projects:
155 9 Manuel Madrid
 * gvSIG data provider for DGN
156 3 Manuel Madrid
    https://devel.gvsig.org/redmine/projects/gvsig-dgn
157 9 Manuel Madrid
 * gvSIG data provider for DXF
158 3 Manuel Madrid
    https://devel.gvsig.org/redmine/projects/gvsig-dxf
159 3 Manuel Madrid
160 9 Manuel Madrid
I also will use the gvSIG CVS data provider to compose the project skeleton.
161 3 Manuel Madrid
162 11 Manuel Madrid
h3. Are you blocked on anything?
163 3 Manuel Madrid
164 9 Manuel Madrid
Not, so far.