Re: Spring Batch

Liste des GroupesRevenir à co vms 
Sujet : Re: Spring Batch
De : arne (at) *nospam* vajhoej.dk (Arne Vajhøj)
Groupes : comp.os.vms
Date : 28. Mar 2025, 13:51:24
Autres entêtes
Organisation : SunSITE.dk - Supporting Open source
Message-ID : <67e69b4c$0$711$14726298@news.sunsite.dk>
References : 1
User-Agent : Mozilla Thunderbird
On 3/18/2025 3:51 PM, Arne Vajhøj wrote:
I am happy to report that Spring Batch 4.3 works fine on
VMS x86-64 (and probably also on VMS Itanium, but not on
VMS Alpha due to too old Java version).
 For database, XML, JSON and CSV the following jar files:

The code and configuration is the same as on any other platform.
Spring Batch can read/write from/to relational databases and a few NoSQL databases
as well: MongoDB, Neo4J and Redis.
Obviously it does not read/write VMS index-sequential files out of the box.
But since I happen to have a library allowing JVM languages to access VMS
index-sequential files, then creating a wrapper allowing Sping Batch to access
them was tempting.
So I did.
First the simple model with only one index-sequential file.
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.NonTransientResourceException;
import org.springframework.batch.item.ParseException;
import org.springframework.batch.item.UnexpectedInputException;
import org.springframework.batch.item.support.AbstractItemStreamItemReader;
import dk.vajhoej.isam.IsamException;
import dk.vajhoej.isam.IsamResult;
import dk.vajhoej.isam.IsamSource;
import dk.vajhoej.record.RecordException;
public class SingleIsamItemReader<T> extends AbstractItemStreamItemReader<T> {
     private IsamSource source;
     private Class<T> type;
     private IsamResult<T> result;
     public IsamSource getSource() {
         return source;
     }
     public void setSource(IsamSource source) {
         this.source = source;
     }
     public Class<T> getType() {
         return type;
     }
     public void setType(Class<T> type) {
         this.type = type;
     }
     @Override
     public void open(ExecutionContext ec) {
         try {
             result = source.readStart(type);
         } catch (IsamException e) {
             throw new RuntimeException(e);
         } catch (RecordException e) {
             throw new RuntimeException(e);
         }
     }
     @Override
     public T read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException {
         if(result.read()) {
             return result.current();
         } else {
             return null;
         }
     }
     @Override
     public void close() {
         try {
             result.close();
             source.close();
         } catch (IsamException e) {
             throw new RuntimeException(e);
         }
     }
}
<bean id="foobarSource" class="dk.vajhoej.isam.local.LocalIsamSource">
     <constructor-arg value="foobar.isq"/>
     <constructor-arg value="dk.vajhoej.vms.rms.IndexSequential"/>
     <constructor-arg value="true"/>
</bean>
<bean id="foobarReader" class="SingleIsamItemReader">
     <property name="source" ref="foobarSource" />
     <property name="type" value="somepackage.Foobar"/>
</bean>
import java.util.List;
import org.springframework.batch.item.support.AbstractItemStreamItemWriter;
import dk.vajhoej.isam.IsamSource;
public class SingleIsamItemWriter<T> extends AbstractItemStreamItemWriter<T> {
     private IsamSource source;
     public IsamSource getSource() {
         return source;
     }
     public void setSource(IsamSource source) {
         this.source = source;
     }
     @Override
     public void write(List<? extends T> items) throws Exception {
         for(T item : items) {
             source.create(item);
         }
     }
}
<bean id="foobarSource" class="dk.vajhoej.isam.local.LocalIsamSource">
     <constructor-arg value="foobar.isq"/>
     <constructor-arg value="dk.vajhoej.vms.rms.IndexSequential"/>
     <constructor-arg value="false"/>
</bean>
<bean id="foobarReader" class="SingleIsamItemWriter">
     <property name="source" ref="foobarSource" />
</bean>
Arne

Date Sujet#  Auteur
18 Mar 25 * Spring Batch8Arne Vajhøj
18 Mar 25 +* Re: Spring Batch3Craig A. Berry
21 Mar 25 i`* Re: Spring Batch2Arne Vajhøj
21 Mar 25 i `- Re: Spring Batch1John Dallman
28 Mar 25 `* Re: Spring Batch4Arne Vajhøj
28 Mar 25  +* Re: Spring Batch2Arne Vajhøj
30 Mar 25  i`- Re: Spring Batch1Arne Vajhøj
28 Mar 25  `- Re: Spring Batch1Lawrence D'Oliveiro

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal