@Override public void open(final Serializable checkpoint) throws Exception { final CsvWriterMapper defaultMapper = mapping != null ? new DefaultMapper(Thread.currentThread().getContextClassLoader().loadClass(mapping)) : null; mapperInstance = mapper == null ? (defaultMapper != null ? new BeanLocator.LocatorInstance<CsvWriterMapper>(defaultMapper, null) : null) : BeanLocator.Finder.get(locator).newInstance(CsvWriterMapper.class, mapper); if ((header == null || header.isEmpty()) && Boolean.parseBoolean(writeHeaders) && DefaultMapper.class.isInstance(mapperInstance.getValue()) && checkpoint == null) { header = toListString(DefaultMapper.class.cast(mapperInstance.getValue()).getHeaders()); } final CSVFormat format = newFormat(); final File file = new File(output); if (!file.getParentFile().exists() && !file.getParentFile().mkdirs()) { throw new IllegalStateException("Cant create " + file); } this.transactionalWriter = new TransactionalWriter(file, encoding, checkpoint); this.writer = format.print(transactionalWriter); }
public Object runChain(final Object item) throws Exception { if (chain == null) { return item; } if (separator == null) { separator = ","; } if (runtimeChain.isEmpty()) { final BeanLocator beanLocator = getBeanLocator(); final Class<T> type = findType(); for (final String next : chain.split(separator)) { runtimeChain.add(beanLocator.newInstance(type, next)); } } Object current = item; for (final BeanLocator.LocatorInstance<T> next : runtimeChain) { current = invoke(next, current); } if (Boolean.parseBoolean(forceRelease)) { for (final BeanLocator.LocatorInstance<?> next : runtimeChain) { next.release(); } runtimeChain.clear(); } return current; }
@Override public Object readItem() throws Exception { if (items.isEmpty()) { final Connection conn = connection(); try { final PreparedStatement preparedStatement = conn.prepareStatement(query, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE, ResultSet.HOLD_CURSORS_OVER_COMMIT); ResultSet resultSet = null; try { resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { items.add(mapper.getValue().map(resultSet)); } if (items.isEmpty()) { return null; } } finally { if (resultSet != null) { resultSet.close(); } preparedStatement.close(); } } finally { conn.close(); } } return items.pop(); }
private Collection<?> nextPage() { final EntityManager em = emProvider.getValue().newEntityManager(); if (transaction) { em.getTransaction().begin(); } final Query jpaQuery; try { if (namedQuery != null) { jpaQuery = em.createNamedQuery(namedQuery); } else { jpaQuery = em.createQuery(query); } jpaQuery.setFirstResult(firstResult).setMaxResults(page); if (paramProvider != null) { paramProvider.getValue().setParameters(jpaQuery); } final List<?> resultList = jpaQuery.getResultList(); if (detach) { for (final Object o : resultList) { em.detach(o); } } return resultList; } finally { if (transaction) { em.getTransaction().commit(); } emProvider.getValue().release(em); } }
@Override public void writeItems(final List<Object> items) throws Exception { final EntityManager em = emProvider.getValue().newEntityManager(); try { if (transaction) { em.getTransaction().begin(); } for (final Object o : items) { if (!merge) { em.persist(o); } else { em.merge(o); } } if (transaction) { em.getTransaction().commit(); } else { em.flush(); } } finally { emProvider.getValue().release(em); } }
@Override public void writeItems(final List<Object> items) throws Exception { final Connection c = connection(); PreparedStatement preparedStatement = null; try { preparedStatement = connection().prepareStatement(sql); for (final Object item : items) { mapper.getValue().map(item, preparedStatement); preparedStatement.addBatch(); } preparedStatement.executeBatch(); if (!Synchronizations.hasTransaction()) { c.commit(); } } finally { if (preparedStatement != null) { preparedStatement.close(); } c.close(); } }
@Override public void writeItems(final List<Object> list) throws Exception { for (final Object o : list) { if (CSVRecord.class.isInstance(o)) { writer.printRecord(CSVRecord.class.cast(o)); } else if (Iterable.class.isInstance(o)) { writer.printRecord(Iterable.class.cast(o)); } else if (mapperInstance != null) { writer.printRecord(mapperInstance.getValue().toRecord(o)); } else { throw new IllegalStateException("No way to write " + o + ". Does it implement Iterable<String> or did you set up a mapper?"); } } writer.flush(); }
public static Object receive(final String locator, final String endpoint, final long timeout, final Class<?> expected) { final BeanLocator.LocatorInstance<CamelTemplateLocator> locatorInstance = locator(locator); try { final ConsumerTemplate consumerTemplate = locatorInstance.getValue().findConsumerTemplate(); if (timeout > 0) { if (expected != null) { return consumerTemplate.receiveBody(endpoint, expected); } return consumerTemplate.receiveBody(endpoint); } if (expected != null) { return consumerTemplate.receiveBody(endpoint, timeout, expected); } return consumerTemplate.receiveBody(endpoint, timeout); } finally { locatorInstance.release(); } }
@Override public void open(final Serializable checkpoint) throws Exception { final CSVFormat csvFormat = newFormat(); parser = csvFormat.parse(newReader()); iterator = new IteratorReader<CSVRecord>(parser.iterator()); mapperInstance = mapper == null ? new BeanLocator.LocatorInstance<CsvReaderMapper>( mapping != null ? new DefaultMapper(Thread.currentThread().getContextClassLoader().loadClass(mapping)) : NOOP_MAPPER, null) : BeanLocator.Finder.get(locator).newInstance(CsvReaderMapper.class, mapper); super.open(checkpoint); }
@Override public <T> LocatorInstance<T> newInstance(final Class<T> expected, final String batchId) { final CamelItemProcessor camelItemProcessor = new CamelItemProcessor(); camelItemProcessor.setEndpoint(batchId); camelItemProcessor.setLocator(locator); return new LocatorInstance<T>((T) camelItemProcessor, null); } }
protected Object preReturn(final String rawLine, final long lineNumber) { if (mapper != null) { return mapper.getValue().map(rawLine, lineNumber); } return rawLine; } }
@Override protected Object invoke(final BeanLocator.LocatorInstance<ItemProcessor> next, final Object current) throws Exception { return next.getValue().processItem(current); } }
protected ItemProcessor getDelegate() { // note with cdi delegate scope shouldn't need cleanup if (delegate == null) { delegate = BeanLocator.Finder.get(locator).newInstance(ItemProcessor.class, delegateRef).getValue(); } return delegate; }
protected BeanLocator.LocatorInstance<EntityManagerProvider> findEntityManager() { if (entityManagerProvider != null && entityManagerProvider.startsWith("jndi:")) { return new BeanLocator.LocatorInstance<EntityManagerProvider>(new JndiEntityManagerProvider(entityManagerProvider.substring("jndi:".length())), null); } return BeanLocator.Finder.get(locator).newInstance(EntityManagerProvider.class, entityManagerProvider); }
protected static Object process(final String locator, final String endpoint, final Object body) throws Exception { final BeanLocator.LocatorInstance<CamelTemplateLocator> locatorInstance = locator(locator); try { return locatorInstance.getValue().findProducerTemplate().requestBody(endpoint, body); } finally { locatorInstance.release(); } }
@Override public void close() throws Exception { mapperInstance.release(); if (parser != null) { parser.close(); } }
@Override protected Object invoke(final BeanLocator.LocatorInstance<ItemProcessor> next, final Object current) throws Exception { return next.getValue().processItem(current); } }
@Override public void close() throws Exception { if (emProvider != null) { emProvider.release(); } }
@Override public void close() throws Exception { if (mapper != null) { mapper.release(); } }