@Test public void testNullStringParameter(){ jobParameter = new JobParameter((String)null, true); assertEquals(null, jobParameter.getValue()); }
/** * Convenience method that inserts all parameters from the provided * JobParameters. * */ private void insertJobParameters(Long executionId, JobParameters jobParameters) { for (Entry<String, JobParameter> entry : jobParameters.getParameters() .entrySet()) { JobParameter jobParameter = entry.getValue(); insertParameter(executionId, jobParameter.getType(), entry.getKey(), jobParameter.getValue(), jobParameter.isIdentifying()); } }
for (String key : keys) { JobParameter jobParameter = props.get(key); if(jobParameter.isIdentifying()) { String value = jobParameter.getValue()==null ? "" : jobParameter.toString(); stringBuffer.append(key).append("=").append(value).append(";");
@Test public void testHashcodeWithNull(){ jobParameter = new JobParameter((String)null, true); JobParameter testParameter = new JobParameter((String)null, true); assertEquals(testParameter.hashCode(), jobParameter.hashCode()); }
jobParameter = new JobParameter(DateTime.parse(value).toDate(), identifying); jobParameter = new JobParameter(Double.valueOf(value), identifying); jobParameter = new JobParameter(Long.valueOf(value), identifying); jobParameter = new JobParameter(value, identifying); jobParameter.getValue(), jobParameter.getType().name(), jobParameter.isIdentifying()));
/** * Add a new String parameter for the given key. * * @param key - parameter accessor. * @param parameter - runtime parameter * @param identifying - indicates if the parameter is used as part of identifying a job instance * @return a reference to this object. */ public JobParametersBuilder addString(String key, String parameter, boolean identifying) { this.parameterMap.put(key, new JobParameter(parameter, identifying)); return this; }
/** * Typesafe Getter for the Long represented by the provided key. * * @param key The key to get a value for * @return The <code>Double</code> value or {@code null} if the key is absent */ @Nullable public Double getDouble(String key){ if (!parameters.containsKey(key)) { return null; } Double value = (Double)parameters.get(key).getValue(); return value==null ? null : value.doubleValue(); }
private Map<String, String> convertJobParametersToMap(final JobParameters jobParameters) { Map<String, JobParameter> parameters = jobParameters.getParameters(); Map<String, String> convertedParams = new HashMap<String, String>(parameters.size()); Set<Entry<String, JobParameter>> entrySet = parameters.entrySet(); for (Entry<String, JobParameter> entry : entrySet) { String name = entry.getKey(); JobParameter jobParameter = entry.getValue(); String stringValue; if (jobParameter.getType() == ParameterType.STRING) { stringValue = (String) jobParameter.getValue(); } else { stringValue = jobParameter.getValue().toString(); } convertedParams.put(name, stringValue); } return convertedParams; }
/** * Replaces the sensitive String values in the JobParameter value. * * @param jobParameters the original job parameters * @return the sanitized job parameters */ public JobParameters sanitizeJobParameters(JobParameters jobParameters) { Map<String,JobParameter> newJobParameters = new HashMap<>(); jobParameters.getParameters().forEach( (key, jobParameter) -> { String updatedKey = !jobParameter.isIdentifying() ? "-" + key : key; if (jobParameter.getType().equals(JobParameter.ParameterType.STRING)) { newJobParameters.put(updatedKey, new JobParameter(this.sanitize(key, jobParameter.toString()))); } else { newJobParameters.put(updatedKey, jobParameter); } }); return new JobParameters(newJobParameters); } /**
@Test public void testGetParametersIdentifyingByDefault() throws Exception { String jobKey = "job.key=myKey"; String scheduleDate = "schedule.date(date)=2008/01/23"; String vendorId = "vendor.id(long)=33243243"; String[] args = new String[] { jobKey, scheduleDate, vendorId }; JobParameters props = factory.getJobParameters(StringUtils.splitArrayElementsIntoProperties(args, "=")); assertNotNull(props); assertTrue(props.getParameters().get("job.key").isIdentifying()); assertTrue(props.getParameters().get("schedule.date").isIdentifying()); assertTrue(props.getParameters().get("vendor.id").isIdentifying()); }
@Test public void testEquals(){ jobParameter = new JobParameter("test", true); JobParameter testParameter = new JobParameter("test", true); assertTrue(jobParameter.equals(testParameter)); }
@Test public void testDateParameterToString(){ Date epoch = new Date(0L); jobParameter = new JobParameter(epoch, true); assertEquals("0", jobParameter.toString()); }
@Override public JobDataMap getJobDataMap(JobParameters params) { JobDataMap jobDataMap = new JobDataMap(); if (params != null && !params.isEmpty()) { Map<String, JobParameter> parameters = params.getParameters(); for (Map.Entry<String, JobParameter> entry : parameters.entrySet()) { String key = entry.getKey(); JobParameter jobParameter = entry.getValue(); Object value = jobParameter.getValue(); if (value != null) { key = (!jobParameter.isIdentifying() ? NON_IDENTIFYING_FLAG : "") + key; jobDataMap.put(key, value); } } } return jobDataMap; } }
protected String createJobKey(JobParameters jobParameters) { Map<String, JobParameter> props = jobParameters.getParameters(); StringBuffer stringBuffer = new StringBuffer(); List<String> keys = new ArrayList<String>(props.keySet()); Collections.sort(keys); for (String key : keys) { JobParameter jobParameter = props.get(key); String value = jobParameter.getValue()==null ? "" : jobParameter.toString(); stringBuffer.append(key + "=" + value + ";"); } MessageDigest digest; try { digest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException( "MD5 algorithm not available. Fatal (should be in the JDK)."); } try { byte[] bytes = digest.digest(stringBuffer.toString().getBytes( "UTF-8")); return String.format("%032x", new BigInteger(1, bytes)); } catch (UnsupportedEncodingException e) { throw new IllegalStateException( "UTF-8 encoding not available. Fatal (should be in the JDK)."); } }
/** * Typesafe Getter for the String represented by the provided key. * * @param key The key to get a value for * @return The <code>String</code> value or {@code null} if the key is absent */ @Nullable public String getString(String key){ JobParameter value = parameters.get(key); return value==null ? null : value.toString(); }
if ("DATE".equalsIgnoreCase(type)) { jobParameter = new JobParameter(DateTime.parse(value).toDate(), identifying); jobParameter = new JobParameter(Double.valueOf(value), identifying); jobParameter = new JobParameter(Long.valueOf(value), identifying); jobParameter = new JobParameter(value, identifying); jobParameter.getValue(), jobParameter.getType().name(), jobParameter.isIdentifying()));
/** * Add a new {@link Date} parameter for the given key. * * @param key - parameter accessor. * @param parameter - runtime parameter * @param identifying - indicates if the parameter is used as part of identifying a job instance * @return a reference to this object. */ public JobParametersBuilder addDate(String key, Date parameter, boolean identifying) { this.parameterMap.put(key, new JobParameter(parameter, identifying)); return this; }
/** * Typesafe Getter for the Long represented by the provided key. * * @param key The key to get a value for * @return The <code>Long</code> value or {@code null} if the key is absent */ @Nullable public Long getLong(String key){ if (!parameters.containsKey(key)) { return null; } Object value = parameters.get(key).getValue(); return value==null ? null : ((Long)value).longValue(); }
/** * Convenience method that inserts all parameters from the provided * JobParameters. * */ private void insertJobParameters(Long jobId, JobParameters jobParameters) { for (Entry<String, JobParameter> entry : jobParameters.getParameters() .entrySet()) { JobParameter jobParameter = entry.getValue(); insertParameter(jobId, jobParameter.getType(), entry.getKey(), jobParameter.getValue()); } }
/** * Replaces the sensitive String values in the JobParameter value. * * @param jobParameters the original job parameters * @return the sanitized job parameters */ public JobParameters sanitizeJobParameters(JobParameters jobParameters) { Map<String,JobParameter> newJobParameters = new HashMap<>(); jobParameters.getParameters().forEach( (key, jobParameter) -> { String updatedKey = !jobParameter.isIdentifying() ? "-" + key : key; if (jobParameter.getType().equals(JobParameter.ParameterType.STRING)) { newJobParameters.put(updatedKey, new JobParameter(this.sanitize(key, jobParameter.toString()))); } else { newJobParameters.put(updatedKey, jobParameter); } }); return new JobParameters(newJobParameters); } /**