home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.os.vms      DEC's VAX* line of computers & VMS.      264,096 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 262,555 of 264,096   
   =?UTF-8?Q?Arne_Vajh=C3=B8j?= to All   
   Re: Spring Batch   
   28 Mar 25 08:51:24   
   
   From: arne@vajhoej.dk   
      
   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 extends   
   AbstractItemStreamItemReader {   
        private IsamSource source;   
        private Class type;   
        private IsamResult result;   
        public IsamSource getSource() {   
            return source;   
        }   
        public void setSource(IsamSource source) {   
            this.source = source;   
        }   
        public Class getType() {   
            return type;   
        }   
        public void setType(Class 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);   
            }   
        }   
   }   
      
      
           
           
           
      
      
           
           
      
      
   import java.util.List;   
      
   import org.springframework.batch.item.support.AbstractItemStreamItemWriter;   
      
   import dk.vajhoej.isam.IsamSource;   
      
   public class SingleIsamItemWriter extends   
   AbstractItemStreamItemWriter {   
        private IsamSource source;   
        public IsamSource getSource() {   
            return source;   
        }   
        public void setSource(IsamSource source) {   
            this.source = source;   
        }   
        @Override   
        public void write(List items) throws Exception {   
            for(T item : items) {   
                source.create(item);   
            }   
        }   
   }   
      
      
           
           
           
      
      
           
      
      
   Arne   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca