dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #06271
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1970: dhis-mobile: Improved auto-importing, logging and creating non-existing periods
------------------------------------------------------------
revno: 1970
committer: Saptarshi <sunbiz@xxxxxxxxx>
branch nick: trunk
timestamp: Tue 2010-06-08 00:30:02 +0530
message:
dhis-mobile: Improved auto-importing, logging and creating non-existing periods
modified:
dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/SmsService.java
dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/api/DefaultMobileImportService.java
dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/api/XmlCreatorService.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/SmsService.java'
--- dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/SmsService.java 2010-06-03 07:25:02 +0000
+++ dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/SmsService.java 2010-06-07 19:00:02 +0000
@@ -147,7 +147,7 @@
{
serv.stopService();
setServiceStatus( false );
- return "";
+ return "SERVICE STOPPED";
} catch ( Exception ex )
{
ex.printStackTrace();
@@ -198,6 +198,7 @@
{
try
{
+ getService().getLogger().logInfo( "Starting processing message", null, null );
InboundBinaryMessage binaryMsg = (InboundBinaryMessage) message;
byte[] compressedData = binaryMsg.getDataBytes();
String unCompressedText = new String( Compressor.decompress( compressedData ), "UTF-8" );
@@ -205,6 +206,7 @@
String sender = binaryMsg.getOriginator();
Date sendTime = binaryMsg.getDate();
saveData( sender, sendTime, unCompressedText );
+ getService().getLogger().logInfo( "Saved Report. Sending Acknowledgement to " + sender, null, null );
sendAck( sender, "REPORT", unCompressedText );
} catch ( UnsupportedEncodingException uneex )
@@ -213,9 +215,11 @@
return;
} catch ( ClassCastException ccex )
{
+ getService().getLogger().logError( "Error performing ClassCast: ", ccex, null );
return;
} catch ( ArithmeticException aex )
{
+ getService().getLogger().logError( "Error performing arithmatic operation: ", aex, null );
return;
}
}
@@ -265,13 +269,12 @@
@Override
public void saveData( String mobileNumber, Date sendTime, String data )
{
- //TODO: remaining save
xmlCreatorService.setPhoneNumber( mobileNumber );
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd-HH-mm-ss" );
String timeStamp = dateFormat.format( sendTime );
xmlCreatorService.setSendTime( timeStamp );
xmlCreatorService.setInfo( data );
- xmlCreatorService.run();
+ xmlCreatorService.run(); //should be made thread-safe
mobileImportService.importAllFiles();
}
@@ -390,7 +393,6 @@
gateway.setSimPin( pin );
}
- gateway.setProtocol( Protocols.PDU );
if ( inbound.equalsIgnoreCase( "yes" ) )
{
gateway.setInbound( true );
@@ -414,13 +416,13 @@
getService().getLogger().logInfo( "SMSServer: added gateway " + i + " / ", null, null );
} catch ( Exception e )
{
- getService().getLogger().logError( "SMSServer: Unknown Gateway in configuration file!", null, null );
+ getService().getLogger().logError( "SMSServer: Unknown Gateway in configuration file!, " + e.getMessage(), null, null );
e.printStackTrace();
}
}
gatewayLoaded = true;
//</editor-fold>
- return "";
+ return "SUCCESSFULLY STARTED SERVICE";
} else
{
return "ERROR LOADING CONFIGURATION FILE";
@@ -459,6 +461,7 @@
try
{
getService().deleteMessage( msg );
+ getService().getLogger().logInfo( "Deleted message", null, null );
} catch ( Exception e )
{
getService().getLogger().logError( "Error deleting received message!", e, null );
=== modified file 'dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/api/DefaultMobileImportService.java'
--- dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/api/DefaultMobileImportService.java 2010-06-03 07:25:02 +0000
+++ dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/api/DefaultMobileImportService.java 2010-06-07 19:00:02 +0000
@@ -27,7 +27,6 @@
package org.hisp.dhis.mobile.api;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -59,10 +58,12 @@
import org.hisp.dhis.period.MonthlyPeriodType;
import org.hisp.dhis.period.Period;
import org.hisp.dhis.period.PeriodService;
+import org.hisp.dhis.period.PeriodType;
import org.hisp.dhis.source.Source;
import org.hisp.dhis.user.User;
import org.hisp.dhis.user.UserCredentials;
import org.hisp.dhis.user.UserStore;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -83,6 +84,11 @@
@Autowired
private LocationManager locationManager;
+ public void setLocationManager( LocationManager locationManager )
+ {
+ this.locationManager = locationManager;
+ }
+
private UserStore userStore;
public void setUserStore( UserStore userStore )
@@ -147,13 +153,14 @@
List<User> allUsers = new ArrayList<User>( userStore.getAllUsers() );
- User selectedUser = new User();
+ User selectedUser = null;
for ( User user : allUsers )
{
if ( user.getPhoneNumber() != null && user.getPhoneNumber().equalsIgnoreCase( mobileNumber ) )
{
selectedUser = user;
+ break;
}
}
@@ -168,14 +175,18 @@
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
List<Period> monthlyPeriods = null;
+ PeriodType pt = null;
if ( periodType.equals( "3" ) )
{
- monthlyPeriods = new ArrayList<Period>( periodService.getPeriodsByPeriodType( new MonthlyPeriodType() ) );
+ pt = new MonthlyPeriodType();
+ monthlyPeriods = new ArrayList<Period>( periodService.getPeriodsByPeriodType( pt ) );
+
} else
{
if ( periodType.equals( "1" ) )
{
- monthlyPeriods = new ArrayList<Period>( periodService.getPeriodsByPeriodType( new DailyPeriodType() ) );
+ pt = new DailyPeriodType();
+ monthlyPeriods = new ArrayList<Period>( periodService.getPeriodsByPeriodType( pt ) );
}
}
@@ -188,8 +199,30 @@
}
}
- return null;
-
+ Period period = pt.createPeriod( dateFormat.parse( startDate ) );
+ period = reloadPeriodForceAdd( period );
+ periodService.addPeriod( period );
+
+ return period;
+ }
+
+ private final Period reloadPeriod( Period period )
+ {
+ return periodService.getPeriod( period.getStartDate(), period.getEndDate(), period.getPeriodType() );
+ }
+
+ private final Period reloadPeriodForceAdd( Period period )
+ {
+ Period storedPeriod = reloadPeriod( period );
+
+ if ( storedPeriod == null )
+ {
+ periodService.addPeriod( period );
+
+ return period;
+ }
+
+ return storedPeriod;
}
@Override
@@ -449,6 +482,7 @@
}
@Override
+ @Transactional
public void importAllFiles()
{
try
=== modified file 'dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/api/XmlCreatorService.java'
--- dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/api/XmlCreatorService.java 2010-06-03 07:25:02 +0000
+++ dhis-mobile/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/api/XmlCreatorService.java 2010-06-07 19:00:02 +0000
@@ -84,6 +84,7 @@
@Override
public void run()
{
+ System.out.println( "Info to convert to XML: " + info );
String dhis2Home = System.getenv( "DHIS2_HOME" );
String[] text = info.split( "#" );
String msgVersion = text[0];