Example usage for org.springframework.batch.item ItemProcessor ItemProcessor

List of usage examples for org.springframework.batch.item ItemProcessor ItemProcessor

Introduction

In this page you can find the example usage for org.springframework.batch.item ItemProcessor ItemProcessor.

Prototype

ItemProcessor

Source Link

Usage

From source file:configuration.JobSkipConfiguration.java

@Bean
public Step step2() {
    return stepBuilderFactory.get("step2").chunk(3).faultTolerant().skip(IllegalStateException.class)
            .skipLimit(100).reader(new SkipItemReader()).processor(new ItemProcessor<Object, Object>() {
                @Override/*w  w w. j  ava  2 s.  c o m*/
                public String process(Object item) throws Exception {
                    return String.valueOf(Integer.parseInt((String) item) * -1);
                }
            }).writer(new SkipItemWriter()).build();
}

From source file:configuration.JobConfiguration.java

@Bean
public Step step2() {
    return stepBuilderFactory.get("step2").<String, String>chunk(3)
            .reader(new ListItemReader<>(Arrays.asList("1", "2", "3", "4", "5", "6")))
            .processor(new ItemProcessor<String, String>() {
                @Override/*from  w  w w . j av  a  2  s  .  c  om*/
                public String process(String item) throws Exception {
                    return String.valueOf(Integer.parseInt((String) item) * -1);
                }
            }).writer(new ItemWriter<String>() {
                @Override
                public void write(List<? extends String> items) throws Exception {
                    for (Object item : items) {
                        System.out.println(">> " + item);
                    }
                }
            }).build();
}

From source file:com.mycompany.spring.batch.mail.demo.batch.SampleBatchApplication.java

@Bean
public ItemProcessor processor() {
    ItemProcessor processor = new ItemProcessor() {

        @Override/*from w w  w. ja v  a 2s .c  o m*/
        public SimpleMailMessage process(Object item) throws Exception {
            SimpleMailMessage message = new SimpleMailMessage();
            message.setFrom("root@localhost.localdomain");
            message.setTo("c7@localhost.localdomain");
            message.setSubject(item.toString());
            message.setSentDate(new Date());
            message.setText("Hello " + item.toString());
            System.out.println("Sending message with subject: " + item);
            return message;
        }
    };
    return processor;
}

From source file:com.searchbox.collection.pubmed.PubmedCollection.java

public ItemProcessor<Resource, File> itemProcessor() {
    return new ItemProcessor<Resource, File>() {
        @Override//from   w ww .j a  v  a 2s . c  om
        public File process(Resource item) throws IOException {
            LOGGER.info("Processing stuff here...");
            return item.getFile();
        }
    };
}

From source file:nu.yona.server.batch.jobs.SendSystemMessageBatchJob.java

@Bean(name = "sendSystemMessageJobUserAnonymizedProcessor", destroyMethod = "")
@StepScope/*from  w  w  w  .j  ava2s  .  c  om*/
private ItemProcessor<UUID, MessageDestination> userAnonymizedProcessor() {
    return new ItemProcessor<UUID, MessageDestination>() {
        @Value("#{jobParameters['messageText']}")
        private String messageText;

        @Override
        public MessageDestination process(UUID userAnonymizedId) throws Exception {
            logger.debug("Processing user anonymized with id {}", userAnonymizedId);
            UserAnonymizedDto userAnonymized = userAnonymizedService.getUserAnonymized(userAnonymizedId);

            MessageDestination messageDestination = messageDestinationRepository
                    .findOne(userAnonymized.getAnonymousDestination().getId());
            messageDestination.send(SystemMessage.createInstance(messageText));

            return messageDestination;
        }
    };
}

From source file:nu.yona.server.batch.jobs.ActivityAggregationBatchJob.java

private ItemProcessor<Long, DayActivity> dayActivityProcessor() {
    return new ItemProcessor<Long, DayActivity>() {
        @Override//from w  w w . ja  v  a2  s  .  co m
        public DayActivity process(Long dayActivityId) throws Exception {
            logger.debug("Processing day activity with id {}", dayActivityId);
            DayActivity dayActivity = dayActivityRepository.findOne(dayActivityId);

            dayActivity.computeAggregates();
            return dayActivity;
        }
    };
}

From source file:nu.yona.server.batch.jobs.ActivityAggregationBatchJob.java

private ItemProcessor<Long, WeekActivity> weekActivityProcessor() {
    return new ItemProcessor<Long, WeekActivity>() {
        @Override/*from  ww w.  j  ava2  s . co  m*/
        public WeekActivity process(Long weekActivityId) throws Exception {
            logger.debug("Processing week activity with id {}", weekActivityId);
            WeekActivity weekActivity = weekActivityRepository.findOne(weekActivityId);

            weekActivity.computeAggregates();
            return weekActivity;
        }
    };
}

From source file:com.searchbox.collection.oppfin.CordisCollection.java

public ItemProcessor<JSONObject, FieldMap> itemProcessor() {
    return new ItemProcessor<JSONObject, FieldMap>() {
        @Override/*from   w  w  w.j av a  2 s  .  c o m*/
        public FieldMap process(JSONObject item) throws IOException {
            DateFormat dfSource = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);

            LOGGER.info("Processing cordis {}", item.get("id"));
            FieldMap doc = new FieldMap();

            doc.put("docSource", "Cordis");
            doc.put("docType", "Cordis");
            doc.put("programme", item.get("program"));

            doc.put("cordisId", item.get("id"));
            doc.put("cordisTag", item.get("tag"));
            doc.put("cordisStartYear", item.get("start_year"));
            doc.put("cordisProjectFunding", new Float((String) item.get("projectfunding")));
            doc.put("cordisContractType", item.get("contract_type"));
            doc.put("cordisProjectStatus", item.get("project_status"));
            doc.put("cordisUrl", item.get("url"));
            doc.put("cordisCategory", item.get("category"));
            doc.put("cordisProgram", item.get("program"));
            doc.put("cordisProjectCost", new Float((String) item.get("projectcost")));
            doc.put("cordisProjectDuration", item.get("projectduration"));
            doc.put("cordisSnippet", item.get("snippet"));
            doc.put("cordisSubProgrammArea", item.get("subprogrammearea"));
            doc.put("cordisCallIdentifier", item.get("call_identifier"));
            doc.put("cordisTitle", item.get("title"));
            doc.put("cordisCountryCode", item.get("country_code"));
            doc.put("cordisArea", item.get("aera"));
            doc.put("cordisSubjectIndexCode", item.get("subjectindexcode"));
            doc.put("cordisProjectTeaser", item.get("teaser"));
            doc.put("cordisCallTitle", item.get("cordisCallTitle"));

            try {
                doc.put("cordisProjectStartDate", item.get("projectstartdate"));
            } catch (Exception e) {
                LOGGER.error("Cannot parse date", e);
            }

            try {
                doc.put("cordisProjectEndDate", item.get("projectenddate"));
            } catch (Exception e) {
                LOGGER.error("Cannot parse date", e);
            }

            return doc;
        }
    };
}

From source file:org.cloudfoundry.workers.stocks.batch.BatchConfiguration.java

/**
 * The Spring Batch {@link ItemProcessor item processor} takes the stocks
 * from the reader and converts them into {@link StockSymbolLookup stock
 * symbol lookups}, which it then passes to the writer to persist.
 *///from   w  w  w. java  2s.co  m
@Bean
public ItemProcessor<String, StockSymbolLookup> processor() {
    final StockSymbolLookupClient stockSymbolLookupClient = this.lookupClient();
    return new ItemProcessor<String, StockSymbolLookup>() {
        @Override
        public StockSymbolLookup process(String tickerSymbol) throws Exception {
            try {
                return stockSymbolLookupClient.lookupSymbol(tickerSymbol);
            } catch (Throwable throwable) {
                throw new RuntimeException(throwable);
            }
        }
    };

}

From source file:com.searchbox.collection.oppfin.IdealISTCollection.java

public ItemProcessor<String, FieldMap> itemProcessor() {
    return new ItemProcessor<String, FieldMap>() {
        @Override//  www  . j a v  a2s  .c om
        public FieldMap process(String uid) throws Exception {
            LOGGER.info("Fetching document uid={}", uid);
            Document document = httpGet(RequestBuilder.get()
                    .setUri(env.getProperty(IDEALIST_DOCUMENT_SERVICE, IDEALIST_DOCUMENT_SERVICE_DEFAULT))
                    .addParameter("uid", uid));
            LOGGER.debug("Got Document: {}", document);
            FieldMap fields = new FieldMap();

            fields.put("uid", uid);
            fields.put("docSource", "Ideal-Ist");
            fields.put("docType", "Collaboration");
            fields.put("programme", "H2020");

            addStringField(uid, document, fields, "title", "idealistTitle");
            addStringField(uid, document, fields, "PS_ID", "idealistPsId");
            addStringField(uid, document, fields, "Status", "idealistStatus");
            addDateField(uid, document, fields, "Date_of_last_Modification", "idealistUpdated");
            addDateField(uid, document, fields, "Date_of_Publication", "idealistPublished");
            addStringField(uid, document, fields, "Call_Identifier", "callIdentifier");
            addStringField(uid, document, fields, "Objective", "idealistObjective");
            addStringField(uid, document, fields, "Funding_Schemes", "idealistFundingScheme");
            addStringField(uid, document, fields, "Evaluation_Scheme", "idealistEvaluationScheme");
            addDateField(uid, document, fields, "Closure_Date", "idealistDeadline");
            addStringField(uid, document, fields, "Type_of_partner_sought", "idealistTypeOfPartnerSought");
            addStringField(uid, document, fields, "Coordinator_possible", "idealistCoordinationPossible");
            addStringField(uid, document, fields, "Organisation", "idealistOrganisation");
            addStringField(uid, document, fields, "Department", "idealistDepartement");
            addStringField(uid, document, fields, "Type_of_Organisation", "idealistTypeOfOrganisation");
            addStringField(uid, document, fields, "Country", "idealistCountry");
            addStringField(uid, document, fields, "Body", "idealistBody");
            addStringField(uid, document, fields, "outline", "idealistOutline");
            addStringField(uid, document, fields, "description_of_work", "idealistDescriptionOfWork");

            if (LOGGER.isDebugEnabled()) {
                for (String key : fields.keySet()) {
                    LOGGER.debug("field: {}\t{}", key, fields.get(key));
                }
            }

            //Filtering invalid ideal-ist, skip records where status is not open.
            if (fields.get("idealistStatus").toString().equals("[Open]")) {
                LOGGER.info("Found a ideal-ist with open status.");
                return fields;
            } else {
                LOGGER.info("The document has the following status {}",
                        fields.get("idealistStatus").toString());
                return null;
            }
        }
    };
}