-
Notifications
You must be signed in to change notification settings - Fork 0
/
appendix-01.tex
500 lines (431 loc) · 23.5 KB
/
appendix-01.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
\appendix
\chapter{Configuração do JBoss e acesso ao banco de dados}
\label{jboss-config}
Neste apêndice veremos como configurar as informações de acesso ao banco de
dados do nosso projeto, bem como demais configurações do nosso servidor de
aplicação (\texttt{JBoss}).
\section{Configuração das propriedades do projeto para acesso ao banco de dados}
Para se configurar o Banco de Dados é necessário modificar o arquivo
\texttt{project.properties} da raiz do projeto, onde se encontram as
propriedades que devem ser alteradas. Os arquivos
\texttt{project.properties} são arquivos onde são definidas propriedades que são
usadas pelo \texttt{MDArte} durante a sua exucação, este, na raiz do projeto,
especificamemte concentra propriedades de acesso ao banco e de \texttt{deploy}
do projeto.
Abaixo estão as propriedades do arquivo de
configuração para cada um dos Bancos de Dados:
\begin{itemize}
\item [Oracle] \hfill
\begin{itemize}
\item dataSource.driver.jar=\textdollar{}\{env.JBOSS\_HOME\}/server/default/lib/ojdbc14.jar
\item dataSource.driver.class=oracle.jdbc.driver.OracleDriver
\item sql.mappings=Oracle9i
\item hibernate.db.dialect=org.hibernate.dialect.Oracle9Dialect
\end{itemize}
\item [SQLServer] \hfill
\begin{itemize}
\item dataSource.driver.jar=\textdollar{}\{env.JBOSS\_HOME\}/server/default/lib/jtds-1.1.jar
\item dataSource.driver.class=net.sourceforge.jtds.jdbc.Driver
\item sql.mappings=MSSQL
\item hibernate.db.dialect=org.hibernate.dialect.SQLServerDialect
\end{itemize}
\item [Postgres] \hfill
\begin{itemize}
\item dataSource.driver.jar=\textdollar{}\{env.JBOSS\_HOME\}/server/default/lib/postgresql.jar
\item dataSource.driver.class=org.postgresql.Driver
\item defaultHibernateGeneratorClass=sequence
\item sql.mappings=PostgreSQL
\item hibernate.db.dialect=org.hibernate.dialect.PostgreSQLDialect
\end{itemize}
\item [MySQL] \hfill
\begin{itemize}
\item dataSource.driver.jar=\textdollar{}\{env.JBOSS\_HOME\}/server/default/lib/mysql-connector-java-5.1.6-bin.jar
\item dataSource.driver.class=com.mysql.jdbc.Driver
\item defaultHibernateGeneratorClass=native
\item sql.mappings=MySQL
\item hibernate.db.dialect=org.hibernate.dialect.MySQLDialect
\end{itemize}
\end{itemize}
Tais propriedades são as responsáveis por definir qual banco de dados estará
sendo usado no projeto, bem como qual biblioteca será usada para a comunicação
com o banco. Propriedades como a \texttt{url} do banco, nome de usuário, senha
etc. não precisam ser alteradas uma vez que, a seguir, as definiremos diretamente na
configuração do \texttt{JBoss}.
\section{Configuração do JBoss}
Agora veremos como configurar o servidor \texttt{JBoss} e qual a finalidade dos
arquivos utilizados para tal fim.
\subsection{Configuração dos datasources utilizados pelo JBoss}
Para a configuração dos datasources utilizados pelo \texttt{JBoss} é preciso
criar ou alterar o arquivo responsável por registrar e gerenciar tais fontes de dados.
O arquivo que deve estar localizado no diretório
\texttt{JBOSS\_HOME/server/default/deploy/}, com formação do nome terminando com
\texttt{-ds.xml} (ex.: \texttt{aplicacoes-ds.xml)}, que deve ter a \texttt{tag}
\texttt{<local-tx-datasource>} preenchida de acordo com as informações
fornecidas no arquivo \texttt{<projeto>/project.properties}.
Exemplo (usando banco \texttt{Postgres}):
\begin{framed}
\lstinputlisting[language=xml]{files/xml/sistemaacademico-ds.xml}
\end{framed}
Repare que no exemplo anterior, o nome do \texttt{Data Source} é
\texttt{sistemaacademicoDS}, que deve ser o mesmo nome informado no arquivo
\texttt{project.properties} no diretório raiz do projeto. Aqui também definimos algumas outras propriedades do
datasource \texttt{sistemaacademicoDS} que haviam ficado em aberto antes como a
\texttt{url} de conexão com o servidor de banco de dados, usuario e senha.
\subsection{Configuração do acesso das aplicações ao banco de dados}
Para tal, alteraremos o arquivo \texttt{login-config.xml}, localizado no
diretório \texttt{JBOSS\_HOME/server/default/conf/}. Alteraremos o arquivo
adicionando uma tag \texttt{<application-police name='<nomeAplicacao>'>} com
seus campos devidamente preenchidos como no exemplo abaixo, onde temos a
configuração para o \texttt{Sistema Acadêmico} deste tutorial.
\begin{framed}
\lstinputlisting[language=xml]{files/xml/sistemaacademico-login-config.xml}
\end{framed}
O arquivo alterado concentra as informações de login para as diversas aplicações
sendo rodadas no servidor, informações como: datasource que contém os dados de
usuário usados no \texttt{login}, \texttt{query} a ser rodada para buscar os
dados de usuário, algoritmo de \texttt{hash} da senha etc. As informações
presentes nesse arquivo permitirão a aplicação do \texttt{Sistema Acadêmico} se
conectar a base de dados e validar o usuário no momento de \texttt{login}.
\chapter{Configurando repositório externo do Maven}
\label{maven-config}
Durante a sua execução, o \texttt{maven} faz acesso a diversos arquivos
correspondentes à dependencias externas que o projeto em construção necessite, tanto para sua
geração, quanto compilação. Para isso, o \texttt{maven} mantém um repositório
local na máquina, no caminho \texttt{~/.maven/repository/}, onde mantém salvas todas as
dependências já usadas, a fim de reutilizá-las no futuro, caso necessário.
Quando determinado projeto possui uma dependência que não existe ainda no
repositório local, o \texttt{maven} busca esses arquivos no repositório remoto
configurado.
No momento da configuração do ambiente, o instalador do \texttt{MDArte} já faz
essa configuração, basta responder positivamente à pergunta 'Create Build
Properties?'. Como se pode presumir, o repositório remoto é configurado em um
arquivo \texttt{build.properties}, que deve estar localizado no caminho
\texttt{~/}. O endereco do repositório é definido pela propriedade
'maven.repo.remote', bastando alterá-lo no arquivo para ter configurado ou
reconfigurado tal propriedade.
\chapter{Alterações e cuidados a serem feitos ao migrar uma aplicação que
utiliza a versão 17-RC9 para 19-RC9}
Segue abaixo todos os passos que deverão ser realizados para migrar uma aplicação utilizando a versão 17-RC9 para 19-RC9.
\section{Correção dos imports de classes do util}
Essa alteração se deve ao surgimento de conflito entre pacotes do jar do
controle de acesso que tem um pacote util próprio e o pacote util do projeto. Portanto, invés do pacote ser util, ele será <pacote do projeto>.util . Por exemplo:
\begin{framed}
\begin{lstlisting}[language=java, breaklines=true]
import util.Constantes; //errado
import br.mdarte.exemplo.academico.util.Constantes; //correto
\end{lstlisting}
\end{framed}
\section{Remoção do pacote util antigo}
Remover o pacote util antigo para evitar conflitos na compilação já que ele não
é removido pelo maven.
\section{Atualizar o Constantes.java}
Adicionar as seguintes linhas no seu Constantes.java:
\begin{framed}
\begin{lstlisting}[language=java]
static public final String SISTEMA = SistemaAcademico; //aqui voce poe o valor do atributo application.id do build.properties do projeto static public final Integer TABLE\_LINES = 20; static public final Integer TABLE_PAGES = 10;
\end{lstlisting}
\end{framed}
\section{Cuidados com uso de select e double select}
Na versão 17-RC9 parâmetros web, sem ter o valor etiquetado
@andromda.presentation.web.view.field.type setado, eram gerados com variáveis extras no forms. Por exemplo:
\begin{framed}
\begin{lstlisting}[language=java]
private java.lang.Object[] mostrarAteValueList;
private java.lang.Object[] mostrarAteLabelList;
private java.lang.Object[] mostrarAteLabelListDouble;
private java.lang.Object[] mostrarAteLabelListHints;
private java.lang.Object[] mostrarAteLabelListDestination;
\end{lstlisting}
\end{framed}
Estas variáveis são utilizadas para implementação do campo select ou dobleselect
do Struts 1. Na versão 19-RC9 eles só serão gerados caso @andromda.presentation.web.view.field.type esteja setado como select ou doubleselect.
\section{Adição do PaginationStrategy}
Na versão 19-RC9 adicionamos a classe abstrata PaginationStrategy com o intuito
de dar suporte a diferentes tipos de paginação, já que a paginação para um tipo de tabela pode não servir para outro tipo. Foram adicionados PaginationDisplaytag para tabelas normais, PaginationSimple para tabelas Ajax e NoPagination para caso uma paginação não seja especificada. Estas classes estão localizadas no pacote util do projeto.
Na versão 19-RC9, métodos de serviços que retornam Collection recebem como
parâmetro PaginationStrategy. Na versão 17-RC9, recebiam como parâmetro um Integer. Por exemplo:
\begin{framed}
\begin{lstlisting}[language=java]
import br.mdarte.exemplo.academico.util.PaginationStrategy; //correto
public Collection handleExemplo(Integer paginacao) //errado
public Collection handleExemplo(PaginationStrategy paginacao) //correto
\end{lstlisting}
\end{framed}
Em projetos que estão fazendo migração, verificar essas funções e os lugares em
que elas são chamadas para evitar erros de compilação.
\section{Adicionar novos valores no <projeto>/mda/project.properties}
Adicionar as seguintes linhas no arquivo, já que ele e gerado apenas na criação
do projeto:
\begin{framed}
\begin{lstlisting}[language=xml]
maven.andromda.web.modulo.manual.jsp.dir=${maven.src.dir}/../../web/${maven.andromda.module.name.outlet.replace}/src/jsp
maven.andromda.web.custom.jsp.dir=${maven.src.dir}/../../web/src/jsp
\end{lstlisting}
\end{framed}
\section{Adição de propriedades no <projeto>/mda/conf/andromda.xml}
Adicionar a seguinte propriedade nos namespaces ejb e bpm4struts:
\begin{framed}
\begin{lstlisting}[language=xml]
<property name="controleAcessoImplJava"> {maven.andromda.web.manual.java.dir}</property>
\end{lstlisting}
\end{framed}
\section{Alterar build.properties}
Adicionar ou alterar os seguintes atributos:
\begin{framed}
\begin{lstlisting}[language=xml]
cartridge.version=3.1.1.3.4.19-RC9
security.version=1.1.3-RC1
commons.codec.version=1.4
json.simple.version=1.1
\end{lstlisting}
\end{framed}
Não se esquecer de adicionar json-simple-1.1 e common-codec-1.4 no
\textdollar{}JBOSS\_HOME/server/default/lib.
\section{Adição de depêndencias para o maven}
Alterar <projeto>/common/project.xml, adicionado a seguinte dependência:
\begin{framed}
\begin{lstlisting}[language=xml]
<dependency>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>${hibernate.version}</version>
<type>jar</type>
<properties>
<application.dependency>true</application.dependency>
</properties>
</dependency>
\end{lstlisting}
\end{framed}
\section{Atualizar profiles da pasta <projeto>/mda/src/uml/xml.zips}
Para utilizar os novos valores etiquetados, atualize os profiles substituindo-os
pelos arquivos com os xml.zips gerados quando o comando maven foi executado no projeto. Eles estão localizados no repositório do maven que tem caminho <HOME>/.maven/repository/andromda/xml.zips.
\section{Adição do LoginControllerImpl}
Adicionamos LoginControllerImpl com função handlePosLogin(Operador operador,
HttpServletRequest request). Ele substitui a função posLogin do ControleAcessoImpl, retire esta função do ControleAcessoImpl.
Local é <projeto>/web/modelo/compartilhado/src/java/<pacote do projeto setado na
geração>/accessControl/LoginControllerImpl.java.
\chapter{Changelog}
Segue abaixo todas as correções dividas por \texttt{realeases} da versão 19 dos cartuchos.
\section{19-RC1}
\begin{itemize}
\item Identação corrigida de vários arquivos
\item Correção de vários bugs.
\item Remoção de código inútil
\item Alteração de nomes de macros dos templates.
\item Retirada de constantes em alguns templates.
\item Adição do campo AutoComplete.
\item Adição de novs arquivos de JavaScript.
\item Adição do BootStrap para páginas web.
\item Adicionada a opção autocomplete, no WebFieldType do
andromda-profile-presentation.
\item Adicionado o atributo autocomplete no CoppetecStrutsParameter no
BPM4StrutsMetafacadeModel Redirecionameno de módulos do struts 2 funcionando.
\item Profile do bpm4Struts alterado, antes a opção web.view.technology.other
estava vindo com valor default "true", mudado para "false".
\item Adicionada dependência pro json simple.
\item Corrigido bug em que actions que transicionavam para casos de uso de
outro módulo não estavam tendo seu JavaScript gerado.
\item Corrigido bug no redirecionamento entre casos de uso de versões
diferentes do struts.
\item Correção da geração do caminho da transição entre casos de usos.
\item Corrigido a transição de struts 2 para struts 1.
\item Adição do DefaultFilter
\item Templates que geram páginas web para cada tipo de Struts.
\item Arquivos gerados com nome Action2 tem o mesmo nome de Action de Struts
1.
\item Obter o request e o response do ViewContainer é possível
\item Corrigido bug que impedia a produção do page-actions se o caso de uso só
tiver ações como tablelinks.
\item Adição do custom component
\end{itemize}
\section{19-RC2}
\begin{itemize}
\item Correções de formatação de código.
\item Adicionando propriedade controleAcessoImplJava no andromda.xml.
\item Adicionando dependências que faltam ao cartucho hibernate.
\item Retirando a geração de dummys nos pontos de implementação.
\item Corrigido bug de geração de tabelas repetidas.
\item Corrigido erro no setter de campos do tipo hidden.
\item Aprimorando geração do classpath do eclipse.
\item Organizando a geração de projetos renomeando-os com extensão vsl.
\item Geração de projetos tem uma nova pergunta para especificar o banco de
dados a ser usado.
\item Corrigido bug do hidden parameter.
\item Adicionando pergunta para oAuth e corrigindo dependências e imports
relacionados.
\item Correção do destino da geração dos arquivos OAuth.
\item Corrigindo tela de login do Oauth.
\item Tabelas sendo mostradas com abas.
\item Corrigido bug na hora de demonstrar textfields com valor já setado
previamente.
\item Protótipo do CRUD funcionando.
\item MArteManageableModelsLogicImpl implementado.
\item Nomes do arquivos gerados pelo CRUD seguem um padrão.
\item Adição do valor etiquetado @andromda.manageable.web.crudPackageName para
o estereótipo Manageable Gerando xml.zips corretos na hora da geração de projetos novos.
\item Corrigido bug de não gerar page-fields tendo apenas tablelinks.
\item Corrigido bugs de geração de páginas web para o Struts 2.
\item Sistema de erros melhorado.
\item Corrigido layout do login e stacktrace.
\item Adicionados os campos webtype no arquivo na geração.
\item Corrigindo bug na hora da geração de actions por causa de controller sem
operações.
\item Corrigido geração de forms ao impedir geração de código inútil. Template
Form.java.vm criado.
\item Implementação do Remember Me.
\end{itemize}
\section{19-RC3}
\begin{itemize}
\item Retirada de código inútil.
\item Corrigindo posicionamento de elementos de páginas web.
\item Consertando identação de vários templates.
\item Geração dos forms não gera mais bugs.
\item Migrando autocomplete do bootstrap para typeahead.js.
\item Troca de Senha atualizada para o bootstrap.
\item Error page adaptada para bootstrap.
\item Bug na passagem de parametros pelo nextPath corrigido.
\item Pagina de login migrada para o bootstrap 3.0.3
\item Migrando páginas de segurança para o bootstrap 3.
\item Adicionando page-javascript.jspf.vsl para o struts 2.
\item Atualizando formulário pro bootstrap 3.
\item Corrigido bug de passagem de parâmetros.
\item Messages migrado pro bootstrap 3.
\item Titulo da página de login customizável por bean message.
\item Nomes de tabelas customizáveis por bean messages.
\item Tabela já sendo carregada com a primeira aba selecionada e marcação das
abas corrigido.
\item Atualizando classes das divs para bootstrap 3.
\item Atualizando campo de data.
\item Consetando layout das paginas e ajustando geração do blockquote para
campos required para só gerar se houver um campo deste tipo.
\item Imports desnecessários removidos no ControllerImpl do struts 2.
\item Bug quando você seleciona um enumeration como atributo de uma trigger no
modelo consertado.
\item Select construido automaticamente a partir de um atributo enumeration.
\item ControllerImpl gerando os métodos para tratar o autocomplete.
\item Consertando bug no taggedvalue readonly.
\item Geração de enumerados corrigida.
\item Bug do custom-resources dos enumerados corrigido.
\end{itemize}
\section{19-RC4}
\begin{itemize}
\item Nova tag @andromda.common.enumeration.emptyValue que indica se o enumerado é gerado com um valor vazio default
\item Criado o valor etiquetado
@andromda.presentation.web.view.field.enumeration.emptyValue que irá definir se o enumerado gerado automaticamente será com vazio ou não. Colocado uma constraint que essa opção só será colocada se for um select e um enumerado.
\item Layout personalizado (layout e o menu) para os casos de usos open access
\item Criação de um ControllerAbstract para agrupar os métodos comuns aos
controles Mudança dos pacotes do Util.java para não entrar em conflito com outros projetos
\item Criação do UtilAbstract.java para criação de novos métodos auxiliares e
não ter impacto nos projetos Correção de um bug no select no struts 2 onde tinha um valor vazio extra
\item Criação de métodos auxiliares para o Enumerados
\item Criação de métodos auxiliares para recuperar o resource para o struts 2
\item Correção da tela de trocar-senha para o struts 2
\item Correção do bug que não estava guardando a senha quando o remember me é
ativado Adicionando div para tags p
\item Correção de um bug de geração do tiles para struts2
\item Correção do bug de caracteres estranhos na tabela
\item Correção do estilo do typehead
\item Correção da geração do CRUD para enumerados
\item Correção do bug no struts2 que não exibia as exceptions
\item Função isTrue(String) adicionada no UMLMetafacadeUtils.
\end{itemize}
\section{19-RC5}
\begin{itemize}
\item Adicionado o componente editor wysiwyg
\item Correção do bug do caminho do botão em um módulo principal
\item Adicionando diversos métodos para controle do modo operação no
ControllerAbstract Correção do bug onde no Controle do Struts2 estava sendo gerado com .do
\item Identação de diversos arquivos
\item Correção de um bug que não ia para a próxima página em uma tabela
\item Correção de alguns acentos no displaytag
\end{itemize}
\section{19-RC6}
\begin{itemize}
\item Correção da localização do pacote util
\item Implementação do Controle de Acesso 2.0
\item Correção do Servicos.sql para o novo controle de acesso
\item Adição do valor etiquetado @andromda.presentation.web.view.table.type
que define o tipo da tabela gerada Adicionado no Servicos.sql as querys para criar usuario, perfil e sistema
\item Aprimoramento no Servicos.sql para gerar a sequence corretamente
\item Correção do classpath para o novo controle de acesso
\item Correções no componente multibox
\item Correções no componente doubleselect
\item Correções da tagged values readonly para alguns componentes
\item Correções de indentação
\item Correções de algumas máscaras no struts 2 (int, double, float e date)
\item *** Adicionando uma biblioteca jquery.mask. Deverá adicionar a
biblioteca no includes-javascript Adicionado métodos no UtilAbstract
\item Correção no número fixo no project.xml
\item *** No project.xml da raiz no compartilhado está fixo o valor 1.0.
Trocar para \textdollar{}\{application.version\}
\end{itemize}
\section{19-RC7}
\subsection{Aprimoramentos}
\begin{itemize}
\item Nova tabela utilizando carregamento através de AJAX através do valor etiquetado @andromda.presentation.web.action.ajax.table
\item Implementação de hiperlink da tabela AJAX
\item Implementação de imagem com link na tabela AJAX
\item Adicionado nova estrutura para os métodos do DAO para passar a paginação
*
\end{itemize}
\subsection{Correções}
\begin{itemize}
\item Correções de dependências de JS
\item Correções de CSS **
\item Correções do LookUpGrid para o Struts 2
\item Correções do popup para o Struts 2
\item Correções na geração do Servicos.sql
\item Correções de validação do campo money, float e outros
\item Correção do bug no carregar de um caso de uso não exibir a exception
correta (Struts 1 e 2) Correção da validação por e-mail, cartão e range para o Struts 2.
\item Correção do ControleAcessoImpl de não pegar os perfis filhos
\item Atualizando jquery para versão 1.9, pois a 1.7 é incompatível com o
jquery.jtable Removendo dependências desnecessárias (jquery-hashchange)
\item Correções de multibox e double select
\item Remoções de códigos não utilizados
\item Correções feitas na geração de funções com o valor etiquetado
@andromda.persistence.DAOMethod Correções de alguns bugs dos enumerados para serem preenchidos automaticamente na tela
\end{itemize}
* - Terá que adicionar os campos novos nos métodos do DAOImpl
** - Foi removido a classe row dos fields
\section{19-RC8}
\begin{itemize}
\item Adicionando constantes TABLE\_LINES e TABLE\_PAGES
\item Atualizando classpath do eclipse para struts 2.
\item Assinatura de funções que retornam Collections tem linhas e paginas como
parametros adicionados. (removido) Removendo imports desnecessários
\item Adicionando referencia utilDir ao cartucho do hibernate.
\item Corrigindo bug de perda de parametros durante o login.
\item Corrigindo bug do campo radio para struts 2
\item Corrigindo identação
\item Criando valor default para quando tiver uma opção default para o radio
button Indicando qual o template que origina o artefato.
\item Corrigindo endereço do DOCTYPE dos arquivos de configuração do hibernate
\item Melhorias feitas na geração do radio button.
\end{itemize}
\section{19-RC9}
\begin{itemize}
\item Adicionando no pacote util a classe abstrata PaginationStrategy. Ela tem a função de auxiliar a paginação de tabelas. Com essa classe podemos ter diferentes estratégias de paginação para tabelas diferentes ao invés de apenas uma estratégia de paginação em releases anteriores.
\item Adição do método paginateList no UtilAbstract.
\item Corrigido bug de validação do struts 1.
\item Corrigido bug na geração do Controllerimpl.
\item Corrigido bug da geração de arquivos de configuração do hibernate sem
mapeamentos.
\item Correção de bugs na geração do CRUD.
\item Correção de bugs da tabela AJAX.
\end{itemize}
\section{19-RC10}
\begin{itemize}
\item Correção de bug do import do PaginationStrategy no SessionBeanImpl.vsl
\item Correção de identação e codificação de templates.
\item ControllerAbstract sendo gerado no Struts 1. ControllerImpl estendendo ControllerAbstract.
\item Campos tipo custom e editor adicionados ao Struts 1.
\item Arquivos serão gerados com codificação UTF-8.
\item Bootstrap só será gerado para projetos Struts 2.
\item Correção de bug da geração de tabelas. Estava gerando tabelas do struts 2 quando era para gerar do struts 1.
\item Correção de bug do layout do Struts 1.
\item Arquivos page-impl.css.vsl e page-impl.js.vsl serão utilizados por ambos os tipos de Struts.
\item Correção de classes css em arquivos jsp.
\item Correção de erro no Servicos.vsl
\item Correção de bug do import do PaginationStrategy no Controller.java.vsl
\end{itemize}