公司內部某單位不知道 何謂 "測試環境是啥"
特地說明==
以軟工上線流程來說會有三個階段
1. [測試環境]的上線及測試
.此階段的所有資料都是假的.
.其目的在於資料欄位的正確性
2. 測試[正式環境]
.此階段的所有資料都是真的.
.此階段目的在於測試各家廠商
的正式環境是否正常運行.因為我們在#1不會知道他們的正式
環境是否正常
.若此步驟的環節有錯,我們就不能進入第三步驟.
3. [正式環境]上線
.本系統與各家廠商的系統正式環境
都正常運行才會到這步驟
所以如果我們直接就從#1進入#3是無法確定
我們自己的系統與各家廠商的系統的正式環境是正常的,
此時勢必會造成更多問題需要處理(因為已經有外部的使用者在使用)
廣告
2016年9月25日 星期日
2016年9月22日 星期四
[java] dynamic key-value set from config.properties
config.properties
terminalID =abStoreA1: 11199942, abStoreWeekend: 11199943, abStoreEP: 11199944
LoadPropertyUtil.java
public class LoadPropertyUtil { private static MapmapTerminalID = new HashMap (); public final static String merchantID = PropertyLoader.getInstance().getValue(Constants.MERCHANT_ID_KEY); public final static String authMessageType = PropertyLoader.getInstance().getValue(Constants.AUTH_MESSAGE_TYPE_KEY); public final static String authProcessingCode = PropertyLoader.getInstance().getValue(Constants.AUTH_PROCESSING_CODE_KEY); public final static String authPosEntryMode = PropertyLoader.getInstance().getValue(Constants.AUTH_POSENTRYMODE_KEY); public final static String inquireAuthMessageType = PropertyLoader.getInstance().getValue(Constants.INQUIRE_AUTH_MESSAGE_TYPE_KEY); public final static String inquireAuthProcessingCode = PropertyLoader.getInstance().getValue(Constants.INQUIRE_AUTH_PROCESSING_CODE_KEY); public final static String inquireAuthPosEntryMode = PropertyLoader.getInstance().getValue(Constants.INQUIRE_AUTH_POSENTRYMODE_KEY); static { /** * split the tid property "srcProject1:TID1,srcProject2:TID2,srcProject3:TID3" */ String[] tIDs = PropertyLoader.getInstance().getValue(Constants.TERMINAlID_KEY).split(","); for (String string : tIDs) { String[] pair = string.split(":"); if(pair.length == 2) mapTerminalID.put(pair[0].trim(), pair[1].trim()); } } public static String getTerminalID(String srcProject) { return mapTerminalID.get(srcProject); } public static boolean containsSrcProjectName(String srcProject) { if (srcProject!=null && srcProject.length()>0) { return mapTerminalID.containsKey(srcProject); } return false; } }
PropertyLoader.java
public class PropertyLoader { private static PropertyLoader instance = null; private Properties props = null; /* Singleton Design Pattern */ private PropertyLoader() { try { props = new Properties(); props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(Constants.PROPS_FILE_NAME)); } catch (IOException e) { e.printStackTrace(); } } public static synchronized PropertyLoader getInstance() { if (instance == null) instance = new PropertyLoader(); return instance; } public String getValue(String propKey) { return this.props.getProperty(propKey); } }
using example
LoadPropertyUtil.getTerminalID("abStoreA1")
[java] Extract digits from a string in Java
A: str.replaceAll("[^0-9]", "") B: str.replaceAll("\\D+","") C: public static String stripNonDigits( final CharSequence input /* inspired by seh's comment */){ final StringBuilder sb = new StringBuilder( input.length() /* also inspired by seh's comment */); for(int i = 0; i < input.length(); i++){ final char c = input.charAt(i); if(c > 47 && c < 58){ sb.append(c); } } return sb.toString();}
http://stackoverflow.com/questions/4030928/extract-digits-from-a-string-in-java
[java] ftp upload fail (enterLocalPassiveMode)
ftpClient .connect (Constants . FTP_URL) ; ftpClient .login (Constants . FTP_ID, Constants . FTP_PWD) ; ftpClient .enterLocalPassiveMode ();
[java] multipart/form-data POST request using Java | mailgun with attachment
CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( new AuthScope(HOST_NAME, PORT), new UsernamePasswordCredentials(USER_NAME, TOKEN)); CloseableHttpClient httpclient = HttpClients.custom() .setDefaultCredentialsProvider(credsProvider) .build(); try { HttpPost httpPost = new HttpPost(BASE_URL + EMAIL_API_NAME); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addBinaryBody("attachment", new File("D:/opt/test.pdf"), ContentType.APPLICATION_OCTET_STREAM, "file.ext"); builder.addTextBody("from", FROM_ADDRESS, ContentType.APPLICATION_JSON); builder.addTextBody("to", toEmail, ContentType.APPLICATION_JSON); builder.addTextBody("bcc", bcc, ContentType.APPLICATION_JSON); builder.addTextBody("subject", subject, ContentType.APPLICATION_JSON); builder.addTextBody("html", this.loadTemplate(template, values), ContentType.APPLICATION_JSON); HttpEntity multipart = builder.build(); httpPost.setEntity(multipart); CloseableHttpResponse response2 = httpclient.execute(httpPost); log.info(response2.toString()); try { System.out.println(response2.getStatusLine()); HttpEntity entity2 = response2.getEntity(); // do something useful with the response body // and ensure it is fully consumed EntityUtils.consume(entity2); } finally { response2.close(); } } finally { httpclient.close(); }
ref:http://stackoverflow.com/questions/1378920/how-can-i-make-a-multipart-form-data-post-request-using-java
[java] isKeysExistInMap (keys ,map )
package test; import java. util. ArrayList; import java. util. HashMap; import java .util . List; public class testMapContainMultiKey { public static void main( String[] args ) { // TODO Auto-generated method stub ArrayList< String> keys = new ArrayList< String> (); keys .add ("a" ); keys .add ("b" ); HashMap< String, String > map = new HashMap<> (); map .put ("a" , "a" ); map .put ("c" , "b" ); System. out .println ( isKeysExistInMap (keys ,map ) ); } public static boolean isKeysExistInMap( ArrayList< String> keys , HashMapmap ) { boolean result = true; for (String key : keys) { result = map. containsKey (key ); if (result == false ) { return result; } } return result; } }
訂閱:
文章 (Atom)