public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Step 1
                // Registering reader
                unityContainer.RegisterStepScope<IItemReader<Person>, FlatFileItemReader<Person>>("reader",
                    new InjectionProperty("LineMapper", new DefaultLineMapper<Person>
                        {
                            Tokenizer = new DelimitedLineTokenizer { Delimiter = "," },
                            FieldSetMapper = new PersonMapper()
                        }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Registering Processor
                unityContainer.RegisterStepScope<IItemProcessor<Person, Person>, UppercaseProcessor>("processor");
                // Registering Listener
                unityContainer.RegisterStepScope<IStepExecutionListener, UppercaseListener>("listener");

                // Registering writer
                unityContainer.RegisterStepScope<IItemWriter<Person>, FlatFileItemWriter<Person>>("writer",
                    new InjectionProperty("LineAggregator", new DelimitedLineAggregator<Person>
                        {
                            Delimiter = ",",
                            FieldExtractor = new PropertyFieldExtractor<Person> { Names = new List<string> { "Name", "Firstname" } }
                        }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathOut)));
            }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Step 1
                // Registering reader
                unityContainer.RegisterStepScope <IItemReader <Person>, FlatFileItemReader <Person> >("job2Reader",
                                                                                                      new InjectionProperty("LineMapper", new DefaultLineMapper <Person>
                {
                    Tokenizer = new DelimitedLineTokenizer {
                        Delimiter = ","
                    },
                    FieldSetMapper = new PersonMapper()
                }),
                                                                                                      new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Registering Processor
                unityContainer.RegisterStepScope <IItemProcessor <Person, Person>, MyFlatFileProcessor>("job2Processor");

                // Registering writer
                unityContainer.RegisterStepScope <IItemWriter <Person>, FlatFileItemWriter <Person> >("job2Writer",
                                                                                                      new InjectionProperty("LineAggregator", new DelimitedLineAggregator <Person>
                {
                    Delimiter      = ";",
                    FieldExtractor = new PropertyFieldExtractor <Person> {
                        Names = new List <string> {
                            "Firstname", "Name", "BirthYear"
                        }
                    }
                }),
                                                                                                      new InjectionProperty("Resource", new FileSystemResource(TestPathOut)));
            }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Step 1
                // Registering reader
                unityContainer.RegisterStepScope <IItemReader <Person>, FlatFileItemReader <Person> >("reader",
                                                                                                      new InjectionProperty("LineMapper", new DefaultLineMapper <Person>
                {
                    Tokenizer = new DelimitedLineTokenizer {
                        Delimiter = ","
                    },
                    FieldSetMapper = new PersonMapper()
                }),
                                                                                                      new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Registering Processor
                unityContainer.RegisterStepScope <IItemProcessor <Person, Person>, UppercaseProcessor>("processor");
                // Registering Listener
                unityContainer.RegisterStepScope <IStepExecutionListener, CustomCodeListener>("listener");

                // Registering writer
                unityContainer.RegisterStepScope <IItemWriter <Person>, FlatFileItemWriter <Person> >("writer",
                                                                                                      new InjectionProperty("LineAggregator", new DelimitedLineAggregator <Person>
                {
                    Delimiter      = ",",
                    FieldExtractor = new PropertyFieldExtractor <Person> {
                        Names = new List <string> {
                            "Name", "Firstname"
                        }
                    }
                }),
                                                                                                      new InjectionProperty("Resource", new FileSystemResource(TestPathOut)));

                unityContainer.RegisterType <ITasklet, OkTasklet>("tasklet1");
                unityContainer.RegisterType <ITasklet, KoTasklet>("tasklet2");
            }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Registering reader
                unityContainer.RegisterStepScope<IItemReader<CommandItem>, FlatFileItemReader<CommandItem>>("delegate",
                    new InjectionProperty("LineMapper", new DefaultLineMapper<CommandItem>
                    {
                        Tokenizer = new DelimitedLineTokenizer { Delimiter = ";" },
                        FieldSetMapper = new CommandItemMapper()
                    }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Delegating group reader                
                unityContainer.RegisterStepScope<IItemReader<List<CommandItem>>, DelegatingGroupReader<CommandItem>>
                    ("readCsv",
                    new InjectionProperty("RuptureFields", "User"),
                    new InjectionProperty("Delegate", new ResolvedParameter<IItemReader<CommandItem>>("delegate")));

                //Inner writer
                unityContainer.RegisterStepScope<IItemWriter<CommandItem>, VolatileWriter>("delegateWriter");

                //Writer
                unityContainer.RegisterStepScope<IItemWriter<ICollection<CommandItem>>, DelegatingListItemWriter<ICollection<CommandItem>, CommandItem>>(
                    "commandWriter",
                    new InjectionProperty("Delegate", new ResolvedParameter<IItemWriter<CommandItem>>("delegateWriter")));
            }
Example #5
0
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Registering reader
                unityContainer.RegisterStepScope <IItemReader <CommandItem>, FlatFileItemReader <CommandItem> >("delegate",
                                                                                                                new InjectionProperty("LineMapper", new DefaultLineMapper <CommandItem>
                {
                    Tokenizer = new DelimitedLineTokenizer {
                        Delimiter = ";"
                    },
                    FieldSetMapper = new CommandItemMapper()
                }),
                                                                                                                new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Delegating group reader
                unityContainer.RegisterStepScope <IItemReader <List <CommandItem> >, DelegatingGroupReader <CommandItem> >
                    ("readCsv",
                    new InjectionProperty("RuptureFields", "User"),
                    new InjectionProperty("Delegate", new ResolvedParameter <IItemReader <CommandItem> >("delegate")));

                //Inner writer
                unityContainer.RegisterStepScope <IItemWriter <CommandItem>, VolatileWriter>("delegateWriter");

                //Writer
                unityContainer.RegisterStepScope <IItemWriter <ICollection <CommandItem> >, DelegatingListItemWriter <ICollection <CommandItem>, CommandItem> >(
                    "commandWriter",
                    new InjectionProperty("Delegate", new ResolvedParameter <IItemWriter <CommandItem> >("delegateWriter")));
            }
Example #6
0
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Context Managers x 2 - Those should come first
                unityContainer.RegisterSingleton <IContextManager, ContextManager>(BatchConstants.JobContextManagerName);
                unityContainer.RegisterSingleton <IContextManager, ContextManager>(BatchConstants.StepContextManagerName);

                // Registering reader
                unityContainer.RegisterStepScope <IItemReader <CommandItem>, FlatFileItemReader <CommandItem> >("delegate",
                                                                                                                new InjectionProperty("LineMapper", new DefaultLineMapper <CommandItem>
                {
                    Tokenizer = new DelimitedLineTokenizer {
                        Delimiter = ";"
                    },
                    FieldSetMapper = new CommandItemMapper()
                }),
                                                                                                                new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Delegating group reader
                unityContainer.RegisterStepScope <IItemReader <List <CommandItem> >, DelegatingGroupReader <CommandItem> >
                    ("readCsv",
                    new InjectionProperty("RuptureFields", "User"),
                    new InjectionProperty("Delegate", new ResolvedParameter <IItemReader <CommandItem> >("delegate")));

                //Processor
                //Note : IContextManager x 2 injected by name through attribute [Dependency]
                //No need for new InjectionProperty here (already handled)
                unityContainer.RegisterStepScope <IItemProcessor <List <CommandItem>, UserTotal>, ReportExecutionListener>
                    ("reportListener");

                //LineAggregator + HeaderWriter + FooterWriter
                unityContainer.RegisterStepScope <AbstractTemplateLineAggregator <UserTotal>, ReportWriteReportAggregator>
                    ("report/WriteReport/Aggregator",
                    new InjectionProperty("TemplateId", "userTotal"),
                    new InjectionProperty("FooterId", "footer"),
                    new InjectionProperty("HeaderId", "header"),
                    new InjectionProperty("Template", new FileSystemResource(TestTemplateIn)),
                    new InjectionProperty("InputEncoding", Encoding.UTF8)
                    );

                //Inner writer
                unityContainer.RegisterStepScope <IItemWriter <UserTotal>, FlatFileItemWriter <UserTotal> >("reportWriter",
                                                                                                            new InjectionProperty("Resource", new FileSystemResource(TestPathOut)),
                                                                                                            new InjectionProperty("Encoding", Encoding.UTF8),
                                                                                                            new InjectionProperty("LineAggregator",
                                                                                                                                  new ResolvedParameter <AbstractTemplateLineAggregator <UserTotal> >("report/WriteReport/Aggregator")),
                                                                                                            new InjectionProperty("HeaderWriter",
                                                                                                                                  new ResolvedParameter <AbstractTemplateLineAggregator <UserTotal> >("report/WriteReport/Aggregator")),
                                                                                                            new InjectionProperty("FooterWriter",
                                                                                                                                  new ResolvedParameter <AbstractTemplateLineAggregator <UserTotal> >("report/WriteReport/Aggregator"))
                                                                                                            );
            }
Example #7
0
        /// <summary>
        /// Registers the artifacts required to execute the steps (tasklets, readers, writers, etc.)
        /// </summary>
        /// <param name="container">the unity container to use for registrations</param>
        public override void LoadArtifacts(IUnityContainer container)
        {
            //Connection string using relative path
            string path   = Directory.GetCurrentDirectory();
            var    config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            var    connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");

            connectionStringsSection.ConnectionStrings["Default"].ConnectionString = connectionStringsSection.ConnectionStrings["Default"].ConnectionString.Replace("%DataDirectory%", path);
            config.Save(ConfigurationSaveMode.Modified, true);
            ConfigurationManager.RefreshSection("connectionStrings");
            var writerConnectionstring = ConfigurationManager.ConnectionStrings["Default"];

            //input file
            var inputFileResource = new FileSystemResource("data/input/FlatFile.txt");

            // Reader - FlatFileReader/FlatFileReader
            container.StepScopeRegistration <IItemReader <FlatFileRecord>, FlatFileItemReader <FlatFileRecord> >("FlatFileReader/FlatFileReader")
            .Property("Resource").Value(inputFileResource)
            .Property("Encoding").Value(Encoding.GetEncoding("UTF-8"))
            .Property("LineMapper")
            .Reference <ILineMapper <FlatFileRecord> >("FlatFileReader/FlatFileReader/LineMapper")
            .Register();

            // Line mapper
            container.StepScopeRegistration <ILineMapper <FlatFileRecord>, DefaultLineMapper <FlatFileRecord> >("FlatFileReader/FlatFileReader/LineMapper")
            .Property("Tokenizer")
            .Reference <ILineTokenizer>("FlatFileReader/FlatFileReader/Tokenizer")
            .Property("FieldSetMapper")
            .Reference <IFieldSetMapper <FlatFileRecord> >("FlatFileReader/FlatFileReader/FieldSetMapper")
            .Register();

            // Tokenizer
            container.StepScopeRegistration <ILineTokenizer, DelimitedLineTokenizer>("FlatFileReader/FlatFileReader/Tokenizer")
            .Property("Delimiter").Value(";")
            .Register();

            // Field set mapper
            container.RegisterStepScope <IFieldSetMapper <FlatFileRecord>, FlatFileRecordMapper>("FlatFileReader/FlatFileReader/FieldSetMapper");

            // Processor - FlatFileReader/Processor
            container.RegisterStepScope <IItemProcessor <FlatFileRecord, FlatFileRecord>, FlatFileRecordProcessor>("FlatFileReader/Processor");

            // Writer - FlatFileReader/DatabaseWriter
            container.StepScopeRegistration <IItemWriter <FlatFileRecord>, DatabaseBatchItemWriter <FlatFileRecord> >("FlatFileReader/DatabaseWriter")
            .Property("ConnectionString").Instance(writerConnectionstring)
            .Property("Query").Value("INSERT INTO BA_FLATFILE_READER_TABLE (CODE,NAME,DESCRIPTION,DATE)" + " VALUES (:code,:name,:description,:date)")
            .Property("DbParameterSourceProvider").Reference <PropertyParameterSourceProvider <FlatFileRecord> >()
            .Register();
        }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Step 1
                // Registering reader
                unityContainer.StepScopeRegistration<IItemReader<Person>, FlatFileItemReader<Person>>("job2Reader")
                    .Property("LineMapper").Instance(new DefaultLineMapper<Person>
                    {
                        Tokenizer = new DelimitedLineTokenizer { Delimiter = "," },
                        FieldSetMapper = new PersonMapper()
                    })
                    .Property("Resource").Resource(TestPathIn)
                    .Register();

                // Registering Processor
                unityContainer.RegisterStepScope<IItemProcessor<Person, Person>, MyFaultyFlatFileProcessor3>("job2Processor");

          

                // Registering writer
                unityContainer.StepScopeRegistration<IItemWriter<Person>, FlatFileItemWriter<Person>>("job2Writer")
                    .Property("LineAggregator").Instance(new DelimitedLineAggregator<Person>
                    {
                        Delimiter = ";",
                        FieldExtractor = new PropertyFieldExtractor<Person> { Names = new List<string> { "Firstname", "Name", "BirthYear" } }
                    })
                    .Property("Resource").Resource(TestPathOut)
                    .Register();
            }
Example #9
0
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                //Register JobFileCompare/CompareSameFile step
                unityContainer.RegisterType <ITasklet, FileUtilsTasklet>("JobFileCompare/CompareSameFile",
                                                                         new InjectionProperty("Strict", true),
                                                                         new InjectionProperty("Mode", FileUtilsTasklet.FileUtilsMode.Compare),
                                                                         new InjectionProperty("FileCompareMode", FileUtilsTasklet.FileType.Binary),
                                                                         new InjectionProperty("Sources",
                                                                                               new List <IResource>
                {
                    new FileSystemResource(Path.Combine(TestDataDirectoryIn, "report2.zip")),
                    new FileSystemResource(Path.Combine(TestDataDirectoryIn, "report2.zip"))
                })
                                                                         );

                //Register JobFileCompare/CompareSameFiles step
                unityContainer.RegisterType <ITasklet, FileUtilsTasklet>("JobFileCompare/CompareSameFiles",
                                                                         new InjectionProperty("Strict", true),
                                                                         new InjectionProperty("Mode", FileUtilsTasklet.FileUtilsMode.Compare),
                                                                         new InjectionProperty("FileCompareMode", FileUtilsTasklet.FileType.Text),
                                                                         new InjectionProperty("Sources",
                                                                                               new List <IResource>
                {
                    new FileSystemResource(Path.Combine(TestDataDirectoryIn, "report0.txt")),
                    new FileSystemResource(Path.Combine(TestDataDirectoryIn, "report0_copy.txt"))
                })
                                                                         );

                //Register Tasklet
                unityContainer.RegisterType <ITasklet, FileUtilsTasklet>("JobFileCompare/CompareDifferentFiles",
                                                                         new InjectionProperty("Strict", true),
                                                                         new InjectionProperty("Mode", FileUtilsTasklet.FileUtilsMode.Compare),
                                                                         new InjectionProperty("FileCompareMode", FileUtilsTasklet.FileType.Text),
                                                                         new InjectionProperty("Sources",
                                                                                               new List <IResource>
                {
                    //new FileSystemResource(Path.Combine(TestDataDirectoryIn, "except0.txt")),
                    //new FileSystemResource(Path.Combine(TestDataDirectoryIn, "except1.txt"))
                    new FileSystemResource(Path.Combine(TestDataDirectoryIn, "report0.txt")),
                    new FileSystemResource(Path.Combine(TestDataDirectoryIn, "report0_modified.txt"))
                })
                                                                         );

                //
                unityContainer.RegisterStepScope <ITasklet, BatchErrorTasklet>("JobFileCompare/BatchError");
                unityContainer.RegisterStepScope <ITasklet, EndBatchTasklet>("JobFileCompare/EndBatch");
            }
        /// <summary>
        /// Add specific configuration for context managers.
        /// </summary>
        /// <param name="container">the container for the registrations</param>
        protected override void LoadConfiguration(IUnityContainer container)
        {
            base.LoadConfiguration(container);

            container.RegisterSingleton<IContextManager, ContextManager>(BatchConstants.JobContextManagerName);
            
            container.RegisterStepScope<IContextManager, ContextManager>(BatchConstants.StepContextManagerName);

            container.RegisterSingleton<ResourceLoader, GdgResourceLoader>();
        }
        /// <summary>
        /// Add specific configuration for context managers.
        /// </summary>
        /// <param name="container">the container for the registrations</param>
        protected override void LoadConfiguration(IUnityContainer container)
        {
            base.LoadConfiguration(container);

            container.RegisterSingleton <IContextManager, ContextManager>(BatchConstants.JobContextManagerName);

            container.RegisterStepScope <IContextManager, ContextManager>(BatchConstants.StepContextManagerName);

            container.RegisterSingleton <ResourceLoader, GdgResourceLoader>();
        }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                unityContainer.RegisterType <ITasklet, SortTasklet>("tasklet1",
                                                                    new InjectionProperty("Separator", "\r\n"),
                                                                    new InjectionProperty("SortCard", "FIELDS=(1,1,CH,A)"),
                                                                    new InjectionProperty("Input", new List <IResource> {
                    new FileSystemResource(TestPathIn)
                }),
                                                                    new InjectionProperty("Output", new List <IResource> {
                    new FileSystemResource(TestPathOutSorted)
                }));

                // Step 1
                // Registering reader
                unityContainer.RegisterStepScope <IItemReader <Person>, FlatFileItemReader <Person> >("reader",
                                                                                                      new InjectionProperty("LineMapper", new DefaultLineMapper <Person>
                {
                    Tokenizer = new DelimitedLineTokenizer {
                        Delimiter = ","
                    },
                    FieldSetMapper = new PersonMapper()
                }),
                                                                                                      new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Registering Processor
                unityContainer.RegisterStepScope <IItemProcessor <Person, Person>, UppercaseProcessor>("processor");

                // Registering writer
                unityContainer.RegisterStepScope <IItemWriter <Person>, FlatFileItemWriter <Person> >("writer",
                                                                                                      new InjectionProperty("LineAggregator", new DelimitedLineAggregator <Person>
                {
                    Delimiter      = ",",
                    FieldExtractor = new PropertyFieldExtractor <Person> {
                        Names = new List <string> {
                            "Name", "Firstname"
                        }
                    }
                }),
                                                                                                      new InjectionProperty("Resource", new FileSystemResource(TestPathOutUpper)));
            }
        /// <summary>
        /// Registers the artifacts required to execute the steps (tasklets, readers, writers, etc.)
        /// </summary>
        /// <param name="container">the unity container to use for registrations</param>
        public override void LoadArtifacts(IUnityContainer container)
        {
            //Connection string
            var writerConnectionstring = ConfigurationManager.ConnectionStrings["Default"];

            //input file
            var inputFileResource = new FileSystemResource("data/input/LargeFlatFile.txt");

            // Reader - FlatFileReader/FlatFileReader
            container.StepScopeRegistration<IItemReader<FlatFileRecord>, FlatFileItemReader<FlatFileRecord>>("FlatFileReader/FlatFileReader")
                .Property("Resource").Value(inputFileResource)
                .Property("Encoding").Value(Encoding.GetEncoding("UTF-8"))
                .Property("LineMapper").Reference<ILineMapper<FlatFileRecord>>("FlatFileReader/FlatFileReader/LineMapper")
                .Register();

            // Line mapper
            container.StepScopeRegistration<ILineMapper<FlatFileRecord>, DefaultLineMapper<FlatFileRecord>>("FlatFileReader/FlatFileReader/LineMapper")
                .Property("Tokenizer").Reference<ILineTokenizer>("FlatFileReader/FlatFileReader/Tokenizer")
                .Property("FieldSetMapper").Reference<IFieldSetMapper<FlatFileRecord>>("FlatFileReader/FlatFileReader/FieldSetMapper")
                .Register();

            // Tokenizer
            container.StepScopeRegistration<ILineTokenizer, DelimitedLineTokenizer>("FlatFileReader/FlatFileReader/Tokenizer")
                .Property("Delimiter").Value(";")
                .Register();

            // Field set mapper
            container.RegisterStepScope<IFieldSetMapper<FlatFileRecord>, FlatFileRecordMapper>("FlatFileReader/FlatFileReader/FieldSetMapper");

            // Processor - FlatFileReader/Processor
            container.RegisterStepScope<IItemProcessor<FlatFileRecord, FlatFileRecord>,FlatFileRecordProcessor >("FlatFileReader/Processor");

            // Writer - FlatFileReader/DatabaseWriter
            container.StepScopeRegistration<IItemWriter<FlatFileRecord>, DatabaseBatchItemWriter<FlatFileRecord>>("FlatFileReader/DatabaseWriter")
                .Property("ConnectionString").Instance(writerConnectionstring)
                .Property("Query").Value("INSERT INTO BA_FLATFILE_READER_TABLE (CODE,NAME,DESCRIPTION,DATE) VALUES (:code,:name,:description,:date)")
                .Property("DbParameterSourceProvider").Reference<PropertyParameterSourceProvider<FlatFileRecord>>()
                .Register();
        }
        /// <summary>
        /// Registers the artifacts required to execute the steps (tasklets, readers, writers, etc.)
        /// </summary>
        /// <param name="container">the unity container to use for registrations</param>
        public override void LoadArtifacts(IUnityContainer container)
        {
            //Connection string
            var writerConnectionstring = ConfigurationManager.ConnectionStrings["Default"];

            //input file
            var inputFileResource = new FileSystemResource("data/input/LargeFlatFile.txt");

            // Reader - FlatFileReader/FlatFileReader
            container.StepScopeRegistration <IItemReader <FlatFileRecord>, FlatFileItemReader <FlatFileRecord> >("FlatFileReader/FlatFileReader")
            .Property("Resource").Value(inputFileResource)
            .Property("Encoding").Value(Encoding.GetEncoding("UTF-8"))
            .Property("LineMapper").Reference <ILineMapper <FlatFileRecord> >("FlatFileReader/FlatFileReader/LineMapper")
            .Register();

            // Line mapper
            container.StepScopeRegistration <ILineMapper <FlatFileRecord>, DefaultLineMapper <FlatFileRecord> >("FlatFileReader/FlatFileReader/LineMapper")
            .Property("Tokenizer").Reference <ILineTokenizer>("FlatFileReader/FlatFileReader/Tokenizer")
            .Property("FieldSetMapper").Reference <IFieldSetMapper <FlatFileRecord> >("FlatFileReader/FlatFileReader/FieldSetMapper")
            .Register();

            // Tokenizer
            container.StepScopeRegistration <ILineTokenizer, DelimitedLineTokenizer>("FlatFileReader/FlatFileReader/Tokenizer")
            .Property("Delimiter").Value(";")
            .Register();

            // Field set mapper
            container.RegisterStepScope <IFieldSetMapper <FlatFileRecord>, FlatFileRecordMapper>("FlatFileReader/FlatFileReader/FieldSetMapper");

            // Processor - FlatFileReader/Processor
            container.RegisterStepScope <IItemProcessor <FlatFileRecord, FlatFileRecord>, FlatFileRecordProcessor>("FlatFileReader/Processor");

            // Writer - FlatFileReader/DatabaseWriter
            container.StepScopeRegistration <IItemWriter <FlatFileRecord>, DatabaseBatchItemWriter <FlatFileRecord> >("FlatFileReader/DatabaseWriter")
            .Property("ConnectionString").Instance(writerConnectionstring)
            .Property("Query").Value("INSERT INTO BA_FLATFILE_READER_TABLE (CODE,NAME,DESCRIPTION,DATE) VALUES (:code,:name,:description,:date)")
            .Property("DbParameterSourceProvider").Reference <PropertyParameterSourceProvider <FlatFileRecord> >()
            .Register();
        }
Example #15
0
        /// <summary>
        /// Registers the artifacts required to execute the steps (tasklets, readers, writers, etc.)
        /// </summary>
        /// <param name="container">the unity container to use for registrations</param>
        public override void LoadArtifacts(IUnityContainer container)
        {
            //Connection string
            var writerConnectionString = ConfigurationManager.ConnectionStrings["Default"];

            container.RegisterSingleton <DbStuffzContext>();
            container.RegisterSingleton <IInRepository, InRepository>();
            container.RegisterSingleton <IOutRepository, OutRepository>();
            Logger.Debug("registering reader");
            container.StepScopeRegistration <IItemReader <InModel>, TestReader>("FlatFileReader/FlatFileReader").Register();
            Logger.Debug("registering processor");
            container.RegisterStepScope <IItemProcessor <InModel, OutModel>, TestProcessor>("FlatFileReader/Processor");
            Logger.Debug("registering writer");
            container.StepScopeRegistration <IItemWriter <OutModel>, TestWriter>("FlatFileReader/DatabaseWriter").Register();
        }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                unityContainer.RegisterSingleton <ITaskExecutor, SimpleAsyncTaskExecutor>();

                // Step 1
                // Registering reader
                unityContainer.StepScopeRegistration <IItemReader <Person>, FlatFileItemReader <Person> >("reader")
                .Property("LineMapper").Instance(new DefaultLineMapper <Person>
                {
                    Tokenizer = new DelimitedLineTokenizer {
                        Delimiter = ","
                    },
                    FieldSetMapper = new PersonMapper()
                })
                .Property("Resource").Resource("#{stepExecutionContext['fileName']}")
                .Register();

                // Registering Processor
                unityContainer.RegisterStepScope <IItemProcessor <Person, Person>, UppercaseProcessor>("processor");

                // Registering writer
                unityContainer.StepScopeRegistration <IItemWriter <Person>, FlatFileItemWriter <Person> >("writer")
                .Property("LineAggregator").Instance(new DelimitedLineAggregator <Person>
                {
                    Delimiter      = ",",
                    FieldExtractor = new PropertyFieldExtractor <Person> {
                        Names = new List <string> {
                            "Name", "Firstname"
                        }
                    }
                })
                .Property("Resource").Resource(TestPathOutPrefix + "#{stepExecutionContext['partitionId']}.txt")
                .Register();

                unityContainer.SingletonRegistration <IPartitioner, MultiResourcePartitioner>("partitioner")
                .Property("Resources").Resources(TestDataDirectoryIn + "Job10In?.txt")
                .Register();
            }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                unityContainer.RegisterSingleton<ITaskExecutor, SimpleAsyncTaskExecutor>();

                // Step 1
                // Registering reader
                unityContainer.StepScopeRegistration<IItemReader<Person>, FlatFileItemReader<Person>>("reader")
                    .Property("LineMapper").Instance(new DefaultLineMapper<Person>
                    {
                        Tokenizer = new DelimitedLineTokenizer { Delimiter = "," },
                        FieldSetMapper = new PersonMapper()
                    })
                    .Property("Resource").Resource("#{stepExecutionContext['fileName']}")
                    .Register();

                // Registering Processor
                unityContainer.RegisterStepScope<IItemProcessor<Person, Person>, UppercaseProcessor>("processor");

                // Registering writer
                unityContainer.StepScopeRegistration<IItemWriter<Person>, FlatFileItemWriter<Person>>("writer")
                    .Property("LineAggregator").Instance(new DelimitedLineAggregator<Person>
                    {
                        Delimiter = ",",
                        FieldExtractor = new PropertyFieldExtractor<Person> { Names = new List<string> { "Name", "Firstname" } }
                    })
                    .Property("Resource").Resource(TestPathOutPrefix + "#{stepExecutionContext['partitionId']}.txt")
                    .Register();

                unityContainer.SingletonRegistration<IPartitioner, MultiResourcePartitioner>("partitioner")
                    .Property("Resources").Resources(TestDataDirectoryIn + "Job10In?.txt")
                    .Register();
            }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Context Managers x 2 - Those should come first
                unityContainer.RegisterSingleton<IContextManager, ContextManager>(BatchConstants.JobContextManagerName);
                unityContainer.RegisterSingleton<IContextManager, ContextManager>(BatchConstants.StepContextManagerName);

                // Registering reader
                unityContainer.RegisterStepScope<IItemReader<CommandItem>, FlatFileItemReader<CommandItem>>("delegate",
                    new InjectionProperty("LineMapper", new DefaultLineMapper<CommandItem>
                    {
                        Tokenizer = new DelimitedLineTokenizer { Delimiter = ";" },
                        FieldSetMapper = new CommandItemMapper()
                    }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Delegating group reader                
                unityContainer.RegisterStepScope<IItemReader<List<CommandItem>>, DelegatingGroupReader<CommandItem>>
                    ("readCsv",
                    new InjectionProperty("RuptureFields", "User"),
                    new InjectionProperty("Delegate", new ResolvedParameter<IItemReader<CommandItem>>("delegate")));

                //Processor
                //Note : IContextManager x 2 injected by name through attribute [Dependency]
                //No need for new InjectionProperty here (already handled)
                unityContainer.RegisterStepScope<IItemProcessor<List<CommandItem>, UserTotal>, ReportExecutionListener>
                    ("reportListener");

                //LineAggregator + HeaderWriter + FooterWriter                
                unityContainer.RegisterStepScope<AbstractTemplateLineAggregator<UserTotal>, ReportWriteReportAggregator>
                    ("report/WriteReport/Aggregator",
                    new InjectionProperty("TemplateId", "userTotal"),
                    new InjectionProperty("FooterId", "footer"),
                    new InjectionProperty("HeaderId", "header"),
                    new InjectionProperty("Template", new FileSystemResource(TestTemplateIn)),
                    new InjectionProperty("InputEncoding", Encoding.UTF8)
                    );

                //Inner writer
                unityContainer.RegisterStepScope<IItemWriter<UserTotal>, FlatFileItemWriter<UserTotal>>("reportWriter",
                    new InjectionProperty("Resource", new FileSystemResource(TestPathOut)),
                    new InjectionProperty("Encoding", Encoding.UTF8),
                    new InjectionProperty("LineAggregator",
                        new ResolvedParameter<AbstractTemplateLineAggregator<UserTotal>>("report/WriteReport/Aggregator")),
                    new InjectionProperty("HeaderWriter",
                        new ResolvedParameter<AbstractTemplateLineAggregator<UserTotal>>("report/WriteReport/Aggregator")),
                    new InjectionProperty("FooterWriter",
                        new ResolvedParameter<AbstractTemplateLineAggregator<UserTotal>>("report/WriteReport/Aggregator"))
                    );
            }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                //Register Tasklet
                unityContainer.RegisterType<ITasklet, FileUtilsTasklet>("JobFileCompare/CompareDifferentFiles",
                    new InjectionProperty("Strict", true),
                    new InjectionProperty("Mode", FileUtilsTasklet.FileUtilsMode.Compare),
                    new InjectionProperty("FileCompareMode", FileUtilsTasklet.FileType.Text),
                    new InjectionProperty("SequenceEqualityComparerType", FileUtilsTasklet.EqualityComparerType.Default),
                    new InjectionProperty("Sources",
                        new List<IResource> 
                        { 
                            new FileSystemResource(Path.Combine(TestDataDirectoryIn, "report0.txt")),
                            new FileSystemResource(Path.Combine(TestDataDirectoryIn, "report0_modified.txt")) 
 
                        })
                    );

                // 
                unityContainer.RegisterStepScope<ITasklet, BatchErrorTasklet>("JobFileCompare/BatchError");
                unityContainer.RegisterStepScope<ITasklet, EndBatchTasklet>("JobFileCompare/EndBatch");
            }
Example #20
0
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                unityContainer.RegisterType<ITasklet, SortTasklet>("tasklet1", 
                    new InjectionProperty("Separator", "\r\n"),
                    new InjectionProperty("SortCard", "FIELDS=(1,1,CH,A)"),
                    new InjectionProperty("Input", new List<IResource> { new FileSystemResource(TestPathIn) }),
                    new InjectionProperty("Output", new FileSystemResource(TestPathOutSorted)));

                // Step 1
                // Registering reader
                unityContainer.RegisterStepScope<IItemReader<Person>, FlatFileItemReader<Person>>("reader",
                    new InjectionProperty("LineMapper", new DefaultLineMapper<Person>
                    {
                        Tokenizer = new DelimitedLineTokenizer { Delimiter = "," },
                        FieldSetMapper = new PersonMapper()
                    }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Registering Processor
                unityContainer.RegisterStepScope<IItemProcessor<Person, Person>, UppercaseProcessor>("processor");

                // Registering writer
                unityContainer.RegisterStepScope<IItemWriter<Person>, FlatFileItemWriter<Person>>("writer",
                    new InjectionProperty("LineAggregator", new DelimitedLineAggregator<Person>
                    {
                        Delimiter = ",",
                        FieldExtractor = new PropertyFieldExtractor<Person> { Names = new List<string> { "Name", "Firstname" } }
                    }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathOutUpper)));
            }
            public override void LoadArtifacts(IUnityContainer unityContainer)
            {
                // Step 1
                // Registering reader
                unityContainer.RegisterStepScope<IItemReader<Person>, FlatFileItemReader<Person>>("job5Reader",
                    new InjectionProperty("LineMapper", new DefaultLineMapper<Person>
                        {
                            Tokenizer = new DelimitedLineTokenizer { Delimiter = "," },
                            FieldSetMapper = new PersonMapper()
                        }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathIn)));

                // Registering Processor
                unityContainer.RegisterStepScope<IItemProcessor<Person, Person>, MyFlatFileProcessor>("job5Processor");

                // Registering writer
                unityContainer.RegisterStepScope<IItemWriter<Person>, FlatFileItemWriter<Person>>("job5Writer",
                    new InjectionProperty("LineAggregator", new DelimitedLineAggregator<Person>
                        {
                            Delimiter = ";",
                            FieldExtractor = new PropertyFieldExtractor<Person> { Names = new List<string> { "Firstname", "Name", "BirthYear" } }
                        }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathOut)));

                // Step 2
                // Registering reader
                unityContainer.RegisterStepScope<IItemReader<Person2>, FlatFileItemReader<Person2>>("job5ReaderStep2",
                    new InjectionProperty("LineMapper", new DefaultLineMapper<Person2>
                    {
                        Tokenizer = new DelimitedLineTokenizer { Delimiter = "," },
                        FieldSetMapper = new PersonMapper2()
                    }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathInStep2)));

                // Registering Processor
                unityContainer.RegisterStepScope<IItemProcessor<Person2, Person2>, MyFlatFileProcessor2>("job5ProcessorStep2");

                // Registering writer
                unityContainer.RegisterStepScope<IItemWriter<Person2>, FlatFileItemWriter<Person2>>("job5WriterStep2",
                    new InjectionProperty("LineAggregator", new DelimitedLineAggregator<Person2>
                    {
                        Delimiter = ";",
                        FieldExtractor = new PropertyFieldExtractor<Person2> { Names = new List<string> { "Firstname", "Name", "BirthYear" } }
                    }),
                    new InjectionProperty("Resource", new FileSystemResource(TestPathOutStep2)));
            }