package server.mdpojos; import java.util.HashMap; import java.util.Map; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; import org.springframework.batch.core.JobParameter; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.JobParametersBuilder; import org.springframework.batch.core.JobParametersInvalidException; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException; import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException; import org.springframework.batch.core.repository.JobRestartException; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import es.fcs.poc.ByteArrayXmlApplicationContextJobFactory; public class MDPojoBatch implements MessageListener, ApplicationContextAware { private ApplicationContext parent; public void onMessage(Message arg0) { try { String xml = ((TextMessage)arg0).getText(); System.out.println("xml=" + xml); // ApplicationContext parent = new ClassPathXmlApplicationContext("simple-job-launcher-context.xml"); ByteArrayXmlApplicationContextJobFactory factory = new ByteArrayXmlApplicationContextJobFactory("footballJob", xml, parent); JobLauncher jl = (JobLauncher)parent.getBean("jobLauncher"); JobParametersBuilder jpb = new JobParametersBuilder(); jpb.addDouble("job.commit.interval", new Double(50)) .addString("games.file.name", "file:C:/temp/games-small.csv") .addString("player.file.name", "file:C:/temp/player-small1.csv"); // Map<String, JobParameter> kk = new HashMap<String, JobParameter>(); // kk.put("job.commit.interval", new JobParameter((double)50)); // kk.put("games.file.name", new JobParameter("file:C:/temp/games-small.csv")); // kk.put("player.file.name", new JobParameter("file:C:/temp/player-small1.csv")); jl.run(factory.createJob(), jpb.toJobParameters());//new JobParameters(kk)); } catch (JobExecutionAlreadyRunningException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JobRestartException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JobInstanceAlreadyCompleteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JobParametersInvalidException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void setApplicationContext(ApplicationContext arg0) throws BeansException { System.out.println("init"); parent = arg0; } }