forked from Coded/SIPRP
no message
git-svn-id: https://svn.coded.pt/svn/SIPRP@322 bb69d46d-e84e-40c8-a05a-06db0d6337410'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
parent
11757fbb90
commit
9fcd7bbcb5
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Update.java
|
||||
*
|
||||
* Created on 26 de Setembro de 2006, 12:13
|
||||
*
|
||||
* To change this template, choose Tools | Template Manager
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package siprp.update;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fpalma
|
||||
*/
|
||||
public interface Update
|
||||
{
|
||||
public double getStartVersion();
|
||||
public double getEndVersion();
|
||||
public String[] listChanges();
|
||||
public void doUpdate() throws Exception;
|
||||
}
|
||||
@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Updater.java
|
||||
*
|
||||
* Created on 26 de Setembro de 2006, 11:49
|
||||
*
|
||||
* To change this template, choose Tools | Template Manager
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package siprp.update;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.evolute.utils.*;
|
||||
import com.evolute.utils.arrays.*;
|
||||
import com.evolute.utils.db.*;
|
||||
import com.evolute.utils.sql.*;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fpalma
|
||||
*/
|
||||
public class UpdateList
|
||||
{
|
||||
protected static final Update UPDATE_LIST[] =
|
||||
new Update[]{ new siprp.update.updates.V6_1_To_V7_0() };
|
||||
|
||||
protected static Executer EXECUTER;
|
||||
protected static double version = -1;
|
||||
|
||||
/** Creates a new instance of Updater */
|
||||
private UpdateList()
|
||||
{
|
||||
}
|
||||
|
||||
public static double getCurrentVersion()
|
||||
throws Exception
|
||||
{
|
||||
if( version < 0 )
|
||||
{
|
||||
version = getVersion();
|
||||
}
|
||||
return version;
|
||||
}
|
||||
|
||||
public static Update []getUpdates()
|
||||
throws Exception
|
||||
{
|
||||
if( version < 0 )
|
||||
{
|
||||
version = getVersion();
|
||||
}
|
||||
Vector validUpdates = new Vector();
|
||||
for( int n = 0; n < UPDATE_LIST.length; n++ )
|
||||
{
|
||||
if( version <= UPDATE_LIST[ n ].getStartVersion() )
|
||||
{
|
||||
validUpdates.add( UPDATE_LIST[ n ] );
|
||||
}
|
||||
}
|
||||
return ( Update [] ) validUpdates.toArray( new Update[ validUpdates.size() ] );
|
||||
}
|
||||
|
||||
protected static double getVersion()
|
||||
throws Exception
|
||||
{
|
||||
DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
|
||||
EXECUTER = dbm.getSharedExecuter();
|
||||
try
|
||||
{
|
||||
return readVersion();
|
||||
}
|
||||
catch( Exception ex )
|
||||
{
|
||||
createVersionTable();
|
||||
}
|
||||
return readVersion();
|
||||
}
|
||||
|
||||
protected static double readVersion()
|
||||
throws Exception
|
||||
{
|
||||
Select select =
|
||||
new Select( new String[]{ "version" },
|
||||
new String[]{ "MAX(current_version)" },
|
||||
null );
|
||||
Virtual2DArray array = EXECUTER.executeQuery( select );
|
||||
return ( ( Number ) array.get( 0, 0 ) ).doubleValue();
|
||||
}
|
||||
|
||||
protected static void createVersionTable()
|
||||
throws Exception
|
||||
{
|
||||
com.evolute.utils.sql.Update update =
|
||||
new com.evolute.utils.sql.Update( "CREATE TABLE version( current_version float );" );
|
||||
EXECUTER.executeQuery( update );
|
||||
Insert insert =
|
||||
new Insert( "version",
|
||||
new Assignment[]{
|
||||
new Assignment( new Field( "current_version" ), new Double( 0.1 ) ) } );
|
||||
EXECUTER.executeQuery( insert );
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,188 @@
|
||||
/*
|
||||
* UpdateWindow.java
|
||||
*
|
||||
* Created on 26 de Setembro de 2006, 11:54
|
||||
*
|
||||
* To change this template, choose Tools | Template Manager
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package siprp.update;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import javax.swing.*;
|
||||
import java.util.*;
|
||||
|
||||
import com.evolute.utils.*;
|
||||
import com.evolute.utils.date.*;
|
||||
import com.evolute.utils.db.*;
|
||||
import com.evolute.utils.sql.*;
|
||||
import com.evolute.utils.ui.*;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fpalma
|
||||
*/
|
||||
public class UpdateWindow extends JFrame
|
||||
implements ActionListener
|
||||
{
|
||||
protected JTextArea logText;
|
||||
protected JButton closeButton;
|
||||
|
||||
protected Update updates[];
|
||||
protected String filename;
|
||||
|
||||
public static void main( String args[] )
|
||||
{
|
||||
UpdateWindow updateWindow = new UpdateWindow();
|
||||
updateWindow.update();
|
||||
}
|
||||
|
||||
/** Creates a new instance of UpdateWindow */
|
||||
public UpdateWindow()
|
||||
{
|
||||
setupComponents();
|
||||
}
|
||||
|
||||
private void setupComponents()
|
||||
{
|
||||
setTitle( "Actualiza\u00e7\u00e3o do Software" );
|
||||
setSize( 800, 600 );
|
||||
logText = new JTextArea();
|
||||
logText.setLineWrap( true );
|
||||
logText.setWrapStyleWord( true );
|
||||
logText.setEditable( true );
|
||||
JScrollPane scp =
|
||||
new JScrollPane( logText, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
|
||||
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
|
||||
closeButton = new JButton( "Fechar" );
|
||||
|
||||
setLayout( new BorderLayout() );
|
||||
add( scp, BorderLayout.CENTER );
|
||||
add( closeButton, BorderLayout.SOUTH );
|
||||
|
||||
closeButton.setEnabled( false );
|
||||
closeButton.addActionListener( this );
|
||||
|
||||
setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE );
|
||||
}
|
||||
|
||||
public void actionPerformed( ActionEvent e )
|
||||
{
|
||||
Object source = e.getSource();
|
||||
if( source.equals( closeButton ) )
|
||||
{
|
||||
close();
|
||||
}
|
||||
}
|
||||
|
||||
public void close()
|
||||
{
|
||||
SwingUtilities.invokeLater( new Runnable(){
|
||||
public void run()
|
||||
{
|
||||
setVisible( false );
|
||||
dispose();
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
public void update()
|
||||
{
|
||||
log( "A verificar a exist\u00eancia de actualiza\u00e7\u00f5es...\n" );
|
||||
try
|
||||
{
|
||||
double version = UpdateList.getCurrentVersion();
|
||||
log( "Vers\u00e3o actual: " + ( version < 6.1 ? 6.1 : version ) + "\n" );
|
||||
updates = UpdateList.getUpdates();
|
||||
}
|
||||
catch( Exception ex )
|
||||
{
|
||||
setVisible( true );
|
||||
log( "Erro a verificar actualiza\u00e7\u00f5es!!!" );
|
||||
ex.printStackTrace();
|
||||
updates = new Update[ 0 ];
|
||||
}
|
||||
if( updates.length > 0 )
|
||||
{
|
||||
setVisible( true );
|
||||
log( "Existe " + ( updates.length > 1 ? "m " : " " ) + updates.length +
|
||||
" actualiza\u00e7" + ( updates.length > 1 ? "\u00f5es... " : "\u00e3o\n" ) );
|
||||
boolean ok = doUpdates();
|
||||
if( ok )
|
||||
{
|
||||
log( "**** Actualiza\u00e7\u00f5es terminadas ****\n" );
|
||||
}
|
||||
else
|
||||
{
|
||||
log( "**** Actualiza\u00e7\u00f5es abortadas ****\n" );
|
||||
log( "\nPode favor contacte a EVOLUTE\n" );
|
||||
}
|
||||
|
||||
}
|
||||
closeButton.setEnabled( true );
|
||||
}
|
||||
|
||||
protected void log( final String newLog )
|
||||
{
|
||||
SwingUtilities.invokeLater( new Runnable(){
|
||||
public void run()
|
||||
{
|
||||
logText.append( newLog );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
protected boolean doUpdates()
|
||||
{
|
||||
double last = 0.1;
|
||||
log( "**** A realizar actualiza\u00e7\u00f5es... **** \n" );
|
||||
for( int n = 0; n < updates.length; n++ )
|
||||
{
|
||||
last = updates[ n ].getEndVersion();
|
||||
String msg = " " + updates[ n ] + "... \n";
|
||||
String changes[] = updates[ n ].listChanges();
|
||||
for( int c = 0; c < changes.length; c++ )
|
||||
{
|
||||
msg += " " + changes[ c ] + "\n";
|
||||
}
|
||||
log( msg );
|
||||
try
|
||||
{
|
||||
updates[ n ].doUpdate();
|
||||
}
|
||||
catch( Exception ex )
|
||||
{
|
||||
log( "ERRO ! ! !\nA abortar actualiza\u00e7\u00f5es\n" );
|
||||
ex.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
|
||||
Executer executer = dbm.getSharedExecuter();
|
||||
com.evolute.utils.sql.Update update =
|
||||
new com.evolute.utils.sql.Update( "version",
|
||||
new Assignment[]{
|
||||
new Assignment( new Field( "current_version" ), new Double( last ) ) },
|
||||
null );
|
||||
executer.executeQuery( update );
|
||||
log( "Vers\u00e3o actualizada para: " + last + "\n" );
|
||||
return true;
|
||||
}
|
||||
catch( Exception ex )
|
||||
{
|
||||
log( "ERRO ! ! !\nA abortar actualiza\u00e7\u00f5es\n" );
|
||||
ex.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public int getUpdateCount()
|
||||
{
|
||||
return updates.length;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* V6_1_To_V7_0.java
|
||||
*
|
||||
* Created on 26 de Setembro de 2006, 11:48
|
||||
*
|
||||
* To change this template, choose Tools | Template Manager
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package siprp.update.updates;
|
||||
|
||||
import com.evolute.utils.*;
|
||||
import com.evolute.utils.arrays.*;
|
||||
import com.evolute.utils.db.*;
|
||||
import com.evolute.utils.sql.*;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fpalma
|
||||
*/
|
||||
public class V6_1_To_V7_0
|
||||
implements siprp.update.Update
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of V6_1_To_V7_0
|
||||
*/
|
||||
public V6_1_To_V7_0()
|
||||
{
|
||||
}
|
||||
|
||||
public String []listChanges()
|
||||
{
|
||||
return new String[]{ "Acrescentar campo de contribuinte nos prestadores",
|
||||
"Acrescentar campo de prestador nas marca\u00e7\u00f5es",
|
||||
"Acrescentar campo de prestador no hist\u00f3rico das marca\u00e7\u00f5es"};
|
||||
}
|
||||
|
||||
public double getStartVersion()
|
||||
{
|
||||
return 6.1;
|
||||
}
|
||||
|
||||
public double getEndVersion()
|
||||
{
|
||||
return 7.0;
|
||||
}
|
||||
|
||||
public void doUpdate()
|
||||
throws Exception
|
||||
{
|
||||
DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
|
||||
Executer executer = dbm.getSharedExecuter();
|
||||
com.evolute.utils.sql.Update update =
|
||||
new com.evolute.utils.sql.Update( "ALTER TABLE prestadores ADD contribuinte VARCHAR(64);" );
|
||||
executer.executeQuery( update );
|
||||
update = new com.evolute.utils.sql.Update( "ALTER TABLE marcacoes_trabalhador ADD prestador_id int4 REFERENCES prestadores( id );" );
|
||||
executer.executeQuery( update );
|
||||
update = new com.evolute.utils.sql.Update( "ALTER TABLE marcacoes_trabalhador_estados ADD prestador_id int4 REFERENCES prestadores( id );" );
|
||||
executer.executeQuery( update );
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return "v6.1 para v7.0";
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue